dotfiles/README.org

141 lines
6.5 KiB
Org Mode

* 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][.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 try to keep my home clean,
but some files unfortunately cannot be moved.
Out of these, only [[.zshenv][.zshenv]] 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][bin/scripts]] :: lots of useful scripts,
most have a short documentation header -
including many essential git scripts
- [[.local/bin/server][bin/server]]-scripts :: a few scripts for use on servers
* Package Setup (moving to [[https://github.com/xeruf/instalee][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:
#+begin_src sh
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
#+end_src
** 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
*** Essential [[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]]