These are notes taken be me through the years of using (mostly) Arch Linux distribution as well as (less) Windows OS.
This can be considered as a ‘loose provisioning guidelines’ and it acts for me as a goto-source-of-copy-paste when [re]configuring [new] system (including containerized).
It’s worth mentioning that these are more like ‘init’-scripts rather than ‘maintenance’-scripts which I publish in a separate section maintenance guideliness (todo – link).
1. essential
Essential packages and configurations
1.1. package management
1.1.1. update
1.1.2. yay for arch aur
1.1.3. speed up aur compilations
1.1.4. pactree
1.2. user
1.3. time & date
1.4. envvars
1.5. configs
dot-files basically
1.6. terminal
zsh+alacritty+oh-my are essential
1.6.1. zsh
1.6.2. alacritty
1.6.3. oh-my
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" ln -s ~/configs/linux/.zshrc ~/
1.6.4. vim binds in zsh
1.6.5. kitty
I use alacritty now though..
1.6.6. (on fedora/gnome/ubuntu?) making kitty default terminal (instead of gnome-terminal)
1.6.7. zsh plugins
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
Set ZSH_THEME=”powerlevel10k/powerlevel10k” in ~/.zshrc
these plugins are already in soft-linked .zshrc
git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
1.6.8. to change shell (chsh)
1.6.9. themes (e.g. for gnome-terminal, termite, ..)
1.6.10. fortune, cowsay
1.6.11. icons
1.6.12. fonts
1.7. tools
Various important and useful packages – most of them are rather mandatory than optional.
1.7.1. build-essentials fedora
1.8. network
1.9. emacs
1.9.1. install
At the moment I’m simply using yay emacs-git package
- from git source
#git clone https://github.com/emacs-mirror/emacs #git clone –depth 1 -b emacs-27 https://git.savannah.gnu.org/git/emacs.git cd ~/emacs ./autogen.sh ./configure –with-mailutils –with-xwidgets –with-native-compilation make # check it’s working src/emacs –version sudo make install - native-comp and other dependencies
# native yain libgccjit # json pacin jansson - from source zip
# Dependencies for development sudo dnf group install "Development Tools" # Dependencies specific to emacs sudo dnf builddep emacs # Download the latest stable release from emacs website wget http://mirrors.kernel.org/gnu/emacs/emacs-26.3.tar.xz wget http://mirrors.kernel.org/gnu/emacs/emacs-26.3.tar.xz.sig # Verify the tar.xz file gpg --verify emacs-26.3.tar.xz.sig emacs-26.3.tar.xz # Once that has been taken care of, extract the tar.xz archive. tar -xvf emacs-26.3.tar.xz # Go into the newly made folder cd emacs-26.3 # Configure the source ./configure # Compile the source make # Check the binary to see that it runs smoothly src/emacs -Q # Install the binary sudo make install
- fedora
sudo dnf install emacs
- from rpm
- download through rpmfinder – emacs, emacs-common, emacs-filesystem
- remove –noautoremove above
- install using dnf install <file>
- download through rpmfinder – emacs, emacs-common, emacs-filesystem
- on osx
brew install emacs –HEAD –with-cocoa –with-gnutls –with-librsvg –with-imagemagick@6 –with-mailutils brew linkapps emacs rm /Applications/Emacs.app osascript -e ‘tell application “Finder” to make alias file to POSIX file “/usr/local/opt/emacs/Emacs.app” at POSIX file “/Applications”‘
1.9.2. config
Then you have to open .config/emacs/config.org and M-x org-babel-tangle
- chemacs (been experimenting with) – https://github.com/plexus/chemacs2
1.9.3. start as daemon
see configs/bin/emacsclient-smart script
1.9.4. fonts
M-x all-the-icons-install-fonts M-x nerd-icons-install-fonts on windows - this will ask to download only, then install it manually
1.9.5. mu4e & mail
1.9.6. fix shell colors
1.9.7. various desktop file shortcuts
1.10. vim
I use emacs 95% of time but still may use vim in some quick sys-files edits
2. system
Lower-level optional tweaks and packages
2.1. boot
I’m currently using refind for dual boot of windows+arch
2.2. firmware
2.3. kernel
2.4. performance
disk&network tools
monitor traffic
sleep&hibernate
disable system beep permanently (was needed on fedora)
2.4.1. install on fedora
i7z
3. crypt
These are notes on how I setup and manage sensitive information and configs:
- passwords/credentials
- private-keys (ssh, gpg, etc)
- secure storage
3.1. crypt
3.2. test if gpg works
3.3. pass
3.4. access win bitlocked disk
4. desktop
I’m currently using xorg+i3+i3blocks
4.1. i3
i3 rename window (in-progess)
pacin xdotool wmctrl
4.2. i3blocks
4.3. clipboard
4.4. X key bindings
4.5. wayland & sway
sway-start with WLR config when there are multiple gpus:
sudo run x apps under wayland
manage xresources on wayland&sway
dmenu & wayland, sway
cursors (wayland)
4.6. scaling
4.7. fonts & icons
4.7.1. install ibm plex from sources
4.7.2. manage fonts
4.7.3. mono fonts
4.8. tray icons
4.9. notifications
4.9.1. dunst
4.9.2. mako (wayland)
4.9.3. battery_low
4.9.4. do not disturb on meetings
4.9.5. sounds
4.10. wallpaper
4.11. minimalist greeter (instead of display manager) for sway
4.12. rofi
4.13. screen/idle lock, suspend
if not lightdm – set IdleAction=lock in sudo vim /etc/systemd/logind.conf
lightdm lid close handlers – set HandleLidSwitch=suspend in /etc/systemd/logind.conf
betterlockscreen
4.14. screensaver (stupid)
pacin xscreensaver
4.15. composite manager
4.16. prettifying and settings tools
4.17. cursors
4.18. display manager
4.19. conky
4.20. screenfetch -t
5. peripheral
5.1. keyboard & touch
5.1.1. on x11
5.1.2. gestures
5.1.3. on wayland-sway
configure in sway config
5.1.4. interceptions tools, caps2esc, space2meta, return2ctrl
5.1.5. screen capture on sway
5.1.6. screenkey with slop
5.2. camera
5.3. fingerprint
thinkpad x1 carbon gen6
ok, now setup pam:
/etc/pam.d/system-auth
/etc/pam.d/system-local-login
5.4. thunderbolt
6. display & graphics
6.1. intel graphics
6.2. nvidia gpu
6.3. autoxrandr
6.4. backlight & brightness
6.5. redshift
at /etc/geoclue
check:
/usr/lib/geoclue-2.0/demos/agent
/usr/lib/geoclue-2.0/demos/where-am-i
service
6.6. manage displays on wayland
6.7. screen sharing on wayland
7. disks & files
7.1. disks
7.2. nemo
7.3. ranger
7.4. dirvish
7.5. dropbox
7.6. rclone
7.7. office
7.8. gdrive
7.8.1. google-drive-ocamlfuse
- automount (fstab)
/usr/bin/gdfuse +x
#!/bin/bash su $USERNAME -l -c “google-drive-ocamlfuse -label $1 $*” exit 0
etc/fstab
gdfuse#default /home/$USERNAME/gdrive fuse uid=1000,gid=1000,allow_other,user,_netdev 0 0
- automount (systemd)
sudo vi /etc/systemd/system/google-drive.service [Unit] Description=FUSE filesystem over Google Drive After=network.target [Service] User=twist Group=twist ExecStart=/home/twist/.opam/default/bin/google-drive-ocamlfuse -label default /home/twist/mnt/drive ExecStop=fusermount -u /home/twist/mnt/drive Restart=always Type=forking [Install] WantedBy=multi-user.target Alias=google-drive.service sudo systemctl daemon-reload sudo systemctl start google-drive
7.8.2. gvfs and files-mngr integration
7.8.3. rclone
7.9. android mount&files
7.10. pdf & djvu
7.11. latex
7.12. books
7.13. mime
8. multimedia
8.1. audio
8.2. issue with mic not detected on startup (only detected after in-out of headphones)
8.3. music
8.4. bluetooth
enable bluetooth.service
/etc/bluetooth/main.conf
8.4.1. how to connect bluetooth headset?
8.5. codecs
8.6. video
8.7. images
8.8. drive&photos
8.9. graphics editing
8.10. camera
8.10.1. control from computer
https://medium.com/nerdery/dslr-webcam-setup-for-linux-9b6d1b79ae22
https://www.crackedthecode.co/how-to-use-your-dslr-as-a-webcam-in-linux/
8.11. video
8.12. daw
9. apps
9.1. msgs
9.1.1. zoom
9.1.2. slack
9.1.3. others
9.1.4. telegram
9.1.5. skype
9.1.6. pidgin
9.1.7. yain ferdi
9.1.8. yain upwork
9.1.9. matrix
- synapse
# https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/prerequisites.md # server # ssh keys echo “” > .ssh/authorized_keys # host # https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/ansible.md pacin ansible # https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/configuring-playbook.md # install (reinstall) ansible-playbook -i inventory/hosts setup.yml –tags=setup-all # start/restart ansible-playbook -i inventory/hosts setup.yml –tags=start # check ansible-playbook -i inventory/hosts setup.yml –tags=self-check #https://federationtester.matrix.org/#matrix.ostapchuk.xyz # create user ansible-playbook -i inventory/hosts setup.yml –extra-vars=’username=twist522 password= admin=yes’ –tags=register-user # maintenance https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/faq.md#maintenance
see:how to increase swap
- slack
# how to (re)link bridge link xoxc d-cookie # (but remove last %% from that cookie value)
9.2. beancount & [h]ledger
9.3. wine
9.4. virtualbox
9.5. qemu
9.6. steam
9.7. others
9.8. jackd
9.9. accessibility
(load-file "/home/twist/emacspeak/lisp/emacspeak-setup.el")
10. dev tools
10.1. scala
10.2. sbt
10.3. java
10.3.1. java8
10.4. gradle
10.5. python
10.5.1. conda
10.5.2. pip
10.5.3. libs
10.6. jupyter
10.7. npm
10.8. other dev tools
10.9. reveal.js used by org-reveal
10.10. lsp
10.10.1. js
10.10.2. py
10.10.3. others
10.10.4. c++/c
10.11. docker
10.12. boxes
10.13. lombok for lsp
10.14. scala metals
10.15. kafkacat
10.16. k8s
10.17. spell-check
10.18. sql
10.19. s3 mount
10.20. ftp
10.21. android
10.22. android
10.22.1. emulation
10.22.2. anbox
linux-zen
https://wiki.archlinux.org/title/Anbox#Loading_the_kernel_modules