-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinstall_gui.sh
executable file
·147 lines (125 loc) · 5.23 KB
/
install_gui.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#!/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 \
nvtop
# Wayland Utilities
paru -S --noconfirm --needed \
grim slurp wofi swappy 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