-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsetup.sh
executable file
·113 lines (94 loc) · 3.31 KB
/
setup.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
#!/usr/bin/env sh
copy() { sudo cp -fr "$1" "$2" && echo Installed: "$1"; }
link() {
TARGET=$1 DESTINATION=$2
[ -d "$2" ] && DESTINATION=$2/$(basename "$TARGET")
rm -fr "$DESTINATION"
ln -rs "$TARGET" "$DESTINATION" && echo Installed: "$TARGET"
}
link_sudo() {
TARGET=$1 DESTINATION=$2/$(basename "$TARGET")
sudo rm -fr "$DESTINATION"
sudo ln -rs "$TARGET" "$DESTINATION" && echo Installed: "$TARGET"
}
mkdir -p "$XDG_CONFIG_HOME"
link .vintrc.yaml "$XDG_CONFIG_HOME"
link .Xresources "$XDG_CONFIG_HOME"
link alacritty.yml "$XDG_CONFIG_HOME"
link dunst "$XDG_CONFIG_HOME"
link git "$XDG_CONFIG_HOME"
link gtk-2.0 "$XDG_CONFIG_HOME"
link gtk-3.0 "$XDG_CONFIG_HOME"
link gtk-4.0 "$XDG_CONFIG_HOME"
link herbstluftwm "$XDG_CONFIG_HOME"
link ideavim "$XDG_CONFIG_HOME"
link labwc "$XDG_CONFIG_HOME"
link markdownlint "$XDG_CONFIG_HOME"
link mimeapps.list ~/.config/
link nvim "$XDG_CONFIG_HOME"
link pylintrc "$XDG_CONFIG_HOME"
link pythonrc.py "$XDG_CONFIG_HOME"
link ripgreprc "$XDG_CONFIG_HOME"
link shell/.profile ~
link shell/.profile ~/.bashrc
link shell/inputrc "$XDG_CONFIG_HOME"
link shellcheckrc "$XDG_CONFIG_HOME"
link sx "$XDG_CONFIG_HOME"
link sxhkd "$XDG_CONFIG_HOME"
link templates "$XDG_CONFIG_HOME"
link tint2 "$XDG_CONFIG_HOME"
link tmux "$XDG_CONFIG_HOME"
link zathura "$XDG_CONFIG_HOME"
DIR="$XDG_CONFIG_HOME"/mpv
mkdir -p "$DIR"
link mpv.conf "$DIR"
DIR="$HOME/.mozilla/firefox"
PROFILE=$(grep "Default=" "$DIR/profiles.ini" | head -1 | cut -d= -f2 | cut -d. -f1)
link mozilla/chrome "$DIR/$PROFILE.default-release"
link mozilla/user.js "$DIR/$PROFILE.default-release"
DIR="$XDG_CONFIG_HOME"/autostart
mkdir -p "$DIR"
link autostart/autostart.desktop "$DIR"
link autostart/autostart.sh "$DIR"
link "$DIR" "$XDG_CONFIG_HOME"/xswm
DIR=$XDG_CONFIG_HOME/Code/User
if [ -d "$DIR" ]; then
link code/code.vim "$DIR"
link code/keybindings.json "$DIR"
link code/settings.json "$DIR"
fi
DIR=$XDG_CONFIG_HOME/Code\ -\ OSS/User
if [ -d "$DIR" ]; then
link code/code.vim "$DIR"
link code/keybindings.json "$DIR"
link code/settings.json "$DIR"
fi
if groups "$USER" | grep -q wheel; then
DIR=/etc/iwd
[ ! -d "$DIR" ] && sudo mkdir "$DIR"
copy iwd.conf "$DIR/main.conf"
copy 00-polkit.rules /etc/polkit-1/rules.d/
copy systemd/journald.conf.d /etc/systemd
copy systemd/logind.conf.d /etc/systemd
copy systemd/network/20-wired.network /etc/systemd/network
copy systemd/network/25-wireless.network /etc/systemd/network
copy systemd/resolved.conf.d /etc/systemd
link_sudo iptables.rules /etc/iptables
link_sudo locale.conf /etc
link_sudo thinkfan.conf /etc
link_sudo vconsole.conf /etc
link_sudo xkb/symbols/custom /usr/share/X11/xkb/symbols
link_sudo xorg.conf /etc/X11
DIR=/usr/local/share/kbd/keymaps
[ ! -d "$DIR" ] && sudo mkdir -p "$DIR"
link_sudo key.map "$DIR"
copy systemd/system/tty-conf.service /etc/systemd/system
DIR=/etc/NetworkManager
[ -d "$DIR" ] && link_sudo NetworkManager.conf "$DIR"
DIR=/etc/xdg/reflector
[ -d "$DIR" ] && copy reflector.conf /etc/xdg/reflector/
[ ! -f /etc/default/grub ] && copy grub /etc/default
# TODO: use envsubst instead of sed
copy systemd/system/getty@.service.d /etc/systemd/system
sudo sed -i "s|<user>|$USER|g" /etc/systemd/system/getty@.service.d/override.conf
fi