-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup
More file actions
executable file
·180 lines (149 loc) · 4.24 KB
/
setup
File metadata and controls
executable file
·180 lines (149 loc) · 4.24 KB
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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
#!/usr/bin/env bash
set -o errexit # abort on nonzero exitstatus
set -o nounset # abort on unbound variable
set -o pipefail # don't hide errors within pipes
function install_dnf_packages() {
local packages=("$@")
for package in "${packages[@]}";
do
sudo dnf -y install "$package"
done
}
function install_flatpak_packages() {
local packages=("$@")
for package in "${packages[@]}";
do
flatpak -y install "$package"
done
}
core=(
fish
ca-certificates
coreutils
curl
git
gnupg2
neovim
podman
podman-compose
podman-docker
stow
wget
unrar
unzip
)
desktop=(
calibre
gnome-tweaks
mpv
steam
transmission
yubikey-personalization-gui
)
# TODO dog viddy
shell=(
ghostty
atuin
awscli2
bat
bandwhich
bottom
direnv
duf
du-dust
eza
fd-find
fzf
htop
httpie
hyperfine
joshuto
jq
lazygit
procs
ripgrep
rsync
tcpdump
tokei
tree
zoxide
)
flatpak=(
app.zen_browser.zen
com.dropbox.Client
com.mattjakeman.ExtensionManager
com.mojang.Minecraft
com.protonvpn.www
com.spotify.Client
md.obsidian.Obsidian
me.proton.Pass
org.signal.Signal
org.zotero.Zotero
)
sudo dnf upgrade -y
echo "max_parallel_downloads=10" | sudo tee -a /etc/dnf/dnf.conf > /dev/null
sudo dnf -y install dnf-plugins-core
sudo dnf install -y https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install -y https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
sudo dnf group upgrade core -y
sudo dnf swap ffmpeg-free ffmpeg --allowerasing -y
sudo dnf update @multimedia --setopt="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin -y
# video hardware acceleration
sudo dnf install -y ffmpeg-libs libva libva-utils
sudo dnf install -y libavcodec-freeworld mesa-va-drivers-freeworld
sudo dnf swap mesa-va-drivers mesa-va-drivers-freeworld
sudo dnf swap mesa-vdpau-drivers mesa-vdpau-drivers-freeworld
sudo dnf swap mesa-va-drivers.i686 mesa-va-drivers-freeworld.i686
sudo dnf swap mesa-vdpau-drivers.i686 mesa-vdpau-drivers-freeworld.i686
sudo dnf install -y @virtualization
# Ghostty
sudo dnf -y copr enable scottames/ghostty
for i in $(seq 1 9);
do
gsettings set org.gnome.shell.keybindings switch-to-application-$i '[]'
done
# CLI tools
sudo dnf -y copr enable atim/bandwhich
sudo dnf -y copr enable atim/bottom
sudo dnf -y copr enable atim/joshuto
sudo dnf -y copr enable atim/lazygit
sudo dnf -y copr enable alternateved/eza
install_dnf_packages "${core[@]}"
install_dnf_packages "${shell[@]}"
install_dnf_packages "${desktop[@]}"
# Zed
curl -f https://zed.dev/install.sh | sh
# VeraCrypt
wget https://launchpad.net/veracrypt/trunk/1.26.20/+download/veracrypt-1.26.20-Fedora-40-x86_64.rpm
sudo dnf install -y ./veracrypt-1.26.20-Fedora-40-x86_64.rpm
rm -f ./veracrypt-1.26.20-Fedora-40-x86_64.rpm
# Tailscale
sudo dnf config-manager addrepo --from-repofile=https://pkgs.tailscale.com/stable/fedora/tailscale.repo
sudo dnf install -y tailscale
sudo systemctl enable --now tailscaled
sudo dnf install -y flatpak
flatpak remote-delete fedora --force || true
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
sudo flatpak repair
flatpak update
install_flatpak_packages "${flatpak[@]}"
sudo dnf remove -y libreoffice*
flatpak install -y flathub org.libreoffice.LibreOffice
flatpak install -y --reinstall org.freedesktop.Platform.Locale/x86_64/24.08
flatpak install -y --reinstall org.libreoffice.LibreOffice.Locale
# bootstrap dotfiles
mkdir -p ~/{bin,.config}
stow --target=/home/gsnewmark/bin bin
stow --dir=config --target=/home/gsnewmark desktop
stow --dir=config --target=/home/gsnewmark dev
stow --dir=config --target=/home/gsnewmark shell
wget -P ~/.local/share/fonts https://github.com/ryanoasis/nerd-fonts/releases/download/v3.4.0/IosevkaTerm.zip \
&& cd ~/.local/share/fonts \
&& unzip IosevkaTerm.zip \
&& rm IosevkaTerm.zip \
&& fc-cache -fv
# disabling redundant stuff
sudo systemctl disable NetworkManager-wait-online.service
sudo rm /etc/xdg/autostart/org.gnome.Software.desktop
# change shell
chsh -s /usr/bin/fish