diff --git a/arch-setup/AUR.txt b/arch-setup/AUR.txt index 96b5f9e4..6203eb34 100644 --- a/arch-setup/AUR.txt +++ b/arch-setup/AUR.txt @@ -1,13 +1,13 @@ activitywatch-bin aic94xx-firmware antibody -betterdiscord +betterdiscord-git betterdiscordctl-git -betterlockscreen bfg bitwarden bitwarden-cli brave-bin +brave-nightly-bin canto-next-git checkupdates+aur checkupdates-aur @@ -23,12 +23,18 @@ google-chrome google-cloud-sdk googler gtk2_prefs +haskell-haddock-library1.9 i3lock-color ifuse +jellyfin-mpv-shim jetbrains-toolbox lf +libsvg +libsvg-cairo +libxft-bgra ly mailspring +mpd-mpris mpris-ctl mpv-mpris-git mutt-wizard @@ -39,16 +45,25 @@ notion-enhancer numix-icon-theme-git nvm pam-gnupg +parcel-bundler +peaclock +perl-any-moose perl-checkupdates-aur +perl-date-holidayparser perl-www-aur pipes.sh +pistol-git plymouth-git plymouth-theme-cubes-git plymouth-theme-darth-vader-git postman-bin python-click-spinner python-delorean +python-jellyfin-apiclient +python-mpv +python-mpv-jsonipc qt5-styleplugins +r8152-dkms readability-cli renpy-sdk rofi-bluetooth-git @@ -61,7 +76,6 @@ spotifyd-full-git sselp sublime-text-3 surf -tela-icon-theme terminal_dimensions-git termpdf-git tmsu-bin @@ -72,12 +86,14 @@ vtop vue-cli wallabag-client wd719x-firmware +webkitgtk-bin whatsapp-nativefier-dark xbanish-timeout-git xchat-se xkb-switch xkblayout-state-git xmenu +xsvg yaft ytfzf zoom diff --git a/arch-setup/chroot.sh b/arch-setup/chroot.sh index cbaa2231..44859f06 100755 --- a/arch-setup/chroot.sh +++ b/arch-setup/chroot.sh @@ -128,6 +128,8 @@ pacman -R nano # uninstall nano, eww rm -rf /etc/sudoers.d/nopwd echo "%wheel ALL=(ALL) ALL" >> /etc/sudoers.d/wheel +rm -rf /bin/sh +ln -sf /bin/dash /bin/sh echo "SETUP COMPLETE" bash diff --git a/arch-setup/fetch_keys.sh b/arch-setup/fetch_keys.sh index 9a77323e..0a495d38 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 -~/.local/bin/jsteg reveal $loc > /tmp/out.zip.gpg +~/.local/share/bin/jsteg reveal $loc > /tmp/out.zip.gpg echo "Please enter your passphrase: " gpg -d /tmp/out.zip.gpg > /tmp/out.zip diff --git a/arch-setup/nonAUR.txt b/arch-setup/nonAUR.txt index 8a8dc1e8..8f2e0a5c 100644 --- a/arch-setup/nonAUR.txt +++ b/arch-setup/nonAUR.txt @@ -28,12 +28,14 @@ atkmm atool attica attr +audiofile audit autoconf autoconf-archive autoconf2.13 automake avahi +babl baobab base bash @@ -63,6 +65,7 @@ ca-certificates ca-certificates-mozilla ca-certificates-utils cairo +cairo-perl cairomm calcurse calibre @@ -70,13 +73,16 @@ cantarell-fonts canto-curses capnproto capstone +catdoc cbindgen cblas cdparanoia +ceph-libs cheese chmlib chromaprint chrony +cifs-utils cinnamon-desktop clang clipnotify @@ -89,8 +95,8 @@ code cogl colord compiler-rt -conky coreutils +cpanminus cpupower cracklib cronie @@ -132,6 +138,7 @@ electron6 elinks enchant engrampa +ethtool exa exempi exfat-utils @@ -154,6 +161,7 @@ firefox-developer-edition flac fltk fluidsynth +fmt fontconfig fontforge foremost @@ -179,6 +187,7 @@ gdk-pixbuf-xlib gdk-pixbuf2 gdl gdm +gegl geoclue geocode-glib gettext @@ -186,12 +195,14 @@ ghc-libs ghostscript giblib giflib +gimp girara git gjs gksu glew glib-networking +glib-perl glib2 glib2-docs glibc @@ -249,6 +260,7 @@ gstreamer gtk-doc gtk-update-icon-cache gtk2 +gtk2-perl gtk3 gtkmm3 gtkspell3 @@ -314,7 +326,6 @@ haskell-errors haskell-file-embed haskell-glob haskell-haddock-library -haskell-haddock-library1.9 haskell-hashable haskell-hourglass haskell-hslua @@ -410,9 +421,11 @@ imagemagick imake imlib2 inetutils +iniparser inkscape intel-ucode intltool +iperf iproute2 iptables iputils @@ -484,7 +497,9 @@ l-smash lame lapack lcms2 +ldb ldns +lensfun less lhasa lib32-gcc-libs @@ -503,6 +518,7 @@ lib32-zstd libabw libaec libaio +libao libarchive libass libassuan @@ -515,6 +531,7 @@ libavtp libblockdev libbluray libbs2b +libbsd libbytesize libcaca libcanberra @@ -606,12 +623,14 @@ liblqr liblrdf libluv libmad +libmanette libmatroska libmaxminddb libmediainfo libmfx libmicrodns libmicrohttpd +libmikmod libmm-glib libmms libmng @@ -619,15 +638,18 @@ libmnl libmodplug libmpc libmpcdec +libmpdclient libmpeg2 libmspub libmtp libmwaw +libmypaint libndp libnet libnetfilter_conntrack libnewt libnfnetlink +libnfs libnftnl libnghttp2 libnice @@ -672,6 +694,7 @@ libsasl libseccomp libsecret libshout +libsidplayfp libsigc++ libsigsegv libsm @@ -697,11 +720,13 @@ libtiff libtirpc libtommath libtool +libtorrent-rasterbar libuninameslist libunistring libunrar libunwind libupnp +liburing libusb libusb-compat libusbmuxd @@ -718,6 +743,7 @@ libvterm libwacom libwebp libwmf +libwnck3 libwpd libwpe libwpg @@ -737,7 +763,6 @@ libxfce4ui libxfce4util libxfixes libxfont2 -libxft libxi libxinerama libxkbcommon @@ -750,6 +775,7 @@ libxnvctrl libxpm libxrandr libxrender +libxres libxshmfence libxslt libxss @@ -793,6 +819,7 @@ mailcap make mallard-ducktype man-db +man-pages mariadb mariadb-clients mariadb-libs @@ -804,6 +831,7 @@ media-player-info mediainfo mesa meson +metis minizip mjpegtools mkinitcpio @@ -813,6 +841,8 @@ mlocate mobile-broadband-provider-info mono mozilla-common +mpc +mpd mpfr mpg123 mpv @@ -821,8 +851,10 @@ msmtp mtdev mujs mutter +mypaint-brushes1 mysql-workbench nasm +ncmpcpp ncurses ncurses5-compat-libs ndctl @@ -852,6 +884,7 @@ nspr nss ntfs-3g nuspell +oath-toolkit odt2txt oniguruma openal @@ -878,6 +911,7 @@ pambase pamixer pandoc pango +pango-perl pangomm parted pass @@ -887,9 +921,21 @@ pciutils pcre pcre2 perl +perl-b-hooks-endofscope +perl-class-load +perl-class-load-xs perl-clone +perl-cpan-meta-check +perl-data-optlist +perl-devel-globaldestruction +perl-dist-checkconflicts perl-encode-locale perl-error +perl-eval-closure +perl-exporter-tiny +perl-extutils-config +perl-extutils-helpers +perl-extutils-installpaths perl-file-listing perl-file-next perl-file-remove @@ -907,21 +953,47 @@ perl-io-html perl-io-socket-ssl perl-json perl-libwww +perl-list-moreutils +perl-list-moreutils-xs +perl-locale-gettext perl-lwp-mediatypes perl-lwp-protocol-https perl-mailtools perl-module-build +perl-module-build-tiny +perl-module-implementation perl-module-install +perl-module-runtime perl-module-scandeps +perl-moose +perl-mouse +perl-mro-compat +perl-namespace-autoclean +perl-namespace-clean perl-net-http perl-net-ssleay +perl-package-deprecationmanager +perl-package-stash +perl-package-stash-xs perl-par-dist +perl-params-util +perl-parse-yapp +perl-sub-exporter +perl-sub-exporter-progressive +perl-sub-identify +perl-sub-install +perl-sub-name +perl-task-weaken +perl-test-checkdeps +perl-test-fatal perl-timedate perl-try-tiny perl-uri +perl-variable-magic perl-www-robotrules perl-xml-parser perl-yaml-tiny +phonon-qt4 phonon-qt5 phonon-qt5-gstreamer php @@ -932,11 +1004,13 @@ pipewire-media-session pixman pkgconf playerctl +pngquant podofo polkit polkit-gnome polkit-qt5 poppler +poppler-data poppler-glib popt portaudio @@ -970,6 +1044,7 @@ python-beautifulsoup4 python-bleach python-cachecontrol python-cairo +python-capstone python-cchardet python-cffi python-chardet @@ -994,6 +1069,7 @@ python-docutils python-entrypoints python-exifread python-feedparser +python-filebytes python-gnupg python-gobject python-gpgme @@ -1063,6 +1139,7 @@ python-pycparser python-pycryptodome python-pycups python-pycurl +python-pydantic python-pyexiftool python-pygments python-pykwalify @@ -1088,6 +1165,7 @@ python-requests-toolbelt python-resolvelib python-retrying python-rfc3986 +python-ropper python-ruamel-yaml python-ruamel.yaml.clib python-scandir @@ -1118,6 +1196,7 @@ python-toml python-tornado python-tqdm python-traitlets +python-typing_extensions python-tzlocal python-unidecode python-unrardll @@ -1127,6 +1206,7 @@ python-vobject python-watchdog python-wcwidth python-webencodings +python-websocket-client python-wheel python-wrapt python-xlib @@ -1176,14 +1256,18 @@ python2-toml python2-urllib3 python2-webencodings python2-zipp +qbittorrent qpdf +qt4 qt5-base qt5-declarative qt5-graphicaleffects qt5-imageformats qt5-location qt5-multimedia +qt5-quickcontrols qt5-quickcontrols2 +qt5-script qt5-speech qt5-svg qt5-tools @@ -1194,6 +1278,7 @@ qt5-websockets qt5-x11extras qt5ct qtkeychain-qt5 +qutebrowser radare2 ranger rapidjson @@ -1229,6 +1314,7 @@ ruby-thor rubygems run-parts rust +samba sbc sbsigntools scdoc @@ -1246,7 +1332,9 @@ shaderc shadow shared-mime-info shotwell +simplescreenrecorder slang +smbclient snappy solid sonic-visualiser @@ -1266,7 +1354,9 @@ sshfs startup-notification stegoveritas stfl +strace sudo +suitesparse svt-av1 svt-hevc sxiv @@ -1280,6 +1370,8 @@ t1lib taglib talloc tar +task +taskwarrior-tui tbb tcl tcsh @@ -1287,6 +1379,7 @@ tdb telegram-desktop termite termite-terminfo +tevent texinfo thermald thin-provisioning-tools @@ -1294,6 +1387,7 @@ thunar thunderbird thunderbird-extension-enigmail tidy +tk tlp tmate tmux @@ -1315,6 +1409,7 @@ twine twolame tzdata uchardet +udevil udisks2 ueberzug unclutter @@ -1376,6 +1471,7 @@ xcb-util-renderutil xcb-util-wm xcb-util-xrm xclip +xcompmgr xdg-dbus-proxy xdg-utils xf86-input-libinput diff --git a/config/X11/xinitrc b/config/X11/xinitrc index 82a299e2..4663236c 100755 --- a/config/X11/xinitrc +++ b/config/X11/xinitrc @@ -19,10 +19,10 @@ 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 & -~/.local/bin/daily-update -~/.local/bin/keyboard > /tmp/keyboard.out 2> /tmp/keyboard.err -xrdb ~/.Xresources & -~/.local/bin/mailsync & +~/.local/share/bin/daily-update +~/.local/share/bin/keyboard > /tmp/keyboard.out 2> /tmp/keyboard.err +xrdb ~/.config/X11/Xresources & +~/.local/share/bin/mailsync & if [ "$NEXTCLOUD" = true ] ; then nextcloud --background & @@ -43,7 +43,7 @@ fi mpd & mpd-mpris & touch ~/.cache/nextcloud-track -xss-lock -- /home/yigit/.local/bin/lock & +xss-lock -- /home/yigit/.local/share/bin/lock & echo "on" > ~/.cache/screensaver dbus-update-activation-environment --systemd DISPLAY picom --no-fading-openclose & @@ -57,7 +57,7 @@ pactl load-module module-x11-bell sample=x11-bell display=$DISPLAY xset b 100 xset dpms 600 600 600 -~/.local/bin/devmon --exec-on-drive "/sbin/notify-send '禍 drive mounted' '%l (%f) at %d '" \ +~/.local/share/bin/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/config/tmux/tmux.conf b/config/tmux/tmux.conf index bf866fc2..892ca6f9 100644 --- a/config/tmux/tmux.conf +++ b/config/tmux/tmux.conf @@ -155,5 +155,5 @@ set -g @tmux_power_show_web_reachable true if "test ! -d ~/.local/share/tmux/plugins/tpm" \ "run 'git clone https://github.com/tmux-plugins/tpm ~/.local/share/tmux/plugins/tpm && ~/.local/share/tmux/plugins/tpm/bin/install_plugins'" -run '~/.local/share/tmux/plugins/tpm/tpm' +run -b '~/.local/share/tmux/plugins/tpm/tpm' diff --git a/config/zathura/a b/config/zathura/a deleted file mode 100644 index e3079b59..00000000 --- a/config/zathura/a +++ /dev/null @@ -1,4 +0,0 @@ -set synctex true -set synctex-editor-command "vim +%{line} %{input}" - -map recolor diff --git a/config/zathura/zathurarc b/config/zathura/zathurarc index 3cf62cf4..81aaa42d 100644 --- a/config/zathura/zathurarc +++ b/config/zathura/zathurarc @@ -9,7 +9,6 @@ set pages-per-row 1 #stop at page boundries set scroll-page-aware "true" -set smooth-scroll "true" set scroll-full-overlap 0.01 set scroll-step 100 diff --git a/config/zsh/.zcompdump.tatooine.345706 b/config/zsh/.zcompdump.tatooine.345706 new file mode 100644 index 00000000..63ac7837 --- /dev/null +++ b/config/zsh/.zcompdump.tatooine.345706 @@ -0,0 +1,1823 @@ +#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 + diff --git a/config/zsh/profile b/config/zsh/profile index 62119fc7..abcec336 100755 --- a/config/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/.local/bin:/home/yigit/.gem/ruby/2.7.0/bin:$GOPATH/bin:$GOPATH/binexport:/home/yigit/.local/bin" +export PATH="$PATH:/home/yigit/.local/share/bin:/home/yigit/.gem/ruby/2.7.0/bin:$GOPATH/bin:$GOPATH/binexport:/home/yigit/.local/share/bin" diff --git a/install.sh b/install.sh index 9af960f3..2faacf2c 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ mvie(){ # Configuring for your username if [ ! "$username" = "yigit" ]; then - grep -rl "/home/$username/.dotfiles" | xargs sed -i "s/\/home\/yigit/\/home\/$username/g" + grep -rl "yigit" | xargs sed -i "s/yigit/$username/g" fi # Install packages @@ -52,15 +52,8 @@ for d in ~/.dotfiles/local/share/* ; do ln -s $d ~/.local/share done - -# Binaries -mkdir -p ~/.local/bin -mkdir -p ~/.dotfiles_backup/local/bin -for d in ~/.dotfiles/local/bin/* ; do - filename=$(echo "$d" | rev | cut -d"/" -f 1 | rev) - mvie ~/.local/bin/$filename ~/.dotfiles_backup/local/bin - ln -s $d ~/.local/bin -done +mvie ~/.local/share/bin ~/.dotfiles_backup/local/share/bin +ln -s ~/.dotfiles/local/bin ~/.local/share/bin mvie ~/.local/backgrounds ~/.dotfiles_backup/local/backgrounds ln -s ~/.dotfiles/local/backgrounds ~/.local/backgrounds diff --git a/local/bin/daily-update b/local/bin/daily-update index 5488fd52..5682321b 100755 --- a/local/bin/daily-update +++ b/local/bin/daily-update @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh hour=$(date +"%-H") diff --git a/local/bin/devmon b/local/bin/devmon index 1ca1d8f6..2efba196 100755 --- a/local/bin/devmon +++ b/local/bin/devmon @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh # Script Name: devmon http://igurublog.wordpress.com/downloads/script-devmon/ # Requires: udevil bash>=4 Recommended: eject spacefm|zenity # Optional: udisks v1 may be substituted for udevil diff --git a/local/bin/dmenu-udevil b/local/bin/dmenu-udevil index ad1c20d6..c1ca935e 100755 --- a/local/bin/dmenu-udevil +++ b/local/bin/dmenu-udevil @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh DMENU=${DMENU:-dmenu} diff --git a/local/bin/dmenu-wallabag b/local/bin/dmenu-wallabag index 430d6221..6f10042e 100755 --- a/local/bin/dmenu-wallabag +++ b/local/bin/dmenu-wallabag @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh itemcache="${XDG_DATA_HOME:-$HOME/.cache}/wallabag-dmenu" diff --git a/local/bin/dmenu_surf b/local/bin/dmenu_surf index cff2c898..322380a8 100755 --- a/local/bin/dmenu_surf +++ b/local/bin/dmenu_surf @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh lines=12 blacklist='google' diff --git a/local/bin/fastfetch b/local/bin/fastfetch index 5218d342..dbfb004d 100755 --- a/local/bin/fastfetch +++ b/local/bin/fastfetch @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh if [ ! -f "$HOME/.cache/neofetch" ]; then mkdir -p "$HOME/.cache" diff --git a/local/bin/kbmap_toggle b/local/bin/kbmap_toggle index 6a4c6b65..3671d07a 100755 --- a/local/bin/kbmap_toggle +++ b/local/bin/kbmap_toggle @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh layout=$(xkb-switch -p) diff --git a/local/bin/keyboard b/local/bin/keyboard index 7c49a82f..9376d164 100755 --- a/local/bin/keyboard +++ b/local/bin/keyboard @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh setxkbmap "us,tr" -option caps:escape # Set keyboard layout. map CapsLock to Esc xset r rate 180 40 diff --git a/local/bin/lock b/local/bin/lock index 7db294b7..2d5936c3 100755 --- a/local/bin/lock +++ b/local/bin/lock @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh curl 'http://yeetclock/setcolor?R=2000&G=10&B=000&O=0' & /home/yigit/.local/bin/pacontrol.sh open-mute /home/yigit/.local/bin/dunst_toggle.sh -s diff --git a/local/bin/menu-surfraw b/local/bin/menu-surfraw index c1297855..5b647ffb 100755 --- a/local/bin/menu-surfraw +++ b/local/bin/menu-surfraw @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh # Menu Surfraw: https://github.com/TomboFry/menu-surfraw diff --git a/local/bin/newmail.sh b/local/bin/newmail.sh index 838965ae..3c0762b4 100755 --- a/local/bin/newmail.sh +++ b/local/bin/newmail.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh mbsync $1 notmuch new notmuch tag --batch --input=/home/yigit/.notmuch_tag diff --git a/local/bin/nextcloud-sync b/local/bin/nextcloud-sync index 56a23615..5ef21b82 100755 --- a/local/bin/nextcloud-sync +++ b/local/bin/nextcloud-sync @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh source $HOME/.config/nextcloud/nextcloud diff --git a/local/bin/nm_sendmail.sh b/local/bin/nm_sendmail.sh index b88e8cfc..343a8bbd 100755 --- a/local/bin/nm_sendmail.sh +++ b/local/bin/nm_sendmail.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh # Put the message, send to stdin, in a variable m="$(cat -)" diff --git a/local/bin/pacontrol.sh b/local/bin/pacontrol.sh index 57a3fa8e..c3895d83 100755 --- a/local/bin/pacontrol.sh +++ b/local/bin/pacontrol.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh # pacontrol.sh # diff --git a/local/bin/password_manager b/local/bin/password_manager index b6c0fb02..97ccec83 100755 --- a/local/bin/password_manager +++ b/local/bin/password_manager @@ -1,3 +1,3 @@ -#!/bin/bash +#!/bin/sh bitwarden-dmenu --dmenu-args='-i -l 10' --dmenu-pswd-args="-P -nf white" --clear-clipboard 30 --session-timeout 96600 --sync-vault-after 48300 --on-error 'xargs notify-send --urgency=low' diff --git a/local/bin/purge_hist b/local/bin/purge_hist index 8161f606..e043c8af 100755 --- a/local/bin/purge_hist +++ b/local/bin/purge_hist @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh cat ~/.surf/history.txt > ~/.surf/history.txt cat ~/.surf/history.txt | sort | uniq >~/.surf/history.txt diff --git a/local/bin/start-spotifyd b/local/bin/start-spotifyd index f20eb996..5e667aab 100755 --- a/local/bin/start-spotifyd +++ b/local/bin/start-spotifyd @@ -1,3 +1,3 @@ -#!/bin/bash +#!/bin/sh systemctl start --user spotifyd diff --git a/local/bin/status-bar/bluetooth b/local/bin/status-bar/bluetooth index 37911704..96d1d4c3 100755 --- a/local/bin/status-bar/bluetooth +++ b/local/bin/status-bar/bluetooth @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh power=$(bluetoothctl show | grep "Powered: yes" | wc -w) diff --git a/local/bin/status-bar/clipboard b/local/bin/status-bar/clipboard index 3798c0fc..bc3dad8e 100755 --- a/local/bin/status-bar/clipboard +++ b/local/bin/status-bar/clipboard @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh clp=$(sselp) diff --git a/local/bin/status-bar/dunst b/local/bin/status-bar/dunst index 89e0e872..3a500935 100755 --- a/local/bin/status-bar/dunst +++ b/local/bin/status-bar/dunst @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh stats=$(dunstctl is-paused) diff --git a/local/bin/status-bar/keyboard b/local/bin/status-bar/keyboard index f48530b6..6182f0c0 100755 --- a/local/bin/status-bar/keyboard +++ b/local/bin/status-bar/keyboard @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh layout=$(xkb-switch -p | cut -d "(" -f1) diff --git a/local/bin/status-bar/mail b/local/bin/status-bar/mail index 8c980a81..13ccb09d 100755 --- a/local/bin/status-bar/mail +++ b/local/bin/status-bar/mail @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh mcount=$(cat ~/.cache/mcount) msync=$(cat ~/.cache/msync) diff --git a/local/bin/status-bar/mconnect b/local/bin/status-bar/mconnect index 4ec1f5da..48a402be 100755 --- a/local/bin/status-bar/mconnect +++ b/local/bin/status-bar/mconnect @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh source ~/.config.env diff --git a/local/bin/status-bar/memory b/local/bin/status-bar/memory index 1ac12f98..28d4ce10 100755 --- a/local/bin/status-bar/memory +++ b/local/bin/status-bar/memory @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh MEM=$(free | grep Mem | awk '{printf("%d", $3/$2 * 100.0)}') diff --git a/local/bin/status-bar/screensaver b/local/bin/status-bar/screensaver index 693c17c8..b26672f2 100755 --- a/local/bin/status-bar/screensaver +++ b/local/bin/status-bar/screensaver @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh stats=$(<~/.cache/screensaver) diff --git a/local/bin/status-bar/volume b/local/bin/status-bar/volume index f4d9d0ad..8fab85dc 100755 --- a/local/bin/status-bar/volume +++ b/local/bin/status-bar/volume @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh SINK=$(pactl list short sinks | grep -n RUNNING | cut -d":" -f1) if [ "$SINK" = "" ]; then diff --git a/local/bin/stop-spotifyd b/local/bin/stop-spotifyd index 51d224fb..f23b81c4 100755 --- a/local/bin/stop-spotifyd +++ b/local/bin/stop-spotifyd @@ -1,3 +1,3 @@ -#!/bin/bash +#!/bin/sh systemctl stop --user spotifyd diff --git a/local/bin/tedportal b/local/bin/tedportal index 870eed6c..9544bd28 100755 --- a/local/bin/tedportal +++ b/local/bin/tedportal @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh selection=$(cat ~/.cache/tedportal | dmenu -i -l 8) echo $selection diff --git a/local/bin/toggle_monitor.sh b/local/bin/toggle_monitor.sh index 631f0f46..d18fb091 100755 --- a/local/bin/toggle_monitor.sh +++ b/local/bin/toggle_monitor.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh extern=HDMI1 if xrandr | grep -v "$extern disconnected"; then diff --git a/local/bin/toggle_touchpad.sh b/local/bin/toggle_touchpad.sh index 784a66c7..5a46c1c3 100755 --- a/local/bin/toggle_touchpad.sh +++ b/local/bin/toggle_touchpad.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh if xinput list-props "MSFT0001:00 06CB:7E7E Touchpad" | grep "Device Enabled ([0-9]*):.*1" >/dev/null then xinput disable "MSFT0001:00 06CB:7E7E Touchpad" diff --git a/local/bin/update_events.sh b/local/bin/update_events.sh index 0e242d33..7605eac5 100755 --- a/local/bin/update_events.sh +++ b/local/bin/update_events.sh @@ -1,3 +1,3 @@ -#!/bin/bash +#!/bin/sh echo $((($(khal list -f \"{uid}\" | wc -l) - 1))) > /home/yigit/.cache/events diff --git a/local/bin/weechat_start b/local/bin/weechat_start index 2e533d6b..4330cadc 100755 --- a/local/bin/weechat_start +++ b/local/bin/weechat_start @@ -1,3 +1,3 @@ -#!/bin/bash +#!/bin/sh st -e weechat diff --git a/local/bin/ytfzf_dmenu b/local/bin/ytfzf_dmenu index 504a1b67..42a82c36 100755 --- a/local/bin/ytfzf_dmenu +++ b/local/bin/ytfzf_dmenu @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh export YTFZF_EXTMENU=' dmenu -i -l 12' action=$(echo "" | dmenu -p "Search YouTube") diff --git a/local/bin/zaread b/local/bin/zaread index c1cca958..4b658118 100755 --- a/local/bin/zaread +++ b/local/bin/zaread @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh ## zaread - a simple script created by paoloap. # default variables diff --git a/root/kdialog b/root/kdialog index ca91f90f..b6e2da0e 100755 --- a/root/kdialog +++ b/root/kdialog @@ -7,11 +7,11 @@ do then ((i++)) filename=${!i}; fi - - if [ ${!i} = "--version" ] + + if [ ${!i} = "--version" ] then - echo "someversion" - exit + echo "someversion" + exit fi done; @@ -20,7 +20,7 @@ path=$( echo ${filename%/*} ) file=$( echo ${filename##/*/} ) rm /tmp/ranger-chrome-choosed -st -c ranger -n ranger -e "ranger" -t file-chooser-ranger +st -c ranger -n ranger -e ranger --choosefiles=/tmp/ranger-chrome-choosed selected=$(cat /tmp/ranger-chrome-choosed 2> /dev/null) if [ ! $? = 0 ] then diff --git a/suckless/slock/config.h b/suckless/slock/config.h index 3faff06c..55ea6b5e 100644 --- a/suckless/slock/config.h +++ b/suckless/slock/config.h @@ -1,6 +1,16 @@ /* user and group to drop privileges to */ -static const char *user = "nobody"; -static const char *group = "nobody"; +/* Drop privilegs to a regular user, very insecure but hey, it works for now */ +static const char *user = "yigit"; +static const char *group = "yigit"; + + +static const char *lights_on[] = { "/bin/curl", "http://yeetclock/setcolor?R=136&G=192&B=208&O=1", NULL }; +static const char *lights_off[] = { "/bin/curl", "http://yeetclock/setcolor?R=0&G=0&B=0&O=0", NULL }; +static const char *notifications_on[] = { "/home/yigit/.local/bin/dunst_toggle.sh", "-e", NULL }; +static const char *notifications_off[] = { "/home/yigit/.local/bin/dunst_toggle.sh", "-s", NULL }; + +static const char **prelock[] = {lights_off, notifications_off}; +static const char **postlock[] = {lights_on, notifications_on}; static const char *colorname[NUMCOLS] = { [INIT] = "black", /* after initialization */ diff --git a/suckless/slock/slock.c b/suckless/slock/slock.c index 3df4ae2c..f3a2c3e7 100644 --- a/suckless/slock/slock.c +++ b/suckless/slock/slock.c @@ -18,12 +18,15 @@ #include #include #include +#include #include #include #include "arg.h" #include "util.h" +#define LENGTH(X) (sizeof X / sizeof X[0]) + char *argv0; /* global count to prevent repeated error messages */ @@ -63,6 +66,7 @@ die(const char *errstr, ...) exit(1); } + #ifdef __linux__ #include #include @@ -409,6 +413,24 @@ usage(void) die("usage: slock [-v] [-f] [-m message] [cmd [arg ...]]\n"); } +void runprelock(){ + for(int i = 0; i < LENGTH(prelock); i++){ + if(fork() == 0) + execvp(prelock[i][0], (char **)prelock[i]); + } +} + +void runpostlock(){ + signal(SIGUSR1,runpostlock); + printf("running post lock"); + for(int i = 0; i < LENGTH(prelock); i++){ + if(fork() == 0) + execvp(postlock[i][0], (char **)postlock[i]); + } + exit(0); +} + + int main(int argc, char **argv) { struct xrandr rr; @@ -454,6 +476,7 @@ main(int argc, char **argv) { errno ? strerror(errno) : "group entry not found"); dgid = grp->gr_gid; + #ifdef __linux__ dontkillme(); #endif @@ -466,6 +489,14 @@ main(int argc, char **argv) { if (!(dpy = XOpenDisplay(NULL))) die("slock: cannot open display\n"); + + runprelock(); + int postlock_p = fork(); + if ( postlock_p == 0 ) { + signal(SIGUSR1,runpostlock); + while(1); + } + /* drop privileges */ if (setgroups(0, NULL) < 0) die("slock: setgroups: %s\n", strerror(errno)); @@ -474,6 +505,7 @@ main(int argc, char **argv) { if (setuid(duid) < 0) die("slock: setuid: %s\n", strerror(errno)); + /* check for Xrandr support */ rr.active = XRRQueryExtension(dpy, &rr.evbase, &rr.errbase); @@ -511,6 +543,7 @@ main(int argc, char **argv) { /* everything is now blank. Wait for the correct password */ readpw(dpy, &rr, locks, nscreens, hash); + kill(postlock_p, SIGUSR1); return 0; } diff --git a/suckless/st/config.h b/suckless/st/config.h index 864ce17e..95417f0f 100644 --- a/suckless/st/config.h +++ b/suckless/st/config.h @@ -181,12 +181,8 @@ static uint forcemousemod = ShiftMask; static MouseShortcut mshortcuts[] = { /* mask button function argument release */ { XK_ANY_MOD, Button2, selpaste, {.i = 0}, 1 }, - { ShiftMask, Button4, ttysend, {.s = "\033[5;2~"} }, - { XK_ANY_MOD, Button4, ttysend, {.s = "\031"} }, - { ShiftMask, Button5, ttysend, {.s = "\033[6;2~"} }, - { XK_ANY_MOD, Button5, ttysend, {.s = "\005"} }, - { XK_NO_MOD, Button4, ttysend, {.s = "\033[1;3A"}, 0, -1 }, - { XK_NO_MOD, Button5, ttysend, {.s = "\033[1;3B"}, 0, -1 }, + { ShiftMask, Button4, kscrollup, {.i = 5} }, + { ShiftMask, Button5, kscrolldown, {.i = 5} }, }; /* Internal keyboard shortcuts. */ @@ -216,15 +212,19 @@ static Shortcut shortcuts[] = { { ShiftMask, XK_Insert, selpaste, {.i = 0} }, { TERMMOD, XK_Num_Lock, numlock, {.i = 0} }, { TERMMOD, XK_I, iso14755, {.i = 0} }, - { ALTMOD, XK_Up, zoom, {.f = +1} }, - { ALTMOD, XK_Down, zoom, {.f = -1} }, - { ALTMOD, XK_K, zoom, {.f = +1} }, - { ALTMOD, XK_J, zoom, {.f = -1} }, - { ALTMOD, XK_U, zoom, {.f = +2} }, - { ALTMOD, XK_D, zoom, {.f = -2} }, + { ALTMOD, XK_Up, zoom, {.f = +1} }, + { ALTMOD, XK_Down, zoom, {.f = -1} }, + { ALTMOD, XK_K, zoom, {.f = +1} }, + { ALTMOD, XK_J, zoom, {.f = -1} }, + { ALTMOD, XK_U, zoom, {.f = +2} }, + { ALTMOD, XK_D, zoom, {.f = -2} }, { MODKEY, XK_l, externalpipe, {.v = openurlcmd } }, { MODKEY, XK_y, externalpipe, {.v = copyurlcmd } }, { MODKEY, XK_o, externalpipe, {.v = copyoutput } }, + { MODKEY, XK_u, kscrollup, {.i = -1} }, + { MODKEY, XK_d, kscrolldown, {.i = -1} }, + { MODKEY, XK_k, kscrollup, {.i = 2} }, + { MODKEY, XK_j, kscrolldown, {.i = 2} }, }; /* @@ -264,6 +264,7 @@ static uint ignoremod = Mod2Mask|XK_SWITCH_MOD; * This is the huge key array which defines all compatibility to the Linux * world. Please decide about changes wisely. */ + static Key key[] = { /* keysym mask string appkey appcursor */ { XK_KP_Home, ShiftMask, "\033[2J", 0, -1}, diff --git a/suckless/st/patches/st-scrollback-0.8.4.diff b/suckless/st/patches/st-scrollback-0.8.4.diff new file mode 100644 index 00000000..88e0c794 --- /dev/null +++ b/suckless/st/patches/st-scrollback-0.8.4.diff @@ -0,0 +1,351 @@ +diff --git a/config.def.h b/config.def.h +index 6f05dce..93cbcc0 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -199,6 +199,8 @@ static Shortcut shortcuts[] = { + { TERMMOD, XK_Y, selpaste, {.i = 0} }, + { ShiftMask, XK_Insert, selpaste, {.i = 0} }, + { TERMMOD, XK_Num_Lock, numlock, {.i = 0} }, ++ { ShiftMask, XK_Page_Up, kscrollup, {.i = -1} }, ++ { ShiftMask, XK_Page_Down, kscrolldown, {.i = -1} }, + }; + + /* +diff --git a/st.c b/st.c +index 76b7e0d..edec064 100644 +--- a/st.c ++++ b/st.c +@@ -35,6 +35,7 @@ + #define ESC_ARG_SIZ 16 + #define STR_BUF_SIZ ESC_BUF_SIZ + #define STR_ARG_SIZ ESC_ARG_SIZ ++#define HISTSIZE 2000 + + /* macros */ + #define IS_SET(flag) ((term.mode & (flag)) != 0) +@@ -42,6 +43,9 @@ + #define ISCONTROLC1(c) (BETWEEN(c, 0x80, 0x9f)) + #define ISCONTROL(c) (ISCONTROLC0(c) || ISCONTROLC1(c)) + #define ISDELIM(u) (u && wcschr(worddelimiters, u)) ++#define TLINE(y) ((y) < term.scr ? term.hist[((y) + term.histi - \ ++ term.scr + HISTSIZE + 1) % HISTSIZE] : \ ++ term.line[(y) - term.scr]) + + enum term_mode { + MODE_WRAP = 1 << 0, +@@ -115,6 +119,9 @@ typedef struct { + int col; /* nb col */ + Line *line; /* screen */ + Line *alt; /* alternate screen */ ++ Line hist[HISTSIZE]; /* history buffer */ ++ int histi; /* history index */ ++ int scr; /* scroll back */ + int *dirty; /* dirtyness of lines */ + TCursor c; /* cursor */ + int ocx; /* old cursor col */ +@@ -184,8 +191,8 @@ static void tnewline(int); + static void tputtab(int); + static void tputc(Rune); + static void treset(void); +-static void tscrollup(int, int); +-static void tscrolldown(int, int); ++static void tscrollup(int, int, int); ++static void tscrolldown(int, int, int); + static void tsetattr(int *, int); + static void tsetchar(Rune, Glyph *, int, int); + static void tsetdirt(int, int); +@@ -414,10 +421,10 @@ tlinelen(int y) + { + int i = term.col; + +- if (term.line[y][i - 1].mode & ATTR_WRAP) ++ if (TLINE(y)[i - 1].mode & ATTR_WRAP) + return i; + +- while (i > 0 && term.line[y][i - 1].u == ' ') ++ while (i > 0 && TLINE(y)[i - 1].u == ' ') + --i; + + return i; +@@ -526,7 +533,7 @@ selsnap(int *x, int *y, int direction) + * Snap around if the word wraps around at the end or + * beginning of a line. + */ +- prevgp = &term.line[*y][*x]; ++ prevgp = &TLINE(*y)[*x]; + prevdelim = ISDELIM(prevgp->u); + for (;;) { + newx = *x + direction; +@@ -541,14 +548,14 @@ selsnap(int *x, int *y, int direction) + yt = *y, xt = *x; + else + yt = newy, xt = newx; +- if (!(term.line[yt][xt].mode & ATTR_WRAP)) ++ if (!(TLINE(yt)[xt].mode & ATTR_WRAP)) + break; + } + + if (newx >= tlinelen(newy)) + break; + +- gp = &term.line[newy][newx]; ++ gp = &TLINE(newy)[newx]; + delim = ISDELIM(gp->u); + if (!(gp->mode & ATTR_WDUMMY) && (delim != prevdelim + || (delim && gp->u != prevgp->u))) +@@ -569,14 +576,14 @@ selsnap(int *x, int *y, int direction) + *x = (direction < 0) ? 0 : term.col - 1; + if (direction < 0) { + for (; *y > 0; *y += direction) { +- if (!(term.line[*y-1][term.col-1].mode ++ if (!(TLINE(*y-1)[term.col-1].mode + & ATTR_WRAP)) { + break; + } + } + } else if (direction > 0) { + for (; *y < term.row-1; *y += direction) { +- if (!(term.line[*y][term.col-1].mode ++ if (!(TLINE(*y)[term.col-1].mode + & ATTR_WRAP)) { + break; + } +@@ -607,13 +614,13 @@ getsel(void) + } + + if (sel.type == SEL_RECTANGULAR) { +- gp = &term.line[y][sel.nb.x]; ++ gp = &TLINE(y)[sel.nb.x]; + lastx = sel.ne.x; + } else { +- gp = &term.line[y][sel.nb.y == y ? sel.nb.x : 0]; ++ gp = &TLINE(y)[sel.nb.y == y ? sel.nb.x : 0]; + lastx = (sel.ne.y == y) ? sel.ne.x : term.col-1; + } +- last = &term.line[y][MIN(lastx, linelen-1)]; ++ last = &TLINE(y)[MIN(lastx, linelen-1)]; + while (last >= gp && last->u == ' ') + --last; + +@@ -848,6 +855,9 @@ void + ttywrite(const char *s, size_t n, int may_echo) + { + const char *next; ++ Arg arg = (Arg) { .i = term.scr }; ++ ++ kscrolldown(&arg); + + if (may_echo && IS_SET(MODE_ECHO)) + twrite(s, n, 1); +@@ -1059,13 +1069,53 @@ tswapscreen(void) + } + + void +-tscrolldown(int orig, int n) ++kscrolldown(const Arg* a) ++{ ++ int n = a->i; ++ ++ if (n < 0) ++ n = term.row + n; ++ ++ if (n > term.scr) ++ n = term.scr; ++ ++ if (term.scr > 0) { ++ term.scr -= n; ++ selscroll(0, -n); ++ tfulldirt(); ++ } ++} ++ ++void ++kscrollup(const Arg* a) ++{ ++ int n = a->i; ++ ++ if (n < 0) ++ n = term.row + n; ++ ++ if (term.scr <= HISTSIZE-n) { ++ term.scr += n; ++ selscroll(0, n); ++ tfulldirt(); ++ } ++} ++ ++void ++tscrolldown(int orig, int n, int copyhist) + { + int i; + Line temp; + + LIMIT(n, 0, term.bot-orig+1); + ++ if (copyhist) { ++ term.histi = (term.histi - 1 + HISTSIZE) % HISTSIZE; ++ temp = term.hist[term.histi]; ++ term.hist[term.histi] = term.line[term.bot]; ++ term.line[term.bot] = temp; ++ } ++ + tsetdirt(orig, term.bot-n); + tclearregion(0, term.bot-n+1, term.col-1, term.bot); + +@@ -1075,17 +1125,28 @@ tscrolldown(int orig, int n) + term.line[i-n] = temp; + } + +- selscroll(orig, n); ++ if (term.scr == 0) ++ selscroll(orig, n); + } + + void +-tscrollup(int orig, int n) ++tscrollup(int orig, int n, int copyhist) + { + int i; + Line temp; + + LIMIT(n, 0, term.bot-orig+1); + ++ if (copyhist) { ++ term.histi = (term.histi + 1) % HISTSIZE; ++ temp = term.hist[term.histi]; ++ term.hist[term.histi] = term.line[orig]; ++ term.line[orig] = temp; ++ } ++ ++ if (term.scr > 0 && term.scr < HISTSIZE) ++ term.scr = MIN(term.scr + n, HISTSIZE-1); ++ + tclearregion(0, orig, term.col-1, orig+n-1); + tsetdirt(orig+n, term.bot); + +@@ -1095,7 +1156,8 @@ tscrollup(int orig, int n) + term.line[i+n] = temp; + } + +- selscroll(orig, -n); ++ if (term.scr == 0) ++ selscroll(orig, -n); + } + + void +@@ -1124,7 +1186,7 @@ tnewline(int first_col) + int y = term.c.y; + + if (y == term.bot) { +- tscrollup(term.top, 1); ++ tscrollup(term.top, 1, 1); + } else { + y++; + } +@@ -1289,14 +1351,14 @@ void + tinsertblankline(int n) + { + if (BETWEEN(term.c.y, term.top, term.bot)) +- tscrolldown(term.c.y, n); ++ tscrolldown(term.c.y, n, 0); + } + + void + tdeleteline(int n) + { + if (BETWEEN(term.c.y, term.top, term.bot)) +- tscrollup(term.c.y, n); ++ tscrollup(term.c.y, n, 0); + } + + int32_t +@@ -1733,11 +1795,11 @@ csihandle(void) + break; + case 'S': /* SU -- Scroll line up */ + DEFAULT(csiescseq.arg[0], 1); +- tscrollup(term.top, csiescseq.arg[0]); ++ tscrollup(term.top, csiescseq.arg[0], 0); + break; + case 'T': /* SD -- Scroll line down */ + DEFAULT(csiescseq.arg[0], 1); +- tscrolldown(term.top, csiescseq.arg[0]); ++ tscrolldown(term.top, csiescseq.arg[0], 0); + break; + case 'L': /* IL -- Insert blank lines */ + DEFAULT(csiescseq.arg[0], 1); +@@ -2241,7 +2303,7 @@ eschandle(uchar ascii) + return 0; + case 'D': /* IND -- Linefeed */ + if (term.c.y == term.bot) { +- tscrollup(term.top, 1); ++ tscrollup(term.top, 1, 1); + } else { + tmoveto(term.c.x, term.c.y+1); + } +@@ -2254,7 +2316,7 @@ eschandle(uchar ascii) + break; + case 'M': /* RI -- Reverse index */ + if (term.c.y == term.top) { +- tscrolldown(term.top, 1); ++ tscrolldown(term.top, 1, 1); + } else { + tmoveto(term.c.x, term.c.y-1); + } +@@ -2464,7 +2526,7 @@ twrite(const char *buf, int buflen, int show_ctrl) + void + tresize(int col, int row) + { +- int i; ++ int i, j; + int minrow = MIN(row, term.row); + int mincol = MIN(col, term.col); + int *bp; +@@ -2501,6 +2563,14 @@ tresize(int col, int row) + term.dirty = xrealloc(term.dirty, row * sizeof(*term.dirty)); + term.tabs = xrealloc(term.tabs, col * sizeof(*term.tabs)); + ++ for (i = 0; i < HISTSIZE; i++) { ++ term.hist[i] = xrealloc(term.hist[i], col * sizeof(Glyph)); ++ for (j = mincol; j < col; j++) { ++ term.hist[i][j] = term.c.attr; ++ term.hist[i][j].u = ' '; ++ } ++ } ++ + /* resize each row to new width, zero-pad if needed */ + for (i = 0; i < minrow; i++) { + term.line[i] = xrealloc(term.line[i], col * sizeof(Glyph)); +@@ -2559,7 +2629,7 @@ drawregion(int x1, int y1, int x2, int y2) + continue; + + term.dirty[y] = 0; +- xdrawline(term.line[y], x1, y, x2); ++ xdrawline(TLINE(y), x1, y, x2); + } + } + +@@ -2580,8 +2650,9 @@ draw(void) + cx--; + + drawregion(0, 0, term.col, term.row); +- xdrawcursor(cx, term.c.y, term.line[term.c.y][cx], +- term.ocx, term.ocy, term.line[term.ocy][term.ocx]); ++ if (term.scr == 0) ++ xdrawcursor(cx, term.c.y, term.line[term.c.y][cx], ++ term.ocx, term.ocy, term.line[term.ocy][term.ocx]); + term.ocx = cx; + term.ocy = term.c.y; + xfinishdraw(); +diff --git a/st.h b/st.h +index 3d351b6..f44e1d3 100644 +--- a/st.h ++++ b/st.h +@@ -81,6 +81,8 @@ void die(const char *, ...); + void redraw(void); + void draw(void); + ++void kscrolldown(const Arg *); ++void kscrollup(const Arg *); + void printscreen(const Arg *); + void printsel(const Arg *); + void sendbreak(const Arg *); diff --git a/suckless/st/patches/st-scrollback-mouse-20191024-a2c479c.diff b/suckless/st/patches/st-scrollback-mouse-20191024-a2c479c.diff new file mode 100644 index 00000000..49eba8e8 --- /dev/null +++ b/suckless/st/patches/st-scrollback-mouse-20191024-a2c479c.diff @@ -0,0 +1,13 @@ +diff --git a/config.def.h b/config.def.h +index ec1b576..4b3bf15 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -163,6 +163,8 @@ static uint forcemousemod = ShiftMask; + */ + static MouseShortcut mshortcuts[] = { + /* mask button function argument release */ ++ { ShiftMask, Button4, kscrollup, {.i = 1} }, ++ { ShiftMask, Button5, kscrolldown, {.i = 1} }, + { XK_ANY_MOD, Button2, selpaste, {.i = 0}, 1 }, + { XK_ANY_MOD, Button4, ttysend, {.s = "\031"} }, + { XK_ANY_MOD, Button5, ttysend, {.s = "\005"} }, diff --git a/suckless/st/patches/st-universcroll-0.8.4.diff b/suckless/st/patches/st-universcroll-0.8.4.diff deleted file mode 100644 index 6a33813b..00000000 --- a/suckless/st/patches/st-universcroll-0.8.4.diff +++ /dev/null @@ -1,90 +0,0 @@ -From 9726b1e58352126252412e101432e64d46fc51ca Mon Sep 17 00:00:00 2001 -From: Dennis Lee -Date: Sun, 28 Jun 2020 23:01:03 -0700 -Subject: [PATCH] universcroll: mouse wheel only scroll in all modes - -Scroll normally via scroll(1), without Shift, when outside of -`MODE_ALTSCREEN`. Inside an alt screen, continue to scroll normally -without Shift; in this mode, your scrolling is automatically translated -into ^Y and ^E. It just werks! - -Based on the existing mouse-altscreen patch -https://st.suckless.org/patches/scrollback/ -adapted for st(1) 0.8.4 and scroll(1). ---- - config.def.h | 10 +++++----- - st.c | 5 +++++ - st.h | 1 + - x.c | 2 ++ - 4 files changed, 13 insertions(+), 5 deletions(-) - -diff --git a/config.def.h b/config.def.h -index 6f05dce..62e87da 100644 ---- a/config.def.h -+++ b/config.def.h -@@ -173,11 +173,11 @@ static uint forcemousemod = ShiftMask; - * Beware that overloading Button1 will disable the selection. - */ - static MouseShortcut mshortcuts[] = { -- /* mask button function argument release */ -- { XK_ANY_MOD, Button2, selpaste, {.i = 0}, 1 }, -- { ShiftMask, Button4, ttysend, {.s = "\033[5;2~"} }, -+ /* mask button function argument release alt */ -+ { XK_ANY_MOD, Button2, selpaste, {.i = 0}, 1 }, -+ { XK_ANY_MOD, Button4, ttysend, {.s = "\033[5;2~"}, 0, -1 }, - { XK_ANY_MOD, Button4, ttysend, {.s = "\031"} }, -- { ShiftMask, Button5, ttysend, {.s = "\033[6;2~"} }, -+ { XK_ANY_MOD, Button5, ttysend, {.s = "\033[6;2~"}, 0, -1 }, - { XK_ANY_MOD, Button5, ttysend, {.s = "\005"} }, - }; - -diff --git a/st.c b/st.c -index 76b7e0d..1f65453 100644 ---- a/st.c -+++ b/st.c -@@ -1047,6 +1047,11 @@ tnew(int col, int row) - treset(); - } - -+int tisaltscr(void) -+{ -+ return IS_SET(MODE_ALTSCREEN); -+} -+ - void - tswapscreen(void) - { -diff --git a/st.h b/st.h -index 3d351b6..39cc054 100644 ---- a/st.h -+++ b/st.h -@@ -87,6 +87,7 @@ void sendbreak(const Arg *); - void toggleprinter(const Arg *); - - int tattrset(int); -+int tisaltscr(void); - void tnew(int, int); - void tresize(int, int); - void tsetdirtattr(int); -diff --git a/x.c b/x.c -index 210f184..210dde9 100644 ---- a/x.c -+++ b/x.c -@@ -34,6 +34,7 @@ typedef struct { - void (*func)(const Arg *); - const Arg arg; - uint release; -+ int altscrn; /* 0: don't care, -1: not alt screen, 1: alt screen */ - } MouseShortcut; - - typedef struct { -@@ -446,6 +447,7 @@ mouseaction(XEvent *e, uint release) - for (ms = mshortcuts; ms < mshortcuts + LEN(mshortcuts); ms++) { - if (ms->release == release && - ms->button == e->xbutton.button && -+ (!ms->altscrn || (ms->altscrn == (tisaltscr() ? 1 : -1))) && - (match(ms->mod, state) || /* exact or forced */ - match(ms->mod, state & ~forcemousemod))) { - ms->func(&(ms->arg)); --- -2.27.0 diff --git a/suckless/st/st.c b/suckless/st/st.c index bfda5c5b..0e32730b 100644 --- a/suckless/st/st.c +++ b/suckless/st/st.c @@ -35,6 +35,7 @@ #define ESC_ARG_SIZ 16 #define STR_BUF_SIZ ESC_BUF_SIZ #define STR_ARG_SIZ ESC_ARG_SIZ +#define HISTSIZE 2000 /* macros */ #define IS_SET(flag) ((term.mode & (flag)) != 0) @@ -42,6 +43,9 @@ #define ISCONTROLC1(c) (BETWEEN(c, 0x80, 0x9f)) #define ISCONTROL(c) (ISCONTROLC0(c) || ISCONTROLC1(c)) #define ISDELIM(u) (u && wcschr(worddelimiters, u)) +#define TLINE(y) ((y) < term.scr ? term.hist[((y) + term.histi - \ + term.scr + HISTSIZE + 1) % HISTSIZE] : \ + term.line[(y) - term.scr]) enum term_mode { MODE_WRAP = 1 << 0, @@ -115,6 +119,9 @@ typedef struct { int col; /* nb col */ Line *line; /* screen */ Line *alt; /* alternate screen */ + Line hist[HISTSIZE]; /* history buffer */ + int histi; /* history index */ + int scr; /* scroll back */ int *dirty; /* dirtyness of lines */ TCursor c; /* cursor */ int ocx; /* old cursor col */ @@ -184,8 +191,8 @@ static void tnewline(int); static void tputtab(int); static void tputc(Rune); static void treset(void); -static void tscrollup(int, int); -static void tscrolldown(int, int); +static void tscrollup(int, int, int); +static void tscrolldown(int, int, int); static void tsetattr(int *, int); static void tsetchar(Rune, Glyph *, int, int); static void tsetdirt(int, int); @@ -414,10 +421,10 @@ tlinelen(int y) { int i = term.col; - if (term.line[y][i - 1].mode & ATTR_WRAP) + if (TLINE(y)[i - 1].mode & ATTR_WRAP) return i; - while (i > 0 && term.line[y][i - 1].u == ' ') + while (i > 0 && TLINE(y)[i - 1].u == ' ') --i; return i; @@ -526,7 +533,7 @@ selsnap(int *x, int *y, int direction) * Snap around if the word wraps around at the end or * beginning of a line. */ - prevgp = &term.line[*y][*x]; + prevgp = &TLINE(*y)[*x]; prevdelim = ISDELIM(prevgp->u); for (;;) { newx = *x + direction; @@ -541,14 +548,14 @@ selsnap(int *x, int *y, int direction) yt = *y, xt = *x; else yt = newy, xt = newx; - if (!(term.line[yt][xt].mode & ATTR_WRAP)) + if (!(TLINE(yt)[xt].mode & ATTR_WRAP)) break; } if (newx >= tlinelen(newy)) break; - gp = &term.line[newy][newx]; + gp = &TLINE(newy)[newx]; delim = ISDELIM(gp->u); if (!(gp->mode & ATTR_WDUMMY) && (delim != prevdelim || (delim && gp->u != prevgp->u))) @@ -569,14 +576,14 @@ selsnap(int *x, int *y, int direction) *x = (direction < 0) ? 0 : term.col - 1; if (direction < 0) { for (; *y > 0; *y += direction) { - if (!(term.line[*y-1][term.col-1].mode + if (!(TLINE(*y-1)[term.col-1].mode & ATTR_WRAP)) { break; } } } else if (direction > 0) { for (; *y < term.row-1; *y += direction) { - if (!(term.line[*y][term.col-1].mode + if (!(TLINE(*y)[term.col-1].mode & ATTR_WRAP)) { break; } @@ -607,13 +614,13 @@ getsel(void) } if (sel.type == SEL_RECTANGULAR) { - gp = &term.line[y][sel.nb.x]; + gp = &TLINE(y)[sel.nb.x]; lastx = sel.ne.x; } else { - gp = &term.line[y][sel.nb.y == y ? sel.nb.x : 0]; + gp = &TLINE(y)[sel.nb.y == y ? sel.nb.x : 0]; lastx = (sel.ne.y == y) ? sel.ne.x : term.col-1; } - last = &term.line[y][MIN(lastx, linelen-1)]; + last = &TLINE(y)[MIN(lastx, linelen-1)]; while (last >= gp && last->u == ' ') --last; @@ -855,6 +862,9 @@ void ttywrite(const char *s, size_t n, int may_echo) { const char *next; + Arg arg = (Arg) { .i = term.scr }; + + kscrolldown(&arg); if (may_echo && IS_SET(MODE_ECHO)) twrite(s, n, 1); @@ -1054,11 +1064,6 @@ tnew(int col, int row) treset(); } -int tisaltscr(void) -{ - return IS_SET(MODE_ALTSCREEN); -} - void tswapscreen(void) { @@ -1071,13 +1076,53 @@ tswapscreen(void) } void -tscrolldown(int orig, int n) +kscrolldown(const Arg* a) +{ + int n = a->i; + + if (n < 0) + n = term.row + n; + + if (n > term.scr) + n = term.scr; + + if (term.scr > 0) { + term.scr -= n; + selscroll(0, -n); + tfulldirt(); + } +} + +void +kscrollup(const Arg* a) +{ + int n = a->i; + + if (n < 0) + n = term.row + n; + + if (term.scr <= HISTSIZE-n) { + term.scr += n; + selscroll(0, n); + tfulldirt(); + } +} + +void +tscrolldown(int orig, int n, int copyhist) { int i; Line temp; LIMIT(n, 0, term.bot-orig+1); + if (copyhist) { + term.histi = (term.histi - 1 + HISTSIZE) % HISTSIZE; + temp = term.hist[term.histi]; + term.hist[term.histi] = term.line[term.bot]; + term.line[term.bot] = temp; + } + tsetdirt(orig, term.bot-n); tclearregion(0, term.bot-n+1, term.col-1, term.bot); @@ -1087,17 +1132,28 @@ tscrolldown(int orig, int n) term.line[i-n] = temp; } - selscroll(orig, n); + if (term.scr == 0) + selscroll(orig, n); } void -tscrollup(int orig, int n) +tscrollup(int orig, int n, int copyhist) { int i; Line temp; LIMIT(n, 0, term.bot-orig+1); + if (copyhist) { + term.histi = (term.histi + 1) % HISTSIZE; + temp = term.hist[term.histi]; + term.hist[term.histi] = term.line[orig]; + term.line[orig] = temp; + } + + if (term.scr > 0 && term.scr < HISTSIZE) + term.scr = MIN(term.scr + n, HISTSIZE-1); + tclearregion(0, orig, term.col-1, orig+n-1); tsetdirt(orig+n, term.bot); @@ -1107,7 +1163,8 @@ tscrollup(int orig, int n) term.line[i+n] = temp; } - selscroll(orig, -n); + if (term.scr == 0) + selscroll(orig, -n); } void @@ -1136,7 +1193,7 @@ tnewline(int first_col) int y = term.c.y; if (y == term.bot) { - tscrollup(term.top, 1); + tscrollup(term.top, 1, 1); } else { y++; } @@ -1301,14 +1358,14 @@ void tinsertblankline(int n) { if (BETWEEN(term.c.y, term.top, term.bot)) - tscrolldown(term.c.y, n); + tscrolldown(term.c.y, n, 0); } void tdeleteline(int n) { if (BETWEEN(term.c.y, term.top, term.bot)) - tscrollup(term.c.y, n); + tscrollup(term.c.y, n, 0); } int32_t @@ -1745,11 +1802,11 @@ csihandle(void) break; case 'S': /* SU -- Scroll line up */ DEFAULT(csiescseq.arg[0], 1); - tscrollup(term.top, csiescseq.arg[0]); + tscrollup(term.top, csiescseq.arg[0], 0); break; case 'T': /* SD -- Scroll line down */ DEFAULT(csiescseq.arg[0], 1); - tscrolldown(term.top, csiescseq.arg[0]); + tscrolldown(term.top, csiescseq.arg[0], 0); break; case 'L': /* IL -- Insert blank lines */ DEFAULT(csiescseq.arg[0], 1); @@ -2336,7 +2393,7 @@ eschandle(uchar ascii) return 0; case 'D': /* IND -- Linefeed */ if (term.c.y == term.bot) { - tscrollup(term.top, 1); + tscrollup(term.top, 1, 1); } else { tmoveto(term.c.x, term.c.y+1); } @@ -2349,7 +2406,7 @@ eschandle(uchar ascii) break; case 'M': /* RI -- Reverse index */ if (term.c.y == term.top) { - tscrolldown(term.top, 1); + tscrolldown(term.top, 1, 1); } else { tmoveto(term.c.x, term.c.y-1); } @@ -2559,7 +2616,7 @@ twrite(const char *buf, int buflen, int show_ctrl) void tresize(int col, int row) { - int i; + int i, j; int minrow = MIN(row, term.row); int mincol = MIN(col, term.col); int *bp; @@ -2596,6 +2653,14 @@ tresize(int col, int row) term.dirty = xrealloc(term.dirty, row * sizeof(*term.dirty)); term.tabs = xrealloc(term.tabs, col * sizeof(*term.tabs)); + for (i = 0; i < HISTSIZE; i++) { + term.hist[i] = xrealloc(term.hist[i], col * sizeof(Glyph)); + for (j = mincol; j < col; j++) { + term.hist[i][j] = term.c.attr; + term.hist[i][j].u = ' '; + } + } + /* resize each row to new width, zero-pad if needed */ for (i = 0; i < minrow; i++) { term.line[i] = xrealloc(term.line[i], col * sizeof(Glyph)); @@ -2654,7 +2719,7 @@ drawregion(int x1, int y1, int x2, int y2) continue; term.dirty[y] = 0; - xdrawline(term.line[y], x1, y, x2); + xdrawline(TLINE(y), x1, y, x2); } } @@ -2675,8 +2740,9 @@ draw(void) cx--; drawregion(0, 0, term.col, term.row); - xdrawcursor(cx, term.c.y, term.line[term.c.y][cx], - term.ocx, term.ocy, term.line[term.ocy][term.ocx]); + if (term.scr == 0) + xdrawcursor(cx, term.c.y, term.line[term.c.y][cx], + term.ocx, term.ocy, term.line[term.ocy][term.ocx]); term.ocx = cx; term.ocy = term.c.y; xfinishdraw(); diff --git a/suckless/st/st.h b/suckless/st/st.h index 38ba7aa6..2248634f 100644 --- a/suckless/st/st.h +++ b/suckless/st/st.h @@ -83,13 +83,14 @@ void draw(void); void iso14755(const Arg *); void externalpipe(const Arg *); +void kscrolldown(const Arg *); +void kscrollup(const Arg *); void printscreen(const Arg *); void printsel(const Arg *); void sendbreak(const Arg *); void toggleprinter(const Arg *); int tattrset(int); -int tisaltscr(void); void tnew(int, int); void tresize(int, int); void tsetdirtattr(int); diff --git a/suckless/st/x.c b/suckless/st/x.c index 86f12ee3..14f6f4d1 100644 --- a/suckless/st/x.c +++ b/suckless/st/x.c @@ -34,7 +34,6 @@ typedef struct { void (*func)(const Arg *); const Arg arg; uint release; - int altscrn; /* 0: don't care, -1: not alt screen, 1: alt screen */ } MouseShortcut; typedef struct { @@ -453,7 +452,6 @@ mouseaction(XEvent *e, uint release) for (ms = mshortcuts; ms < mshortcuts + LEN(mshortcuts); ms++) { if (ms->release == release && ms->button == e->xbutton.button && - (!ms->altscrn || (ms->altscrn == (tisaltscr() ? 1 : -1))) && (match(ms->mod, state) || /* exact or forced */ match(ms->mod, state & ~forcemousemod))) { ms->func(&(ms->arg));