[private] default: @just --list _echoerror text: @echo -e "{{ style("error") }}{{ text }}{{ NORMAL }}" _echowarning text: @echo -e "{{ style("warning") }}{{ text }}{{ NORMAL }}" full-auto: packages dev-setup fish-shell helix-editor yazi-file-manager full-auto-gui: full-auto kitty-terminal niri-window-manager # (Run first unless running full-auto) Setup Flatpak, pacman mirrors, Chaotic AUR, and paru AUR helper packages: @just _echowarning "1) Installing Flatpak and adding Flathub repository" sudo pacman -S flatpak flatpak-xdg-utils flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo @just _echowarning "\n2) Installing reflector (automatic mirror configuration)" sudo pacman -S reflector @just _echoerror "\n\n----- IMPORTANT -----\nPlease modify /etc/xdg/reflector/reflector.conf before continuing\n---------------------" @read -p "Press enter to continue" sudo systemctl enable --now reflector.timer @just _echowarning "\n3) Adding Chaotic AUR repository to pacman" sudo pacman-key --recv-key 3056513887B78AEB --keyserver keyserver.ubuntu.com sudo pacman-key --lsign-key 3056513887B78AEB sudo pacman -U 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst' sudo pacman -U 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst' @just _echoerror "\n\n----- IMPORTANT -----\nPlease add the following 2 lines to the end of /etc/pacman.conf before continuing\n\n[chaotic-aur]\nInclude = /etc/pacman.d/chaotic-mirrorlist\n---------------------" @read -p "Press enter to continue" @just _echowarning "\n4) Installing paru AUR helper" sudo pacman -Sy paru # Programming languages, runtimes, toolchains, and git [group("essentials")] dev-setup: @just _echowarning "1) Installing languages, runtimes, and toolchains" paru -S aspnet-runtime aspnet-targeting-pack dotnet-sdk nodejs npm python3 rustup zig @just _echowarning "\n2) Installing Rust language" rustup toolchain add stable-x86_64-unknown-linux-gnu @just _echowarning "\n3) Setting git global config" git config --global init.defaultBranch "main" # fish shell and plugins [group("essentials")] fish-shell: @just _echowarning "1) Installing fish, fish plugin manager, and Starship prompt" paru -S fisher fish starship @just _echowarning "\n2) Stowing fish config" stow --dotfiles -S fish @just _echowarning "\n3) Setting user shell" chsh -s /usr/bin/fish @just _echowarning "\n4) Installing fish plugins" fish -c "fisher update" [group("essentials")] helix-editor: @just _echowarning "1) Installing Helix and dependencies" paru -S bash-language-server clang fish-lsp helix just-lsp lemminx marksman python-lsp-server shfmt taplo-cli typescript-language-server vscode-css-languageserver vscode-html-languageserver vscode-json-languageserver yaml-language-server zls @just _echowarning "\n2) Stowing Helix config" stow --dotfiles -S helix [group("graphical")] kitty-terminal: @just _echowarning "1) Installing Kitty and dependencies" paru -S imagemagick kitty python-pygments ttf-firacode-nerd @just _echowarning "\n2) Stowing Kitty config" stow --dotfiles -S kitty # Install niri and tools used with it [group("graphical")] niri-window-manager: @just _echowarning "1) Installing niri and related tools" paru -S cliphist fuzzel gdm gnome-keyring niri-git noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra polkit-kde-agent swayidle swaylock swaync ttf-firacode-nerd ttf-font-awesome waybar wl-clipboard wlsunset wpaperd xdg-desktop-portal-gnome xwayland-satellite-git @just _echowarning "\n2) Stowing niri config" stow --dotfiles -S niri @just _echowarning "\n3) Enabling GNOME display manager service" sudo systemctl enable gdm [group("other")] syncthing-file-sync: @just _echowarning "1) Installing Syncthing" paru -S syncthing @just _echowarning "\n2) Enabling and starting Syncthing user service" systemctl enable --now --user syncthing # Yazi terminal file manager and plugins [group("essentials")] yazi-file-manager: @just _echowarning "1) Installing Yazi and dependencies" paru -S 7zip fd ffmpeg fzf imagemagick jq poppler resvg ripgrep wl-clipboard yazi zoxide @just _echowarning "\n2) Stowing Yazi config" stow --dotfiles -S yazi @just _echowarning "\n3) Installing Yazi plugins" ya pkg install