130 lines
6.2 KiB
Org Mode
130 lines
6.2 KiB
Org Mode
* 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]])
|
|
By Size:
|
|
: LC_ALL=C pacman -Qi | awk '/^Name/{name=$3} /^Installed Size/{print $4$5, name}' | sort -h
|
|
Copy list of in stalled packages:
|
|
: 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
|
|
|
|
Basics: diffr fzf
|
|
** 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]]
|