130 lines
		
	
	
	
		
			4.8 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			130 lines
		
	
	
	
		
			4.8 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| [private]
 | |
| default:
 | |
|     @just --list
 | |
| 
 | |
| _echoerror text:
 | |
|     @echo -e "{{ style("error") }}{{ text }}{{ NORMAL }}"
 | |
| 
 | |
| _echowarning text:
 | |
|     @echo -e "{{ style("warning") }}{{ text }}{{ NORMAL }}"
 | |
| 
 | |
| # Full auto installation
 | |
| full-auto: packages dev-setup fish-shell helix-editor yazi-file-manager fastfetch
 | |
| 
 | |
| # Fuller auto (graphical) installation
 | |
| 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"
 | |
| 
 | |
| [group("other")]
 | |
| fastfetch:
 | |
|     @just _echowarning "1) Installing fastfetch and dependencies"
 | |
|     paru -S fastfetch imagemagick
 | |
| 
 | |
|     @just _echowarning "\n2) Stowing fastfetch config"
 | |
|     stow --dotfiles -S fastfetch
 | |
| 
 | |
| # 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 otf-commit-mono-nerd python-pygments
 | |
| 
 | |
|     @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 adw-gtk-theme brightnessctl cliphist fuzzel gdm gnome-keyring gtklock inter-font mako niri-git noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra overskride polkit-kde-agent swaybg swayidle ttf-firacode-nerd ttf-font-awesome waybar wl-clipboard wlsunset xdg-desktop-portal-gnome xwayland-satellite-git
 | |
| 
 | |
|     @just _echowarning "\n2) Stowing niri config"
 | |
|     stow niri
 | |
|     stow fuzzel
 | |
|     stow gtklock swayidle
 | |
|     stow mako
 | |
|     stow waybar
 | |
| 
 | |
|     @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
 | |
| 
 |