* Dotfiles Welcome to Janek's dotfiles, thousands of lines of handcraft shell code to make the live of a linux sysadmin and developer easier! I mainly use Arch Linux, currently with the KDE desktop environment with tiling extension with the intention of moving a proper tiling WM (Awesome or Sway) soon. This config is opinionated, but currently deployed on multiple machines including some other eager users who run Manjaro Sway. Thus I am progressively generalising it. If you are not one of those, you can safely skip the following section. ** Usage Here are some basic commands you should remember: - ~u~ to upgrade everything (works on arch-based systems with topgrade installed and any debian-based system, with safeguards to ensure upgrade stability even on longtime dormant machines) - yas :: interactively install software packages - yar :: interactively uninstall software packages - loc :: quickly find a file on your system, case-insensitive - loca :: do a deep search for a file on the whole system, case-insensitive - loce :: find a file/directory with exact name match - moul :: mount a device interatively (unmount with ~umoul~) *** Mounting Manually To mount a device, first check ~ds~ ([d]isk [s]tats, a prettification of ~lsblk --fs~) and find your device, then call ~moul~ with the respective name or label, e.g. ~moul my-usb~ or ~moul sdc2~. This will mount the device and jump to the mounted directory. As long as you are in the device directory you can unmount it simply by calling ~umoul~, otherwise provide the argument used above again. * Overview If you are looking to snag some of my handy tools, focus on [[./.local/bin/scripts][.local/bin/scripts]] and [[./.config/shell][.config/shell]]. Among daily use are ~b~, ~edit-*~, ~help~, [[./.config/shell/arch][~yas~]] and [[https://github.com/ajeetdsouza/zoxide][zoxide]]-based ~d~ / ~di~ which in turn use ~zfz~, ~zf~ and ~locz~. ~ex~, ~m~, ~moul~, ~grpr~ / ~rpl~, ~s~, ~sd~, ~tl~ are also commonly used conveniences. Below is an overview of the structure ** Home I am trying to keep my home clean, but some files unfortunately cannot be moved. Out of these, only [[.zprofile][.zprofile]] is of interest, it contains lots of mappings to store files according to XDG and configuration for ~less~ and ~fzf~. ** .config - [[.config/shell][shell]] :: shell aliases & functions grouped into a few different areas, focused on zsh but mostly usable with bash - [[.config/zsh][zsh]] :: zsh plugin configuration & custom completions - [[.config/doom][doom]] :: [[https://github.com/hlissner/doom-emacs][Doom Emacs]] configuration with personalized snippets - ideavim, vifm, nvim :: vi-related tools - git, yadm :: version control ** .local - [[.local/bin/scripts][scripts]] :: lots of useful scripts, most have a short documentation header - including many essential git scripts * Package Setup (moving to [[https://git.jfischer.org/xeruf/instalee][Instalee]]) : pacman -Qe | cut -d\ -f1 | xclip -selection clipboard - dotfiles :: yadm : yadm clone --bootstrap git@git.jfischer.org:xeruf/dotfiles.git : yadm clone --bootstrap https://git.jfischer.org/xeruf/dotfiles.git Run ~bootstrap~ after starting ZSH ** Applications - utilities :: youtube-dl dos2unix rlwrap - powertools :: hexedit hexyl [[https://lftp.yar.ru/][lftp]] glances zsh-doc pacman-contrib - multitools :: ffmpeg imagemagick pandoc - documents :: pdftk java-commons-lang - music :: mpd mpc ncmpc vlc phonon-qt5-vlc mpdris2 : mkdir -p ~/.local/state/mpd && systemctl --user enable --now mpd mpDris2 #+begin_src sh YAY for AUR git clone https://aur.archlinux.org/yay.git /tmp/yay cd /tmp/yay makepkg -si #+end_src - aur recommendations :: [[https://github.com/mookid/diffr][diffr]] tldr++ sc-im espanso-bin timg audiowaveform python-dictcc dragon-drop - bluetooth :: bluez bluez-utils pulseaudio-bluetooth - git tools :: git-bug git-lfs git-crypt git-remote-gcrypt github-cli - pass :: pass pass-otp pass-extension-tail pass-clip -> interesting: pass-steam, pass-autotype, pass-file, pass-qr, pass-ssh, pass-rotate - ssh :: openssh sshfs lemonade-git - sync :: syncthing syncthingtray : sudo systemctl enable --now syncthing@$USER - productivity :: activitywatch-bin jrnl - personal aur utils (only useful with dotfiles) :: bat-extras neovim-symlinks stderred-git - needs extra setup :: rdictcc-git - experiments :: kakoune ** Graphical - fonts :: fontpreview noto-fonts noto-fonts-emoji ttf-dejavu adobe-source-code-pro-fonts texlive-myriadpro-git - music management :: puddletag beets picard ffmpegthumbnailer sox : sudo npm install -g bpm - health :: stretchly-xeruf-git redshift acpilight light : scu enable --now redshift -> https://www.reddit.com/r/linuxquestions/comments/pm1bxn/setting_brightness_on_amd_ryzen_7_5800h_with *** Desktop - xorg :: xorg-xserver xorg-xkill xorg-setxkbmap xorg-xinit xterm xclip xprintidle light - wayland :: sway azote dex - kde :: okular spectacle - kde desktop :: plasma-desktop plasma-nm breeze systemsettings ktorrent dolphin kdeplasma-addons kinfocenter partitionmanager kdeconnect kwallet-pam kwalletmanager ksshaskpass bluedevil *** Emacs emacs emacs-pdf-tools-git texlive-core texlive-latexextra texlive-most-doc context-bin : git clone --depth 1 https://github.com/hlissner/doom-emacs ${XDG_CONFIG_HOME:-$HOME/.config}/emacs && ${XDG_CONFIG_HOME:-$HOME/.config}/emacs/bin/doom -y install - mail :: offlineimap mu *** [[id:firefox][Firefox]] Addons **** Password management ***** Pass - the unix password manager Store all kinds of secrets in plain text https://addons.mozilla.org/firefox/addon/passff : passff-host ***** MasterPassword - the stateless password manager > Keep different passwords for every site you log into without having to remember anything but a single master password. > And without the risk of your getting your password list stolen. https://addons.mozilla.org/firefox/addon/masterpassword-firefox **** [[https://addons.mozilla.org/en-US/firefox/collections/15727735/integration?collection_sort=-popularity][System Integration]] **** [[https://addons.mozilla.org/en-US/firefox/collections/15727735/privacy?collection_sort=-popularity][Privacy]] * Issues ** Manjaro Sway - zsh vim bindings don't work properly - clipboard sync does not work in Doom Emacs (fixed?)