From 3bb6d2fac7b4839bd333d8e270678b42653a4d77 Mon Sep 17 00:00:00 2001 From: Thomas Dehaeze Date: Thu, 16 Apr 2026 23:34:03 +0200 Subject: [PATCH] Add some installation documentation --- config.org | 2 +- install.org | 138 ++++++++++++++++++++++++++++++++-------- notifications.org | 2 + scripts/install-main.sh | 1 + 4 files changed, 114 insertions(+), 29 deletions(-) diff --git a/config.org b/config.org index 29b8b57..2ea7ba9 100644 --- a/config.org +++ b/config.org @@ -761,4 +761,4 @@ delay = 200 rate = 40 #+end_src -And then enable the service with: =systemctl --user enable xautocfg.service= +And then enable the service with: =systemctl --user enable --now xautocfg.service= diff --git a/install.org b/install.org index c3bd8c2..09b71f0 100644 --- a/install.org +++ b/install.org @@ -118,7 +118,7 @@ tangle() { #+begin_src bash echo "==> Shell and Terminal" paru -S --needed --noconfirm \ - bash bash-completion zsh \ + bash bash-completion \ kitty \ tmux #+end_src @@ -131,6 +131,7 @@ paru -S --needed --noconfirm \ echo "==> Fonts" paru -S --needed --noconfirm \ ttf-hack-nerd \ + otf-libertinus \ ttf-sourcecodepro-nerd \ adobe-source-code-pro-fonts \ noto-fonts-emoji @@ -169,6 +170,8 @@ paru -S --needed --noconfirm \ Generate a GPG key: #+begin_src bash :tangle no +mkdir -p ~/.local/share/gnupg +gpg-agent --daemon gpg --full-gen-key #+end_src @@ -184,6 +187,95 @@ pass git init pass git remote add origin https://github.com/tdehaeze/pass.git #+end_src +Or =cd ~/.local/share= and =git clone https://git.tdehaeze.xyz/tdehaeze/pass= + +*** Setup password store on new computer (B) +**** On computer B (new) + +1. Generate key: +#+begin_src bash :tangle no +gpg --full-generate-key +#+end_src +Remember the fingerprint (e.g., ~FBDA20B263C0C74A462D06F417F6BC48C15759C1~) + +2. Export public key: +#+begin_src bash :tangle no +gpg --export FBDA20B263C0C74A462D06F417F6BC48C15759C1 > B.pub +#+end_src + +3. Copy ~B.pub~ to computer A (USB, scp, etc.) + +**** On computer A (existing) + +4. Import B's public key: +#+begin_src bash :tangle no +gpg --import B.pub +#+end_src + +5. Trust the key: +#+begin_src bash :tangle no +gpg --edit-key FBDA20B263C0C74A462D06F417F6BC48C15759C1 +#+end_src +#+begin_example +trust +5 +save +#+end_example + +6. Find A's fingerprint: +#+begin_src bash :tangle no +gpg --fingerprint dehaeze.thomas@gmail.com +#+end_src +Note the fingerprint of the key used for pass (e.g., ~453D80FAF9BBDF56CB4167699C30DC293122F6C6~) + +7. Re-encrypt store to both keys: +#+begin_src bash :tangle no +pass init "453D80FAF9BBDF56CB4167699C30DC293122F6C6" "FBDA20B263C0C74A462D06F417F6BC48C15759C1" +#+end_src + +8. Export A's public key: +#+begin_src bash :tangle no +gpg --export 453D80FAF9BBDF56CB4167699C30DC293122F6C6 > A.pub +#+end_src + +9. Push password store changes: +#+begin_src bash :tangle no +pass git push +#+end_src + +10. Copy ~A.pub~ to computer B + +**** Back on computer B + +11. Import A's public key: +#+begin_src bash :tangle no +gpg --import A.pub +#+end_src + +12. Trust the key: +#+begin_src bash :tangle no +gpg --edit-key 453D80FAF9BBDF56CB4167699C30DC293122F6C6 +#+end_src +#+begin_example +trust +5 +save +#+end_example + +13. Clone password store (if using git): +#+begin_src bash :tangle no +git clone ~/.password-store +cd ~/.password-store +pass git pull +#+end_src + +14. Verify: +#+begin_src bash :tangle no +pass show some-password +pass insert test/new-password +pass show test/new-password +#+end_src + ** SSH Generate a new SSH key: @@ -264,6 +356,7 @@ paru -S --needed --noconfirm \ tesseract tesseract-data-eng tesseract-data-fra tesseract-data-osd \ zathura zathura-pdf-mupdf zathura-djvu zathura-ps zathura-cb \ pdfpc \ + f3d \ gst-plugins-ugly gst-plugins-good gst-plugins-base-libs gst-plugins-base gst-plugins-bad gst-libav #+end_src @@ -331,12 +424,16 @@ paru -S --needed --noconfirm \ gotify-dunst-git \ gomuks \ yt-dlp \ + freerdp \ + xautocfg \ python ipython python-pip #+end_src -Enable Syncthing: +Enable Syncthing and Gotify-dunst: #+begin_src bash :tangle no systemctl --user enable --now syncthing +systemctl --user enable --now gotify-dunst +systemctl --user enable --now xautocfg #+end_src ** Misc Utilities @@ -447,44 +544,29 @@ xdg-mime default qutebrowser.desktop x-scheme-handler/http xdg-mime default qutebrowser.desktop x-scheme-handler/https #+end_src -* Mail Install Script +* Specific Applications :PROPERTIES: -:header-args:bash: :tangle scripts/install-mail.sh :shebang "#!/bin/bash" :mkdirp yes +:header-args:bash: :tangle scripts/install-gui.sh :shebang "#!/bin/bash" :mkdirp yes :END: -Mail setup documentation: [[file:mail.org][mail.org]] - #+begin_src bash set -euo pipefail #+end_src -** Packages - #+begin_src bash -echo "==> Mail packages" +echo "==> GUI applications" paru -S --needed --noconfirm \ - isync \ - msmtp \ - neomutt \ - mu \ - lynx urlview + inkscape \ + freecad \ + bambustudio-bin \ + pcmanfm \ + jellyfin-desktop \ + xournalpp \ + anydesk-bin #+end_src -** Initialize mu +[[file:bash.org][Bash]] configuration: =~/.bashrc=, =~/.bash_profile=, =~/.config/bash/=, =~/.profile= -#+begin_src bash :tangle no -echo "==> Initializing mu index" -mu init -m ~/.mail/ -mu index -#+end_src - -** Systemd Timers - -#+begin_src bash :tangle no -echo "==> Enabling mail timers" -systemctl --user enable --now checkmail.timer -systemctl --user enable --now syncmail.timer -#+end_src * LaTeX Install Script :PROPERTIES: diff --git a/notifications.org b/notifications.org index 639cb26..009c851 100644 --- a/notifications.org +++ b/notifications.org @@ -3,6 +3,8 @@ #+PROPERTY: header-args :comments both :mkdirp yes #+PROPERTY: header-args+ :tangle ~/.config/dunst/dunstrc +After tangling this config, restart the service with =systemctl --user restart dunst=. + * Global #+begin_src conf [global] diff --git a/scripts/install-main.sh b/scripts/install-main.sh index 6c80930..f789e7c 100755 --- a/scripts/install-main.sh +++ b/scripts/install-main.sh @@ -104,6 +104,7 @@ paru -S --needed --noconfirm \ gotify-dunst-git \ gomuks \ yt-dlp \ + freerdp \ python ipython python-pip echo "==> Misc Utilities"