6.1 KiB
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 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
Home
I am trying to keep my home clean,
but some files unfortunately cannot be moved.
Out of these, only .zprofile is of interest,
it contains lots of mappings to store files according to XDG
and configuration for less
and fzf
.
.config
- 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
.local
- scripts
- lots of useful scripts, most have a short documentation header - including many essential git scripts
Package Setup (moving to 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 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
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
- offlineimap mu
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
Issues
Manjaro Sway
- zsh vim bindings don't work properly
- clipboard sync does not work in Doom Emacs (fixed?)