diff --git a/.gitignore b/.gitignore index 2515ecef..7010f96c 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,10 @@ misc/spotifyd.conf misc/wakatime.cfg misc/nextcloud misc/calcurse/caldav/config +config/msmtp/config +config/isync/mbsyncrc +config/calcurse/caldav/config +config/wakatime/wakatime.cfg +config/zsh/secret +config/nextcloud/nextcloud +config/spotifyd/spotifyd.conf diff --git a/.gitmodules b/.gitmodules index e15b2b8c..35635081 100644 --- a/.gitmodules +++ b/.gitmodules @@ -10,3 +10,15 @@ [submodule "gtk/themes/material-ocean"] path = theming/themes/material-ocean url = https://github.com/material-ocean/Gtk-Theme.git +[submodule "local/share/icons/Tela-Icons"] + path = local/share/icons/Tela-Icons + url = https://github.com/vinceliuice/Tela-icon-theme.git +[submodule "local/share/themes/Material-Ocean"] + path = local/share/themes/Material-Ocean + url = https://github.com/material-ocean/Gtk-Theme +[submodule "local/share/themes/material-ocean"] + path = local/share/themes/material-ocean + url = https://github.com/material-ocean/Gtk-Theme +[submodule "config/ranger/plugins/devicons"] + path = config/ranger/plugins/devicons + url = https://github.com/cdump/ranger-devicons2.git diff --git a/.gitsecret/paths/mapping.cfg b/.gitsecret/paths/mapping.cfg index baec6226..082a9293 100644 --- a/.gitsecret/paths/mapping.cfg +++ b/.gitsecret/paths/mapping.cfg @@ -1,7 +1,7 @@ -zsh/secret:aa79361563a31575b8acba30268c6ba773f6e941655ab9f4c8e3452e13369977 -mail/mbsyncrc:65eec91b162f829575c2cc4b2428faa90eb71f3f79ba779bcfe70712f161cabe -mail/msmtp/config:529c5ae169a81f528ece6356c2bfb23f20af93619386aa018f28fab9505271ec -misc/spotifyd.conf:2365689856e64f966846c0e33b5fc31f3a3a1a571e4e2ca65bebfd660f8e83cf -misc/wakatime.cfg:e306146d45036c38f15aa9a817fc172bdca3c4c9d9ed3c4f6fe1d8d93d783d78 -misc/nextcloud:1ee8feae4ac43c1e27178a5114374ff0afed84a1fd558a12d91e5409f77efef1 -misc/calcurse/caldav/config:15d288e4edcbb85da765080fcdc7d25815cf2e22854002af5ea5ca2b4c4c7955 +config/msmtp/config:529c5ae169a81f528ece6356c2bfb23f20af93619386aa018f28fab9505271ec +config/isync/mbsyncrc:65eec91b162f829575c2cc4b2428faa90eb71f3f79ba779bcfe70712f161cabe +config/calcurse/caldav/config:15d288e4edcbb85da765080fcdc7d25815cf2e22854002af5ea5ca2b4c4c7955 +config/wakatime/wakatime.cfg:e306146d45036c38f15aa9a817fc172bdca3c4c9d9ed3c4f6fe1d8d93d783d78 +config/zsh/secret:6a6b4e0d168adcfbbf31c969598c6897d6637efebc3ed3b34e1e0a5e0afed9af +config/nextcloud/nextcloud:1ee8feae4ac43c1e27178a5114374ff0afed84a1fd558a12d91e5409f77efef1 +config/spotifyd/spotifyd.conf:2365689856e64f966846c0e33b5fc31f3a3a1a571e4e2ca65bebfd660f8e83cf diff --git a/arch-setup/fetch_keys.sh b/arch-setup/fetch_keys.sh index 1651ceeb..4bd1930c 100755 --- a/arch-setup/fetch_keys.sh +++ b/arch-setup/fetch_keys.sh @@ -15,7 +15,7 @@ sudo chmod +x /usr/bin/jsteg sudo wget -O /usr/bin/slink https://minio.yigitcolakoglu.com/dotfiles/slink-linux-amd64 > /dev/null 2> /dev/null sudo chmod +x /usr/bin/slink -~/.scripts/jsteg reveal $loc > /tmp/out.zip.gpg +~/.local/share/scripts/jsteg reveal $loc > /tmp/out.zip.gpg echo "Please enter your passphrase: " gpg -d /tmp/out.zip.gpg > /tmp/out.zip diff --git a/browser/startpage/package-lock.json b/browser/startpage/package-lock.json index 321ea544..d8169410 100644 --- a/browser/startpage/package-lock.json +++ b/browser/startpage/package-lock.json @@ -5,6 +5,7 @@ "requires": true, "packages": { "": { + "name": "pomme-page", "version": "0.2.0", "license": "MIT", "devDependencies": { diff --git a/misc/BetterDiscord/.gitignore b/config/BetterDiscord/.gitignore similarity index 100% rename from misc/BetterDiscord/.gitignore rename to config/BetterDiscord/.gitignore diff --git a/misc/BetterDiscord/plugins/.gitignore b/config/BetterDiscord/plugins/.gitignore similarity index 100% rename from misc/BetterDiscord/plugins/.gitignore rename to config/BetterDiscord/plugins/.gitignore diff --git a/misc/BetterDiscord/plugins/BetterCodeblocks.config.json b/config/BetterDiscord/plugins/BetterCodeblocks.config.json similarity index 100% rename from misc/BetterDiscord/plugins/BetterCodeblocks.config.json rename to config/BetterDiscord/plugins/BetterCodeblocks.config.json diff --git a/misc/BetterDiscord/plugins/BetterCodeblocks.plugin.js b/config/BetterDiscord/plugins/BetterCodeblocks.plugin.js similarity index 100% rename from misc/BetterDiscord/plugins/BetterCodeblocks.plugin.js rename to config/BetterDiscord/plugins/BetterCodeblocks.plugin.js diff --git a/misc/BetterDiscord/plugins/GameActivityToggle.plugin.js b/config/BetterDiscord/plugins/GameActivityToggle.plugin.js similarity index 100% rename from misc/BetterDiscord/plugins/GameActivityToggle.plugin.js rename to config/BetterDiscord/plugins/GameActivityToggle.plugin.js diff --git a/misc/BetterDiscord/plugins/ZeresPluginLibrary.config.json b/config/BetterDiscord/plugins/ZeresPluginLibrary.config.json similarity index 100% rename from misc/BetterDiscord/plugins/ZeresPluginLibrary.config.json rename to config/BetterDiscord/plugins/ZeresPluginLibrary.config.json diff --git a/misc/BetterDiscord/themes/ClearVision_v6.theme.css b/config/BetterDiscord/themes/ClearVision_v6.theme.css similarity index 100% rename from misc/BetterDiscord/themes/ClearVision_v6.theme.css rename to config/BetterDiscord/themes/ClearVision_v6.theme.css diff --git a/misc/BetterDiscord/themes/DarkDiscord.theme.css b/config/BetterDiscord/themes/DarkDiscord.theme.css similarity index 100% rename from misc/BetterDiscord/themes/DarkDiscord.theme.css rename to config/BetterDiscord/themes/DarkDiscord.theme.css diff --git a/misc/BetterDiscord/themes/Material-Discord.theme.css b/config/BetterDiscord/themes/Material-Discord.theme.css similarity index 100% rename from misc/BetterDiscord/themes/Material-Discord.theme.css rename to config/BetterDiscord/themes/Material-Discord.theme.css diff --git a/xorg/Xresources b/config/X11/Xresources similarity index 100% rename from xorg/Xresources rename to config/X11/Xresources diff --git a/xorg/xinitrc b/config/X11/xinitrc similarity index 84% rename from xorg/xinitrc rename to config/X11/xinitrc index 47a69f17..b6127b39 100755 --- a/xorg/xinitrc +++ b/config/X11/xinitrc @@ -1,7 +1,8 @@ #! /bin/sh +mkdir -p /tmp/yigit + pkill -f clipmenud -pkill -f dunst pkill -9 devmon pkill -f "bash /sbin/clipmenud" pkill -f "/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh" @@ -10,6 +11,7 @@ pkill -f devmon rm -rf /tmp/day_cache source ~/.config.env +gpgconf --dry-run --create-socketdir eval $(/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh) systemctl --user import-environment DISPLAY export SSH_AUTH_SOCK @@ -17,10 +19,11 @@ export SSH_AUTH_SOCK clipmenud > /tmp/clipmenud.out 2> /tmp/clipmenud.err & rm -f ~/.surf/tabbed-surf.xid /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 & -~/.scripts/daily-update -~/.keyboard > /tmp/keyboard.out 2> /tmp/keyboard.err +~/.local/share/scripts/daily-update +~/.local/share/scripts/keyboard > /tmp/keyboard.out 2> /tmp/keyboard.err xrdb ~/.Xresources & -~/.scripts/mailsync & +~/.local/share/scripts/mailsync & + if [ "$NEXTCLOUD" = true ] ; then nextcloud --background & fi @@ -38,8 +41,7 @@ if [ "$ACTIVITYWATCHER" = true ] ; then aw-watcher-afk & fi touch ~/.cache/nextcloud-track -xss-lock -- /home/yigit/.scripts/lock & -echo "on" > ~/.cache/dunst +xss-lock -- /home/yigit/.local/share/scripts/lock & echo "on" > ~/.cache/screensaver dbus-update-activation-environment --systemd DISPLAY picom --no-fading-openclose & @@ -53,10 +55,7 @@ pactl load-module module-x11-bell sample=x11-bell display=$DISPLAY xset b 100 xset dpms 600 600 600 -dunst & - - -~/.scripts/devmon --exec-on-drive "/sbin/notify-send '禍 drive mounted' '%l (%f) at %d '" \ +~/.local/share/scripts/devmon --exec-on-drive "/sbin/notify-send '禍 drive mounted' '%l (%f) at %d '" \ --exec-on-remove "/sbin/notify-send '禍 drive removed' '%l (%f) from %d '" \ --exec-on-unmount "/sbin/notify-send '禍 drive unmounted' '%l (%f) from %d '" \ --no-unmount --no-gui & diff --git a/zsh/antibody/p10k.zsh b/config/antibody/p10k.zsh similarity index 100% rename from zsh/antibody/p10k.zsh rename to config/antibody/p10k.zsh diff --git a/zsh/antibody/zsh_plugins.txt b/config/antibody/zsh_plugins.txt similarity index 100% rename from zsh/antibody/zsh_plugins.txt rename to config/antibody/zsh_plugins.txt diff --git a/misc/calcurse/.gitignore b/config/calcurse/.gitignore similarity index 100% rename from misc/calcurse/.gitignore rename to config/calcurse/.gitignore diff --git a/config/calcurse/caldav/config.secret b/config/calcurse/caldav/config.secret new file mode 100644 index 00000000..e57f446e Binary files /dev/null and b/config/calcurse/caldav/config.secret differ diff --git a/misc/calcurse/conf b/config/calcurse/conf similarity index 100% rename from misc/calcurse/conf rename to config/calcurse/conf diff --git a/misc/calcurse/keys b/config/calcurse/keys similarity index 100% rename from misc/calcurse/keys rename to config/calcurse/keys diff --git a/misc/dunst/dunstrc b/config/dunst/dunstrc similarity index 100% rename from misc/dunst/dunstrc rename to config/dunst/dunstrc diff --git a/misc/dunst/not.svg b/config/dunst/not.svg similarity index 100% rename from misc/dunst/not.svg rename to config/dunst/not.svg diff --git a/misc/dunst/notif.png b/config/dunst/notif.png similarity index 100% rename from misc/dunst/notif.png rename to config/dunst/notif.png diff --git a/config/gtk-2.0/gtkrc b/config/gtk-2.0/gtkrc new file mode 100644 index 00000000..4ad6b008 --- /dev/null +++ b/config/gtk-2.0/gtkrc @@ -0,0 +1,18 @@ +# DO NOT EDIT! This file will be overwritten by LXAppearance. +# Any customization should be done in ~/.gtkrc-2.0.mine instead. + +include "/home/yigit/.gtkrc-2.0.mine" +gtk-theme-name="material-ocean" +gtk-icon-theme-name="Tela-dark" +gtk-font-name="Sans 10" +gtk-cursor-theme-name="Adwaita" +gtk-cursor-theme-size=0 +gtk-toolbar-style=GTK_TOOLBAR_BOTH +gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR +gtk-button-images=1 +gtk-menu-images=1 +gtk-enable-event-sounds=1 +gtk-enable-input-feedback-sounds=1 +gtk-xft-antialias=1 +gtk-xft-hinting=1 +gtk-xft-hintstyle="hintfull" diff --git a/theming/gtk-3.0/bookmarks b/config/gtk-3.0/bookmarks similarity index 100% rename from theming/gtk-3.0/bookmarks rename to config/gtk-3.0/bookmarks diff --git a/theming/gtk-3.0/settings.ini b/config/gtk-3.0/settings.ini similarity index 93% rename from theming/gtk-3.0/settings.ini rename to config/gtk-3.0/settings.ini index 4bdc7231..0b97bb00 100644 --- a/theming/gtk-3.0/settings.ini +++ b/config/gtk-3.0/settings.ini @@ -1,7 +1,7 @@ [Settings] gtk-theme-name=material-ocean gtk-icon-theme-name=Tela-dark -gtk-font-name=Cantarell 11 +gtk-font-name=Sans 10 gtk-cursor-theme-name=Adwaita gtk-cursor-theme-size=0 gtk-toolbar-style=GTK_TOOLBAR_BOTH diff --git a/theming/gtk-4.0/settings.ini b/config/gtk-4.0/settings.ini similarity index 100% rename from theming/gtk-4.0/settings.ini rename to config/gtk-4.0/settings.ini diff --git a/misc/htop/htoprc b/config/htop/htoprc similarity index 100% rename from misc/htop/htoprc rename to config/htop/htoprc diff --git a/config/isync/mbsyncrc.secret b/config/isync/mbsyncrc.secret new file mode 100644 index 00000000..0e847631 Binary files /dev/null and b/config/isync/mbsyncrc.secret differ diff --git a/misc/lf/diricons b/config/lf/diricons similarity index 100% rename from misc/lf/diricons rename to config/lf/diricons diff --git a/config/lf/lfrc b/config/lf/lfrc new file mode 100644 index 00000000..3349ff95 --- /dev/null +++ b/config/lf/lfrc @@ -0,0 +1,256 @@ +# Basic Settings +set previewer lf-ueberzug-previewer +set cleaner lf-ueberzug-cleaner +set preview true +set hidden true +set drawbox true +set icons true +set ignorecase true + +# Custom Functions +cmd open ${{ + case $(file --mime-type "$f" -bL) in + text/*|application/json) $EDITOR "$f";; + *) xdg-open "$f" ;; + esac +}} + +cmd mkdir ${{ + printf "Directory Name: " + read ans + mkdir $ans + cd $and +}} + +cmd mkfile ${{ + printf "File Name: " + read ans + $EDITOR $ans +}} + +cmd chmod ${{ + printf "Mode Bits: " + read ans + + for file in "$fx" + do + chmod $ans $file + done + + lf -remote 'send reload' +}} + +cmd sudomkfile ${{ + printf "File Name: " + read ans + sudo $EDITOR $ans +}} + +cmd setwallpaper %cp "$f" ~/.dotfiles/backgrounds/wall.png && xwallpaper --zoom "$f" + +cmd fzf_jump ${{ + res="$(find . -maxdepth 3 | fzf --reverse --header='Jump to location')" + if [ -f "$res" ]; then + cmd="select" + elif [ -d "$res" ]; then + cmd="cd" + fi + lf -remote "send $id $cmd \"$res\"" +}} + +cmd broot_jump ${{ + f=$(mktemp) + res="$(broot --outcmd $f && cat $f | sed 's/cd //')" + rm -f "$f" + if [ -f "$res" ]; then + cmd="select" + elif [ -d "$res" ]; then + cmd="cd" + fi + lf -remote "send $id $cmd \"$res\"" +}} + +cmd open_config ${{ + $EDITOR $(bookmenu -b ~/.config/bookmenu/configs -f fzf -o) +}} + +cmd dragon %dragon-drag-and-drop -a -x $fx +cmd dragon-stay %dragon-drag-and-drop -a $fx +cmd dragon-individual %dragon-drag-and-drop $fx +cmd cpdragon %cpdragon +cmd mvdragon %mvdragon +cmd dlfile %dlfile + +# Archive bindings +cmd unarchive ${{ + case "$f" in + *.zip) unzip "$f" ;; + *.tar.gz) tar -xzvf "$f" ;; + *.tar.bz2) tar -xjvf "$f" ;; + *.tar) tar -xvf "$f" ;; + *) echo "Unsupported format" ;; + esac +}} + +cmd zip %zip -r "$f" "$f" +cmd tar %tar cvf "$f.tar" "$f" +cmd targz %tar cvzf "$f.tar.gz" "$f" +cmd tarbz2 %tar cjvf "$f.tar.bz2" "$f" + +# Trash cli bindings +cmd trash ${{ + files=$(printf "$fx" | tr '\n' ';') + while [ "$files" ]; do + # extract the substring from start of string up to delimiter. + # this is the first "element" of the string. + file=${files%%;*} + + trash-put "$(basename "$file")" + # if there's only one element left, set `files` to an empty string. + # this causes us to exit this `while` loop. + # else, we delete the first "element" of the string from files, and move onto the next. + if [ "$files" = "$file" ]; then + files='' + else + files="${files#*;}" + fi + done +}} + +cmd clear_trash %trash-empty + +cmd restore_trash ${{ + trash-restore +}} + +cmd stripspace %stripspace "$f" + +# Bindings +# Remove some defaults +map m +map o +map n +map "'" +map '"' +map d +map c +map e +map f + +# File Openers +map ee $$EDITOR "$f" +map u $view "$f" + +# Archive Mappings +map az zip +map at tar +map ag targz +map ab targz +map au unarchive + +# Trash Mappings +map dd trash +map tc clear_trash +map tr restore_trash + +# Broot Mapping +map f broot_jump + +# Dragon Mapping +map dr dragon +map ds dragon-stay +map di dragon-individual +map dm mvdragon +map dc cpdragon +map dl dlfile + +map ss stripspace + +# Basic Functions +map . set hidden! +map DD delete +map p paste +map x cut +map y copy +map open +map mf mkfile +map mr sudomkfile +map md mkdir +map ms $mkscript +map ch chmod +map bg setwallpaper +map o open_config +map br $vimv $fx +map r rename +map H top +map L bottom +map R reload +map C clear +map U unselect + +# Movement +map gtr cd ~/.local/share/Trash/files +map gus cd /run/media/brodie + +map gv. cd ~/videos +map gva cd ~/videos/anime + +map gy. cd ~/videos/youtube +map gyt cd ~/videos/youtube/ToUpload +map gyu cd ~/videos/youtube/Uploaded +map gya cd ~/videos/youtube/asset +map go. cd ~/videos/podcast +map got cd ~/videos/podcast/ToUpload +map gou cd ~/videos/podcast/Uploaded + +map gp. cd ~/pictures +map gpm cd ~/pictures/mpvscreenshots +map gpa cd ~/pictures/Anime +map gps cd ~/pictures/screenshots + +map gw. cd ~/pictures/Wallpapers +map gww cd ~/pictures/Wallpapers/Wallpapers +map gwm cd ~/pictures/Wallpapers/MobileWallpapers + +map gt. cd ~/documents/Textbooks +map gt1 cd ~/documents/Textbooks/1stYear +map gt2 cd ~/documents/Textbooks/2ndYear +map gt3 cd ~/documents/Textbooks/3rdYear +map gu3 cd ~/documents/Uni/3rdYear +map gd cd ~/documents + +map gD cd ~/downloads +map ge cd ~/desktop + +map gs. cd ~/scripts +map gsl cd ~/scripts/lf +map gsa cd ~/scripts/alsa +map gsi cd ~/scripts/i3 +map gse cd ~/scripts/lemonbar +map gsp cd ~/scripts/polybar +map gsb cd ~/scripts/bspwm +map gsu cd ~/scripts/pulse +map gdt cd ~/scripts/transmission + +map gr. cd ~/repos +map grb cd ~/repos/bookmenu +map grf cd ~/repos/cleanfullscreen +map grm cd ~/repos/dmenu +map grd cd ~/repos/dotfiles +map gri cd ~/repos/init +map grk cd ~/repos/kanban-board +map grl cd ~/repos/lbryurlconvert +map grP cd ~/repos/PerlProjects +map grr cd ~/repos/reading-list +map grs cd ~/repos/st +map grw cd ~/repos/website + +map gc cd ~/.config +map gC cd ~/.local/share/cell +map gl cd ~/.local +map gE cd /etc +map gU. cd /usr +map gUs cd /usr/share + +map \;j cd ~ + diff --git a/misc/mimeapps.list b/config/mimeapps.list similarity index 100% rename from misc/mimeapps.list rename to config/mimeapps.list diff --git a/mail/msmtp/.gitignore b/config/msmtp/.gitignore similarity index 100% rename from mail/msmtp/.gitignore rename to config/msmtp/.gitignore diff --git a/config/msmtp/config.secret b/config/msmtp/config.secret new file mode 100644 index 00000000..0923e1d9 Binary files /dev/null and b/config/msmtp/config.secret differ diff --git a/mail/mutt/.mailsynclastrun b/config/mutt/.mailsynclastrun similarity index 100% rename from mail/mutt/.mailsynclastrun rename to config/mutt/.mailsynclastrun diff --git a/mail/mutt/accounts/1-yigitcolakoglu@hotmail.com.muttrc b/config/mutt/accounts/1-yigitcolakoglu@hotmail.com.muttrc similarity index 100% rename from mail/mutt/accounts/1-yigitcolakoglu@hotmail.com.muttrc rename to config/mutt/accounts/1-yigitcolakoglu@hotmail.com.muttrc diff --git a/mail/mutt/accounts/1-yigitcolakoglu@hotmail.com.sig b/config/mutt/accounts/1-yigitcolakoglu@hotmail.com.sig similarity index 100% rename from mail/mutt/accounts/1-yigitcolakoglu@hotmail.com.sig rename to config/mutt/accounts/1-yigitcolakoglu@hotmail.com.sig diff --git a/mail/mutt/colors.muttrc b/config/mutt/colors.muttrc similarity index 100% rename from mail/mutt/colors.muttrc rename to config/mutt/colors.muttrc diff --git a/mail/mutt/keys.muttrc b/config/mutt/keys.muttrc similarity index 100% rename from mail/mutt/keys.muttrc rename to config/mutt/keys.muttrc diff --git a/mail/mutt/mailcap b/config/mutt/mailcap similarity index 100% rename from mail/mutt/mailcap rename to config/mutt/mailcap diff --git a/mail/mutt/muttrc b/config/mutt/muttrc similarity index 100% rename from mail/mutt/muttrc rename to config/mutt/muttrc diff --git a/misc/neofetch/ascii.txt b/config/neofetch/ascii.txt similarity index 100% rename from misc/neofetch/ascii.txt rename to config/neofetch/ascii.txt diff --git a/misc/neofetch/config.conf b/config/neofetch/config.conf similarity index 100% rename from misc/neofetch/config.conf rename to config/neofetch/config.conf diff --git a/config/nextcloud/nextcloud.secret b/config/nextcloud/nextcloud.secret new file mode 100644 index 00000000..dd42ddeb Binary files /dev/null and b/config/nextcloud/nextcloud.secret differ diff --git a/config/notmuch/notmuchrc b/config/notmuch/notmuchrc new file mode 100644 index 00000000..9a7f1b49 --- /dev/null +++ b/config/notmuch/notmuchrc @@ -0,0 +1,14 @@ +[database] +path=/home/yigit/.local/share/mail +[user] +name=Yigit Colakoglu +primary_email=yigitcolakoglu@hotmail.com +[new] +tags=unread;inbox; +ignore=.mbsyncstate;.uidvalidity +[search] +exclude_tags=deleted;spam; +[maildir] +synchronize_flags=true +[crypto] +gpg_path=gpg diff --git a/theming/qt5ct/colors/Material Ocean.conf b/config/qt5ct/colors/Material Ocean.conf similarity index 100% rename from theming/qt5ct/colors/Material Ocean.conf rename to config/qt5ct/colors/Material Ocean.conf diff --git a/theming/qt5ct/qt5ct.conf b/config/qt5ct/qt5ct.conf similarity index 100% rename from theming/qt5ct/qt5ct.conf rename to config/qt5ct/qt5ct.conf diff --git a/misc/ranger/commands.py b/config/ranger/commands.py similarity index 100% rename from misc/ranger/commands.py rename to config/ranger/commands.py diff --git a/misc/ranger/plugins/.gitignore b/config/ranger/plugins/.gitignore similarity index 100% rename from misc/ranger/plugins/.gitignore rename to config/ranger/plugins/.gitignore diff --git a/misc/ranger/plugins/__init__.py b/config/ranger/plugins/__init__.py similarity index 100% rename from misc/ranger/plugins/__init__.py rename to config/ranger/plugins/__init__.py diff --git a/misc/ranger/plugins/chrome_chooser.py b/config/ranger/plugins/chrome_chooser.py similarity index 100% rename from misc/ranger/plugins/chrome_chooser.py rename to config/ranger/plugins/chrome_chooser.py diff --git a/misc/ranger/plugins/compress.py b/config/ranger/plugins/compress.py similarity index 100% rename from misc/ranger/plugins/compress.py rename to config/ranger/plugins/compress.py diff --git a/misc/ranger/plugins/decrypt.py b/config/ranger/plugins/decrypt.py similarity index 100% rename from misc/ranger/plugins/decrypt.py rename to config/ranger/plugins/decrypt.py diff --git a/misc/ranger/plugins/devicons b/config/ranger/plugins/devicons similarity index 100% rename from misc/ranger/plugins/devicons rename to config/ranger/plugins/devicons diff --git a/misc/ranger/plugins/encrypt.py b/config/ranger/plugins/encrypt.py similarity index 100% rename from misc/ranger/plugins/encrypt.py rename to config/ranger/plugins/encrypt.py diff --git a/misc/ranger/plugins/extract.py b/config/ranger/plugins/extract.py similarity index 100% rename from misc/ranger/plugins/extract.py rename to config/ranger/plugins/extract.py diff --git a/misc/ranger/plugins/zjumper_ranger.py b/config/ranger/plugins/zjumper_ranger.py similarity index 100% rename from misc/ranger/plugins/zjumper_ranger.py rename to config/ranger/plugins/zjumper_ranger.py diff --git a/misc/ranger/rc.conf b/config/ranger/rc.conf similarity index 100% rename from misc/ranger/rc.conf rename to config/ranger/rc.conf diff --git a/misc/ranger/scope.sh b/config/ranger/scope.sh similarity index 100% rename from misc/ranger/scope.sh rename to config/ranger/scope.sh diff --git a/config/spotifyd/spotifyd.conf.secret b/config/spotifyd/spotifyd.conf.secret new file mode 100644 index 00000000..2ac990e1 Binary files /dev/null and b/config/spotifyd/spotifyd.conf.secret differ diff --git a/misc/tmate.conf b/config/tmate/tmate.conf similarity index 100% rename from misc/tmate.conf rename to config/tmate/tmate.conf diff --git a/tmux/tmux.conf b/config/tmux/tmux.conf similarity index 96% rename from tmux/tmux.conf rename to config/tmux/tmux.conf index 95a800d3..4f1f549b 100644 --- a/tmux/tmux.conf +++ b/config/tmux/tmux.conf @@ -85,7 +85,7 @@ bind C-j choose-tree setw -g automatic-rename off # Reload tmux.conf with prefix-r -bind C-r source-file ~/.tmux.conf \; display "Reloaded ~/.tmux.conf" +bind C-r source-file ~/.config/tmux/tmux.conf \; display "Reloaded ~/.config/tmux/tmux.conf" # Provide access to the clipboard for pbpaste, pbcopy (details: http://goo.gl/DN82E) set-window-option -g automatic-rename on @@ -152,8 +152,8 @@ set -g @tmux_power_show_download_speed true set -g @tmux_power_prefix_highlight_pos 'L' set -g @tmux_power_show_web_reachable true -if "test ! -d ~/.tmux/plugins/tpm" \ +if "test ! -d ~/.local/share/tmux/plugins/tpm" \ "run 'git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm && ~/.tmux/plugins/tpm/bin/install_plugins'" -run '~/.tmux/plugins/tpm/tpm' +run '~/.local/share/tmux/plugins/tpm/tpm' diff --git a/misc/vdirsyncer/config b/config/vdirsyncer/config similarity index 100% rename from misc/vdirsyncer/config rename to config/vdirsyncer/config diff --git a/vim/vimrc b/config/vim/vimrc similarity index 85% rename from vim/vimrc rename to config/vim/vimrc index 72817d2b..3f08363a 100644 --- a/vim/vimrc +++ b/config/vim/vimrc @@ -1,11 +1,23 @@ -" -" Vim settings for @mscoutermarsh -" +set runtimepath^=$XDG_CONFIG_HOME/vim +set runtimepath+=$XDG_DATA_HOME/vim +set runtimepath+=$XDG_CONFIG_HOME/vim/after -" Settings in this file may depend on plugins, so let's install them first. -" Not to be confused with the contents of ~/.vim/plugin/* which are -" configuration options for each plugin and automatically loaded by Vim. -source ~/.vim/plugin/plugins.vim +set packpath^=$XDG_DATA_HOME/vim,$XDG_CONFIG_HOME/vim +set packpath+=$XDG_CONFIG_HOME/vim/after,$XDG_DATA_HOME/vim/after + +let g:netrw_home = $XDG_DATA_HOME."/vim" +call mkdir($XDG_DATA_HOME."/vim/spell", 'p') +set viewdir=$XDG_DATA_HOME/vim/view | call mkdir(&viewdir, 'p') + +set backupdir=$XDG_CACHE_HOME/vim/backup | call mkdir(&backupdir, 'p') +set directory=$XDG_CACHE_HOME/vim/swap | call mkdir(&directory, 'p') +set undodir=$XDG_CACHE_HOME/vim/undo | call mkdir(&undodir, 'p') +let s:MRU_File = $XDG_CACHE_HOME."/vim/mru" + + +if !has('nvim') | set viminfofile=$XDG_CACHE_HOME/vim/viminfo | endif + +source ~/.local/share/vim/plugin/plugins.vim " Set leader let mapleader = "," @@ -57,7 +69,7 @@ set t_Co=256 set clipboard=unnamedplus " Persistent undo -set undodir=~/.vim/undo/ +set undodir=~/.local/share/vim/undo/ set undofile set undolevels=1000 set undoreload=10000 @@ -154,6 +166,8 @@ if has('nvim') nmap :TmuxNavigateLeft endif + command! -complete=file -nargs=1 Rpdf :r !pdftotext -nopgbrk - |fmt -csw78 autocmd VimLeave * call system("xsel -ib", getreg('+')) packadd termdebug + diff --git a/config/wakatime/.wakatime.cfg b/config/wakatime/.wakatime.cfg new file mode 100644 index 00000000..5917b0a1 --- /dev/null +++ b/config/wakatime/.wakatime.cfg @@ -0,0 +1,9 @@ +[settings] +debug = false +hidefilenames = false +ignore = + COMMIT_EDITMSG$ + PULLREQ_EDITMSG$ + MERGE_MSG$ + TAG_EDITMSG$ +api_key=cac8019b-ec8e-472e-8fc1-7adad9544e68 diff --git a/config/wakatime/.wakatime.data b/config/wakatime/.wakatime.data new file mode 100644 index 00000000..0e8ceb88 --- /dev/null +++ b/config/wakatime/.wakatime.data @@ -0,0 +1,3 @@ +1616884495 +1616884495 +/home/yigit/.dotfiles/.git/COMMIT_EDITMSG diff --git a/config/wakatime/.wakatime.db b/config/wakatime/.wakatime.db new file mode 100644 index 00000000..7d5c00a9 Binary files /dev/null and b/config/wakatime/.wakatime.db differ diff --git a/scripts/open_url b/config/wakatime/.wakatime.log old mode 100755 new mode 100644 similarity index 100% rename from scripts/open_url rename to config/wakatime/.wakatime.log diff --git a/config/wakatime/wakatime.cfg.secret b/config/wakatime/wakatime.cfg.secret new file mode 100644 index 00000000..62f897ea Binary files /dev/null and b/config/wakatime/wakatime.cfg.secret differ diff --git a/config/wgetrc b/config/wgetrc new file mode 100644 index 00000000..c0d07792 --- /dev/null +++ b/config/wgetrc @@ -0,0 +1,137 @@ +### +### Sample Wget initialization file .wgetrc +### + +## You can use this file to change the default behaviour of wget or to +## avoid having to type many many command-line options. This file does +## not contain a comprehensive list of commands -- look at the manual +## to find out what you can put into this file. You can find this here: +## $ info wget.info 'Startup File' +## Or online here: +## https://www.gnu.org/software/wget/manual/wget.html#Startup-File +## +## Wget initialization file can reside in /usr/local/etc/wgetrc +## (global, for all users) or $HOME/.wgetrc (for a single user). +## +## To use the settings in this file, you will have to uncomment them, +## as well as change them, in most cases, as the values on the +## commented-out lines are the default values (e.g. "off"). +## +## Command are case-, underscore- and minus-insensitive. +## For example ftp_proxy, ftp-proxy and ftpproxy are the same. + + +## +## Global settings (useful for setting up in /usr/local/etc/wgetrc). +## Think well before you change them, since they may reduce wget's +## functionality, and make it behave contrary to the documentation: +## + +# You can set retrieve quota for beginners by specifying a value +# optionally followed by 'K' (kilobytes) or 'M' (megabytes). The +# default quota is unlimited. +#quota = inf + +# You can lower (or raise) the default number of retries when +# downloading a file (default is 20). +#tries = 20 + +# Lowering the maximum depth of the recursive retrieval is handy to +# prevent newbies from going too "deep" when they unwittingly start +# the recursive retrieval. The default is 5. +#reclevel = 5 + +# By default Wget uses "passive FTP" transfer where the client +# initiates the data connection to the server rather than the other +# way around. That is required on systems behind NAT where the client +# computer cannot be easily reached from the Internet. However, some +# firewalls software explicitly supports active FTP and in fact has +# problems supporting passive transfer. If you are in such +# environment, use "passive_ftp = off" to revert to active FTP. +#passive_ftp = off + +# The "wait" command below makes Wget wait between every connection. +# If, instead, you want Wget to wait only between retries of failed +# downloads, set waitretry to maximum number of seconds to wait (Wget +# will use "linear backoff", waiting 1 second after the first failure +# on a file, 2 seconds after the second failure, etc. up to this max). +#waitretry = 10 + + +## +## Local settings (for a user to set in his $HOME/.wgetrc). It is +## *highly* undesirable to put these settings in the global file, since +## they are potentially dangerous to "normal" users. +## +## Even when setting up your own ~/.wgetrc, you should know what you +## are doing before doing so. +## + +# Set this to on to use timestamping by default: +#timestamping = off + +# It is a good idea to make Wget send your email address in a `From:' +# header with your request (so that server administrators can contact +# you in case of errors). Wget does *not* send `From:' by default. +#header = From: Your Name + +# You can set up other headers, like Accept-Language. Accept-Language +# is *not* sent by default. +#header = Accept-Language: en + +# You can set the default proxies for Wget to use for http, https, and ftp. +# They will override the value in the environment. +#https_proxy = http://proxy.yoyodyne.com:18023/ +#http_proxy = http://proxy.yoyodyne.com:18023/ +#ftp_proxy = http://proxy.yoyodyne.com:18023/ + +# If you do not want to use proxy at all, set this to off. +#use_proxy = on + +# You can customize the retrieval outlook. Valid options are default, +# binary, mega and micro. +#dot_style = default + +# Setting this to off makes Wget not download /robots.txt. Be sure to +# know *exactly* what /robots.txt is and how it is used before changing +# the default! +#robots = on + +# It can be useful to make Wget wait between connections. Set this to +# the number of seconds you want Wget to wait. +#wait = 0 + +# You can force creating directory structure, even if a single is being +# retrieved, by setting this to on. +#dirstruct = off + +# You can turn on recursive retrieving by default (don't do this if +# you are not sure you know what it means) by setting this to on. +#recursive = off + +# To always back up file X as X.orig before converting its links (due +# to -k / --convert-links / convert_links = on having been specified), +# set this variable to on: +#backup_converted = off + +# To have Wget follow FTP links from HTML files by default, set this +# to on: +#follow_ftp = off + +# To try ipv6 addresses first: +#prefer-family = IPv6 + +# Set default IRI support state +#iri = off + +# Force the default system encoding +#localencoding = UTF-8 + +# Force the default remote server encoding +#remoteencoding = UTF-8 + +# Turn on to prevent following non-HTTPS links when in recursive mode +#httpsonly = off + +# Tune HTTPS security (auto, SSLv2, SSLv3, TLSv1, PFS) +#secureprotocol = auto diff --git a/misc/zathura/a b/config/zathura/a similarity index 100% rename from misc/zathura/a rename to config/zathura/a diff --git a/misc/zathura/zathurarc b/config/zathura/zathurarc similarity index 100% rename from misc/zathura/zathurarc rename to config/zathura/zathurarc diff --git a/config/zsh/.zcompdump b/config/zsh/.zcompdump new file mode 100644 index 00000000..f6426a56 --- /dev/null +++ b/config/zsh/.zcompdump @@ -0,0 +1,2019 @@ +#files: 961 version: 5.8 + +_comps=( +'-' '_precommand' +'-*-' '_bootctl' +'.' '_source' +'5g' '_go' +'5l' '_go' +'6g' '_go' +'6l' '_go' +'8g' '_go' +'8l' '_go' +'a2ps' '_a2ps' +'aaaa' '_hosts' +'aap' '_aap' +'abcde' '_abcde' +'ack' '_ack' +'ack2' '_ack' +'ack-grep' '_ack' +'ack-standalone' '_ack' +'acpi' '_acpi' +'acpitool' '_acpitool' +'acroread' '_acroread' +'adb' '_adb' +'add-zle-hook-widget' '_add-zle-hook-widget' +'add-zsh-hook' '_add-zsh-hook' +'admin' '_sccs' +'afew' '_afew' +'alacritty' '_alacritty' +'ali' '_mh' +'alias' '_alias' +'amaya' '_webbrowser' +'analyseplugin' '_analyseplugin' +'android' '_android' +'animate' '_imagemagick' +'anno' '_mh' +'ansible' '_ansible' +'ansible-config' '_ansible' +'ansible-console' '_ansible' +'ansible-doc' '_ansible' +'ansible-galaxy' '_ansible' +'ansible-inventory' '_ansible' +'ansible-playbook' '_ansible' +'ansible-pull' '_ansible' +'ansible-vault' '_ansible' +'ant' '_ant' +'antiword' '_antiword' +'aodh' '_openstack' +'aoss' '_precommand' +'apache2ctl' '_apachectl' +'apachectl' '_apachectl' +'aplay' '_alsa-utils' +'apm' '_apm' +'appletviewer' '_java' +'apropos' '_man' +'apvlv' '_pdf' +'archlinux-java' '_archlinux-java' +'arecord' '_alsa-utils' +'arena' '_webbrowser' +'arp' '_arp' +'arping' '_arping' +'-array-value-' '_value' +'artisan' '_artisan' +'asciidoctor' '_asciidoctor' +'asciinema' '_asciinema' +'ash' '_sh' +'-assign-parameter-' '_assign' +'at' '_at' +'atach' '_atach' +'atq' '_at' +'atrm' '_at' +'attr' '_attr' +'augtool' '_augeas' +'autoload' '_typeset' +'avahi-browse' '_avahi' +'avahi-browse-domains' '_avahi' +'avahi-resolve' '_avahi' +'avahi-resolve-address' '_avahi' +'avahi-resolve-host-name' '_avahi' +'awk' '_awk' +'b2sum' '_md5sum' +'barbican' '_openstack' +'base32' '_base64' +'base64' '_base64' +'basename' '_basename' +'bash' '_bash' +'bat' '_bat' +'batch' '_at' +'baz' '_baz' +'beep' '_beep' +'bg' '_jobs_bg' +'bibtex' '_bibtex' +'bindkey' '_bindkey' +'bison' '_bison' +'bitcoin-cli' '_bitcoin-cli' +'bluetoothctl' '_bluetoothctl' +'bmake' '_make' +'bogofilter' '_bogofilter' +'bogotune' '_bogofilter' +'bogoutil' '_bogofilter' +'bootctl' '_bootctl' +'borg' '_borg' +'borgfs' '_borg' +'bower' '_bower' +'bpython' '_bpython' +'bpython2' '_bpython' +'bpython2-gtk' '_bpython' +'bpython2-urwid' '_bpython' +'bpython3' '_bpython' +'bpython3-gtk' '_bpython' +'bpython3-urwid' '_bpython' +'bpython-gtk' '_bpython' +'bpython-urwid' '_bpython' +'-brace-parameter-' '_brace_parameter' +'brctl' '_brctl' +'bsdgrep' '_grep' +'bsdtar' '_tar' +'btdownloadcurses' '_bittorrent' +'btdownloadgui' '_bittorrent' +'btdownloadheadless' '_bittorrent' +'btlaunchmany' '_bittorrent' +'btlaunchmanycurses' '_bittorrent' +'btmakemetafile' '_bittorrent' +'btreannounce' '_bittorrent' +'btrename' '_bittorrent' +'btrfs' '_btrfs' +'btshowmetainfo' '_bittorrent' +'bttrack' '_bittorrent' +'buildhash' '_ispell' +'builtin' '_builtin' +'bundle' '_bundle' +'bunzip2' '_bzip2' +'burst' '_mh' +'busctl' '_busctl' +'_bw' '_bw' +'bw' '_bw' +'bzcat' '_bzip2' +'bzegrep' '_grep' +'bzfgrep' '_grep' +'bzgrep' '_grep' +'bzip2' '_bzip2' +'bzip2recover' '_bzip2' +'bzr' '_bzr' +'c++' '_gcc' +'cabal' '_cabal' +'caffeinate' '_caffeinate' +'cal' '_cal' +'calendar' '_calendar' +'calibre' '_calibre' +'calibredb' '_calibre' +'calibre-debug' '_calibre' +'calibre-server' '_calibre' +'calibre-smtp' '_calibre' +'cap' '_cap' +'cargo' '_cargo' +'cask' '_cask' +'cat' '_cat' +'catchsegv' '_precommand' +'cc' '_gcc' +'ccache' '_ccache' +'ccal' '_ccal' +'cd' '_cd' +'cdc' '_sccs' +'cdcd' '_cdcd' +'cdr' '_cdr' +'cdrdao' '_cdrdao' +'cdrecord' '_cdrecord' +'ceilometer' '_openstack' +'certtool' '_gnutls' +'cf' '_cf' +'cftp' '_twisted' +'chage' '_users' +'chattr' '_chattr' +'chcon' '_chcon' +'chdir' '_cd' +'cheat' '_cheat' +'chfn' '_users' +'chgrp' '_chown' +'chimera' '_webbrowser' +'chkconfig' '_chkconfig' +'chkstow' '_stow' +'chmod' '_chmod' +'choc' '_choc' +'chown' '_chown' +'chpass' '_chsh' +'chromium' '_chromium' +'chroot' '_chroot' +'chrt' '_chrt' +'chsh' '_chsh' +'ci' '_rcs' +'cifsiostat' '_sysstat' +'cinder' '_openstack' +'ckeygen' '_twisted' +'cksum' '_cksum' +'clang' '_gcc' +'clang++' '_gcc' +'clay' '_clay' +'clear' '_nothing' +'cloudkitty' '_openstack' +'clusterdb' '_postgresql' +'cmake' '_cmake' +'cmp' '_cmp' +'co' '_rcs' +'code' '_code' +'code-oss' '_code-oss' +'coffee' '_coffee' +'column' '_column' +'comb' '_sccs' +'combine' '_imagemagick' +'combinediff' '_patchutils' +'comm' '_comm' +'-command-' '_autocd' +'command' '_command' +'-command-line-' '_normal' +'comp' '_mh' +'compadd' '_compadd' +'compdef' '_compdef' +'composer' '_composer' +'composer.phar' '_composer' +'composite' '_imagemagick' +'compress' '_compress' +'conan' '_conan' +'conch' '_twisted' +'concourse' '_concourse' +'-condition-' '_condition' +'config.status' '_configure' +'configure' '_configure' +'console' '_console' +'convert' '_imagemagick' +'coredumpctl' '_coredumpctl' +'cowsay' '_cowsay' +'cowthink' '_cowsay' +'cp' '_cp' +'cpio' '_cpio' +'cplay' '_cplay' +'cppcheck' '_cppcheck' +'cpupower' '_cpupower' +'createdb' '_postgresql' +'createuser' '_postgresql' +'crontab' '_crontab' +'crsh' '_cssh' +'cryptsetup' '_cryptsetup' +'cscope' '_cscope' +'csh' '_sh' +'cssh' '_cssh' +'curl' '_curl' +'cut' '_cut' +'cvs' '_cvs' +'dad' '_dad' +'darcs' '_darcs' +'dash' '_sh' +'date' '_date' +'dbus-launch' '_dbus' +'dbus-monitor' '_dbus' +'dbus-send' '_dbus' +'dconf' '_dconf' +'dcop' '_dcop' +'dcopclient' '_dcop' +'dcopfind' '_dcop' +'dcopobject' '_dcop' +'dcopref' '_dcop' +'dcopstart' '_dcop' +'dd' '_dd' +'debuild' '_debuild' +'declare' '_typeset' +'-default-' '_default' +'delta' '_sccs' +'designate' '_openstack' +'devtodo' '_devtodo' +'df' '_df' +'dget' '_dget' +'dhclient' '_dhclient' +'dhclient3' '_dhclient' +'dhcpcd' '_dhcpcd' +'diana' '_diana' +'dict' '_dict' +'diff' '_diff' +'diff3' '_diff3' +'diffstat' '_diffstat' +'dig' '_dig' +'dillo' '_webbrowser' +'dircmp' '_directories' +'dirs' '_dirs' +'disable' '_disable' +'disown' '_jobs_fg' +'display' '_imagemagick' +'dist' '_mh' +'django-admin' '_django' +'django-admin.py' '_django' +'dkms' '_dkms' +'dmake' '_make' +'dmesg' '_dmesg' +'dmidecode' '_dmidecode' +'doas' '_doas' +'docpad' '_docpad' +'domainname' '_yp' +'dos2unix' '_dos2unix' +'downgrade' '_downgrade' +'drill' '_drill' +'dropdb' '_postgresql' +'dropuser' '_postgresql' +'drush' '_drush' +'dsh' '_dsh' +'dtruss' '_dtruss' +'du' '_du' +'dvibook' '_dvi' +'dviconcat' '_dvi' +'dvicopy' '_dvi' +'dvidvi' '_dvi' +'dvipdf' '_dvi' +'dvips' '_dvi' +'dviselect' '_dvi' +'dvitodvi' '_dvi' +'dvitype' '_dvi' +'dwb' '_webbrowser' +'e2label' '_e2label' +'eatmydata' '_precommand' +'ebook-convert' '_calibre' +'ebook-edit' '_calibre' +'ebook-meta' '_calibre' +'ebook-polish' '_calibre' +'ebook-viewer' '_calibre' +'ecasound' '_ecasound' +'ecdsautil' '_ecdsautil' +'echotc' '_echotc' +'echoti' '_echoti' +'ed' '_ed' +'egrep' '_grep' +'elfdump' '_elfdump' +'elinks' '_elinks' +'emulate' '_emulate' +'emulator' '_emulator' +'enable' '_enable' +'enscript' '_enscript' +'entr' '_entr' +'env' '_env' +'envdir' '_envdir' +'eog' '_eog' +'epdfview' '_pdf' +'epsffit' '_psutils' +'-equal-' '_equal' +'erb' '_ruby' +'espeak' '_espeak' +'etags' '_etags' +'ethtool' '_ethtool' +'eu-nm' '_nm' +'eu-objdump' '_objdump' +'eu-readelf' '_readelf' +'eu-strings' '_strings' +'eval' '_precommand' +'eview' '_vim' +'evim' '_vim' +'evince' '_evince' +'exa' '_exa' +'exec' '_exec' +'expand' '_unexpand' +'export' '_typeset' +'exportfs' '_exportfs' +'express' '_webbrowser' +'extcheck' '_java' +'extract' '_extract' +'extractres' '_psutils' +'fab' '_fab' +'fail2ban-client' '_fail2ban-client' +'fakeroot' '_fakeroot' +'false' '_nothing' +'fc' '_fc' +'fc-list' '_xft_fonts' +'fc-match' '_xft_fonts' +'feh' '_feh' +'fetch-ebook-metadata' '_calibre' +'fetchmail' '_fetchmail' +'ffind' '_ffind' +'ffmpeg' '_ffmpeg' +'fg' '_jobs_fg' +'fgrep' '_grep' +'figlet' '_figlet' +'filterdiff' '_patchutils' +'find' '_find' +'findaffix' '_ispell' +'findmnt' '_findmnt' +'finger' '_finger' +'firefox' '_mozilla' +'-first-' '_first' +'fixdlsrps' '_psutils' +'fixfmps' '_psutils' +'fixmacps' '_psutils' +'fixpsditps' '_psutils' +'fixpspps' '_psutils' +'fixscribeps' '_psutils' +'fixtpps' '_psutils' +'fixwfwps' '_psutils' +'fixwpps' '_psutils' +'fixwwps' '_psutils' +'flac' '_flac' +'fleetctl' '_fleetctl' +'flex' '_flex' +'flex++' '_flex' +'flipdiff' '_patchutils' +'flist' '_mh' +'flists' '_mh' +'float' '_typeset' +'flutter' '_flutter' +'fly' '_concourse' +'fmt' '_fmt' +'fmttest' '_mh' +'fned' '_zed' +'fnext' '_mh' +'fold' '_fold' +'folder' '_mh' +'folders' '_mh' +'force' '_force' +'fortune' '_fortune' +'forw' '_mh' +'fprev' '_mh' +'free' '_free' +'freebsd-make' '_make' +'freezer' '_openstack' +'fsh' '_fsh' +'ftp' '_hosts' +'functions' '_typeset' +'fuser' '_fuser' +'fusermount' '_fusermount' +'fwhois' '_whois' +'fwupdmgr' '_fwupdmgr' +'g++' '_gcc' +'galeon' '_webbrowser' +'gas' '_gas' +'gawk' '_awk' +'gb2sum' '_md5sum' +'gbase32' '_base64' +'gbase64' '_base64' +'gbasename' '_basename' +'gcat' '_cat' +'gcc' '_gcc' +'gccgo' '_go' +'gchgrp' '_chown' +'gchmod' '_chmod' +'gchown' '_chown' +'gchroot' '_chroot' +'gcksum' '_cksum' +'gcloud' '_gcloud' +'gcmp' '_cmp' +'gcomm' '_comm' +'gcore' '_gcore' +'gcp' '_cp' +'gcut' '_cut' +'gdate' '_date' +'gdb' '_gdb' +'gdd' '_dd' +'gdf' '_df' +'gdiff' '_diff' +'gdu' '_du' +'geany' '_geany' +'gegrep' '_grep' +'gem' '_gem' +'genisoimage' '_genisoimage' +'genv' '_env' +'get' '_sccs' +'getafm' '_psutils' +'getconf' '_getconf' +'getent' '_getent' +'getfacl' '_getfacl' +'getfacl.exe' '_getfacl' +'getfattr' '_attr' +'getmail' '_getmail' +'getopt' '_getopt' +'getopts' '_vars' +'gex' '_vim' +'gexpand' '_unexpand' +'gfgrep' '_grep' +'gfind' '_find' +'gfmt' '_fmt' +'gfold' '_fold' +'ggetopt' '_getopt' +'ggrep' '_grep' +'ggv' '_gnome-gv' +'ghc' '_ghc' +'ghci' '_ghc' +'ghc-pkg' '_ghc' +'ghead' '_head' +'ghostscript' '_ghostscript' +'ghostview' '_pspdf' +'gid' '_id' +'ginstall' '_install' +'gist' '_gist' +'git' '_git' +'git-cvsserver' '_git' +'git-flow' '_git-flow' +'git-journal' '_git-journal' +'gitk' '_git' +'git-pulls' '_git-pulls' +'git-receive-pack' '_git' +'git-revise' '_git-revise' +'git-shell' '_git' +'git-upload-archive' '_git' +'git-upload-pack' '_git' +'git-wtf' '_git-wtf' +'gjoin' '_join' +'glance' '_openstack' +'glances' '_glances' +'gln' '_ln' +'global' '_global' +'glocate' '_locate' +'gls' '_ls' +'gm' '_graphicsmagick' +'gmake' '_make' +'gmd5sum' '_md5sum' +'gmkdir' '_mkdir' +'gmkfifo' '_mkfifo' +'gmknod' '_mknod' +'gmktemp' '_mktemp' +'gmplayer' '_mplayer' +'gmv' '_mv' +'gnl' '_nl' +'gnocchi' '_openstack' +'gnome-gv' '_gnome-gv' +'gnumfmt' '_numfmt' +'gnupod_addsong' '_gnupod' +'gnupod_addsong.pl' '_gnupod' +'gnupod_check' '_gnupod' +'gnupod_check.pl' '_gnupod' +'gnupod_INIT' '_gnupod' +'gnupod_INIT.pl' '_gnupod' +'gnupod_search' '_gnupod' +'gnupod_search.pl' '_gnupod' +'gnutls-cli' '_gnutls' +'gnutls-cli-debug' '_gnutls' +'gnutls-serv' '_gnutls' +'go' '_golang' +'god' '_od' +'gofmt' '_go' +'google' '_google' +'googler' '_googler' +'gpasswd' '_gpasswd' +'gpaste' '_paste' +'gpatch' '_patch' +'gpg' '_gpg' +'gpg2' '_gpg' +'gpgconf' '_gpgconf' +'gpgv' '_gpg' +'gpg-zip' '_gpg' +'gphoto2' '_gphoto2' +'gprintenv' '_printenv' +'gprof' '_gprof' +'gqview' '_gqview' +'gradle' '_gradle' +'gradlew' '_gradle' +'grail' '_webbrowser' +'greadlink' '_readlink' +'grep' '_grep' +'grepdiff' '_patchutils' +'grm' '_rm' +'grmdir' '_rmdir' +'groff' '_groff' +'groupadd' '_user_admin' +'groupdel' '_groups' +'groupmod' '_user_admin' +'groups' '_users' +'growisofs' '_growisofs' +'gs' '_ghostscript' +'gsbj' '_pspdf' +'gsdj' '_pspdf' +'gsdj500' '_pspdf' +'gsed' '_sed' +'gseq' '_seq' +'gsettings' '_gsettings' +'gsha1sum' '_md5sum' +'gsha224sum' '_md5sum' +'gsha256sum' '_md5sum' +'gsha384sum' '_md5sum' +'gsha512sum' '_md5sum' +'gshred' '_shred' +'gshuf' '_shuf' +'gslj' '_pspdf' +'gslp' '_pspdf' +'gsnd' '_pspdf' +'gsort' '_sort' +'gsplit' '_split' +'gstat' '_stat' +'gstdbuf' '_stdbuf' +'gstrings' '_strings' +'gstty' '_stty' +'gsum' '_cksum' +'gtac' '_tac' +'gtail' '_tail' +'gtar' '_tar' +'gtee' '_tee' +'gtimeout' '_timeout' +'gtk-launch' '_gtk-launch' +'gtouch' '_touch' +'gtr' '_tr' +'gtty' '_tty' +'guilt' '_guilt' +'guilt-add' '_guilt' +'guilt-applied' '_guilt' +'guilt-delete' '_guilt' +'guilt-files' '_guilt' +'guilt-fold' '_guilt' +'guilt-fork' '_guilt' +'guilt-header' '_guilt' +'guilt-help' '_guilt' +'guilt-import' '_guilt' +'guilt-import-commit' '_guilt' +'guilt-init' '_guilt' +'guilt-new' '_guilt' +'guilt-next' '_guilt' +'guilt-patchbomb' '_guilt' +'guilt-pop' '_guilt' +'guilt-prev' '_guilt' +'guilt-push' '_guilt' +'guilt-rebase' '_guilt' +'guilt-refresh' '_guilt' +'guilt-rm' '_guilt' +'guilt-series' '_guilt' +'guilt-status' '_guilt' +'guilt-top' '_guilt' +'guilt-unapplied' '_guilt' +'guname' '_uname' +'gunexpand' '_unexpand' +'guniq' '_uniq' +'gunzip' '_gzip' +'guptime' '_uptime' +'gv' '_gv' +'gview' '_vim' +'gvim' '_vim' +'gvimdiff' '_vim' +'gwc' '_wc' +'gwho' '_who' +'gxargs' '_xargs' +'gzcat' '_gzip' +'gzegrep' '_grep' +'gzfgrep' '_grep' +'gzgrep' '_grep' +'gzilla' '_webbrowser' +'gzip' '_gzip' +'hash' '_hash' +'hd' '_hexdump' +'head' '_head' +'heat' '_openstack' +'help' '_sccs' +'hexdump' '_hexdump' +'hilite' '_precommand' +'history' '_fc' +'hledger' '_hledger' +'homestead' '_homestead' +'host' '_host' +'hostname' '_hostname' +'hostnamectl' '_hostnamectl' +'hotjava' '_webbrowser' +'htop' '_htop' +'http' '_httpie' +'ibus' '_ibus' +'iceweasel' '_mozilla' +'icombine' '_ispell' +'iconv' '_iconv' +'iconvconfig' '_iconvconfig' +'id' '_id' +'identify' '_imagemagick' +'ifconfig' '_ifconfig' +'ifdown' '_net_interfaces' +'iftop' '_iftop' +'ifup' '_net_interfaces' +'ijoin' '_ispell' +'import' '_imagemagick' +'inc' '_mh' +'includeres' '_psutils' +'include-what-you-use' '_include-what-you-use' +'info' '_texinfo' +'infocmp' '_terminals' +'initctl' '_initctl' +'initdb' '_postgresql' +'insmod' '_modutils' +'install' '_install' +'install-info' '_texinfo' +'integer' '_typeset' +'interdiff' '_patchutils' +'inxi' '_inxi' +'ionice' '_ionice' +'iostat' '_iostat' +'ip' '_ip' +'ip6tables' '_iptables' +'ip6tables-restore' '_iptables' +'ip6tables-save' '_iptables' +'ipkg' '_opkg' +'ipsec' '_ipsec' +'ipset' '_ipset' +'iptables' '_iptables' +'iptables-restore' '_iptables' +'iptables-save' '_iptables' +'irb' '_ruby' +'ironic' '_openstack' +'irssi' '_irssi' +'isag' '_sysstat' +'ispell' '_ispell' +'iwconfig' '_iwconfig' +'jadetex' '_tex' +'jar' '_java' +'jarsigner' '_java' +'java' '_java' +'javac' '_java' +'javadoc' '_java' +'javah' '_java' +'javap' '_java' +'jdb' '_java' +'jmeter' '_jmeter' +'jmeter-plugins' '_jmeter-plugins' +'jobs' '_jobs_builtin' +'joe' '_joe' +'join' '_join' +'jonas' '_jonas' +'journalctl' '_journalctl' +'jq' '_jq' +'jrnl' '_jrnl' +'jupyter' '_jupyter' +'kak' '_kak' +'kdeconnect-cli' '_kdeconnect' +'kernel-install' '_kernel-install' +'keystone' '_openstack' +'keytool' '_java' +'kfmclient' '_kfmclient' +'khal' '_khal' +'khard' '_khard' +'kill' '_kill' +'killall' '_killall' +'killall5' '_killall' +'kioclient' '_kfmclient' +'kitchen' '_kitchen' +'kitty' '_kitty' +'knife' '_knife' +'knock' '_knock' +'konqueror' '_webbrowser' +'kpartx' '_kpartx' +'kpdf' '_pdf' +'ksh' '_sh' +'ksh88' '_sh' +'ksh93' '_sh' +'kvno' '_kvno' +'last' '_last' +'lastb' '_last' +'latex' '_tex' +'latexmk' '_tex' +'ldconfig' '_ldconfig' +'ldconfig.real' '_ldconfig' +'ldd' '_ldd' +'less' '_less' +'let' '_math' +'lf' '_lf' +'lftp' '_ncftp' +'lha' '_lha' +'libinput' '_libinput' +'light' '_webbrowser' +'limit' '_limit' +'links' '_links' +'links2' '_links' +'linux' '_uml' +'lldb' '_lldb' +'llvm-g++' '_gcc' +'llvm-gcc' '_gcc' +'llvm-objdump' '_objdump' +'ln' '_ln' +'loadkeys' '_loadkeys' +'local' '_typeset' +'locale' '_locale' +'localectl' '_localectl' +'localedef' '_localedef' +'locate' '_locate' +'log' '_nothing' +'loginctl' '_loginctl' +'logname' '_nothing' +'look' '_look' +'losetup' '_losetup' +'lp' '_lp' +'lpadmin' '_lp' +'lpinfo' '_lp' +'lpoptions' '_lp' +'lpq' '_lp' +'lpr' '_lp' +'lprm' '_lp' +'lpstat' '_lp' +'lrf2lrs' '_calibre' +'lrfviewer' '_calibre' +'ls' '_ls' +'lsattr' '_lsattr' +'lsblk' '_lsblk' +'lsdiff' '_patchutils' +'lsinitcpio' '_mkinitcpio' +'lsmod' '_modutils' +'lsof' '_lsof' +'lsusb' '_lsusb' +'ltrace' '_ltrace' +'lua' '_lua' +'luarocks' '_luarocks' +'lunchy' '_lunchy' +'lynx' '_lynx' +'lz4' '_lz4' +'lz4c' '_lz4' +'lz4c32' '_lz4' +'lz4cat' '_lz4' +'lzcat' '_xz' +'lzma' '_xz' +'lzop' '_lzop' +'mac2unix' '_dos2unix' +'machinectl' '_machinectl' +'magnum' '_openstack' +'mail' '_mail' +'Mail' '_mail' +'mailx' '_mail' +'make' '_make' +'makeinfo' '_texinfo' +'makepkg' '_pacman' +'man' '_man' +'manage.py' '_django' +'manila' '_openstack' +'mark' '_mh' +'-math-' '_math' +'matlab' '_matlab' +'mattrib' '_mtools' +'mc' '_mc' +'mcd' '_mtools' +'mcopy' '_mtools' +'md2' '_cksum' +'md4' '_cksum' +'md5' '_cksum' +'md5sum' '_md5sum' +'mdadm' '_mdadm' +'mdel' '_mtools' +'mdeltree' '_mtools' +'mdir' '_mtools' +'mdu' '_mtools' +'mencal' '_mencal' +'mere' '_mere' +'merge' '_rcs' +'meson' '_meson' +'metaflac' '_flac' +'mformat' '_mtools' +'mgv' '_pspdf' +'mhfixmsg' '_mh' +'mhlist' '_mh' +'mhmail' '_mh' +'mhn' '_mh' +'mhparam' '_mh' +'mhpath' '_mh' +'mhshow' '_mh' +'mhstore' '_mh' +'middleman' '_middleman' +'mii-tool' '_mii-tool' +'mina' '_mina' +'mistral' '_openstack' +'mix' '_mix' +'mkdir' '_mkdir' +'mkfifo' '_mkfifo' +'mkinitcpio' '_mkinitcpio' +'mkisofs' '_growisofs' +'mknod' '_mknod' +'mksh' '_sh' +'mktemp' '_mktemp' +'mktunes' '_gnupod' +'mktunes.pl' '_gnupod' +'mlabel' '_mtools' +'mlocate' '_locate' +'mmd' '_mtools' +'mmm' '_webbrowser' +'mmount' '_mtools' +'mmove' '_mtools' +'modinfo' '_modutils' +'modprobe' '_modutils' +'module' '_module' +'mogrify' '_imagemagick' +'monasca' '_openstack' +'mondoarchive' '_mondo' +'montage' '_imagemagick' +'moosic' '_moosic' +'Mosaic' '_webbrowser' +'mosh' '_mosh' +'mount' '_mount' +'mozilla' '_mozilla' +'mozilla-firefox' '_mozilla' +'mozilla-xremote-client' '_mozilla' +'mpc' '_mpc' +'mplayer' '_mplayer' +'mpstat' '_sysstat' +'mpv' '_mpv' +'mr' '_myrepos' +'mrd' '_mtools' +'mread' '_mtools' +'mren' '_mtools' +'msgchk' '_mh' +'mssh' '_mssh' +'mt' '_mt' +'mtn' '_monotone' +'mtoolstest' '_mtools' +'mtr' '_mtr' +'mtype' '_mtools' +'munchlist' '_ispell' +'mupdf' '_mupdf' +'murano' '_openstack' +'mush' '_mail' +'mussh' '_mussh' +'mutt' '_mutt' +'mv' '_mv' +'mvim' '_vim' +'mvn' '_mvn' +'mvnDebug' '_mvn' +'mx' '_hosts' +'mysql' '_mysql_utils' +'mysqladmin' '_mysql_utils' +'mysqldiff' '_mysqldiff' +'mysqldump' '_mysql_utils' +'mysqlimport' '_mysql_utils' +'mysqlshow' '_mysql_utils' +'nail' '_mail' +'nano' '_nano' +'nanoc' '_nanoc' +'native2ascii' '_java' +'nautilus' '_nautilus' +'nawk' '_awk' +'nc' '_netcat' +'ncal' '_cal' +'ncftp' '_ncftp' +'ncl' '_nedit' +'nedit' '_nedit' +'nedit-nc' '_nedit' +'netcat' '_netcat' +'netrik' '_webbrowser' +'netscape' '_netscape' +'netstat' '_netstat' +'networkctl' '_networkctl' +'neutron' '_openstack' +'new' '_mh' +'newgrp' '_groups' +'next' '_mh' +'nft' '_nftables' +'nginx' '_nginx' +'ngrep' '_ngrep' +'nice' '_nice' +'ninja' '_ninja' +'nkf' '_nkf' +'nl' '_nl' +'nm' '_nm' +'nmap' '_nmap' +'nmblookup' '_samba' +'nmcli' '_networkmanager' +'nocorrect' '_precommand' +'node' '_node' +'noglob' '_precommand' +'nohup' '_precommand' +'notmuch' '_notmuch' +'nova' '_openstack' +'npm' '_npm' +'ns' '_hosts' +'nslookup' '_nslookup' +'ntalk' '_other_accounts' +'numfmt' '_numfmt' +'nvim' '_vim' +'nvm' '_nvm' +'objdump' '_objdump' +'od' '_od' +'ogg123' '_vorbis' +'oggdec' '_vorbis' +'oggenc' '_vorbis' +'ogginfo' '_vorbis' +'oksh' '_sh' +'okular' '_okular' +'openssl' '_openssl' +'openstack' '_openstack' +'opera' '_webbrowser' +'opera-next' '_webbrowser' +'opkg' '_opkg' +'optirun' '_optirun' +'p4' '_perforce' +'p4d' '_perforce' +'pacat' '_pulseaudio' +'pack' '_pack' +'packf' '_mh' +'pacman' '_pacman' +'pacman-key' '_pacman' +'pacman.static' '_pacman' +'pacmd' '_pulseaudio' +'pactl' '_pulseaudio' +'padsp' '_pulseaudio' +'pandoc' '_pandoc' +'paplay' '_pulseaudio' +'-parameter-' '_parameter' +'parec' '_pulseaudio' +'parecord' '_pulseaudio' +'pass' '_pass' +'passwd' '_users' +'paste' '_paste' +'pasuspender' '_pulseaudio' +'patch' '_patch' +'patool' '_patool' +'pax' '_pax' +'pcat' '_pack' +'pcred' '_pids' +'pdf2dsc' '_pdf' +'pdf2ps' '_pdf' +'pdffonts' '_pdf' +'pdfimages' '_pdf' +'pdfinfo' '_pdf' +'pdfjadetex' '_tex' +'pdflatex' '_tex' +'pdfopt' '_pdf' +'pdftex' '_tex' +'pdftexi2dvi' '_texinfo' +'pdftk' '_pdftk' +'pdftopbm' '_pdf' +'pdftops' '_pdf' +'pdftotext' '_pdf' +'pdksh' '_sh' +'perf' '_perf' +'periscope' '_periscope' +'perl' '_perl' +'perldoc' '_perldoc' +'pfiles' '_pids' +'pflags' '_pids' +'pg_config' '_postgresql' +'pg_ctl' '_postgresql' +'pg_dump' '_postgresql' +'pg_dumpall' '_postgresql' +'pg_isready' '_postgresql' +'pgrep' '_pgrep' +'pg_restore' '_postgresql' +'pg_upgrade' '_postgresql' +'phing' '_phing' +'php' '_php' +'pick' '_mh' +'picocom' '_picocom' +'pidof' '_pidof' +'pidstat' '_sysstat' +'pigz' '_gzip' +'pine' '_pine' +'pinef' '_pine' +'pinfo' '_texinfo' +'ping' '_ping' +'ping6' '_ping' +'pixz' '_pixz' +'pkcon' '_pkcon' +'pkgadd' '_pkgadd' +'pkg-config' '_pkg-config' +'pkginfo' '_pkginfo' +'pkgrm' '_pkgrm' +'pkill' '_pgrep' +'play' '_play' +'playerctl' '_playerctl' +'pldd' '_pids' +'pm2' '_pm2' +'pmake' '_make' +'pman' '_perl_modules' +'pmap' '_pmap' +'pmcat' '_perl_modules' +'pmdesc' '_perl_modules' +'pmeth' '_perl_modules' +'pmexp' '_perl_modules' +'pmfunc' '_perl_modules' +'pmload' '_perl_modules' +'pmls' '_perl_modules' +'pmpath' '_perl_modules' +'pmvers' '_perl_modules' +'podgrep' '_perl_modules' +'podpath' '_perl_modules' +'podtoc' '_perl_modules' +'poff' '_pon' +'policytool' '_java' +'pon' '_pon' +'popd' '_directory_stack' +'port' '_port' +'postconf' '_postfix' +'postgres' '_postgresql' +'postmaster' '_postgresql' +'postqueue' '_postfix' +'postsuper' '_postfix' +'prev' '_mh' +'print' '_print' +'printenv' '_printenv' +'printf' '_print' +'prompt' '_prompt' +'protoc' '_protoc' +'prove' '_prove' +'prs' '_sccs' +'prt' '_sccs' +'prun' '_pids' +'ps' '_ps' +'ps2ascii' '_pspdf' +'ps2epsi' '_postscript' +'ps2pdf' '_postscript' +'ps2pdf12' '_postscript' +'ps2pdf13' '_postscript' +'ps2pdf14' '_postscript' +'ps2pdfwr' '_postscript' +'ps2ps' '_postscript' +'psbook' '_psutils' +'psed' '_sed' +'psig' '_pids' +'psmerge' '_psutils' +'psmulti' '_postscript' +'psnup' '_psutils' +'psql' '_postgresql' +'psresize' '_psutils' +'psselect' '_psutils' +'pstack' '_pids' +'pstoedit' '_pspdf' +'pstop' '_pids' +'pstops' '_psutils' +'pstotgif' '_pspdf' +'pswrap' '_postscript' +'pulseaudio' '_pulseaudio' +'pump' '_pump' +'pushd' '_cd' +'pv' '_pv' +'pwait' '_pids' +'pwdx' '_pids' +'pwgen' '_pwgen' +'pygmentize' '_pygmentize' +'pyhtmlizer' '_twisted' +'qdbus' '_qdbus' +'qiv' '_qiv' +'qpdf' '_qpdf' +'quilt' '_quilt' +'r' '_fc' +'r2' '_r2' +'rabin2' '_rabin2' +'radiff2' '_radiff2' +'rafind2' '_rafind2' +'ragg2' '_ragg2' +'rahash2' '_rahash2' +'rails' '_rails' +'rake' '_rake' +'ralio' '_ralio' +'ranlib' '_ranlib' +'rar' '_rar' +'rasm2' '_rasm2' +'rax2' '_rax2' +'rc' '_sh' +'_rclone' '_rclone' +'rclone' '_rclone' +'rcp' '_rlogin' +'rcs' '_rcs' +'rcsdiff' '_rcs' +'rdesktop' '_rdesktop' +'read' '_read' +'readable' '_readable' +'readelf' '_readelf' +'readlink' '_readlink' +'readonly' '_typeset' +'rec' '_redis-cli' +'-redirect-' '_redirect' +'-redirect-,<,bunzip2' '_bzip2' +'-redirect-,<,bzip2' '_bzip2' +'-redirect-,>,bzip2' '_bzip2' +'-redirect-,<,compress' '_compress' +'-redirect-,>,compress' '_compress' +'-redirect-,-default-,-default-' '_files' +'-redirect-,<,gunzip' '_gzip' +'-redirect-,<,gzip' '_gzip' +'-redirect-,>,gzip' '_gzip' +'-redirect-,<,uncompress' '_compress' +'-redirect-,<,unxz' '_xz' +'-redirect-,<,xz' '_xz' +'-redirect-,>,xz' '_xz' +'redis-cli' '_redis-cli' +'refile' '_mh' +'rehash' '_hash' +'reindexdb' '_postgresql' +'reload' '_initctl' +'remsh' '_rlogin' +'renice' '_renice' +'repl' '_mh' +'resolvectl' '_resolvectl' +'restart' '_initctl' +'retawq' '_webbrowser' +'rfkill' '_rfkill' +'rg' '_rg' +'rgview' '_vim' +'rgvim' '_vim' +'ri' '_ri' +'rkt' '_rkt' +'rlogin' '_rlogin' +'rm' '_rm' +'rmd160' '_cksum' +'rmdel' '_sccs' +'rmdir' '_rmdir' +'rmf' '_mh' +'rmic' '_java' +'rmid' '_java' +'rmiregistry' '_java' +'rmm' '_mh' +'rmmod' '_modutils' +'route' '_route' +'rrdtool' '_rrdtool' +'rsh' '_rlogin' +'rslsync' '_rslsync' +'rspec' '_rspec' +'rsvm' '_rsvm' +'rsync' '_rsync' +'rtin' '_tin' +'rubber' '_rubber' +'rubber-info' '_rubber' +'rubber-pipe' '_rubber' +'rubocop' '_rubocop' +'ruby' '_ruby' +'ruby-mri' '_ruby' +'run-help' '_run-help' +'rup' '_hosts' +'rusage' '_precommand' +'rview' '_vim' +'rvim' '_vim' +'rwho' '_hosts' +'rxvt' '_urxvt' +'s2p' '_sed' +'sact' '_sccs' +'sadf' '_sysstat' +'sahara' '_openstack' +'sar' '_sysstat' +'sbt' '_sbt' +'scala' '_scala' +'scalac' '_scala' +'scan' '_mh' +'sccs' '_sccs' +'sccsdiff' '_sccs' +'sched' '_sched' +'schedtool' '_schedtool' +'scons' '_scons' +'scp' '_ssh' +'screen' '_screen' +'script' '_script' +'scriptreplay' '_script' +'scrub' '_scrub' +'sdd' '_sdd' +'seaf-cli' '_seafile' +'sed' '_sed' +'senlin' '_openstack' +'seq' '_seq' +'serialver' '_java' +'service' '_service' +'set' '_set' +'setcap' '_setcap' +'setfacl' '_setfacl' +'setfacl.exe' '_setfacl' +'setfattr' '_attr' +'setopt' '_setopt' +'setsid' '_setsid' +'setup.py' '_setup.py' +'setxkbmap' '_setxkbmap' +'sfdx' '_sfdx' +'sftp' '_ssh' +'sh' '_sh' +'sha1' '_cksum' +'sha1sum' '_md5sum' +'sha224sum' '_md5sum' +'sha256' '_cksum' +'sha256sum' '_md5sum' +'sha384' '_cksum' +'sha384sum' '_md5sum' +'sha512' '_cksum' +'sha512sum' '_md5sum' +'sha512t256' '_cksum' +'shasum' '_shasum' +'shell-script' '_bootctl' +'shift' '_arrays' +'show' '_mh' +'showchar' '_psutils' +'showmount' '_showmount' +'showoff' '_showoff' +'shred' '_shred' +'shuf' '_shuf' +'shutdown' '_shutdown' +'sisu' '_sisu' +'skein1024' '_cksum' +'skein256' '_cksum' +'skein512' '_cksum' +'skipstone' '_webbrowser' +'slabtop' '_slabtop' +'slitex' '_tex' +'slocate' '_locate' +'slogin' '_ssh' +'slrn' '_slrn' +'smartctl' '_smartmontools' +'smbclient' '_samba' +'smbcontrol' '_samba' +'smbstatus' '_samba' +'soa' '_hosts' +'socket' '_socket' +'sort' '_sort' +'sortm' '_mh' +'source' '_source' +'spamassassin' '_spamassassin' +'split' '_split' +'splitdiff' '_patchutils' +'spt' '_spt' +'sqlite' '_sqlite' +'sqlite3' '_sqlite' +'sqsh' '_sqsh' +'sr' '_surfraw' +'srm' '_srm' +'srptool' '_gnutls' +'ss' '_ss' +'ssh' '_ssh' +'ssh-add' '_ssh' +'ssh-agent' '_ssh' +'ssh-copy-id' '_ssh' +'sshfs' '_sshfs' +'ssh-keygen' '_ssh' +'ssh-keyscan' '_ssh' +'stack' '_stack' +'star' '_tar' +'start' '_initctl' +'stat' '_stat' +'status' '_initctl' +'stdbuf' '_stdbuf' +'stg' '_stgit' +'stop' '_initctl' +'stow' '_stow' +'strace' '_strace' +'strace64' '_strace' +'strftime' '_strftime' +'strings' '_strings' +'strip' '_strip' +'strongswan' '_ipsec' +'stty' '_stty' +'su' '_su' +'subl' '_sublimetext' +'subliminal' '_subliminal' +'-subscript-' '_subscript' +'sudo' '_sudo' +'sudoedit' '_sudo' +'sum' '_cksum' +'supervisorctl' '_supervisorctl' +'surfraw' '_surfraw' +'sv' '_runit' +'svm' '_svm' +'svn' '_subversion' +'svnadmin' '_subversion' +'svnadmin-static' '_subversion' +'svnlite' '_subversion' +'swaks' '_swaks' +'swanctl' '_swanctl' +'swift' '_swift' +'swiftc' '_swift' +'sync' '_nothing' +'sysctl' '_sysctl' +'systemctl' '_systemctl' +'systemd-analyze' '_systemd-analyze' +'systemd-ask-password' '_systemd' +'systemd-cat' '_systemd' +'systemd-cgls' '_systemd' +'systemd-cgtop' '_systemd' +'systemd-delta' '_systemd-delta' +'systemd-detect-virt' '_systemd' +'systemd-inhibit' '_systemd-inhibit' +'systemd-machine-id-setup' '_systemd' +'systemd-notify' '_systemd' +'systemd-nspawn' '_systemd-nspawn' +'systemd-path' '_systemd-path' +'systemd-resolve' '_resolvectl' +'systemd-run' '_systemd-run' +'systemd-tmpfiles' '_systemd-tmpfiles' +'systemd-tty-ask-password-agent' '_systemd' +'tac' '_tac' +'tacker' '_openstack' +'tail' '_tail' +'talk' '_other_accounts' +'tar' '_tar' +'tardy' '_tardy' +'tarsnap' '_tarsnap' +'task' '_task' +'tcpdump' '_tcpdump' +'tcp_open' '_tcpsys' +'tcptraceroute' '_tcptraceroute' +'tcsh' '_sh' +'tda' '_devtodo' +'tdd' '_devtodo' +'tde' '_devtodo' +'tdr' '_devtodo' +'teamocil' '_teamocil' +'tee' '_tee' +'telnet' '_telnet' +'tex' '_tex' +'texi2any' '_texinfo' +'texi2dvi' '_texinfo' +'texi2pdf' '_texinfo' +'texindex' '_texinfo' +'tg' '_topgit' +'thor' '_thor' +'tidy' '_tidy' +'tig' '_git' +'-tilde-' '_tilde' +'time' '_precommand' +'timedatectl' '_timedatectl' +'timeout' '_timeout' +'times' '_nothing' +'tin' '_tin' +'tkconch' '_twisted' +'tkinfo' '_texinfo' +'tla' '_tla' +'tload' '_tload' +'tmsu' '_tmsu' +'tmux' '_tmux' +'_tmuxinator' '_tmuxinator' +'tmuxinator' '_tmuxinator' +'tmuxp' '_tmuxp' +'todo' '_devtodo' +'todo.sh' '_todo.sh' +'toilet' '_toilet' +'top' '_top' +'totdconfig' '_totd' +'touch' '_touch' +'tox' '_tox' +'tpb' '_tpb' +'tput' '_tput' +'tr' '_tr' +'tracepath' '_tracepath' +'tracepath6' '_tracepath' +'traceroute' '_hosts' +'transmission-remote' '_transmission' +'trap' '_trap' +'trash' '_trash-put' +'trash-empty' '_trash-empty' +'trash-list' '_trash-list' +'trash-put' '_trash-put' +'trash-restore' '_trash-restore' +'tree' '_tree' +'trial' '_twisted' +'trove' '_openstack' +'true' '_nothing' +'truss' '_truss' +'tryaffix' '_ispell' +'tty' '_tty' +'ttyctl' '_ttyctl' +'tunctl' '_uml' +'tune2fs' '_tune2fs' +'tunes2pod' '_gnupod' +'tunes2pod.pl' '_gnupod' +'twidge' '_twidge' +'twist' '_twisted' +'twistd' '_twisted' +'txt' '_hosts' +'type' '_which' +'typeset' '_typeset' +'udevadm' '_udevadm' +'udisksctl' '_udisksctl' +'ufw' '_ufw' +'ulimit' '_ulimit' +'uml_mconsole' '_uml' +'uml_moo' '_uml' +'uml_switch' '_uml' +'umount' '_mount' +'unace' '_unace' +'unalias' '_aliases' +'uname' '_uname' +'uncompress' '_compress' +'unexpand' '_unexpand' +'unfunction' '_functions' +'unget' '_sccs' +'unhash' '_unhash' +'uniq' '_uniq' +'unison' '_unison' +'units' '_units' +'unix2dos' '_dos2unix' +'unix2mac' '_dos2unix' +'unlimit' '_limits' +'unlz4' '_lz4' +'unlzma' '_xz' +'unpack' '_pack' +'unpigz' '_gzip' +'unrar' '_rar' +'unset' '_vars' +'unsetopt' '_setopt' +'unwrapdiff' '_patchutils' +'unxz' '_xz' +'unzip' '_zip' +'uptime' '_uptime' +'urxvt' '_urxvt' +'urxvt256c' '_urxvt' +'urxvt256cc' '_urxvt' +'urxvt256c-ml' '_urxvt' +'urxvt256c-mlc' '_urxvt' +'urxvtc' '_urxvt' +'useradd' '_user_admin' +'userdel' '_users' +'usermod' '_user_admin' +'vacuumdb' '_postgresql' +'vagrant' '_vagrant' +'val' '_sccs' +'valgrind' '_valgrind' +'-value-' '_value' +'-value-,ADB_TRACE,-default-' '_adb' +'-value-,ANDROID_LOG_TAGS,-default-' '_adb' +'-value-,ANDROID_SERIAL,-default-' '_adb' +'-value-,ANSIBLE_STDOUT_CALLBACK,-default-' '_ansible' +'-value-,ANT_ARGS,-default-' '_ant' +'-value-,CFLAGS,-default-' '_gcc' +'-value-,CMAKE_GENERATOR,-default-' '_cmake' +'-value-,CPPFLAGS,-default-' '_gcc' +'-value-,CXXFLAGS,-default-' '_gcc' +'-value-,-default-,-command-' '_zargs' +'-value-,-default-,-default-' '_value' +'-value-,DISPLAY,-default-' '_x_display' +'-value-,GREP_OPTIONS,-default-' '_grep' +'-value-,GZIP,-default-' '_gzip' +'-value-,LANG,-default-' '_locales' +'-value-,LANGUAGE,-default-' '_locales' +'-value-,LD_DEBUG,-default-' '_ld_debug' +'-value-,LDFLAGS,-default-' '_gcc' +'-value-,LESSCHARSET,-default-' '_less' +'-value-,LESS,-default-' '_less' +'-value-,LOOPDEV_DEBUG,-default-' '_losetup' +'-value-,LPDEST,-default-' '_printers' +'-value-,MPD_HOST,-default' '_mpc' +'-value-,P4CLIENT,-default-' '_perforce' +'-value-,P4MERGE,-default-' '_perforce' +'-value-,P4PORT,-default-' '_perforce' +'-value-,P4USER,-default-' '_perforce' +'-value-,PERLDOC,-default-' '_perldoc' +'-value-,PRINTER,-default-' '_printers' +'-value-,PROMPT2,-default-' '_ps1234' +'-value-,PROMPT3,-default-' '_ps1234' +'-value-,PROMPT4,-default-' '_ps1234' +'-value-,PROMPT,-default-' '_ps1234' +'-value-,PS1,-default-' '_ps1234' +'-value-,PS2,-default-' '_ps1234' +'-value-,PS3,-default-' '_ps1234' +'-value-,PS4,-default-' '_ps1234' +'-value-,RPROMPT2,-default-' '_ps1234' +'-value-,RPROMPT,-default-' '_ps1234' +'-value-,RPS1,-default-' '_ps1234' +'-value-,RPS2,-default-' '_ps1234' +'-value-,SPROMPT,-default-' '_ps1234' +'-value-,TERM,-default-' '_terminals' +'-value-,TERMINFO_DIRS,-default-' '_dir_list' +'-value-,TZ,-default-' '_time_zone' +'-value-,VALGRIND_OPTS,-default-' '_valgrind' +'-value-,WWW_HOME,-default-' '_urls' +'-value-,XML_CATALOG_FILES,-default-' '_xmlsoft' +'-value-,XZ_DEFAULTS,-default-' '_xz' +'-value-,XZ_OPT,-default-' '_xz' +'-vared-' '_in_vared' +'vared' '_vared' +'VBoxHeadless' '_virtualbox' +'VBoxManage' '_virtualbox' +'vcsh' '_vcsh' +'vim' '_vim' +'vimdiff' '_vim' +'virsh' '_libvirt' +'virt-admin' '_libvirt' +'virt-host-validate' '_libvirt' +'virt-pki-validate' '_libvirt' +'virt-xml-validate' '_libvirt' +'visudo' '_visudo' +'vitrage' '_openstack' +'vmstat' '_vmstat' +'vncserver' '_vnc' +'vncviewer' '_vnc' +'vnstat' '_vnstat' +'vorbiscomment' '_vorbis' +'vpnc' '_vpnc' +'vpnc-connect' '_vpnc' +'vserver' '_vserver' +'w' '_w' +'w3m' '_w3m' +'wait' '_wait' +'watch' '_watch' +'watcher' '_openstack' +'wc' '_wc' +'wemux' '_wemux' +'wget' '_wget' +'wg-quick' '_wg-quick' +'what' '_sccs' +'whatis' '_man' +'whence' '_which' +'where' '_which' +'whereis' '_whereis' +'which' '_which' +'who' '_who' +'whoami' '_nothing' +'whois' '_whois' +'whom' '_mh' +'wiggle' '_wiggle' +'wipefs' '_wipefs' +'wodim' '_cdrecord' +'wpa_cli' '_wpa_cli' +'write' '_users_on' +'www' '_webbrowser' +'xargs' '_xargs' +'xattr' '_attr' +'xauth' '_xauth' +'xautolock' '_xautolock' +'xclip' '_xclip' +'xdpyinfo' '_x_utils' +'xdvi' '_xdvi' +'xelatex' '_tex' +'xetex' '_tex' +'xev' '_x_utils' +'xfd' '_x_utils' +'xfig' '_xfig' +'xfontsel' '_x_utils' +'xfreerdp' '_rdesktop' +'xhost' '_x_utils' +'xinput' '_xinput' +'xkill' '_x_utils' +'xli' '_xloadimage' +'xloadimage' '_xloadimage' +'xlsatoms' '_x_utils' +'xlsclients' '_x_utils' +'xml' '_xmlstarlet' +'xmllint' '_xmlsoft' +'xmlstarlet' '_xmlstarlet' +'xmms2' '_xmms2' +'xmodmap' '_xmodmap' +'xmosaic' '_webbrowser' +'xon' '_x_utils' +'xournal' '_xournal' +'xpdf' '_xpdf' +'xping' '_hosts' +'xprop' '_x_utils' +'xrandr' '_xrandr' +'xrdb' '_x_utils' +'xscreensaver-command' '_xscreensaver' +'xsel' '_xsel' +'xset' '_xset' +'xsetbg' '_xloadimage' +'xsetroot' '_x_utils' +'xsltproc' '_xmlsoft' +'xss-lock' '_xss-lock' +'xterm' '_xterm' +'xtightvncviewer' '_vnc' +'xtp' '_imagemagick' +'xv' '_xv' +'xview' '_xloadimage' +'xvnc4viewer' '_vnc' +'xvncviewer' '_vnc' +'xwd' '_x_utils' +'xwininfo' '_x_utils' +'xwit' '_xwit' +'xwud' '_x_utils' +'xxd' '_xxd' +'xz' '_xz' +'xzcat' '_xz' +'yafc' '_yafc' +'yaourt' '_yaourt' +'yaourt.static' '_yaourt' +'yarn' '_yarn' +'yash' '_sh' +'yay' '_yay' +'youtube-dl' '_youtube-dl' +'ypbind' '_yp' +'ypcat' '_yp' +'ypmatch' '_yp' +'yppasswd' '_yp' +'yppoll' '_yp' +'yppush' '_yp' +'ypserv' '_yp' +'ypset' '_yp' +'ypwhich' '_yp' +'ypxfr' '_yp' +'ytalk' '_other_accounts' +'zargs' '_zargs' +'zathura' '_zathura' +'zcalc' '_zcalc' +'-zcalc-line-' '_zcalc_line' +'zcash-cli' '_zcash-cli' +'zcat' '_zcat' +'zcompile' '_zcompile' +'zcp' '_zmv' +'zdelattr' '_zattr' +'zdump' '_zdump' +'zeal' '_zeal' +'zed' '_zed' +'zegrep' '_grep' +'zen' '_webbrowser' +'zf_chgrp' '_chown' +'zf_chmod' '_chmod' +'zf_chown' '_chown' +'zfgrep' '_grep' +'zf_ln' '_ln' +'zf_mkdir' '_mkdir' +'zf_mv' '_mv' +'zf_rm' '_rm' +'zf_rmdir' '_rmdir' +'zfs' '_zfs' +'zgetattr' '_zattr' +'zgrep' '_grep' +'zip' '_zip' +'zipinfo' '_zip' +'zle' '_zle' +'zlistattr' '_zattr' +'zln' '_zmv' +'zmail' '_mail' +'zmodload' '_zmodload' +'zmv' '_zmv' +'zone' '_hosts' +'zparseopts' '_zparseopts' +'zpool' '_zpool' +'zpty' '_zpty' +'zsetattr' '_zattr' +'zsh' '_zsh' +'zsh-mime-handler' '_zsh-mime-handler' +'zsocket' '_zsocket' +'zstat' '_stat' +'zstyle' '_zstyle' +'ztodo' '_ztodo' +'zun' '_openstack' +'zxpdf' '_xpdf' +) + +_services=( +'bzcat' 'bunzip2' +'gchgrp' 'chgrp' +'gchown' 'chown' +'gnupod_addsong.pl' 'gnupod_addsong' +'gnupod_check.pl' 'gnupod_check' +'gnupod_INIT.pl' 'gnupod_INIT' +'gnupod_search.pl' 'gnupod_search' +'gpg2' 'gpg' +'gzcat' 'gunzip' +'iceweasel' 'firefox' +'lzcat' 'unxz' +'lzma' 'xz' +'Mail' 'mail' +'mailx' 'mail' +'mktunes.pl' 'mktunes' +'nail' 'mail' +'ncl' 'nc' +'nedit-nc' 'nc' +'pacman.static' 'pacman' +'pcat' 'unpack' +'-redirect-,<,bunzip2' 'bunzip2' +'-redirect-,<,bzip2' 'bzip2' +'-redirect-,>,bzip2' 'bunzip2' +'-redirect-,<,compress' 'compress' +'-redirect-,>,compress' 'uncompress' +'-redirect-,<,gunzip' 'gunzip' +'-redirect-,<,gzip' 'gzip' +'-redirect-,>,gzip' 'gunzip' +'-redirect-,<,uncompress' 'uncompress' +'-redirect-,<,unxz' 'unxz' +'-redirect-,<,xz' 'xz' +'-redirect-,>,xz' 'unxz' +'remsh' 'rsh' +'slogin' 'ssh' +'svnadmin-static' 'svnadmin' +'svnlite' 'svn' +'tunes2pod.pl' 'tunes2pod' +'unlzma' 'unxz' +'VBoxHeadless' 'vboxheadless' +'VBoxManage' 'vboxmanage' +'xelatex' 'latex' +'xetex' 'tex' +'xzcat' 'unxz' +'yaourt.static' 'yaourt' +'zf_chgrp' 'chgrp' +'zf_chown' 'chown' +) + +_patcomps=( +'*/(init|rc[0-9S]#).d/*' '_init_d' +'notmuch-*' '_notmuch' +) + +_postpatcomps=( +'c++-*' '_gcc' +'g++-*' '_gcc' +'gcc-*' '_gcc' +'gem[0-9.]#' '_gem' +'lua[0-9.-]##' '_lua' +'(p[bgpn]m*|*top[bgpn]m)' '_pbm' +'php[0-9.-]' '_php' +'pydoc[0-9.]#' '_pydoc' +'python[0-9.]#' '_python' +'qemu(|-system-*)' '_qemu' +'(ruby|[ei]rb)[0-9.]#' '_ruby' +'shasum(|5).*' '_shasum' +'(texi(2*|ndex))' '_texi' +'(tiff*|*2tiff|pal2rgb)' '_tiff' +'-value-,BORG_*,-default-' '_borg' +'-value-,CCACHE_*,-default-' '_ccache' +'-value-,CGO*,-default-' '_golang' +'-value-,(ftp|http(|s))_proxy,-default-' '_urls' +'-value-,GO*,-default-' '_golang' +'-value-,LC_*,-default-' '_locales' +'-value-,*path,-default-' '_directories' +'-value-,*PATH,-default-' '_dir_list' +'-value-,RUBY(LIB|OPT|PATH),-default-' '_ruby' +'*/X11(|R<4->)/*' '_x_arguments' +'yodl(|2*)' '_yodl' +'zf*' '_zftp' +) + +_compautos=( +'_call_program' '+X' +) + +zle -C _bash_complete-word .complete-word _bash_completions +zle -C _bash_list-choices .list-choices _bash_completions +zle -C _complete_debug .complete-word _complete_debug +zle -C _complete_help .complete-word _complete_help +zle -C _complete_tag .complete-word _complete_tag +zle -C _correct_filename .complete-word _correct_filename +zle -C _correct_word .complete-word _correct_word +zle -C _expand_alias .complete-word _expand_alias +zle -C _expand_word .complete-word _expand_word +zle -C _history-complete-newer .complete-word _history_complete_word +zle -C _history-complete-older .complete-word _history_complete_word +zle -C _list_expansions .list-choices _expand_word +zle -C _most_recent_file .complete-word _most_recent_file +zle -C _next_tags .list-choices _next_tags +zle -C _read_comp .complete-word _read_comp +bindkey '^X^R' _read_comp +bindkey '^X?' _complete_debug +bindkey '^XC' _correct_filename +bindkey '^Xa' _expand_alias +bindkey '^Xc' _correct_word +bindkey '^Xd' _list_expansions +bindkey '^Xe' _expand_word +bindkey '^Xh' _complete_help +bindkey '^Xm' _most_recent_file +bindkey '^Xn' _next_tags +bindkey '^Xt' _complete_tag +bindkey '^X~' _bash_list-choices +bindkey '^[,' _history-complete-newer +bindkey '^[/' _history-complete-older +bindkey '^[~' _bash_complete-word + +autoload -Uz _gcloud _git _spt _tmuxinator _alacritty \ + _bat _bluetoothctl _bootctl _borg _busctl \ + _bw _calibre _cargo _code _code-oss \ + _coredumpctl _curl _downgrade _email-khard _email-notmuch \ + _exa _gcloud _googler _hostnamectl _journalctl \ + _jupyter _kernel-install _khal _khard _kitty \ + _lf _libinput _localectl _loginctl _machinectl \ + _meson _mkinitcpio _mpv _networkctl _ninja \ + _notmuch _pacman _pass _playerctl _pulseaudio \ + _qpdf _r2 _rabin2 _radiff2 _rafind2 \ + _ragg2 _rahash2 _rasm2 _rax2 _rclone \ + _readable _resolvectl _rg _sd_hosts_or_user_at_host _sd_machines \ + _sd_outputmodes _sd_unit_files _systemctl _systemd _systemd-analyze \ + _systemd-delta _systemd-inhibit _systemd-nspawn _systemd-path _systemd-run \ + _systemd-tmpfiles _task _timedatectl _tmsu _udevadm \ + _xss-lock _yay _youtube-dl _zathura _cdr \ + _all_labels _all_matches _alternative _approximate _arg_compile \ + _arguments _bash_completions _cache_invalid _call_function _combination \ + _complete _complete_debug _complete_help _complete_help_generic _complete_tag \ + _comp_locale _correct _correct_filename _correct_word _describe \ + _description _dispatch _expand _expand_alias _expand_word \ + _extensions _external_pwds _generic _guard _history \ + _history_complete_word _ignored _list _main_complete _match \ + _menu _message _most_recent_file _multi_parts _next_label \ + _next_tags _normal _nothing _oldlist _pick_variant \ + _prefix _read_comp _regex_arguments _regex_words _requested \ + _retrieve_cache _sep_parts _sequence _set_command _setup \ + _store_cache _sub_commands _tags _user_expand _values \ + _wanted _acpi _acpitool _alsa-utils _analyseplugin \ + _brctl _btrfs _chattr _chcon _chrt \ + _cpupower _cryptsetup _dkms _e2label _ethtool \ + _findmnt _free _fuse_arguments _fusermount _fuse_values \ + _gpasswd _htop _iconvconfig _ionice _ipset \ + _iptables _iwconfig _kpartx _losetup _lsattr \ + _lsblk _lsusb _ltrace _mdadm _mii-tool \ + _modutils _mondo _networkmanager _opkg _pidof \ + _pmap _qdbus _schedtool _selinux_contexts _selinux_roles \ + _selinux_types _selinux_users _setsid _slabtop _ss \ + _sshfs _strace _sysstat _tload _tpb \ + _tracepath _tune2fs _uml _valgrind _vserver \ + _wakeup_capable_devices _wipefs _wpa_cli _a2ps _aap \ + _abcde _absolute_command_paths _ack _adb _ansible \ + _ant _antiword _apachectl _apm _arch_archives \ + _arch_namespace _arp _arping _asciidoctor _asciinema \ + _at _attr _augeas _avahi _awk \ + _base64 _basename _bash _baudrates _baz \ + _beep _bibtex _bind_addresses _bison _bittorrent \ + _bogofilter _bpf_filters _bpython _bzip2 _bzr \ + _cabal _cal _calendar _canonical_paths _cat \ + _ccal _cdcd _cdrdao _cdrecord _chkconfig \ + _chmod _chown _chroot _chsh _cksum \ + _clay _cmdambivalent _cmdstring _cmp _column \ + _comm _composer _compress _configure _cowsay \ + _cp _cpio _cplay _crontab _cscope \ + _cssh _ctags_tags _curl _cut _cvs \ + _darcs _date _date_formats _dates _dbus \ + _dconf _dd _devtodo _df _dhclient \ + _dict _dict_words _diff _diff3 _diff_options \ + _diffstat _dig _directories _dir_list _django \ + _dmesg _dmidecode _dns_types _doas _domains \ + _dos2unix _drill _dsh _dtruss _du \ + _dvi _ecasound _ed _elfdump _elinks \ + _email_addresses _enscript _entr _env _espeak \ + _etags _fakeroot _feh _fetchmail _ffmpeg \ + _figlet _file_modes _files _file_systems _find \ + _find_net_interfaces _finger _flac _flex _fmt \ + _fold _fortune _fsh _fuser _gcc \ + _gcore _gdb _gem _genisoimage _getconf \ + _getent _getfacl _getmail _getopt _ghostscript \ + _git _global _global_tags _gnu_generic _gnupod \ + _gnutls _go _gpg _gphoto2 _gprof \ + _gradle _graphicsmagick _grep _groff _groups \ + _growisofs _gsettings _guilt _gzip _have_glob_qual \ + _head _hexdump _host _hostname _hosts \ + _iconv _id _ifconfig _iftop _imagemagick \ + _initctl _init_d _install _iostat _ip \ + _ipsec _irssi _ispell _java _java_class \ + _joe _join _jq _killall _knock \ + _kvno _last _ldconfig _ldd _ld_debug \ + _less _lha _libvirt _links _list_files \ + _lldb _ln _loadkeys _locale _localedef \ + _locales _locate _look _lp _ls \ + _lsof _lua _luarocks _lynx _lz4 \ + _lzop _mail _mailboxes _make _man \ + _md5sum _mencal _mh _mime_types _mkdir \ + _mkfifo _mknod _mktemp _module _monotone \ + _moosic _mosh _mount _mpc _mt \ + _mtools _mtr _mutt _mv _my_accounts \ + _myrepos _mysqldiff _mysql_utils _ncftp _netcat \ + _net_interfaces _netstat _newsgroups _nginx _ngrep \ + _nice _nkf _nl _nm _nmap \ + _npm _nslookup _numfmt _objdump _object_files \ + _od _openstack _other_accounts _pack _pandoc \ + _paste _patch _patchutils _path_commands _path_files \ + _pax _pbm _pdf _perforce _perl \ + _perl_basepods _perldoc _perl_modules _pgrep _php \ + _picocom _pids _pine _ping _pkgadd \ + _pkg-config _pkginfo _pkg_instance _pkgrm _pon \ + _ports _postfix _postgresql _postscript _printenv \ + _printers _process_names _prove _ps _pspdf \ + _psutils _pump _pv _pwgen _pydoc \ + _python _python_modules _qemu _quilt _rake \ + _ranlib _rar _rclone _rcs _readelf \ + _readlink _remote_files _renice _ri _rlogin \ + _rm _rmdir _route _rrdtool _rsync \ + _rubber _ruby _runit _samba _sccs \ + _scons _screen _script _seafile _sed \ + _seq _service _services _setfacl _sh \ + _shasum _showmount _shred _shuf _shutdown \ + _signals _sisu _slrn _smartmontools _socket \ + _sort _spamassassin _split _sqlite _sqsh \ + _ssh _ssh_hosts _stat _stdbuf _stgit \ + _stow _strings _strip _stty _su \ + _subversion _sudo _surfraw _swaks _swanctl \ + _swift _sys_calls _sysctl _tac _tail \ + _tar _tar_archive _tardy _tcpdump _tcptraceroute \ + _tee _telnet _terminals _tex _texi \ + _texinfo _tidy _tiff _tilde_files _timeout \ + _time_zone _tin _tla _tmux _todo.sh \ + _toilet _top _topgit _totd _touch \ + _tput _tr _transmission _tree _truss \ + _tty _ttys _twidge _twisted _umountable \ + _unace _uname _unexpand _uniq _unison \ + _units _uptime _urls _user_admin _user_at_host \ + _users _users_on _vcsh _vim _visudo \ + _vmstat _vorbis _vpnc _w _w3m \ + _watch _wc _webbrowser _wget _whereis \ + _who _whois _wiggle _xargs _xmlsoft \ + _xmlstarlet _xmms2 _xxd _xz _yafc \ + _yodl _yp _zcat _zdump _zfs \ + _zfs_dataset _zfs_keysource_props _zfs_pool _zip _zpool \ + _zsh _acroread _code _dcop _eog \ + _evince _geany _gnome-gv _gqview _gv \ + _kdeconnect _kfmclient _matlab _mozilla _mplayer \ + _mupdf _nautilus _nedit _netscape _okular \ + _pdftk _qiv _rdesktop _setxkbmap _sublimetext \ + _urxvt _vnc _x_arguments _xauth _xautolock \ + _x_borderwidth _xclip _x_color _x_colormapid _x_cursor \ + _x_display _xdvi _x_extension _xfig _x_font \ + _xft_fonts _x_geometry _x_keysym _xloadimage _x_locale \ + _x_modifier _xmodmap _x_name _xournal _xpdf \ + _xrandr _x_resource _xscreensaver _x_selection_timeout _xset \ + _xt_arguments _xterm _x_title _xt_session_id _x_utils \ + _xv _x_visual _x_window _xwit _zeal \ + _add-zle-hook-widget _add-zsh-hook _alias _aliases _arrays \ + _assign _autocd _bindkey _brace_parameter _builtin \ + _cd _command _command_names _compadd _compdef \ + _completers _condition _default _delimiters _directory_stack \ + _dirs _disable _dynamic_directory_name _echotc _echoti \ + _emulate _enable _equal _exec _fc \ + _file_descriptors _first _functions _globflags _globqual_delims \ + _globquals _hash _history_modifiers _in_vared _jobs \ + _jobs_bg _jobs_builtin _jobs_fg _kill _limit \ + _limits _math _math_params _mere _module_math_func \ + _options _options_set _options_unset _parameter _parameters \ + _precommand _print _prompt _ps1234 _read \ + _redirect _run-help _sched _set _setopt \ + _source _strftime _subscript _suffix_alias_files _tcpsys \ + _tilde _trap _ttyctl _typeset _ulimit \ + _unhash _user_math_func _value _vared _vars \ + _wait _which _widgets _zargs _zattr \ + _zcalc _zcalc_line _zcompile _zed _zftp \ + _zle _zmodload _zmv _zparseopts _zpty \ + _zsh-mime-handler _zsocket _zstyle _ztodo _afew \ + _android _archlinux-java _artisan _atach _bitcoin-cli \ + _bower _bundle _caffeinate _cap _cask \ + _ccache _cf _cheat _choc _chromium \ + _cmake _coffee _composer _conan _concourse \ + _console _cppcheck _dad _debuild _dget \ + _dhcpcd _diana _docpad _drush _ecdsautil \ + _emulator _envdir _exportfs _fab _fail2ban-client \ + _ffind _fleetctl _flutter _force _fwupdmgr \ + _gas _ghc _gist _git-flow _git-journal \ + _git-pulls _git-revise _git-wtf _glances _golang \ + _google _gpgconf _gtk-launch _hledger _homestead \ + _httpie _ibus _include-what-you-use _inxi _jmeter \ + _jmeter-plugins _jonas _jrnl _kak _kitchen \ + _knife _language_codes _lunchy _mc _middleman \ + _mina _mix _mssh _mussh _mvn \ + _nano _nanoc _nftables _node _nvm \ + _openssl _optirun _patool _perf _periscope \ + _pgsql_utils _phing _pixz _pkcon _play \ + _pm2 _port _protoc _pygmentize _rails \ + _ralio _redis-cli _rfkill _rkt _rslsync \ + _rspec _rsvm _rubocop _sbt _scala \ + _scrub _sdd _setcap _setup.py _sfdx \ + _showoff _srm _stack _subl _subliminal \ + _supervisorctl _svm _tarsnap _teamocil _thor \ + _tmuxinator _tmuxp _tox _trash-empty _trash-list \ + _trash-put _trash-restore _udisksctl _ufw _vagrant \ + _virtualbox _vnstat _wemux _wg-quick _xinput \ + _xsel _yaourt _yarn _zcash-cli _extract +autoload -Uz +X _call_program + +typeset -gUa _comp_assocs +_comp_assocs=( '' ) diff --git a/zsh/zshrc b/config/zsh/.zshrc similarity index 88% rename from zsh/zshrc rename to config/zsh/.zshrc index c9653fbb..86b164f8 100644 --- a/zsh/zshrc +++ b/config/zsh/.zshrc @@ -8,41 +8,42 @@ source ~/.profile # Created by kuro for 5.8 source <(antibody init) -HISTFILE=~/.zsh_history -HISTSIZE=100000 -SAVEHIST=100000 -setopt appendhistory #Autocompletion autoload -Uz compinit compinit +compinit -d $XDG_CACHE_HOME/zsh/zcompdump-$ZSH_VERSION + +HISTFILE="$XDG_DATA_HOME"/zsh/history +HISTSIZE=100000 +SAVEHIST=100000 +setopt appendhistory + antibody bundle < ~/.config/antibody/zsh_plugins.txt [[ ! -f ~/.config/antibody/p10k.zsh ]] || source ~/.config/antibody/p10k.zsh -fpath=(~/.completions $fpath) -autoload -Uz compinit && compinit +fpath=("$XDG_CONFIG_HOME"/zsh/completions $fpath) +autoload -Uz compinit +compinit -source ~/.aliases -if [ -f ~/.local_aliases ]; then - source ~/.local_aliases +source "$XDG_CONFIG_HOME"/zsh/aliases + +if [ -f "$XDG_CONFIG_HOME"/zsh/local_aliases ]; then + source "$XDG_CONFIG_HOME"/zsh/local_aliases fi -if [ -f ~/.zsh_secret ]; then - source ~/.zsh_secret +if [ -f "$XDG_CONFIG_HOME"/zsh/secret ]; then + source "$XDG_CONFIG_HOME"/zsh/secret fi -source ~/.cmds +source "$XDG_CONFIG_HOME"/zsh/cmds -[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh +[ -f "$XDG_CONFIG_HOME"/zsh/fzf.zsh ] && source "$XDG_CONFIG_HOME"/zsh/fzf.zsh export ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=241,bold' export KEYTIMEOUT=5 -# added by travis gem -[ ! -s /home/yigit/.travis/travis.sh ] || source /home/yigit/.travis/travis.sh - - function x11-clip-wrap-widgets() { local copy_or_paste=$1 shift @@ -92,10 +93,6 @@ local paste_widgets=( x11-clip-wrap-widgets copy $copy_widgets x11-clip-wrap-widgets paste $paste_widgets - -autoload -U +X bashcompinit && bashcompinit -complete -o nospace -C /usr/bin/mc mc - # create a zkbd compatible hash; # to add other keys to this hash, see: man 5 terminfo typeset -g -A key diff --git a/zsh/aliases b/config/zsh/aliases similarity index 83% rename from zsh/aliases rename to config/zsh/aliases index 6864995a..fcd957fb 100755 --- a/zsh/aliases +++ b/config/zsh/aliases @@ -17,7 +17,7 @@ alias yay="yay --sudoloop" alias lf=lf-ueberzug # Suffix aliases -alias -g G=" | rg" +alias -g G=" | rg" alias gshh="gcloud cloud-shell ssh --authorize-session" # Git @@ -28,3 +28,8 @@ alias gcm="git commit -m" alias gp="git push" alias gpall="git remote | xargs -I R git push R" alias gpl="git pull" + +# Homedir Cleanup +alias wget="wget --hsts-file=\"$XDG_CACHE_HOME/wget-hsts\"" +alias yarn="yarn --use-yarnrc $XDG_CONFIG_HOME/yarn/config" + diff --git a/zsh/cmds b/config/zsh/cmds similarity index 100% rename from zsh/cmds rename to config/zsh/cmds diff --git a/zsh/completions/_gcloud b/config/zsh/completions/_gcloud similarity index 100% rename from zsh/completions/_gcloud rename to config/zsh/completions/_gcloud diff --git a/zsh/completions/_git b/config/zsh/completions/_git similarity index 100% rename from zsh/completions/_git rename to config/zsh/completions/_git diff --git a/zsh/completions/_spt b/config/zsh/completions/_spt similarity index 100% rename from zsh/completions/_spt rename to config/zsh/completions/_spt diff --git a/zsh/completions/_tmuxinator b/config/zsh/completions/_tmuxinator similarity index 100% rename from zsh/completions/_tmuxinator rename to config/zsh/completions/_tmuxinator diff --git a/zsh/completions/git-completion.bash b/config/zsh/completions/git-completion.bash similarity index 100% rename from zsh/completions/git-completion.bash rename to config/zsh/completions/git-completion.bash diff --git a/misc/fzf.zsh b/config/zsh/fzf.zsh similarity index 100% rename from misc/fzf.zsh rename to config/zsh/fzf.zsh diff --git a/zsh/profile b/config/zsh/profile similarity index 78% rename from zsh/profile rename to config/zsh/profile index 81d43fdb..915eab2f 100755 --- a/zsh/profile +++ b/config/zsh/profile @@ -15,4 +15,4 @@ export EDITOR=vim export PATH=$PATH:$ANDROID_HOME/tools export PATH=$PATH:$ANDROID_HOME/platform-tools export PATH=$PATH:$FLUTTER_HOME/bin -export PATH="$PATH:/home/yigit/.scripts:/home/yigit/.gem/ruby/2.7.0/bin:$GOPATH/bin:$GOPATH/binexport:/home/yigit/.local/bin" +export PATH="$PATH:/home/yigit/.local/share/scripts:/home/yigit/.gem/ruby/2.7.0/bin:$GOPATH/bin:$GOPATH/binexport:/home/yigit/.local/bin" diff --git a/config/zsh/secret.secret b/config/zsh/secret.secret new file mode 100644 index 00000000..ab0e614a Binary files /dev/null and b/config/zsh/secret.secret differ diff --git a/fonts/.gitignore b/fonts/.gitignore deleted file mode 100644 index 70994af4..00000000 --- a/fonts/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -*.otf -*.ttf diff --git a/install.sh b/install.sh index 86a969a5..10c80011 100755 --- a/install.sh +++ b/install.sh @@ -2,8 +2,14 @@ username=$(whoami) -# Configuring for your username +mvie(){ + if [ -e "$1" ];then + rm -rf "$2" + mv "$1" "$2" + fi +} +# Configuring for your username if [ ! "$username" = "yigit" ]; then find /home/$username/.dotfiles -type f | xargs sed -i "s/\/home\/yigit/\/home\/$username/g" fi @@ -16,169 +22,103 @@ yay -S --noconfirm --needed $(cat ~/.dotfiles/arch-setup/AUR.txt) # Initial cleanup echo "Backing up your previous dotfiles to ~/.dotfiles_backup" -mkdir -p ~/.local/share mkdir -p ~/.dotfiles_backup + +mvie ~/.profile ~/.dotfiles_backup/profile +ln -s ~/.dotfiles/profile ~/.profile + +# Config mkdir -p ~/.config -mkdir -p ~/.dotfiles_backup/.config - -rsync --remove-source-files -avzh --ignore-errors \ - ~/.completions \ - ~/.aliases \ - ~/.cmds \ - ~/.zshrc \ - ~/.Xresources \ - ~/.xmodmap \ - ~/.xinitrc \ - ~/.tmux.conf \ - ~/.surf \ - ~/.scripts \ - ~/.keyboard \ - ~/.fzf.zsh \ - ~/.themes \ - ~/.vim \ - ~/.vimrc \ - ~/.dotfiles_backup 2> /dev/null > /dev/null - -rsync --remove-source-files -avzh --ignore-errors \ - ~/.config/htop \ - ~/.config/.profile \ - ~/.config/.nvim \ - ~/.config/systemd \ - ~/.config/termite \ - ~/.config/zathura \ - ~/.config/dunst \ - ~/.config/gtk-4.0 \ - ~/.config/gtk-3.0 \ - ~/.config/gtk-2.0 \ - ~/.config/antibody \ - ~/.config/suckless \ - ~/.config/neofetch \ - ~/.dotfiles_backup/.config 2> /dev/null > /dev/null - -rm -rf \ - ~/.completions \ - ~/.aliases \ - ~/.cmds \ - ~/.zshrc \ - ~/.Xresources \ - ~/.xmodmap \ - ~/.xinitrc \ - ~/.tmux.conf \ - ~/.surf \ - ~/.scripts \ - ~/.keyboard \ - ~/.fzf.zsh \ - ~/.themes \ - ~/.vim \ - ~/.vimrc \ - ~/.config/htop \ - ~/.config/.profile \ - ~/.config/systemd \ - ~/.config/termite \ - ~/.config/zathura \ - ~/.config/neofetch \ - ~/.config/dunst \ - ~/.config/gtk-4.0 \ - ~/.config/gtk-3.0 \ - ~/.config/gtk-2.0 \ - ~/.config/antibody \ - ~/.config/suckless - -# Vim -ln -s ~/.dotfiles/vim/vimrc ~/.vimrc -ln -s ~/.dotfiles/vim/vim ~/.vim -ln -s ~/.dotfiles/vim/nvim ~/.config/nvim - -# GTK -ln -s ~/.dotfiles/theming/themes ~/.themes -ln -s ~/.dotfiles/theming/qt5ct ~/.config/qt5ct -ln -s ~/.dotfiles/theming/gtkrc-2.0 ~/.gtkrc-2.0 -ln -s ~/.dotfiles/theming/gtk-3.0 ~/.config/gtk-2.0 -ln -s ~/.dotfiles/theming/gtk-3.0 ~/.config/gtk-3.0 -ln -s ~/.dotfiles/theming/gtk-4.0 ~/.config/gtk-4.0 -~/.dotfiles/theming/Tela-icon-theme/install.sh - -# Miscellaneous -ln -s ~/.dotfiles/misc/dunst ~/.config/dunst -ln -s ~/.dotfiles/misc/zathura ~/.config/zathura -ln -s ~/.dotfiles/misc/termite/ ~/.config/termite -ln -s ~/.dotfiles/misc/vdirsyncer ~/.vdirsyncer -ln -s ~/.dotfiles/misc/systemd ~/.config/systemd -ln -s ~/.dotfiles/misc/ranger ~/.config/ranger -ln -s ~/.dotfiles/misc/lf ~/.config/lf -ln -s ~/.dotfiles/misc/neofetch ~/.config/neofetch -ln -s ~/.dotfiles/misc/profile ~/.config/.profile -ln -s ~/.dotfiles/misc/htop ~/.config/htop -ln -s ~/.dotfiles/misc/.fzf.zsh ~/.fzf.zsh -ln -s ~/.dotfiles/misc/keyboard ~/.keyboard -ln -s ~/.dotfiles/misc/mimeapps.list ~/.config/mimeapps.list -ln -s ~/.dotfiles/misc/wakatime.cfg ~/.wakatime.cfg -ln -s ~/.dotfiles/misc/BetterDiscord ~/.config/BetterDiscord -ln -s ~/.dotfiles/misc/nextcloud ~/.nextcloud -ln -s ~/.dotfiles/misc/calcurse ~/.calcurse -mkdir -p ~/.config/spotifyd -ln -s ~/.dotfiles/misc/spotifyd.conf ~/.config/spotifyd/spotifyd.conf -ln -s ~/.dotfiles/fonts ~/.fonts +mkdir -p ~/.dotfiles_backup/config +for d in ~/.dotfiles/config/* ; do + filename=$(echo "$d" | rev | cut -d"/" -f 1 | rev) + echo $filename + mvie ~/.config/$filename ~/.dotfiles_backup/config + ln -s $d ~/.config/ +done -prev=$(pwd) +# Config +mkdir -p ~/.local/share +mkdir -p ~/.dotfiles_backup/local/share +mvie ~/.themes ~/.dotfiles_backup/themes +ln -s ~/.dotfiles/local/share/themes ~/.themes +mvie ~/.icons ~/.dotfiles_backup/icons +ln -s ~/.dotfiles/local/share/icons ~/.icons +~/.dotfiles/local/share/icons/Tela-Icons/install.sh + +for d in ~/.dotfiles/local/share/* ; do + filename=$(echo "$d" | rev | cut -d"/" -f 1 | rev) + echo $filename + mvie ~/.local/share/$filename ~/.dotfiles_backup/local/share + ln -s $d ~/.local/share +done + +mvie ~/.local/backgrounds ~/.dotfiles_backup/local/backgrounds +ln -s ~/.dotfiles/local/backgrounds ~/.local/backgrounds -cd ~/.dotfiles/fonts +prev=$(pwd) +cd ~/.local/share/fonts wget https://minio.yigitcolakoglu.com/dotfiles/Caskaydia%20Cove%20Regular%20Nerd%20Font%20Complete.otf > /dev/null 2> /dev/null wget https://minio.yigitcolakoglu.com/dotfiles/Caskaydia%20Cove%20Regular%20Nerd%20Font%20Complete%20Mono.otf > /dev/null 2> /dev/null wget https://minio.yigitcolakoglu.com/dotfiles/Caskaydia%20Cove%20Bold%20Nerd%20Font%20Complete.otf > /dev/null 2> /dev/null wget https://minio.yigitcolakoglu.com/dotfiles/Caskaydia%20Cove%20Bold%20Nerd%20Font%20Complete%20Mono.otf > /dev/null 2> /dev/null -cd ~/.dotfiles/backgrounds +cd ~/.local/backgrounds wget https://minio.yigitcolakoglu.com/dotfiles/lock.jpg > /dev/null 2> /dev/null wget https://minio.yigitcolakoglu.com/dotfiles/wallpaper-mountain.jpg > /dev/null 2> /dev/null wget https://minio.yigitcolakoglu.com/dotfiles/wallpaper-sea.jpg > /dev/null 2> /dev/null wget https://minio.yigitcolakoglu.com/dotfiles/wallpaper-shack.jpg > /dev/null 2> /dev/null cd $prev + fc-cache # Applications -for d in ~/.dotfiles/applications/* ; do +mkdir -p ~/.local/share/applications +mkdir -p ~/.dotfiles_backup/local/share/applications +for d in ~/.dotfiles/local/applications/* ; do + filename=$(echo "$d" | rev | cut -d"/" -f 1 | rev) + mvie ~/.local/share/applications/$filename ~/.dotfiles_backup/local/share/applications ln -s $d ~/.local/share/applications/ done -# Scripts -ln -s ~/.dotfiles/scripts ~/.scripts # Suckless -ln -s ~/.dotfiles/suckless ~/.config/suckless -ln -s ~/.dotfiles/suckless/dot_surf ~/.surf yay --noconfirm -S xsel clipnotify yay --noconfirm -S ttf-symbola (cd ~/.dotfiles/suckless; ~/.dotfiles/suckless/build.sh) -# Tmux -ln -s ~/.dotfiles/tmux/tmux.conf ~/.tmux.conf - -# Xorg -ln -s ~/.dotfiles/xorg/xinitrc ~/.xinitrc -ln -s ~/.dotfiles/xorg/xmodmap ~/.xmodmap -ln -s ~/.dotfiles/xorg/Xresources ~/.Xresources - -# Zsh -ln -s ~/.dotfiles/zsh/antibody ~/.config/antibody -ln -s ~/.dotfiles/zsh/zshrc ~/.zshrc -ln -s ~/.dotfiles/zsh/secret ~/.zsh_secret -ln -s ~/.dotfiles/zsh/cmds ~/.cmds -ln -s ~/.dotfiles/zsh/aliases ~/.aliases -ln -s ~/.dotfiles/zsh/completions ~/.completions -ln -s ~/.dotfiles/zsh/profile ~/.profile - -# Mail -ln -s ~/.dotfiles/mail/mutt ~/.config/mutt -ln -s ~/.dotfiles/mail/msmtp ~/.config/msmtp -ln -s ~/.dotfiles/mail/mbsyncrc ~/.mbsyncrc if [ ! -f "/var/spool/cron$username" ]; then sudo touch "/var/spool/cron/$username" sudo chown yigit:yigit "/var/spool/cron/$username" sudo chmod 755 "/var/spool/cron/$username" fi -echo "COMMAND brave" > ~/.urlview -echo "*/8 * * * * /home/$username/.scripts/mailsync" >> /var/spool/cron/yigit -echo "*/15 * * * * /home/$username/.scripts/nextcloud-sync" >> /var/spool/cron/yigit + +# Create necessary folders + +source ~/.profile +mkdir -p "$CARGO_HOME" +mkdir -p "$GOPATH" +mkdir -p "$ANDROID_HOME" +mkdir -p "$FLUTTER_HOME" +mkdir -p "$LEIN_HOME" +mkdir -p "$NPM_CONFIG_USERCONFIG" +mkdir -p "$NVM_DIR" +mkdir -p "$GNUPGHOME" +mkdir -p "$MBSYNCRC" +mkdir -p "$VIMINIT" +mkdir -p "$MYSQL_HISTFILE" +mkdir -p "$TASKDATA" +mkdir -p "$TASKRC" +mkdir -p "$WEECHAT_HOME" +mkdir -p "$LESSKEY" +mkdir -p "$LESSHISTFILE" +mkdir -p "$NOTMUCH_CONFIG" +mkdir -p "$NMBGIT" +mkdir -p "$JUPYTER_CONFIG_DIR" +mkdir -p "$PYLINTHOME" +touch "$_Z_DATA" + +echo "*/8 * * * * /home/$username/.local/share/scripts/mailsync" >> /var/spool/cron/yigit +echo "*/15 * * * * /home/$username/.local/share/scripts/scripts/nextcloud-sync" >> /var/spool/cron/yigit echo "*/30 * * * * calcurse-caldav" >> /var/spool/cron/yigit echo "*/30 * * * * vdirsyncer sync" >> /var/spool/cron/yigit @@ -206,7 +146,6 @@ cd $prev # Install vim and tmux plugins mkdir -p ~/.tmux/plugins vim -c ':PlugInstall' -betterlockscreen -u ~/.dotfiles/backgrounds/lock.jpg # Install mconnect git clone https://github.com/theFr1nge/mconnect.git /tmp/mconnect diff --git a/applications/neomutt.desktop b/local/applications/neomutt.desktop similarity index 100% rename from applications/neomutt.desktop rename to local/applications/neomutt.desktop diff --git a/applications/ranger.desktop b/local/applications/ranger.desktop similarity index 100% rename from applications/ranger.desktop rename to local/applications/ranger.desktop diff --git a/applications/st.desktop b/local/applications/st.desktop similarity index 100% rename from applications/st.desktop rename to local/applications/st.desktop diff --git a/applications/vim.desktop b/local/applications/vim.desktop similarity index 100% rename from applications/vim.desktop rename to local/applications/vim.desktop diff --git a/backgrounds/.gitignore b/local/backgrounds/.gitignore similarity index 100% rename from backgrounds/.gitignore rename to local/backgrounds/.gitignore diff --git a/local/share/fonts/.gitignore b/local/share/fonts/.gitignore new file mode 100644 index 00000000..e4829d22 --- /dev/null +++ b/local/share/fonts/.gitignore @@ -0,0 +1,5 @@ +*.otf +*.ttf + +*.otf* +*.ttf* diff --git a/local/share/icons/.gitignore b/local/share/icons/.gitignore new file mode 100644 index 00000000..b3a75a4c --- /dev/null +++ b/local/share/icons/.gitignore @@ -0,0 +1,2 @@ +Tela +Tela-dark diff --git a/theming/Tela-icon-theme b/local/share/icons/Tela-Icons similarity index 100% rename from theming/Tela-icon-theme rename to local/share/icons/Tela-Icons diff --git a/scripts/autotrim b/local/share/scripts/autotrim similarity index 100% rename from scripts/autotrim rename to local/share/scripts/autotrim diff --git a/scripts/brave-start b/local/share/scripts/brave-start similarity index 100% rename from scripts/brave-start rename to local/share/scripts/brave-start diff --git a/scripts/convertToHtmlMultipart b/local/share/scripts/convertToHtmlMultipart similarity index 100% rename from scripts/convertToHtmlMultipart rename to local/share/scripts/convertToHtmlMultipart diff --git a/scripts/daily-update b/local/share/scripts/daily-update similarity index 64% rename from scripts/daily-update rename to local/share/scripts/daily-update index a2afe3c8..5488fd52 100755 --- a/scripts/daily-update +++ b/local/share/scripts/daily-update @@ -9,22 +9,22 @@ cached=$(cat /tmp/day_cache) if [ $hour -le $morning ]; then if [ ! "$cached" = "night" ]; then - feh --bg-fill /home/yigit/.dotfiles/backgrounds/wallpaper-shack.jpg + feh --bg-fill /home/yigit/.local/backgrounds/wallpaper-shack.jpg echo "night" > /tmp/day_cache fi elif [ $night -le $hour ]; then if [ ! "$cached" = "night" ]; then - feh --bg-fill /home/yigit/.dotfiles/backgrounds/wallpaper-shack.jpg + feh --bg-fill /home/yigit/.local/backgrounds/wallpaper-shack.jpg echo "night" > /tmp/day_cache fi elif [ $afternoon -le $hour ]; then if [ ! "$cached" = "afternoon" ]; then - feh --bg-fill /home/yigit/.dotfiles/backgrounds/wallpaper-sea.jpg + feh --bg-fill /home/yigit/.local/backgrounds/wallpaper-sea.jpg echo "afternoon" > /tmp/day_cache fi else if [ ! "$cached" = "morning" ]; then - feh --bg-fill /home/yigit/.dotfiles/backgrounds/wallpaper-mountain.jpg + feh --bg-fill /home/yigit/.local/backgrounds/wallpaper-mountain.jpg echo "morning" > /tmp/day_cache fi fi diff --git a/scripts/devmon b/local/share/scripts/devmon similarity index 100% rename from scripts/devmon rename to local/share/scripts/devmon diff --git a/scripts/dmenu-bluetooth b/local/share/scripts/dmenu-bluetooth similarity index 100% rename from scripts/dmenu-bluetooth rename to local/share/scripts/dmenu-bluetooth diff --git a/scripts/dmenu-killall b/local/share/scripts/dmenu-killall similarity index 100% rename from scripts/dmenu-killall rename to local/share/scripts/dmenu-killall diff --git a/scripts/dmenu-logout b/local/share/scripts/dmenu-logout similarity index 100% rename from scripts/dmenu-logout rename to local/share/scripts/dmenu-logout diff --git a/scripts/dmenu-mconnect b/local/share/scripts/dmenu-mconnect similarity index 100% rename from scripts/dmenu-mconnect rename to local/share/scripts/dmenu-mconnect diff --git a/scripts/dmenu-refresh b/local/share/scripts/dmenu-refresh similarity index 90% rename from scripts/dmenu-refresh rename to local/share/scripts/dmenu-refresh index a0f86751..50b5fb1a 100755 --- a/scripts/dmenu-refresh +++ b/local/share/scripts/dmenu-refresh @@ -47,7 +47,7 @@ case $selection in ;; devmon) pkill -f devmon - ~/.scripts/devmon --exec-on-drive "/sbin/notify-send '禍 drive mounted' '%l (%f) at %d '" \ + ~/.local/share/scripts/devmon --exec-on-drive "/sbin/notify-send '禍 drive mounted' '%l (%f) at %d '" \ --exec-on-remove "/sbin/notify-send '禍 drive removed' '%l (%f) from %d '" \ --exec-on-unmount "/sbin/notify-send '禍 drive unmounted' '%l (%f) from %d '" \ --no-unmount --no-gui & diff --git a/scripts/dmenu-udevil b/local/share/scripts/dmenu-udevil similarity index 100% rename from scripts/dmenu-udevil rename to local/share/scripts/dmenu-udevil diff --git a/scripts/dmenu-wallabag b/local/share/scripts/dmenu-wallabag similarity index 100% rename from scripts/dmenu-wallabag rename to local/share/scripts/dmenu-wallabag diff --git a/scripts/dmenu_run_history b/local/share/scripts/dmenu_run_history similarity index 100% rename from scripts/dmenu_run_history rename to local/share/scripts/dmenu_run_history diff --git a/scripts/dmenu_surf b/local/share/scripts/dmenu_surf similarity index 100% rename from scripts/dmenu_surf rename to local/share/scripts/dmenu_surf diff --git a/scripts/dunst_toggle.sh b/local/share/scripts/dunst_toggle.sh similarity index 84% rename from scripts/dunst_toggle.sh rename to local/share/scripts/dunst_toggle.sh index bd648443..c669bf00 100755 --- a/scripts/dunst_toggle.sh +++ b/local/share/scripts/dunst_toggle.sh @@ -1,4 +1,5 @@ #!/bin/zsh +# getargs() { while getopts "set" opt do @@ -10,18 +11,16 @@ getargs() { done } start_dnd() { - echo "off" > ~/.cache/dunst dunstctl set-paused true } end_dnd() { - echo "on" > ~/.cache/dunst dunstctl set-paused false notify-send "Do Not Disturb" "Do Not Disturb mode ended. Notifications will be shown."; } toggle_dnd() { - if [ $(cat ~/.cache/dunst) = "on" ]; then + if [ $(dunstctl is-paused) = "false" ]; then start_dnd else end_dnd diff --git a/scripts/edit_screen.sh b/local/share/scripts/edit_screen.sh similarity index 100% rename from scripts/edit_screen.sh rename to local/share/scripts/edit_screen.sh diff --git a/scripts/fastfetch b/local/share/scripts/fastfetch similarity index 100% rename from scripts/fastfetch rename to local/share/scripts/fastfetch diff --git a/scripts/gen_tracking_url b/local/share/scripts/gen_tracking_url similarity index 100% rename from scripts/gen_tracking_url rename to local/share/scripts/gen_tracking_url diff --git a/scripts/kbmap_toggle b/local/share/scripts/kbmap_toggle similarity index 100% rename from scripts/kbmap_toggle rename to local/share/scripts/kbmap_toggle diff --git a/misc/keyboard b/local/share/scripts/keyboard similarity index 100% rename from misc/keyboard rename to local/share/scripts/keyboard diff --git a/scripts/layoutmenu.sh b/local/share/scripts/layoutmenu.sh similarity index 100% rename from scripts/layoutmenu.sh rename to local/share/scripts/layoutmenu.sh diff --git a/scripts/lf-ueberzug b/local/share/scripts/lf-ueberzug similarity index 100% rename from scripts/lf-ueberzug rename to local/share/scripts/lf-ueberzug diff --git a/scripts/lf-ueberzug-cleaner b/local/share/scripts/lf-ueberzug-cleaner similarity index 100% rename from scripts/lf-ueberzug-cleaner rename to local/share/scripts/lf-ueberzug-cleaner diff --git a/scripts/lf-ueberzug-previewer b/local/share/scripts/lf-ueberzug-previewer similarity index 96% rename from scripts/lf-ueberzug-previewer rename to local/share/scripts/lf-ueberzug-previewer index 706f7635..15687c96 100755 --- a/scripts/lf-ueberzug-previewer +++ b/local/share/scripts/lf-ueberzug-previewer @@ -10,7 +10,7 @@ preview() { EOF } -set -C -f -u +set -C -f -u IFS=$'\n' lf-ueberzug-cleaner # clean active preview @@ -59,7 +59,7 @@ case "$(basename "$file" | tr '[A-Z]' '[a-z]')" in exit 1;; # Continue with next handler on failure *.avi|*.mp4|*.mkv) thumbnail="$LF_UEBERZUG_TEMPDIR/thumbnail.png" - ffmpeg -y -i "$file" -vframes 1 "$thumbnail" + ffmpegthumbnailer -i "$file" -o "$thumbnail" -s 0 preview "$thumbnail" "$@" exit 127;; *.pdf) @@ -100,14 +100,14 @@ case "$MIMETYPE" in highlight_format='ansi' fi highlight --replace-tabs="$HIGHLIGHT_TABWIDTH" --out-format="$highlight_format" --style="$HIGHLIGHT_STYLE" --force -- "$file" - # pygmentize -f "${pygmentize_format}" -O "style=${PYGMENTIZE_STYLE}" -- "$file" + # pygmentize -f "${pygmentize_format}" -O "style=${PYGMENTIZE_STYLE}" -- "$file" exit 127;; # Image image/*) # Preview as text conversion # img2txt --gamma=0.6 -- "$file" && exit 1 - exiftool "$file" + exiftool "$file" exit 1;; # Video and audio diff --git a/local/share/scripts/lock b/local/share/scripts/lock new file mode 100755 index 00000000..1bbb09ff --- /dev/null +++ b/local/share/scripts/lock @@ -0,0 +1,8 @@ +#!/bin/bash +curl 'http://yeetclock/setcolor?R=2000&G=10&B=000&O=0' & +/home/yigit/.local/share/scripts/pacontrol.sh open-mute +/home/yigit/.local/share/scripts/dunst_toggle.sh -s +slock +/home/yigit/.local/share/scripts/dunst_toggle.sh -e +/home/yigit/.local/share/scripts/pacontrol.sh toggle-mute +curl 'http://yeetclock/setcolor?R=136&G=192&B=208' & diff --git a/scripts/mailsync b/local/share/scripts/mailsync similarity index 100% rename from scripts/mailsync rename to local/share/scripts/mailsync diff --git a/scripts/menu-surfraw b/local/share/scripts/menu-surfraw similarity index 100% rename from scripts/menu-surfraw rename to local/share/scripts/menu-surfraw diff --git a/scripts/networkmanager_dmenu b/local/share/scripts/networkmanager_dmenu similarity index 100% rename from scripts/networkmanager_dmenu rename to local/share/scripts/networkmanager_dmenu diff --git a/scripts/newmail.sh b/local/share/scripts/newmail.sh similarity index 100% rename from scripts/newmail.sh rename to local/share/scripts/newmail.sh diff --git a/scripts/nextcloud-sync b/local/share/scripts/nextcloud-sync similarity index 100% rename from scripts/nextcloud-sync rename to local/share/scripts/nextcloud-sync diff --git a/scripts/nm_sendmail.sh b/local/share/scripts/nm_sendmail.sh similarity index 79% rename from scripts/nm_sendmail.sh rename to local/share/scripts/nm_sendmail.sh index 2dddabe9..fcd648bc 100755 --- a/scripts/nm_sendmail.sh +++ b/local/share/scripts/nm_sendmail.sh @@ -4,7 +4,7 @@ m="$(cat -)" m64="$(echo -e "$m" | base64)" echo "$m64" > /tmp/test2 -tracking_url=$(/home/yigit/.scripts/gen_tracking_url "$m64" 2> /tmp/testerr) +tracking_url=$(/home/yigit/.local/share/scripts/gen_tracking_url "$m64" 2> /tmp/testerr) echo $tracking_url > /tmp/test3 # Look at the first argument, # Use it to determine the account to use @@ -22,7 +22,7 @@ echo "$@" echo "$message" | cleanHeaders > /tmp/headers echo "msmtp -a $account $@" echo "$message" | sed '/^$/q' | grep -q -i 'markdown: true' \ - && msg=$(echo "$message \n$tracking_url" | cleanHeaders | /home/yigit/.scripts/convertToHtmlMultipart && echo 1 >> /tmp/state) || msg=$(echo "$message" | cleanHeaders) + && msg=$(echo "$message \n$tracking_url" | cleanHeaders | /home/yigit/.local/share/scripts/convertToHtmlMultipart && echo 1 >> /tmp/state) || msg=$(echo "$message" | cleanHeaders) echo "$msg" > /tmp/test echo "$msg" | notmuch insert --folder="$account/sent" +sent -inbox echo "$msg" | msmtp -a $account $@ diff --git a/local/share/scripts/open_url b/local/share/scripts/open_url new file mode 100755 index 00000000..e69de29b diff --git a/scripts/pacontrol.sh b/local/share/scripts/pacontrol.sh similarity index 100% rename from scripts/pacontrol.sh rename to local/share/scripts/pacontrol.sh diff --git a/scripts/password_manager b/local/share/scripts/password_manager similarity index 100% rename from scripts/password_manager rename to local/share/scripts/password_manager diff --git a/scripts/purge_hist b/local/share/scripts/purge_hist similarity index 100% rename from scripts/purge_hist rename to local/share/scripts/purge_hist diff --git a/scripts/readability b/local/share/scripts/readability similarity index 100% rename from scripts/readability rename to local/share/scripts/readability diff --git a/scripts/screensaver_toggle b/local/share/scripts/screensaver_toggle similarity index 100% rename from scripts/screensaver_toggle rename to local/share/scripts/screensaver_toggle diff --git a/scripts/st-copyout b/local/share/scripts/st-copyout similarity index 100% rename from scripts/st-copyout rename to local/share/scripts/st-copyout diff --git a/scripts/st-urlhandler b/local/share/scripts/st-urlhandler similarity index 100% rename from scripts/st-urlhandler rename to local/share/scripts/st-urlhandler diff --git a/scripts/st_tmux b/local/share/scripts/st_tmux similarity index 100% rename from scripts/st_tmux rename to local/share/scripts/st_tmux diff --git a/scripts/start-spotifyd b/local/share/scripts/start-spotifyd similarity index 100% rename from scripts/start-spotifyd rename to local/share/scripts/start-spotifyd diff --git a/scripts/status-bar/arch b/local/share/scripts/status-bar/arch similarity index 100% rename from scripts/status-bar/arch rename to local/share/scripts/status-bar/arch diff --git a/scripts/status-bar/battery b/local/share/scripts/status-bar/battery similarity index 100% rename from scripts/status-bar/battery rename to local/share/scripts/status-bar/battery diff --git a/scripts/status-bar/bluetooth b/local/share/scripts/status-bar/bluetooth similarity index 89% rename from scripts/status-bar/bluetooth rename to local/share/scripts/status-bar/bluetooth index 7659b045..2518efe0 100755 --- a/scripts/status-bar/bluetooth +++ b/local/share/scripts/status-bar/bluetooth @@ -16,5 +16,5 @@ else fi case $BLOCK_BUTTON in - 1) ~/.scripts/dmenu-bluetooth;; + 1) ~/.local/share/scripts/dmenu-bluetooth;; esac diff --git a/scripts/status-bar/clipboard b/local/share/scripts/status-bar/clipboard similarity index 100% rename from scripts/status-bar/clipboard rename to local/share/scripts/status-bar/clipboard diff --git a/scripts/status-bar/cpu-temp b/local/share/scripts/status-bar/cpu-temp similarity index 100% rename from scripts/status-bar/cpu-temp rename to local/share/scripts/status-bar/cpu-temp diff --git a/scripts/status-bar/date b/local/share/scripts/status-bar/date similarity index 100% rename from scripts/status-bar/date rename to local/share/scripts/status-bar/date diff --git a/local/share/scripts/status-bar/dunst b/local/share/scripts/status-bar/dunst new file mode 100755 index 00000000..a6e056ba --- /dev/null +++ b/local/share/scripts/status-bar/dunst @@ -0,0 +1,13 @@ +#!/bin/bash + +stats=$(dunstctl is-paused) + +if [ "$stats" = "true" ]; then + echo "^c#88c0d0^ ^d^" +else + echo "^c#88c0d0^ ^d^" +fi + +case $BLOCK_BUTTON in + 1) ~/.local/share/scripts/dunst_toggle.sh -t;; +esac diff --git a/scripts/status-bar/keyboard b/local/share/scripts/status-bar/keyboard similarity index 70% rename from scripts/status-bar/keyboard rename to local/share/scripts/status-bar/keyboard index 6040fa20..c49cbde5 100755 --- a/scripts/status-bar/keyboard +++ b/local/share/scripts/status-bar/keyboard @@ -6,5 +6,5 @@ echo -n "^c#a3be8c^ ^d^$layout" case $BLOCK_BUTTON in - 1) ~/.scripts/kbmap_toggle;; + 1) ~/.local/share/scripts/kbmap_toggle;; esac diff --git a/scripts/status-bar/mail b/local/share/scripts/status-bar/mail similarity index 82% rename from scripts/status-bar/mail rename to local/share/scripts/status-bar/mail index ef009285..6cc62e55 100755 --- a/scripts/status-bar/mail +++ b/local/share/scripts/status-bar/mail @@ -7,5 +7,5 @@ echo -n "^c#a3be8c^ ^d^ $msync ^c#81a1c1^ ^d^ $mcount" case $BLOCK_BUTTON in 1) setsid -f st -c center -n center -e neomutt;; - 1) ~/.scripts/mailsync;; + 1) ~/.local/share/scripts/mailsync;; esac diff --git a/scripts/status-bar/mconnect b/local/share/scripts/status-bar/mconnect similarity index 100% rename from scripts/status-bar/mconnect rename to local/share/scripts/status-bar/mconnect diff --git a/scripts/status-bar/memory b/local/share/scripts/status-bar/memory similarity index 100% rename from scripts/status-bar/memory rename to local/share/scripts/status-bar/memory diff --git a/scripts/status-bar/network b/local/share/scripts/status-bar/network similarity index 90% rename from scripts/status-bar/network rename to local/share/scripts/status-bar/network index fc0d53f4..d75ccd4a 100755 --- a/scripts/status-bar/network +++ b/local/share/scripts/status-bar/network @@ -18,5 +18,5 @@ fi echo -n $icon case $BLOCK_BUTTON in - 1) ~/.scripts/networkmanager_dmenu;; + 1) ~/.local/share/scripts/networkmanager_dmenu;; esac diff --git a/scripts/status-bar/screensaver b/local/share/scripts/status-bar/screensaver similarity index 73% rename from scripts/status-bar/screensaver rename to local/share/scripts/status-bar/screensaver index 7a01bcd1..77316329 100755 --- a/scripts/status-bar/screensaver +++ b/local/share/scripts/status-bar/screensaver @@ -10,5 +10,5 @@ fi case $BLOCK_BUTTON in - 1) ~/.scripts/screensaver_toggle -t;; + 1) ~/.local/share/scripts/screensaver_toggle -t;; esac diff --git a/scripts/status-bar/time b/local/share/scripts/status-bar/time similarity index 64% rename from scripts/status-bar/time rename to local/share/scripts/status-bar/time index c85fa12b..8702d9fc 100755 --- a/scripts/status-bar/time +++ b/local/share/scripts/status-bar/time @@ -8,4 +8,4 @@ cmd=$(date +"%R") #echo "$ifg $icon $tfg$cmd" echo -n "^c#0f111a^^b#bf616a^ $icon $cmd ^d^" -~/.scripts/daily-update & # update wallpaper as well +~/.local/share/scripts/daily-update & # update wallpaper as well diff --git a/scripts/status-bar/volume b/local/share/scripts/status-bar/volume similarity index 100% rename from scripts/status-bar/volume rename to local/share/scripts/status-bar/volume diff --git a/scripts/status-bar/weather b/local/share/scripts/status-bar/weather similarity index 100% rename from scripts/status-bar/weather rename to local/share/scripts/status-bar/weather diff --git a/scripts/stop-spotifyd b/local/share/scripts/stop-spotifyd similarity index 100% rename from scripts/stop-spotifyd rename to local/share/scripts/stop-spotifyd diff --git a/scripts/surf_linkselect.sh b/local/share/scripts/surf_linkselect.sh similarity index 100% rename from scripts/surf_linkselect.sh rename to local/share/scripts/surf_linkselect.sh diff --git a/scripts/tabbed_surf b/local/share/scripts/tabbed_surf similarity index 100% rename from scripts/tabbed_surf rename to local/share/scripts/tabbed_surf diff --git a/scripts/tedportal b/local/share/scripts/tedportal similarity index 100% rename from scripts/tedportal rename to local/share/scripts/tedportal diff --git a/scripts/toggle_monitor.sh b/local/share/scripts/toggle_monitor.sh similarity index 100% rename from scripts/toggle_monitor.sh rename to local/share/scripts/toggle_monitor.sh diff --git a/scripts/toggle_touchpad.sh b/local/share/scripts/toggle_touchpad.sh similarity index 100% rename from scripts/toggle_touchpad.sh rename to local/share/scripts/toggle_touchpad.sh diff --git a/scripts/update_events.sh b/local/share/scripts/update_events.sh similarity index 100% rename from scripts/update_events.sh rename to local/share/scripts/update_events.sh diff --git a/scripts/watch_mpv.sh b/local/share/scripts/watch_mpv.sh similarity index 100% rename from scripts/watch_mpv.sh rename to local/share/scripts/watch_mpv.sh diff --git a/scripts/weechat_start b/local/share/scripts/weechat_start similarity index 100% rename from scripts/weechat_start rename to local/share/scripts/weechat_start diff --git a/scripts/welcome.sh b/local/share/scripts/welcome.sh similarity index 100% rename from scripts/welcome.sh rename to local/share/scripts/welcome.sh diff --git a/scripts/ytfzf_dmenu b/local/share/scripts/ytfzf_dmenu similarity index 100% rename from scripts/ytfzf_dmenu rename to local/share/scripts/ytfzf_dmenu diff --git a/scripts/zaread b/local/share/scripts/zaread similarity index 98% rename from scripts/zaread rename to local/share/scripts/zaread index 6759ff8b..c1cca958 100755 --- a/scripts/zaread +++ b/local/share/scripts/zaread @@ -2,7 +2,7 @@ ## zaread - a simple script created by paoloap. # default variables -zadir="$HOME"'/.zaread/' +zadir="$XDG_DATA_HOME"'/.zaread/' reader="zathura" # if ~/.zaread doesn't exist, we create it. diff --git a/theming/themes/material-ocean b/local/share/themes/material-ocean similarity index 100% rename from theming/themes/material-ocean rename to local/share/themes/material-ocean diff --git a/vim/vim/.gitignore b/local/share/vim/.gitignore similarity index 100% rename from vim/vim/.gitignore rename to local/share/vim/.gitignore diff --git a/local/share/vim/applications b/local/share/vim/applications new file mode 120000 index 00000000..3bffccc7 --- /dev/null +++ b/local/share/vim/applications @@ -0,0 +1 @@ +/home/yigit/.dotfiles/local/applications/vim.desktop \ No newline at end of file diff --git a/vim/vim/autoload/plug.vim b/local/share/vim/autoload/plug.vim similarity index 100% rename from vim/vim/autoload/plug.vim rename to local/share/vim/autoload/plug.vim diff --git a/vim/vim/plugin/YCM.vim b/local/share/vim/plugin/YCM.vim similarity index 100% rename from vim/vim/plugin/YCM.vim rename to local/share/vim/plugin/YCM.vim diff --git a/vim/vim/plugin/csyntaxafter.vim b/local/share/vim/plugin/csyntaxafter.vim similarity index 100% rename from vim/vim/plugin/csyntaxafter.vim rename to local/share/vim/plugin/csyntaxafter.vim diff --git a/vim/vim/plugin/ctrlp.vim b/local/share/vim/plugin/ctrlp.vim similarity index 100% rename from vim/vim/plugin/ctrlp.vim rename to local/share/vim/plugin/ctrlp.vim diff --git a/vim/vim/plugin/nerdcommenter.vim b/local/share/vim/plugin/nerdcommenter.vim similarity index 100% rename from vim/vim/plugin/nerdcommenter.vim rename to local/share/vim/plugin/nerdcommenter.vim diff --git a/vim/vim/plugin/nerdtree.vim b/local/share/vim/plugin/nerdtree.vim similarity index 100% rename from vim/vim/plugin/nerdtree.vim rename to local/share/vim/plugin/nerdtree.vim diff --git a/vim/vim/plugin/plugins.vim b/local/share/vim/plugin/plugins.vim similarity index 95% rename from vim/vim/plugin/plugins.vim rename to local/share/vim/plugin/plugins.vim index 6e8eed5a..8b2fd353 100644 --- a/vim/vim/plugin/plugins.vim +++ b/local/share/vim/plugin/plugins.vim @@ -1,4 +1,4 @@ -call plug#begin('~/.vim/plugged') +call plug#begin('~/.local/share/vim/plugged') " Themes " @@ -6,7 +6,7 @@ Plug 'hzchirs/vim-material' " Addons Plug 'scrooloose/nerdtree' -Plug 'yegappan/mru' +"Plug 'yegappan/mru' Plug 'alvan/vim-closetag' Plug 'vim-scripts/vim-auto-save' Plug 'airblade/vim-gitgutter' @@ -43,6 +43,7 @@ Plug 'gu-fan/InstantRst' Plug 'prettier/vim-prettier', { 'do': 'yarn install' } Plug 'isene/hyperlist.vim' Plug 'neomutt/neomutt.vim' +Plug 'VebbNix/lf-vim' " Tmux integration Plug 'benmills/vimux' diff --git a/vim/vim/plugin/vim-betterwhitespace.vim b/local/share/vim/plugin/vim-betterwhitespace.vim similarity index 100% rename from vim/vim/plugin/vim-betterwhitespace.vim rename to local/share/vim/plugin/vim-betterwhitespace.vim diff --git a/vim/vim/plugin/vim-ripgrep.vim b/local/share/vim/plugin/vim-ripgrep.vim similarity index 100% rename from vim/vim/plugin/vim-ripgrep.vim rename to local/share/vim/plugin/vim-ripgrep.vim diff --git a/vim/vim/plugin/vim-test.vim b/local/share/vim/plugin/vim-test.vim similarity index 100% rename from vim/vim/plugin/vim-test.vim rename to local/share/vim/plugin/vim-test.vim diff --git a/vim/vim/plugin/vimux.vim b/local/share/vim/plugin/vimux.vim similarity index 100% rename from vim/vim/plugin/vimux.vim rename to local/share/vim/plugin/vimux.vim diff --git a/mail/mbsyncrc.secret b/mail/mbsyncrc.secret deleted file mode 100644 index 97a954db..00000000 Binary files a/mail/mbsyncrc.secret and /dev/null differ diff --git a/mail/msmtp/config.secret b/mail/msmtp/config.secret deleted file mode 100644 index 38808398..00000000 Binary files a/mail/msmtp/config.secret and /dev/null differ diff --git a/misc/calcurse/caldav/config.secret b/misc/calcurse/caldav/config.secret deleted file mode 100644 index ba08535d..00000000 Binary files a/misc/calcurse/caldav/config.secret and /dev/null differ diff --git a/misc/lf/lfrc b/misc/lf/lfrc deleted file mode 100644 index 727b1942..00000000 --- a/misc/lf/lfrc +++ /dev/null @@ -1,106 +0,0 @@ -# interpreter for shell commands -set shell sh - -# set '-eu' options for shell commands -# These options are used to have safer shell commands. Option '-e' is used to -# exit on error and option '-u' is used to give error for unset variables. -# Option '-f' disables pathname expansion which can be useful when $f, $fs, and -# $fx variables contain names with '*' or '?' characters. However, this option -# is used selectively within individual commands as it can be limiting at -# times. -set shellopts '-eu' - -# set internal field separator (IFS) to "\n" for shell commands -# This is useful to automatically split file names in $fs and $fx properly -# since default file separator used in these variables (i.e. 'filesep' option) -# is newline. You need to consider the values of these options and create your -# commands accordingly. -set ifs "\n" - -# leave some space at the top and the bottom of the screen -set scrolloff 10 - -# use enter for shell commands -map shell - -# execute current file (must be executable) -map x $$f -map X !$f - -# dedicated keys for file opener actions -map o &mimeopen $f -map O $mimeopen --ask $f - -# define a custom 'open' command -# This command is called when current file is not a directory. You may want to -# use either file extensions and/or mime types here. Below uses an editor for -# text files and a file opener for the rest. -cmd open ${{ - case $(file --mime-type $f -b) in - text/*) $EDITOR $fx;; - *) for f in $fx; do setsid $OPENER $f > /dev/null 2> /dev/null & done;; - esac -}} - -# define a custom 'rename' command without prompt for overwrite -# cmd rename %[ -e $1 ] && printf "file exists" || mv $f $1 -# map r push :rename - -# make sure trash folder exists -# %mkdir -p ~/.trash - -# move current file or selected files to trash folder -# (also see 'man mv' for backup/overwrite options) -cmd trash %set -f; mv $fx ~/.trash - -# define a custom 'delete' command -# cmd delete ${{ -# set -f -# printf "$fx\n" -# printf "delete?[y/n]" -# read ans -# [ $ans = "y" ] && rm -rf $fx -# }} - -# use '' key for either 'trash' or 'delete' command -# map trash -# map delete - -# extract the current file with the right command -# (xkcd link: https://xkcd.com/1168/) - -set icons - -cmd extract ${{ - set -f - case $f in - *.tar.bz|*.tar.bz2|*.tbz|*.tbz2) tar xjvf $f;; - *.tar.gz|*.tgz) tar xzvf $f;; - *.tar.xz|*.txz) tar xJvf $f;; - *.zip) unzip $f;; - *.rar) unrar x $f;; - *.7z) 7z x $f;; - esac -}} - -# compress current file or selected files with tar and gunzip -cmd tar ${{ - set -f - mkdir $1 - cp -r $fx $1 - tar czf $1.tar.gz $1 - rm -rf $1 -}} - -# compress current file or selected files with zip -cmd zip ${{ - set -f - mkdir $1 - cp -r $fx $1 - zip -r $1.zip $1 - rm -rf $1 -}} - - -set previewer lf-ueberzug-previewer -set cleaner lf-ueberzug-cleaner diff --git a/misc/nextcloud.secret b/misc/nextcloud.secret deleted file mode 100644 index d36f06dc..00000000 Binary files a/misc/nextcloud.secret and /dev/null differ diff --git a/misc/profile b/misc/profile deleted file mode 100755 index fa2f0049..00000000 --- a/misc/profile +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash - -# Environment variables -export QT_QPA_PLATFORMTHEME="qt5ct" -export _JAVA_AWT_WM_NONREPARENTING=1 -export AWT_TOOLKIT=MToolkit -export SHELL=/bin/zsh -export TERMINAL=/usr/local/bin/st -export ANDROID_HOME=~/.local/share/android/Sdk -export FLUTTER_HOME=~/.local/share/flutter -export TMUX_PLUGIN_MANAGER_PATH=~/.tmux/plugins -export BORG_KEYS_DIR=~/.keys/borg -export BROWSER="/home/yigit/.scripts/brave-start" -export EDITOR=vim -export GOPATH=$HOME/.local/share/go -export ANDROID_HOME=/home/yigit/Android -export DEFAULT_RECIPIENT="yigitcolakoglu@hotmail.com" -#export CM_SYNC_PRIMARY_TO_CLIPBOARD=1 - -# Setup PATH -export PATH=$ANDROID_HOME/tools:$PATH -export PATH=$ANDROID_HOME/platform-tools:$PATH -export PATH=$FLUTTER_HOME/bin:$PATH -export PATH="/home/yigit/.scripts:/home/yigit/.local/bin:/home/yigit/.gem/ruby/2.7.0/bin:$GOPATH/bin:$GOPATH/binexport:/home/yigit/.local/bin:$PATH" -export CPATH=/usr/include/opencv4 - -# LF Icons -LF_ICONS=$(sed ~/.config/lf/diricons \ - -e '/^[ \t]*#/d' \ - -e '/^[ \t]*$/d' \ - -e 's/[ \t]\+/=/g' \ - -e 's/$/ /') -LF_ICONS=${LF_ICONS//$'\n'/:} - -export LF_ICONS diff --git a/misc/spotifyd.conf.secret b/misc/spotifyd.conf.secret deleted file mode 100644 index 2465dccb..00000000 Binary files a/misc/spotifyd.conf.secret and /dev/null differ diff --git a/misc/systemd/user/.gitignore b/misc/systemd/user/.gitignore deleted file mode 100644 index 419e6be4..00000000 --- a/misc/systemd/user/.gitignore +++ /dev/null @@ -1 +0,0 @@ -default.target.wants diff --git a/misc/systemd/user/ssh-agent.service b/misc/systemd/user/ssh-agent.service deleted file mode 100644 index 94284103..00000000 --- a/misc/systemd/user/ssh-agent.service +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=SSH key agent - -[Service] -Type=simple -Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket -ExecStart=/usr/bin/ssh-agent -D -a $SSH_AUTH_SOCK - -[Install] -WantedBy=default.target diff --git a/misc/wakatime.cfg.secret b/misc/wakatime.cfg.secret deleted file mode 100644 index ada9e206..00000000 Binary files a/misc/wakatime.cfg.secret and /dev/null differ diff --git a/profile b/profile new file mode 100755 index 00000000..d4e777f5 --- /dev/null +++ b/profile @@ -0,0 +1,69 @@ +#!/bin/bash + +# Environment variables +export QT_QPA_PLATFORMTHEME="qt5ct" +export _JAVA_AWT_WM_NONREPARENTING=1 +export AWT_TOOLKIT=MToolkit +export SHELL=/bin/zsh +export TERMINAL=/usr/local/bin/st +export TMUX_PLUGIN_MANAGER_PATH=~/.tmux/plugins +export BORG_KEYS_DIR=~/.keys/borg +export BROWSER="/home/yigit/.scripts/brave-start" +export EDITOR=vim +export ANDROID_HOME=/home/yigit/Android +export DEFAULT_RECIPIENT="yigitcolakoglu@hotmail.com" + +# Setup PATH +export PATH=$ANDROID_HOME/tools:$PATH +export PATH=$ANDROID_HOME/platform-tools:$PATH +export PATH=$FLUTTER_HOME/bin:$PATH +export PATH="$PATH:/home/yigit/.local/share/scripts:/home/yigit/.local/bin:/home/yigit/.gem/ruby/2.7.0/bin:$GOPATH/bin:$GOPATH/binexport:/home/yigit/.local/bin" +export CPATH=/usr/include/opencv4 + +# Set XDG Directories +export XDG_DATA_HOME="$HOME"/.local/share +export XDG_CONFIG_HOME="$HOME"/.config +export XDG_CACHE_HOME="$HOME"/.cache +export XDG_DATA_DIRS="/usr/local/share:/usr/share" +export XDG_CONFIG_DIRS="/etc/xdg" + +# LF Icons +LF_ICONS=$(sed ~/.config/lf/diricons \ + -e '/^[ \t]*#/d' \ + -e '/^[ \t]*$/d' \ + -e 's/[ \t]\+/=/g' \ + -e 's/$/ /') +LF_ICONS=${LF_ICONS//$'\n'/:} + +export LF_ICONS + +# Cleanup Home Directory +export CARGO_HOME="$XDG_DATA_HOME"/cargo +export GOPATH="$XDG_DATA_HOME"/go +export ANDROID_HOME="$XDG_DATA_HOME"/Sdk +export FLUTTER_HOME="$XDG_DATA_HOME"/flutter +export LEIN_HOME="$XDG_DATA_HOME"/lein +export NPM_CONFIG_USERCONFIG=$XDG_CONFIG_HOME/npm/npmrc +export NVM_DIR="$XDG_DATA_HOME"/nvm +export GNUPGHOME="$XDG_DATA_HOME"/gnupg +export MBSYNCRC="$XDG_CONFIG_HOME"/isync/mbsyncrc +export VIMINIT="set nocp | source ${XDG_CONFIG_HOME:-$HOME/.config}/vim/vimrc" +export MYSQL_HISTFILE="$XDG_DATA_HOME"/mysql_history +export TASKDATA="$XDG_DATA_HOME"/task +export TASKRC="$XDG_CONFIG_HOME"/task/taskrc +export WEECHAT_HOME="$XDG_CONFIG_HOME"/weechat +export LESSKEY="$XDG_CONFIG_HOME"/less/lesskey +export LESSHISTFILE=- +export NOTMUCH_CONFIG="$XDG_CONFIG_HOME"/notmuch/notmuchrc +export NMBGIT="$XDG_DATA_HOME"/notmuch/nmbug +export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java +export IPYTHONDIR="$XDG_CONFIG_HOME"/jupyter +export JUPYTER_CONFIG_DIR="$XDG_CONFIG_HOME"/jupyter +export PYLINTHOME="$XDG_CACHE_HOME"/pylint +export WGETRC="$XDG_CONFIG_HOME/wgetrc" +export GRADLE_USER_HOME="$XDG_DATA_HOME"/gradle +export RANDFILE="$XDG_DATA_HOME"/openssl/rnd +export _Z_DATA="$XDG_DATA_HOME/z" +export GTK2_RC_FILES="$XDG_CONFIG_HOME"/gtk-2.0/gtkrc +export WAKATIME_HOME="$XDG_CONFIG_HOME/wakatime" + diff --git a/root/dwm.desktop b/root/dwm.desktop index 75b00d2d..403b9e71 100644 --- a/root/dwm.desktop +++ b/root/dwm.desktop @@ -2,4 +2,4 @@ Encoding=UTF-8 Name=Dynamic Window Manager Comment=Runs the window manager defined by xsession script -Exec=~/.xinitrc +Exec=~/.config/X11/xinitrc diff --git a/scripts/lock b/scripts/lock deleted file mode 100755 index bb8c71a7..00000000 --- a/scripts/lock +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -curl 'http://yeetclock/setcolor?R=2000&G=10&B=000&O=0' & -/home/yigit/.scripts/pacontrol.sh open-mute -/home/yigit/.scripts/dunst_toggle.sh -s -betterlockscreen -l -t 'Stay the fuck out!' -/home/yigit/.scripts/dunst_toggle.sh -e -/home/yigit/.scripts/pacontrol.sh toggle-mute -curl 'http://yeetclock/setcolor?R=136&G=192&B=208' & diff --git a/scripts/status-bar/dunst b/scripts/status-bar/dunst deleted file mode 100755 index e28a3cf2..00000000 --- a/scripts/status-bar/dunst +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -stats=$(<~/.cache/dunst) - -if [ "$stats" = "off" ]; then - echo "^c#88c0d0^ ^d^" -else - echo "^c#88c0d0^ ^d^" -fi - -case $BLOCK_BUTTON in - 1) ~/.scripts/dunst_toggle.sh -t;; -esac diff --git a/suckless/dwm/keybind.h b/suckless/dwm/keybind.h index 6b135857..998f8eb6 100644 --- a/suckless/dwm/keybind.h +++ b/suckless/dwm/keybind.h @@ -11,56 +11,55 @@ /* helper for spawning shell commands in the pre dwm-5.0 fashion */ #define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } } -static char dmenumon[2] = "0"; -static const char *dmenucmd[] = { "/home/yigit/.scripts/dmenu_run_history", "-m", dmenumon, "-z", "1900", "-x", "10", "-y", "10"}; +static char dmenumon[2] = "0"; +static const char *dmenucmd[] = { "/home/yigit/.local/share/scripts/dmenu_run_history", "-m", dmenumon, "-z", "1900", "-x", "10", "-y", "10"}; static const char *termcmd[] = { "/usr/local/bin/st", NULL }; -static const char *tmuxcmd[] = { "/usr/local/bin/st","-e", "/home/yigit/.scripts/st_tmux", NULL }; -static const char *upvol[] = { "/home/yigit/.scripts/pacontrol.sh", "up", NULL }; -static const char *downvol[] = { "/home/yigit/.scripts/pacontrol.sh", "down", NULL }; -static const char *mutevol[] = { "/home/yigit/.scripts/pacontrol.sh", "toggle-mute", NULL }; +static const char *tmuxcmd[] = { "/usr/local/bin/st","-e", "/home/yigit/.local/share/scripts/st_tmux", NULL }; +static const char *rangercmd[] = { "/usr/local/bin/st","-c","ranger","-n","ranger","-e", "ranger", NULL }; +static const char *upvol[] = { "/home/yigit/.local/share/scripts/pacontrol.sh", "up", NULL }; +static const char *downvol[] = { "/home/yigit/.local/share/scripts/pacontrol.sh", "down", NULL }; +static const char *mutevol[] = { "/home/yigit/.local/share/scripts/pacontrol.sh", "toggle-mute", NULL }; static const char *upbright[] = {"/usr/bin/xbacklight","-inc","10",NULL}; static const char *downbright[] = {"/usr/bin/xbacklight","-dec","10",NULL}; -static const char *lock[] = {"/home/yigit/.scripts/lock",NULL}; +static const char *lock[] = {"/home/yigit/.local/share/scripts/lock",NULL}; static const char *clipmenu[] = {"/usr/bin/clipmenu","-i",NULL}; static const char *play[] = {"/usr/bin/playerctl","play-pause",NULL}; static const char *prev[] = {"/usr/bin/playerctl","previous",NULL}; static const char *next[] = {"/usr/bin/playerctl","next",NULL}; -static const char *outmenu[] = {"/home/yigit/.scripts/dmenu-logout", NULL}; -static const char *refresh[] = {"/home/yigit/.scripts/dmenu-refresh", NULL}; -static const char *keyboard[] = {"/home/yigit/.scripts/kbmap_toggle", NULL}; +static const char *outmenu[] = {"/home/yigit/.local/share/scripts/dmenu-logout", NULL}; +static const char *refresh[] = {"/home/yigit/.local/share/scripts/dmenu-refresh", NULL}; +static const char *keyboard[] = {"/home/yigit/.local/share/scripts/kbmap_toggle", NULL}; -static const char *screenshot[] = { "scrot", "/tmp/%Y-%m-%d-%s_$wx$h.png", "-e","xclip -selection clipboard -target image/png -i $f; cp $f ~/Pictures/Screenshots;notify-send \"SNAP\" \"$f\"", NULL }; +static const char *screenshot[] = { "scrot", "/tmp/%Y-%m-%d-%s_$wx$h.png", "-e","xclip -selection clipboard -target image/png -i $f; cp $f ~/Pictures/Screenshots;notify-send \"SNAP\" \"$f\"", NULL }; static const char *windowshot[] = { "scrot", "-u", "/tmp/%Y-%m-%d-%s_$wx$h.png", "-e","xclip -selection clipboard -target image/png -i $f; cp $f ~/Pictures/Screenshots;notify-send \"SNAP\" \"$f\"", NULL }; static const char *simcrop[] = {"simcrop","-fc","-sc", "-g", "900x500",NULL}; -static const char *notification[] = {"/home/yigit/.scripts/dunst_toggle.sh", "-t",NULL}; +static const char *notification[] = {"/home/yigit/.local/share/scripts/dunst_toggle.sh", "-t",NULL}; -static const char *screen_off[] = {"xset", "dpms", "force", "off", NULL}; +static const char *screensaver[] = {"/home/yigit/.local/share/scripts/screensaver_toggle", "-t",NULL}; -static const char *screensaver[] = {"/home/yigit/.scripts/screensaver_toggle", "-t",NULL}; +static const char *online_class[] = {"/home/yigit/.local/share/scripts/tedportal",NULL}; -static const char *online_class[] = {"/home/yigit/.scripts/tedportal",NULL}; +static const char *bwmenu[] = {"/home/yigit/.local/share/scripts/password_manager", NULL}; -static const char *bwmenu[] = {"/home/yigit/.scripts/password_manager", NULL}; +static const char *wallabag_read[] = {"/home/yigit/.local/share/scripts/dmenu-wallabag", "-l",NULL}; +static const char *wallabag_add[] = {"/home/yigit/.local/share/scripts/dmenu-wallabag", "-a", NULL}; -static const char *wallabag_read[] = {"/home/yigit/.scripts/dmenu-wallabag", "-l",NULL}; -static const char *wallabag_add[] = {"/home/yigit/.scripts/dmenu-wallabag", "-a", NULL}; - -static const char *network_manager[] = {"/home/yigit/.scripts/networkmanager_dmenu", NULL}; -static const char *killall[] = {"/home/yigit/.scripts/dmenu-killall", NULL}; -static const char *mconnect[] = {"/home/yigit/.scripts/dmenu-mconnect"}; -static const char *udevil[] = {"/home/yigit/.scripts/dmenu-udevil"}; -static const char *udevil_umount[] = {"/home/yigit/.scripts/dmenu-udevil", "-u"}; +static const char *network_manager[] = {"/home/yigit/.local/share/scripts/networkmanager_dmenu", NULL}; +static const char *killall[] = {"/home/yigit/.local/share/scripts/dmenu-killall", NULL}; +static const char *mconnect[] = {"/home/yigit/.local/share/scripts/dmenu-mconnect"}; +static const char *udevil[] = {"/home/yigit/.local/share/scripts/dmenu-udevil"}; +static const char *udevil_umount[] = {"/home/yigit/.local/share/scripts/dmenu-udevil", "-u"}; static const char *genpwd[] = {"sh", "-c","/sbin/bw generate | xclip" }; -static const char *trackpad[] = {"/home/yigit/.scripts/toggle_touchpad.sh"}; -static const char *bluetooth[] = {"/home/yigit/.scripts/dmenu-bluetooth", NULL}; -static const char *url[] = {"/home/yigit/.scripts/dmenu_surf", NULL}; -static const char *surf[] = {"/home/yigit/.scripts/tabbed_surf", NULL}; -static const char *google[] = {"/home/yigit/.scripts/menu-surfraw", "google", NULL}; -static const char *youtube[] = {"/home/yigit/.scripts/ytfzf_dmenu", NULL}; +static const char *trackpad[] = {"/home/yigit/.local/share/scripts/toggle_touchpad.sh"}; +static const char *bluetooth[] = {"/home/yigit/.local/share/scripts/dmenu-bluetooth", NULL}; +static const char *url[] = {"/home/yigit/.local/share/scripts/dmenu_surf", NULL}; +static const char *surf[] = {"/home/yigit/.local/share/scripts/tabbed_surf", NULL}; +static const char *google[] = {"/home/yigit/.local/share/scripts/menu-surfraw", "google", NULL}; +static const char *youtube[] = {"/home/yigit/.local/share/scripts/ytfzf_dmenu", NULL}; /* commands */ static Key keys[] = { @@ -69,10 +68,10 @@ static Key keys[] = { { MODKEY, XK_p, spawn, {.v = bwmenu } }, { MODKEY, XK_Return, spawn, {.v = termcmd } }, { MODKEY|ShiftMask, XK_Return, spawn, {.v = tmuxcmd } }, + { MODKEY|ShiftMask, XK_f, spawn, {.v = rangercmd} }, { MODKEY, XK_b, togglebar, {0} }, { MODKEY, XK_j, focusstack, {.i = +1 } }, { MODKEY|ShiftMask, XK_i, spawn, {.v = screensaver} }, - { MODKEY|ShiftMask, XK_o, spawn, {.v = screen_off } }, { MODKEY|ShiftMask, XK_n, spawn, {.v = notification } }, { MODKEY, XK_k, focusstack, {.i = -1 } }, { MODKEY, XK_h, setmfact, {.f = -0.05} }, @@ -82,7 +81,7 @@ static Key keys[] = { { MODKEY, XK_q, killclient, {0} }, { MODKEY|Mod1Mask, XK_i, incnmaster, {.i = +1 } }, { MODKEY|Mod1Mask, XK_s, incnmaster, {.i = -1 } }, - { MODKEY|ShiftMask, XK_j, movestack, {.i = +1 } }, + { MODKEY|ShiftMask, XK_j, movestack, {.i = +1 } }, { MODKEY|ShiftMask, XK_k, movestack, {.i = -1 } }, { MODKEY|Mod1Mask, XK_t, setlayout, {.v = &layouts[0]} }, /*tiled*/ { MODKEY|Mod1Mask, XK_f, setlayout, {.v = &layouts[1]} }, /*Spiral*/ @@ -101,7 +100,7 @@ static Key keys[] = { { MODKEY, XK_period, focusmon, {.i = +1 } }, { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, - { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, + { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, TAGKEYS( XK_1, 0) TAGKEYS( XK_2, 1) diff --git a/suckless/dwmblocks/config.h b/suckless/dwmblocks/config.h index 9d2884e9..ab099263 100644 --- a/suckless/dwmblocks/config.h +++ b/suckless/dwmblocks/config.h @@ -1,5 +1,5 @@ -#define PATH(name) "/home/yigit/.scripts/status-bar/"name +#define PATH(name) "/home/yigit/.local/share/scripts/status-bar/"name static Block blocks[] = { { "", PATH("screensaver"), 120, 19}, diff --git a/suckless/slock/.gitignore b/suckless/slock/.gitignore new file mode 100644 index 00000000..e3c353ed --- /dev/null +++ b/suckless/slock/.gitignore @@ -0,0 +1,57 @@ +# Prerequisites +*.d + +# Object files +*.o +*.ko +*.obj +*.elf + +# Linker output +*.ilk +*.map +*.exp + +# Precompiled Headers +*.gch +*.pch + +# Libraries +*.lib +*.a +*.la +*.lo + +# Shared objects (inc. Windows DLLs) +*.dll +*.so +*.so.* +*.dylib + +# Executables +*.exe +*.out +*.app +*.i*86 +*.x86_64 +*.hex + +# Debug files +*.dSYM/ +*.su +*.idb +*.pdb + +# Kernel Module Compile Results +*.mod* +*.cmd +.tmp_versions/ +modules.order +Module.symvers +Mkfile.old +dkms.conf + +slock + +*.orig +*.rej diff --git a/suckless/slock/LICENSE b/suckless/slock/LICENSE new file mode 100644 index 00000000..2e4419b7 --- /dev/null +++ b/suckless/slock/LICENSE @@ -0,0 +1,24 @@ +MIT/X Consortium License + +© 2015-2016 Markus Teich +© 2014 Dimitris Papastamos +© 2006-2014 Anselm R Garbe +© 2014-2016 Laslo Hunhold + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/suckless/slock/Makefile b/suckless/slock/Makefile new file mode 100644 index 00000000..f4ffbb7e --- /dev/null +++ b/suckless/slock/Makefile @@ -0,0 +1,61 @@ +# slock - simple screen locker +# See LICENSE file for copyright and license details. + +include config.mk + +SRC = slock.c ${COMPATSRC} +OBJ = ${SRC:.c=.o} + +all: options slock + +options: + @echo slock build options: + @echo "CFLAGS = ${CFLAGS}" + @echo "LDFLAGS = ${LDFLAGS}" + @echo "CC = ${CC}" + +.c.o: + @echo CC $< + @${CC} -c ${CFLAGS} $< + +${OBJ}: config.h config.mk arg.h util.h + +config.h: + @echo creating $@ from config.def.h + @cp config.def.h $@ + +slock: ${OBJ} + @echo CC -o $@ + @${CC} -o $@ ${OBJ} ${LDFLAGS} + +clean: + @echo cleaning + @rm -f slock ${OBJ} slock-${VERSION}.tar.gz + +dist: clean + @echo creating dist tarball + @mkdir -p slock-${VERSION} + @cp -R LICENSE Makefile README slock.1 config.mk \ + ${SRC} explicit_bzero.c config.def.h arg.h util.h slock-${VERSION} + @tar -cf slock-${VERSION}.tar slock-${VERSION} + @gzip slock-${VERSION}.tar + @rm -rf slock-${VERSION} + +install: all + @echo installing executable file to ${DESTDIR}${PREFIX}/bin + @mkdir -p ${DESTDIR}${PREFIX}/bin + @cp -f slock ${DESTDIR}${PREFIX}/bin + @chmod 755 ${DESTDIR}${PREFIX}/bin/slock + @chmod u+s ${DESTDIR}${PREFIX}/bin/slock + @echo installing manual page to ${DESTDIR}${MANPREFIX}/man1 + @mkdir -p ${DESTDIR}${MANPREFIX}/man1 + @sed "s/VERSION/${VERSION}/g" ${DESTDIR}${MANPREFIX}/man1/slock.1 + @chmod 644 ${DESTDIR}${MANPREFIX}/man1/slock.1 + +uninstall: + @echo removing executable file from ${DESTDIR}${PREFIX}/bin + @rm -f ${DESTDIR}${PREFIX}/bin/slock + @echo removing manual page from ${DESTDIR}${MANPREFIX}/man1 + @rm -f ${DESTDIR}${MANPREFIX}/man1/slock.1 + +.PHONY: all options clean dist install uninstall diff --git a/suckless/slock/README b/suckless/slock/README new file mode 100644 index 00000000..dcacd01b --- /dev/null +++ b/suckless/slock/README @@ -0,0 +1,24 @@ +slock - simple screen locker +============================ +simple screen locker utility for X. + + +Requirements +------------ +In order to build slock you need the Xlib header files. + + +Installation +------------ +Edit config.mk to match your local setup (slock is installed into +the /usr/local namespace by default). + +Afterwards enter the following command to build and install slock +(if necessary as root): + + make clean install + + +Running slock +------------- +Simply invoke the 'slock' command. To get out of it, enter your password. diff --git a/suckless/slock/arg.h b/suckless/slock/arg.h new file mode 100644 index 00000000..0b23c53a --- /dev/null +++ b/suckless/slock/arg.h @@ -0,0 +1,65 @@ +/* + * Copy me if you can. + * by 20h + */ + +#ifndef ARG_H__ +#define ARG_H__ + +extern char *argv0; + +/* use main(int argc, char *argv[]) */ +#define ARGBEGIN for (argv0 = *argv, argv++, argc--;\ + argv[0] && argv[0][0] == '-'\ + && argv[0][1];\ + argc--, argv++) {\ + char argc_;\ + char **argv_;\ + int brk_;\ + if (argv[0][1] == '-' && argv[0][2] == '\0') {\ + argv++;\ + argc--;\ + break;\ + }\ + for (brk_ = 0, argv[0]++, argv_ = argv;\ + argv[0][0] && !brk_;\ + argv[0]++) {\ + if (argv_ != argv)\ + break;\ + argc_ = argv[0][0];\ + switch (argc_) + +/* Handles obsolete -NUM syntax */ +#define ARGNUM case '0':\ + case '1':\ + case '2':\ + case '3':\ + case '4':\ + case '5':\ + case '6':\ + case '7':\ + case '8':\ + case '9' + +#define ARGEND }\ + } + +#define ARGC() argc_ + +#define ARGNUMF() (brk_ = 1, estrtonum(argv[0], 0, INT_MAX)) + +#define EARGF(x) ((argv[0][1] == '\0' && argv[1] == NULL)?\ + ((x), abort(), (char *)0) :\ + (brk_ = 1, (argv[0][1] != '\0')?\ + (&argv[0][1]) :\ + (argc--, argv++, argv[0]))) + +#define ARGF() ((argv[0][1] == '\0' && argv[1] == NULL)?\ + (char *)0 :\ + (brk_ = 1, (argv[0][1] != '\0')?\ + (&argv[0][1]) :\ + (argc--, argv++, argv[0]))) + +#define LNGARG() &argv[0][0] + +#endif diff --git a/suckless/slock/config.h b/suckless/slock/config.h new file mode 100644 index 00000000..3faff06c --- /dev/null +++ b/suckless/slock/config.h @@ -0,0 +1,34 @@ +/* user and group to drop privileges to */ +static const char *user = "nobody"; +static const char *group = "nobody"; + +static const char *colorname[NUMCOLS] = { + [INIT] = "black", /* after initialization */ + [INPUT] = "#3a575c", /* during input */ + [FAILED] = "#bf616a", /* wrong password */ + [CAPS] = "#ebcb8b", /* CapsLock on */ +}; + +/* treat a cleared input like a wrong password (color) */ +static const int failonclear = 0; + +/* default message */ +static const char * message = "\ + .-""-.\n\ + / .--. \\\n\ + / / \\ \\\n\ + | | | |\n\ + | |.-""-.|\n\ + ///`.::::.`\\\n\ + ||| ::/ \\:: ;\n\ + ||; ::\\__/:: ;\n\ + \\\\\\ '::::' /\n\ + `=':-..-'`\n\ +"; + +/* text color */ +static const char * text_color = "#ffffff"; + +/* text size (must be a valid size) */ +static const char * font_name = "fixed"; + diff --git a/suckless/slock/config.mk b/suckless/slock/config.mk new file mode 100644 index 00000000..c4ccf66c --- /dev/null +++ b/suckless/slock/config.mk @@ -0,0 +1,32 @@ +# slock version +VERSION = 1.4 + +# Customize below to fit your system + +# paths +PREFIX = /usr/local +MANPREFIX = ${PREFIX}/share/man + +X11INC = /usr/X11R6/include +X11LIB = /usr/X11R6/lib + +# includes and libs +INCS = -I. -I/usr/include -I${X11INC} +LIBS = -L/usr/lib -lc -lcrypt -L${X11LIB} -lX11 -lXext -lXrandr -lXinerama + +# flags +CPPFLAGS = -DVERSION=\"${VERSION}\" -D_DEFAULT_SOURCE -DHAVE_SHADOW_H +CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS} +LDFLAGS = -s ${LIBS} +COMPATSRC = explicit_bzero.c + +# On OpenBSD and Darwin remove -lcrypt from LIBS +#LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 -lXext -lXrandr +# On *BSD remove -DHAVE_SHADOW_H from CPPFLAGS +# On NetBSD add -D_NETBSD_SOURCE to CPPFLAGS +#CPPFLAGS = -DVERSION=\"${VERSION}\" -D_BSD_SOURCE -D_NETBSD_SOURCE +# On OpenBSD set COMPATSRC to empty +#COMPATSRC = + +# compiler and linker +CC = cc diff --git a/suckless/slock/explicit_bzero.c b/suckless/slock/explicit_bzero.c new file mode 100644 index 00000000..3e33ca85 --- /dev/null +++ b/suckless/slock/explicit_bzero.c @@ -0,0 +1,19 @@ +/* $OpenBSD: explicit_bzero.c,v 1.3 2014/06/21 02:34:26 matthew Exp $ */ +/* + * Public domain. + * Written by Matthew Dempsky. + */ + +#include + +__attribute__((weak)) void +__explicit_bzero_hook(void *buf, size_t len) +{ +} + +void +explicit_bzero(void *buf, size_t len) +{ + memset(buf, 0, len); + __explicit_bzero_hook(buf, len); +} diff --git a/suckless/slock/patches/slock-blur_pixelated_screen-1.4.diff b/suckless/slock/patches/slock-blur_pixelated_screen-1.4.diff new file mode 100644 index 00000000..90d9c162 --- /dev/null +++ b/suckless/slock/patches/slock-blur_pixelated_screen-1.4.diff @@ -0,0 +1,356 @@ +From 36a4863f9a399740aaf8b1e01926485c0a055e1c Mon Sep 17 00:00:00 2001 +From: Lars Niesen +Date: Wed, 29 Apr 2020 13:52:42 +0200 +Subject: [PATCH 1/8] Added Bg patch and screenshot capabilities + +--- + config.mk | 2 +- + slock.c | 35 +++++++++++++++++++++++++++++++---- + 2 files changed, 32 insertions(+), 5 deletions(-) + +diff --git a/config.mk b/config.mk +index 74429ae..987819e 100644 +--- a/config.mk ++++ b/config.mk +@@ -12,7 +12,7 @@ X11LIB = /usr/X11R6/lib + + # includes and libs + INCS = -I. -I/usr/include -I${X11INC} +-LIBS = -L/usr/lib -lc -lcrypt -L${X11LIB} -lX11 -lXext -lXrandr ++LIBS = -L/usr/lib -lc -lcrypt -L${X11LIB} -lX11 -lXext -lXrandr -lImlib2 + + # flags + CPPFLAGS = -DVERSION=\"${VERSION}\" -D_DEFAULT_SOURCE -DHAVE_SHADOW_H +diff --git a/slock.c b/slock.c +index 5ae738c..7c63f34 100644 +--- a/slock.c ++++ b/slock.c +@@ -18,6 +18,7 @@ + #include + #include + #include ++#include + + #include "arg.h" + #include "util.h" +@@ -35,6 +36,7 @@ struct lock { + int screen; + Window root, win; + Pixmap pmap; ++ Pixmap bgmap; + unsigned long colors[NUMCOLS]; + }; + +@@ -46,6 +48,8 @@ struct xrandr { + + #include "config.h" + ++Imlib_Image image; ++ + static void + die(const char *errstr, ...) + { +@@ -190,9 +194,10 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens, + color = len ? INPUT : ((failure || failonclear) ? FAILED : INIT); + if (running && oldc != color) { + for (screen = 0; screen < nscreens; screen++) { +- XSetWindowBackground(dpy, +- locks[screen]->win, +- locks[screen]->colors[color]); ++ if(locks[screen]->bgmap) ++ XSetWindowBackgroundPixmap(dpy, locks[screen]->win, locks[screen]->bgmap); ++ else ++ XSetWindowBackground(dpy, locks[screen]->win, locks[screen]->colors[0]); + XClearWindow(dpy, locks[screen]->win); + } + oldc = color; +@@ -235,6 +240,17 @@ lockscreen(Display *dpy, struct xrandr *rr, int screen) + lock->screen = screen; + lock->root = RootWindow(dpy, lock->screen); + ++ if(image) ++ { ++ lock->bgmap = XCreatePixmap(dpy, lock->root, DisplayWidth(dpy, lock->screen), DisplayHeight(dpy, lock->screen), DefaultDepth(dpy, lock->screen)); ++ imlib_context_set_image(image); ++ imlib_context_set_display(dpy); ++ imlib_context_set_visual(DefaultVisual(dpy, lock->screen)); ++ imlib_context_set_colormap(DefaultColormap(dpy, lock->screen)); ++ imlib_context_set_drawable(lock->bgmap); ++ imlib_render_image_on_drawable(0, 0); ++ imlib_free_image(); ++ } + for (i = 0; i < NUMCOLS; i++) { + XAllocNamedColor(dpy, DefaultColormap(dpy, lock->screen), + colorname[i], &color, &dummy); +@@ -251,6 +267,8 @@ lockscreen(Display *dpy, struct xrandr *rr, int screen) + CopyFromParent, + DefaultVisual(dpy, lock->screen), + CWOverrideRedirect | CWBackPixel, &wa); ++ if(lock->bgmap) ++ XSetWindowBackgroundPixmap(dpy, lock->win, lock->bgmap); + lock->pmap = XCreateBitmapFromData(dpy, lock->win, curs, 8, 8); + invisible = XCreatePixmapCursor(dpy, lock->pmap, lock->pmap, + &color, &color, 0, 0); +@@ -354,7 +372,16 @@ main(int argc, char **argv) { + die("slock: setgid: %s\n", strerror(errno)); + if (setuid(duid) < 0) + die("slock: setuid: %s\n", strerror(errno)); +- ++ ++ /*Create screenshot Image*/ ++ Screen *scr = ScreenOfDisplay(dpy, DefaultScreen(dpy)); ++ image = imlib_create_image(scr->width,scr->height); ++ imlib_context_set_image(image); ++ imlib_context_set_display(dpy); ++ imlib_context_set_visual(DefaultVisual(dpy,0)); ++ imlib_context_set_drawable(RootWindow(dpy,XScreenNumberOfScreen(scr))); ++ imlib_copy_drawable_to_image(0,0,0,scr->width,scr->height,0,0,1); ++ + /* check for Xrandr support */ + rr.active = XRRQueryExtension(dpy, &rr.evbase, &rr.errbase); + +-- +2.27.0 + + +From 9d89604ac52b0949d047dae2f9b78cb5085ee1a2 Mon Sep 17 00:00:00 2001 +From: Lars Niesen +Date: Wed, 29 Apr 2020 14:15:59 +0200 +Subject: [PATCH 2/8] Added blur function + +--- + config.def.h | 3 +++ + slock.c | 3 ++- + 2 files changed, 5 insertions(+), 1 deletion(-) + +diff --git a/config.def.h b/config.def.h +index c8e52d6..fcc1b39 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -10,3 +10,6 @@ static const char *colorname[NUMCOLS] = { + + /* treat a cleared input like a wrong password (color) */ + static const int failonclear = 1; ++ ++/*Set Blur radius*/ ++static const int blurRadius=5; +\ No newline at end of file +diff --git a/slock.c b/slock.c +index 7c63f34..0f24cd7 100644 +--- a/slock.c ++++ b/slock.c +@@ -372,7 +372,7 @@ main(int argc, char **argv) { + die("slock: setgid: %s\n", strerror(errno)); + if (setuid(duid) < 0) + die("slock: setuid: %s\n", strerror(errno)); +- ++ + /*Create screenshot Image*/ + Screen *scr = ScreenOfDisplay(dpy, DefaultScreen(dpy)); + image = imlib_create_image(scr->width,scr->height); +@@ -381,6 +381,7 @@ main(int argc, char **argv) { + imlib_context_set_visual(DefaultVisual(dpy,0)); + imlib_context_set_drawable(RootWindow(dpy,XScreenNumberOfScreen(scr))); + imlib_copy_drawable_to_image(0,0,0,scr->width,scr->height,0,0,1); ++ imlib_image_blur(blurRadius); + + /* check for Xrandr support */ + rr.active = XRRQueryExtension(dpy, &rr.evbase, &rr.errbase); +-- +2.27.0 + + +From 069aabd7e30244befd4efe74c85d3468ed076c21 Mon Sep 17 00:00:00 2001 +From: Lars Niesen +Date: Wed, 29 Apr 2020 17:33:09 +0200 +Subject: [PATCH 4/8] added Pixelation + +--- + config.def.h | 3 ++- + slock.c | 42 ++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 44 insertions(+), 1 deletion(-) + +diff --git a/config.def.h b/config.def.h +index fcc1b39..1c1aef3 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -12,4 +12,5 @@ static const char *colorname[NUMCOLS] = { + static const int failonclear = 1; + + /*Set Blur radius*/ +-static const int blurRadius=5; +\ No newline at end of file ++static const int blurRadius=0; ++static const int pixelSize=5; +diff --git a/slock.c b/slock.c +index 0f24cd7..33ca569 100644 +--- a/slock.c ++++ b/slock.c +@@ -381,7 +381,49 @@ main(int argc, char **argv) { + imlib_context_set_visual(DefaultVisual(dpy,0)); + imlib_context_set_drawable(RootWindow(dpy,XScreenNumberOfScreen(scr))); + imlib_copy_drawable_to_image(0,0,0,scr->width,scr->height,0,0,1); ++ ++ /*Blur function*/ + imlib_image_blur(blurRadius); ++ ++ ++ /*Pixelation*/ ++ int width = scr->width; ++ int height = scr->height; ++ ++ for(int y = 0; y < height; y += pixelSize) ++ { ++ for(int x = 0; x < width; x += pixelSize) ++ { ++ int red = 0; ++ int green = 0; ++ int blue = 0; ++ ++ Imlib_Color pixel; ++ Imlib_Color* pp; ++ pp = &pixel; ++ for(int j = 0; j < pixelSize && j < height; j++) ++ { ++ for(int i = 0; i < pixelSize && i < width; i++) ++ { ++ imlib_image_query_pixel(x+i,y+j,pp); ++ red += pixel.red; ++ green += pixel.green; ++ blue += pixel.blue; ++ } ++ } ++ red /= (pixelSize*pixelSize); ++ green /= (pixelSize*pixelSize); ++ blue /= (pixelSize*pixelSize); ++ printf("R/G/B: %i/%i/%i\n",red,green,blue); ++ imlib_context_set_color(red,green,blue,pixel.alpha); ++ imlib_image_fill_rectangle(x,y,pixelSize,pixelSize); ++ red = 0; ++ green = 0; ++ blue = 0; ++ } ++ } ++ ++ + + /* check for Xrandr support */ + rr.active = XRRQueryExtension(dpy, &rr.evbase, &rr.errbase); +-- +2.27.0 + + +From 109bac015c1c7fbf8440fb42588fe7e0e9cb5e62 Mon Sep 17 00:00:00 2001 +From: Lars Niesen +Date: Wed, 29 Apr 2020 17:42:39 +0200 +Subject: [PATCH 6/8] removed debug printf + +--- + slock.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/slock.c b/slock.c +index 33ca569..f54c459 100644 +--- a/slock.c ++++ b/slock.c +@@ -414,7 +414,6 @@ main(int argc, char **argv) { + red /= (pixelSize*pixelSize); + green /= (pixelSize*pixelSize); + blue /= (pixelSize*pixelSize); +- printf("R/G/B: %i/%i/%i\n",red,green,blue); + imlib_context_set_color(red,green,blue,pixel.alpha); + imlib_image_fill_rectangle(x,y,pixelSize,pixelSize); + red = 0; +-- +2.27.0 + + +From a13a0f4ac86f82e4dff145b7ebd93e52d07492c9 Mon Sep 17 00:00:00 2001 +From: Lars Niesen +Date: Sun, 3 May 2020 18:03:38 +0200 +Subject: [PATCH 7/8] Changed compilerflag to fast + +--- + config.mk | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/config.mk b/config.mk +index 987819e..d0c2f01 100644 +--- a/config.mk ++++ b/config.mk +@@ -16,7 +16,7 @@ LIBS = -L/usr/lib -lc -lcrypt -L${X11LIB} -lX11 -lXext -lXrandr -lImlib2 + + # flags + CPPFLAGS = -DVERSION=\"${VERSION}\" -D_DEFAULT_SOURCE -DHAVE_SHADOW_H +-CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS} ++CFLAGS = -std=c99 -pedantic -Wall -Ofast ${INCS} ${CPPFLAGS} + LDFLAGS = -s ${LIBS} + COMPATSRC = explicit_bzero.c + +-- +2.27.0 + + +From 31a7001c4954606c066cc3df4318fafd6d216bcd Mon Sep 17 00:00:00 2001 +From: Lars Niesen +Date: Mon, 4 May 2020 10:00:40 +0200 +Subject: [PATCH 8/8] Added defines for BLUR/PIXELATION to remove from code by + compilation + +--- + config.def.h | 11 ++++++++--- + slock.c | 9 ++++++--- + 2 files changed, 14 insertions(+), 6 deletions(-) + +diff --git a/config.def.h b/config.def.h +index 1c1aef3..5407953 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -11,6 +11,11 @@ static const char *colorname[NUMCOLS] = { + /* treat a cleared input like a wrong password (color) */ + static const int failonclear = 1; + +-/*Set Blur radius*/ +-static const int blurRadius=0; +-static const int pixelSize=5; ++/*Enable blur*/ ++#define BLUR ++/*Set blur radius*/ ++static const int blurRadius=5; ++/*Enable Pixelation*/ ++//#define PIXELATION ++/*Set pixelation radius*/ ++static const int pixelSize=0; +diff --git a/slock.c b/slock.c +index f54c459..1a4d6e3 100644 +--- a/slock.c ++++ b/slock.c +@@ -381,11 +381,14 @@ main(int argc, char **argv) { + imlib_context_set_visual(DefaultVisual(dpy,0)); + imlib_context_set_drawable(RootWindow(dpy,XScreenNumberOfScreen(scr))); + imlib_copy_drawable_to_image(0,0,0,scr->width,scr->height,0,0,1); +- ++ ++#ifdef BLUR ++ + /*Blur function*/ + imlib_image_blur(blurRadius); ++#endif // BLUR + +- ++#ifdef PIXELATION + /*Pixelation*/ + int width = scr->width; + int height = scr->height; +@@ -423,7 +426,7 @@ main(int argc, char **argv) { + } + + +- ++#endif + /* check for Xrandr support */ + rr.active = XRRQueryExtension(dpy, &rr.evbase, &rr.errbase); + +-- +2.27.0 + diff --git a/suckless/slock/patches/slock-capscolor-20170106-2d2a21a.diff b/suckless/slock/patches/slock-capscolor-20170106-2d2a21a.diff new file mode 100644 index 00000000..a3aca2df --- /dev/null +++ b/suckless/slock/patches/slock-capscolor-20170106-2d2a21a.diff @@ -0,0 +1,87 @@ +From 95463f58beb669d9221881deac3b6df7d9c4f162 Mon Sep 17 00:00:00 2001 +From: Klemens Nanni +Date: Fri, 2 Sep 2016 14:53:30 +0200 +Subject: [PATCH] Indicate the state of CapsLock through a different color + +--- + config.def.h | 1 + + slock.c | 15 ++++++++++++--- + 2 files changed, 13 insertions(+), 3 deletions(-) + +diff --git a/config.def.h b/config.def.h +index 9855e21..6288856 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -6,6 +6,7 @@ static const char *colorname[NUMCOLS] = { + [INIT] = "black", /* after initialization */ + [INPUT] = "#005577", /* during input */ + [FAILED] = "#CC3333", /* wrong password */ ++ [CAPS] = "red", /* CapsLock on */ + }; + + /* treat a cleared input like a wrong password (color) */ +diff --git a/slock.c b/slock.c +index d55eb3d..d7804f1 100644 +--- a/slock.c ++++ b/slock.c +@@ -18,6 +18,7 @@ + #include + #include + #include ++#include + + #include "arg.h" + #include "util.h" +@@ -28,6 +29,7 @@ enum { + INIT, + INPUT, + FAILED, ++ CAPS, + NUMCOLS + }; + +@@ -130,16 +132,20 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens, + { + XRRScreenChangeNotifyEvent *rre; + char buf[32], passwd[256], *inputhash; +- int num, screen, running, failure, oldc; +- unsigned int len, color; ++ int caps, num, screen, running, failure, oldc; ++ unsigned int len, color, indicators; + KeySym ksym; + XEvent ev; + + len = 0; ++ caps = 0; + running = 1; + failure = 0; + oldc = INIT; + ++ if (!XkbGetIndicatorState(dpy, XkbUseCoreKbd, &indicators)) ++ caps = indicators & 1; ++ + while (running && !XNextEvent(dpy, &ev)) { + if (ev.type == KeyPress) { + explicit_bzero(&buf, sizeof(buf)); +@@ -179,6 +185,9 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens, + if (len) + passwd[len--] = '\0'; + break; ++ case XK_Caps_Lock: ++ caps = !caps; ++ break; + default: + if (num && !iscntrl((int)buf[0]) && + (len + num < sizeof(passwd))) { +@@ -187,7 +196,7 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens, + } + break; + } +- color = len ? INPUT : ((failure || failonclear) ? FAILED : INIT); ++ color = len ? (caps ? CAPS : INPUT) : (failure || failonclear ? FAILED : INIT); + if (running && oldc != color) { + for (screen = 0; screen < nscreens; screen++) { + XSetWindowBackground(dpy, +-- +2.11.0 + diff --git a/suckless/slock/patches/slock-mediakeys-20170111-2d2a21a.diff b/suckless/slock/patches/slock-mediakeys-20170111-2d2a21a.diff new file mode 100644 index 00000000..515449f2 --- /dev/null +++ b/suckless/slock/patches/slock-mediakeys-20170111-2d2a21a.diff @@ -0,0 +1,25 @@ +From ca087d5b0e8cd4ac596c161dbf569640c7754b46 Mon Sep 17 00:00:00 2001 +From: Klemens Nanni +Date: Sat, 7 Jan 2017 02:18:09 +0100 +Subject: [PATCH] Update 'mediakeys' patch to 20170111 + +--- + slock.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/slock.c b/slock.c +index ac26cc8..4d81ca6 100644 +--- a/slock.c ++++ b/slock.c +@@ -186,7 +186,7 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens, + case XF86XK_AudioStop: + case XF86XK_AudioPrev: + case XF86XK_AudioNext: +- XSendEvent(dpy, locks[0]->root, True, KeyPressMask, &ev); ++ XSendEvent(dpy, DefaultRootWindow(dpy), True, KeyPressMask, &ev); + break; + case XK_Return: + passwd[len] = '\0'; +-- +2.11.0 + diff --git a/suckless/slock/patches/slock-message-20191002-b46028b.diff b/suckless/slock/patches/slock-message-20191002-b46028b.diff new file mode 100644 index 00000000..54b17e67 --- /dev/null +++ b/suckless/slock/patches/slock-message-20191002-b46028b.diff @@ -0,0 +1,250 @@ +From b46028b2797b886154258dcafe71c349cdc68b43 Mon Sep 17 00:00:00 2001 +From: Blair Drummond +Date: Wed, 2 Oct 2019 14:59:00 -0400 +Subject: [PATCH] Add a message command. Fixes old version's bugs. + +--- + config.def.h | 9 ++++ + config.mk | 2 +- + slock.1 | 7 +++ + slock.c | 120 +++++++++++++++++++++++++++++++++++++++++++++++++-- + 4 files changed, 133 insertions(+), 5 deletions(-) + +diff --git a/config.def.h b/config.def.h +index 9855e21..c2a0ab2 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -10,3 +10,12 @@ static const char *colorname[NUMCOLS] = { + + /* treat a cleared input like a wrong password (color) */ + static const int failonclear = 1; ++ ++/* default message */ ++static const char * message = "Suckless: Software that sucks less."; ++ ++/* text color */ ++static const char * text_color = "#ffffff"; ++ ++/* text size (must be a valid size) */ ++static const char * font_name = "6x10"; +diff --git a/config.mk b/config.mk +index 74429ae..c4ccf66 100644 +--- a/config.mk ++++ b/config.mk +@@ -12,7 +12,7 @@ X11LIB = /usr/X11R6/lib + + # includes and libs + INCS = -I. -I/usr/include -I${X11INC} +-LIBS = -L/usr/lib -lc -lcrypt -L${X11LIB} -lX11 -lXext -lXrandr ++LIBS = -L/usr/lib -lc -lcrypt -L${X11LIB} -lX11 -lXext -lXrandr -lXinerama + + # flags + CPPFLAGS = -DVERSION=\"${VERSION}\" -D_DEFAULT_SOURCE -DHAVE_SHADOW_H +diff --git a/slock.1 b/slock.1 +index 82cdcd6..946165f 100644 +--- a/slock.1 ++++ b/slock.1 +@@ -6,6 +6,8 @@ + .Sh SYNOPSIS + .Nm + .Op Fl v ++.Op Fl f ++.Op Fl m Ar message + .Op Ar cmd Op Ar arg ... + .Sh DESCRIPTION + .Nm +@@ -16,6 +18,11 @@ is executed after the screen has been locked. + .Bl -tag -width Ds + .It Fl v + Print version information to stdout and exit. ++.It Fl f ++List all valid X fonts and exit. ++.It Fl m Ar message ++Overrides default slock lock message. ++.TP + .El + .Sh SECURITY CONSIDERATIONS + To make sure a locked screen can not be bypassed by switching VTs +diff --git a/slock.c b/slock.c +index 5ae738c..610929b 100644 +--- a/slock.c ++++ b/slock.c +@@ -15,6 +15,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -24,6 +25,9 @@ + + char *argv0; + ++/* global count to prevent repeated error messages */ ++int count_error = 0; ++ + enum { + INIT, + INPUT, +@@ -83,6 +87,98 @@ dontkillme(void) + } + #endif + ++static void ++writemessage(Display *dpy, Window win, int screen) ++{ ++ int len, line_len, width, height, s_width, s_height, i, j, k, tab_replace, tab_size; ++ XGCValues gr_values; ++ XFontStruct *fontinfo; ++ XColor color, dummy; ++ XineramaScreenInfo *xsi; ++ GC gc; ++ fontinfo = XLoadQueryFont(dpy, font_name); ++ ++ if (fontinfo == NULL) { ++ if (count_error == 0) { ++ fprintf(stderr, "slock: Unable to load font \"%s\"\n", font_name); ++ fprintf(stderr, "slock: Try listing fonts with 'slock -f'\n"); ++ count_error++; ++ } ++ return; ++ } ++ ++ tab_size = 8 * XTextWidth(fontinfo, " ", 1); ++ ++ XAllocNamedColor(dpy, DefaultColormap(dpy, screen), ++ text_color, &color, &dummy); ++ ++ gr_values.font = fontinfo->fid; ++ gr_values.foreground = color.pixel; ++ gc=XCreateGC(dpy,win,GCFont+GCForeground, &gr_values); ++ ++ /* To prevent "Uninitialized" warnings. */ ++ xsi = NULL; ++ ++ /* ++ * Start formatting and drawing text ++ */ ++ ++ len = strlen(message); ++ ++ /* Max max line length (cut at '\n') */ ++ line_len = 0; ++ k = 0; ++ for (i = j = 0; i < len; i++) { ++ if (message[i] == '\n') { ++ if (i - j > line_len) ++ line_len = i - j; ++ k++; ++ i++; ++ j = i; ++ } ++ } ++ /* If there is only one line */ ++ if (line_len == 0) ++ line_len = len; ++ ++ if (XineramaIsActive(dpy)) { ++ xsi = XineramaQueryScreens(dpy, &i); ++ s_width = xsi[0].width; ++ s_height = xsi[0].height; ++ } else { ++ s_width = DisplayWidth(dpy, screen); ++ s_height = DisplayHeight(dpy, screen); ++ } ++ ++ height = s_height*3/7 - (k*20)/3; ++ width = (s_width - XTextWidth(fontinfo, message, line_len))/2; ++ ++ /* Look for '\n' and print the text between them. */ ++ for (i = j = k = 0; i <= len; i++) { ++ /* i == len is the special case for the last line */ ++ if (i == len || message[i] == '\n') { ++ tab_replace = 0; ++ while (message[j] == '\t' && j < i) { ++ tab_replace++; ++ j++; ++ } ++ ++ XDrawString(dpy, win, gc, width + tab_size*tab_replace, height + 20*k, message + j, i - j); ++ while (i < len && message[i] == '\n') { ++ i++; ++ j = i; ++ k++; ++ } ++ } ++ } ++ ++ /* xsi should not be NULL anyway if Xinerama is active, but to be safe */ ++ if (XineramaIsActive(dpy) && xsi != NULL) ++ XFree(xsi); ++} ++ ++ ++ + static const char * + gethash(void) + { +@@ -194,6 +290,7 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens, + locks[screen]->win, + locks[screen]->colors[color]); + XClearWindow(dpy, locks[screen]->win); ++ writemessage(dpy, locks[screen]->win, screen); + } + oldc = color; + } +@@ -300,7 +397,7 @@ lockscreen(Display *dpy, struct xrandr *rr, int screen) + static void + usage(void) + { +- die("usage: slock [-v] [cmd [arg ...]]\n"); ++ die("usage: slock [-v] [-f] [-m message] [cmd [arg ...]]\n"); + } + + int +@@ -313,12 +410,25 @@ main(int argc, char **argv) { + gid_t dgid; + const char *hash; + Display *dpy; +- int s, nlocks, nscreens; ++ int i, s, nlocks, nscreens; ++ int count_fonts; ++ char **font_names; + + ARGBEGIN { + case 'v': + fprintf(stderr, "slock-"VERSION"\n"); + return 0; ++ case 'm': ++ message = EARGF(usage()); ++ break; ++ case 'f': ++ if (!(dpy = XOpenDisplay(NULL))) ++ die("slock: cannot open display\n"); ++ font_names = XListFonts(dpy, "*", 10000 /* list 10000 fonts*/, &count_fonts); ++ for (i=0; iwin, s); + nlocks++; +- else ++ } else { + break; ++ } + } + XSync(dpy, 0); + +-- +2.20.1 + diff --git a/suckless/slock/slock.1 b/suckless/slock/slock.1 new file mode 100644 index 00000000..946165fa --- /dev/null +++ b/suckless/slock/slock.1 @@ -0,0 +1,46 @@ +.Dd 2016-08-23 +.Dt SLOCK 1 +.Sh NAME +.Nm slock +.Nd simple X screen locker +.Sh SYNOPSIS +.Nm +.Op Fl v +.Op Fl f +.Op Fl m Ar message +.Op Ar cmd Op Ar arg ... +.Sh DESCRIPTION +.Nm +is a simple X screen locker. If provided, +.Ar cmd Op Ar arg ... +is executed after the screen has been locked. +.Sh OPTIONS +.Bl -tag -width Ds +.It Fl v +Print version information to stdout and exit. +.It Fl f +List all valid X fonts and exit. +.It Fl m Ar message +Overrides default slock lock message. +.TP +.El +.Sh SECURITY CONSIDERATIONS +To make sure a locked screen can not be bypassed by switching VTs +or killing the X server with Ctrl+Alt+Backspace, it is recommended +to disable both in +.Xr xorg.conf 5 +for maximum security: +.Bd -literal -offset left +Section "ServerFlags" + Option "DontVTSwitch" "True" + Option "DontZap" "True" +EndSection +.Ed +.Sh EXAMPLES +$ +.Nm +/usr/sbin/s2ram +.Sh CUSTOMIZATION +.Nm +can be customized by creating a custom config.h from config.def.h and +(re)compiling the source code. This keeps it fast, secure and simple. diff --git a/suckless/slock/slock.c b/suckless/slock/slock.c new file mode 100644 index 00000000..3df4ae2c --- /dev/null +++ b/suckless/slock/slock.c @@ -0,0 +1,516 @@ +/* See LICENSE file for license details. */ +#define _XOPEN_SOURCE 500 +#if HAVE_SHADOW_H +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "arg.h" +#include "util.h" + +char *argv0; + +/* global count to prevent repeated error messages */ +int count_error = 0; + +enum { + INIT, + INPUT, + FAILED, + CAPS, + NUMCOLS +}; + +struct lock { + int screen; + Window root, win; + Pixmap pmap; + unsigned long colors[NUMCOLS]; +}; + +struct xrandr { + int active; + int evbase; + int errbase; +}; + +#include "config.h" + +static void +die(const char *errstr, ...) +{ + va_list ap; + + va_start(ap, errstr); + vfprintf(stderr, errstr, ap); + va_end(ap); + exit(1); +} + +#ifdef __linux__ +#include +#include + +static void +dontkillme(void) +{ + FILE *f; + const char oomfile[] = "/proc/self/oom_score_adj"; + + if (!(f = fopen(oomfile, "w"))) { + if (errno == ENOENT) + return; + die("slock: fopen %s: %s\n", oomfile, strerror(errno)); + } + fprintf(f, "%d", OOM_SCORE_ADJ_MIN); + if (fclose(f)) { + if (errno == EACCES) + die("slock: unable to disable OOM killer. " + "Make sure to suid or sgid slock.\n"); + else + die("slock: fclose %s: %s\n", oomfile, strerror(errno)); + } +} +#endif + +static void +writemessage(Display *dpy, Window win, int screen) +{ + int len, line_len, width, height, s_width, s_height, i, j, k, tab_replace, tab_size; + XGCValues gr_values; + XFontStruct *fontinfo; + XColor color, dummy; + XineramaScreenInfo *xsi; + GC gc; + fontinfo = XLoadQueryFont(dpy, font_name); + + if (fontinfo == NULL) { + if (count_error == 0) { + fprintf(stderr, "slock: Unable to load font \"%s\"\n", font_name); + fprintf(stderr, "slock: Try listing fonts with 'slock -f'\n"); + count_error++; + } + return; + } + + tab_size = 8 * XTextWidth(fontinfo, " ", 1); + + XAllocNamedColor(dpy, DefaultColormap(dpy, screen), + text_color, &color, &dummy); + + gr_values.font = fontinfo->fid; + gr_values.foreground = color.pixel; + gc=XCreateGC(dpy,win,GCFont+GCForeground, &gr_values); + + /* To prevent "Uninitialized" warnings. */ + xsi = NULL; + + /* + * Start formatting and drawing text + */ + + len = strlen(message); + + /* Max max line length (cut at '\n') */ + line_len = 0; + k = 0; + for (i = j = 0; i < len; i++) { + if (message[i] == '\n') { + if (i - j > line_len) + line_len = i - j; + k++; + i++; + j = i; + } + } + /* If there is only one line */ + if (line_len == 0) + line_len = len; + + if (XineramaIsActive(dpy)) { + xsi = XineramaQueryScreens(dpy, &i); + s_width = xsi[0].width; + s_height = xsi[0].height; + } else { + s_width = DisplayWidth(dpy, screen); + s_height = DisplayHeight(dpy, screen); + } + + height = s_height*3/7 - (k*20)/3; + width = (s_width - XTextWidth(fontinfo, message, line_len))/2; + + /* Look for '\n' and print the text between them. */ + for (i = j = k = 0; i <= len; i++) { + /* i == len is the special case for the last line */ + if (i == len || message[i] == '\n') { + tab_replace = 0; + while (message[j] == '\t' && j < i) { + tab_replace++; + j++; + } + + XDrawString(dpy, win, gc, width + tab_size*tab_replace, height + 20*k, message + j, i - j); + while (i < len && message[i] == '\n') { + i++; + j = i; + k++; + } + } + } + + /* xsi should not be NULL anyway if Xinerama is active, but to be safe */ + if (XineramaIsActive(dpy) && xsi != NULL) + XFree(xsi); +} + + + +static const char * +gethash(void) +{ + const char *hash; + struct passwd *pw; + + /* Check if the current user has a password entry */ + errno = 0; + if (!(pw = getpwuid(getuid()))) { + if (errno) + die("slock: getpwuid: %s\n", strerror(errno)); + else + die("slock: cannot retrieve password entry\n"); + } + hash = pw->pw_passwd; + +#if HAVE_SHADOW_H + if (!strcmp(hash, "x")) { + struct spwd *sp; + if (!(sp = getspnam(pw->pw_name))) + die("slock: getspnam: cannot retrieve shadow entry. " + "Make sure to suid or sgid slock.\n"); + hash = sp->sp_pwdp; + } +#else + if (!strcmp(hash, "*")) { +#ifdef __OpenBSD__ + if (!(pw = getpwuid_shadow(getuid()))) + die("slock: getpwnam_shadow: cannot retrieve shadow entry. " + "Make sure to suid or sgid slock.\n"); + hash = pw->pw_passwd; +#else + die("slock: getpwuid: cannot retrieve shadow entry. " + "Make sure to suid or sgid slock.\n"); +#endif /* __OpenBSD__ */ + } +#endif /* HAVE_SHADOW_H */ + + return hash; +} + +static void +readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens, + const char *hash) +{ + XRRScreenChangeNotifyEvent *rre; + char buf[32], passwd[256], *inputhash; + int caps, num, screen, running, failure, oldc; + unsigned int len, color, indicators; + KeySym ksym; + XEvent ev; + + len = 0; + caps = 0; + running = 1; + failure = 0; + oldc = INIT; + + if (!XkbGetIndicatorState(dpy, XkbUseCoreKbd, &indicators)) + caps = indicators & 1; + + while (running && !XNextEvent(dpy, &ev)) { + if (ev.type == KeyPress) { + explicit_bzero(&buf, sizeof(buf)); + num = XLookupString(&ev.xkey, buf, sizeof(buf), &ksym, 0); + if (IsKeypadKey(ksym)) { + if (ksym == XK_KP_Enter) + ksym = XK_Return; + else if (ksym >= XK_KP_0 && ksym <= XK_KP_9) + ksym = (ksym - XK_KP_0) + XK_0; + } + if (IsFunctionKey(ksym) || + IsKeypadKey(ksym) || + IsMiscFunctionKey(ksym) || + IsPFKey(ksym) || + IsPrivateKeypadKey(ksym)) + continue; + switch (ksym) { + case XK_Return: + passwd[len] = '\0'; + errno = 0; + if (!(inputhash = crypt(passwd, hash))) + fprintf(stderr, "slock: crypt: %s\n", strerror(errno)); + else + running = !!strcmp(inputhash, hash); + if (running) { + XBell(dpy, 100); + failure = 1; + } + explicit_bzero(&passwd, sizeof(passwd)); + len = 0; + break; + case XK_Escape: + explicit_bzero(&passwd, sizeof(passwd)); + len = 0; + break; + case XK_BackSpace: + if (len) + passwd[--len] = '\0'; + break; + case XK_Caps_Lock: + caps = !caps; + break; + default: + if (num && !iscntrl((int)buf[0]) && + (len + num < sizeof(passwd))) { + memcpy(passwd + len, buf, num); + len += num; + } + break; + } + color = len ? (caps ? CAPS : INPUT) : (failure || failonclear ? FAILED : INIT); + if (running && oldc != color) { + for (screen = 0; screen < nscreens; screen++) { + XSetWindowBackground(dpy, + locks[screen]->win, + locks[screen]->colors[color]); + XClearWindow(dpy, locks[screen]->win); + writemessage(dpy, locks[screen]->win, screen); + } + oldc = color; + } + } else if (rr->active && ev.type == rr->evbase + RRScreenChangeNotify) { + rre = (XRRScreenChangeNotifyEvent*)&ev; + for (screen = 0; screen < nscreens; screen++) { + if (locks[screen]->win == rre->window) { + if (rre->rotation == RR_Rotate_90 || + rre->rotation == RR_Rotate_270) + XResizeWindow(dpy, locks[screen]->win, + rre->height, rre->width); + else + XResizeWindow(dpy, locks[screen]->win, + rre->width, rre->height); + XClearWindow(dpy, locks[screen]->win); + break; + } + } + } else { + for (screen = 0; screen < nscreens; screen++) + XRaiseWindow(dpy, locks[screen]->win); + } + } +} + +static struct lock * +lockscreen(Display *dpy, struct xrandr *rr, int screen) +{ + char curs[] = {0, 0, 0, 0, 0, 0, 0, 0}; + int i, ptgrab, kbgrab; + struct lock *lock; + XColor color, dummy; + XSetWindowAttributes wa; + Cursor invisible; + + if (dpy == NULL || screen < 0 || !(lock = malloc(sizeof(struct lock)))) + return NULL; + + lock->screen = screen; + lock->root = RootWindow(dpy, lock->screen); + + for (i = 0; i < NUMCOLS; i++) { + XAllocNamedColor(dpy, DefaultColormap(dpy, lock->screen), + colorname[i], &color, &dummy); + lock->colors[i] = color.pixel; + } + + /* init */ + wa.override_redirect = 1; + wa.background_pixel = lock->colors[INIT]; + lock->win = XCreateWindow(dpy, lock->root, 0, 0, + DisplayWidth(dpy, lock->screen), + DisplayHeight(dpy, lock->screen), + 0, DefaultDepth(dpy, lock->screen), + CopyFromParent, + DefaultVisual(dpy, lock->screen), + CWOverrideRedirect | CWBackPixel, &wa); + lock->pmap = XCreateBitmapFromData(dpy, lock->win, curs, 8, 8); + invisible = XCreatePixmapCursor(dpy, lock->pmap, lock->pmap, + &color, &color, 0, 0); + XDefineCursor(dpy, lock->win, invisible); + + /* Try to grab mouse pointer *and* keyboard for 600ms, else fail the lock */ + for (i = 0, ptgrab = kbgrab = -1; i < 6; i++) { + if (ptgrab != GrabSuccess) { + ptgrab = XGrabPointer(dpy, lock->root, False, + ButtonPressMask | ButtonReleaseMask | + PointerMotionMask, GrabModeAsync, + GrabModeAsync, None, invisible, CurrentTime); + } + if (kbgrab != GrabSuccess) { + kbgrab = XGrabKeyboard(dpy, lock->root, True, + GrabModeAsync, GrabModeAsync, CurrentTime); + } + + /* input is grabbed: we can lock the screen */ + if (ptgrab == GrabSuccess && kbgrab == GrabSuccess) { + XMapRaised(dpy, lock->win); + if (rr->active) + XRRSelectInput(dpy, lock->win, RRScreenChangeNotifyMask); + + XSelectInput(dpy, lock->root, SubstructureNotifyMask); + return lock; + } + + /* retry on AlreadyGrabbed but fail on other errors */ + if ((ptgrab != AlreadyGrabbed && ptgrab != GrabSuccess) || + (kbgrab != AlreadyGrabbed && kbgrab != GrabSuccess)) + break; + + usleep(100000); + } + + /* we couldn't grab all input: fail out */ + if (ptgrab != GrabSuccess) + fprintf(stderr, "slock: unable to grab mouse pointer for screen %d\n", + screen); + if (kbgrab != GrabSuccess) + fprintf(stderr, "slock: unable to grab keyboard for screen %d\n", + screen); + return NULL; +} + +static void +usage(void) +{ + die("usage: slock [-v] [-f] [-m message] [cmd [arg ...]]\n"); +} + +int +main(int argc, char **argv) { + struct xrandr rr; + struct lock **locks; + struct passwd *pwd; + struct group *grp; + uid_t duid; + gid_t dgid; + const char *hash; + Display *dpy; + int i, s, nlocks, nscreens; + int count_fonts; + char **font_names; + + ARGBEGIN { + case 'v': + fprintf(stderr, "slock-"VERSION"\n"); + return 0; + case 'm': + message = EARGF(usage()); + break; + case 'f': + if (!(dpy = XOpenDisplay(NULL))) + die("slock: cannot open display\n"); + font_names = XListFonts(dpy, "*", 10000 /* list 10000 fonts*/, &count_fonts); + for (i=0; ipw_uid; + errno = 0; + if (!(grp = getgrnam(group))) + die("slock: getgrnam %s: %s\n", group, + errno ? strerror(errno) : "group entry not found"); + dgid = grp->gr_gid; + +#ifdef __linux__ + dontkillme(); +#endif + + hash = gethash(); + errno = 0; + if (!crypt("", hash)) + die("slock: crypt: %s\n", strerror(errno)); + + if (!(dpy = XOpenDisplay(NULL))) + die("slock: cannot open display\n"); + + /* drop privileges */ + if (setgroups(0, NULL) < 0) + die("slock: setgroups: %s\n", strerror(errno)); + if (setgid(dgid) < 0) + die("slock: setgid: %s\n", strerror(errno)); + if (setuid(duid) < 0) + die("slock: setuid: %s\n", strerror(errno)); + + /* check for Xrandr support */ + rr.active = XRRQueryExtension(dpy, &rr.evbase, &rr.errbase); + + /* get number of screens in display "dpy" and blank them */ + nscreens = ScreenCount(dpy); + if (!(locks = calloc(nscreens, sizeof(struct lock *)))) + die("slock: out of memory\n"); + for (nlocks = 0, s = 0; s < nscreens; s++) { + if ((locks[s] = lockscreen(dpy, &rr, s)) != NULL) { + writemessage(dpy, locks[s]->win, s); + nlocks++; + } else { + break; + } + } + XSync(dpy, 0); + + /* did we manage to lock everything? */ + if (nlocks != nscreens) + return 1; + + /* run post-lock command */ + if (argc > 0) { + switch (fork()) { + case -1: + die("slock: fork failed: %s\n", strerror(errno)); + case 0: + if (close(ConnectionNumber(dpy)) < 0) + die("slock: close: %s\n", strerror(errno)); + execvp(argv[0], argv); + fprintf(stderr, "slock: execvp %s: %s\n", argv[0], strerror(errno)); + _exit(1); + } + } + + /* everything is now blank. Wait for the correct password */ + readpw(dpy, &rr, locks, nscreens, hash); + + return 0; +} diff --git a/suckless/slock/util.h b/suckless/slock/util.h new file mode 100644 index 00000000..6f748b89 --- /dev/null +++ b/suckless/slock/util.h @@ -0,0 +1,2 @@ +#undef explicit_bzero +void explicit_bzero(void *, size_t); diff --git a/theming/gtkrc-2.0 b/theming/gtkrc-2.0 deleted file mode 100644 index b08a9474..00000000 --- a/theming/gtkrc-2.0 +++ /dev/null @@ -1,8 +0,0 @@ -# Auto-written by gtk2_prefs. Do not edit. - -gtk-theme-name = "material-ocean" -style "user-font" -{ - font_name="CaskaydiaCove Nerd Font Mono 11" -} -widget_class "*" style "user-font" diff --git a/vim/nvim/init.vim b/vim/nvim/init.vim deleted file mode 100644 index 0b435a2e..00000000 --- a/vim/nvim/init.vim +++ /dev/null @@ -1,4 +0,0 @@ -set runtimepath^=~/.vim runtimepath+=~/.vim/after -let &packpath = &runtimepath -source ~/.vimrc - diff --git a/zsh/secret.secret b/zsh/secret.secret deleted file mode 100644 index 0417db55..00000000 Binary files a/zsh/secret.secret and /dev/null differ