├── .Xresources ├── .bashrc ├── .config ├── README.md ├── alacritty │ ├── README.md │ └── alacritty.yml ├── cava │ └── config ├── conky │ └── conky ├── dunst │ └── dunstrc ├── fish │ ├── config.fish │ ├── fish_variables │ └── functions │ │ ├── fish_prompt.fish │ │ └── fish_right_prompt.fish ├── flameshot │ ├── flameshot.conf │ └── flameshot.ini ├── gcolor3 │ └── config.ini ├── mpd │ ├── README.md │ └── mpd.conf ├── mpv │ └── mpv.conf ├── ncmpcpp │ └── config ├── neofetch │ └── config.conf ├── nvim │ ├── init.vim │ ├── themes │ │ └── ayu-vim.vim │ └── vim-plug │ │ └── plugins.vim ├── polybar │ ├── config │ ├── launch.sh │ └── scripts │ │ ├── check-arch-updates.sh │ │ ├── check-aur-updates.sh │ │ ├── get_spotify_status.sh │ │ ├── pavolume.sh │ │ ├── pub-ip.sh │ │ ├── scroll_spotify_status.sh │ │ ├── spotify1.sh │ │ ├── tempcores.sh │ │ └── weather.py ├── ranger │ └── rc.conf ├── rofi │ └── launchers │ │ └── misc │ │ ├── kde_krunner.rasi │ │ └── launcher.sh └── terminator │ └── config ├── .vimrc ├── .xinitrc ├── .xmobarrc0 ├── .xmobarrc1 ├── .xmobarrc2 ├── .xmonad ├── scripts │ ├── autostart.sh │ ├── brightness.sh │ ├── picom-toggle.sh │ ├── picom.conf │ ├── set-screen-resolution-in-virtualbox.sh │ └── xmobar │ │ ├── ansiweather │ │ ├── btc │ │ ├── eth │ │ ├── mullvad │ │ ├── nordvpn │ │ ├── ping │ │ ├── protonvpn │ │ ├── sysupdate │ │ ├── togglesinkaudio │ │ └── vpnsrvload ├── xmonad-old.hs └── xmonad.hs ├── .xprofile ├── .zshrc ├── README.md ├── pacman.txt └── pacman2.txt /.Xresources: -------------------------------------------------------------------------------- 1 | ! ------------------------------------------------------------------------------ 2 | ! URxvt standard arcolinux theme - Reload with xrdb -merge ~/.Xresources 3 | ! or alias merge 4 | ! ------------------------------------------------------------------------------ 5 | 6 | ! Xorg issue nov 2021 - use and change if needed 7 | ! Xft.dpi: 96 8 | ! 9 | Xcursor.size: 16 10 | 11 | ! general settings 12 | URxvt.saveLines: 50000 13 | URxvt.termName: xterm-256color 14 | URxvt.urgentOnBell: false 15 | URxvt.visualBell: false 16 | URxvt.iso14755: false 17 | URxvt.iso14755_52: false 18 | URxvt.meta8: false 19 | URxvt.metaSendsEscape: true 20 | URxvt.iconFile: /usr/share/icons/Sardi-Mono/scalable/apps/terminal.svg 21 | URxvt.urlLauncher: firefox 22 | URxvt.underlineURLs: true 23 | URxvt.urlButton: 1 24 | 25 | ! appearance 26 | URxvt.geometry: 100x30 27 | URxvt.depth: 32 28 | !URxvt.transparent: true 29 | URxvt.shading: 80 30 | URxvt.underlineColor: #4682B4 31 | URxvt.highlightColor: #666666 32 | URxvt.throughColor: #4682B4 33 | URxvt.scrollBar: false 34 | URxvt.scrollTtyOutput: false 35 | URxvt.scrollWithBuffer: true 36 | URxvt.scrollTtyKeypress: true 37 | URxvt.internalBorder: 0 38 | URxvt.externalBorder: 0 39 | URxvt.colorIT: #4682B4 40 | URxvt.colorBD: #F9F9F9 41 | URxvt.colorUL: #87afd7 42 | 43 | !!! get your color schemes from here 44 | !!! https://terminal.sexy/ 45 | !!! copy/paste colorcodes in 46 | !!! begin 47 | 48 | ! special 49 | *.foreground: #F9F9F9 50 | 51 | URxvt.foreground: #F9F9F9 52 | URxvt.background: [80]#222222 53 | !URxvt.background: #000000 54 | !URxvt.background: rgba:2222/2222/2222/AAAA 55 | !URxvt.background: [80]#404552 56 | !URxvt.background: [70]#3F424A 57 | 58 | *.cursorColor: #c8c8c8 59 | 60 | ! black 61 | *.color0: #3f3f3f 62 | *.color8: #545454 63 | 64 | ! red 65 | *.color1: #cc0000 66 | *.color9: #fc5454 67 | 68 | ! green 69 | *.color2: #4e9a06 70 | *.color10: #8ae234 71 | 72 | ! yellow 73 | *.color3: #c4a000 74 | *.color11: #fce94f 75 | 76 | ! blue 77 | *.color4: #3465a4 78 | *.color12: #94bff3 79 | 80 | ! magenta 81 | *.color5: #85678f 82 | *.color13: #b294bb 83 | 84 | ! cyan 85 | *.color6: #06989a 86 | *.color14: #93e0e3 87 | 88 | ! white 89 | *.color7: #dcdccc 90 | *.color15: #ffffff 91 | 92 | 93 | !!! end 94 | !!! get your color schemes from here 95 | !!! https://terminal.sexy/ 96 | !!! copy/paste colorcodes in 97 | 98 | ! fonts 99 | URxvt.letterSpace: -1 100 | URxvt.font: xft:Monospace:regular:size=11 101 | URxvt.imFont: xft:Monospace:regular:size=11 102 | URxvt.italicFont: xft:Monospace:italic:size=11 103 | URxvt.boldFont: xft:Monospace:bold:size=11 104 | URxvt.boldItalicFont: xft:Monospace:regular:size=11 105 | ! run :.!fc-list | grep 106 | 107 | ! perl extensions 108 | ! You can install extra perl extensions you should add them here 109 | URxvt.perl-ext-common: default,clipboard,url-select,keyboard-select,fullscreen,resize-font 110 | !URxvt.perl-ext-common: default,clipboard,url-select,keyboard-select,tabbed 111 | 112 | ! macros for resize-font - sudo pacman -S urxvt-resize-font-git 113 | URxvt.resize-font.step: 1 114 | URxvt.keysym.C-minus: resize-font:smaller 115 | URxvt.keysym.C-plus: resize-font:bigger 116 | URxvt.keysym.C-equal: resize-font:reset 117 | URxvt.keysym.C-question: resize-font:show 118 | URxvt.keysym.C-Down: resize-font:smaller 119 | URxvt.keysym.C-Up: resize-font:bigger 120 | 121 | ! macros for clipboard and selection 122 | URxvt.copyCommand: xclip -i -selection clipboard 123 | URxvt.pasteCommand: xclip -o -selection clipboard 124 | URxvt.keysym.M-c: perl:clipboard:copy 125 | URxvt.keysym.m-v: perl:clipboard:paste 126 | URxvt.keysym.M-C-v: perl:clipboard:paste_escaped 127 | URxvt.keysym.M-Escape: perl:keyboard-select:activate 128 | URxvt.keysym.M-s: perl:keyboard-select:search 129 | URxvt.keysym.M-u: perl:url-select:select_next 130 | 131 | ! fullscreen - sudo pacman -S urxvt-fullscreen 132 | urxvt.keysym.F11: perl:fullscreen:switch 133 | 134 | ! tabbed 135 | URxvt.tabbed.tabbar-fg: 4 136 | URxvt.tabbed.tabbar-bg: 16 137 | URxvt.tabbed.tab-fg: 15 138 | URxvt.tabbed.tab-bg: 4 139 | URxvt.buffered: false 140 | 141 | ! clipboard 142 | URxvt.keysym.Control-Shift-C: perl:clipboard:copy 143 | URxvt.keysym.Control-Shift-V: perl:clipboard:paste 144 | 145 | 146 | ! ------------------------------------------------------------------------------ 147 | ! xterm standard arcolinux theme 148 | ! ------------------------------------------------------------------------------ 149 | 150 | xterm*faceName: Monospace 151 | xterm*faceSize: 11 152 | xterm*loginShell: true 153 | xterm*vt100*geometry: 100x30 154 | xterm*saveLines: 50000 155 | xterm*charClass: 33:48,35:48,37:48,43:48,45-47:48,64:48,95:48,126:48 156 | xterm*termName: xterm-color 157 | xterm*eightBitInput: false 158 | xterm*foreground: rgb:f9/f9/f9 159 | xterm*background: rgb:22/22/22 160 | xterm*color0: rgb:3f/3f/3f 161 | xterm*color1: rgb:cc/00/00 162 | xterm*color2: rgb:4e/9a/06 163 | xterm*color3: rgb:c4/a0/00 164 | xterm*color4: rgb:34/65/a4 165 | xterm*color5: rgb:ad/6a/b8 166 | xterm*color6: rgb:06/98/9a 167 | xterm*color7: rgb:dc/dc/cc 168 | xterm*color8: rgb:54/54/54 169 | xterm*color9: rgb:fc/54/54 170 | xterm*color10: rgb:8a/e2/34 171 | xterm*color11: rgb:fc/e9/4f 172 | xterm*color12: rgb:94/bf/f3 173 | xterm*color13: rgb:dc/95/e8 174 | xterm*color14: rgb:93/e0/e3 175 | xterm*color15: rgb:ff/ff/ff 176 | xterm*boldMode: false 177 | xterm*colorBDMode: true 178 | xterm*colorBD: rgb:ff/ff/ff 179 | 180 | 181 | 182 | 183 | ! ------------------------------------------------------------------------------ 184 | ! UXTerm standard arcolinux theme 185 | ! ------------------------------------------------------------------------------ 186 | 187 | ! termtype 188 | UXTerm*termName: xterm-256color 189 | 190 | 191 | UXTerm*cursorColor: #c8c8c8 192 | UXTerm*VT100.geometry: 100x30 193 | UXTerm*font: Monospace 194 | UXTerm*faceSize: 11 195 | UXTerm*dynamicColors: true 196 | UXTerm*utf8: 2 197 | UXTerm*eightBitInput: true 198 | UXTerm*saveLines: 50000 199 | UXTerm*scrollKey: true 200 | UXTerm*scrollTtyOutput: false 201 | UXTerm*scrollBar: false 202 | UXTerm*rightScrollBar: false 203 | UXTerm*jumpScroll: true 204 | UXTerm*multiScroll: true 205 | UXTerm*toolBar: false 206 | 207 | ! fix colors 208 | UXTerm*background: rgb:63/63/63 209 | UXTerm*foreground: rgb:f9/f9/f9 210 | UXTerm*color0: rgb:3f/3f/3f 211 | UXTerm*color1: rgb:cc/00/00 212 | UXTerm*color2: rgb:4e/9a/06 213 | UXTerm*color3: rgb:c4/a0/00 214 | UXTerm*color4: rgb:34/65/a4 215 | UXTerm*color5: rgb:ad/6a/b8 216 | UXTerm*color6: rgb:06/98/9a 217 | UXTerm*color7: rgb:dc/dc/cc 218 | UXTerm*color8: rgb:54/54/54 219 | UXTerm*color9: rgb:fc/54/54 220 | UXTerm*color10: rgb:8a/e2/34 221 | UXTerm*color11: rgb:fc/e9/4f 222 | UXTerm*color12: rgb:94/bf/f3 223 | UXTerm*color13: rgb:dc/95/e8 224 | UXTerm*color14: rgb:93/e0/e3 225 | UXTerm*color15: rgb:ff/ff/ff 226 | 227 | UXTerm*boldMode: false 228 | UXTerm*colorBDMode: true 229 | UXTerm*colorBD: rgb:ff/ff/ff 230 | -------------------------------------------------------------------------------- /.bashrc: -------------------------------------------------------------------------------- 1 | # 2 | # ~/.bashrc 3 | # 4 | 5 | #Ibus settings if you need them 6 | #type ibus-setup in terminal to change settings and start the daemon 7 | #delete the hashtags of the next lines and restart 8 | #export GTK_IM_MODULE=ibus 9 | #export XMODIFIERS=@im=dbus 10 | #export QT_IM_MODULE=ibus 11 | 12 | # If not running interactively, don't do anything 13 | [[ $- != *i* ]] && return 14 | 15 | export HISTCONTROL=ignoreboth:erasedups 16 | 17 | # Make nano the default editor 18 | 19 | export EDITOR='nano' 20 | export VISUAL='nano' 21 | 22 | PS1='[\u@\h \W]\$ ' 23 | 24 | if [ -d "$HOME/.bin" ] ; 25 | then PATH="$HOME/.bin:$PATH" 26 | fi 27 | 28 | if [ -d "$HOME/.local/bin" ] ; 29 | then PATH="$HOME/.local/bin:$PATH" 30 | fi 31 | 32 | [ ! -e ~/.dircolors ] && eval $(dircolors -p > ~/.dircolors) 33 | [ -e /bin/dircolors ] && eval $(dircolors -b ~/.dircolors) 34 | 35 | #ignore upper and lowercase when TAB completion 36 | bind "set completion-ignore-case on" 37 | 38 | #list 39 | alias ls='exa -l' 40 | alias la='ls -a' 41 | alias ll='exa -bghHliS' 42 | alias l='ls' 43 | alias l.="ls -A | egrep '^\.'" 44 | 45 | #fix obvious typo's 46 | alias cd..='cd ..' 47 | alias pdw="pwd" 48 | alias udpate='sudo pacman -Syyu' 49 | alias upate='sudo pacman -Syyu' 50 | alias updte='sudo pacman -Syyu' 51 | alias updqte='sudo pacman -Syyu' 52 | alias upqll="paru -Syu --noconfirm" 53 | alias upal="paru -Syu --noconfirm" 54 | 55 | ## Colorize the grep command output for ease of use (good for log files)## 56 | alias grep='grep --color=auto' 57 | alias egrep='egrep --color=auto' 58 | alias fgrep='fgrep --color=auto' 59 | 60 | #readable output 61 | alias df='df -h' 62 | 63 | #pacman unlock 64 | alias unlock="sudo rm /var/lib/pacman/db.lck" 65 | alias rmpacmanlock="sudo rm /var/lib/pacman/db.lck" 66 | 67 | #arcolinux logout unlock 68 | alias rmlogoutlock="sudo rm /tmp/arcologout.lock" 69 | 70 | #which graphical card is working 71 | alias whichvga="/usr/local/bin/arcolinux-which-vga" 72 | 73 | #free 74 | alias free="free -mt" 75 | 76 | #continue download 77 | alias wget="wget -c" 78 | 79 | #userlist 80 | alias userlist="cut -d: -f1 /etc/passwd" 81 | 82 | #merge new settings 83 | alias merge="xrdb -merge ~/.Xresources" 84 | 85 | # Aliases for software managment 86 | # pacman or pm 87 | alias pacman='sudo pacman --color auto' 88 | alias update='sudo pacman -Syyu' 89 | 90 | # paru as aur helper - updates everything 91 | alias pksyua="paru -Syu --noconfirm" 92 | alias upall="paru -Syu --noconfirm" 93 | 94 | #ps 95 | alias psa="ps auxf" 96 | alias psgrep="ps aux | grep -v grep | grep -i -e VSZ -e" 97 | 98 | #grub update 99 | alias update-grub="sudo grub-mkconfig -o /boot/grub/grub.cfg" 100 | 101 | #add new fonts 102 | alias update-fc='sudo fc-cache -fv' 103 | 104 | #copy/paste all content of /etc/skel over to home folder - backup of config created - beware 105 | alias skel='[ -d ~/.config ] || mkdir ~/.config && cp -Rf ~/.config ~/.config-backup-$(date +%Y.%m.%d-%H.%M.%S) && cp -rf /etc/skel/* ~' 106 | #backup contents of /etc/skel to hidden backup folder in home/user 107 | alias bupskel='cp -Rf /etc/skel ~/.skel-backup-$(date +%Y.%m.%d-%H.%M.%S)' 108 | 109 | #copy bashrc-latest over on bashrc - cb= copy bashrc 110 | alias cb='sudo cp /etc/skel/.bashrc ~/.bashrc && source ~/.bashrc' 111 | #copy /etc/skel/.zshrc over on ~/.zshrc - cb= copy zshrc 112 | #alias cz='sudo cp /etc/skel/.zshrc ~/.zshrc && exec zsh' 113 | 114 | #switch between bash and zsh 115 | alias tobash="sudo chsh $USER -s /bin/bash && echo 'Now log out.'" 116 | alias tozsh="sudo chsh $USER -s /bin/zsh && echo 'Now log out.'" 117 | 118 | #switch between lightdm and sddm 119 | alias tolightdm="sudo pacman -S lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings --noconfirm --needed ; sudo systemctl enable lightdm.service -f ; echo 'Lightm is active - reboot now'" 120 | alias tosddm="sudo pacman -S sddm --noconfirm --needed ; sudo systemctl enable sddm.service -f ; echo 'Sddm is active - reboot now'" 121 | 122 | #quickly kill conkies 123 | alias kc='killall conky' 124 | 125 | #hardware info --short 126 | alias hw="hwinfo --short" 127 | 128 | #skip integrity check 129 | alias paruskip='paru -S --mflags --skipinteg' 130 | alias yayskip='yay -S --mflags --skipinteg' 131 | alias trizenskip='trizen -S --skipinteg' 132 | 133 | #check vulnerabilities microcode 134 | alias microcode='grep . /sys/devices/system/cpu/vulnerabilities/*' 135 | 136 | #get fastest mirrors in your neighborhood 137 | alias mirror="sudo reflector -f 30 -l 30 --number 10 --verbose --save /etc/pacman.d/mirrorlist" 138 | alias mirrord="sudo reflector --latest 30 --number 10 --sort delay --save /etc/pacman.d/mirrorlist" 139 | alias mirrors="sudo reflector --latest 30 --number 10 --sort score --save /etc/pacman.d/mirrorlist" 140 | alias mirrora="sudo reflector --latest 30 --number 10 --sort age --save /etc/pacman.d/mirrorlist" 141 | #our experimental - best option for the moment 142 | alias mirrorx="sudo reflector --age 6 --latest 20 --fastest 20 --threads 5 --sort rate --protocol https --save /etc/pacman.d/mirrorlist" 143 | alias mirrorxx="sudo reflector --age 6 --latest 20 --fastest 20 --threads 20 --sort rate --protocol https --save /etc/pacman.d/mirrorlist" 144 | 145 | #mounting the folder Public for exchange between host and guest on virtualbox 146 | alias vbm="sudo /usr/local/bin/arcolinux-vbox-share" 147 | 148 | #shopt 149 | shopt -s autocd # change to named directory 150 | shopt -s cdspell # autocorrects cd misspellings 151 | shopt -s cmdhist # save multi-line commands in history as single line 152 | shopt -s dotglob 153 | shopt -s histappend # do not overwrite history 154 | shopt -s expand_aliases # expand aliases 155 | 156 | #youtube-dl 157 | alias yta-aac="youtube-dl --extract-audio --audio-format aac " 158 | alias yta-best="youtube-dl --extract-audio --audio-format best " 159 | alias yta-flac="youtube-dl --extract-audio --audio-format flac " 160 | alias yta-m4a="youtube-dl --extract-audio --audio-format m4a " 161 | alias yta-mp3="youtube-dl --extract-audio --audio-format mp3 " 162 | alias yta-opus="youtube-dl --extract-audio --audio-format opus " 163 | alias yta-vorbis="youtube-dl --extract-audio --audio-format vorbis " 164 | alias yta-wav="youtube-dl --extract-audio --audio-format wav " 165 | 166 | alias ytv-best="youtube-dl -f bestvideo+bestaudio " 167 | 168 | #Recent Installed Packages 169 | alias rip="expac --timefmt='%Y-%m-%d %T' '%l\t%n %v' | sort | tail -200 | nl" 170 | alias riplong="expac --timefmt='%Y-%m-%d %T' '%l\t%n %v' | sort | tail -3000 | nl" 171 | 172 | #iso and version used to install ArcoLinux 173 | alias iso="cat /etc/dev-rel | awk -F '=' '/ISO/ {print $2}'" 174 | 175 | #Cleanup orphaned packages 176 | alias cleanup='sudo pacman -Rns $(pacman -Qtdq)' 177 | 178 | #search content with ripgrep 179 | alias rg="rg --sort path" 180 | 181 | #get the error messages from journalctl 182 | alias jctl="journalctl -p 3 -xb" 183 | 184 | #nano for important configuration files 185 | #know what you do in these files 186 | alias nlightdm="sudo $EDITOR /etc/lightdm/lightdm.conf" 187 | alias npacman="sudo $EDITOR /etc/pacman.conf" 188 | alias ngrub="sudo $EDITOR /etc/default/grub" 189 | alias nconfgrub="sudo $EDITOR /boot/grub/grub.cfg" 190 | alias nmkinitcpio="sudo $EDITOR /etc/mkinitcpio.conf" 191 | alias nmirrorlist="sudo $EDITOR /etc/pacman.d/mirrorlist" 192 | alias narcomirrorlist='sudo nano /etc/pacman.d/arcolinux-mirrorlist' 193 | alias nsddm="sudo $EDITOR /etc/sddm.conf" 194 | alias nsddmk="sudo $EDITOR /etc/sddm.conf.d/kde_settings.conf" 195 | alias nfstab="sudo $EDITOR /etc/fstab" 196 | alias nnsswitch="sudo $EDITOR /etc/nsswitch.conf" 197 | alias nsamba="sudo $EDITOR /etc/samba/smb.conf" 198 | alias ngnupgconf="sudo nano /etc/pacman.d/gnupg/gpg.conf" 199 | alias nb="$EDITOR ~/.bashrc" 200 | alias nz="$EDITOR ~/.zshrc" 201 | 202 | #gpg 203 | #verify signature for isos 204 | alias gpg-check="gpg2 --keyserver-options auto-key-retrieve --verify" 205 | alias fix-gpg-check="gpg2 --keyserver-options auto-key-retrieve --verify" 206 | #receive the key of a developer 207 | alias gpg-retrieve="gpg2 --keyserver-options auto-key-retrieve --receive-keys" 208 | alias fix-gpg-retrieve="gpg2 --keyserver-options auto-key-retrieve --receive-keys" 209 | alias fix-keyserver="[ -d ~/.gnupg ] || mkdir ~/.gnupg ; cp /etc/pacman.d/gnupg/gpg.conf ~/.gnupg/ ; echo 'done'" 210 | 211 | #fixes 212 | alias fix-permissions="sudo chown -R $USER:$USER ~/.config ~/.local" 213 | alias keyfix="/usr/local/bin/arcolinux-fix-pacman-databases-and-keys" 214 | alias key-fix="/usr/local/bin/arcolinux-fix-pacman-databases-and-keys" 215 | alias fixkey="/usr/local/bin/arcolinux-fix-pacman-databases-and-keys" 216 | alias fix-key="/usr/local/bin/arcolinux-fix-pacman-databases-and-keys" 217 | alias fix-sddm-config="/usr/local/bin/arcolinux-fix-sddm-config" 218 | alias fix-pacman-conf="/usr/local/bin/arcolinux-fix-pacman-conf" 219 | alias fix-pacman-keyserver="/usr/local/bin/arcolinux-fix-pacman-gpg-conf" 220 | 221 | #maintenance 222 | alias big="expac -H M '%m\t%n' | sort -h | nl" 223 | alias downgrada="sudo downgrade --ala-url https://ant.seedhost.eu/arcolinux/" 224 | 225 | #systeminfo 226 | alias probe="sudo -E hw-probe -all -upload" 227 | alias sysfailed="systemctl list-units --failed" 228 | 229 | #shutdown or reboot 230 | alias ssn="sudo shutdown now" 231 | alias sr="sudo reboot" 232 | 233 | #update betterlockscreen images 234 | alias bls="betterlockscreen -u /usr/share/backgrounds/arcolinux/" 235 | 236 | #give the list of all installed desktops - xsessions desktops 237 | alias xd="ls /usr/share/xsessions" 238 | 239 | # # ex = EXtractor for all kinds of archives 240 | # # usage: ex 241 | ex () 242 | { 243 | if [ -f $1 ] ; then 244 | case $1 in 245 | *.tar.bz2) tar xjf $1 ;; 246 | *.tar.gz) tar xzf $1 ;; 247 | *.bz2) bunzip2 $1 ;; 248 | *.rar) unrar x $1 ;; 249 | *.gz) gunzip $1 ;; 250 | *.tar) tar xf $1 ;; 251 | *.tbz2) tar xjf $1 ;; 252 | *.tgz) tar xzf $1 ;; 253 | *.zip) unzip $1 ;; 254 | *.Z) uncompress $1;; 255 | *.7z) 7z x $1 ;; 256 | *.deb) ar x $1 ;; 257 | *.tar.xz) tar xf $1 ;; 258 | *.tar.zst) tar xf $1 ;; 259 | *) echo "'$1' cannot be extracted via ex()" ;; 260 | esac 261 | else 262 | echo "'$1' is not a valid file" 263 | fi 264 | } 265 | 266 | #arcolinux applications 267 | alias att="arcolinux-tweak-tool" 268 | alias adt="arcolinux-desktop-trasher" 269 | alias abl="arcolinux-betterlockscreen" 270 | alias agm="arcolinux-get-mirrors" 271 | alias amr="arcolinux-mirrorlist-rank-info" 272 | alias aom="arcolinux-osbeck-as-mirror" 273 | alias ars="arcolinux-reflector-simple" 274 | alias atm="arcolinux-tellme" 275 | alias avs="arcolinux-vbox-share" 276 | alias awa="arcolinux-welcome-app" 277 | 278 | #remove 279 | alias rmgitcache="rm -r ~/.cache/git" 280 | 281 | #moving your personal files and folders from /personal to ~ 282 | alias personal='cp -Rf /personal/* ~' 283 | 284 | #create a file called .bashrc-personal and put all your personal aliases 285 | #in there. They will not be overwritten by skel. 286 | 287 | [[ -f ~/.bashrc-personal ]] && . ~/.bashrc-personal 288 | 289 | # reporting tools - install when not installed 290 | #neofetch 291 | #neofetch | lolcat 292 | #screenfetch 293 | #screenfetch | lolcat 294 | #ufetch 295 | #ufetch | lolcat 296 | #ufetch-arco 297 | #ufetch-arco 298 | #paleofetch 299 | #paleofetch | lolcat 300 | #alsi 301 | #alsi | lolcat 302 | #hfetch 303 | #hfetch | lolcat 304 | #sfetch 305 | #sfetch | lolcat 306 | #sysinfo 307 | #sysinfo | lolcat 308 | #sysinfo-retro 309 | #sysinfo-retro | lolcat 310 | -------------------------------------------------------------------------------- /.config/README.md: -------------------------------------------------------------------------------- 1 | ### Toggle Sublime Text 4 menu Toggle show/hide 2 | 3 | If you wish to add a hotkey you can edit your Default (Linux).sublime-keymap file: 4 | 5 | press CTRL+SHIFT+P 6 | typing key bindings user 7 | select Preferences: Key Bindings - User 8 | 9 | This should open the Default (Linux).sublime-keymap file. Add this line: 10 | 11 | `{"keys": ["ctrl+alt+m"], "command": "toggle_menu"}` 12 | 13 | If your .sublime-keymap file was empty, you should wrap the above in JSON array brackets [ and ], like so: 14 | 15 | `[ 16 | {"keys": ["ctrl+alt+m"], "command": "toggle_menu"} 17 | ]` 18 | 19 | 20 | ### A quick previewer for Nautilus 21 | ``` 22 | sudo pacman -S sushi 23 | ``` 24 | 25 | 26 | ### Audio Thumbnails for file managers 27 | ``` 28 | yay -S ffmpegthumbnailer-mp3 29 | ``` 30 | 31 | ### Gthumb image viewer 32 | ``` 33 | yay -S gthumb gthumb-openexr-extension 34 | ``` 35 | 36 | ### XFCE Screen Saver 37 | ``` 38 | sudo pacman -S xfce4-screensaver 39 | ``` 40 | To kill a specific window you can list them with `wmctrl -l` and then close it with `wmctrl -c 'App Name'` 41 | 42 | ### WMW Keys 43 | ``` 44 | ZF3R0-FHED2-M80TY-8QYGC-NPKYF 45 | YF390-0HF8P-M81RQ-2DXQE-M2UT6 46 | ZF71R-DMX85-08DQY-8YMNC-PPHV8 47 | ``` 48 | 49 | ### Arandr GUI 50 | ``` 51 | pacman -S arandr 52 | ``` 53 | 54 | ### Add Windows boot manager to GRUB 55 | ``` 56 | os-prober 57 | grub-mkconfig -o /boot/grub/grub.cfg 58 | ``` 59 | 60 | ### PhotoGIMP (photoshop mod) 61 | Install GIMP Flatpak through your AppCenter/Package Manager or terminal: 62 | ``` 63 | flatpak install flathub org.gimp.GIMP 64 | ``` 65 | https://github.com/Diolinux/PhotoGIMP/issues/32#issuecomment-703177508 66 | 67 | https://github.com/Diolinux/PhotoGIMP 68 | 69 | 70 | ### Disable FN function 71 | ``` 72 | echo 0 | sudo tee -a /sys/module/hid_apple/parameters/fnmode 73 | ``` 74 | 75 | /etc/modprobe.d/hid_apple.conf 76 | options hid_apple fnmode=2 77 | 78 | 0 = Fn key disabled 79 | 1 = Fn key pressed by default 80 | 2 = Fn key released by default 81 | 82 | ### FSlint 83 | ``` 84 | yay -S pygtk fslint 85 | ``` 86 | 87 | ### F keys XMonad 88 | ``` 89 | F13 keycode 191 = 90 | F14 keycode 192 = 91 | F15 keycode 193 = 92 | F16 keycode 194 = 93 | F17 keycode 195 = 94 | F18 keycode 196 = 95 | ``` 96 | 97 | ### Feh 98 | Run `env | grep -i display` and check the value of `DISPLAY`. It is probably `:0.0`, or `:0`. 99 | ``` 100 | * * * * * DISPLAY=:0 /usr/bin/feh --randomize --bg-fill /home/ns/* /home/ns/* 101 | ``` 102 | 103 | ### Pacman 104 | List Installed packages 105 | ``` 106 | pacman -Q | cut -f 1 -d " " > ~/dotfiles/pacman.txt 107 | ``` 108 | 109 | ### virt-manager 110 | If KVM ready 111 | ``` 112 | LC_ALL=C lscpu | grep Virtualization 113 | ``` 114 | Packages 115 | ``` 116 | yay -S qemu virt-manager ebtables 117 | ``` 118 | Enable and start libvirtd 119 | ``` 120 | sudo systemctl enable libvirtd 121 | sudo systemctl start libvirtd 122 | ``` 123 | Add premissions 124 | ``` 125 | sudo usermod -G libvirt -a ns 126 | ``` 127 | 128 | Fix resolution with xrandr 129 | ``` 130 | gtf 1920 1080 75 131 | ``` 132 | 133 | Add to .xprofile 134 | ``` 135 | xrandr --newmode "1920x1080_75.00" 220.75 1920 2064 2264 2608 1080 1083 1088 1130 -hsync +vsync 136 | xrandr --addmode Virtual-1 "1920x1080_75.00" 137 | xrandr --output Virtual-1 --mode "1920x1080_75.00" --pos 0x0 --rotate normal 138 | ``` 139 | 140 | Info 141 | ``` 142 | use xrandr and arandr to know the possible resolutions, frequency and the names of your monitors 143 | 144 | IF you know your native resolution and frequency 145 | for example 1920x1080 @ 60 herz 146 | type this in your terminal 147 | gtf 1920 1080 60 148 | This is the result 149 | You will need to copy/paste it later. 150 | 1920x1080 @ 60.00 Hz (GTF) hsync: 67.08 kHz; pclk: 172.80 MHz 151 | Modeline "1920x1080_60.00" 172.80 1920 2040 2248 2576 1080 1081 1084 1118 -HSync +Vsync 152 | ``` -------------------------------------------------------------------------------- /.config/alacritty/README.md: -------------------------------------------------------------------------------- 1 | ### Install theme pack 2 | ``` 3 | yay -S alacritty-themes 4 | ``` 5 | 6 | Generate config file 7 | ``` 8 | alacritty-themes --create 9 | ``` 10 | 11 | Select themes 12 | ``` 13 | alacritty-themes 14 | ``` 15 | -------------------------------------------------------------------------------- /.config/alacritty/alacritty.yml: -------------------------------------------------------------------------------- 1 | env: 2 | TERM: xterm-256color 3 | LANG: en_US.UTF-8 4 | LC_CTYPE: en_US.UTF-8 5 | selection: 6 | save_to_clipboard: true 7 | window: 8 | padding: 9 | x: 20 10 | y: 20 11 | dynamic_padding: true 12 | font: 13 | normal: 14 | family: JetBrainsMono Nerd Font 15 | style: Regular 16 | size: 11 17 | use_thin_strokes: true 18 | colors: 19 | primary: 20 | background: '#1e222a' 21 | foreground: "#CBCCC6" 22 | normal: 23 | black: "#1e222a" 24 | red: "#ff4c6d" 25 | green: "#8ad770" 26 | yellow: "#fe9546" 27 | blue: "#4892fb" 28 | magenta: "#9f7ce9" 29 | cyan: "#7ed4b7" 30 | white: "#C7C7C7" 31 | bright: 32 | black: "#606060" 33 | red: "#f07b85" 34 | green: "#c3e579" 35 | yellow: "#ffd580" 36 | blue: "#7cb8f5" 37 | magenta: "#c695c6" 38 | cyan: "#9ee9d0" 39 | white: "#FFFFFF" -------------------------------------------------------------------------------- /.config/cava/config: -------------------------------------------------------------------------------- 1 | ## Configuration file for CAVA. Default values are commented out. Use either ';' or '#' for commenting. 2 | 3 | 4 | [general] 5 | 6 | # Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0 7 | ; mode = normal 8 | 9 | # Accepts only non-negative values. 10 | framerate = 144 11 | 12 | # 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off 13 | # new as of 0.6.0 autosens of low values (dynamic range) 14 | # 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0 15 | ; autosens = 1 16 | ; overshoot = 20 17 | 18 | # Manual sensitivity in %. If autosens is enabled, this will only be the initial value. 19 | # 200 means double height. Accepts only non-negative values. 20 | ; sensitivity = 100 21 | 22 | # The number of bars (0-200). 0 sets it to auto (fill up console). 23 | # Bars' width and space between bars in number of characters. 24 | ; bars = 0 25 | ; bar_width = 2 26 | ; bar_spacing = 1 27 | 28 | 29 | # Lower and higher cutoff frequencies for lowest and highest bars 30 | # the bandwidth of the visualizer. 31 | # Note: there is a minimum total bandwidth of 43Mhz x number of bars. 32 | # Cava will automatically increase the higher cutoff if a too low band is specified. 33 | ; lower_cutoff_freq = 50 34 | ; higher_cutoff_freq = 10000 35 | 36 | 37 | # Seconds with no input before cava goes to sleep mode. Cava will not perform FFT or drawing and 38 | # only check for input once per second. Cava will wake up once input is detected. 0 = disable. 39 | ; sleep_timer = 0 40 | 41 | 42 | [input] 43 | 44 | # Audio capturing method. Possible methods are: 'pulse', 'alsa', 'fifo', 'sndio' or 'shmem' 45 | # Defaults to 'pulse', 'alsa' or 'fifo', in that order, dependent on what support cava was built with. 46 | # 47 | # All input methods uses the same config variable 'source' 48 | # to define where it should get the audio. 49 | # 50 | # For pulseaudio 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink 51 | # (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them). 52 | # 53 | # For alsa 'source' will be the capture device. 54 | # For fifo 'source' will be the path to fifo-file. 55 | # For shmem 'source' will be /squeezelite-AA:BB:CC:DD:EE:FF where 'AA:BB:CC:DD:EE:FF' will be squeezelite's MAC address 56 | ; method = pulse 57 | ; source = auto 58 | 59 | ; method = alsa 60 | ; source = hw:Loopback,1 61 | 62 | method = fifo 63 | source = /tmp/mpd.fifo 64 | sample_rate = 44100 65 | sample_bits = 16 66 | 67 | ; method = shmem 68 | ; source = /squeezelite-AA:BB:CC:DD:EE:FF 69 | 70 | ; method = portaudio 71 | ; source = auto 72 | 73 | 74 | [output] 75 | 76 | # Output method. Can be 'ncurses', 'noncurses' or 'raw'. 77 | # 'noncurses' uses a custom framebuffer technique and draws only changes 78 | # from frame to frame. 'ncurses' is default if supported 79 | # 80 | # 'raw' is an 8 or 16 bit (configurable via the 'bit_format' option) data 81 | # stream of the bar heights that can be used to send to other applications. 82 | # 'raw' defaults to 200 bars, which can be adjusted in the 'bars' option above. 83 | ; method = ncurses 84 | 85 | # Visual channels. Can be 'stereo' or 'mono'. 86 | # 'stereo' mirrors both channels with low frequencies in center. 87 | # 'mono' outputs left to right lowest to highest frequencies. 88 | # 'mono_option' set mono to either take input from 'left', 'right' or 'average'. 89 | ; channels = stereo 90 | ; mono_option = average 91 | 92 | # Raw output target. A fifo will be created if target does not exist. 93 | ; raw_target = /dev/stdout 94 | 95 | # Raw data format. Can be 'binary' or 'ascii'. 96 | ; data_format = binary 97 | 98 | # Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530). 99 | ; bit_format = 16bit 100 | 101 | # Ascii max value. In 'ascii' mode range will run from 0 to value specified here 102 | ; ascii_max_range = 1000 103 | 104 | # Ascii delimiters. In ascii format each bar and frame is separated by a delimiters. 105 | # Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)). 106 | ; bar_delimiter = 59 107 | ; frame_delimiter = 10 108 | 109 | 110 | 111 | [color] 112 | 113 | # Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow. 114 | # Or defined by hex code '#xxxxxx' (hex code must be within ''). User defined colors requires 115 | # ncurses output method and a terminal that can change color definitions such as Gnome-terminal or rxvt. 116 | # if supported, ncurses mode will be forced on if user defined colors are used. 117 | # default is to keep current terminal color 118 | ; background = default 119 | ; foreground = default 120 | 121 | # Gradient mode, only hex defined colors (and thereby ncurses mode) are supported, 122 | # background must also be defined in hex or remain commented out. 1 = on, 0 = off. 123 | # You can define as many as 8 different colors. They range from bottom to top of screen 124 | gradient = 1 125 | gradient_count = 2 126 | gradient_color_1 = '#ff79c6' 127 | gradient_color_2 = '#ff79c6' 128 | ; gradient_color_3 = '#a6cc33' 129 | ; gradient_color_4 = '#cccc33' 130 | ; gradient_color_5 = '#cca633' 131 | ; gradient_color_6 = '#cc8033' 132 | ; gradient_color_7 = '#cc5933' 133 | ; gradient_color_8 = '#cc3333' 134 | 135 | 136 | 137 | [smoothing] 138 | 139 | # Percentage value for integral smoothing. Takes values from 0 - 100. 140 | # Higher values means smoother, but less precise. 0 to disable. 141 | ; integral = 77 142 | 143 | # Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable. 144 | ; monstercat = 0 145 | ; waves = 0 146 | 147 | # Set gravity percentage for "drop off". Higher values means bars will drop faster. 148 | # Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off". 149 | ; gravity = 100 150 | 151 | 152 | # In bar height, bars that would have been lower that this will not be drawn. 153 | ; ignore = 0 154 | 155 | 156 | [eq] 157 | 158 | # This one is tricky. You can have as much keys as you want. 159 | # Remember to uncomment more then one key! More keys = more precision. 160 | # Look at readme.md on github for further explanations and examples. 161 | ; 1 = 1 # bass 162 | ; 2 = 1 163 | ; 3 = 1 # midtone 164 | ; 4 = 1 165 | ; 5 = 1 # treble 166 | -------------------------------------------------------------------------------- /.config/conky/conky: -------------------------------------------------------------------------------- 1 | --[[ 2 | #===================================================================================== 3 | # arcolinux 4 | # Date : package-date 5 | # Author : Erik Dubois at http://www.erikdubois.be 6 | # Version : package-version 7 | # License : Distributed under the terms of GNU GPL version 2 or later 8 | # Documentation : http://erikdubois.be/ 9 | #====================================================================================== 10 | # CONKY 11 | # For commands in conky.config section: 12 | # http://conky.sourceforge.net/config_settings.html 13 | # 14 | # For commands in conky.text section: 15 | # http://conky.sourceforge.net/variables.html 16 | # 17 | # A PDF with all variables is provided 18 | #===================================================================================== 19 | # FONTS 20 | # To avoid copyright infringements you will have to download 21 | # and install the fonts yourself sometimes. 22 | #===================================================================================== 23 | # GENERAL INFO ABOUT FONTS 24 | # Go and look for a nice font on sites like http://www.dafont.com/ 25 | # Download and unzip - double click the font to install it (font-manager must be installed) 26 | # No font-manager then put fonts in ~/.fonts 27 | # Change the font name in the conky 28 | # The name can be known with a command in the terminal: fc-list | grep "part of name" 29 | # Change width and height of the conky according to font 30 | # Reboot your system or fc-cache -fv in terminal 31 | # Enjoy 32 | #===================================================================================== 33 | # FONTS FOR THIS CONKY 34 | # http://www.dafont.com/style-bats.font 35 | #====================================================================================== 36 | # Titus Modifications 37 | #====================================================================================== 38 | # Changed time from Roboto to GE Inspira which is a base Conky Gotham Addon 39 | # Changed Drives from 2 to 3 40 | # Modified one_window_type from desktop to normal for KDE compatibility 41 | # Modified Ethernet settings 42 | # Modified Pink Lines to Bright Blue 43 | # Removed Extra symbols and incorrect formatting 44 | #====================================================================================== 45 | 46 | ]] 47 | 48 | conky.config = { 49 | 50 | --Various settings 51 | 52 | background = true, -- forked to background 53 | cpu_avg_samples = 2, -- The number of samples to average for CPU monitoring. 54 | diskio_avg_samples = 10, -- The number of samples to average for disk I/O monitoring. 55 | double_buffer = true, -- Use the Xdbe extension? (eliminates flicker) 56 | if_up_strictness = 'address', -- how strict if testing interface is up - up, link or address 57 | net_avg_samples = 2, -- The number of samples to average for net data 58 | no_buffers = true, -- Subtract (file system) buffers from used memory? 59 | temperature_unit = 'celsius', -- fahrenheit or celsius 60 | text_buffer_size = 2048, -- size of buffer for display of content of large variables - default 256 61 | update_interval = 1, -- update interval 62 | imlib_cache_size = 0, -- disable image cache to get a new spotify cover per song 63 | 64 | 65 | --Placement 66 | 67 | alignment = 'top_right', -- top_left,top_middle,top_right,bottom_left,bottom_middle,bottom_right, 68 | -- middle_left,middle_middle,middle_right,none 69 | --Arch Duoscreen 70 | --gap_x = -1910, 71 | gap_x = 35, -- pixels between right or left border 72 | gap_y = 65, -- pixels between bottom or left border 73 | minimum_height = 600, -- minimum height of window 74 | minimum_width = 300, -- minimum height of window 75 | maximum_width = 300, -- maximum height of window 76 | 77 | --Graphical 78 | 79 | border_inner_margin = 10, -- margin between border and text 80 | border_outer_margin = 15, -- margin between border and edge of window 81 | border_width = 0, -- border width in pixels 82 | default_bar_width = 80, -- default is 0 - full width 83 | default_bar_height = 10, -- default is 6 84 | default_gauge_height = 25, -- default is 25 85 | default_gauge_width =40, -- default is 40 86 | default_graph_height = 40, -- default is 25 87 | default_graph_width = 0, -- default is 0 - full width 88 | default_shade_color = '#000000', -- default shading colour 89 | default_outline_color = '#000000', -- default outline colour 90 | draw_borders = false, -- draw borders around text 91 | draw_graph_borders = true, -- draw borders around graphs 92 | draw_shades = false, -- draw shades 93 | draw_outline = false, -- draw outline 94 | stippled_borders = 0, -- dashing the border 95 | 96 | --Textual 97 | 98 | extra_newline = false, -- extra newline at the end - for asesomes wiboxes 99 | format_human_readable = true, -- KiB, MiB rather then number of bytes 100 | font = 'Ubuntu:size=11', -- font for complete conky unless in code defined 101 | max_text_width = 0, -- 0 will make sure line does not get broken if width too smal 102 | max_user_text = 16384, -- max text in conky default 16384 103 | override_utf8_locale = true, -- force UTF8 requires xft 104 | short_units = true, -- shorten units from KiB to k 105 | top_name_width = 21, -- width for $top name value default 15 106 | top_name_verbose = false, -- If true, top name shows the full command line of each process - Default value is false. 107 | uppercase = false, -- uppercase or not 108 | use_spacer = 'none', -- adds spaces around certain objects to align - default none 109 | use_xft = true, -- xft font - anti-aliased font 110 | xftalpha = 1, -- alpha of the xft font - between 0-1 111 | 112 | --Windows 113 | 114 | own_window = true, -- create your own window to draw 115 | own_window_argb_value = 255, -- real transparency - composite manager required 0-255 116 | own_window_argb_visual = true, -- use ARGB - composite manager required 117 | own_window_colour = '#1e222a', -- set colour if own_window_transparent no 118 | own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager', -- if own_window true - just hints - own_window_type sets it 119 | own_window_transparent = false, -- if own_window_argb_visual is true sets background opacity 0% 120 | own_window_title = 'system_conky', -- set the name manually - default conky "hostname" 121 | own_window_type = 'override', -- if own_window true options are: normal/override/dock/desktop/panel 122 | 123 | 124 | --Colours 125 | 126 | default_color = '#D9DDE2', -- default color and border color 127 | color1 = '#FF0000', 128 | color2 = '#d4bfff', 129 | color3 = '#cccccc', 130 | color4 = '#D9BC83', 131 | color5 = '#95e6cb', 132 | color6 = '#FFFFFF', 133 | 134 | --Signal Colours 135 | color7 = '#1F7411', --green 136 | color8 = '#FFA726', --orange 137 | color9 = '#F1544B', --firebrick 138 | 139 | --Lua 140 | 141 | 142 | }; 143 | 144 | conky.text = [[ 145 | ${voffset 6} 146 | ${color6}${voffset 4}${font GE Inspira:size=36}${alignc}${time %l}:${time %M} ${time %p}${font}${color} 147 | ${color6}${voffset 4}${font GE Inspira:size=12}${alignc}${time %A} ${time %B} ${time %e}, ${time %Y}${font}${color} 148 | 149 | ${color5}${font Roboto:size=10}${voffset 2}S Y S T E M ${hr 2}${font}${color} 150 | ${color2}${voffset 8}Hostname:${color} ${alignr}${nodename} 151 | ${color2}Distro:${color}${alignr} Arch Linux 152 | ${color2}Kernel:${color}${alignr}${exec uname} ${exec uname -r} 153 | ${color2}Uptime:${color} ${alignr}${uptime} 154 | 155 | ${color5}${font Roboto:size=10}P R O C E S S O R S ${hr 2}${font}${color} 156 | 157 | ${color} $alignc${execi 2 lscpu | grep 'Model name' | cut -f 2 -d ":" | awk '{$1=$1}1'} 158 | 159 | ${color2}CPU Freq:${color} $alignr${freq}MHz 160 | ${color2}CPU Temp:${color} $alignr${execi 2 sensors | grep 'Tctl:' | awk {'print $2'}} 161 | ${color2}CPU Fan:${color} $alignr${execi 2 sensors | grep 'fan1:' | awk {'print $2'}} RPM 162 | ${color2}History:${color} ${alignr}${cpugraph 8,100} 163 | 164 | ${color2}CPU Core 1:${color} ${alignr}${offset -10}${cpu cpu1}%${alignr}${cpubar cpu1} 165 | ${color2}CPU Core 2:${color} ${alignr}${offset -10}${cpu cpu2}%${alignr}${cpubar cpu2} 166 | ${color2}CPU Core 3:${color} ${alignr}${offset -10}${cpu cpu3}%${alignr}${cpubar cpu3} 167 | ${color2}CPU Core 4:${color} ${alignr}${offset -10}${cpu cpu4}%${alignr}${cpubar cpu4} 168 | 169 | ${color2}Top Processes${goto 222}cpu%${goto 274}mem%${color} 170 | ${voffset 4} 1 - ${top name 1}${alignr}${goto 170} ${goto 222}${top cpu 1} ${goto 274}${top mem 1} 171 | 2 - ${top name 2}${alignr} ${goto 222}${top cpu 2} ${goto 274}${top mem 2} 172 | 3 - ${top name 3}${alignr} ${goto 222}${top cpu 3} ${goto 274}${top mem 3} 173 | 4 - ${top name 4}${alignr} ${goto 222}${top cpu 4} ${goto 274}${top mem 4} 174 | 5 - ${top name 5}${alignr} ${goto 222}${top cpu 5} ${goto 274}${top mem 5} 175 | 176 | ${color5}${font Roboto:size=10}M E M O R Y ${hr 2}${font}${color} 177 | 178 | ${color2}RAM: ${color}${alignr}${offset -10}${mem} / ${memmax}${alignr}${membar} 179 | ${color2}Swap:${color} ${alignr}${offset -10}${swap} / ${swapmax}${alignr}${swapbar} 180 | 181 | ${color2}Top Processes${goto 222}cpu%${goto 274}mem%${color} 182 | ${voffset 4} 1 - ${top_mem name 1}${alignr}${goto 170} ${goto 222}${top_mem cpu 1} ${goto 274}${top_mem mem 1} 183 | 2 - ${top_mem name 2}${alignr}${goto 170} ${goto 222}${top_mem cpu 2} ${goto 274}${top_mem mem 2} 184 | 3 - ${top_mem name 3}${alignr}${goto 170} ${goto 222}${top_mem cpu 3} ${goto 274}${top_mem mem 3} 185 | 4 - ${top_mem name 4}${alignr}${goto 170} ${goto 222}${top_mem cpu 4} ${goto 274}${top_mem mem 4} 186 | 5 - ${top_mem name 5}${alignr}${goto 170} ${goto 222}${top_mem cpu 5} ${goto 274}${top_mem mem 5} 187 | 188 | ${color5}${font Roboto:size=10}D R I V E S ${hr 2}${font}${color} 189 | 190 | ${color2}SSD R:${color} ${alignr}${offset -10}${fs_used /} / ${fs_size /}${alignr}${fs_bar /} 191 | ${color2}I/O Read:${color} ${alignr}${offset -10}${diskio_read /dev/nvme0n1}${alignr}${diskiograph_read nvme0n1 8,100} 192 | ${color2}I/O Write:${color} ${alignr}${offset -10}${diskio_write /dev/nvme0n1}${alignr}${diskiograph_write nvme0n1 8,100} 193 | 194 | ${color2}SSD W:${color} ${alignr}${offset -10}${fs_used /mnt/120SSD} / ${fs_size /mnt/120SSD}${alignr}${fs_bar /mnt/120SSD} 195 | ${color2}I/O Read:${color} ${alignr}${offset -10}${diskio_read /dev/sda}${alignr}${diskiograph_read sda 8,100} 196 | ${color2}I/O Write:${color} ${alignr}${offset -10}${diskio_write /dev/sda}${alignr}${diskiograph_write sda 8,100} 197 | 198 | ${color2}4 TB X:${color} ${alignr}${offset -10}${fs_used /mnt/4TBX} / ${fs_size /mnt/4TBX}${alignr}${fs_bar /mnt/4TBX} 199 | ${color2}I/O Read:${color} ${alignr}${offset -10}${diskio_read /dev/sdc}${alignr}${diskiograph_read sdc 8,100} 200 | ${color2}I/O Write:${color} ${alignr}${offset -10}${diskio_write /dev/sdc}${alignr}${diskiograph_write sdc 8,100} 201 | 202 | ${color2}4 TB Z:${color} ${alignr}${offset -10}${fs_used /mnt/4TBZ} / ${fs_size /mnt/4TBZ}${alignr}${fs_bar /mnt/4TBZ} 203 | ${color2}I/O Read:${color} ${alignr}${offset -10}${diskio_read /dev/sdd}${alignr}${diskiograph_read sdd 8,100} 204 | ${color2}I/O Write:${color} ${alignr}${offset -10}${diskio_write /dev/sdd}${alignr}${diskiograph_write sdd 8,100} 205 | 206 | ${color2}1 TB Y:${color} ${alignr}${offset -10}${fs_used /mnt/1TBY} / ${fs_size /mnt/1TBY}${alignr}${fs_bar /mnt/1TBY} 207 | ${color2}I/O Read:${color} ${alignr}${offset -10}${diskio_read /dev/sdb}${alignr}${diskiograph_read sdb 8,100} 208 | ${color2}I/O Write:${color} ${alignr}${offset -10}${diskio_write /dev/sdb}${alignr}${diskiograph_write sdb 8,100} 209 | 210 | ${color5}${color5}${font Roboto:size=10}N E T W O R K ${hr 2}${font}${color} 211 | 212 | ${color2}Local IP: ${color} ${alignr}${offset -10$}${addrs enp4s0} 213 | ${color2}VPN IP: ${color} ${alignr}${execi 2 protonvpn-cli status | grep 'IP' | awk {'print $2'}} 214 | 215 | ${color2}Eth Up:${color} ${alignr}${offset -10$}${upspeed enp4s0}${alignr}${upspeedgraph enp4s0 8,100} 216 | ${color2}Eth Down:${color} ${alignr}${offset -10$}${downspeed enp4s0}${alignr}${downspeedgraph enp4s0 8,100} 217 | ${voffset 26} 218 | ]]; 219 | -------------------------------------------------------------------------------- /.config/dunst/dunstrc: -------------------------------------------------------------------------------- 1 | [global] 2 | ### Display ### 3 | 4 | # Which monitor should the notifications be displayed on. 5 | monitor = 2 6 | 7 | # Display notification on focused monitor. Possible modes are: 8 | # mouse: follow mouse pointer 9 | # keyboard: follow window with keyboard focus 10 | # none: don't follow anything 11 | # 12 | # "keyboard" needs a window manager that exports the 13 | # _NET_ACTIVE_WINDOW property. 14 | # This should be the case for almost all modern window managers. 15 | # 16 | # If this option is set to mouse or keyboard, the monitor option 17 | # will be ignored. 18 | follow = 0 19 | 20 | # The geometry of the window: 21 | # [{width}]x{height}[+/-{x}+/-{y}] 22 | # The geometry of the message window. 23 | # The height is measured in number of notifications everything else 24 | # in pixels. If the width is omitted but the height is given 25 | # ("-geometry x2"), the message window expands over the whole screen 26 | # (dmenu-like). If width is 0, the window expands to the longest 27 | # message displayed. A positive x is measured from the left, a 28 | # negative from the right side of the screen. Y is measured from 29 | # the top and down respectively. 30 | # The width can be negative. In this case the actual width is the 31 | # screen width minus the width defined in within the geometry option. 32 | geometry = "280x50-20+50" 33 | 34 | # Show how many messages are currently hidden (because of geometry). 35 | indicate_hidden = yes 36 | 37 | # Shrink window if it's smaller than the width. Will be ignored if 38 | # width is 0. 39 | shrink = no 40 | 41 | # The transparency of the window. Range: [0; 100]. 42 | # This option will only work if a compositing window manager is 43 | # present (e.g. xcompmgr, compiz, etc.). 44 | transparency = 15 45 | 46 | # The height of the entire notification. If the height is smaller 47 | # than the font height and padding combined, it will be raised 48 | # to the font height and padding. 49 | notification_height = 0 50 | 51 | # Draw a line of "separator_height" pixel height between two 52 | # notifications. 53 | # Set to 0 to disable. 54 | separator_height = 1 55 | 56 | # Padding between text and separator. 57 | padding = 20 58 | 59 | # Horizontal padding. 60 | horizontal_padding = 10 61 | 62 | # Defines width in pixels of frame around the notification window. 63 | # Set to 0 to disable. 64 | frame_width = 0 65 | 66 | # Defines color of the frame around the notification window. 67 | frame_color = "#282a36" 68 | 69 | # Define a color for the separator. 70 | # possible values are: 71 | # * auto: dunst tries to find a color fitting to the background; 72 | # * foreground: use the same color as the foreground; 73 | # * frame: use the same color as the frame; 74 | # * anything else will be interpreted as a X color. 75 | separator_color = frame 76 | 77 | # Sort messages by urgency. 78 | sort = yes 79 | 80 | # Don't remove messages, if the user is idle (no mouse or keyboard input) 81 | # for longer than idle_threshold seconds. 82 | # Set to 0 to disable. 83 | # A client can set the 'transient' hint to bypass this. See the rules 84 | # section for how to disable this if necessary 85 | idle_threshold = 120 86 | 87 | ### Text ### 88 | 89 | font = Monospace 10 90 | 91 | # The spacing between lines. If the height is smaller than the 92 | # font height, it will get raised to the font height. 93 | line_height = 0 94 | 95 | # Possible values are: 96 | # full: Allow a small subset of html markup in notifications: 97 | # bold 98 | # italic 99 | # strikethrough 100 | # underline 101 | # 102 | # For a complete reference see 103 | # . 104 | # 105 | # strip: This setting is provided for compatibility with some broken 106 | # clients that send markup even though it's not enabled on the 107 | # server. Dunst will try to strip the markup but the parsing is 108 | # simplistic so using this option outside of matching rules for 109 | # specific applications *IS GREATLY DISCOURAGED*. 110 | # 111 | # no: Disable markup parsing, incoming notifications will be treated as 112 | # plain text. Dunst will not advertise that it has the body-markup 113 | # capability if this is set as a global setting. 114 | # 115 | # It's important to note that markup inside the format option will be parsed 116 | # regardless of what this is set to. 117 | markup = full 118 | 119 | # The format of the message. Possible variables are: 120 | # %a appname 121 | # %s summary 122 | # %b body 123 | # %i iconname (including its path) 124 | # %I iconname (without its path) 125 | # %p progress value if set ([ 0%] to [100%]) or nothing 126 | # %n progress value if set without any extra characters 127 | # %% Literal % 128 | # Markup is allowed 129 | format = "%s %p\n%b" 130 | 131 | # Alignment of message text. 132 | # Possible values are "left", "center" and "right". 133 | alignment = center 134 | 135 | # Vertical alignment of message text and icon. 136 | # Possible values are "top", "center" and "bottom". 137 | vertical_alignment = center 138 | 139 | # Show age of message if message is older than show_age_threshold 140 | # seconds. 141 | # Set to -1 to disable. 142 | show_age_threshold = 60 143 | 144 | # Split notifications into multiple lines if they don't fit into 145 | # geometry. 146 | word_wrap = yes 147 | 148 | # When word_wrap is set to no, specify where to make an ellipsis in long lines. 149 | # Possible values are "start", "middle" and "end". 150 | ellipsize = middle 151 | 152 | # Ignore newlines '\n' in notifications. 153 | ignore_newline = no 154 | 155 | # Stack together notifications with the same content 156 | stack_duplicates = true 157 | 158 | # Hide the count of stacked notifications with the same content 159 | hide_duplicate_count = false 160 | 161 | # Display indicators for URLs (U) and actions (A). 162 | show_indicators = yes 163 | 164 | ### Icons ### 165 | 166 | # Align icons left/right/off 167 | icon_position = left 168 | 169 | # Scale small icons up to this size, set to 0 to disable. Helpful 170 | # for e.g. small files or high-dpi screens. In case of conflict, 171 | # max_icon_size takes precedence over this. 172 | min_icon_size = 0 173 | 174 | # Scale larger icons down to this size, set to 0 to disable 175 | max_icon_size = 64 176 | 177 | # Paths to default icons. 178 | icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/ 179 | 180 | ### History ### 181 | 182 | # Should a notification popped up from history be sticky or timeout 183 | # as if it would normally do. 184 | sticky_history = yes 185 | 186 | # Maximum amount of notifications kept in history 187 | history_length = 20 188 | 189 | ### Misc/Advanced ### 190 | 191 | # dmenu path. 192 | dmenu = /usr/bin/dmenu -p dunst: 193 | 194 | # Browser for opening urls in context menu. 195 | browser = /usr/bin/firefox -new-tab 196 | 197 | # Always run rule-defined scripts, even if the notification is suppressed 198 | always_run_script = true 199 | 200 | # Define the title of the windows spawned by dunst 201 | title = Dunst 202 | 203 | # Define the class of the windows spawned by dunst 204 | class = Dunst 205 | 206 | # Print a notification on startup. 207 | # This is mainly for error detection, since dbus (re-)starts dunst 208 | # automatically after a crash. 209 | startup_notification = false 210 | 211 | # Manage dunst's desire for talking 212 | # Can be one of the following values: 213 | # crit: Critical features. Dunst aborts 214 | # warn: Only non-fatal warnings 215 | # mesg: Important Messages 216 | # info: all unimportant stuff 217 | # debug: all less than unimportant stuff 218 | verbosity = mesg 219 | 220 | # Define the corner radius of the notification window 221 | # in pixel size. If the radius is 0, you have no rounded 222 | # corners. 223 | # The radius will be automatically lowered if it exceeds half of the 224 | # notification height to avoid clipping text and/or icons. 225 | corner_radius = 0 226 | 227 | # Ignore the dbus closeNotification message. 228 | # Useful to enforce the timeout set by dunst configuration. Without this 229 | # parameter, an application may close the notification sent before the 230 | # user defined timeout. 231 | ignore_dbusclose = false 232 | 233 | ### Legacy 234 | 235 | # Use the Xinerama extension instead of RandR for multi-monitor support. 236 | # This setting is provided for compatibility with older nVidia drivers that 237 | # do not support RandR and using it on systems that support RandR is highly 238 | # discouraged. 239 | # 240 | # By enabling this setting dunst will not be able to detect when a monitor 241 | # is connected or disconnected which might break follow mode if the screen 242 | # layout changes. 243 | force_xinerama = false 244 | 245 | ### mouse 246 | 247 | # Defines list of actions for each mouse event 248 | # Possible values are: 249 | # * none: Don't do anything. 250 | # * do_action: If the notification has exactly one action, or one is marked as default, 251 | # invoke it. If there are multiple and no default, open the context menu. 252 | # * close_current: Close current notification. 253 | # * close_all: Close all notifications. 254 | # These values can be strung together for each mouse event, and 255 | # will be executed in sequence. 256 | mouse_left_click = close_current 257 | mouse_middle_click = do_action, close_current 258 | mouse_right_click = close_all 259 | 260 | # Experimental features that may or may not work correctly. Do not expect them 261 | # to have a consistent behaviour across releases. 262 | [experimental] 263 | # Calculate the dpi to use on a per-monitor basis. 264 | # If this setting is enabled the Xft.dpi value will be ignored and instead 265 | # dunst will attempt to calculate an appropriate dpi value for each monitor 266 | # using the resolution and physical size. This might be useful in setups 267 | # where there are multiple screens with very different dpi values. 268 | per_monitor_dpi = false 269 | 270 | [shortcuts] 271 | 272 | # Shortcuts are specified as [modifier+][modifier+]...key 273 | # Available modifiers are "ctrl", "mod1" (the alt-key), "mod2", 274 | # "mod3" and "mod4" (windows-key). 275 | # Xev might be helpful to find names for keys. 276 | 277 | # Close notification. 278 | close = ctrl+space 279 | 280 | # Close all notifications. 281 | close_all = ctrl+shift+space 282 | 283 | # Redisplay last message(s). 284 | # On the US keyboard layout "grave" is normally above TAB and left 285 | # of "1". Make sure this key actually exists on your keyboard layout, 286 | # e.g. check output of 'xmodmap -pke' 287 | history = ctrl+grave 288 | 289 | # Context menu. 290 | context = ctrl+shift+period 291 | 292 | [urgency_low] 293 | # IMPORTANT: colors have to be defined in quotation marks. 294 | # Otherwise the "#" and following would be interpreted as a comment. 295 | background = "#282a36" 296 | foreground = "#6272a4" 297 | timeout = 10 298 | # Icon for notifications with low urgency, uncomment to enable 299 | #icon = /path/to/icon 300 | 301 | [urgency_normal] 302 | background = "#212733" 303 | foreground = "#ff79c6" 304 | timeout = 10 305 | # Icon for notifications with normal urgency, uncomment to enable 306 | #icon = /path/to/icon 307 | 308 | [urgency_critical] 309 | background = "#ff5555" 310 | foreground = "#f8f8f2" 311 | timeout = 0 312 | # Icon for notifications with critical urgency, uncomment to enable 313 | #icon = /path/to/icon 314 | 315 | # Every section that isn't one of the above is interpreted as a rules to 316 | # override settings for certain messages. 317 | # 318 | # Messages can be matched by 319 | # appname (discouraged, see desktop_entry) 320 | # body 321 | # category 322 | # desktop_entry 323 | # icon 324 | # match_transient 325 | # msg_urgency 326 | # stack_tag 327 | # summary 328 | # 329 | # and you can override the 330 | # background 331 | # foreground 332 | # format 333 | # frame_color 334 | # fullscreen 335 | # new_icon 336 | # set_stack_tag 337 | # set_transient 338 | # timeout 339 | # urgency 340 | # 341 | # Shell-like globbing will get expanded. 342 | # 343 | # Instead of the appname filter, it's recommended to use the desktop_entry filter. 344 | # GLib based applications export their desktop-entry name. In comparison to the appname, 345 | # the desktop-entry won't get localized. 346 | # 347 | # SCRIPTING 348 | # You can specify a script that gets run when the rule matches by 349 | # setting the "script" option. 350 | # The script will be called as follows: 351 | # script appname summary body icon urgency 352 | # where urgency can be "LOW", "NORMAL" or "CRITICAL". 353 | # 354 | # NOTE: if you don't want a notification to be displayed, set the format 355 | # to "". 356 | # NOTE: It might be helpful to run dunst -print in a terminal in order 357 | # to find fitting options for rules. 358 | 359 | # Disable the transient hint so that idle_threshold cannot be bypassed from the 360 | # client 361 | #[transient_disable] 362 | # match_transient = yes 363 | # set_transient = no 364 | # 365 | # Make the handling of transient notifications more strict by making them not 366 | # be placed in history. 367 | #[transient_history_ignore] 368 | # match_transient = yes 369 | # history_ignore = yes 370 | 371 | # fullscreen values 372 | # show: show the notifications, regardless if there is a fullscreen window opened 373 | # delay: displays the new notification, if there is no fullscreen window active 374 | # If the notification is already drawn, it won't get undrawn. 375 | # pushback: same as delay, but when switching into fullscreen, the notification will get 376 | # withdrawn from screen again and will get delayed like a new notification 377 | #[fullscreen_delay_everything] 378 | # fullscreen = delay 379 | #[fullscreen_show_critical] 380 | # msg_urgency = critical 381 | # fullscreen = show 382 | 383 | #[espeak] 384 | # summary = "*" 385 | # script = dunst_espeak.sh 386 | 387 | #[script-test] 388 | # summary = "*script*" 389 | # script = dunst_test.sh 390 | 391 | #[ignore] 392 | # # This notification will not be displayed 393 | # summary = "foobar" 394 | # format = "" 395 | 396 | #[history-ignore] 397 | # # This notification will not be saved in history 398 | # summary = "foobar" 399 | # history_ignore = yes 400 | 401 | #[skip-display] 402 | # # This notification will not be displayed, but will be included in the history 403 | # summary = "foobar" 404 | # skip_display = yes 405 | 406 | #[signed_on] 407 | # appname = Pidgin 408 | # summary = "*signed on*" 409 | # urgency = low 410 | # 411 | #[signed_off] 412 | # appname = Pidgin 413 | # summary = *signed off* 414 | # urgency = low 415 | # 416 | #[says] 417 | # appname = Pidgin 418 | # summary = *says* 419 | # urgency = critical 420 | # 421 | #[twitter] 422 | # appname = Pidgin 423 | # summary = *twitter.com* 424 | # urgency = normal 425 | # 426 | #[stack-volumes] 427 | # appname = "some_volume_notifiers" 428 | # set_stack_tag = "volume" 429 | # 430 | # vim: ft=cfg 431 | -------------------------------------------------------------------------------- /.config/fish/config.fish: -------------------------------------------------------------------------------- 1 | if status is-interactive 2 | # Commands to run in interactive sessions can go here 3 | end 4 | set fish_greeting "" 5 | 6 | export VISUAL=vim; 7 | export EDITOR=vim; 8 | 9 | # list 10 | alias ls='exa -1a' 11 | alias ll='exa -BghHliSa' 12 | alias la='exa -BghHlSa' 13 | alias grep='grep --color=auto' 14 | alias egrep='egrep --color=auto' 15 | alias fgrep='fgrep --color=auto' 16 | alias vi='nvim' 17 | 18 | 19 | # fix obvious typo's 20 | alias cd..='cd ..' 21 | alias pdw="pwd" 22 | alias update='yay -Syyu' 23 | 24 | # userlist 25 | alias userlist="cut -d: -f1 /etc/passwd" 26 | 27 | -------------------------------------------------------------------------------- /.config/fish/fish_variables: -------------------------------------------------------------------------------- 1 | # This file contains fish universal variable definitions. 2 | # VERSION: 3.0 3 | SETUVAR __fish_initialized:3400 4 | SETUVAR fish_color_autosuggestion:BD93F9 5 | SETUVAR fish_color_cancel:\x2dr 6 | SETUVAR fish_color_command:F8F8F2 7 | SETUVAR fish_color_comment:6272A4 8 | SETUVAR fish_color_cwd:green 9 | SETUVAR fish_color_cwd_root:red 10 | SETUVAR fish_color_end:50FA7B 11 | SETUVAR fish_color_error:FFB86C 12 | SETUVAR fish_color_escape:00a6b2 13 | SETUVAR fish_color_history_current:\x2d\x2dbold 14 | SETUVAR fish_color_host:normal 15 | SETUVAR fish_color_host_remote:yellow 16 | SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue 17 | SETUVAR fish_color_normal:normal 18 | SETUVAR fish_color_operator:00a6b2 19 | SETUVAR fish_color_param:FF79C6 20 | SETUVAR fish_color_quote:F1FA8C 21 | SETUVAR fish_color_redirection:8BE9FD 22 | SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack 23 | SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack 24 | SETUVAR fish_color_status:red 25 | SETUVAR fish_color_user:brgreen 26 | SETUVAR fish_color_valid_path:\x2d\x2dunderline 27 | SETUVAR fish_key_bindings:fish_default_key_bindings 28 | SETUVAR fish_pager_color_completion:normal 29 | SETUVAR fish_pager_color_description:B3A06D\x1eyellow 30 | SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline 31 | SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan 32 | SETUVAR fish_pager_color_selected_background:\x2dr 33 | -------------------------------------------------------------------------------- /.config/fish/functions/fish_prompt.fish: -------------------------------------------------------------------------------- 1 | function fish_prompt 2 | set -l __last_command_exit_status $status 3 | 4 | if not set -q -g __fish_arrow_functions_defined 5 | set -g __fish_arrow_functions_defined 6 | function _git_branch_name 7 | set -l branch (git symbolic-ref --quiet HEAD 2>/dev/null) 8 | if set -q branch[1] 9 | echo (string replace -r '^refs/heads/' '' $branch) 10 | else 11 | echo (git rev-parse --short HEAD 2>/dev/null) 12 | end 13 | end 14 | 15 | function _is_git_dirty 16 | not command git diff-index --cached --quiet HEAD -- &>/dev/null 17 | or not command git diff --no-ext-diff --quiet --exit-code &>/dev/null 18 | end 19 | 20 | function _is_git_repo 21 | type -q git 22 | or return 1 23 | git rev-parse --git-dir >/dev/null 2>&1 24 | end 25 | 26 | function _hg_branch_name 27 | echo (hg branch 2>/dev/null) 28 | end 29 | 30 | function _is_hg_dirty 31 | set -l stat (hg status -mard 2>/dev/null) 32 | test -n "$stat" 33 | end 34 | 35 | function _is_hg_repo 36 | fish_print_hg_root >/dev/null 37 | end 38 | 39 | function _repo_branch_name 40 | _$argv[1]_branch_name 41 | end 42 | 43 | function _is_repo_dirty 44 | _is_$argv[1]_dirty 45 | end 46 | 47 | function _repo_type 48 | if _is_hg_repo 49 | echo hg 50 | return 0 51 | else if _is_git_repo 52 | echo git 53 | return 0 54 | end 55 | return 1 56 | end 57 | end 58 | 59 | set -l cyan (set_color -o cyan) 60 | set -l yellow (set_color -o yellow) 61 | set -l red (set_color -o red) 62 | set -l green (set_color -o green) 63 | set -l blue (set_color -o blue) 64 | set -l normal (set_color normal) 65 | 66 | set -l arrow_color "$green" 67 | if test $__last_command_exit_status != 0 68 | set arrow_color "$red" 69 | end 70 | 71 | echo -n (set_color red)'❯'(set_color yellow)'❯'(set_color green)'❯' 72 | if fish_is_root_user 73 | set arrow "$arrow_color" 74 | end 75 | 76 | set -l cwd $cyan(basename (prompt_pwd)) 77 | 78 | set -l repo_info 79 | if set -l repo_type (_repo_type) 80 | set -l repo_branch $red(_repo_branch_name $repo_type) 81 | set repo_info "$blue $repo_type:($repo_branch$blue)" 82 | 83 | if _is_repo_dirty $repo_type 84 | set -l dirty "$yellow ✗" 85 | set repo_info "$repo_info$dirty" 86 | end 87 | end 88 | 89 | echo -n -s $arrow ' '$cwd $repo_info $normal ' ' 90 | end 91 | -------------------------------------------------------------------------------- /.config/fish/functions/fish_right_prompt.fish: -------------------------------------------------------------------------------- 1 | function fish_right_prompt 2 | set -l cmd_status $status 3 | if test $cmd_status -ne 0 4 | echo -n (set_color red)"✘ $cmd_status" 5 | end 6 | 7 | if not command -sq git 8 | set_color normal 9 | return 10 | end 11 | 12 | # Get the git directory for later use. 13 | # Return if not inside a Git repository work tree. 14 | if not set -l git_dir (command git rev-parse --git-dir 2>/dev/null) 15 | set_color normal 16 | return 17 | end 18 | 19 | # Get the current action ("merge", "rebase", etc.) 20 | # and if there's one get the current commit hash too. 21 | set -l commit '' 22 | if set -l action (fish_print_git_action "$git_dir") 23 | set commit (command git rev-parse HEAD 2> /dev/null | string sub -l 7) 24 | end 25 | 26 | # Get either the branch name or a branch descriptor. 27 | set -l branch_detached 0 28 | if not set -l branch (command git symbolic-ref --short HEAD 2>/dev/null) 29 | set branch_detached 1 30 | set branch (command git describe --contains --all HEAD 2>/dev/null) 31 | end 32 | 33 | # Get the commit difference counts between local and remote. 34 | command git rev-list --count --left-right 'HEAD...@{upstream}' 2>/dev/null \ 35 | | read -d \t -l status_ahead status_behind 36 | if test $status -ne 0 37 | set status_ahead 0 38 | set status_behind 0 39 | end 40 | 41 | # Get the stash status. 42 | # (git stash list) is very slow. => Avoid using it. 43 | set -l status_stashed 0 44 | if test -f "$git_dir/refs/stash" 45 | set status_stashed 1 46 | else if test -r "$git_dir/commondir" 47 | read -l commondir <"$git_dir/commondir" 48 | if test -f "$commondir/refs/stash" 49 | set status_stashed 1 50 | end 51 | end 52 | 53 | # git-status' porcelain v1 format starts with 2 letters on each line: 54 | # The first letter (X) denotes the index state. 55 | # The second letter (Y) denotes the working directory state. 56 | # 57 | # The following table presents the possible combinations: 58 | # * The underscore character denotes whitespace. 59 | # * The cell values stand for the following file states: 60 | # a: added 61 | # d: deleted 62 | # m: modified 63 | # r: renamed 64 | # u: unmerged 65 | # t: untracked 66 | # * Cells with more than one letter signify that both states 67 | # are simultaneously the case. This is possible since the git index 68 | # and working directory operate independently of each other. 69 | # * Cells which are empty are unhandled by this code. 70 | # * T (= type change) is undocumented. 71 | # See Git v1.7.8.2 release notes for more information. 72 | # 73 | # \ Y→ 74 | # X \ 75 | # ↓ | A | C | D | M | R | T | U | X | B | ? | _ 76 | # ----+----+----+----+----+----+----+----+----+----+----+---- 77 | # A | u | | ad | am | r | am | u | | | | a 78 | # C | | | ad | am | r | am | u | | | | a 79 | # D | | | u | am | r | am | u | | | | a 80 | # M | | | ad | am | r | am | u | | | | a 81 | # R | r | r | rd | rm | r | rm | ur | r | r | r | r 82 | # T | | | ad | am | r | am | u | | | | a 83 | # U | u | u | u | um | ur | um | u | u | u | u | u 84 | # X | | | | m | r | m | u | | | | 85 | # B | | | | m | r | m | u | | | | 86 | # ? | | | | m | r | m | u | | | t | 87 | # _ | | | d | m | r | m | u | | | | 88 | set -l porcelain_status (command git status --porcelain | string sub -l2) 89 | 90 | set -l status_added 0 91 | if string match -qr '[ACDMT][ MT]|[ACMT]D' $porcelain_status 92 | set status_added 1 93 | end 94 | set -l status_deleted 0 95 | if string match -qr '[ ACMRT]D' $porcelain_status 96 | set status_deleted 1 97 | end 98 | set -l status_modified 0 99 | if string match -qr '[MT]$' $porcelain_status 100 | set status_modified 1 101 | end 102 | set -l status_renamed 0 103 | if string match -qe R $porcelain_status 104 | set status_renamed 1 105 | end 106 | set -l status_unmerged 0 107 | if string match -qr 'AA|DD|U' $porcelain_status 108 | set status_unmerged 1 109 | end 110 | set -l status_untracked 0 111 | if string match -qe '\?\?' $porcelain_status 112 | set status_untracked 1 113 | end 114 | 115 | set_color -o 116 | 117 | if test -n "$branch" 118 | if test $branch_detached -ne 0 119 | set_color brmagenta 120 | else 121 | set_color green 122 | end 123 | echo -n " $branch" 124 | end 125 | if test -n "$commit" 126 | echo -n ' '(set_color yellow)"$commit" 127 | end 128 | if test -n "$action" 129 | set_color normal 130 | echo -n (set_color white)':'(set_color -o brred)"$action" 131 | end 132 | if test $status_ahead -ne 0 133 | echo -n ' '(set_color brmagenta)'⬆' 134 | end 135 | if test $status_behind -ne 0 136 | echo -n ' '(set_color brmagenta)'⬇' 137 | end 138 | if test $status_stashed -ne 0 139 | echo -n ' '(set_color cyan)'✭' 140 | end 141 | if test $status_added -ne 0 142 | echo -n ' '(set_color green)'✚' 143 | end 144 | if test $status_deleted -ne 0 145 | echo -n ' '(set_color red)'✖' 146 | end 147 | if test $status_modified -ne 0 148 | echo -n ' '(set_color blue)'✱' 149 | end 150 | if test $status_renamed -ne 0 151 | echo -n ' '(set_color magenta)'➜' 152 | end 153 | if test $status_unmerged -ne 0 154 | echo -n ' '(set_color yellow)'═' 155 | end 156 | if test $status_untracked -ne 0 157 | echo -n ' '(set_color white)'◼' 158 | end 159 | 160 | set_color normal 161 | end 162 | -------------------------------------------------------------------------------- /.config/flameshot/flameshot.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/naurissteins/dotfiles/15e20fc9f9291fd341a076961bc318797533c98a/.config/flameshot/flameshot.conf -------------------------------------------------------------------------------- /.config/flameshot/flameshot.ini: -------------------------------------------------------------------------------- 1 | [General] 2 | contrastOpacity=188 3 | contrastUiColor=#3f1f46 4 | disabledTrayIcon=false 5 | drawColor=#ff00ff 6 | drawThickness=3 7 | savePath=/home/ns/Pictures/Screenshots 8 | showStartupLaunchMessage=true 9 | uiColor=#0c1c25 10 | undoLimit=100 11 | uploadHistoryMax=25 12 | -------------------------------------------------------------------------------- /.config/gcolor3/config.ini: -------------------------------------------------------------------------------- 1 | [Colors] 2 | black=#1e222a 3 | black 2=#606060 4 | red=#ff4c6d 5 | green=#60b463 6 | green 2=#8ad770 7 | green 3=#c3e579 8 | -------------------------------------------------------------------------------- /.config/mpd/README.md: -------------------------------------------------------------------------------- 1 | ### Database Updates 2 | MPD should automatically update its database when files in its music directory change. However, I sometimes need to prod it: 3 | ``` 4 | mpc update 5 | ``` 6 | 7 | ### Playlists 8 | MPD has one active playlist at a time, also called the queue. Save the current playlist to a file or load a different playlist: 9 | ``` 10 | mpc lsplaylists 11 | mpc save myfavorites 12 | mpc load jazz 13 | ``` 14 | -------------------------------------------------------------------------------- /.config/mpd/mpd.conf: -------------------------------------------------------------------------------- 1 | # Recommended location for database 2 | #bind_to_address "0.0.0.0" 3 | #bind_to_address "~/.mpd/socket" 4 | db_file "~/.config/mpd/database" 5 | 6 | # Logs to systemd journal 7 | log_file "syslog" 8 | 9 | # The music directory is by default the XDG directory, uncomment to amend and choose a different directory 10 | music_directory "~/Music" 11 | 12 | # Uncomment to refresh the database whenever files in the music_directory are changed 13 | #auto_update "yes" 14 | 15 | # Uncomment to enable the functionalities 16 | playlist_directory "~/.config/mpd/playlists" 17 | pid_file "~/.config/mpd/pid" 18 | #state_file "~/.config/mpd/state" 19 | #sticker_file "~/.config/mpd/sticker.sql" 20 | 21 | audio_output { 22 | type "pulse" 23 | name "pulse audio" 24 | } 25 | 26 | audio_output { 27 | type "fifo" 28 | name "Visualizer feed" 29 | path "/tmp/mpd.fifo" 30 | format "44100:16:2" 31 | } 32 | -------------------------------------------------------------------------------- /.config/mpv/mpv.conf: -------------------------------------------------------------------------------- 1 | loop-file=inf 2 | -------------------------------------------------------------------------------- /.config/ncmpcpp/config: -------------------------------------------------------------------------------- 1 | # vim: filetype=conf 2 | 3 | ## Directories 4 | ncmpcpp_directory = "~/.config/ncmpcpp/" 5 | lyrics_directory = "~/.config/ncmpcpp/lyrics/" 6 | 7 | ## MPD 8 | mpd_music_dir = "~/Music" 9 | 10 | 11 | ## Visualizer 12 | visualizer_data_source = "/tmp/mpd.fifo" 13 | visualizer_output_name = "visualizer" 14 | visualizer_type = "spectrum" 15 | visualizer_look = "+|" 16 | 17 | 18 | ## Format and colors 19 | 20 | 21 | song_columns_list_format = "(7)[magenta]{l} (25)[cyan]{a} (40)[blue]{t|f} (30)[green]{b}" 22 | 23 | 24 | 25 | message_delay_time = "3" 26 | playlist_shorten_total_times = "yes" 27 | playlist_display_mode = "columns" 28 | browser_display_mode = "columns" 29 | search_engine_display_mode = "columns" 30 | playlist_editor_display_mode = "columns" 31 | autocenter_mode = "yes" 32 | centered_cursor = "yes" 33 | #user_interface = "alternative" 34 | #follow_now_playing_lyrics = "yes" 35 | #locked_screen_width_part = "60" 36 | #display_bitrate = "yes" 37 | 38 | header_window_color = "white" 39 | main_window_color = "yellow" 40 | #alternative_ui_separator_color = "red" 41 | 42 | 43 | 44 | external_editor = "vim" 45 | use_console_editor = "yes" 46 | 47 | volume_color = "white" 48 | state_line_color = "black" 49 | state_flags_color = "white" 50 | progressbar_color = "yellow" 51 | statusbar_color = "cyan" 52 | visualizer_color = "green" 53 | -------------------------------------------------------------------------------- /.config/nvim/init.vim: -------------------------------------------------------------------------------- 1 | source $HOME/.config/nvim/vim-plug/plugins.vim 2 | source $HOME/.config/nvim/themes/ayu-vim.vim 3 | 4 | -------------------------------------------------------------------------------- /.config/nvim/themes/ayu-vim.vim: -------------------------------------------------------------------------------- 1 | set termguicolors " enable true colors support 2 | "let ayucolor="light" " for light version of theme 3 | let ayucolor="mirage" " for mirage version of theme 4 | "let ayucolor="dark" " for dark version of theme 5 | colorscheme ayu 6 | set number 7 | "set mouse=a 8 | "set mouse-=a 9 | set clipboard+=unnamedplus 10 | -------------------------------------------------------------------------------- /.config/nvim/vim-plug/plugins.vim: -------------------------------------------------------------------------------- 1 | " auto-install vim-plug 2 | if empty(glob('~/.config/nvim/autoload/plug.vim')) 3 | silent !curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs 4 | \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim 5 | "autocmd VimEnter * PlugInstall 6 | "autocmd VimEnter * PlugInstall | source $MYVIMRC 7 | endif 8 | 9 | call plug#begin('~/.config/nvim/autoload/plugged') 10 | 11 | " Better Syntax Support 12 | Plug 'sheerun/vim-polyglot' 13 | " File Explorer 14 | Plug 'scrooloose/NERDTree' 15 | " Auto pairs for '(' '[' '{' 16 | Plug 'jiangmiao/auto-pairs' 17 | " Theme 18 | Plug 'ayu-theme/ayu-vim' 19 | 20 | call plug#end() 21 | -------------------------------------------------------------------------------- /.config/polybar/launch.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | # More info : https://github.com/jaagr/polybar/wiki 4 | 5 | # Install the following applications for polybar and icons in polybar if you are on ArcoLinuxD 6 | # awesome-terminal-fonts 7 | # Tip : There are other interesting fonts that provide icons like nerd-fonts-complete 8 | # --log=error 9 | # Terminate already running bar instances 10 | killall -q polybar 11 | 12 | # Wait until the processes have been shut down 13 | while pgrep -u $UID -x polybar > /dev/null; do sleep 1; done 14 | 15 | desktop=$(echo $DESKTOP_SESSION) 16 | count=$(xrandr --query | grep " connected" | cut -d" " -f1 | wc -l) 17 | 18 | 19 | case $desktop in 20 | 21 | i3|/usr/share/xsessions/i3) 22 | if type "xrandr" > /dev/null; then 23 | for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do 24 | MONITOR=$m polybar --reload mainbar-i3 -c ~/.config/polybar/config & 25 | done 26 | else 27 | polybar --reload mainbar-i3 -c ~/.config/polybar/config & 28 | fi 29 | # second polybar at bottom 30 | # if type "xrandr" > /dev/null; then 31 | # for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do 32 | # MONITOR=$m polybar --reload mainbar-i3-extra -c ~/.config/polybar/config & 33 | # done 34 | # else 35 | # polybar --reload mainbar-i3-extra -c ~/.config/polybar/config & 36 | # fi 37 | ;; 38 | 39 | openbox|/usr/share/xsessions/openbox) 40 | if type "xrandr" > /dev/null; then 41 | for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do 42 | MONITOR=$m polybar --reload mainbar-openbox -c ~/.config/polybar/config & 43 | done 44 | else 45 | polybar --reload mainbar-openbox -c ~/.config/polybar/config & 46 | fi 47 | # second polybar at bottom 48 | # if type "xrandr" > /dev/null; then 49 | # for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do 50 | # MONITOR=$m polybar --reload mainbar-openbox-extra -c ~/.config/polybar/config & 51 | # done 52 | # else 53 | # polybar --reload mainbar-openbox-extra -c ~/.config/polybar/config & 54 | # fi 55 | ;; 56 | 57 | bspwm|/usr/share/xsessions/bspwm) 58 | if type "xrandr" > /dev/null; then 59 | for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do 60 | MONITOR=$m polybar --reload mainbar-bspwm -c ~/.config/polybar/config & 61 | done 62 | else 63 | polybar --reload mainbar-bspwm -c ~/.config/polybar/config & 64 | fi 65 | # second polybar at bottom 66 | # if type "xrandr" > /dev/null; then 67 | # for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do 68 | # MONITOR=$m polybar --reload mainbar-bspwm-extra -c ~/.config/polybar/config & 69 | # done 70 | # else 71 | # polybar --reload mainbar-bspwm-extra -c ~/.config/polybar/config & 72 | # fi 73 | ;; 74 | 75 | herbstluftwm|/usr/share/xsessions/herbstluftwm) 76 | if type "xrandr" > /dev/null; then 77 | for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do 78 | MONITOR=$m polybar --reload mainbar-herbstluftwm -c ~/.config/polybar/config & 79 | done 80 | else 81 | polybar --reload mainbar-herbstluftwm -c ~/.config/polybar/config & 82 | fi 83 | # second polybar at bottom 84 | # if type "xrandr" > /dev/null; then 85 | # for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do 86 | # MONITOR=$m polybar --reload mainbar-herbstluftwm-extra -c ~/.config/polybar/config & 87 | # done 88 | # else 89 | # polybar --reload mainbar-herbstluftwm-extra -c ~/.config/polybar/config & 90 | # fi 91 | ;; 92 | 93 | xmonad|/usr/share/xsessions/xmonad) 94 | if [ $count = 1 ]; then 95 | m=$(xrandr --query | grep " connected" | cut -d" " -f1) 96 | MONITOR=$m polybar --reload mainbar-xmonad -c ~/.config/polybar/config & 97 | else 98 | for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do 99 | MONITOR=$m polybar --reload mainbar-xmonad -c ~/.config/polybar/config & 100 | done 101 | fi 102 | # second polybar at bottom 103 | # if [ $count = 1 ]; then 104 | # m=$(xrandr --query | grep " connected" | cut -d" " -f1) 105 | # MONITOR=$m polybar --reload mainbar-xmonad-extra -c ~/.config/polybar/config & 106 | # else 107 | # for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do 108 | # MONITOR=$m polybar --reload mainbar-xmonad-extra -c ~/.config/polybar/config & 109 | # done 110 | # fi 111 | ;; 112 | 113 | spectrwm|/usr/share/xsessions/spectrwm) 114 | if type "xrandr" > /dev/null; then 115 | for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do 116 | MONITOR=$m polybar --reload mainbar-spectrwm -c ~/.config/polybar/config & 117 | done 118 | else 119 | polybar --reload mainbar-spectrwm -c ~/.config/polybar/config & 120 | fi 121 | ;; 122 | 123 | cwm|/usr/share/xsessions/cwm) 124 | if type "xrandr" > /dev/null; then 125 | for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do 126 | MONITOR=$m polybar --reload mainbar-cwm -c ~/.config/polybar/config & 127 | done 128 | else 129 | polybar --reload mainbar-cwm -c ~/.config/polybar/config & 130 | fi 131 | 132 | # second polybar at bottom 133 | # if type "xrandr" > /dev/null; then 134 | # for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do 135 | # MONITOR=$m polybar --reload mainbar-cwm-extra -c ~/.config/polybar/config & 136 | # done 137 | # else 138 | # polybar --reload mainbar-cwm-extra -c ~/.config/polybar/config & 139 | # fi 140 | 141 | ;; 142 | 143 | fvwm3|/usr/share/xsessions/fvwm3) 144 | if type "xrandr" > /dev/null; then 145 | for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do 146 | MONITOR=$m polybar --reload mainbar-fvwm3 -c ~/.config/polybar/config & 147 | done 148 | else 149 | polybar --reload mainbar-fvwm3 -c ~/.config/polybar/config & 150 | fi 151 | 152 | # second polybar at bottom 153 | # if type "xrandr" > /dev/null; then 154 | # for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do 155 | # MONITOR=$m polybar --reload mainbar-fvwm3-extra -c ~/.config/polybar/config & 156 | # done 157 | # else 158 | # polybar --reload mainbar-fvwm3-extra -c ~/.config/polybar/config & 159 | # fi 160 | 161 | ;; 162 | 163 | wmderland|/usr/share/xsessions/wmderland) 164 | if type "xrandr" > /dev/null; then 165 | for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do 166 | MONITOR=$m polybar --reload mainbar-wmderland -c ~/.config/polybar/config & 167 | done 168 | else 169 | polybar --reload mainbar-wmderland -c ~/.config/polybar/config & 170 | fi 171 | # second polybar at bottom 172 | # if type "xrandr" > /dev/null; then 173 | # for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do 174 | # MONITOR=$m polybar --reload mainbar-wmderland-extra -c ~/.config/polybar/config & 175 | # done 176 | # else 177 | # polybar --reload mainbar-wmderland-extra -c ~/.config/polybar/config & 178 | # fi 179 | ;; 180 | 181 | leftwm|/usr/share/xsessions/leftwm) 182 | if type "xrandr" > /dev/null; then 183 | for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do 184 | MONITOR=$m polybar --reload mainbar-leftwm -c ~/.config/polybar/config & 185 | done 186 | else 187 | polybar --reload mainbar-leftwm -c ~/.config/polybar/config & 188 | fi 189 | # second polybar at bottom 190 | # if type "xrandr" > /dev/null; then 191 | # for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do 192 | # MONITOR=$m polybar --reload mainbar-leftwm-extra -c ~/.config/polybar/config & 193 | # done 194 | # else 195 | # polybar --reload mainbar-leftwm-extra -c ~/.config/polybar/config & 196 | # fi 197 | ;; 198 | 199 | esac 200 | -------------------------------------------------------------------------------- /.config/polybar/scripts/check-arch-updates.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | #source https://github.com/x70b1/polybar-scripts 3 | #source https://github.com/polybar/polybar-scripts 4 | 5 | if ! updates_arch=$(checkupdates 2> /dev/null | wc -l ); then 6 | updates_arch=0 7 | fi 8 | 9 | if [ $updates_arch -gt 0 ]; then 10 | echo $updates_arch 11 | else 12 | echo "0" 13 | fi 14 | -------------------------------------------------------------------------------- /.config/polybar/scripts/check-aur-updates.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | #source https://github.com/x70b1/polybar-scripts 3 | #source https://github.com/polybar/polybar-scripts 4 | 5 | if ! updates_aur=$(yay -Qum 2> /dev/null | wc -l ); then 6 | updates_aur=0 7 | fi 8 | 9 | if [ $updates_aur -gt 0 ]; then 10 | echo $updates_aur 11 | else 12 | echo "0" 13 | fi 14 | -------------------------------------------------------------------------------- /.config/polybar/scripts/get_spotify_status.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # The name of polybar bar which houses the main spotify module and the control modules. 4 | PARENT_BAR="mainbar-i3" 5 | 6 | # Set the source audio player here. 7 | # Players supporting the MPRIS spec are supported. 8 | # Examples: spotify, vlc, chrome, mpv and others. 9 | # Use `playerctld` to always detect the latest player. 10 | # See more here: https://github.com/altdesktop/playerctl/#selecting-players-to-control 11 | PLAYER="spotify" 12 | 13 | # Format of the information displayed 14 | # Eg. {{ artist }} - {{ album }} - {{ title }} 15 | # See more attributes here: https://github.com/altdesktop/playerctl/#printing-properties-and-metadata 16 | FORMAT="{{ title }} - {{ artist }}" 17 | 18 | PLAYERCTL_STATUS=$(playerctl --player=$PLAYER status 2>/dev/null) 19 | EXIT_CODE=$? 20 | 21 | if [ $EXIT_CODE -eq 0 ]; then 22 | STATUS=$PLAYERCTL_STATUS 23 | else 24 | STATUS="No player is running" 25 | fi 26 | 27 | if [ "$1" == "--status" ]; then 28 | echo "$STATUS" 29 | else 30 | if [ "$STATUS" = "Stopped" ]; then 31 | echo "No music is playing" 32 | # A note on hooks: 33 | # In the polybar config, they are supposed to be zero-indexed. 34 | # When making IPC calls, 1-based index numbers are to be used. 35 | # So don't get confused with hook value as 2. 36 | elif [ "$STATUS" = "Paused" ]; then 37 | polybar-msg -p "$(pgrep -f "polybar $PARENT_BAR")" hook spotify-play-pause 2 1>/dev/null 2>&1 38 | playerctl --player=$PLAYER metadata --format "$FORMAT" 39 | elif [ "$STATUS" = "No player is running" ]; then 40 | echo $STATUS 41 | else 42 | polybar-msg -p "$(pgrep -f "polybar $PARENT_BAR")" hook spotify-play-pause 1 1>/dev/null 2>&1 43 | playerctl --player=$PLAYER metadata --format "$FORMAT" 44 | fi 45 | fi 46 | -------------------------------------------------------------------------------- /.config/polybar/scripts/pavolume.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # finds the active sink for pulse audio and increments the volume. useful when you have multiple audio outputs and have a key bound to vol-up and down 4 | 5 | osd='no' 6 | inc='2' 7 | capvol='no' 8 | maxvol='200' 9 | autosync='yes' 10 | 11 | # Muted status 12 | # yes: muted 13 | # no : not muted 14 | curStatus="no" 15 | active_sink="" 16 | limit=$((100 - inc)) 17 | maxlimit=$((maxvol - inc)) 18 | 19 | reloadSink() { 20 | active_sink=$(pacmd list-sinks | awk '/* index:/{print $3}') 21 | } 22 | 23 | function volUp { 24 | 25 | getCurVol 26 | 27 | if [ "$capvol" = 'yes' ] 28 | then 29 | if [ "$curVol" -le 100 ] && [ "$curVol" -ge "$limit" ] 30 | then 31 | pactl set-sink-volume "$active_sink" -- 100% 32 | elif [ "$curVol" -lt "$limit" ] 33 | then 34 | pactl set-sink-volume "$active_sink" -- "+$inc%" 35 | fi 36 | elif [ "$curVol" -le "$maxvol" ] && [ "$curVol" -ge "$maxlimit" ] 37 | then 38 | pactl set-sink-volume "$active_sink" "$maxvol%" 39 | elif [ "$curVol" -lt "$maxlimit" ] 40 | then 41 | pactl set-sink-volume "$active_sink" "+$inc%" 42 | fi 43 | 44 | getCurVol 45 | 46 | if [ ${osd} = 'yes' ] 47 | then 48 | qdbus org.kde.kded /modules/kosd showVolume "$curVol" 0 49 | fi 50 | 51 | if [ ${autosync} = 'yes' ] 52 | then 53 | volSync 54 | fi 55 | } 56 | 57 | function volDown { 58 | 59 | pactl set-sink-volume "$active_sink" "-$inc%" 60 | getCurVol 61 | 62 | if [ ${osd} = 'yes' ] 63 | then 64 | qdbus org.kde.kded /modules/kosd showVolume "$curVol" 0 65 | fi 66 | 67 | if [ ${autosync} = 'yes' ] 68 | then 69 | volSync 70 | fi 71 | 72 | } 73 | 74 | function getSinkInputs { 75 | input_array=$(pacmd list-sink-inputs | grep -B 4 "sink: $1 " | awk '/index:/{print $2}') 76 | } 77 | 78 | function volSync { 79 | getSinkInputs "$active_sink" 80 | getCurVol 81 | 82 | for each in $input_array 83 | do 84 | pactl set-sink-input-volume "$each" "$curVol%" 85 | done 86 | } 87 | 88 | function getCurVol { 89 | curVol=$(pacmd list-sinks | grep -A 15 "index: $active_sink$" | grep 'volume:' | grep -E -v 'base volume:' | awk -F : '{print $3}' | grep -o -P '.{0,3}%'| sed s/.$// | tr -d ' ') 90 | } 91 | 92 | function volMute { 93 | case "$1" in 94 | mute) 95 | pactl set-sink-mute "$active_sink" 1 96 | curVol=0 97 | status=1 98 | ;; 99 | unmute) 100 | pactl set-sink-mute "$active_sink" 0 101 | getCurVol 102 | status=0 103 | ;; 104 | esac 105 | 106 | if [ ${osd} = 'yes' ] 107 | then 108 | qdbus org.kde.kded /modules/kosd showVolume ${curVol} ${status} 109 | fi 110 | 111 | } 112 | 113 | function volMuteStatus { 114 | curStatus=$(pacmd list-sinks | grep -A 15 "index: $active_sink$" | awk '/muted/{ print $2}') 115 | } 116 | 117 | # Prints output for bar 118 | # Listens for events for fast update speed 119 | function listen { 120 | firstrun=0 121 | 122 | pactl subscribe 2>/dev/null | { 123 | while true; do 124 | { 125 | # If this is the first time just continue 126 | # and print the current state 127 | # Otherwise wait for events 128 | # This is to prevent the module being empty until 129 | # an event occurs 130 | if [ $firstrun -eq 0 ] 131 | then 132 | firstrun=1 133 | else 134 | read -r event || break 135 | if ! echo "$event" | grep -e "on card" -e "on sink" 136 | then 137 | # Avoid double events 138 | continue 139 | fi 140 | fi 141 | } &>/dev/null 142 | output 143 | done 144 | } 145 | } 146 | 147 | function output() { 148 | reloadSink 149 | getCurVol 150 | volMuteStatus 151 | if [ "${curStatus}" = 'yes' ] 152 | then 153 | echo " $curVol%" 154 | else 155 | echo " $curVol%" 156 | fi 157 | } #}}} 158 | 159 | reloadSink 160 | case "$1" in 161 | --up) 162 | volUp 163 | ;; 164 | --down) 165 | volDown 166 | ;; 167 | --togmute) 168 | volMuteStatus 169 | if [ "$curStatus" = 'yes' ] 170 | then 171 | volMute unmute 172 | else 173 | volMute mute 174 | fi 175 | ;; 176 | --mute) 177 | volMute mute 178 | ;; 179 | --unmute) 180 | volMute unmute 181 | ;; 182 | --sync) 183 | volSync 184 | ;; 185 | --listen) 186 | # Listen for changes and immediately create new output for the bar 187 | # This is faster than having the script on an interval 188 | listen 189 | ;; 190 | *) 191 | # By default print output for bar 192 | output 193 | ;; 194 | esac -------------------------------------------------------------------------------- /.config/polybar/scripts/pub-ip.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # credits 4 | # https://linuxconfig.org/polybar-a-better-wm-panel-for-your-linux-system 5 | 6 | IP=$(dig +short myip.opendns.com @resolver1.opendns.com) 7 | 8 | if pgrep -x openvpn > /dev/null; then 9 | echo VPN: $IP 10 | else 11 | echo $IP 12 | fi 13 | -------------------------------------------------------------------------------- /.config/polybar/scripts/scroll_spotify_status.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # see man zscroll for documentation of the following parameters 4 | zscroll -l 80 \ 5 | --delay 0.1 \ 6 | --scroll-padding "  " \ 7 | --match-command "$HOME/.config/polybar/scripts/get_spotify_status.sh --status" \ 8 | --match-text "Playing" "--scroll 1" \ 9 | --match-text "Paused" "--scroll 0" \ 10 | --update-check true "$HOME/.config/polybar/scripts/get_spotify_status.sh" & 11 | 12 | wait 13 | -------------------------------------------------------------------------------- /.config/polybar/scripts/spotify1.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # credits 4 | # https://github.com/NicholasFeldman/dotfiles/blob/master/polybar/.config/polybar/spotify.sh 5 | 6 | main() { 7 | if ! pgrep -x spotify >/dev/null; then 8 | echo ""; exit 9 | fi 10 | 11 | cmd="org.freedesktop.DBus.Properties.Get" 12 | domain="org.mpris.MediaPlayer2" 13 | path="/org/mpris/MediaPlayer2" 14 | 15 | meta=$(dbus-send --print-reply --dest=${domain}.spotify \ 16 | /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get string:${domain}.Player string:Metadata) 17 | 18 | artist=$(echo "$meta" | sed -nr '/xesam:artist"/,+2s/^ +string "(.*)"$/\1/p' | tail -1 | sed "s/\&/+/g") 19 | album=$(echo "$meta" | sed -nr '/xesam:album"/,+2s/^ +variant +string "(.*)"$/\1/p' | tail -1) 20 | title=$(echo "$meta" | sed -nr '/xesam:title"/,+2s/^ +variant +string "(.*)"$/\1/p' | tail -1 | sed "s/\&/+/g") 21 | 22 | echo "${*:-%artist% - %title%}" | sed "s/%artist%/$artist/g;s/%title%/$title/g;s/%album%/$album/g"i | sed 's/&/\\&/g' 23 | } 24 | 25 | main "$@" -------------------------------------------------------------------------------- /.config/polybar/scripts/tempcores.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # fork from Per-core temperatures : 4 | # https://github.com/jaagr/polybar/wiki/User-contributed-modules#per-core-temperatures 5 | 6 | # Get information from cores temp thanks to sensors 7 | rawData=$( sensors | grep -m 1 Core | awk '{print substr($3, 2, length($3)-5)}' ) 8 | tempCore=($rawData) 9 | 10 | # Define constants : 11 | degree="°C" 12 | temperaturesValues=(40 50 60 70 80 90) 13 | temperaturesColors=("#6bff49" "#f4cb24" "#ff8819" "#ff3205" "#f40202" "#ef02db") 14 | temperaturesIcons=(     ) 15 | 16 | for iCore in ${!tempCore[*]} 17 | do 18 | for iTemp in ${!temperaturesValues[*]} 19 | do 20 | if (( "${tempCore[$iCore]}" < "${temperaturesValues[$iTemp]}" )); then 21 | tmpEcho="%{F${temperaturesColors[$iTemp]}}${tempCore[$iCore]}$degree%{F-}" 22 | finalEcho="$finalEcho $tmpEcho" 23 | break 24 | fi 25 | done 26 | total=$(( ${tempCore[$iCore]} + total )); 27 | done 28 | 29 | sum=$(( $total/${#tempCore[*]} )) 30 | 31 | for iTemp in ${!temperaturesValues[*]} 32 | do 33 | if (( "$sum" < "${temperaturesValues[$iTemp]}" )); then 34 | ## This line will color the icon too 35 | tmpEcho="%{F${temperaturesColors[$iTemp]}}${temperaturesIcons[$iTemp]}%{F-}" 36 | ## This line will NOT color the icon 37 | #tmpEcho="${temperaturesIcons[$iTemp]}" 38 | finalEcho=" $finalEcho $tmpEcho" 39 | break 40 | fi 41 | done 42 | 43 | echo $finalEcho 44 | -------------------------------------------------------------------------------- /.config/polybar/scripts/weather.py: -------------------------------------------------------------------------------- 1 | #!/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Procedure 5 | # Surf to https://openweathermap.org/city 6 | # Fill in your CITY 7 | # e.g. Antwerp Belgium 8 | # Check url 9 | # https://openweathermap.org/city/2803138 10 | # you will the city code at the end 11 | # create an account on this website 12 | # create an api key (free) 13 | # LANG included thanks to krive001 on discord 14 | 15 | 16 | import requests 17 | 18 | CITY = "2803138" 19 | API_KEY = "756edce7e9d4c385ef9499a53492678c" 20 | UNITS = "Metric" 21 | UNIT_KEY = "C" 22 | #UNIT_KEY = "F" 23 | LANG = "en" 24 | #LANG = "nl" 25 | #LANG = "hu" 26 | 27 | REQ = requests.get("http://api.openweathermap.org/data/2.5/weather?id={}&lang={}&appid={}&units={}".format(CITY, LANG, API_KEY, UNITS)) 28 | try: 29 | # HTTP CODE = OK 30 | if REQ.status_code == 200: 31 | CURRENT = REQ.json()["weather"][0]["description"].capitalize() 32 | TEMP = int(float(REQ.json()["main"]["temp"])) 33 | print("{}, {} °{}".format(CURRENT, TEMP, UNIT_KEY)) 34 | else: 35 | print("Error: BAD HTTP STATUS CODE " + str(REQ.status_code)) 36 | except (ValueError, IOError): 37 | print("Error: Unable print the data") 38 | -------------------------------------------------------------------------------- /.config/ranger/rc.conf: -------------------------------------------------------------------------------- 1 | set show_hidden true 2 | -------------------------------------------------------------------------------- /.config/rofi/launchers/misc/kde_krunner.rasi: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Author : Aditya Shakya 4 | * Mail : adi1090x@gmail.com 5 | * Github : @adi1090x 6 | * Twitter : @adi1090x 7 | * 8 | */ 9 | 10 | configuration { 11 | font: "Noto Sans 13"; 12 | show-icons: true; 13 | icon-theme: "Papirus"; 14 | display-drun: ""; 15 | drun-display-format: "{name}"; 16 | disable-history: false; 17 | sidebar-mode: false; 18 | } 19 | 20 | /* -- Breeze Light-- */ 21 | * { 22 | background: #282a36FF; 23 | background-alt: #00000000; 24 | background-bar: #30323d99; 25 | foreground: #FFFFFFA6; 26 | accent: #ff79c6FF; 27 | } 28 | 29 | /* -- Breeze Dark-- */ 30 | /* 31 | * { 32 | background: #31363bff; 33 | background-alt: #00000000; 34 | background-bar: #3daee966; 35 | foreground: #f5f5f5e6; 36 | accent: #1d99f3ff; 37 | } 38 | */ 39 | 40 | /* -- Black-- */ 41 | /* 42 | * { 43 | background: #000000ff; 44 | background-alt: #00000000; 45 | background-bar: #3daee966; 46 | foreground: #f5f5f5b3; 47 | accent: #1d99f3ff; 48 | } 49 | */ 50 | 51 | window { 52 | transparency: "real"; 53 | background-color: @background; 54 | text-color: @foreground; 55 | border: 0px; 56 | border-color: @border; 57 | border-radius: 0px; 58 | width: 28%; 59 | location: center; 60 | x-offset: 0; 61 | y-offset: 0; 62 | } 63 | 64 | prompt { 65 | enabled: true; 66 | padding: 0.30% 0.75% 0% -0.5%; 67 | background-color: @background-alt; 68 | text-color: @foreground; 69 | font: "FantasqueSansMono Nerd Font 13"; 70 | } 71 | 72 | entry { 73 | background-color: @background-alt; 74 | text-color: @foreground; 75 | placeholder-color: @foreground; 76 | expand: true; 77 | horizontal-align: 0; 78 | placeholder: "Search"; 79 | padding: -0.15% 0% 0% 0%; 80 | blink: true; 81 | } 82 | 83 | inputbar { 84 | children: [ prompt, entry ]; 85 | background-color: @background-bar; 86 | text-color: @foreground; 87 | expand: false; 88 | border: 0; 89 | border-radius: 0px; 90 | border-color: @accent; 91 | margin: 0% 0% 0% 0%; 92 | padding: 1%; 93 | } 94 | 95 | listview { 96 | background-color: @background-alt; 97 | columns: 1; 98 | lines: 7; 99 | spacing: 0.1%; 100 | cycle: false; 101 | dynamic: true; 102 | layout: vertical; 103 | 104 | } 105 | 106 | mainbox { 107 | background-color: @background-alt; 108 | border: 0% 0% 0% 0%; 109 | border-radius: 0% 0% 0% 0%; 110 | border-color: @accent; 111 | children: [ inputbar, listview ]; 112 | spacing: 1%; 113 | padding: 1% 0.5% 1% 0.5%; 114 | } 115 | 116 | element { 117 | background-color: @background-alt; 118 | text-color: @foreground; 119 | orientation: horizontal; 120 | border-radius: 0%; 121 | padding: 0.5%; 122 | } 123 | 124 | element-icon { 125 | background-color: @background-alt; 126 | text-color: inherit; 127 | horizontal-align: 0.5; 128 | vertical-align: 0.5; 129 | size: 42px; 130 | border: 0px; 131 | } 132 | 133 | element-text { 134 | background-color: @background-alt; 135 | text-color: inherit; 136 | expand: true; 137 | horizontal-align: 0; 138 | vertical-align: 0.5; 139 | margin: 0% 0% 0% 0.25%; 140 | } 141 | 142 | element selected { 143 | background-color: @background-bar; 144 | text-color: @foreground; 145 | border: 0; 146 | border-radius: 0px; 147 | border-color: @accent; 148 | } 149 | -------------------------------------------------------------------------------- /.config/rofi/launchers/misc/launcher.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ## Author : Aditya Shakya 4 | ## Mail : adi1090x@gmail.com 5 | ## Github : @adi1090x 6 | ## Twitter : @adi1090x 7 | 8 | # Available Styles 9 | # >> Created and tested on : rofi 1.6.0-1 10 | # 11 | # blurry blurry_full kde_simplemenu kde_krunner launchpad 12 | # gnome_do slingshot appdrawer appdrawer_alt appfolder 13 | # column row row_center screen row_dock row_dropdown 14 | 15 | theme="kde_krunner" 16 | dir="$HOME/.config/rofi/launchers/misc" 17 | 18 | # comment these lines to disable random style 19 | #themes=($(ls -p --hide="launcher.sh" $dir)) 20 | #theme="${themes[$(( $RANDOM % 16 ))]}" 21 | 22 | rofi -no-lazy-grab -show drun -modi drun -theme $dir/"$theme" 23 | -------------------------------------------------------------------------------- /.config/terminator/config: -------------------------------------------------------------------------------- 1 | [global_config] 2 | dbus = False 3 | extra_styling = False 4 | tab_position = Hidden 5 | hide_tabbar = True 6 | scroll_tabbar = True 7 | homogeneous_tabbar = False 8 | title_transmit_bg_color = "#000000" 9 | title_receive_bg_color = "#000000" 10 | title_inactive_bg_color = "#000000" 11 | inactive_color_offset = 1.0 12 | [keybindings] 13 | [profiles] 14 | [[default]] 15 | icon_bell = False 16 | cursor_color = "#aaaaaa" 17 | show_titlebar = False 18 | scrollbar_position = hidden 19 | use_custom_command = True 20 | custom_command = unimatrix -n -s 96 -l o 21 | [layouts] 22 | [[default]] 23 | [[[window0]]] 24 | type = Window 25 | parent = "" 26 | [[[child1]]] 27 | type = Terminal 28 | parent = window0 29 | profile = default 30 | [plugins] 31 | -------------------------------------------------------------------------------- /.vimrc: -------------------------------------------------------------------------------- 1 | noh 2 | set nocompatible 3 | set showcmd 4 | set ruler 5 | set number 6 | set cursorline 7 | set expandtab 8 | set noshiftround 9 | set lazyredraw 10 | set magic 11 | set hlsearch 12 | set incsearch 13 | set ignorecase 14 | set smartcase 15 | set encoding=utf-8 16 | set modelines=0 17 | set formatoptions=tqn1 18 | set tabstop=4 19 | set shiftwidth=4 20 | set softtabstop=4 21 | set cmdheight=1 22 | set laststatus=2 23 | set backspace=indent,eol,start 24 | set list 25 | set listchars=tab:\│\ 26 | set matchpairs+=<:> 27 | set statusline=%1*\ file\ %3*\ %f\ %4*\ 28 | set statusline+=%=\ 29 | set statusline+=%3*\ %l\ of\ %L\ %2*\ line\ 30 | set scrolloff=8 31 | nmap :w 32 | nmap :noh 33 | nmap v 34 | nmap v 35 | nmap 8k 36 | nmap 8j 37 | nmap o 38 | nmap u 39 | nmap 40 | nmap / 41 | nmap i 42 | nmap :set invnumber 43 | nmap :wq 44 | imap :wa 45 | imap :noha 46 | imap lv 47 | imap lv 48 | imap 8ka 49 | imap 8ja 50 | imap o 51 | imap ua 52 | imap a 53 | imap 54 | imap / 55 | imap 56 | imap pa 57 | imap :set invnumbera 58 | imap :q 59 | vmap 8k 60 | vmap 8j 61 | 62 | hi linenr ctermfg=8 63 | hi cursorline cterm=NONE 64 | hi cursorlinenr ctermfg=15 65 | hi comment ctermfg=8 66 | hi pmenu ctermbg=0 ctermfg=NONE 67 | hi pmenusel ctermbg=4 ctermfg=0 68 | hi pmenusbar ctermbg=0 69 | hi pmenuthumb ctermbg=7 70 | hi matchparen ctermbg=black ctermfg=NONE 71 | hi search ctermbg=0 72 | hi statusline ctermbg=0 ctermfg=NONE 73 | hi statuslinenc ctermbg=0 ctermfg=0 74 | hi user1 ctermbg=1 ctermfg=0 75 | hi user2 ctermbg=4 ctermfg=0 76 | hi user3 ctermbg=0 ctermfg=NONE 77 | hi user4 ctermbg=NONE ctermfg=NONE 78 | hi group1 ctermbg=NONE ctermfg=NONE 79 | autocmd colorscheme * hi clear cursorline 80 | match group1 /\t/ 81 | 82 | " packadd! dracula 83 | " syntax enable 84 | " colorscheme dracula 85 | 86 | hi Normal guibg=NONE ctermbg=NONE 87 | 88 | let g:airline_powerline_fonts = 1 89 | let g:airline_theme='base16' 90 | let g:airline#extensions#tabline#enabled = 1 91 | let g:airline#extensions#tabline#left_sep = '' 92 | let g:airline#extensions#tabline#left_alt_sep = '' 93 | let g:airline#extensions#tabline#right_sep = '' 94 | let g:airline#extensions#tabline#right_alt_sep = '' 95 | let g:airline_left_sep = '' 96 | let g:airline_right_sep = '' 97 | let g:airline_theme = 'onedark' 98 | set showtabline=2 99 | set noshowmode 100 | 101 | 102 | 103 | 104 | 105 | if !exists('g:airline_symbols') 106 | let g:airline_symbols = {} 107 | endif 108 | 109 | set encoding=utf8 110 | 111 | " let g:airline_left_sep = '»' 112 | " let g:airline_left_sep = '▶' 113 | " let g:airline_right_sep = '«' 114 | " let g:airline_right_sep = '◀' 115 | " let g:airline_symbols.linenr = '␊' 116 | " let g:airline_symbols.linenr = '␤' 117 | " let g:airline_symbols.linenr = '¶' 118 | " let g:airline_symbols.branch = '⎇' 119 | " let g:airline_symbols.paste = 'ρ' 120 | " let g:airline_symbols.paste = 'Þ' 121 | " let g:airline_symbols.paste = '∥' 122 | " let g:airline_symbols.whitespace = 'Ξ' 123 | 124 | 125 | " let g:airline_left_sep = '' 126 | " let g:airline_left_alt_sep = '' 127 | " let g:airline_right_sep = '' 128 | " let g:airline_right_alt_sep = '' 129 | " let g:airline_symbols.branch = '' 130 | " let g:airline_symbols.readonly = '' 131 | " let g:airline_symbols.linenr = '' 132 | 133 | set mouse=nicr 134 | set clipboard=unnamedplus " Copy/paste between vim and other programs. 135 | -------------------------------------------------------------------------------- /.xinitrc: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # ~/.xinitrc 4 | # 5 | # Executed by startx (run your window manager from here) 6 | 7 | if [ -d /etc/X11/xinit/xinitrc.d ]; then 8 | for f in /etc/X11/xinit/xinitrc.d/*; do 9 | [ -x "$f" ] && . "$f" 10 | done 11 | unset f 12 | fi 13 | -------------------------------------------------------------------------------- /.xmobarrc0: -------------------------------------------------------------------------------- 1 | -- XMobar http://projects.haskell.org/xmobar/ 2 | -- Font Awesome 5 otf https://archlinux.org/packages/community/any/otf-font-awesome/ 3 | -- Font Awesome 5 ttf https://archlinux.org/packages/community/any/ttf-font-awesome/ 4 | -- Font Awesome 4 otf https://aur.archlinux.org/packages/otf-font-awesome-4/ 5 | -- Font Awesome 4 ttf https://aur.archlinux.org/packages/ttf-font-awesome-4/ 6 | -- MPD music server https://archlinux.org/packages/extra/x86_64/mpd/ 7 | -- MPC Command line for MPD https://archlinux.org/packages/extra/x86_64/mpc/ 8 | -- ncmpcpp music player https://archlinux.org/packages/community/x86_64/ncmpcpp/ 9 | 10 | Config { font = "xft:Ubuntu:weight=bold:pixelsize=13:antialias=true:hinting=true,Font Awesome 5 Free Regular:pixelsize=14" 11 | , additionalFonts = [ "xft:Mononoki Nerd Font:pixelsize=13:antialias=true:hinting=true" 12 | , "xft:Font Awesome 6 Free Solid:pixelsize=13" 13 | , "xft:FontAwesome:pixelsize=13" -- Weather 14 | , "xft:Font Awesome 6 Free Solid:pixelsize=10" -- MPD music player 15 | , "xft:Font Awesome 6 Free Regular:pixelsize=13" -- Tiling 16 | , "xft:Mononoki Nerd Font:weight=bold:pixelsize=13:antialias=true:hinting=true" -- VPN 17 | , "xft:Font Awesome 6 Brands:pixelsize=13" -- Brand Icons 18 | , "xft:Mononoki Nerd Font:weight=bold:pixelsize=13:antialias=true:hinting=true" -- MAIL 19 | , "xft:Mononoki Nerd Font:pixelsize=13:antialias=true:hinting=true" -- Artist 20 | ] 21 | , bgColor = "#2e3440" 22 | , fgColor = "#ff6c6b" 23 | , position = TopSize L 100 30 24 | , lowerOnStart = True 25 | , hideOnStart = False 26 | , allDesktops = True 27 | , persistent = True 28 | , commands = [ 29 | -- Time and date 30 | Run Date " %b %d %Y | |  %H:%M " "date" 50 31 | 32 | -- Network 33 | , Run Network "enp4s0" ["-t", " kb | kb"] 20 34 | 35 | -- Cpu usage in percent 36 | , Run Cpu ["-t", "%","-H","50","--high","red"] 20 37 | 38 | -- Cpu core temperature monitor 39 | , Run MultiCoreTemp 40 | ["-t", " °C", 41 | "-L", "20", "-H", "80" 42 | ] 20 43 | 44 | -- Ram used in percent 45 | , Run Memory ["-t", " / %"] 20 46 | 47 | -- Disk space free | System and external HDD's 48 | , Run DiskU [("/", " SSD: ")] [] 60 49 | -- , ("/mnt/4TBZ", "Z: ") 50 | -- , ("/mnt/4TBX", "X: free")] [] 60 51 | 52 | -- System update (with yay) 53 | , Run Com ".xmonad/scripts/xmobar/sysupdate" [] "sysupdate" 36000 54 | 55 | -- UnsafeStdinReader 56 | , Run UnsafeStdinReader 57 | 58 | -- Weather https://skyvector.com/airport/EVRA/Riga-Airport 59 | , Run WeatherX "EVRA" 60 | [ ("clear", "") 61 | , ("sunny", "") 62 | , ("mostly clear", "") 63 | , ("mostly sunny", "") 64 | , ("partly sunny", "") 65 | , ("fair", "") 66 | , ("cloudy","") 67 | , ("overcast","") 68 | , ("partly cloudy", "") 69 | , ("mostly cloudy", "") 70 | , ("considerable cloudiness", "")] 71 | ["-t", " °C" -- % () 72 | -- , "-L","10", "-H", "25", "--normal", "black" 73 | -- , "--high", "lightgoldenrod4", "--low", "darkseagreen4" 74 | ] 18000 75 | 76 | -- VPN status 77 | , Run Com ".xmonad/scripts/xmobar/protonvpn" [] "vpn" 50 78 | -- , Run Com ".xmonad/scripts/xmobar/vpnsrvload" [] "vpnsrvload" 50 79 | 80 | -- Check Mails 81 | , Run Com ".xmonad/scripts/xmobar/mail/checkmails.sh" [] "checkmails" 50 82 | 83 | -- BTC buy price 84 | , Run Com ".xmonad/scripts/xmobar/btc" [] "btc" 600 85 | 86 | -- Ethereum buy price 87 | , Run Com ".xmonad/scripts/xmobar/eth" [] "eth" 600 88 | 89 | -- Ping 90 | , Run Com ".xmonad/scripts/xmobar/ping" [] "ping" 50 91 | 92 | -- Volume 93 | , Run Volume "default" "Master" 94 | ["-t"," %" 95 | , "--" 96 | , "-O", "" 97 | , "-o","" 98 | ] 10 99 | 100 | -- MPD Music server 101 | , Run MPD ["-t","\xf048 \xf144 \xf051 a - </fn></fc>","-h","127.0.0.1","-p","6601"] 10 102 | ] 103 | , sepChar = "%" 104 | , alignSep = "}{" 105 | , template = "<fc=#2e3440> | | </fc> <fc=#73d0ff><fn=2></fn></fc> \ 106 | \<fc=#2e3440> | </fc> %UnsafeStdinReader% \ 107 | \<fc=#2e3440> | </fc> <fc=#73d0ff> <action=`alacritty -e htop`>%multicoretemp% / %cpu%</action> </fc> \ 108 | \<fc=#2e3440> | </fc> <fc=#ff79c6> <action=`alacritty -e htop`>%memory%</action> </fc> \ 109 | \<fc=#2e3440> | </fc> <fc=#d4bfff> <action=`alacritty -e htop`><fn=2></fn> %ping% ms</action> </fc> \ 110 | \<fc=#2e3440> | </fc> <action=`alacritty -e watch mullvad status`><fc=#ffd580> <fn=2></fn> VPN: </fc> <fc=#bae67e><fn=6>%vpn%</fn></fc></action> \ 111 | \<fc=#2e3440> | </fc> <fc=#95e6cb> <fn=2></fn> MAIL: </fc> <fc=#bae67e><fn=8>Inbox (%checkmails%)</fn></fc> \ 112 | \<fc=#2e3440> | </fc> <fc=#73d0ff> %enp4s0% </fc>} \ 113 | \<fc=#c7c7c7>%mpd%</fc> \ 114 | \{<fc=#2e3440> | </fc> <fc=#73d0ff> %EVRA% </fc> \ 115 | \<fc=#2e3440> | </fc> <fc=#ffd580><fn=3></fn> %btc% </fc> \ 116 | \<fc=#2e3440> | </fc> <fc=#9aadf2><fn=7></fn> %eth% </fc> \ 117 | \<fc=#2e3440> | </fc> <fc=#ff79c6> <action=`alacritty -e watch df -h`>%disku%</action> </fc> \ 118 | \<fc=#2e3440> | </fc> <fc=#d4bfff><fn=2></fn> <action=`alacritty -e yay -Syu`>%sysupdate%</action> </fc> \ 119 | \<fc=#2e3440> | </fc> <fc=#95e6cb> <fn=2></fn> %default:Master% </fc> \ 120 | \<fc=#2e3440> | </fc> %date% <fc=#2e3440> | | </fc>" 121 | } -------------------------------------------------------------------------------- /.xmobarrc1: -------------------------------------------------------------------------------- 1 | -- XMobar http://projects.haskell.org/xmobar/ 2 | -- Font Awesome 5 otf https://archlinux.org/packages/community/any/otf-font-awesome/ 3 | -- Font Awesome 5 ttf https://archlinux.org/packages/community/any/ttf-font-awesome/ 4 | -- Font Awesome 4 otf https://aur.archlinux.org/packages/otf-font-awesome-4/ 5 | -- Font Awesome 4 ttf https://aur.archlinux.org/packages/ttf-font-awesome-4/ 6 | -- MPD music server https://archlinux.org/packages/extra/x86_64/mpd/ 7 | -- MPC Command line for MPD https://archlinux.org/packages/extra/x86_64/mpc/ 8 | -- ncmpcpp music player https://archlinux.org/packages/community/x86_64/ncmpcpp/ 9 | 10 | Config { font = "xft:Ubuntu:weight=bold:pixelsize=13:antialias=true:hinting=true,Font Awesome 5 Free Regular:pixelsize=14" 11 | , additionalFonts = [ "xft:Mononoki Nerd Font:pixelsize=13:antialias=true:hinting=true" 12 | , "xft:Font Awesome 6 Free Solid:pixelsize=13" 13 | , "xft:FontAwesome:pixelsize=13" -- Weather 14 | , "xft:Font Awesome 6 Free Solid:pixelsize=10" -- MPD music player 15 | , "xft:Font Awesome 6 Free Regular:pixelsize=13" -- Tiling 16 | , "xft:Mononoki Nerd Font:weight=bold:pixelsize=13:antialias=true:hinting=true" -- VPN 17 | , "xft:Font Awesome 6 Brands:pixelsize=13" -- Brand Icons 18 | , "xft:Mononoki Nerd Font:weight=bold:pixelsize=13:antialias=true:hinting=true" -- MAIL 19 | , "xft:Mononoki Nerd Font:pixelsize=13:antialias=true:hinting=true" -- Artist 20 | ] 21 | , bgColor = "#2e3440" 22 | , fgColor = "#ff6c6b" 23 | , position = TopSize L 100 30 24 | , lowerOnStart = True 25 | , hideOnStart = False 26 | , allDesktops = True 27 | , persistent = True 28 | , commands = [ 29 | -- Time and date 30 | Run Date "<fc=#bae67e><fn=5> </fn> %b %d %Y</fc> <fc=#2e3440> | |</fc> <fc=#f27983><fn=5></fn> %H:%M </fc>" "date" 50 31 | 32 | -- Network 33 | , Run Network "enp4s0" ["-t", "<fn=3></fn> <rx> kb <fc=#2e3440> |</fc> <fn=3></fn> <tx> kb"] 20 34 | 35 | -- Cpu usage in percent 36 | , Run Cpu ["-t", "<total>%","-H","50","--high","red"] 20 37 | 38 | -- Cpu core temperature monitor 39 | , Run MultiCoreTemp 40 | ["-t", "<fn=2></fn> <avg> °C", 41 | "-L", "20", "-H", "80" 42 | ] 20 43 | 44 | -- Ram used in percent 45 | , Run Memory ["-t", "<fn=2></fn> <used> / <usedratio>%"] 20 46 | 47 | -- Disk space free | System and external HDD's 48 | , Run DiskU [("/", "<fn=2></fn> SSD: <free>")] [] 60 49 | -- , ("/mnt/4TBZ", "Z: <free>") 50 | -- , ("/mnt/4TBX", "X: <free> free")] [] 60 51 | 52 | -- System update (with yay) 53 | , Run Com ".xmonad/scripts/xmobar/sysupdate" [] "sysupdate" 36000 54 | 55 | -- UnsafeStdinReader 56 | , Run UnsafeStdinReader 57 | 58 | -- Weather https://skyvector.com/airport/EVRA/Riga-Airport 59 | , Run WeatherX "EVRA" 60 | [ ("clear", "") 61 | , ("sunny", "") 62 | , ("mostly clear", "") 63 | , ("mostly sunny", "") 64 | , ("partly sunny", "") 65 | , ("fair", "") 66 | , ("cloudy","") 67 | , ("overcast","") 68 | , ("partly cloudy", "") 69 | , ("mostly cloudy", "") 70 | , ("considerable cloudiness", "")] 71 | ["-t", "<fn=2><skyConditionS> </fn> <tempC> °C" -- <rh>% <windKmh> (<hour>) 72 | -- , "-L","10", "-H", "25", "--normal", "black" 73 | -- , "--high", "lightgoldenrod4", "--low", "darkseagreen4" 74 | ] 18000 75 | 76 | -- VPN status 77 | , Run Com ".xmonad/scripts/xmobar/protonvpn" [] "vpn" 50 78 | -- , Run Com ".xmonad/scripts/xmobar/vpnsrvload" [] "vpnsrvload" 50 79 | 80 | -- Check Mails 81 | , Run Com ".xmonad/scripts/xmobar/mail/checkmails.sh" [] "checkmails" 50 82 | 83 | -- BTC buy price 84 | , Run Com ".xmonad/scripts/xmobar/btc" [] "btc" 600 85 | 86 | -- Ethereum buy price 87 | , Run Com ".xmonad/scripts/xmobar/eth" [] "eth" 600 88 | 89 | -- Ping 90 | , Run Com ".xmonad/scripts/xmobar/ping" [] "ping" 50 91 | 92 | -- Volume 93 | , Run Volume "default" "Master" 94 | ["-t","<status> <volume>%" 95 | , "--" 96 | , "-O", "" 97 | , "-o","" 98 | ] 10 99 | 100 | -- MPD Music server 101 | , Run MPD ["-t","<action=`mpc prev`><fc=#73d0ff><fn=4>\xf048</fn></fc></action> <action=`mpc play`><fc=#bae67e><fn=2>\xf144</fn></fc></action> <action=`mpc next`><fc=#73d0ff><fn=4>\xf051</fn></fc></action> <fc=#2e3440>a</fc> <fc=#ffd580><fn=9><artist></fn></fc> - <fc=#bae67e><fn=9><title></fn></fc>","-h","127.0.0.1","-p","6601"] 10 102 | ] 103 | , sepChar = "%" 104 | , alignSep = "}{" 105 | , template = "<fc=#2e3440> | | </fc> <fc=#73d0ff><fn=2></fn></fc> \ 106 | \<fc=#2e3440> | </fc> %UnsafeStdinReader% \ 107 | \<fc=#2e3440> | </fc> <fc=#73d0ff> <action=`alacritty -e htop`>%multicoretemp% / %cpu%</action> </fc> \ 108 | \<fc=#2e3440> | </fc> <fc=#ff79c6> <action=`alacritty -e htop`>%memory%</action> </fc> \ 109 | \<fc=#2e3440> | </fc> <fc=#d4bfff> <action=`alacritty -e htop`><fn=2></fn> %ping% ms</action> </fc> \ 110 | \<fc=#2e3440> | </fc> <action=`alacritty -e watch mullvad status`><fc=#ffd580> <fn=2></fn> VPN: </fc> <fc=#bae67e><fn=6>%vpn%</fn></fc></action> \ 111 | \<fc=#2e3440> | </fc> <fc=#95e6cb> <fn=2></fn> MAIL: </fc> <fc=#bae67e><fn=8>Inbox (%checkmails%)</fn></fc> \ 112 | \<fc=#2e3440> | </fc> <fc=#73d0ff> %enp4s0% </fc>} \ 113 | -- \<fc=#c7c7c7>%mpd%</fc> \ 114 | \{<fc=#2e3440> | </fc> <fc=#73d0ff> %EVRA% </fc> \ 115 | \<fc=#2e3440> | </fc> <fc=#ffd580><fn=3></fn> %btc% </fc> \ 116 | \<fc=#2e3440> | </fc> <fc=#9aadf2><fn=7></fn> %eth% </fc> \ 117 | \<fc=#2e3440> | </fc> <fc=#ff79c6> <action=`alacritty -e watch df -h`>%disku%</action> </fc> \ 118 | \<fc=#2e3440> | </fc> <fc=#d4bfff><fn=2></fn> <action=`alacritty -e yay -Syu`>%sysupdate%</action> </fc> \ 119 | \<fc=#2e3440> | </fc> <fc=#95e6cb> <fn=2></fn> %default:Master% </fc> \ 120 | \<fc=#2e3440> | </fc> %date% <fc=#2e3440> | | </fc>" 121 | } -------------------------------------------------------------------------------- /.xmobarrc2: -------------------------------------------------------------------------------- 1 | -- XMobar http://projects.haskell.org/xmobar/ 2 | -- Font Awesome 5 otf https://archlinux.org/packages/community/any/otf-font-awesome/ 3 | -- Font Awesome 5 ttf https://archlinux.org/packages/community/any/ttf-font-awesome/ 4 | -- Font Awesome 4 otf https://aur.archlinux.org/packages/otf-font-awesome-4/ 5 | -- Font Awesome 4 ttf https://aur.archlinux.org/packages/ttf-font-awesome-4/ 6 | -- MPD music server https://archlinux.org/packages/extra/x86_64/mpd/ 7 | -- MPC Command line for MPD https://archlinux.org/packages/extra/x86_64/mpc/ 8 | -- ncmpcpp music player https://archlinux.org/packages/community/x86_64/ncmpcpp/ 9 | 10 | Config { font = "xft:Ubuntu:weight=bold:pixelsize=13:antialias=true:hinting=true,Font Awesome 5 Free Regular:pixelsize=14" 11 | , additionalFonts = [ "xft:Mononoki Nerd Font:pixelsize=13:antialias=true:hinting=true" 12 | , "xft:Font Awesome 6 Free Solid:pixelsize=13" 13 | , "xft:FontAwesome:pixelsize=13" -- Weather 14 | , "xft:Font Awesome 6 Free Solid:pixelsize=10" -- MPD music player 15 | , "xft:Font Awesome 6 Free Regular:pixelsize=13" -- Tiling 16 | , "xft:Mononoki Nerd Font:weight=bold:pixelsize=13:antialias=true:hinting=true" -- VPN 17 | , "xft:Font Awesome 6 Brands:pixelsize=13" -- Brand Icons 18 | , "xft:Mononoki Nerd Font:weight=bold:pixelsize=13:antialias=true:hinting=true" -- MAIL 19 | , "xft:Mononoki Nerd Font:pixelsize=13:antialias=true:hinting=true" -- Artist 20 | ] 21 | , bgColor = "#2e3440" 22 | , fgColor = "#ff6c6b" 23 | , position = TopSize L 100 30 24 | , lowerOnStart = True 25 | , hideOnStart = False 26 | , allDesktops = True 27 | , persistent = True 28 | , commands = [ 29 | -- Time and date 30 | Run Date "<fc=#bae67e><fn=5> </fn> %b %d %Y</fc> <fc=#2e3440> | |</fc> <fc=#f27983><fn=5></fn> %H:%M </fc>" "date" 50 31 | 32 | -- Network 33 | , Run Network "enp4s0" ["-t", "<fn=3></fn> <rx> kb <fc=#2e3440> |</fc> <fn=3></fn> <tx> kb"] 20 34 | 35 | -- Cpu usage in percent 36 | , Run Cpu ["-t", "<total>%","-H","50","--high","red"] 20 37 | 38 | -- Cpu core temperature monitor 39 | , Run MultiCoreTemp 40 | ["-t", "<fn=2></fn> <avg> °C", 41 | "-L", "20", "-H", "80" 42 | ] 20 43 | 44 | -- Ram used in percent 45 | , Run Memory ["-t", "<fn=2></fn> <used> / <usedratio>%"] 20 46 | 47 | -- Disk space free | System and external HDD's 48 | , Run DiskU [("/", "<fn=2></fn> SSD: <free>")] [] 60 49 | -- , ("/mnt/4TBZ", "Z: <free>") 50 | -- , ("/mnt/4TBX", "X: <free> free")] [] 60 51 | 52 | -- System update (with yay) 53 | , Run Com ".xmonad/scripts/xmobar/sysupdate" [] "sysupdate" 36000 54 | 55 | -- UnsafeStdinReader 56 | , Run UnsafeStdinReader 57 | 58 | -- Weather https://skyvector.com/airport/EVRA/Riga-Airport 59 | , Run WeatherX "EVRA" 60 | [ ("clear", "") 61 | , ("sunny", "") 62 | , ("mostly clear", "") 63 | , ("mostly sunny", "") 64 | , ("partly sunny", "") 65 | , ("fair", "") 66 | , ("cloudy","") 67 | , ("overcast","") 68 | , ("partly cloudy", "") 69 | , ("mostly cloudy", "") 70 | , ("considerable cloudiness", "")] 71 | ["-t", "<fn=2><skyConditionS> </fn> <tempC> °C" -- <rh>% <windKmh> (<hour>) 72 | -- , "-L","10", "-H", "25", "--normal", "black" 73 | -- , "--high", "lightgoldenrod4", "--low", "darkseagreen4" 74 | ] 18000 75 | 76 | -- VPN status 77 | , Run Com ".xmonad/scripts/xmobar/protonvpn" [] "vpn" 50 78 | -- , Run Com ".xmonad/scripts/xmobar/vpnsrvload" [] "vpnsrvload" 50 79 | 80 | -- Check Mails 81 | , Run Com ".xmonad/scripts/xmobar/mail/checkmails.sh" [] "checkmails" 50 82 | 83 | -- BTC buy price 84 | , Run Com ".xmonad/scripts/xmobar/btc" [] "btc" 600 85 | 86 | -- Ethereum buy price 87 | , Run Com ".xmonad/scripts/xmobar/eth" [] "eth" 600 88 | 89 | -- Ping 90 | , Run Com ".xmonad/scripts/xmobar/ping" [] "ping" 50 91 | 92 | -- Volume 93 | , Run Volume "default" "Master" 94 | ["-t","<status> <volume>%" 95 | , "--" 96 | , "-O", "" 97 | , "-o","" 98 | ] 10 99 | 100 | -- MPD Music server 101 | , Run MPD ["-t","<action=`mpc prev`><fc=#73d0ff><fn=4>\xf048</fn></fc></action> <action=`mpc play`><fc=#bae67e><fn=2>\xf144</fn></fc></action> <action=`mpc next`><fc=#73d0ff><fn=4>\xf051</fn></fc></action> <fc=#2e3440>a</fc> <fc=#ffd580><fn=9><artist></fn></fc> - <fc=#bae67e><fn=9><title></fn></fc>","-h","127.0.0.1","-p","6601"] 10 102 | ] 103 | , sepChar = "%" 104 | , alignSep = "}{" 105 | , template = "<fc=#2e3440> | | </fc> <fc=#73d0ff><fn=2></fn></fc> \ 106 | \<fc=#2e3440> | </fc> %UnsafeStdinReader% \ 107 | \<fc=#2e3440> | </fc> <fc=#73d0ff> <action=`alacritty -e htop`>%multicoretemp% / %cpu%</action> </fc> \ 108 | \<fc=#2e3440> | </fc> <fc=#ff79c6> <action=`alacritty -e htop`>%memory%</action> </fc> \ 109 | \<fc=#2e3440> | </fc> <fc=#d4bfff> <action=`alacritty -e htop`><fn=2></fn> %ping% ms</action> </fc> \ 110 | \<fc=#2e3440> | </fc> <action=`alacritty -e watch mullvad status`><fc=#ffd580> <fn=2></fn> VPN: </fc> <fc=#bae67e><fn=6>%vpn%</fn></fc></action> \ 111 | \<fc=#2e3440> | </fc> <fc=#95e6cb> <fn=2></fn> MAIL: </fc> <fc=#bae67e><fn=8>Inbox (%checkmails%)</fn></fc> \ 112 | \<fc=#2e3440> | </fc> <fc=#73d0ff> %enp4s0% </fc>} \ 113 | -- \<fc=#c7c7c7>%mpd%</fc> \ 114 | \{<fc=#2e3440> | </fc> <fc=#73d0ff> %EVRA% </fc> \ 115 | \<fc=#2e3440> | </fc> <fc=#ffd580><fn=3></fn> %btc% </fc> \ 116 | \<fc=#2e3440> | </fc> <fc=#9aadf2><fn=7></fn> %eth% </fc> \ 117 | \<fc=#2e3440> | </fc> <fc=#ff79c6> <action=`alacritty -e watch df -h`>%disku%</action> </fc> \ 118 | \<fc=#2e3440> | </fc> <fc=#d4bfff><fn=2></fn> <action=`alacritty -e yay -Syu`>%sysupdate%</action> </fc> \ 119 | \<fc=#2e3440> | </fc> <fc=#95e6cb> <fn=2></fn> %default:Master% </fc> \ 120 | \<fc=#2e3440> | </fc> %date% <fc=#2e3440> | | </fc>" 121 | } -------------------------------------------------------------------------------- /.xmonad/scripts/autostart.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function run { 4 | if ! pgrep $1 ; 5 | then 6 | $@& 7 | fi 8 | } 9 | 10 | # Display Resolution 11 | xrandr --output DisplayPort-0 --primary --mode 2560x1440 --rate 144.00 --output HDMI-A-1 --mode 1920x1080 --rate 75.00 --right-of DisplayPort-0 --output HDMI-A-0 --mode 1920x1080 --rate 75.00 --above DisplayPort-0 & 12 | #xrandr --output DisplayPort-0 --primary --mode 2560x1440 --rate 144.00 --output HDMI-A-1 --mode 1920x1080 --rate 75.00 & 13 | 14 | # Cursor active at boot 15 | xsetroot -cursor_name left_ptr & 16 | 17 | # Disable FN function 18 | echo 0 | sudo tee -a /sys/module/hid_apple/parameters/fnmode & 19 | 20 | # Starting utility applications at boot time 21 | # run variety & 22 | run nm-applet & 23 | run pamac-tray & 24 | run xfce4-power-manager & 25 | run xfce4-panel & 26 | run volumeicon & 27 | run flameshot & 28 | run mpd & 29 | numlockx on & 30 | blueberry-tray & 31 | picom --config $HOME/.xmonad/scripts/picom.conf & 32 | /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 & 33 | /usr/lib/xfce4/notifyd/xfce4-notifyd & 34 | 35 | # Some ways to set your wallpaper besides variety or nitrogen 36 | feh --randomize --bg-fill /home/ns/Pictures/Wallpapers/Arch/Arch-1.png & 37 | 38 | # Conky 39 | (sleep 5; conky -c $HOME/.config/conky/conky) & 40 | 41 | # VPN 42 | (sleep 10; protonvpn-cli connect --fastest --protocol udp) & 43 | 44 | 45 | # Polybar 46 | #(sleep 2; run $HOME/.config/polybar/launch.sh) & 47 | 48 | # starting user applications at boot time 49 | 50 | 51 | #run caffeine & 52 | #run insync start & 53 | #run ckb-next -b & 54 | -------------------------------------------------------------------------------- /.xmonad/scripts/brightness.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -e 3 | 4 | if ! command -v bc &> /dev/null 5 | then 6 | echo "bc command could not be found, it's needed to run this script." 7 | exit 8 | fi 9 | 10 | get_display_info() { 11 | xrandr --verbose | grep -m 1 -w "$1 connected" -A8 | grep "$2" | cut -f2- -d: | tr -d ' ' 12 | } 13 | 14 | # cribbed from redshift, https://github.com/jonls/redshift/blob/master/README-colorramp 15 | GAMMA_VALS=('1.0:0.7:0.4' # 3000K 16 | '1.0:0.7:0.5' # 3500K 17 | '1.0:0.8:0.6' # 4000K 18 | '1.0:0.8:0.7' # 4500K 19 | '1.0:0.9:0.8' # 5000K 20 | '1.0:0.9:0.9' # 6000K 21 | '1.0:1.0:1.0' # 6500K 22 | '0.9:0.9:1.0' # 7000K 23 | '0.8:0.9:1.0' # 8000K 24 | '0.8:0.8:1.0' # 9000K 25 | '0.7:0.8:1.0') # 10000K 26 | 27 | get_gamma_index() { 28 | for i in "${!GAMMA_VALS[@]}"; do 29 | [[ "${GAMMA_VALS[$i]}" = "$1" ]] && echo "$i" && break 30 | done 31 | } 32 | 33 | get_temp_for_gamma() { 34 | idx=$(get_gamma_index "$1") 35 | awk '{printf "%.1f", $1 / 10}' <<< "$idx" 36 | } 37 | 38 | get_gamma_for_temp() { 39 | idx=$(awk '{printf "%d", $1 * 10}' <<< "$1") 40 | echo "${GAMMA_VALS[$idx]}" 41 | } 42 | 43 | # gamma values returned by xrandr --verbose are somehow inverted 44 | # https://gitlab.freedesktop.org/xorg/app/xrandr/issues/33 45 | # this function corrects this bug by reverting the calculation 46 | invert_gamma() { 47 | inv_r=$(cut -d: -f1 <<< "$1") 48 | inv_g=$(cut -d: -f2 <<< "$1") 49 | inv_b=$(cut -d: -f3 <<< "$1") 50 | r=$(awk '{printf "%.1f", 1/$1}' <<< "$inv_r" 2>/dev/null) 51 | g=$(awk '{printf "%.1f", 1/$1}' <<< "$inv_g" 2>/dev/null) 52 | b=$(awk '{printf "%.1f", 1/$1}' <<< "$inv_b" 2>/dev/null) 53 | echo "$r:$g:$b" 54 | } 55 | 56 | get_gamma() { 57 | invert_gamma "$(get_display_info "$1" 'Gamma: ')" 58 | } 59 | 60 | get_brightness() { 61 | get_display_info "$1" 'Brightness: ' 62 | } 63 | 64 | list_displays() { 65 | echo 'displays:' 66 | displist='' 67 | connected=$(xrandr | grep -w connected | cut -f1 -d' ') 68 | for display in $connected; do 69 | brightness=$(get_brightness "$display") 70 | gamma=$(get_gamma "$display") 71 | temp=$(get_temp_for_gamma "$gamma") 72 | displist+="$display brightness: $brightness gamma: $gamma temp: $temp" 73 | displist+=$'\n' 74 | done 75 | echo "$displist" | column -t | sed 's/^/ /' 76 | } 77 | 78 | display_usage() { 79 | script_name=$(basename "$0") 80 | echo "Usage: $script_name op display [stepsize|value] [--temp]" 81 | echo 82 | echo 'arguments:' 83 | echo ' op: '-' to decrease or '+' to increase brightness' 84 | echo ' '=' to set brightness to a specific value' 85 | echo ' display: name of a connected display to adjust' 86 | echo ' stepsize: size of adjustment step (default 0.1)' 87 | echo ' value: value to set (default 1.0 for brightness, 0.6 for color temperature)' 88 | echo ' --temp: adjusts color temperature instead of brightness' 89 | echo 90 | list_displays 91 | } 92 | 93 | exec_op() { 94 | if [ "$1" = '+' ]; then 95 | NEWVAL=$(echo "$3 + $2" | bc) 96 | elif [ "$1" = '-' ]; then 97 | NEWVAL=$(echo "$3 - $2" | bc) 98 | elif [ "$1" = '=' ]; then 99 | NEWVAL=$2 100 | fi 101 | if [ "$(echo "$NEWVAL < 0.0" | bc)" -eq 1 ]; then 102 | NEWVAL='0.0' 103 | fi 104 | if [ "$(echo "$NEWVAL > 1.0" | bc)" -eq 1 ]; then 105 | NEWVAL='1.0' 106 | fi 107 | echo "$NEWVAL" 108 | } 109 | 110 | if [[ "$1" = '+' || "$1" = '-' || "$1" = '=' ]] && [[ -n "$2" ]]; then 111 | OP=$1; DISP=$2; shift; shift 112 | else 113 | display_usage; exit 1 114 | fi 115 | 116 | if [[ "$1" =~ ^[0-9]+(.[0-9]+)?$ ]]; then 117 | OPVAL=$1; shift 118 | else 119 | if [[ "$OP" = '=' ]]; then 120 | if [[ "$1" = '--temp' ]]; then 121 | OPVAL='0.6' 122 | else 123 | OPVAL='1.0' 124 | fi 125 | else 126 | OPVAL='0.1' 127 | fi 128 | fi 129 | 130 | CURRBRIGHT=$(get_brightness "$DISP") 131 | if [[ ! "$CURRBRIGHT" =~ ^[0-9]+.[0-9]+$ ]]; then 132 | echo "Error: Selected display $DISP has no brightness value!" 133 | echo; list_displays; exit 1 134 | fi 135 | 136 | CURRGAMMA=$(get_gamma "$DISP") 137 | if [[ ! "$CURRGAMMA" =~ ^[0-9].[0-9]:[0-9].[0-9]:[0-9].[0-9]$ ]]; then 138 | echo "Error: Selected display $DISP has no gamma value!" 139 | echo; list_displays; exit 1 140 | fi 141 | 142 | NEWBRIGHT="$CURRBRIGHT" 143 | NEWGAMMA="$CURRGAMMA" 144 | 145 | if [ "$1" = '--temp' ]; then 146 | CURRTEMP=$(get_temp_for_gamma "$CURRGAMMA") 147 | NEWTEMP=$(exec_op "$OP" "$OPVAL" "$CURRTEMP") 148 | NEWGAMMA=$(get_gamma_for_temp "$NEWTEMP") 149 | else 150 | NEWBRIGHT=$(exec_op "$OP" "$OPVAL" "$CURRBRIGHT") 151 | fi 152 | 153 | xrandr --output "$DISP" --brightness "$NEWBRIGHT" --gamma "$NEWGAMMA" 154 | -------------------------------------------------------------------------------- /.xmonad/scripts/picom-toggle.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | if pgrep -x "picom" > /dev/null 3 | then 4 | killall picom 5 | else 6 | picom -b --config ~/.xmonad/scripts/picom.conf 7 | fi 8 | -------------------------------------------------------------------------------- /.xmonad/scripts/picom.conf: -------------------------------------------------------------------------------- 1 | ################################# 2 | # Shadows # 3 | ################################# 4 | 5 | 6 | # Enabled client-side shadows on windows. Note desktop windows 7 | # (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow, 8 | # unless explicitly requested using the wintypes option. 9 | # 10 | # shadow = false 11 | shadow = true; 12 | 13 | # The blur radius for shadows, in pixels. (defaults to 12) 14 | # shadow-radius = 12 15 | shadow-radius = 7; 16 | 17 | # The opacity of shadows. (0.0 - 1.0, defaults to 0.75) 18 | # shadow-opacity = .75 19 | 20 | # The left offset for shadows, in pixels. (defaults to -15) 21 | # shadow-offset-x = -15 22 | shadow-offset-x = -7; 23 | 24 | # The top offset for shadows, in pixels. (defaults to -15) 25 | # shadow-offset-y = -15 26 | shadow-offset-y = -7; 27 | 28 | # Avoid drawing shadows on dock/panel windows. This option is deprecated, 29 | # you should use the *wintypes* option in your config file instead. 30 | # 31 | # no-dock-shadow = false 32 | 33 | # Don't draw shadows on drag-and-drop windows. This option is deprecated, 34 | # you should use the *wintypes* option in your config file instead. 35 | # 36 | # no-dnd-shadow = false 37 | 38 | # Red color value of shadow (0.0 - 1.0, defaults to 0). 39 | # shadow-red = 0 40 | 41 | # Green color value of shadow (0.0 - 1.0, defaults to 0). 42 | # shadow-green = 0 43 | 44 | # Blue color value of shadow (0.0 - 1.0, defaults to 0). 45 | # shadow-blue = 0 46 | 47 | # Do not paint shadows on shaped windows. Note shaped windows 48 | # here means windows setting its shape through X Shape extension. 49 | # Those using ARGB background is beyond our control. 50 | # Deprecated, use 51 | # shadow-exclude = 'bounding_shaped' 52 | # or 53 | # shadow-exclude = 'bounding_shaped && !rounded_corners' 54 | # instead. 55 | # 56 | # shadow-ignore-shaped = '' 57 | 58 | # Specify a list of conditions of windows that should have no shadow. 59 | # 60 | # examples: 61 | # shadow-exclude = "n:e:Notification"; 62 | # 63 | # shadow-exclude = [] 64 | shadow-exclude = [ 65 | "name = 'Notification'", 66 | "class_g ?= 'Notify-osd'", 67 | "name = 'Plank'", 68 | "name = 'Docky'", 69 | "name = 'Kupfer'", 70 | "name = 'xfce4-notifyd'", 71 | "name *= 'VLC'", 72 | "name *= 'compton'", 73 | "class_g = 'Conky'", 74 | "class_g = 'Kupfer'", 75 | "class_g = 'Synapse'", 76 | "class_g ?= 'Notify-osd'", 77 | "class_g ?= 'Cairo-dock'", 78 | "class_g = 'Cairo-clock'", 79 | "class_g ?= 'Xfce4-notifyd'", 80 | "class_g ?= 'Xfce4-power-manager'", 81 | "_GTK_FRAME_EXTENTS@:c", 82 | ]; 83 | 84 | # Add this one too for ... 85 | # "_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'" 86 | # Add this one above to the list to have no shadow in Openbox menu 87 | # "! name~=''", 88 | 89 | # Specify a X geometry that describes the region in which shadow should not 90 | # be painted in, such as a dock window region. Use 91 | # shadow-exclude-reg = "x10+0+0" 92 | # for example, if the 10 pixels on the bottom of the screen should not have shadows painted on. 93 | # 94 | # shadow-exclude-reg = "" 95 | 96 | # Crop shadow of a window fully on a particular Xinerama screen to the screen. 97 | # xinerama-shadow-crop = false 98 | 99 | 100 | ################################# 101 | # Fading # 102 | ################################# 103 | 104 | 105 | # Fade windows in/out when opening/closing and when opacity changes, 106 | # unless no-fading-openclose is used. 107 | # fading = false 108 | fading = false 109 | 110 | # Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028) 111 | # fade-in-step = 0.028 112 | fade-in-step = 0.03; 113 | 114 | # Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03) 115 | # fade-out-step = 0.03 116 | fade-out-step = 0.03; 117 | 118 | # The time between steps in fade step, in milliseconds. (> 0, defaults to 10) 119 | # fade-delta = 10 120 | 121 | # Specify a list of conditions of windows that should not be faded. 122 | # fade-exclude = [] 123 | 124 | # Do not fade on window open/close. 125 | # no-fading-openclose = false 126 | 127 | # Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc. 128 | # no-fading-destroyed-argb = false 129 | 130 | 131 | ################################# 132 | # Transparency / Opacity # 133 | ################################# 134 | 135 | 136 | # Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0) 137 | # inactive-opacity = 1 138 | inactive-opacity = 1; 139 | 140 | # Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default) 141 | # frame-opacity = 1.0 142 | frame-opacity = 1; 143 | 144 | # Default opacity for dropdown menus and popup menus. (0.0 - 1.0, defaults to 1.0) 145 | # menu-opacity = 1.0 146 | 147 | # Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows. 148 | # inactive-opacity-override = true 149 | inactive-opacity-override = false; 150 | 151 | # Default opacity for active windows. (0.0 - 1.0, defaults to 1.0) 152 | # active-opacity = 1.0 153 | 154 | # Dim inactive windows. (0.0 - 1.0, defaults to 0.0) 155 | # inactive-dim = 0.0 156 | 157 | # Specify a list of conditions of windows that should always be considered focused. 158 | # focus-exclude = [] 159 | focus-exclude = [ "class_g = 'Cairo-clock'" ]; 160 | 161 | # Use fixed inactive dim value, instead of adjusting according to window opacity. 162 | # inactive-dim-fixed = 1.0 163 | 164 | # Specify a list of opacity rules, in the format `PERCENT:PATTERN`, 165 | # like `50:name *= "Firefox"`. picom-trans is recommended over this. 166 | # Note we don't make any guarantee about possible conflicts with other 167 | # programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows. 168 | # example: 169 | # opacity-rule = [ "80:class_g = 'URxvt'" ]; 170 | # 171 | # opacity-rule = [ "80:class_g = 'Alacritty'" ] 172 | 173 | ################################# 174 | # Background-Blurring # 175 | ################################# 176 | 177 | 178 | # Parameters for background blurring, see the *BLUR* section for more information. 179 | # blur-method = 180 | # blur-size = 12 181 | # 182 | # blur-deviation = false 183 | 184 | # Blur background of semi-transparent / ARGB windows. 185 | # Bad in performance, with driver-dependent behavior. 186 | # The name of the switch may change without prior notifications. 187 | # 188 | # blur-background = false 189 | 190 | # Blur background of windows when the window frame is not opaque. 191 | # Implies: 192 | # blur-background 193 | # Bad in performance, with driver-dependent behavior. The name may change. 194 | # 195 | # blur-background-frame = false 196 | 197 | 198 | # Use fixed blur strength rather than adjusting according to window opacity. 199 | # blur-background-fixed = false 200 | 201 | 202 | # Specify the blur convolution kernel, with the following format: 203 | # example: 204 | # blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"; 205 | # 206 | # blur-kern = '' 207 | blur-kern = "3x3box"; 208 | 209 | 210 | # Exclude conditions for background blur. 211 | # blur-background-exclude = [] 212 | blur-background-exclude = [ 213 | "window_type = 'dock'", 214 | "window_type = 'desktop'", 215 | "_GTK_FRAME_EXTENTS@:c" 216 | ]; 217 | 218 | ################################# 219 | # General Settings # 220 | ################################# 221 | 222 | # Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers. 223 | # daemon = false 224 | 225 | # Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`. 226 | # `xrender` is the default one. 227 | # 228 | # backend = "glx" 229 | # backend = "xr_glx_hybrid" 230 | backend = "xrender"; 231 | 232 | # Enable/disable VSync. 233 | vsync = false 234 | #vsync = true 235 | 236 | # Enable remote control via D-Bus. See the *D-BUS API* section below for more details. 237 | # dbus = false 238 | 239 | # Try to detect WM windows (a non-override-redirect window with no 240 | # child that has 'WM_STATE') and mark them as active. 241 | # 242 | # mark-wmwin-focused = false 243 | mark-wmwin-focused = true; 244 | 245 | # Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused. 246 | # mark-ovredir-focused = false 247 | mark-ovredir-focused = true; 248 | 249 | # Try to detect windows with rounded corners and don't consider them 250 | # shaped windows. The accuracy is not very high, unfortunately. 251 | # 252 | # detect-rounded-corners = false 253 | detect-rounded-corners = true; 254 | 255 | # Detect '_NET_WM_OPACITY' on client windows, useful for window managers 256 | # not passing '_NET_WM_OPACITY' of client windows to frame windows. 257 | # 258 | # detect-client-opacity = false 259 | detect-client-opacity = true; 260 | 261 | # Specify refresh rate of the screen. If not specified or 0, picom will 262 | # try detecting this with X RandR extension. 263 | # 264 | # refresh-rate = 60 265 | refresh-rate = 0 266 | 267 | # Limit picom to repaint at most once every 1 / 'refresh_rate' second to 268 | # boost performance. This should not be used with 269 | # vsync drm/opengl/opengl-oml 270 | # as they essentially does sw-opti's job already, 271 | # unless you wish to specify a lower refresh rate than the actual value. 272 | # 273 | # sw-opti = 274 | 275 | # Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window, 276 | # rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy, 277 | # provided that the WM supports it. 278 | # 279 | # use-ewmh-active-win = false 280 | 281 | # Unredirect all windows if a full-screen opaque window is detected, 282 | # to maximize performance for full-screen windows. Known to cause flickering 283 | # when redirecting/unredirecting windows. 284 | # 285 | # unredir-if-possible = false 286 | 287 | # Delay before unredirecting the window, in milliseconds. Defaults to 0. 288 | # unredir-if-possible-delay = 0 289 | 290 | # Conditions of windows that shouldn't be considered full-screen for unredirecting screen. 291 | # unredir-if-possible-exclude = [] 292 | 293 | # Use 'WM_TRANSIENT_FOR' to group windows, and consider windows 294 | # in the same group focused at the same time. 295 | # 296 | # detect-transient = false 297 | detect-transient = true 298 | 299 | # Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same 300 | # group focused at the same time. 'WM_TRANSIENT_FOR' has higher priority if 301 | # detect-transient is enabled, too. 302 | # 303 | # detect-client-leader = false 304 | detect-client-leader = true 305 | 306 | # Resize damaged region by a specific number of pixels. 307 | # A positive value enlarges it while a negative one shrinks it. 308 | # If the value is positive, those additional pixels will not be actually painted 309 | # to screen, only used in blur calculation, and such. (Due to technical limitations, 310 | # with use-damage, those pixels will still be incorrectly painted to screen.) 311 | # Primarily used to fix the line corruption issues of blur, 312 | # in which case you should use the blur radius value here 313 | # (e.g. with a 3x3 kernel, you should use `--resize-damage 1`, 314 | # with a 5x5 one you use `--resize-damage 2`, and so on). 315 | # May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly. 316 | # 317 | # resize-damage = 1 318 | 319 | # Specify a list of conditions of windows that should be painted with inverted color. 320 | # Resource-hogging, and is not well tested. 321 | # 322 | # invert-color-include = [] 323 | 324 | # GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer. 325 | # Might cause incorrect opacity when rendering transparent content (but never 326 | # practically happened) and may not work with blur-background. 327 | # My tests show a 15% performance boost. Recommended. 328 | # 329 | # glx-no-stencil = false 330 | 331 | # GLX backend: Avoid rebinding pixmap on window damage. 332 | # Probably could improve performance on rapid window content changes, 333 | # but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.). 334 | # Recommended if it works. 335 | # 336 | # glx-no-rebind-pixmap = false 337 | 338 | # Disable the use of damage information. 339 | # This cause the whole screen to be redrawn everytime, instead of the part of the screen 340 | # has actually changed. Potentially degrades the performance, but might fix some artifacts. 341 | # The opposing option is use-damage 342 | # 343 | # no-use-damage = false 344 | use-damage = true 345 | 346 | # Use X Sync fence to sync clients' draw calls, to make sure all draw 347 | # calls are finished before picom starts drawing. Needed on nvidia-drivers 348 | # with GLX backend for some users. 349 | # 350 | # xrender-sync-fence = false 351 | 352 | # GLX backend: Use specified GLSL fragment shader for rendering window contents. 353 | # See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl` 354 | # in the source tree for examples. 355 | # 356 | # glx-fshader-win = '' 357 | 358 | # Force all windows to be painted with blending. Useful if you 359 | # have a glx-fshader-win that could turn opaque pixels transparent. 360 | # 361 | # force-win-blend = false 362 | 363 | # Do not use EWMH to detect fullscreen windows. 364 | # Reverts to checking if a window is fullscreen based only on its size and coordinates. 365 | # 366 | # no-ewmh-fullscreen = false 367 | 368 | # Dimming bright windows so their brightness doesn't exceed this set value. 369 | # Brightness of a window is estimated by averaging all pixels in the window, 370 | # so this could comes with a performance hit. 371 | # Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0) 372 | # 373 | # max-brightness = 1.0 374 | 375 | # Make transparent windows clip other windows like non-transparent windows do, 376 | # instead of blending on top of them. 377 | # 378 | # transparent-clipping = false 379 | 380 | # Set the log level. Possible values are: 381 | # "trace", "debug", "info", "warn", "error" 382 | # in increasing level of importance. Case doesn't matter. 383 | # If using the "TRACE" log level, it's better to log into a file 384 | # using *--log-file*, since it can generate a huge stream of logs. 385 | # 386 | # log-level = "debug" 387 | log-level = "warn"; 388 | 389 | # Set the log file. 390 | # If *--log-file* is never specified, logs will be written to stderr. 391 | # Otherwise, logs will to written to the given file, though some of the early 392 | # logs might still be written to the stderr. 393 | # When setting this option from the config file, it is recommended to use an absolute path. 394 | # 395 | # log-file = '~/.config/compton.log' 396 | 397 | # Show all X errors (for debugging) 398 | # show-all-xerrors = false 399 | 400 | # Write process ID to a file. 401 | # write-pid-path = '/path/to/your/log/file' 402 | 403 | # Window type settings 404 | # 405 | # 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard: 406 | # "unknown", "desktop", "dock", "toolbar", "menu", "utility", 407 | # "splash", "dialog", "normal", "dropdown_menu", "popup_menu", 408 | # "tooltip", "notification", "combo", and "dnd". 409 | # 410 | # Following per window-type options are available: :: 411 | # 412 | # fade, shadow::: 413 | # Controls window-type-specific shadow and fade settings. 414 | # 415 | # opacity::: 416 | # Controls default opacity of the window type. 417 | # 418 | # focus::: 419 | # Controls whether the window of this type is to be always considered focused. 420 | # (By default, all window types except "normal" and "dialog" has this on.) 421 | # 422 | # full-shadow::: 423 | # Controls whether shadow is drawn under the parts of the window that you 424 | # normally won't be able to see. Useful when the window has parts of it 425 | # transparent, and you want shadows in those areas. 426 | # 427 | # redir-ignore::: 428 | # Controls whether this type of windows should cause screen to become 429 | # redirected again after been unredirected. If you have unredir-if-possible 430 | # set, and doesn't want certain window to cause unnecessary screen redirection, 431 | # you can set this to `true`. 432 | # 433 | wintypes: 434 | { 435 | tooltip = { fade = true; shadow = true; opacity = 0.9; focus = true; full-shadow = false; }; 436 | dock = { shadow = false; } 437 | dnd = { shadow = false; } 438 | popup_menu = { opacity = 1.0; } 439 | dropdown_menu = { opacity = 1.0; } 440 | }; 441 | -------------------------------------------------------------------------------- /.xmonad/scripts/set-screen-resolution-in-virtualbox.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #use xrandr and arandr to know the 4 | #possible resolutions, frequency 5 | #and the names of your monitors 6 | 7 | #IF you know your native resolution and frequency 8 | #for example 1920x1080 @ 60 herz 9 | # type this in your terminal 10 | # gtf 1920 1080 60 11 | # This is the result 12 | # You will need to copy/paste it later. 13 | # 1920x1080 @ 60.00 Hz (GTF) hsync: 67.08 kHz; pclk: 172.80 MHz 14 | # Modeline "1920x1080_60.00" 172.80 1920 2040 2248 2576 1080 1081 1084 1118 -HSync +Vsync 15 | 16 | xrandr --newmode "1920x1080_75.00" 220.64 1920 2056 2264 2608 1080 1081 1084 1128 -HSync +Vsync 17 | 18 | xrandr --addmode Virtual-0 "1920x1080_75.00" 19 | xrandr --addmode Virtual1 "1920x1080_75.00" 20 | xrandr --addmode Virtual-1 "1920x1080_75.00" 21 | 22 | xrandr --output Virtual-0 --primary --mode "1920x1080_75.00" --pos 0x0 --rotate normal 23 | xrandr --output Virtual1 --primary --mode "1920x1080_75.00" --pos 0x0 --rotate normal 24 | xrandr --output Virtual-1 --primary --mode "1920x1080_75.00" --pos 0x0 --rotate normal 25 | -------------------------------------------------------------------------------- /.xmonad/scripts/xmobar/ansiweather: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ############################################################################### 4 | # # 5 | # AnsiWeather 1.17.0 # 6 | # Copyright (c) 2013-2020, Frederic Cambus # 7 | # https://github.com/fcambus/ansiweather # 8 | # # 9 | # Created: 2013-08-29 # 10 | # Last Updated: 2020-06-16 # 11 | # # 12 | # AnsiWeather is released under the BSD 2-Clause license. # 13 | # See LICENSE file for details. # 14 | # # 15 | ############################################################################### 16 | 17 | 18 | 19 | ###[ Configuration options ]################################################### 20 | 21 | LC_ALL=C; export LC_ALL 22 | 23 | if [ -n "$ANSIWEATHERRC" ] ; then 24 | config_file="$ANSIWEATHERRC" 25 | elif [ -s "$XDG_CONFIG_HOME"/ansiweather/config ] ; then 26 | config_file="$XDG_CONFIG_HOME"/ansiweather/config 27 | elif [ -s "$HOME"/.config/ansiweather/config ] ; then 28 | config_file="$HOME"/.config/ansiweather/config 29 | else 30 | config_file=~/.ansiweatherrc 31 | fi 32 | 33 | get_config() { 34 | ret="" 35 | if [ -f "$config_file" ] 36 | then 37 | ret=$(grep "^$1:" "$config_file" | cut -d: -f2-) 38 | fi 39 | 40 | if [ "X$ret" = "X" ] 41 | then 42 | return 1 43 | else 44 | echo "$ret" 45 | fi 46 | } 47 | 48 | fetch_cmd=$(get_config "fetch_cmd" || echo "curl -sf") 49 | 50 | 51 | 52 | ###[ Parse the command line ]################################################## 53 | 54 | # Get config options from command line flags 55 | while getopts l:u:f:Fa:s:k:i:w:h:p:d:v option 56 | do 57 | case "${option}" 58 | in 59 | l) location=${OPTARG};; 60 | u) units=${OPTARG};; 61 | f) forecast=${OPTARG};; 62 | F) forecast="5";; 63 | a) ansi=${OPTARG};; 64 | s) symbols=${OPTARG};; 65 | k) api_key=${OPTARG};; 66 | i) show_uvi=${OPTARG};; 67 | w) show_wind=${OPTARG};; 68 | h) show_humidity=${OPTARG};; 69 | p) show_pressure=${OPTARG};; 70 | d) show_daylight=${OPTARG};; 71 | v) echo "AnsiWeather 1.17.0" && exit 0;; 72 | \?) exit 64;; # EX_USAGE 73 | esac 74 | done 75 | 76 | 77 | 78 | ###[ Check if bc and jq are installed ]######################################## 79 | 80 | jqpath=$(which jq) 81 | if [ "$jqpath" = "" ] 82 | then 83 | echo "ERROR: Cannot find jq binary" 84 | exit 69 # EX_UNAVAILABLE 85 | fi 86 | 87 | bcpath=$(which bc) 88 | if [ "$bcpath" = "" ] 89 | then 90 | echo "ERROR: Cannot find bc binary" 91 | exit 69 # EX_UNAVAILABLE 92 | fi 93 | 94 | 95 | 96 | ###[ Set options that are not set from command line ]########################## 97 | 98 | # OpenWeatherMap API key 99 | [ -z "$api_key" ] && api_key=$(get_config "api_key" || echo "85a4e3c55b73909f42c6a23ec35b7147") 100 | 101 | # Location: example "Rzeszow,PL" 102 | [ -z "$location" ] && location=$(get_config "location" || echo "Rzeszow,PL") 103 | 104 | # System of Units: "metric" or "imperial" 105 | [ -z "$units" ] && units=$(get_config "units" || echo "metric") 106 | 107 | # Show forecast: How many days, example "5". "0" is standard output 108 | [ -z "$forecast" ] && forecast=$(get_config "forecast" || echo 0) 109 | 110 | # Display ANSI colors: "true" or "false" 111 | [ -z "$ansi" ] && ansi=$(get_config "ansi" || echo true) 112 | 113 | # Display symbols: "true" or "false" (requires a Unicode capable display) 114 | [ -z "$symbols" ] && symbols=$(get_config "symbols" || echo false) 115 | 116 | # Show UVI: "true" or "false" 117 | [ -z "$show_uvi" ] && show_uvi=$(get_config "show_uvi" || echo true) 118 | 119 | # Show wind: "true" or "false" 120 | [ -z "$show_wind" ] && show_wind=$(get_config "show_wind" || echo true) 121 | 122 | # Show humidity: "true" or "false" 123 | [ -z "$show_humidity" ] && show_humidity=$(get_config "show_humidity" || echo true) 124 | 125 | # Show pressure: "true" or "false" 126 | [ -z "$show_pressure" ] && show_pressure=$(get_config "show_pressure" || echo true) 127 | 128 | # Show daylight: "true" or "false" 129 | [ -z "$show_daylight" ] && show_daylight=$(get_config "show_daylight" || echo false) 130 | 131 | dateformat=$(get_config "dateformat" || echo "%a %b %d") 132 | timeformat=$(get_config "timeformat" || echo "%b %d %r") 133 | 134 | 135 | 136 | ###[ Colors and characters ]################################################### 137 | 138 | background=$(get_config "background" || echo "\033[44m") 139 | text=$(get_config "text" || echo "\033[36;1m") 140 | data=$(get_config "data" || echo "\033[33;1m") 141 | delimiter=$(get_config "delimiter" || echo "\033[35m:") 142 | dashes=$(get_config "dashes" || echo "\033[34m-") 143 | 144 | 145 | 146 | ###[ Text Labels ]############################################################# 147 | 148 | greeting_text=$(get_config "greeting_text" || echo "Weather in") 149 | wind_text=$(get_config "wind_text" || echo "Wind") 150 | humidity_text=$(get_config "humidity_text" || echo "Humidity") 151 | pressure_text=$(get_config "pressure_text" || echo "Pressure") 152 | sunrise_text=$(get_config "sunrise_text" || echo "Sunrise") 153 | sunset_text=$(get_config "sunset_text" || echo "Sunset") 154 | forecast_text=$(get_config "forecast_text" || echo "forecast") 155 | 156 | 157 | 158 | ###[ Unicode Symbols for icons ]############################################### 159 | 160 | sun=$(get_config "sun" || echo "\033[33;1m\xe2\x98\x80") 161 | moon=$(get_config "moon" || echo "\033[36m\xe2\x98\xbd") 162 | clouds=$(get_config "clouds" || echo "\033[37;1m\xe2\x98\x81") 163 | rain=$(get_config "rain" || echo "\033[37;1m\xe2\x98\x94") 164 | fog=$(get_config "fog" || echo "\033[37;1m\xe2\x96\x92") 165 | mist=$(get_config "mist" || echo "\033[34m\xe2\x96\x91") 166 | haze=$(get_config "haze" || echo "\033[33m\xe2\x96\x91") 167 | snow=$(get_config "snow" || echo "\033[37;1m\xe2\x9d\x84") 168 | thunderstorm=$(get_config "thunderstorm" || echo "\033[33;1m\xe2\x9a\xa1") 169 | 170 | 171 | 172 | ###[ Fetch Weather data ]###################################################### 173 | 174 | api_cmd=$([ "$forecast" != 0 ] && echo "forecast/daily" || echo "weather") 175 | 176 | if [ "$location" -gt 0 ] 2> /dev/null 177 | then 178 | # Location is all numeric 179 | weather=$($fetch_cmd "https://api.openweathermap.org/data/2.5/$api_cmd?id=$location&units=$units&appid=$api_key") 180 | else 181 | # Location is a string 182 | location=$(echo "$location" | sed "s/ /%20/g") 183 | weather=$($fetch_cmd "https://api.openweathermap.org/data/2.5/$api_cmd?q=$location&units=$units&appid=$api_key") 184 | fi 185 | 186 | if [ -z "$weather" ] 187 | then 188 | echo "ERROR: Cannot fetch weather data" 189 | exit 75 # EX_TEMPFAIL 190 | fi 191 | 192 | status_code=$(echo "$weather" | jq -r '.cod' 2>/dev/null) 193 | 194 | if [ "$status_code" != 200 ] 195 | then 196 | echo "ERROR: Cannot fetch weather data for the given location" 197 | exit 69 # EX_UNAVAILABLE 198 | fi 199 | 200 | 201 | 202 | ###[ Fetch UV data ]########################################################### 203 | 204 | if [ "$show_uvi" = true ] && [ "$forecast" = 0 ] 205 | then 206 | lat=$(echo "$weather" | jq -r '.coord.lat') 207 | lon=$(echo "$weather" | jq -r '.coord.lon') 208 | 209 | uvdata=$($fetch_cmd "https://api.openweathermap.org/data/2.5/uvi?lat=$lat&lon=$lon&appid=$api_key") 210 | uvi=$(echo "$uvdata" | jq -r '.value') 211 | fi 212 | 213 | 214 | 215 | ###[ Process Weather data ]#################################################### 216 | 217 | epoch_to_date() { 218 | if date -j -r "$1" +"%a %b %d" > /dev/null 2>&1; then 219 | # BSD 220 | ret=$(date -j -r "$1" +"$dateformat") 221 | else 222 | # GNU 223 | ret=$(date -d "@$1" +"$dateformat") 224 | fi 225 | echo "$ret" 226 | } 227 | 228 | if [ "$forecast" != 0 ] 229 | then 230 | city=$(echo "$weather" | jq -r '.city.name') 231 | flength=$(echo "$weather" | jq '.list | length') 232 | forecast=$([ "$forecast" -gt "$flength" ] && echo "$flength" || echo "$forecast") 233 | else 234 | #city=$(echo "$weather" | jq -r '.name') 235 | temperature=$(echo "$weather" | jq '.main.temp' | xargs printf "%.0f") 236 | humidity=$(echo "$weather" | jq '.main.humidity') 237 | pressure=$(echo "$weather" | jq '.main.pressure') 238 | sky=$(echo "$weather" | jq -r '.weather[0].main') 239 | sunrise=$(echo "$weather" | jq '.sys.sunrise') 240 | sunset=$(echo "$weather" | jq '.sys.sunset') 241 | wind=$(echo "$weather" | jq '.wind.speed') 242 | azimuth=$(echo "$weather" | jq '.wind.deg') 243 | fi 244 | 245 | 246 | 247 | ###[ Process Wind data ]####################################################### 248 | 249 | set -- $(get_config "wind_directions" || echo "N NNE NE ENE E ESE SE SSE S SSW SW WSW W WNW NW NNW") 250 | 251 | if [ "$forecast" = 0 ] 252 | then 253 | shift "$(echo "scale=0; ($azimuth + 11.25)/22.5 % 16" | bc)" 254 | direction=$1 255 | fi 256 | 257 | 258 | 259 | ###[ Process Sunrise and Sunset data ]######################################### 260 | 261 | epoch_to_time() { 262 | if date -j -r "$1" +"%r" > /dev/null 2>&1; then 263 | # BSD 264 | ret=$(date -j -r "$1" +"$timeformat") 265 | else 266 | # GNU 267 | ret=$(date -d "@$1" +"$timeformat") 268 | fi 269 | echo "$ret" 270 | } 271 | 272 | if [ "$forecast" = 0 ] 273 | then 274 | if [ -n "$sunrise" ] 275 | then 276 | sunrise_time=$(epoch_to_time "$sunrise") 277 | fi 278 | 279 | if [ -n "$sunset" ] 280 | then 281 | sunset_time=$(epoch_to_time "$sunset") 282 | fi 283 | fi 284 | 285 | 286 | 287 | ###[ Set the period ]########################################################## 288 | 289 | now=$(date +%s) 290 | 291 | if [ "$forecast" != 0 ] 292 | then 293 | period="none" 294 | else 295 | if [ -z "$sunset" ] || [ -z "$sunrise" ] 296 | then 297 | period="day" 298 | elif [ "$now" -ge "$sunset" ] || [ "$now" -le "$sunrise" ] 299 | then 300 | period="night" 301 | else 302 | period="day" 303 | fi 304 | fi 305 | 306 | 307 | 308 | ###[ Set the scale ]########################################################### 309 | 310 | case $units in 311 | metric) 312 | scale="°C" 313 | speed_unit="m/s" 314 | pressure_unit="hPa" 315 | pressure=$(echo "$pressure" | xargs printf "%.0f") 316 | ;; 317 | imperial) 318 | scale="°F" 319 | speed_unit="mph" 320 | pressure_unit="inHg" 321 | if [ "$forecast" = 0 ] 322 | then 323 | pressure=$(echo "$pressure*0.0295" | bc | xargs printf "%.2f") 324 | fi 325 | ;; 326 | esac 327 | 328 | 329 | 330 | ###[ Set icons ]############################################################### 331 | 332 | get_icon() { 333 | case $1 in 334 | Clear) 335 | if [ $period = "night" ] 336 | then 337 | echo "$moon " 338 | else 339 | echo "$sun " 340 | fi 341 | ;; 342 | Clouds) 343 | echo "$clouds " 344 | ;; 345 | Rain) 346 | echo "$rain " 347 | ;; 348 | Fog) 349 | echo "$fog " 350 | ;; 351 | Mist) 352 | echo "$mist " 353 | ;; 354 | Haze) 355 | echo "$haze " 356 | ;; 357 | Snow) 358 | echo "$snow " 359 | ;; 360 | Thunderstorm) 361 | echo "$thunderstorm " 362 | ;; 363 | esac 364 | } 365 | 366 | 367 | 368 | ###[ Display current Weather ]################################################# 369 | 370 | if [ "$forecast" != 0 ] 371 | then 372 | output="$background$text $city $forecast_text$text$delimiter " 373 | 374 | i=0 375 | while [ $i -lt "$forecast" ] 376 | do 377 | day=$(echo "$weather" | jq ".list[$i]") 378 | date=$(epoch_to_date "$(echo "$day" | jq -r '.dt')") 379 | low=$(echo "$day" | jq -r '.temp.min' | xargs printf "%.0f") 380 | high=$(echo "$day" | jq -r '.temp.max' | xargs printf "%.0f") 381 | 382 | icon="" 383 | if [ "$symbols" = true ] 384 | then 385 | sky=$(echo "$day" | jq -r '.weather[0].main') 386 | icon=$(get_icon "$sky") 387 | fi 388 | 389 | output="$output$text$date$delimiter $data$high$text/$data$low $scale $icon" 390 | if [ $i -lt $((forecast-1)) ] 391 | then 392 | output="$output$dashes " 393 | fi 394 | 395 | i=$((i + 1)) 396 | done 397 | else 398 | if [ "$symbols" = true ] 399 | then 400 | icon="$(get_icon "$sky")" 401 | fi 402 | output="$temperature$scale" #Main Output 403 | 404 | if [ "$show_uvi" = true ] 405 | then 406 | output="$output$dashes$text UVI$delimiter$data $uvi " 407 | fi 408 | 409 | if [ "$show_wind" = true ] 410 | then 411 | output="$output$dashes$text $wind_text$delimiter$data $wind $speed_unit $direction " 412 | fi 413 | 414 | if [ "$show_humidity" = true ] 415 | then 416 | output="$output$dashes$text $humidity_text$delimiter$data $humidity%% " 417 | fi 418 | 419 | if [ "$show_pressure" = true ] 420 | then 421 | output="$output$dashes$text $pressure_text$delimiter$data $pressure $pressure_unit " 422 | fi 423 | 424 | if [ "$show_daylight" = true ] 425 | then 426 | output="$output$dashes$text $sunrise_text$delimiter$data $sunrise_time $dashes$text $sunset_text$delimiter$data $sunset_time " 427 | fi 428 | fi 429 | 430 | if [ "$ansi" = true ] 431 | then 432 | env printf "$output\033[0m\n" 433 | else 434 | env printf "$output\n" | sed "s/$(printf '\033')\[[0-9;]*m//g" 435 | fi 436 | -------------------------------------------------------------------------------- /.xmonad/scripts/xmobar/btc: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | curl -s https://api.coinbase.com/v2/prices/BTC-EUR/buy | cut -d\: -f5 | cut -d\" -f2 | sed 's/...$//' | sed 's/\B[0-9]\{3\}\>/,&/' 3 | #curl -s http://api.coindesk.com/v2/bpi/currentprice.json | jq '.bpi.EUR.rate' | curl -s http://api.coindesk.com/v2/bpi/currentprice.json | jq '.bpi.EUR.rate' | sed 's/^.//' | sed 's/......$//' 4 | -------------------------------------------------------------------------------- /.xmonad/scripts/xmobar/eth: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | curl -s https://api.coinbase.com/v2/prices/ETH-EUR/buy | cut -d\: -f5 | cut -d\" -f2 | sed 's/...$//' | sed 's/\B[0-9]\{3\}\>/,&/' 3 | -------------------------------------------------------------------------------- /.xmonad/scripts/xmobar/mullvad: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | STATUS=$(mullvad status | head -n 1 | cut -d' ' -f3) 4 | SERVER=$(wget -q -O - https://freegeoip.live/csv/ | cut -d',' -f3) 5 | 6 | if [ $STATUS == "Connected" ] 7 | then 8 | echo $SERVER 9 | elif [ $STATUS == "Disconnected" ] 10 | then 11 | echo "Disconnected" 12 | else 13 | echo "Connecting..." 14 | fi 15 | 16 | -------------------------------------------------------------------------------- /.xmonad/scripts/xmobar/nordvpn: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #RESPONSE=$(wget -q -O - https://freegeoip.live/csv/) 4 | #IP_ADDRESS=$(echo $RESPONSE | cut -d',' -f1) 5 | IP_CITY=$(nordvpn status | grep 'City:' | awk {'print $2'}) 6 | SRV=$(nordvpn status | grep 'Current server:' | awk {'print $3'} | sed -e 's/^\(.\{4\}\).*/\1/') 7 | #IP_STATE=$(echo $RESPONSE | cut -d',' -f2) 8 | #UPTIME=$(echo ) 9 | 10 | STATUS=$(nordvpn status | head -n 1 | cut -d' ' -f6) 11 | 12 | if [ $STATUS == "Connected" ] 13 | then 14 | echo ${IP_CITY} ${SRV} 15 | elif [ $STATUS == "Disconnected" ] 16 | then 17 | echo "Disconnected" 18 | else 19 | echo "Connecting..." 20 | fi 21 | 22 | -------------------------------------------------------------------------------- /.xmonad/scripts/xmobar/ping: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ping -c 1 8.8.8.8 | awk 'FNR == 2 { print $(NF-1) }' | cut -d'=' -f2 3 | -------------------------------------------------------------------------------- /.xmonad/scripts/xmobar/protonvpn: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | STATUS=$(protonvpn-cli status | head -n 2 | cut -d' ' -f1) 4 | COUNTRY=$(protonvpn-cli status | grep 'Country:' | awk {'print $2'}) 5 | SERVER=$(protonvpn-cli status | grep 'Server:' | awk {'print $2'}) 6 | SRVLOAD=$(protonvpn-cli status | grep 'Server Load:' | awk {'print $3'}) 7 | DISCONNECTED=$(protonvpn-cli status | awk {'print $1'}) 8 | 9 | if [ $STATUS == "Proton" ] 10 | then 11 | echo $COUNTRY $SERVER $SRVLOAD 12 | elif [ $DISCONNECTED == "No" ] 13 | then 14 | echo "Disconnected" 15 | else 16 | echo "Connecting..." 17 | fi 18 | -------------------------------------------------------------------------------- /.xmonad/scripts/xmobar/sysupdate: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cupd=$(checkupdates | wc -l) 4 | echo "$cupd updates " 5 | 6 | -------------------------------------------------------------------------------- /.xmonad/scripts/xmobar/togglesinkaudio: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | new_sink=$(pacmd list-sinks | grep index | tee /dev/stdout | grep -m1 -A1 "* index" | tail -1 | cut -c12-) 4 | 5 | echo "Setting default sink to: $new_sink"; 6 | pacmd set-default-sink $new_sink 7 | pacmd list-sink-inputs | grep index | while read line 8 | do 9 | echo "Moving input: "; 10 | echo $line | cut -f2 -d' '; 11 | echo "to sink: $new_sink"; 12 | pacmd move-sink-input `echo $line | cut -f2 -d' '` $new_sink 13 | 14 | done 15 | -------------------------------------------------------------------------------- /.xmonad/scripts/xmobar/vpnsrvload: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | protonvpn-cli status | grep 'Server Load:' | awk {'print $3'} 3 | -------------------------------------------------------------------------------- /.xmonad/xmonad.hs: -------------------------------------------------------------------------------- 1 | -- Main 2 | import XMonad 3 | import System.IO (hPutStrLn) 4 | import System.Exit 5 | import qualified XMonad.StackSet as W 6 | 7 | -- Actions 8 | import XMonad.Actions.CycleWS (Direction1D(..), moveTo, shiftTo, WSType(..), nextScreen, prevScreen) 9 | import XMonad.Actions.MouseResize 10 | import XMonad.Actions.WithAll (sinkAll, killAll) 11 | import XMonad.Actions.CopyWindow (kill1) 12 | 13 | -- Data 14 | import Data.Semigroup 15 | import Data.Monoid 16 | import Data.Maybe (fromJust, isJust) 17 | import qualified Data.Map as M 18 | 19 | -- Hooks 20 | import XMonad.Hooks.DynamicProperty 21 | import XMonad.Hooks.DynamicLog 22 | import XMonad.Hooks.EwmhDesktops 23 | import XMonad.Hooks.ManageDocks (avoidStruts, docksEventHook, manageDocks, ToggleStruts(..)) 24 | import XMonad.Hooks.SetWMName 25 | import XMonad.Hooks.ManageHelpers (isFullscreen, doFullFloat, isDialog, doCenterFloat, doRectFloat) 26 | 27 | -- Layouts 28 | import XMonad.Layout.GridVariants (Grid(Grid)) 29 | import XMonad.Layout.ResizableTile 30 | import XMonad.Layout.LayoutModifier 31 | import XMonad.Layout.LimitWindows (limitWindows, increaseLimit, decreaseLimit) 32 | import XMonad.Layout.MultiToggle (mkToggle, single, EOT(EOT), (??)) 33 | import XMonad.Layout.MultiToggle.Instances (StdTransformers(NBFULL, MIRROR, NOBORDERS)) 34 | import XMonad.Layout.NoBorders 35 | import XMonad.Layout.Renamed 36 | import XMonad.Layout.Simplest 37 | import XMonad.Layout.Spacing 38 | import XMonad.Layout.SubLayouts 39 | import XMonad.Layout.WindowNavigation 40 | import XMonad.Layout.WindowArranger (windowArrange, WindowArrangerMsg(..)) 41 | import qualified XMonad.Layout.ToggleLayouts as T (toggleLayouts, ToggleLayout(Toggle)) 42 | import qualified XMonad.Layout.MultiToggle as MT (Toggle(..)) 43 | 44 | -- Utilities 45 | import XMonad.Util.Dmenu 46 | import XMonad.Util.EZConfig(additionalKeysP) 47 | import XMonad.Util.NamedScratchpad 48 | import XMonad.Util.Scratchpad 49 | import XMonad.Util.Run (runProcessWithInput, safeSpawn, spawnPipe) 50 | import XMonad.Util.SpawnOnce 51 | import Graphics.X11.ExtraTypes.XF86 52 | 53 | ------------------------------------------------------------------------ 54 | -- My Strings 55 | ------------------------------------------------------------------------ 56 | myTerminal :: String 57 | myTerminal = "alacritty" -- Default terminal 58 | 59 | myDmenu :: String 60 | myDmenu = "dmenu_run -i -nb '#2e3440' -nf '#a37acc' -sb '#55b4d4' -sf '#212733' -fn 'NotoMonoRegular:bold:pixelsize=15' -h 30" -- Dmenu 61 | 62 | myModMask :: KeyMask 63 | myModMask = mod4Mask -- Super Key (--mod4Mask= super key --mod1Mask= alt key --controlMask= ctrl key --shiftMask= shift key) 64 | 65 | myBorderWidth :: Dimension 66 | myBorderWidth = 0 -- Window border 67 | 68 | ------------------------------------------------------------------------ 69 | -- Colors 70 | ------------------------------------------------------------------------ 71 | myNormColor :: String -- Border color of normal windows 72 | myNormColor = "#73cffe" 73 | 74 | myFocusColor :: String -- Border color of focused windows 75 | myFocusColor = "#fe79c5" 76 | 77 | 78 | ------------------------------------------------------------------------ 79 | -- Space between Tiling Windows 80 | ------------------------------------------------------------------------ 81 | mySpacing :: Integer -> l a -> XMonad.Layout.LayoutModifier.ModifiedLayout Spacing l a 82 | mySpacing i = spacingRaw False (Border i i i i) True (Border i i i i) True 83 | --mySpacing i = spacingRaw False (Border 10 10 10 10) True (Border 10 10 10 10) True 84 | 85 | ------------------------------------------------------------------------ 86 | -- Layout Hook 87 | ------------------------------------------------------------------------ 88 | myLayoutHook = avoidStruts $ mouseResize $ windowArrange $ T.toggleLayouts full 89 | $ mkToggle (NBFULL ?? NOBORDERS ?? MIRROR ?? EOT) myDefaultLayout 90 | where 91 | myDefaultLayout = withBorder myBorderWidth grid 92 | ||| full 93 | ||| tall 94 | ||| mirror 95 | 96 | ------------------------------------------------------------------------ 97 | -- Tiling Layouts 98 | ------------------------------------------------------------------------ 99 | grid = renamed [Replace " <fc=#95e6cb><fn=2> \61449 </fn>Grid</fc>"] 100 | $ smartBorders 101 | $ windowNavigation 102 | $ subLayout [] (smartBorders Simplest) 103 | $ limitWindows 12 104 | $ mySpacing 5 105 | $ mkToggle (single MIRROR) 106 | -- $ Grid (16/10) 107 | $ ResizableTall 1 (3/100) (1/2) [] 108 | tall = renamed [Replace " <fc=#95e6cb><fn=2> \61449 </fn>Tall</fc>"] 109 | $ smartBorders 110 | $ windowNavigation 111 | $ subLayout [] (smartBorders Simplest) 112 | $ limitWindows 8 113 | $ mySpacing 5 114 | $ ResizableTall 1 (3/100) (1/2) [] 115 | mirror = renamed [Replace " <fc=#95e6cb><fn=2> \61449 </fn>Mirror</fc>"] 116 | $ smartBorders 117 | $ windowNavigation 118 | $ subLayout [] (smartBorders Simplest) 119 | $ limitWindows 6 120 | $ mySpacing 5 121 | $ Mirror 122 | $ ResizableTall 1 (3/100) (1/2) [] 123 | full = renamed [Replace " <fc=#95e6cb><fn=2> \61449 </fn>Full</fc>"] 124 | $ Full 125 | 126 | ------------------------------------------------------------------------ 127 | -- Workspaces 128 | ------------------------------------------------------------------------ 129 | xmobarEscape :: String -> String 130 | xmobarEscape = concatMap doubleLts 131 | where 132 | doubleLts x = [x] 133 | myWorkspaces :: [String] 134 | myWorkspaces = clickable . (map xmobarEscape) 135 | $ [" <fn=5>\61713</fn> ", " <fn=5>\61713</fn> ", " <fn=5>\61713</fn> ", " <fn=5>\61713</fn> ", " <fn=5>\61713</fn> "] 136 | where 137 | clickable l = ["<action=xdotool key super+" ++ show (i) ++ "> " ++ ws ++ "</action>" | (i, ws) <- zip [1 .. 5] l] 138 | windowCount :: X (Maybe String) 139 | windowCount = gets $ Just . show . length . W.integrate' . W.stack . W.workspace . W.current . windowset 140 | 141 | ------------------------------------------------------------------------ 142 | -- Scratch Pads 143 | ------------------------------------------------------------------------ 144 | myScratchPads :: [NamedScratchpad] 145 | myScratchPads = 146 | [ 147 | NS "discord" "discord" (appName =? "discord") (customFloating $ W.RationalRect 0.15 0.15 0.7 0.7) 148 | , NS "thunderbird" "thunderbird" (appName =? "Mail") (customFloating $ W.RationalRect 0.15 0.15 0.7 0.7) 149 | , NS "ravenreader" "ravenreader" (appName =? "raven reader") (customFloating $ W.RationalRect 0.15 0.15 0.7 0.7) 150 | , NS "thunar" "thunar" (appName =? "thunar") (customFloating $ W.RationalRect 0.15 0.15 0.7 0.7) 151 | , NS "discord" "discord" (appName =? "discord") (customFloating $ W.RationalRect 0.15 0.15 0.7 0.7) 152 | , NS "spotify" "spotify" (appName =? "spotify") (customFloating $ W.RationalRect 0.15 0.15 0.7 0.7) 153 | , NS "nautilus" "nautilus" (className =? "Org.gnome.Nautilus") (customFloating $ W.RationalRect 0.15 0.15 0.7 0.7) 154 | , NS "ncmpcpp" launchMocp (title =? "ncmpcpp") (customFloating $ W.RationalRect 0.15 0.15 0.7 0.7) 155 | , NS "whatsapp-for-linux" "whatsapp-for-linux" (appName =? "whatsapp-for-linux") (customFloating $ W.RationalRect 0.15 0.15 0.7 0.7) 156 | , NS "terminal" launchTerminal (title =? "scratchpad") (customFloating $ W.RationalRect 0.15 0.15 0.7 0.7) 157 | ] 158 | where 159 | launchMocp = myTerminal ++ " -t ncmpcpp -e ncmpcpp" 160 | launchTerminal = myTerminal ++ " -t scratchpad" 161 | 162 | ------------------------------------------------------------------------ 163 | -- Custom Keys 164 | ------------------------------------------------------------------------ 165 | myKeys :: [(String, X ())] 166 | myKeys = 167 | 168 | [ 169 | -- Xmonad 170 | ("M-<KP_Multiply>", spawn "xmonad --recompile && xmonad --restart") -- Recompile & Restarts xmonad 171 | , ("M-S-<KP_Divide>", io exitSuccess) -- Quits xmonad 172 | 173 | -- System Volume (PulseAudio) 174 | , ("M-<F12>", spawn "pactl set-sink-volume @DEFAULT_SINK@ +10%") -- Volume Up 175 | , ("M-<F11>", spawn "pactl set-sink-volume @DEFAULT_SINK@ -10%") -- Volume Down 176 | , ("M-<F10>", spawn "pactl set-sink-mute @DEFAULT_SINK@ toggle") -- Mute 177 | , ("M-S-<F9>", spawn "sh $HOME/.xmonad/scripts/xmobar/togglesinkaudio") -- Change sink-inputs 178 | 179 | -- System Lock 180 | , ("M-S-<XF86Eject>", spawn "archlinux-logout") -- Lock Screen 181 | , ("M-<XF86Eject>", spawn "betterlockscreen -l dim -- --time-str='%H:%M'") -- Lock Screen 182 | 183 | -- Run Prompt 184 | , ("M-p", spawn (myDmenu)) -- Run Dmenu (rofi -show drun) 185 | , ("M-s", spawn "sh $HOME/.config/rofi/launchers/misc/launcher.sh") -- Rofi Launcher 186 | , ("M-S-s", spawn "xfce4-appfinder") -- XFCE App FInder 187 | 188 | -- Apps 189 | , ("M-f", spawn "firefox") -- Firefox 190 | , ("M-b", spawn "brave") -- Brave 191 | , ("M-c", spawn "chromium") -- Chromium 192 | , ("M-S-f", spawn "firefox -private-window") -- Firefox Private mode 193 | , ("M-S-c", spawn "chromium --incognito") -- Chromium Private mode 194 | , ("M-S-b", spawn "brave --incognito") -- Brave Private mode 195 | , ("M-<Return>", spawn (myTerminal)) -- Terminal 196 | 197 | -- Flameshot 198 | , ("<XF86Tools>", spawn "flameshot gui") -- Flameshot GUI (screenshot) 199 | , ("M-<XF86Tools> 1", spawn "flameshot screen -n 0 -p $HOME/Pictures/Screenshots") -- Monitor 1 200 | , ("M-<XF86Tools> 2", spawn "flameshot screen -n 1 -p $HOME/Pictures/Screenshots") -- Monitor 2 201 | , ("M-<XF86Tools> 3", spawn "flameshot screen -n 2 -p $HOME/Pictures/Screenshots") -- Monitor 3 202 | , ("M-<XF86Tools> 4", spawn "sleep 5 && flameshot screen -n 0 -p $HOME/Pictures/Screenshots") -- Monitor 1 203 | , ("M-<XF86Tools> 5", spawn "sleep 5 && flameshot screen -n 1 -p $HOME/Pictures/Screenshots") -- Monitor 2 204 | , ("M-<XF86Tools> 6", spawn "sleep 5 && flameshot screen -n 2 -p $HOME/Pictures/Screenshots") -- Monitor 3 205 | 206 | -- Windows navigation 207 | , ("M-<Space>", sendMessage NextLayout) -- Rotate through the available layout algorithms 208 | , ("M1-f", sendMessage (MT.Toggle NBFULL) >> sendMessage ToggleStruts) -- Toggles full width 209 | , ("M1-s", sinkAll) -- Push all windows back into tiling 210 | , ("M1-S-p>", withFocused $ windows . W.sink) -- Push window back into tiling 211 | , ("M1-t", sendMessage (T.Toggle "floats")) -- Toggles my 'floats' layout 212 | , ("M-<Left>", windows W.swapMaster) -- Swap the focused window and the master window 213 | , ("M-<Up>", windows W.swapUp) -- Swap the focused window with the previous window 214 | , ("M-<Down>", windows W.swapDown) -- Swap the focused window with the next window 215 | 216 | -- Workspaces 217 | , ("M-.", nextScreen) -- Switch focus to next monitor 218 | , ("M-,", prevScreen) -- Switch focus to prev monitor 219 | , ("M-S-.", shiftTo Next nonNSP >> moveTo Next nonNSP) -- Shifts focused window to next ws 220 | , ("M-S-,", shiftTo Prev nonNSP >> moveTo Prev nonNSP) -- Shifts focused window to prev ws 221 | 222 | -- Kill windows 223 | , ("M-q", kill1) -- Quit the currently focused client 224 | , ("M-S-w", killAll) -- Quit all windows on current workspace 225 | , ("M-<Escape>", spawn "xkill") -- Kill the currently focused client 226 | 227 | -- Increase/decrease spacing (gaps) 228 | , ("M-C-j", decWindowSpacing 4) -- Decrease window spacing 229 | , ("M-C-k", incWindowSpacing 4) -- Increase window spacing 230 | , ("M-C-h", decScreenSpacing 4) -- Decrease screen spacing 231 | , ("M-C-l", incScreenSpacing 4) -- Increase screen spacing 232 | 233 | -- Window resizing 234 | , ("M1-<Left>", sendMessage Shrink) -- Shrink horiz window width 235 | , ("M1-<Right>", sendMessage Expand) -- Expand horiz window width 236 | , ("M1-<Down>", sendMessage MirrorShrink) -- Shrink vert window width 237 | , ("M1-<Up>", sendMessage MirrorExpand) -- Expand vert window width 238 | 239 | -- Brightness Display 1 240 | , ("M-<F1>", spawn "sh $HOME/.xmonad/scripts/brightness.sh + DisplayPort-0") -- Night Mode 241 | , ("M-<F2>", spawn "sh $HOME/.xmonad/scripts/brightness.sh - DisplayPort-0") -- Day mode 242 | , ("M-S-<F1>", spawn "sh $HOME/.xmonad/scripts/brightness.sh = DisplayPort-0")-- Reset redshift light 243 | 244 | -- Brightness Display 2 245 | , ("M1-<F1>", spawn "sh $HOME/.xmonad/scripts/brightness.sh + HDMI-A-1") -- Night Mode 246 | , ("M1-<F2>", spawn "sh $HOME/.xmonad/scripts/brightness.sh - HDMI-A-1") -- Day mode 247 | , ("M1-S-<F1>", spawn "sh $HOME/.xmonad/scripts/brightness.sh = HDMI-A-1") -- Reset redshift light 248 | 249 | -- Redshift 250 | , ("C-<F1>", spawn "redshift -O 5000K") -- Day Mode 251 | , ("C-<F2>", spawn "redshift -O 3000K") -- Night mode 252 | , ("C-S-<F1>", spawn "redshift -x") -- Reset redshift light 253 | 254 | -- Controls for MPD + ncmpcpp 255 | , ("M-<F8>", spawn "mpc play") -- Play 256 | , ("M-<F9>", spawn "mpc next") -- Next 257 | , ("M-<F7>", spawn "mpc prev") -- Prev 258 | , ("M-S-<F8>", spawn "mpc toggle") -- Pause/unpause 259 | , ("M-C-<F8>", spawn "mpc stop") -- Stop 260 | 261 | -- Scratchpad windows 262 | , ("M-m", namedScratchpadAction myScratchPads "ncmpcpp") -- Ncmpcpp Player 263 | , ("M-o", namedScratchpadAction myScratchPads "spotify") -- Spotify 264 | , ("M-a", namedScratchpadAction myScratchPads "nautilus") -- Nautilus 265 | , ("M-e", namedScratchpadAction myScratchPads "telegram") -- Telegram 266 | , ("M-d", namedScratchpadAction myScratchPads "discord") -- Discord 267 | , ("M-w", namedScratchpadAction myScratchPads "whatsapp-for-linux") -- WhatsApp 268 | , ("M-t", namedScratchpadAction myScratchPads "terminal") -- Terminal 269 | , ("M-h", namedScratchpadAction myScratchPads "thunderbird") -- Thunderbird 270 | , ("M-r", namedScratchpadAction myScratchPads "ravenreader") -- Raven Reader 271 | , ("M-z", namedScratchpadAction myScratchPads "thunar") -- Thunar 272 | 273 | ] 274 | 275 | ------------------------------------------------------------------------ 276 | -- Moving between WS 277 | ------------------------------------------------------------------------ 278 | where nonNSP = WSIs (return (\ws -> W.tag ws /= "NSP")) 279 | nonEmptyNonNSP = WSIs (return (\ws -> isJust (W.stack ws) && W.tag ws /= "NSP")) 280 | 281 | ------------------------------------------------------------------------ 282 | -- Floats 283 | ------------------------------------------------------------------------ 284 | myManageHook :: XMonad.Query (Data.Monoid.Endo WindowSet) 285 | myManageHook = composeAll 286 | [ className =? "confirm" --> doFloat 287 | , className =? "file_progress" --> doFloat 288 | , resource =? "desktop_window" --> doIgnore 289 | , className =? "MEGAsync" --> doFloat 290 | , className =? "mpv" --> doRectFloat (W.RationalRect 0.15 0.15 0.7 0.7) 291 | , className =? "Gthumb" --> doCenterFloat 292 | , className =? "feh" --> doCenterFloat 293 | , className =? "Galculator" --> doCenterFloat 294 | , className =? "Viewnior" --> doCenterFloat 295 | , className =? "Gcolor3" --> doFloat 296 | , className =? "dialog" --> doFloat 297 | , className =? "Downloads" --> doFloat 298 | , className =? "Save As..." --> doFloat 299 | , className =? "Xfce4-appfinder" --> doFloat 300 | , className =? "Org.gnome.NautilusPreviewer" --> doRectFloat (W.RationalRect 0.15 0.15 0.7 0.7) 301 | , className =? "Ristretto" --> doRectFloat (W.RationalRect 0.15 0.15 0.7 0.7) 302 | , className =? "Bitwarden" --> doRectFloat (W.RationalRect 0.15 0.15 0.7 0.7) 303 | , className =? "Xdg-desktop-portal-gtk" --> doRectFloat (W.RationalRect 0.15 0.15 0.7 0.7) 304 | , className =? "Thunar" --> doRectFloat (W.RationalRect 0.15 0.15 0.7 0.7) 305 | , className =? "Sublime_merge" --> doRectFloat (W.RationalRect 0.15 0.15 0.7 0.7) 306 | , isFullscreen --> doFullFloat 307 | , isDialog --> doCenterFloat 308 | ] <+> namedScratchpadManageHook myScratchPads 309 | 310 | myHandleEventHook :: Event -> X All 311 | myHandleEventHook = dynamicPropertyChange "WM_NAME" (title =? "Spotify" --> floating) 312 | where floating = doRectFloat (W.RationalRect 0.15 0.15 0.7 0.7) 313 | 314 | ------------------------------------------------------------------------ 315 | -- Startup Hooks 316 | ------------------------------------------------------------------------ 317 | myStartupHook = do 318 | spawnOnce "$HOME/.xmonad/scripts/autostart.sh" 319 | setWMName "LG3D" 320 | 321 | ------------------------------------------------------------------------ 322 | -- Main Do 323 | ------------------------------------------------------------------------ 324 | main :: IO () 325 | main = do 326 | xmproc0 <- spawnPipe "/usr/bin/xmobar -x 0 ~/.xmobarrc0" 327 | xmproc1 <- spawnPipe "/usr/bin/xmobar -x 1 ~/.xmobarrc1" 328 | xmproc2 <- spawnPipe "/usr/bin/xmobar -x 2 ~/.xmobarrc2" 329 | xmonad $ ewmh def 330 | { manageHook = myManageHook <+> manageDocks 331 | , handleEventHook = docksEventHook <+> fullscreenEventHook 332 | , logHook = dynamicLogWithPP $ namedScratchpadFilterOutWorkspacePP $ xmobarPP 333 | { ppOutput = \x -> hPutStrLn xmproc0 x -- xmobar on monitor 1 334 | >> hPutStrLn xmproc1 x -- xmobar on monitor 2 335 | >> hPutStrLn xmproc2 x -- xmobar on monitor 3 336 | , ppCurrent = xmobarColor "#ff79c6" "" . \s -> " <fn=2>\61713</fn>" 337 | , ppVisible = xmobarColor "#d4bfff" "" 338 | , ppHidden = xmobarColor "#d4bfff" "" 339 | , ppHiddenNoWindows = xmobarColor "#d4bfff" "" 340 | , ppTitle = xmobarColor "#c7c7c7" "" . shorten 60 341 | , ppSep = "<fc=#212733> <fn=1> </fn> </fc>" 342 | , ppOrder = \(ws:l:_:_) -> [ws,l] 343 | } 344 | , modMask = mod4Mask 345 | , layoutHook = myLayoutHook 346 | , workspaces = myWorkspaces 347 | , terminal = myTerminal 348 | , borderWidth = myBorderWidth 349 | , startupHook = myStartupHook 350 | , normalBorderColor = myNormColor 351 | , focusedBorderColor = myFocusColor 352 | } `additionalKeysP` myKeys 353 | 354 | -- Find app class name 355 | -- xprop | grep WM_CLASS 356 | -- https://xmobar.org/#diskio-disks-args-refreshrate 357 | -------------------------------------------------------------------------------- /.xprofile: -------------------------------------------------------------------------------- 1 | xrandr --newmode "1920x1080_75.00" 220.64 1920 2056 2264 2608 1080 1081 1084 1128 -HSync +Vsync 2 | xrandr --addmode Virtual-1 "1920x1080_75.00" 3 | xrandr --output Virtual-1 --mode "1920x1080_75.00" --pos 0x0 --rotate normal 4 | -------------------------------------------------------------------------------- /.zshrc: -------------------------------------------------------------------------------- 1 | # If you come from bash you might have to change your $PATH. 2 | # export PATH=$HOME/bin:/usr/local/bin:$PATH 3 | 4 | # Path to your oh-my-zsh installation. 5 | #installation via script from github 6 | #export ZSH="/home/$USER/.oh-my-zsh" 7 | #installation via paru -S oh-my-zsh-git 8 | export ZSH=/usr/share/oh-my-zsh/ 9 | 10 | # Set name of the theme to load --- if set to "random", it will 11 | # load a random theme each time oh-my-zsh is loaded, in which case, 12 | # to know which specific one was loaded, run: echo $RANDOM_THEME 13 | # See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes 14 | # if you installed the package oh-my-zsh-powerline-theme-git then you type here "powerline" as zsh theme 15 | ZSH_THEME="random" 16 | 17 | # Set list of themes to pick from when loading at random 18 | # Setting this variable when ZSH_THEME=random will cause zsh to load 19 | # a theme from this variable instead of looking in ~/.oh-my-zsh/themes/ 20 | # If set to an empty array, this variable will have no effect. 21 | 22 | # ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) 23 | 24 | # ZSH_THEME_RANDOM_IGNORED=(pygmalion tjkirch_mod) 25 | 26 | # Uncomment the following line to use case-sensitive completion. 27 | # CASE_SENSITIVE="true" 28 | 29 | # Uncomment the following line to use hyphen-insensitive completion. 30 | # Case-sensitive completion must be off. _ and - will be interchangeable. 31 | # HYPHEN_INSENSITIVE="true" 32 | 33 | # Uncomment the following line to disable bi-weekly auto-update checks. 34 | # DISABLE_AUTO_UPDATE="true" 35 | 36 | # Uncomment the following line to automatically update without prompting. 37 | # DISABLE_UPDATE_PROMPT="true" 38 | 39 | # Uncomment the following line to change how often to auto-update (in days). 40 | # export UPDATE_ZSH_DAYS=13 41 | 42 | # Uncomment the following line if pasting URLs and other text is messed up. 43 | # DISABLE_MAGIC_FUNCTIONS=true 44 | 45 | # Uncomment the following line to disable colors in ls. 46 | # DISABLE_LS_COLORS="true" 47 | 48 | # Uncomment the following line to disable auto-setting terminal title. 49 | # DISABLE_AUTO_TITLE="true" 50 | 51 | # Uncomment the following line to enable command auto-correction. 52 | # ENABLE_CORRECTION="true" 53 | 54 | # Uncomment the following line to display red dots whilst waiting for completion. 55 | # COMPLETION_WAITING_DOTS="true" 56 | 57 | # Uncomment the following line if you want to disable marking untracked files 58 | # under VCS as dirty. This makes repository status check for large repositories 59 | # much, much faster. 60 | # DISABLE_UNTRACKED_FILES_DIRTY="true" 61 | 62 | # Uncomment the following line if you want to change the command execution time 63 | # stamp shown in the history command output. 64 | # You can set one of the optional three formats: 65 | # "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" 66 | # or set a custom format using the strftime function format specifications, 67 | # see 'man strftime' for details. 68 | # HIST_STAMPS="mm/dd/yyyy" 69 | 70 | # Would you like to use another custom folder than $ZSH/custom? 71 | # ZSH_CUSTOM=/path/to/new-custom-folder 72 | 73 | # Which plugins would you like to load? 74 | # Standard plugins can be found in ~/.oh-my-zsh/plugins/* 75 | # Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/ 76 | # Example format: plugins=(rails git textmate ruby lighthouse) 77 | # Add wisely, as too many plugins slow down shell startup. 78 | plugins=(git) 79 | 80 | source $ZSH/oh-my-zsh.sh 81 | 82 | # User configuration 83 | 84 | # export MANPATH="/usr/local/man:$MANPATH" 85 | 86 | # You may need to manually set your language environment 87 | # export LANG=en_US.UTF-8 88 | 89 | # Preferred editor for local and remote sessions 90 | # if [[ -n $SSH_CONNECTION ]]; then 91 | # export EDITOR='vim' 92 | # else 93 | # export EDITOR='mvim' 94 | # fi 95 | 96 | # Compilation flags 97 | # export ARCHFLAGS="-arch x86_64" 98 | 99 | 100 | #### ARCOLINUX SETTINGS #### 101 | 102 | 103 | source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh 104 | 105 | setopt GLOB_DOTS 106 | 107 | # If not running interactively, don't do anything 108 | [[ $- != *i* ]] && return 109 | 110 | export HISTCONTROL=ignoreboth:erasedups 111 | 112 | # Make nano the default editor 113 | 114 | export EDITOR='nano' 115 | export VISUAL='nano' 116 | 117 | #PS1='[\u@\h \W]\$ ' 118 | 119 | if [ -d "$HOME/.bin" ] ; 120 | then PATH="$HOME/.bin:$PATH" 121 | fi 122 | 123 | if [ -d "$HOME/.local/bin" ] ; 124 | then PATH="$HOME/.local/bin:$PATH" 125 | fi 126 | 127 | #list 128 | alias ls='ls --color=auto' 129 | alias la='ls -a' 130 | alias ll='ls -la' 131 | alias l='ls' 132 | alias l.="ls -A | egrep '^\.'" 133 | 134 | #fix obvious typo's 135 | alias cd..='cd ..' 136 | alias pdw="pwd" 137 | alias udpate='sudo pacman -Syyu' 138 | alias upate='sudo pacman -Syyu' 139 | alias updte='sudo pacman -Syyu' 140 | alias updqte='sudo pacman -Syyu' 141 | alias upqll="paru -Syu --noconfirm" 142 | alias upal="paru -Syu --noconfirm" 143 | 144 | ## Colorize the grep command output for ease of use (good for log files)## 145 | alias grep='grep --color=auto' 146 | alias egrep='egrep --color=auto' 147 | alias fgrep='fgrep --color=auto' 148 | 149 | #readable output 150 | alias df='df -h' 151 | 152 | #pacman unlock 153 | alias unlock="sudo rm /var/lib/pacman/db.lck" 154 | alias rmpacmanlock="sudo rm /var/lib/pacman/db.lck" 155 | 156 | #arcolinux logout unlock 157 | alias rmlogoutlock="sudo rm /tmp/arcologout.lock" 158 | 159 | #which graphical card is working 160 | alias whichvga="/usr/local/bin/arcolinux-which-vga" 161 | 162 | #free 163 | alias free="free -mt" 164 | 165 | #continue download 166 | alias wget="wget -c" 167 | 168 | #userlist 169 | alias userlist="cut -d: -f1 /etc/passwd" 170 | 171 | #merge new settings 172 | alias merge="xrdb -merge ~/.Xresources" 173 | 174 | # Aliases for software managment 175 | # pacman or pm 176 | alias pacman='sudo pacman --color auto' 177 | alias update='sudo pacman -Syyu' 178 | 179 | # paru as aur helper - updates everything 180 | alias pksyua="paru -Syu --noconfirm" 181 | alias upall="paru -Syu --noconfirm" 182 | 183 | #ps 184 | alias psa="ps auxf" 185 | alias psgrep="ps aux | grep -v grep | grep -i -e VSZ -e" 186 | 187 | #grub update 188 | alias update-grub="sudo grub-mkconfig -o /boot/grub/grub.cfg" 189 | 190 | #add new fonts 191 | alias update-fc='sudo fc-cache -fv' 192 | 193 | #copy/paste all content of /etc/skel over to home folder - backup of config created - beware 194 | alias skel='[ -d ~/.config ] || mkdir ~/.config && cp -Rf ~/.config ~/.config-backup-$(date +%Y.%m.%d-%H.%M.%S) && cp -rf /etc/skel/* ~' 195 | #backup contents of /etc/skel to hidden backup folder in home/user 196 | alias bupskel='cp -Rf /etc/skel ~/.skel-backup-$(date +%Y.%m.%d-%H.%M.%S)' 197 | 198 | #copy bashrc-latest over on bashrc - cb= copy bashrc 199 | #alias cb='sudo cp /etc/skel/.bashrc ~/.bashrc && source ~/.bashrc' 200 | #copy /etc/skel/.zshrc over on ~/.zshrc - cb= copy zshrc 201 | alias cz='sudo cp /etc/skel/.zshrc ~/.zshrc && exec zsh' 202 | 203 | #switch between bash and zsh 204 | alias tobash="sudo chsh $USER -s /bin/bash && echo 'Now log out.'" 205 | alias tozsh="sudo chsh $USER -s /bin/zsh && echo 'Now log out.'" 206 | 207 | #switch between lightdm and sddm 208 | alias tolightdm="sudo pacman -S lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings --noconfirm --needed ; sudo systemctl enable lightdm.service -f ; echo 'Lightm is active - reboot now'" 209 | alias tosddm="sudo pacman -S sddm --noconfirm --needed ; sudo systemctl enable sddm.service -f ; echo 'Sddm is active - reboot now'" 210 | 211 | #quickly kill conkies 212 | alias kc='killall conky' 213 | 214 | #hardware info --short 215 | alias hw="hwinfo --short" 216 | 217 | #skip integrity check 218 | alias paruskip='paru -S --mflags --skipinteg' 219 | alias yayskip='yay -S --mflags --skipinteg' 220 | alias trizenskip='trizen -S --skipinteg' 221 | 222 | #check vulnerabilities microcode 223 | alias microcode='grep . /sys/devices/system/cpu/vulnerabilities/*' 224 | 225 | #get fastest mirrors in your neighborhood 226 | alias mirror="sudo reflector -f 30 -l 30 --number 10 --verbose --save /etc/pacman.d/mirrorlist" 227 | alias mirrord="sudo reflector --latest 30 --number 10 --sort delay --save /etc/pacman.d/mirrorlist" 228 | alias mirrors="sudo reflector --latest 30 --number 10 --sort score --save /etc/pacman.d/mirrorlist" 229 | alias mirrora="sudo reflector --latest 30 --number 10 --sort age --save /etc/pacman.d/mirrorlist" 230 | #our experimental - best option for the moment 231 | alias mirrorx="sudo reflector --age 6 --latest 20 --fastest 20 --threads 5 --sort rate --protocol https --save /etc/pacman.d/mirrorlist" 232 | alias mirrorxx="sudo reflector --age 6 --latest 20 --fastest 20 --threads 20 --sort rate --protocol https --save /etc/pacman.d/mirrorlist" 233 | 234 | #mounting the folder Public for exchange between host and guest on virtualbox 235 | alias vbm="sudo /usr/local/bin/arcolinux-vbox-share" 236 | 237 | #shopt 238 | #shopt -s autocd # change to named directory 239 | #shopt -s cdspell # autocorrects cd misspellings 240 | #shopt -s cmdhist # save multi-line commands in history as single line 241 | #shopt -s dotglob 242 | #shopt -s histappend # do not overwrite history 243 | #shopt -s expand_aliases # expand aliases 244 | 245 | #youtube-dl 246 | alias yta-aac="youtube-dl --extract-audio --audio-format aac " 247 | alias yta-best="youtube-dl --extract-audio --audio-format best " 248 | alias yta-flac="youtube-dl --extract-audio --audio-format flac " 249 | alias yta-m4a="youtube-dl --extract-audio --audio-format m4a " 250 | alias yta-mp3="youtube-dl --extract-audio --audio-format mp3 " 251 | alias yta-opus="youtube-dl --extract-audio --audio-format opus " 252 | alias yta-vorbis="youtube-dl --extract-audio --audio-format vorbis " 253 | alias yta-wav="youtube-dl --extract-audio --audio-format wav " 254 | 255 | alias ytv-best="youtube-dl -f bestvideo+bestaudio " 256 | 257 | #Recent Installed Packages 258 | alias rip="expac --timefmt='%Y-%m-%d %T' '%l\t%n %v' | sort | tail -200 | nl" 259 | alias riplong="expac --timefmt='%Y-%m-%d %T' '%l\t%n %v' | sort | tail -3000 | nl" 260 | 261 | #iso and version used to install ArcoLinux 262 | alias iso="cat /etc/dev-rel | awk -F '=' '/ISO/ {print $2}'" 263 | 264 | #Cleanup orphaned packages 265 | alias cleanup='sudo pacman -Rns $(pacman -Qtdq)' 266 | 267 | #search content with ripgrep 268 | alias rg="rg --sort path" 269 | 270 | #get the error messages from journalctl 271 | alias jctl="journalctl -p 3 -xb" 272 | 273 | #nano for important configuration files 274 | #know what you do in these files 275 | alias nlightdm="sudo $EDITOR /etc/lightdm/lightdm.conf" 276 | alias npacman="sudo $EDITOR /etc/pacman.conf" 277 | alias ngrub="sudo $EDITOR /etc/default/grub" 278 | alias nconfgrub="sudo $EDITOR /boot/grub/grub.cfg" 279 | alias nmkinitcpio="sudo $EDITOR /etc/mkinitcpio.conf" 280 | alias nmirrorlist="sudo $EDITOR /etc/pacman.d/mirrorlist" 281 | alias narcomirrorlist='sudo nano /etc/pacman.d/arcolinux-mirrorlist' 282 | alias nsddm="sudo $EDITOR /etc/sddm.conf" 283 | alias nsddmk="sudo $EDITOR /etc/sddm.conf.d/kde_settings.conf" 284 | alias nfstab="sudo $EDITOR /etc/fstab" 285 | alias nnsswitch="sudo $EDITOR /etc/nsswitch.conf" 286 | alias nsamba="sudo $EDITOR /etc/samba/smb.conf" 287 | alias ngnupgconf="sudo nano /etc/pacman.d/gnupg/gpg.conf" 288 | alias nb="$EDITOR ~/.bashrc" 289 | alias nz="$EDITOR ~/.zshrc" 290 | 291 | #gpg 292 | #verify signature for isos 293 | alias gpg-check="gpg2 --keyserver-options auto-key-retrieve --verify" 294 | alias fix-gpg-check="gpg2 --keyserver-options auto-key-retrieve --verify" 295 | #receive the key of a developer 296 | alias gpg-retrieve="gpg2 --keyserver-options auto-key-retrieve --receive-keys" 297 | alias fix-gpg-retrieve="gpg2 --keyserver-options auto-key-retrieve --receive-keys" 298 | alias fix-keyserver="[ -d ~/.gnupg ] || mkdir ~/.gnupg ; cp /etc/pacman.d/gnupg/gpg.conf ~/.gnupg/ ; echo 'done'" 299 | 300 | #fixes 301 | alias fix-permissions="sudo chown -R $USER:$USER ~/.config ~/.local" 302 | alias keyfix="/usr/local/bin/arcolinux-fix-pacman-databases-and-keys" 303 | alias fix-key="/usr/local/bin/arcolinux-fix-pacman-databases-and-keys" 304 | alias fix-sddm-config="/usr/local/bin/arcolinux-fix-sddm-config" 305 | alias fix-pacman-conf="/usr/local/bin/arcolinux-fix-pacman-conf" 306 | 307 | #maintenance 308 | alias big="expac -H M '%m\t%n' | sort -h | nl" 309 | alias downgrada="sudo downgrade --ala-url https://ant.seedhost.eu/arcolinux/" 310 | 311 | #systeminfo 312 | alias probe="sudo -E hw-probe -all -upload" 313 | alias sysfailed="systemctl list-units --failed" 314 | 315 | #shutdown or reboot 316 | alias ssn="sudo shutdown now" 317 | alias sr="sudo reboot" 318 | 319 | #update betterlockscreen images 320 | alias bls="betterlockscreen -u /usr/share/backgrounds/arcolinux/" 321 | 322 | #give the list of all installed desktops - xsessions desktops 323 | alias xd="ls /usr/share/xsessions" 324 | 325 | # # ex = EXtractor for all kinds of archives 326 | # # usage: ex <file> 327 | ex () 328 | { 329 | if [ -f $1 ] ; then 330 | case $1 in 331 | *.tar.bz2) tar xjf $1 ;; 332 | *.tar.gz) tar xzf $1 ;; 333 | *.bz2) bunzip2 $1 ;; 334 | *.rar) unrar x $1 ;; 335 | *.gz) gunzip $1 ;; 336 | *.tar) tar xf $1 ;; 337 | *.tbz2) tar xjf $1 ;; 338 | *.tgz) tar xzf $1 ;; 339 | *.zip) unzip $1 ;; 340 | *.Z) uncompress $1;; 341 | *.7z) 7z x $1 ;; 342 | *.deb) ar x $1 ;; 343 | *.tar.xz) tar xf $1 ;; 344 | *.tar.zst) tar xf $1 ;; 345 | *) echo "'$1' cannot be extracted via ex()" ;; 346 | esac 347 | else 348 | echo "'$1' is not a valid file" 349 | fi 350 | } 351 | 352 | #arcolinux applications 353 | alias att="arcolinux-tweak-tool" 354 | alias adt="arcolinux-desktop-trasher" 355 | alias abl="arcolinux-betterlockscreen" 356 | alias agm="arcolinux-get-mirrors" 357 | alias amr="arcolinux-mirrorlist-rank-info" 358 | alias aom="arcolinux-osbeck-as-mirror" 359 | alias ars="arcolinux-reflector-simple" 360 | alias atm="arcolinux-tellme" 361 | alias avs="arcolinux-vbox-share" 362 | alias awa="arcolinux-welcome-app" 363 | 364 | #remove 365 | alias rmgitcache="rm -r ~/.cache/git" 366 | 367 | #moving your personal files and folders from /personal to ~ 368 | alias personal='cp -Rf /personal/* ~' 369 | 370 | #create a file called .zshrc-personal and put all your personal aliases 371 | #in there. They will not be overwritten by skel. 372 | 373 | [[ -f ~/.zshrc-personal ]] && . ~/.zshrc-personal 374 | 375 | # reporting tools - install when not installed 376 | # install neofetch 377 | neofetch 378 | # install screenfetch 379 | #screenfetch 380 | # install ufetch-git 381 | #ufetch 382 | # install ufetch-arco-git 383 | #ufetch-arco 384 | # install arcolinux-paleofetch-git 385 | #paleofetch 386 | # install alsi 387 | #alsi 388 | # install arcolinux-bin-git - standard on ArcoLinux isos (or sfetch - smaller) 389 | #hfetch 390 | # install lolcat 391 | #sfetch | lolcat 392 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ### This repository contains my dotfiles 2 | A collection of configs to be placed in the user's home directory usually prefixed with a period, hence the name dotfiles 3 | 4 | ### Screenshot 5 | 6 | ![My ArchLinux Desktop](https://i.imgur.com/EP2iFWL.png) 7 | 8 | ![My ArchLinux Desktop](https://i.imgur.com/z4HehHL.png) 9 | 10 | ![My ArchLinux Desktop](https://i.imgur.com/6MMgAn6.png) 11 | 12 | ![My ArchLinux Desktop](https://i.imgur.com/ro0TYWC.png) 13 | 14 | ![My ArchLinux Desktop2](https://i.imgur.com/juhwQlK.png) 15 | 16 | 17 | -------------------------------------------------------------------------------- /pacman.txt: -------------------------------------------------------------------------------- 1 | accountsservice 2 | adapta-gtk-theme 3 | adobe-source-han-sans-cn-fonts 4 | adobe-source-han-sans-jp-fonts 5 | adobe-source-han-sans-kr-fonts 6 | adobe-source-sans-fonts 7 | alacritty 8 | alacritty-themes 9 | alsa-firmware 10 | alsa-lib 11 | alsa-plugins 12 | alsa-utils 13 | amd-ucode 14 | amdgpu-pro-libgl 15 | ant-dracula-kvantum-theme-git 16 | appstream 17 | arandr 18 | arc-darkest-theme-git 19 | arc-gtk-theme 20 | arc-icon-theme 21 | arch-install-scripts 22 | archiso 23 | archlinux-tweak-tool-git 24 | arcolinux-alacritty-git 25 | arcolinux-arc-kde 26 | arcolinux-arc-themes-git 27 | arcolinux-bin-git 28 | arcolinux-candy-beauty-git 29 | arcolinux-config-all-desktops-git 30 | arcolinux-conky-collection-git 31 | arcolinux-dconf-all-desktops-git 32 | arcolinux-desktop-trasher-git 33 | arcolinux-fonts-git 34 | arcolinux-grub-theme-vimix-git 35 | arcolinux-gtk3-sardi-arc-git 36 | arcolinux-hblock-git 37 | arcolinux-i3wm-git 38 | arcolinux-keyring 39 | arcolinux-kvantum-git 40 | arcolinux-local-applications-git 41 | arcolinux-local-xfce4-git 42 | arcolinux-meta-logout 43 | arcolinux-mirrorlist-git 44 | arcolinux-neofetch-git 45 | arcolinux-nitrogen-git 46 | arcolinux-paru-git 47 | arcolinux-pipemenus-git 48 | arcolinux-polybar-git 49 | arcolinux-qt5-git 50 | arcolinux-rofi-git 51 | arcolinux-rofi-themes-git 52 | arcolinux-root-git 53 | arcolinux-sddm-chili-git 54 | arcolinux-sddm-fralonra-git 55 | arcolinux-sddm-futuristic-git 56 | arcolinux-sddm-materia-git 57 | arcolinux-sddm-redrock-git 58 | arcolinux-sddm-simplicity-git 59 | arcolinux-sddm-slice-git 60 | arcolinux-sddm-sugar-candy-git 61 | arcolinux-sddm-urbanlifestyle-git 62 | arcolinux-system-config-git 63 | arcolinux-systemd-services-git 64 | arcolinux-termite-themes-git 65 | arcolinux-variety-autostart-git 66 | arcolinux-variety-git 67 | arcolinux-volumeicon-git 68 | arcolinux-wallpapers-git 69 | arcolinux-welcome-app-git 70 | arcolinux-xfce-git 71 | arcolinux-xmobar-git 72 | arcolinux-xmonad-polybar-git 73 | arcolinux-zsh-git 74 | asciinema 75 | autoconf 76 | automake 77 | autorandr 78 | autotiling 79 | avahi 80 | awesome-terminal-fonts 81 | ayu-theme 82 | base 83 | bash-completion 84 | bibata-cursor-theme-bin 85 | bind 86 | binutils 87 | bison 88 | bitwarden 89 | blueberry 90 | bluez 91 | bluez-libs 92 | bluez-utils 93 | brave-bin 94 | broadcom-wl 95 | btrfs-progs 96 | capitaine-cursors 97 | cava 98 | certbot-nginx 99 | checkupdates-aur 100 | chromium 101 | clonezilla 102 | conky-lua-archers 103 | cryptsetup 104 | cups 105 | cups-filters 106 | cups-pdf 107 | cups-pk-helper 108 | davinci-resolve 109 | dconf-editor 110 | ddrescue 111 | deezer 112 | dex 113 | dhclient 114 | dialog 115 | diffutils 116 | discord 117 | dmenu 118 | dmraid 119 | dnsmasq 120 | dolphin 121 | dosfstools 122 | downgrade 123 | dracula-gtk-theme-git 124 | duf-bin 125 | e2fsprogs 126 | edex-ui-bin 127 | edid-decode-git 128 | edk2-shell 129 | efibootmgr 130 | etcher-bin 131 | ethtool 132 | exa 133 | exfatprogs 134 | exo 135 | expac 136 | f2fs-tools 137 | faba-icon-theme-git 138 | faba-mono-icons-git 139 | fakeroot 140 | fatresize 141 | feh 142 | ffmpegthumbnailer 143 | ffmpegthumbnailer-mp3 144 | file 145 | file-roller 146 | filezilla 147 | findutils 148 | firefox 149 | firefox-ublock-origin 150 | fish 151 | flameshot-git 152 | flex 153 | fluent-reader 154 | freetype2 155 | fsarchiver 156 | fslint 157 | galculator 158 | garcon 159 | gawk 160 | gcc 161 | gcolor3 162 | geany 163 | gettext 164 | ghostscript 165 | git 166 | gksu 167 | glxinfo 168 | gmrun 169 | gnome-disk-utility 170 | gnome-keyring 171 | gnu-netcat 172 | google-chrome 173 | gpart 174 | gparted 175 | gpm 176 | gptfdisk 177 | grep 178 | groff 179 | grub 180 | grub-customizer 181 | gsfonts 182 | gst-libav 183 | gst-plugins-bad 184 | gst-plugins-base 185 | gst-plugins-good 186 | gst-plugins-ugly 187 | gstreamer 188 | gthumb 189 | gtk3 190 | gutenprint 191 | gvfs 192 | gvfs-afc 193 | gvfs-gphoto2 194 | gvfs-mtp 195 | gvfs-nfs 196 | gvfs-smb 197 | gzip 198 | halo-icons-git 199 | hardcode-fixer-git 200 | hardinfo 201 | haskell-dbus 202 | hdparm 203 | htop 204 | hw-probe 205 | hwinfo 206 | i3-gaps 207 | i3blocks 208 | i3status 209 | ifuse 210 | imagemagick 211 | intltool 212 | inxi 213 | iptables-nft 214 | ipw2100-fw 215 | ipw2200-fw 216 | irssi 217 | iw 218 | jfsutils 219 | jq 220 | jsoncpp 221 | kdenlive 222 | kid3 223 | kvantum 224 | laptop-detect 225 | less 226 | libcups 227 | libdvdcss 228 | libfido2 229 | libgsf 230 | libmtp 231 | libopenraw 232 | libpwquality 233 | libtool 234 | libusb-compat 235 | linux 236 | linux-atm 237 | linux-firmware 238 | linux-headers 239 | logrotate 240 | lsb-release 241 | lsscsi 242 | lvm2 243 | lxappearance 244 | m4 245 | mailspring 246 | make 247 | man-db 248 | man-pages 249 | mariadb 250 | materia-gtk-theme 251 | materia-kde 252 | mc 253 | mdadm 254 | megacmd 255 | megasync-bin 256 | memtest86+ 257 | mesa 258 | mintstick-git 259 | mkcert 260 | mkinitcpio 261 | mkinitcpio-nfs-utils 262 | mkinitcpio-openswap 263 | mlocate 264 | mobile-broadband-provider-info 265 | modemmanager 266 | moka-icon-theme-git 267 | mpc 268 | mpd 269 | mpv 270 | mtools 271 | mtpfs 272 | mullvad-vpn-bin 273 | nano 274 | nautilus 275 | nautilus-share 276 | nbd 277 | ncmpcpp 278 | ndisc6 279 | neofetch 280 | neovim 281 | nerd-fonts-jetbrains-mono 282 | network-manager-applet 283 | networkmanager 284 | networkmanager-openconnect 285 | networkmanager-openvpn 286 | networkmanager-pptp 287 | networkmanager-vpnc 288 | nfs-utils 289 | nginx-mainline 290 | nilfs-utils 291 | nitrogen 292 | nordvpn-bin 293 | noto-fonts 294 | nss-mdns 295 | ntfs-3g 296 | ntp 297 | numix-circle-arc-icons-git 298 | numix-gtk-theme-git 299 | numlockx 300 | nvme-cli 301 | obs-studio 302 | oh-my-zsh-git 303 | onlyoffice-bin 304 | openbox-themes-pambudi-git 305 | opencl-amd 306 | openconnect 307 | openresolv 308 | openssh 309 | openvpn 310 | opera 311 | os-prober 312 | otf-font-awesome 313 | otf-font-awesome-4 314 | oxy-neon 315 | p7zip 316 | pacman 317 | paper-icon-theme 318 | papirus-icon-theme 319 | partclone 320 | parted 321 | partimage 322 | patch 323 | pavucontrol 324 | pcsclite 325 | perl-checkupdates-aur 326 | php 327 | php-fpm 328 | php-gd 329 | php7 330 | php7-fpm 331 | php7-gd 332 | phpmyadmin 333 | picom 334 | pkgconf 335 | play-with-mpv-git 336 | playerctl 337 | polkit 338 | polkit-gnome 339 | polybar 340 | poppler-glib 341 | poppler-qt5 342 | ppp 343 | pptpclient 344 | protonmail-bridge 345 | protonvpn 346 | pulseaudio 347 | pulseaudio-alsa 348 | pulseaudio-bluetooth 349 | pygtk 350 | python-pylspci 351 | python-pyparted 352 | python2-pyxdg 353 | qbittorrent 354 | qemu-desktop 355 | qt5-webkit 356 | qt5ct 357 | ranger 358 | raven-reader-bin 359 | redshift 360 | reflector 361 | reiserfsprogs 362 | ripgrep 363 | ristretto 364 | rmatrix-git 365 | rofi 366 | rp-pppoe 367 | rsync 368 | ruby-sass 369 | rxvt-unicode 370 | rxvt-unicode-terminfo 371 | s3cmd 372 | sardi-icons 373 | screen 374 | scrot 375 | sddm 376 | sdparm 377 | sed 378 | sg3_utils 379 | shairport-sync 380 | simplicity-sddm-theme-git 381 | smartmontools 382 | sof-firmware 383 | speedtest-cli-git 384 | spek-git 385 | splix 386 | spotify 387 | spotifywm-git 388 | sqlmap 389 | squashfs-tools 390 | stacer-bin 391 | sublime-merge 392 | sublime-text-4 393 | sudo 394 | surfn-icons-git 395 | surfn-mint-y-icons-git 396 | sushi 397 | syslinux 398 | system-config-printer 399 | tcpdump 400 | teamviewer 401 | telegram-desktop-bin 402 | terminus-font 403 | termite 404 | testdisk 405 | texinfo 406 | thunar 407 | thunar-archive-plugin 408 | thunar-media-tags-plugin 409 | thunar-volman 410 | thunderbird 411 | timeshift 412 | tlp 413 | tmux 414 | tor-browser 415 | tpm2-tss 416 | tree 417 | ttf-anonymous-pro 418 | ttf-bitstream-vera 419 | ttf-caladea 420 | ttf-carlito 421 | ttf-cascadia-code 422 | ttf-comfortaa 423 | ttf-cormorant 424 | ttf-croscore 425 | ttf-dejavu 426 | ttf-droid 427 | ttf-eurof 428 | ttf-fantasque-sans-mono 429 | ttf-fira-code 430 | ttf-fira-mono 431 | ttf-fira-sans 432 | ttf-font-awesome 433 | ttf-font-awesome-4 434 | ttf-hack 435 | ttf-hactor 436 | ttf-hellvetica 437 | ttf-ibm-plex 438 | ttf-inconsolata 439 | ttf-jetbrains-mono 440 | ttf-joypixels 441 | ttf-lato 442 | ttf-liberation 443 | ttf-linux-libertine 444 | ttf-linux-libertine-g 445 | ttf-meslo-nerd-font-powerlevel10k 446 | ttf-monofur 447 | ttf-ms-fonts 448 | ttf-proggy-clean 449 | ttf-roboto 450 | ttf-roboto-mono 451 | ttf-ubuntu-font-family 452 | tty-clock-git 453 | tumbler 454 | udftools 455 | udiskie 456 | udisks2 457 | unace 458 | unrar 459 | unzip 460 | upower 461 | urxvt-fullscreen 462 | urxvt-perls 463 | urxvt-resize-font-git 464 | usb_modeswitch 465 | usbmuxd 466 | usbutils 467 | variety 468 | vcsi-git 469 | veracrypt 470 | viewnior 471 | vim 472 | vim-airline 473 | vim-airline-themes 474 | vim-ale 475 | vim-align 476 | vim-ansible 477 | vim-bufexplorer 478 | vim-coverage-highlight 479 | vim-csound 480 | vim-ctrlp 481 | vim-easymotion 482 | vim-editorconfig 483 | vim-fugitive 484 | vim-gitgutter 485 | vim-grammalecte 486 | vim-indent-object 487 | vim-jad 488 | vim-jedi 489 | vim-latexsuite 490 | vim-molokai 491 | vim-nerdcommenter 492 | vim-nerdtree 493 | vim-pastie 494 | vim-seti 495 | vim-supertab 496 | vim-surround 497 | vim-syntastic 498 | vim-tabular 499 | vim-tagbar 500 | vim-vital 501 | virt-manager 502 | virtualbox 503 | visual-studio-code-bin 504 | vlc 505 | volumeicon 506 | vpnc 507 | w3m 508 | webkit2gtk 509 | wget 510 | whatsapp-for-linux 511 | which 512 | wireguard-tools 513 | wireless-regdb 514 | wireless_tools 515 | wmctrl 516 | woeusb 517 | wpa_supplicant 518 | wvdial 519 | xapp 520 | xcursor-arch-cursor-complete 521 | xcursor-breeze 522 | xcursor-comix 523 | xcursor-flatbed 524 | xcursor-neutral 525 | xcursor-premium 526 | xcursor-simpleandsoft 527 | xdg-desktop-portal-gtk 528 | xdg-user-dirs 529 | xdo 530 | xdotool 531 | xf86-input-elographics 532 | xf86-input-evdev 533 | xf86-input-libinput 534 | xf86-input-vmmouse 535 | xf86-input-void 536 | xf86-video-amdgpu 537 | xf86-video-ati 538 | xf86-video-fbdev 539 | xf86-video-nouveau 540 | xf86-video-openchrome 541 | xf86-video-vesa 542 | xfce4-appfinder 543 | xfce4-clipman-plugin 544 | xfce4-notifyd 545 | xfce4-panel 546 | xfce4-power-manager 547 | xfce4-screenshooter 548 | xfce4-settings 549 | xfce4-taskmanager 550 | xfce4-terminal 551 | xfconf 552 | xfsprogs 553 | xfwm4 554 | xl2tpd 555 | xmobar 556 | xmonad 557 | xmonad-contrib 558 | xmonad-log 559 | xmonad-utils 560 | xorg-bdftopcf 561 | xorg-iceauth 562 | xorg-mkfontscale 563 | xorg-server 564 | xorg-sessreg 565 | xorg-setxkbmap 566 | xorg-smproxy 567 | xorg-x11perf 568 | xorg-xauth 569 | xorg-xbacklight 570 | xorg-xcmsdb 571 | xorg-xcursorgen 572 | xorg-xdpyinfo 573 | xorg-xdriinfo 574 | xorg-xev 575 | xorg-xgamma 576 | xorg-xhost 577 | xorg-xinit 578 | xorg-xinput 579 | xorg-xkbcomp 580 | xorg-xkbevd 581 | xorg-xkbutils 582 | xorg-xkill 583 | xorg-xlsatoms 584 | xorg-xlsclients 585 | xorg-xmessage 586 | xorg-xmodmap 587 | xorg-xpr 588 | xorg-xprop 589 | xorg-xrandr 590 | xorg-xrdb 591 | xorg-xrefresh 592 | xorg-xset 593 | xorg-xsetroot 594 | xorg-xvinfo 595 | xorg-xwd 596 | xorg-xwininfo 597 | xorg-xwud 598 | yad 599 | yay-bin 600 | zafiro-icon-theme 601 | zenity 602 | zoom 603 | zsh 604 | zsh-completions 605 | zsh-syntax-highlighting 606 | -------------------------------------------------------------------------------- /pacman2.txt: -------------------------------------------------------------------------------- 1 | accountsservice 2 | adapta-gtk-theme 3 | adobe-source-han-sans-cn-fonts 4 | adobe-source-han-sans-jp-fonts 5 | adobe-source-han-sans-kr-fonts 6 | adobe-source-sans-fonts 7 | aic94xx-firmware 8 | alacritty 9 | alsa-firmware 10 | alsa-lib 11 | alsa-plugins 12 | alsa-utils 13 | appstream 14 | arandr 15 | arc-darkest-theme-git 16 | arc-gtk-theme 17 | arc-icon-theme 18 | arch-install-scripts 19 | archiso 20 | archlinux-logout-git 21 | archlinux-tweak-tool-git 22 | arcolinux-alacritty-git 23 | arcolinux-arc-kde 24 | arcolinux-arc-themes-2021-creative-git 25 | arcolinux-arc-themes-2021-sky-git 26 | arcolinux-arc-themes-git 27 | arcolinux-awesome-git 28 | arcolinux-bin-git 29 | arcolinux-candy-beauty-git 30 | arcolinux-config-all-desktops-git 31 | arcolinux-conky-collection-git 32 | arcolinux-dconf-all-desktops-git 33 | arcolinux-desktop-trasher-git 34 | arcolinux-fonts-git 35 | arcolinux-grub-theme-vimix-git 36 | arcolinux-gtk3-sardi-arc-git 37 | arcolinux-hblock-git 38 | arcolinux-keyring 39 | arcolinux-kvantum-git 40 | arcolinux-local-applications-all-hide-git 41 | arcolinux-local-applications-git 42 | arcolinux-local-xfce4-git 43 | arcolinux-meta-asian-fonts 44 | arcolinux-meta-fun 45 | arcolinux-meta-log 46 | arcolinux-meta-samba 47 | arcolinux-meta-sddm-themes 48 | arcolinux-meta-steam-amd 49 | arcolinux-meta-steam-intel 50 | arcolinux-meta-steam-nvidia 51 | arcolinux-meta-utilities 52 | arcolinux-meta-wine 53 | arcolinux-mint-y-icons-git 54 | arcolinux-mirrorlist-git 55 | arcolinux-neofetch-git 56 | arcolinux-nitrogen-git 57 | arcolinux-paleofetch-git 58 | arcolinux-pamac-all 59 | arcolinux-paru-git 60 | arcolinux-pipemenus-git 61 | arcolinux-plank-git 62 | arcolinux-plank-themes-git 63 | arcolinux-polybar-git 64 | arcolinux-qt5-git 65 | arcolinux-rofi-git 66 | arcolinux-rofi-themes-git 67 | arcolinux-root-git 68 | arcolinux-sddm-chili-git 69 | arcolinux-sddm-fralonra-git 70 | arcolinux-sddm-futuristic-git 71 | arcolinux-sddm-materia-git 72 | arcolinux-sddm-redrock-git 73 | arcolinux-sddm-simplicity-git 74 | arcolinux-sddm-slice-git 75 | arcolinux-sddm-sugar-candy-git 76 | arcolinux-sddm-urbanlifestyle-git 77 | arcolinux-sweet-mars-git 78 | arcolinux-system-config-git 79 | arcolinux-systemd-services-git 80 | arcolinux-teamviewer 81 | arcolinux-termite-themes-git 82 | arcolinux-variety-autostart-git 83 | arcolinux-variety-git 84 | arcolinux-volumeicon-git 85 | arcolinux-wallpapers-candy-git 86 | arcolinux-wallpapers-dual-git 87 | arcolinux-wallpapers-git 88 | arcolinux-welcome-app-git 89 | arcolinux-xfce-git 90 | arcolinux-xmobar-git 91 | arcolinux-xmonad-polybar-git 92 | arcolinux-zsh-git 93 | asciinema 94 | autoconf 95 | automake 96 | autorandr 97 | avahi 98 | awesome 99 | awesome-terminal-fonts 100 | ayu-theme 101 | base 102 | bash-completion 103 | bat 104 | bibata-cursor-theme-bin 105 | bibata-cursor-translucent 106 | bibata-extra-cursor-theme 107 | bibata-rainbow-cursor-theme 108 | bind 109 | binutils 110 | bison 111 | bitwarden 112 | blueberry 113 | bluez 114 | bluez-libs 115 | bluez-utils 116 | brave-bin 117 | broadcom-wl-dkms 118 | btrfs-progs 119 | cabal-install 120 | caffeine-ng 121 | capitaine-cursors 122 | catppuccin-cursors-git 123 | checkupdates-aur 124 | chromium 125 | clonezilla 126 | conky-lua-archers 127 | cryptsetup 128 | cups 129 | cups-filters 130 | cups-pdf 131 | cups-pk-helper 132 | dconf-editor 133 | ddrescue 134 | dex 135 | dhclient 136 | dialog 137 | diffutils 138 | discord 139 | dmenu 140 | dmidecode 141 | dmraid 142 | dnsmasq 143 | dosfstools 144 | downgrade 145 | dracula-cursors-git 146 | dracula-gtk-theme 147 | dracula-icons-git 148 | duf-bin 149 | dunst 150 | e2fsprogs 151 | edid-decode-git 152 | edk2-ovmf 153 | edk2-shell 154 | efibootmgr 155 | elasticsearch6 156 | etcher-bin 157 | ethtool 158 | exa 159 | exfatprogs 160 | exo 161 | expac 162 | f2fs-tools 163 | faba-icon-theme-git 164 | faba-mono-icons-git 165 | fakeroot 166 | fatresize 167 | feh 168 | ffmpegthumbnailer 169 | file 170 | file-roller 171 | findutils 172 | firefox 173 | firefox-ublock-origin 174 | fish 175 | flameshot-git 176 | flat-remix-git 177 | flex 178 | fluent-gtk-theme 179 | fluent-kde-theme-git 180 | freetype2 181 | fsarchiver 182 | galculator 183 | garcon 184 | gawk 185 | gcc 186 | gcolor3 187 | geany 188 | gendesk 189 | gettext 190 | ghostscript 191 | gimp 192 | git 193 | gksu 194 | gnome-disk-utility 195 | gnome-keyring 196 | gnu-netcat 197 | gpart 198 | gparted 199 | gpm 200 | gptfdisk 201 | graphite-gtk-theme-git 202 | grep 203 | groff 204 | grub 205 | grub-customizer 206 | gsfonts 207 | gst-libav 208 | gst-plugins-bad 209 | gst-plugins-base 210 | gst-plugins-good 211 | gst-plugins-ugly 212 | gstreamer 213 | gtk3 214 | gutenprint 215 | gvfs 216 | gvfs-afc 217 | gvfs-gphoto2 218 | gvfs-mtp 219 | gvfs-nfs 220 | gvfs-smb 221 | gzip 222 | halo-icons-git 223 | hardcode-fixer-git 224 | hardinfo-gtk3 225 | haskell-dbus 226 | error: could not open file /var/lib/pacman/local/haskell-hackage-security-0.6.2.0-2/desc: No such file or directory 227 | haskell-hackage-security 228 | hdparm 229 | htop 230 | hw-probe 231 | hwinfo 232 | hyperv 233 | imagemagick 234 | intltool 235 | inxi 236 | iptables-nft 237 | ipw2100-fw 238 | ipw2200-fw 239 | irssi 240 | iw 241 | jfsutils 242 | jq 243 | jsoncpp 244 | kdenlive 245 | kripton-theme-git 246 | kvantum 247 | kvantum-theme-materia 248 | kvantum-theme-qogir-git 249 | la-capitaine-icon-theme-git 250 | laptop-detect 251 | layan-cursor-theme-git 252 | layan-gtk-theme-git 253 | layan-kde-git 254 | less 255 | libcups 256 | libdvdcss 257 | libfido2 258 | libgsf 259 | libmtp 260 | libopenraw 261 | libpwquality 262 | libtool 263 | libusb-compat 264 | libvirt 265 | linux 266 | linux-atm 267 | linux-firmware 268 | linux-firmware-marvell 269 | linux-firmware-qlogic 270 | linux-headers 271 | logrotate 272 | lsb-release 273 | lsscsi 274 | luna-icon-theme-git 275 | lvm2 276 | lxappearance 277 | m4 278 | make 279 | man-db 280 | man-pages 281 | mariadb 282 | materia-gtk-theme 283 | materia-kde 284 | mc 285 | mdadm 286 | megacmd 287 | memtest86+ 288 | mesa 289 | mesa-utils 290 | mintstick-git 291 | mkcert 292 | mkinitcpio 293 | mkinitcpio-nfs-utils 294 | mkinitcpio-openswap 295 | mlocate 296 | mobile-broadband-provider-info 297 | modemmanager 298 | moka-icon-theme-git 299 | mpc 300 | mpd 301 | mtools 302 | mtpfs 303 | nano 304 | nautilus 305 | nautilus-image-converter 306 | nautilus-share 307 | nbd 308 | ncmpcpp 309 | ndisc6 310 | neofetch 311 | neovim 312 | nerd-fonts-jetbrains-mono 313 | nerd-fonts-source-code-pro 314 | network-manager-applet 315 | networkmanager 316 | networkmanager-openconnect 317 | networkmanager-openvpn 318 | networkmanager-pptp 319 | networkmanager-vpnc 320 | nfs-utils 321 | nginx-mainline 322 | nilfs-utils 323 | nitrogen 324 | noto-fonts 325 | nss-mdns 326 | ntfs-3g 327 | ntp 328 | numix-circle-arc-icons-git 329 | numix-gtk-theme-git 330 | numlockx 331 | nvme-cli 332 | obs-studio 333 | obsidian-icon-theme 334 | oh-my-zsh-git 335 | onlyoffice-bin 336 | open-iscsi 337 | openbox-themes-pambudi-git 338 | openconnect 339 | openresolv 340 | openssh 341 | openvpn 342 | oranchelo-icon-theme-git 343 | orchis-kde-theme-git 344 | orchis-theme-git 345 | os-prober 346 | otf-font-awesome 347 | otf-font-awesome-4 348 | oxy-neon 349 | p7zip 350 | pacman 351 | paper-icon-theme 352 | papirus-folders-git 353 | papirus-folders-gui-bin 354 | papirus-folders-nordic 355 | papirus-nord 356 | partclone 357 | parted 358 | partimage 359 | paru-bin 360 | patch 361 | pavucontrol 362 | pcsclite 363 | perl-checkupdates-aur 364 | php 365 | php-fpm 366 | php-gd 367 | php7 368 | php7-fpm 369 | php7-gd 370 | phpmyadmin 371 | picom 372 | pkgconf 373 | pkgfile 374 | playerctl 375 | polkit 376 | polkit-gnome 377 | polybar 378 | poppler-glib 379 | poppler-qt5 380 | ppp 381 | pptpclient 382 | protonvpn 383 | pulseaudio 384 | pulseaudio-alsa 385 | pulseaudio-bluetooth 386 | pv 387 | python-pip 388 | python-pyparted 389 | qemu-desktop 390 | qogir-gtk-theme-git 391 | qogir-icon-theme 392 | qt5-webkit 393 | qt5ct 394 | rate-mirrors-bin 395 | redshift 396 | refind 397 | reflector 398 | reiserfsprogs 399 | ripgrep 400 | ristretto 401 | rofi 402 | rp-pppoe 403 | rsync 404 | rxvt-unicode 405 | rxvt-unicode-terminfo 406 | sardi-icons 407 | screen 408 | scrot 409 | sddm 410 | sdparm 411 | sed 412 | sg3_utils 413 | simplicity-sddm-theme-git 414 | smartmontools 415 | sof-firmware 416 | speedtest-cli-git 417 | splix 418 | spotify 419 | squashfs-tools 420 | sublime-text-4 421 | sudo 422 | surfn-icons-git 423 | surfn-mint-y-icons-git 424 | sushi 425 | sweet-cursor-theme-git 426 | sweet-gtk-theme-dark 427 | sweet-theme-git 428 | syslinux 429 | system-config-printer 430 | tcpdump 431 | tela-circle-icon-theme-git 432 | terminus-font 433 | termite 434 | testdisk 435 | texinfo 436 | the_silver_searcher 437 | thunar 438 | thunar-archive-plugin 439 | thunar-media-tags-plugin 440 | thunar-volman 441 | timeshift 442 | tlp 443 | tmux 444 | tor-browser 445 | tpm2-tss 446 | transmission-gtk 447 | ttf-anonymous-pro 448 | ttf-bitstream-vera 449 | ttf-caladea 450 | ttf-cascadia-code 451 | ttf-cormorant 452 | ttf-croscore 453 | ttf-dejavu 454 | ttf-droid 455 | ttf-eurof 456 | ttf-fantasque-sans-mono 457 | ttf-fira-code 458 | ttf-fira-mono 459 | ttf-fira-sans 460 | ttf-font-awesome 461 | ttf-hack 462 | ttf-hactor 463 | ttf-hellvetica 464 | ttf-ibm-plex 465 | ttf-inconsolata 466 | ttf-jetbrains-mono 467 | ttf-joypixels 468 | ttf-lato 469 | ttf-linux-libertine 470 | ttf-linux-libertine-g 471 | ttf-meslo-nerd-font-powerlevel10k 472 | ttf-monofur 473 | ttf-ms-fonts 474 | ttf-proggy-clean 475 | ttf-roboto 476 | ttf-roboto-mono 477 | ttf-ubuntu-font-family 478 | tumbler 479 | udftools 480 | udiskie 481 | udisks2 482 | unace 483 | unrar 484 | unzip 485 | upd72020x-fw 486 | upower 487 | urxvt-fullscreen 488 | urxvt-perls 489 | urxvt-resize-font-git 490 | usb_modeswitch 491 | usbmuxd 492 | usbutils 493 | variety 494 | vdhcoapp 495 | vicious 496 | vim 497 | vimix-icon-theme-git 498 | virt-manager 499 | volumeicon 500 | vpnc 501 | w3m 502 | wd719x-firmware 503 | we10x-icon-theme-git 504 | webkit2gtk 505 | wget 506 | which 507 | whitesur-icon-theme-git 508 | wireless-regdb 509 | wireless_tools 510 | wmctrl 511 | wpa_supplicant 512 | wvdial 513 | xapp 514 | xcursor-arch-cursor-complete 515 | xcursor-breeze 516 | xcursor-comix 517 | xcursor-flatbed 518 | xcursor-neutral 519 | xcursor-premium 520 | xcursor-simpleandsoft 521 | xdg-desktop-portal-gtk 522 | xdg-user-dirs 523 | xdo 524 | xdotool 525 | xf86-input-elographics 526 | xf86-input-evdev 527 | xf86-input-libinput 528 | xf86-input-vmmouse 529 | xf86-input-void 530 | xf86-video-amdgpu 531 | xf86-video-ati 532 | xf86-video-fbdev 533 | xf86-video-nouveau 534 | xf86-video-openchrome 535 | xf86-video-vesa 536 | xfce4-appfinder 537 | xfce4-notifyd 538 | xfce4-panel 539 | xfce4-power-manager 540 | xfce4-screenshooter 541 | xfce4-settings 542 | xfce4-taskmanager 543 | xfce4-terminal 544 | xfconf 545 | xfsprogs 546 | xfwm4 547 | xl2tpd 548 | xmobar 549 | xmonad-log 550 | xmonad-utils 551 | xorg-bdftopcf 552 | xorg-iceauth 553 | xorg-mkfontscale 554 | xorg-server 555 | xorg-sessreg 556 | xorg-setxkbmap 557 | xorg-smproxy 558 | xorg-x11perf 559 | xorg-xauth 560 | xorg-xbacklight 561 | xorg-xcmsdb 562 | xorg-xcursorgen 563 | xorg-xdpyinfo 564 | xorg-xdriinfo 565 | xorg-xev 566 | xorg-xgamma 567 | xorg-xhost 568 | xorg-xinit 569 | xorg-xinput 570 | xorg-xkbcomp 571 | xorg-xkbevd 572 | xorg-xkbutils 573 | xorg-xkill 574 | xorg-xlsatoms 575 | xorg-xlsclients 576 | xorg-xmodmap 577 | xorg-xpr 578 | xorg-xprop 579 | xorg-xrandr 580 | xorg-xrdb 581 | xorg-xrefresh 582 | xorg-xset 583 | xorg-xsetroot 584 | xorg-xvinfo 585 | xorg-xwd 586 | xorg-xwininfo 587 | xorg-xwud 588 | yad 589 | yay-bin 590 | zafiro-icon-theme 591 | zenity 592 | zsh 593 | zsh-completions 594 | zsh-syntax-highlighting 595 | --------------------------------------------------------------------------------