sudoers: - run: - sudo sed "s/\$USER/$USER/g" $(ls dotfiles/sudoers.d/* | grep -v -e arch -e debian) | sudo tee /etc/sudoers.d/setup-cockpit >/dev/null 2>&1 - run: command: sudo sed "s/\$USER/$USER/g" dotfiles/sudoers.d/*.arch | sudo tee -a /etc/sudoers.d/setup-cockpit >/dev/null 2>&1 condition: arch - run: command: sudo sed "s/\$USER/$USER/g" dotfiles/sudoers.d/*.debian | sudo tee -a /etc/sudoers.d/setup-cockpit >/dev/null 2>&1 condition: debian - run: - sudo chmod 600 /etc/sudoers.d/setup-cockpit grub: - install: arch: - grub-theme-vimix - run: command: sudo cp /etc/default/grub /etc/default/grub.backup condition: "[ ! -e /etc/default/grub.backup ]" - run: - sudo sed -i -E 's/^#?GRUB_DEFAULT.+/GRUB_DEFAULT=saved/' /etc/default/grub && sudo sed -i -E 's@^#?GRUB_THEME.+@GRUB_THEME="/usr/share/grub/themes/Vimix/theme.txt"@' /etc/default/grub && sudo sed -i -E 's/^#?GRUB_SAVEDEFAULT.+/GRUB_SAVEDEFAULT=true/' /etc/default/grub && sudo sed -i -E 's/^#?GRUB_DISABLE_SUBMENU.+/GRUB_DISABLE_SUBMENU=y/' /etc/default/grub && sudo grub-mkconfig -o /boot/grub/grub.cfg git: - install: - git - run: - . ./secrets && git config --global user.name "${USER}@$(uname -n)"; git config --global user.email "$GIT_EMAIL"; git config --global pull.rebase false; git config --global alias.br "branch"; git config --global alias.ci "commit"; git config --global alias.co "checkout"; git config --global alias.cp "cherry-pick"; git config --global alias.st "status"; git config --global alias.logadog "log --all --decorate --oneline --graph"; git config --global alias.chlog "log --no-merges --oneline --stat @{1}.."; git config --global alias.df "diff --word-diff=color"; git config --global diff.tool vimdiff; git config --global init.defaultBranch "main" - symlink: - dotfiles/git/ignore - ~/.config/git/ignore etckeeper: - install: - etckeeper - run: - sudo git config --global user.name "root@$(uname -n)"; sudo git config --global user.email "root@$(uname -n)"; sudo git config --global init.defaultBranch "main" - run: command: sudo etckeeper init condition: "[ ! -d /etc/.git ]" - run: - sudo etckeeper commit "First commit" git-summary: - clone: - https://gitlab.com/lordadamson/git-summary.git - ~/.git_clones/git-summary - symlink: - ~/.git_clones/git-summary/git-summary - ~/.local/bin/git-summary repos: - clone: url: git@tunuifranken.info:flyingscorpio/secrets.git dest: ~/src/secrets branch: main - symlink: - ~/src/secrets/setup-cockpit/repos.yml - ~/setup-cockpit/repos.yml - include: - repos.yml pass: - install: - pass - gnupg - clone: url: git@tunuifranken.info:flyingscorpio/.password-store.git dest: ~/.password-store branch: main - symlink: - dotfiles/gpg/gpg-agent.conf - ~/.gnupg/gpg-agent.conf - run: command: sudo cp /usr/share/doc/pass/examples/dmenu/passmenu /usr/bin condition: debian - run: - sudo cp /usr/bin/passmenu /usr/bin/passmenu-url && sudo sed -i "s/pass show -c/pass show -c2/g" /usr/bin/passmenu-url; sudo cp /usr/bin/passmenu /usr/bin/passmenu-user && sudo sed -i "s/pass show -c/pass show -c3/g" /usr/bin/passmenu-user keepass: - install: - keepassxc - clone: - git@tunuifranken.info:flyingscorpio/keepass.git - ~/keepass protonvpn: - install: - openvpn - clone: url: https://aur.archlinux.org/openvpn-update-systemd-resolved.git dest: ~/builds/openvpn-update-systemd-resolved condition: arch - run: command: cd ~/builds/openvpn-update-systemd-resolved && makepkg -cirs --needed condition: arch - run: - sudo cp ~/src/secrets/setup-cockpit/protonvpn_confs/*.conf /etc/openvpn/client/ - run: - sudo cp ~/src/secrets/setup-cockpit/protonvpn_confs/pvpn.auth /etc/openvpn/client/ - run: - sudo systemctl enable openvpn-client@fr.protonvpn.com.udp.service mariadb: - install: - mariadb - run: command: sudo mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql && sudo systemctl start mysqld.service && sudo mysql_secure_installation condition: "sudo find /var/lib/mysql -mindepth 1 | read" i3: - install: arch: - noto-fonts - i3-gaps - dmenu # launch programs debian: - fonts-noto - i3-wm - suckless-tools both: - picom - xdg-user-dirs - i3lock - xsettingsd - lxappearance - scrot # enable screenshot with Printscreen - viewnior - hsetroot - symlink: - dotfiles/i3/config - ~/.config/i3/config - clone: - https://github.com/addy-dclxvi/i3-starterpack.git - ~/.git_clones/i3-starterpack - symlink: - dotfiles/xinitrc - ~/.xinitrc - symlink: - dotfiles/xserverrc - ~/.xserverrc - symlink: - dotfiles/Xresources - ~/.Xresources - symlink: - dotfiles/xsettingsd - ~/.xsettingsd - symlink: - dotfiles/picom.conf - ~/.config/picom.conf - symlink: - dotfiles/picom.conf - ~/.config/compton.conf - symlink: - ~/.git_clones/i3-starterpack/.fonts/icomoon/feather.ttf - ~/.fonts/icomoon/feather.ttf - run: - fc-cache -fv - run: - xdg-user-dirs-update i3blocks: - install: arch: - python-feedparser - python-matplotlib - i3blocks debian: - libstartup-notification0-dev # build dependency - python3-matplotlib both: - sysstat - upower - clone: url: https://github.com/vivien/i3blocks.git dest: ~/.git_clones/i3blocks branch: master condition: debian - run: command: cd ~/.git_clones/i3blocks && ./autogen.sh && ./configure && make && sudo make install condition: debian - symlink: - dotfiles/i3/blocks - ~/.config/i3blocks/config - clone: - https://github.com/vivien/i3blocks-contrib.git - ~/.git_clones/i3blocks-contrib - symlink: - dotfiles/i3/scripts/nagstamon - ~/.config/i3blocks/scripts/nagstamon - symlink: src: ~/.git_clones/i3blocks-contrib/apt-upgrades/apt-upgrades dest: ~/.config/i3blocks/scripts/apt-upgrades condition: debian - symlink: src: ~/.git_clones/i3blocks-contrib/arch-update/arch-update dest: ~/.config/i3blocks/scripts/arch-update condition: arch - symlink: src: dotfiles/i3/scripts/arch_linux_news/arch_linux_news dest: ~/.config/i3blocks/scripts/arch_linux_news condition: arch - symlink: - dotfiles/i3/scripts/battery - ~/.config/i3blocks/scripts/battery - symlink: - dotfiles/i3/scripts/corona_stats/corona_stats - ~/.config/i3blocks/scripts/corona_stats - symlink: - dotfiles/i3/scripts/crypto - ~/.config/i3blocks/scripts/crypto - symlink: - ~/.git_clones/i3blocks-contrib/calendar/calendar - ~/.config/i3blocks/scripts/calendar - symlink: - ~/.git_clones/i3blocks-contrib/temperature/temperature - ~/.config/i3blocks/scripts/temperature - symlink: - ~/.git_clones/i3blocks-contrib/cpu_usage/cpu_usage - ~/.config/i3blocks/scripts/cpu_usage - symlink: - dotfiles/i3/scripts/free_disk_space - ~/.config/i3blocks/scripts/free_disk_space - symlink: - dotfiles/i3/scripts/pub-ip - ~/.config/i3blocks/scripts/pub-ip markdown viewer: - write: - ~/.local/share/mime/packages/text-markdown.xml - | - run: - update-mime-database ~/.local/share/mime rust: - run: command: rustup self uninstall condition: "[ -e ~/.cargo ]" - install: - rustup - run: - rustup default stable java: - install: - jdk-openjdk pacman_hooks: - run: - sudo mkdir -p /etc/pacman.d/hooks - run: command: sudo ln -rsi dotfiles/pacman_hooks/borg_backup.hook /etc/pacman.d/hooks/borg_backup.hook condition: "[[ $(uname -n) = 'arch-desktop' ]]" - run: - sudo ln -rsi dotfiles/pacman_hooks/new_orphan.hook /etc/pacman.d/hooks/new_orphan.hook - run: - sudo ln -rsi dotfiles/pacman_hooks/pacdiff.hook /etc/pacman.d/hooks/pacdiff.hook - run: - sudo ln -rsi dotfiles/pacman_hooks/mirrorupgrade.hook /etc/pacman.d/hooks/mirrorupgrade.hook - run: - sudo ln -rsi dotfiles/pacman_hooks/paccache.hook /etc/pacman.d/hooks/paccache.hook rsync_backup: - run: - sudo ln -rsi dotfiles/systemd/rsync_backup.timer /etc/systemd/system/rsync_backup.timer - run: - sudo ln -rsi dotfiles/systemd/rsync_backup.service /etc/systemd/system/rsync_backup.service - run: - sudo systemctl enable rsync_backup.timer - symlink: - ~/src/secrets/setup-cockpit/rsync_backup_excludes - ~/setup-cockpit/rsync_backup_excludes gitea_backup_rsync: - run: - sudo ln -rsi dotfiles/systemd/gitea_backup_rsync.timer /etc/systemd/system/gitea_backup_rsync.timer - run: - sudo ln -rsi dotfiles/systemd/gitea_backup_rsync.service /etc/systemd/system/gitea_backup_rsync.service - run: - sudo systemctl enable gitea_backup_rsync.timer latex: - install: arch: - texlive-most - texlive-lang - biber debian: - texlive-full - symlink: - dotfiles/latexmkrc - ~/.latexmkrc lilypond: - install: - lilypond powershell: - clone: url: https://aur.archlinux.org/powershell-bin.git dest: ~/builds/powershell-bin condition: arch - run: command: cd ~/builds/powershell-bin && makepkg -cirs --needed condition: arch gaming: - run: command: sudo cp /etc/pacman.conf /etc/pacman.conf.backup condition: "[ ! -e /etc/pacman.conf.backup ]" - run: - 'LINESTART=$(grep -n "\[multilib\]" /etc/pacman.conf | cut -d: -f1 | head -n1); LINEEND=$((LINESTART+1)); sudo sed -i "${LINESTART},${LINEEND} s/^#//" /etc/pacman.conf' - install: - wine-staging - winetricks - lutris - steam - gamemode - giflib - lib32-giflib - libpng - lib32-libpng - libldap - lib32-libldap - gnutls - lib32-gnutls - mpg123 - lib32-mpg123 - openal - lib32-openal - v4l-utils - lib32-v4l-utils - libpulse - lib32-libpulse - libgpg-error - lib32-libgpg-error - alsa-plugins - lib32-alsa-plugins - alsa-lib - lib32-alsa-lib - libjpeg-turbo - lib32-libjpeg-turbo - sqlite - lib32-sqlite - libxcomposite - lib32-libxcomposite - libxinerama - lib32-libxinerama - libgcrypt - lib32-libgcrypt - ncurses - lib32-ncurses - opencl-icd-loader - lib32-opencl-icd-loader - libxslt - lib32-libxslt - libva - lib32-libva - gtk3 - lib32-gtk3 - gst-plugins-base-libs - lib32-gst-plugins-base-libs - vulkan-icd-loader - lib32-vulkan-icd-loader libvirt: - install: arch: - libvirt - iptables-nft - dnsmasq - dmidecode - virt-install - virt-viewer - qemu-headless - run: - sudo usermod -aG libvirt "${USER}" - run: - 'grep "libvirt libvirt_guest" /etc/nsswitch.conf >/dev/null 2>&1 || sudo sed -i -E "s/^hosts: (.+)/hosts: libvirt libvirt_guest \1/" /etc/nsswitch.conf' - run: - sudo systemctl start libvirtd.service && sudo systemctl enable libvirtd.service - run: - virsh pool-define-as libvirt-pool dir - - - - "/home/${USER}/.local/libvirt/images"; virsh pool-build libvirt-pool && virsh pool-start libvirt-pool && virsh pool-autostart libvirt-pool