mirror of
https://github.com/ItsDrike/dotfiles.git
synced 2024-12-25 12:44:35 +00:00
147 lines
5.2 KiB
Bash
Executable file
147 lines
5.2 KiB
Bash
Executable file
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
# Arch installation script to be ran for an unpriviledged user after base setup.
|
|
# (Check install_user.sh first)
|
|
# $ cd ~/dots
|
|
# $ ./install_gui.sh
|
|
# ------------------------------------------------------------------------------
|
|
|
|
if [ "$UID" = 0 ]; then
|
|
echo >&2 "This script must be ran as an unpriviledged user (non-root)"
|
|
exit 1
|
|
fi
|
|
|
|
# cd into the dotfiles dir, no matter where the script was called from
|
|
pushd "$(dirname "$0")"
|
|
|
|
# Copy over various settings
|
|
cp -a home/.pki ~ # symlink
|
|
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
|
|
cp -ar home/.config/python_keyring ~/.config
|
|
cp -ra home/.config/wget ~/.config
|
|
|
|
# More opinionated settings
|
|
cp home/.config/mimeapps.list ~/.config
|
|
cp -ar home/.config/mpv ~/.config
|
|
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/swaync ~/.config
|
|
cp -ra home/.config/eww ~/.config
|
|
cp -ra home/.config/hypr ~/.config
|
|
cp home/.config/chromium-flags.conf ~/.config
|
|
cp -ra home/.config/swappy ~/.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 \
|
|
swaync udisks2 udiskie gvfs gvfs-mtp gnome-keyring xorg-xinput polkit-gnome brightnessctl
|
|
|
|
# Wayland WM essentials
|
|
paru -S --noconfirm --needed \
|
|
wl-clipboard xdg-desktop-portal xdg-desktop-portal-gtk 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
|
|
pushd ~/.local/share/icons
|
|
git clone https://github.com/ndom91/rose-pine-cursor-hyprcursor
|
|
popd
|
|
|
|
# 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
|
|
|
|
# Eww bar
|
|
paru -S --noconfirm --needed eww
|
|
|
|
# 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
|
|
|
|
# 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
|