Welcome to Janek’s dotfiles, thousands of lines of handcrafted shell code to make the live of a linux sysadmin and developer easier!
I mainly use Arch Linux, formerly with the KDE desktop environment with tiling extension, on the move to Manjaro Sway.
This config is opinionated, but currently deployed on multiple machines including some other eager users. Thus I am progressively generalising it.
If you are not one of those, you can safely skip the following section.
Here are some basic commands to 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 on your system with exact name match
- moul
- mount a device interatively (unmount with
umoul
)
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 enter the mounted directory.
As long as you are in the device directory
you can unmount it simply by calling umoul
,
otherwise provide the argument from above again.
If you are looking to snag some of my handy tools,
focus on .local/bin/scripts and .config/shell.
Among daily use are b
, edit-*
, help
, ~yas~
and 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.
I try to keep my home clean,
but some files unfortunately cannot be moved.
Out of these, only .zshenv is of interest,
it contains lots of mappings to store files according to XDG
and configuration for less
and fzf
.
- shell
- shell aliases & functions grouped into a few different areas, focused on zsh but mostly usable with bash
- zsh
- zsh plugin configuration & custom completions
- doom
- Doom Emacs configuration with personalized snippets
- ideavim, vifm, nvim
- vi-related tools
- git, yadm
- version control
- bin/scripts
- lots of useful scripts, most have a short documentation header - including many essential git scripts
- bin/server-scripts
- a few scripts for use on servers
Package Setup (moving to Instalee)
By Size:
LC_ALL=C pacman -Qi | awk '/^Name/{name=$3} /^Installed Size/{print $4$5, name}' | sort -h
Copy list of installed packages:
pacman -Qe | cut -d\ -f1 | xclip -selection clipboard
- dotfiles
- yadm
yadm clone --bootstrap https://code.ftt.gmbh/janek/dotfiles.git
Run
yadm bootstrap
again after starting ZSH to finish initialization.
Basic required packages for scripts: diffr fzf
Manjaro:
yay -Syu yadm instalee-full-git
yadm clone --bootstrap https://code.ftt.gmbh/janek/dotfiles
yadm remote set-url --push origin [email protected]:janek/dotfiles.git
instalee arch/base
sudo systemctl enable --now syncthing@$USER
- utilities
- youtube-dl dos2unix rlwrap
- powertools
- hexedit hexyl 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
git clone https://aur.archlinux.org/yay.git /tmp/yay
cd /tmp/yay
makepkg -si
- aur recommendations
- 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
- 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
- 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-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
- offlineimap mu
Store all kinds of secrets in plain text https://addons.mozilla.org/firefox/addon/passff
passff-host
> 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