Go to file
xeruf 83c67d2cb1 local/state/gradle/gradle.properties: raise timeout for slow internet 2024-06-28 22:28:31 +03:00
.config config/beets: initial configuration 2024-06-28 22:28:11 +03:00
.local local/state/gradle/gradle.properties: raise timeout for slow internet 2024-06-28 22:28:31 +03:00
.Xmodmap##hostname.elephant config/shell: fix some debugging leftovers 2022-03-19 16:19:50 +01:00
.Xresources config/shell: update & move aliases & helpers 2021-09-16 14:18:26 +02:00
.audacity-data dot: move audacity config 2021-11-07 05:47:53 +01:00
.bitsquid dot: fix game folder symlinks 2021-11-07 05:45:37 +01:00
.face add config from Dropbox 2020-03-08 19:58:52 +01:00
.factorio dot: move factorio and ftb data 2021-11-07 05:49:26 +01:00
.ftblauncher dot: move factorio and ftb data 2021-11-07 05:49:26 +01:00
.gdbinit config/gdb: add qt printers 2021-11-17 11:55:44 +01:00
.ghci config: move config-dotfiles into .config 2021-11-07 05:38:33 +01:00
.ignore Update dotfiles, add ghci prompt 2021-04-19 10:22:58 +02:00
.mailcap config: move config-dotfiles into .config 2021-11-07 05:38:33 +01:00
.minetest dot: fix game folder symlinks 2021-11-07 05:45:37 +01:00
.mpw.d Update some envs 2022-03-06 22:01:58 +01:00
.neurovoider dot: fix game folder symlinks 2021-11-07 05:45:37 +01:00
.pinforc config: move config-dotfiles into .config 2021-11-07 05:38:33 +01:00
.wget-hsts config: move config-dotfiles into .config 2021-11-07 05:38:33 +01:00
.xinitrc config: shell & x adjustments 2021-11-16 10:22:56 +01:00
.zshenv bin: update some defaults 2024-05-31 11:57:17 +03:00
README.org config: adjusting fd defaults 2023-11-15 20:51:02 +01:00

README.org

Dotfiles

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.

Usage

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)

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 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.

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 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.

.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

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

Full Personal Setup

Manjaro:

yay -Syu yadm instalee-full-git
yadm clone --bootstrap https://code.ftt.gmbh/janek/dotfiles
yadm remote set-url --push origin git@code.ftt.gmbh:janek/dotfiles.git
instalee arch/base
sudo systemctl enable --now syncthing@$USER

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
mail
offlineimap mu

Essential 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