Major rewrite: switching back to Arch from NixOS

This commit is contained in:
ItsDrike 2024-10-02 14:37:28 +02:00
parent df585b737b
commit 254181c0fc
Signed by: ItsDrike
GPG key ID: FA2745890B7048C0
121 changed files with 5433 additions and 2371 deletions

View file

@ -21,6 +21,8 @@ mkdir -p ~/.local/share/pki
cp -a home/.mozilla ~ # symlink
mkdir -p ~/.config/mozilla
mkdir -p ~/.config/nv
mkdir -p ~/.cache/nv
touch ~/.cache/nv/.keep
cp -ar home/.local/share/thumbnailers ~/.local/share
cp -ar home/.local/share/icons ~/.local/
cp -ar home/.config/fontconfig ~/.config
@ -34,19 +36,86 @@ cp -ar home/.config/pcmanfm ~/.config
cp -ar home/.config/pcmanfm-qt ~/.config
cp -ar home/.config/pypoetry ~/.config
cp -ar home/.config/qt5ct ~/.config
cp -ar home/.config/qt6ct ~/.config
cp -ar home/.config/Kvantum ~/.config
cp -ar home/.config/gtk-2.0 ~/.config
cp -ar home/.config/gtk-3.0 ~/.config
cp -ar home/.config/gtk-4.0 ~/.config
cp -ar home/.config/tmux ~/.config
cp -ra home/.config/hyfetch ~/.config
cp -ra home/.config/wireplumber ~/.config
cp -ra home/.config/alacritty ~/.config
cp -ra home/.config/kitty ~/.config
cp -ra home/.config/systemd ~/.config
cp -ra home/.config/dunst ~/.config
cp -ra home/.config/eww ~/.config
# Wayland-specific settings
cp -ra home/.config/hypr ~/.config
cp home/.config/chromium-flags.conf ~/.config
cp -ra home/.config/swappy ~/.config
cp -ra home/.config/swayidle ~/.config
cp -ra home/.config/wofi ~/.config
cp -ra home/.config/nomacs ~/.config
cp -ra home/.config/qimgv ~/.config
cp -ra home/.config/xdg-desktop-portal ~/.config
# Sync mirrors and update before other installations
paru -Syu --noconfirm
# Instal fonts
paru -S --needed \
libxft xorg-font-util \
ttf-joypixels otf-jost lexend-fonts-git ttf-sarasa-gothic \
ttf-roboto ttf-work-sans ttf-comic-neue \
gnu-free-fonts tex-gyre-fonts ttf-liberation otf-unifont \
inter-font ttf-lato ttf-dejavu noto-fonts noto-fonts-cjk \
noto-fonts-emoji ttf-material-design-icons-git \
ttf-font-awesome ttf-twemoji otf-openmoji \
adobe-source-code-pro-fonts adobe-source-han-mono-otc-fonts \
adobe-source-sans-fonts ttf-jetbrains-mono otf-monaspace \
ttf-ms-fonts
# nerd fonts (I like to install specific pkgs instead of the whole nerd-fonts group
# as it's pretty large: ~8GB)
paru -S --needed \
ttf-firacode-nerd otf-firamono-nerd ttf-iosevka-nerd ttf-nerd-fonts-symbols \
ttf-hack-nerd ttf-heavydata-nerd ttf-gohu-nerd
# Audio
paru -S --noconfirm --needed \
pipewire pipewire-pulse pipewire-pulse pipewire-jack wireplumber alsa-utils pulsemixer
# Themes
paru -S --noconfirm --needed \
rose-pine-cursor papirus-folders-catppuccin-git tokyonight-gtk-theme-git \
nwg-look kvantum kvantum-qt5 qt5ct qt6ct kvantum-theme-catppuccin-git
# Extra themes (I don't use these in my config, but I might switch at some point
# and it's nice to have them listed and available)
paru -S --noconfirm --needed \
gnome-themes-extra gnome-icon-theme-extras python-qt-material notify-osd papirus-icon-theme \
adwaita-qt5 adwaita-qt6
# WM Essentials
paru -S --noconfirm --needed \
dunst udisks2 udiskie gvfs gvfs-mtp gnome-keyring xorg-xinput polkit-gnome brightnessctl
# Wayland WM essentials
paru -S --noconfirm --needed \
wl-clipboard xdg-desktop-portal qt5-wayland qt6-wayland wev wl-gammarelay-rs wdisplays
# Utilities
paru -S --noconfirm --needed \
nm-connection-editor ffmpegthumbnailer upower devour hyfetch fastfetch bottom tesseract tesseract-data-eng
# Wayland Utilities
paru -S --noconfirm --needed \
grim slurp wofi swappy-git wf-recorder wlogout clipman hyprpicker hyprpaper
# Applications
paru -S --noconfirm --needed \
vesktop firefox chromium kitty mpv pcmanfm-qt file-roller obs-studio qbittorrent \
qalculate-gtk spotify qimgv nomacs stremio seahorse
# Bluetooth
paru -S --noconfirm --needed bluez bluez-utils blueberry
# Hyprcursor theme of my choice
mkdir -p ~/.local/share/icons
@ -54,85 +123,24 @@ pushd ~/.local/share/icons
git clone https://github.com/ndom91/rose-pine-cursor-hyprcursor
popd
# Sync mirrors and update before other installations
yay -Syu --noconfirm
# Lockscreen
# To test the lockscreen, you can run loginctl lock-session, while in a graphical session
paru -S --noconfirm --needed hyprlock hypridle systemd-lock-handler
# Instal fonts
yay -S --noconfirm --needed \
libxft ttf-hack ttf-joypixels noto-fonts noto-fonts-cjk noto-fonts-emoji ttf-font-awesome \
ttf-jetbrains-mono xorg-font-util ttf-ms-fonts otf-jost ttf-material-design-icons-git \
nerd-fonts-git
# Eww bar
paru -S --noconfirm --needed eww
# Audio
yay -S --noconfirm --needed \
pipewire pipewire-pulse pipewire-pulse pipewire-jack wireplumber alsa-utils pulsemixer
# Themes
yay -S --noconfirm --needed \
gnome-themes-extra gnome-icon-theme-extras python-qt-material notify-osd papirus-icon-theme \
lxappearance adwaita-qt5 adwaita-qt6 qt5ct
# WM Essentials
yay -S --noconfirm --needed \
dunst udisks2 udiskie gvfs gvfs-mtp gnome-keyring xorg-xinput polkit-gnome
# Wayland WM essentials
yay -S --noconfirm --needed \
wl-clipboard xdg-desktop-portal qt5-qayland qt6-wayland wev wl-gammarelay-rs wdisplays
# Utilities
yay -S --noconfirm --needed \
nm-connection-editor ffmpegthumbnailer upower devour hyfetch
# Wayland Utilities
yay -S --noconfirm --needed \
grim slurp wofi swappy-git swaybg wf-recorder wlogout hyprpicker-git clipman
# Applications
yay -S --noconfirm --needed \
vesktop firefox chromium kitty mpv pcmanfm-qt file-roller obs-studio qbittorrent \
qalculate-gtk-nognome spotify nomacs
yay -S --noconfirm --needed stremio
# Bluetooth
yay -S --noconfirm --needed bluez bluiz-utils blueberry
# Build hyprland
yay -S --noconfirm --needed \
gdb ninja gcc cmake meson libxcb xcb-proto xcb-util xcb-util-keysyms libxfixes libx11 libxcomposite \
xorg-xinput libxrender pixman wayland-protocols cairo pango seatd libxkbcommon xcb-util-wm xorg-xwayland \
libinput libliftoff libdisplay-info cpio hyprlang-git hyprcursor-git
mkdir -p ~/.local/src
git clone --recursive https://github.com/hyprwm/Hyprland ~/.local/src/Hyprland || true # don't fail if exists
pushd ~/.local/src/Hyprland
# TODO: Consider git pull here, in case the clone fell through and hyprland was already installed
git checkout "$(git rev-list --tags --max-count=1)" # check out the last tag (latest stable release)
make all
sudo make install
popd
yay -S --noconfirm --needed xdg-desktop-portal-hyprland-git hyprpaper
# Hyprland
paru -S --noconfirm --needed hyprland xdg-desktop-portal-hyprland
sudo pacman -R --noconfirm xdg-desktop-portal-gnome || true # don't fail if this isn't installed
cp -ra home/.config/hypr ~/.config/hypr
# Build eww
sudo pacman -S --noconfirm --needed \
gtk3 gtk-layer-shell rustup openbsd-netcat pango gdk-pixbuf2 cairo glib2 gcc-libs glibc libdbusmenu-gtk3
sudo rustup default stable
# Use a fork instead of the original elkowar/eww, for system tray suppot
sudo mkdir -p /usr/local/src
sudo git clone https://github.com/ralismark/eww /usr/local/src/eww || true # don't fail if exists
pushd /usr/local/src/eww
sudo git checkout tray-3
sudo cargo build --release --no-default-features --features=wayland
sudo ln -s /usr/local/src/eww/target/release/eww /usr/local/bin
popd
# Lockscreen
yay -S --noconfirm --needed hyprlock-git hypridle-git systemd-lock-handler
# To test the lockscreen, you can run loginctl lock-session, while in a graphical session
# Generate db for -git packages
yay -Y --gendb
# Tools needed to build hyprland from source
# (even though I will not be building hyprland here and will instead use the packaged version,
# I like to have these on my system, since I sometimes want to experiment with building hyprland
# for debuggin)
paru -S --noconfirm --needed \
gdb ninja gcc cmake meson libxcb xcb-proto xcb-util xcb-util-keysyms libxfixes libx11 libxcomposite \
xorg-xinput libxrender pixman wayland-protocols cairo pango seatd libxkbcommon xcb-util-wm xorg-xwayland \
libinput libliftoff libdisplay-info cpio hyprlang hyprcursor
popd