blob: e270f716ffb8ef6cba14c6cb5c584187dae52cf1 (
plain)
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
|
#!/bin/bash
set -e
DotfilesDir=$(pwd)
INSTALL='sudo pacman -S --noconfirm'
UPDATE='sudo pacman -Syu --noconfirm'
SucklessDir="$DotfilesDir/files/config/suckless"
install_packages() {
$UPDATE
$INSTALL mpv feh redshift linux-firmware-qlogic pavucontrol picom nitrogen thunar gvfs lxappearance alsa-utils neovim yubico-pam starship fish man-db qt5ct breeze breeze-gtk redshift htop lsb-release libreoffice-fresh ly ufw scrot keepassxc ranger unzip gcr webkit2gtk gd dosfstools xorg-xkill openresolv wireguard-tools libdvdcss libdvdread dunst cryptsetup wget ncmpcpp xclip xdotool xterm xorg-xclock xorg-twm okular thunderbird
echo "=============================="
echo "Programs are done installing"
echo "============================="
}
setup_ufw() {
sudo systemctl enable ufw
sudo systemctl start ufw
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
echo "=================="
echo "UFW setup is done"
echo "=================="
}
setup_ly() {
sudo systemctl enable ly
echo "=================="
echo "Done Ly setup!"
echo "=================="
}
setup_home_directory() {
mkdir -p ~/Documents/Passwords
mkdir -p ~/Documents/Study
mkdir -p ~/Documents/Projects
mkdir -p ~/Documents/Notes
mkdir -p ~/Documents/Books
mkdir -p ~/Downloads/
mkdir -p ~/Backups/
mkdir -p ~/Programming/
mkdir -p ~/Videos/Personal
mkdir -p ~/Music/
mkdir -p ~/Games/
mkdir -p ~/.config/
touch ~/.bookmarks
echo "=================="
echo "Directories setup"
echo "=================="
}
copy_config_files() {
sudo mkdir -p /usr/share/xsessions
sudo cp "$DotfilesDir/files/dwm.desktop" /usr/share/xsessions/
sudo cp -r "$DotfilesDir/files/pacman.conf" /etc/pacman.conf
sudo cp -r "$DotfilesDir/files/config/*" ~/.config/
sudo cp "$DotfilesDir/files/Ly/config.ini" /etc/ly/config.ini
# Suckless software
for dir in dwm slstatus dmenu surf st scroll; do
if cd "$SucklessDir/$dir"; then
echo "Building $dir..."
sudo make clean install || echo "Build failed in $dir"
else
echo " Directory not found: $SucklessDir/$dir"
fi
done
# Ranger config
ranger --copy-config=all
rm -rf ~/.config/ranger/*
sudo cp -r "$DotfilesDir/files/ranger/*" ~/.config/ranger/
# Install files for plug manager for NVIM
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
echo "=================="
echo "Configs loaded"
echo "=================="
}
fonts(){
cp -rf "$DotfilesDir/files/fonts" ~/.fonts
}
bashrc_additions(){
echo 'eval "$(dircolors ~/.config/dircolours)"' >> ~/.bashrc
echo 'alias tree='pstree'' >> ~/.bashrc
echo 'alias P="cd ~/Programming"' >> ~/.bashrc
echo 'alias C="cd ~/.config"' >> ~/.bashrc
echo 'alias vim='nvim'' >> ~/.bashrc
}
fish(){
echo -e '\n# Start fish shell \nif [[ $(ps --no-header --pid=$PPID --format=comm) != "fish" && -z ${BASH_EXECUTION_STRING} && ${SHLVL} == 1 ]]; then\n shopt -q login_shell && LOGIN_OPTION="--login" || LOGIN_OPTION=""\n exec fish $LOGIN_OPTION\nfi' >> ~/.bashrc
}
Blocked_Websites() {
sudo chmod 666 /etc/hosts
sudo echo "#Facebook" > /etc/hosts
sudo echo "127.0.0.1 facebook.com login.facebook.com secure.facebook.com latest.facebook.com inyour.facebook.com beta.facebook.com static.facebook.com touch.facebook.com developers.facebook.com newsroom.fb.com pixel.facebook.com apps.facebook.com graph.facebook.com m.facebook.com upload.facebook.com" > /etc/hosts
sudo chmod 644 /etc/hosts
}
Security() {
sudo sed -i '6 i auth optional pam_faildelay.so delay=4000000' /etc/pam.d/system-login
}
Doas() {
$INSTALL opendoas
echo "permit setenv {PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin} :wheel" > /etc/doas.conf
doas pacman -Rdd sudo
doas ln -s $(which doas) /usr/bin/sudo
doas chown -c root:root /etc/doas.conf
doas chmod -c 0400 /etc/doas.conf
# VIDOAS
# Credit to https://www.cjjackson.dev/posts/replacing-sudo-with-doas-on-arch-linux/
doas cp "$DotfilesDir/files/doas/vidoas" /root/script/vidoas
doas cp "$DotfilesDir/files/doas/vidoas1" /usr/local/bin/vidoas
doas chmod 700 /root/script/vidoas
doas chmod 755 /usr/local/bin/vidoas
}
main() {
install_packages
setup_ufw
setup_home_directory
setup_ly
copy_config_files
fonts
bashrc_additions
fish
setup_music
Security
echo "=================================="
echo "Done installing, you may reboot."
echo "Thank you for installing!"
echo "=================================="
}
#This runs the script and gives the current user perms
main
sudo chown -R $(whoami):$(whoami) /home/$(whoami)
sh ~/Dotfiles/yay.sh
|