mirror of
https://github.com/Foltik/dotfiles
synced 2024-11-30 14:32:08 -05:00
176 lines
3.5 KiB
Bash
Executable File
176 lines
3.5 KiB
Bash
Executable File
#!/bin/zsh
|
|
|
|
# Print Header
|
|
lnh() {
|
|
print -Pn '%B%F{green}### '
|
|
print -n $1
|
|
print -P ' ###%f%b'
|
|
}
|
|
|
|
# Print subheader
|
|
ln() {
|
|
print -Pn '%B%F{yellow}>>> '
|
|
print -n $1
|
|
print -P '%f%b'
|
|
}
|
|
|
|
pac_install() {
|
|
if ! (pacman -Q $1 >/dev/null 2>&1);
|
|
then
|
|
ln "Installing $1 from Official Repos..."
|
|
sudo pacman -S $1 --noconfirm
|
|
fi;
|
|
}
|
|
|
|
aur_install() {
|
|
if ! (pacman -Q $1 >/dev/null 2>&1);
|
|
then
|
|
ln "Installing $1 from AUR..."
|
|
yaourt -S $1 --noconfirm
|
|
fi;
|
|
}
|
|
|
|
svc_install() {
|
|
sudo cp -v "$1" '/etc/systemd/system'
|
|
}
|
|
|
|
svc_install_user() {
|
|
sudo cp -v "$1" '/etc/systemd/user'
|
|
}
|
|
|
|
svc_enable() {
|
|
sudo systemctl enable $1
|
|
}
|
|
|
|
svc_enable_user() {
|
|
systemctl --user enable $1
|
|
}
|
|
|
|
install_i3() {
|
|
lnh "Installing i3"
|
|
|
|
ln "Installing Packages"
|
|
aur_install i3-gaps
|
|
aur_install i3blocks-gaps-git
|
|
aur_install i3lock
|
|
aur_install i3lock-fancy-dualmonitors-git
|
|
pac_install compton
|
|
|
|
ln "Installing Services"
|
|
svc_install cfg/systemd/system/suspend@.service # suspend locker
|
|
svc_install_user cfg/systemd/user/locker.service # xautolock
|
|
|
|
ln "Enabling Services"
|
|
sudo systemctl daemon-reload
|
|
svc_enable suspend@$USER.service
|
|
svc_enable_user locker.service
|
|
|
|
ln "Installing Configuration Files"
|
|
cp -v cfg/compton/config ~/.config/compton/config
|
|
cp -v cfg/termite/ncmpcpp_config ~/.config/termite/ncmpcpp_config
|
|
|
|
ln "Installing Tools"
|
|
mkdir -pv ~/Documents/tools
|
|
cp -v cfg/i3/tools/wallpaper.sh ~/Documents/tools/
|
|
cp -v cfg/wallpapers/wallpaper* ~/Pictures/
|
|
|
|
lnh "Select a Platform"
|
|
platform_opt=("Desktop" "Laptop")
|
|
select opt in "${platform_opt[@]}"
|
|
do
|
|
case $opt in
|
|
"Desktop")
|
|
lnh "Platform Not Supported with i3"
|
|
exit
|
|
break
|
|
;;
|
|
"Laptop")
|
|
install_i3_laptop
|
|
break
|
|
;;
|
|
*) echo "Invalid Option";;
|
|
esac
|
|
done
|
|
}
|
|
|
|
install_i3_laptop() {
|
|
ln "Installing Laptop Configuration Files"
|
|
cp -v cfg/i3blocks/laptop/config ~/.config/i3blocks/config
|
|
cp -rv cfg/i3blocks/laptop/blocks ~/.config/i3blocks/blocks
|
|
}
|
|
|
|
install_common() {
|
|
ln "Installing Common Packages"
|
|
pac_install rxvt-unicode
|
|
pac_install zsh
|
|
pac_install autojump
|
|
pac_install neovim
|
|
pac_install mpd
|
|
pac_install beets
|
|
pac_install ncmpcpp
|
|
aur_install oh-my-zsh-git
|
|
aur_install nerd-fonts-source-code-pro
|
|
}
|
|
|
|
configure_common() {
|
|
ln "Installing Common Configuration Files"
|
|
# powerlevel9k
|
|
sudo git clone https://github.com/bhilburn/powerlevel9k.git /usr/share/oh-my-zsh/themes/powerlevel9k
|
|
|
|
# urxvt
|
|
cp -v cfg/Xdefaults ~/.Xdefaults
|
|
|
|
# zsh
|
|
cp -v cfg/zshrc ~/.zshrc
|
|
|
|
# neovim
|
|
mkdir -pv ~/.config/nvim
|
|
cp -v cfg/nvim/init.vim ~/.config/nvim
|
|
nvim +PlugInstall +qall
|
|
|
|
# mpd
|
|
mkdir -pv ~/.config/mpd/playlists
|
|
awk '{gsub(/lain/,"'$USER'")}1' cfg/mpd/mpd.conf > mpd.conf.temp && mv mpd.conf.temp cfg/mpd/mpd.conf
|
|
cp -rv cfg/mpd/* ~/.config/mpd/
|
|
|
|
# beets
|
|
mkdir -pv ~/Music/beets
|
|
mkdir -pv ~/.config/beets
|
|
cp -rv cfg/beets/* ~/.config/beets
|
|
|
|
# ncmpcpp
|
|
mkdir -pv ~/.ncmpcpp
|
|
cp -v cfg/ncmpcpp/config ~/.ncmpcpp/
|
|
|
|
ln "Installing Common Services"
|
|
svc_enable_user mpd
|
|
#svc_enable NetworkManager
|
|
|
|
ln "Changing Shell"
|
|
chsh -s /bin/zsh
|
|
}
|
|
|
|
lnh "Select a Window Manager"
|
|
wm_opt=("Gnome" "i3" "None (Only install common config)")
|
|
select opt in "${wm_opt[@]}"
|
|
do
|
|
case $opt in
|
|
"Gnome")
|
|
lnh "Not yet fully supported!"
|
|
exit
|
|
break
|
|
;;
|
|
"i3")
|
|
install_i3
|
|
break
|
|
;;
|
|
"None (Only install common config)")
|
|
install_common
|
|
break
|
|
;;
|
|
*) echo "Invalid Option";;
|
|
esac
|
|
done
|
|
|
|
configure_common
|