Add installation scripts

This commit is contained in:
2026-04-15 10:54:48 +02:00
parent 20c3536ae5
commit 49ab682669
21 changed files with 1002 additions and 1936 deletions

9
scripts/install-calendar.sh Executable file
View File

@@ -0,0 +1,9 @@
#!/bin/bash
set -euo pipefail
echo "==> Calendar and contacts packages"
paru -S --needed \
vdirsyncer \
khal \
khard \
mu

41
scripts/install-desktop.sh Executable file
View File

@@ -0,0 +1,41 @@
#!/bin/bash
set -euo pipefail
DOTFILES="${HOME}/.config/literate-dotfiles"
tangle() {
emacsclient -e "(org-babel-tangle-file \"${DOTFILES}/$1\")" \
|| emacs --batch -l org --eval "(org-babel-tangle-file \"${DOTFILES}/$1\")"
}
echo "==> Desktop packages"
paru -S --needed \
i3-wm \
sxhkd \
polybar \
picom \
dunst \
rofi rofi-calc dmenu \
kitty \
bash bash-completion \
zoxide \
nerd-fonts-hack noto-fonts-emoji \
xorg-xrandr arandr \
xautocfg \
arc-gtk-theme xcursor-breeze \
feh xwallpaper
echo "==> Tangling desktop configs"
tangle "xconfig.org" # ~/.Xresources, ~/.xprofile, ~/.config/X11/xinitrc
tangle "bash.org" # ~/.bashrc, ~/.bash_profile, ~/.profile
tangle "kitty.org" # ~/.config/kitty/kitty.conf
tangle "i3.org" # ~/.config/i3/config
tangle "sxhkd.org" # ~/.config/sxhkd/sxhkdrc
tangle "polybar.org" # ~/.config/polybar/config.ini + scripts
tangle "compositor.org" # ~/.config/picom/picom.conf
tangle "rofi.org" # ~/.config/rofi/config.rasi
tangle "binaries.org" # ~/.local/bin/* scripts
tangle "binaries-private.org" # ~/.local/bin/* scripts
echo "==> Reloading desktop"
i3-msg restart 2>/dev/null || echo " (i3 not running, config will apply on next login)"

19
scripts/install-emacs.sh Executable file
View File

@@ -0,0 +1,19 @@
#!/bin/bash
set -euo pipefail
DOTFILES="${HOME}/.config/literate-dotfiles"
DOOM="${HOME}/.config/emacs/bin/doom"
echo "==> Emacs packages"
paru -S --needed emacs aspell aspell-en aspell-fr
echo "==> Installing Doom Emacs"
git clone --depth 1 https://github.com/doomemacs/doomemacs ~/.config/emacs
"${DOOM}" install --no-config
echo "==> Tangling doom.org"
emacsclient -e "(org-babel-tangle-file \"${DOTFILES}/doom.org\")" \
|| emacs --batch -l org --eval "(org-babel-tangle-file \"${DOTFILES}/doom.org\")"
echo "==> Running doom sync"
"${DOOM}" sync

13
scripts/install-laptop.sh Executable file
View File

@@ -0,0 +1,13 @@
#!/bin/bash
set -euo pipefail
echo "==> Laptop power management"
paru -S --needed \
powertop \
tlp \
thermald
sudo systemctl enable --now tlp
sudo systemctl enable --now tlp-sleep
sudo systemctl enable --now thermald
sudo tlp start

7
scripts/install-latex.sh Executable file
View File

@@ -0,0 +1,7 @@
#!/bin/bash
set -euo pipefail
echo "==> LaTeX packages"
paru -S --needed \
texlive-most tllocalmgr-git \
biber

10
scripts/install-mail.sh Executable file
View File

@@ -0,0 +1,10 @@
#!/bin/bash
set -euo pipefail
echo "==> Mail packages"
paru -S --needed \
isync \
msmtp \
neomutt \
mu \
lynx urlview

113
scripts/install-main.sh Executable file
View File

@@ -0,0 +1,113 @@
#!/bin/bash
set -euo pipefail
echo "==> Shell and Terminal"
paru -S --needed \
bash bash-completion zsh \
kitty \
tmux
echo "==> Fonts"
paru -S --needed \
nerd-fonts-hack \
noto-fonts-emoji
echo "==> Text Editors"
paru -S --needed \
neovim python-pynvim \
emacs \
aspell aspell-en aspell-fr
echo "==> GnuPG and Pass"
paru -S --needed \
gnupg gnome-keyring \
pass rofi-pass pass-git-helper
echo "==> Window Manager and Desktop"
paru -S --needed \
i3-wm \
sxhkd \
polybar \
picom \
dunst \
rofi rofi-calc dmenu \
xautocfg \
xorg-xrandr arandr
echo "==> File Manager"
paru -S --needed yazi
echo "==> Terminal Utilities"
paru -S --needed \
fd ripgrep fzf \
xclip xsel \
atool unzip \
trash-cli \
man-db \
neofetch
echo "==> Browser"
paru -S --needed \
qutebrowser python-adblock pdfjs \
firefox-developer-edition passff-host
echo "==> Media"
paru -S --needed \
mpv \
jellyfin-tui \
nsxiv \
zathura zathura-pdf-mupdf zathura-djvu zathura-ps zathura-cb \
pdfpc \
gst-plugins-ugly gst-plugins-good gst-plugins-base-libs gst-plugins-base gst-plugins-bad gst-libav
echo "==> PipeWire"
paru -S --needed \
pipewire pipewire-alsa pipewire-audio pipewire-jack pipewire-pulse \
wireplumber \
pwvucontrol
echo "==> PDF and Image Utilities"
paru -S --needed \
pdf2svg pdftk pdfarranger \
imagemagick \
maim flameshot \
unclutter \
poppler
echo "==> Office"
paru -S --needed \
onlyoffice-bin \
libreoffice-fresh libreoffice-fresh-fr \
inkscape
echo "==> System Utilities"
paru -S --needed \
udiskie \
blueman \
sshfs \
xwallpaper \
sof-firmware \
usbutils \
xautolock \
npm \
xorg-xkill \
syncthing \
wireguard-tools \
gotify-dunst-git \
gomuks \
yt-dlp \
python ipython python-pip
echo "==> GTK Theme"
paru -S --needed \
lxappearance \
arc-gtk-theme \
xcursor-breeze \
gtk2fontsel
echo "==> Misc Utilities"
paru -S --needed \
screenkey \
xwallpaper \
highlight-pointer-git \
mpd

18
scripts/install-neovim.sh Executable file
View File

@@ -0,0 +1,18 @@
#!/bin/bash
set -euo pipefail
DOTFILES="${HOME}/.config/literate-dotfiles"
echo "==> Neovim packages"
paru -S --needed neovim python-pynvim nodejs-neovim
echo "==> Installing vim-plug"
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
echo "==> Tangling vim.org"
emacsclient -e "(org-babel-tangle-file \"${DOTFILES}/vim.org\")" \
|| emacs --batch -l org --eval "(org-babel-tangle-file \"${DOTFILES}/vim.org\")"
echo "==> Installing neovim plugins"
nvim --headless +PlugInstall +UpdateRemotePlugins +qa