357 lines
9.6 KiB
Bash
357 lines
9.6 KiB
Bash
|
#!/usr/bin/env bash
|
||
|
### INSTALL PROGRAMS FROM REPOS ###
|
||
|
|
||
|
#update
|
||
|
sudo xbps-install -Suv
|
||
|
sudo xbps-install -S wget curl
|
||
|
|
||
|
#enable repos
|
||
|
#clear
|
||
|
echo "enable nonfree repo?(y/N)"
|
||
|
read NONFREE
|
||
|
if [ "$NONFREE" = "y" ]; then
|
||
|
sudo xbps-install -Sy void-repo-nonfree
|
||
|
fi
|
||
|
|
||
|
clear
|
||
|
echo "enable multilib repo?(y/N)"
|
||
|
read MULTILIB
|
||
|
if [ "$MULTILIB" = "y" ]; then
|
||
|
sudo xbps-install -Sy void-repo-multilib
|
||
|
fi
|
||
|
|
||
|
clear
|
||
|
echo "enable nonfree multilib repo?(y/N)"
|
||
|
read NFMULTILIB
|
||
|
if [ "$NFMULTILIB" == "y" ]; then
|
||
|
sudo xbps-install -Sy void-repo-multilib-nonfree
|
||
|
fi
|
||
|
|
||
|
|
||
|
#make directories
|
||
|
mkdir ~/docs/
|
||
|
mkdir ~/dl/
|
||
|
mkdir ~/media/
|
||
|
mkdir -p ~/.local/share/gnupg/
|
||
|
mkdir -p ~/.config/mpd/playlists
|
||
|
sudo mkdir -p /etc/X11/xorg.conf.d/
|
||
|
|
||
|
|
||
|
### install system programs/libraries ###
|
||
|
|
||
|
echo "install basic system utilities and libs I use(xorg, devel reqs for suckless, pulseaudio?(y/N)"
|
||
|
read input
|
||
|
if [ $input == 'y' ] || [ $input == 'Y' ]; then
|
||
|
|
||
|
#install xorg
|
||
|
#sudo xbps-install -Sy xorg xterm
|
||
|
sudo xbps-install -Sy xorg-minimal xrdb xsetroot xterm xprop xrandr xclip xkill xautolock
|
||
|
|
||
|
#sound programs
|
||
|
sudo xbps-install -Sy alsa-utils pulseaudio pulsemixer
|
||
|
|
||
|
#install system tools
|
||
|
sudo xbps-install -Sy freetype apparmor elogind gst-libav xdg-utils GConf wget curl chrony bluez iwd #ConsoleKit2
|
||
|
|
||
|
["$NONFREE" = "y" ] && sudo xbps-install -Sy unrar
|
||
|
|
||
|
sudo xbps-install -Sy sxiv xwallpaper udevil picom redshift ffmpegthumbnailer sxhkd dunst scron rsync
|
||
|
sudo xbps-install -Sy exa highlight words-en python3-pip #better ls, better text in lf, every english word
|
||
|
|
||
|
# appimage needed this
|
||
|
sudo xbps-install -Sy dbus-glib #nss startup-notification
|
||
|
|
||
|
#void stuff
|
||
|
sudo xbps-install -Sy outils void-release-keys #provides signify and void release .pub file to verify iso
|
||
|
|
||
|
fi
|
||
|
|
||
|
|
||
|
#tlp for battery management
|
||
|
clear
|
||
|
echo "install tlp for better battery life?(y/N)"
|
||
|
read input
|
||
|
if [ $input == 'y' ] || [ $input == 'Y' ]; then
|
||
|
sudo xbps-install -Sy tlp
|
||
|
sudo ln -s /etc/sv/tlp /var/service
|
||
|
fi
|
||
|
|
||
|
clear
|
||
|
echo "install and setup ufw firewall? (y/N)"
|
||
|
read input
|
||
|
if [ $input == 'y' ] || [ $input == 'Y' ]; then
|
||
|
#install and setup firewall
|
||
|
sudo xbps-install -Sy ufw
|
||
|
sudo ufw enable
|
||
|
sudo ln -s /etc/sv/ufw /var/service
|
||
|
|
||
|
echo "use my defaults? (deny incoming, allow outgoing, add rules for steam and transmission ) (y/N)"
|
||
|
read input
|
||
|
if [ $input == 'y' ] || [ $input == 'Y' ]; then
|
||
|
sudo ufw default deny incoming
|
||
|
sudo ufw default allow outgoing
|
||
|
sudo ufw allow http
|
||
|
sudo ufw allow https
|
||
|
#sudo ufw allow ssh
|
||
|
sudo ufw allow ntp
|
||
|
sudo ufw allow 67:68/tcp
|
||
|
sudo ufw allow 53
|
||
|
|
||
|
#allow torrent client traffic
|
||
|
sudo ufw allow 56881:56889/tcp
|
||
|
|
||
|
#rules to allow steam
|
||
|
sudo ufw allow 27000:27036/udp
|
||
|
sudo ufw allow 27036:27037/tcp
|
||
|
sudo ufw allow 4380/udp
|
||
|
|
||
|
sudo ufw enable
|
||
|
fi
|
||
|
|
||
|
fi
|
||
|
|
||
|
#install nvidia-drivers
|
||
|
clear
|
||
|
echo "install nvidia proprietary drivers? (Y/n)"
|
||
|
read nvidiain
|
||
|
|
||
|
if [ $nvidiain == 'y' ] || [ $nvidiain == 'Y' ]; then
|
||
|
|
||
|
sudo xbps-install -Sy void-repo-nonfree void-repo-multilib void-repo-multilib-nonfree
|
||
|
sudo xbps-install -Sy xf86-video-nouveau nvidia nvidia-libs-32bit
|
||
|
sudo xbps-install vulkan-loader vulkan-loader-32bit
|
||
|
fi
|
||
|
|
||
|
|
||
|
clear
|
||
|
echo "setup amd graphics drivers?(y/N)"
|
||
|
read amdin
|
||
|
|
||
|
if [ $amdin == 'y' ] || [ $amdin == 'Y' ]; then
|
||
|
#install amd libraries
|
||
|
sudo xbps-install -Sy xf86-video-amdgpu mesa-vulkan-radeon
|
||
|
sudo xbps-install -Sy radeontop
|
||
|
|
||
|
sudo mkdir -p /etc/X11/xorg.conf.d/
|
||
|
sudo ln -s ~/.config/.sysconf/etc/X11/xorg.conf.d/20-amdgpu.conf /etc/X11/xorg.conf.d/
|
||
|
|
||
|
fi
|
||
|
|
||
|
clear
|
||
|
echo "setup intel graphics drivers?(y/N)"
|
||
|
read intelin
|
||
|
|
||
|
if [ $intelin == 'y' ] || [ $intelin == 'Y' ]; then
|
||
|
sudo xbps-install -Sy xf86-video-intel mesa-dri intel-video-accel
|
||
|
sudo ln -s ~/.config/.sysconf/etc/X11/xorg.conf.d/20-intel.conf /etc/X11/xorg.conf.d
|
||
|
|
||
|
#to fix issues running steam
|
||
|
#xi -S vulkan-loader vulkan-loader-32bit mesa-dri mesa-dri-32bit
|
||
|
|
||
|
fi
|
||
|
|
||
|
sudo xbps-install -Sy vulkan-loader
|
||
|
|
||
|
[ "$MULTILIB" = "y" ] && sudo xbps-install -Sy vulkan-loader-32bit
|
||
|
|
||
|
clear
|
||
|
echo "install flatpak and setup flathub?(y/N)"
|
||
|
read input
|
||
|
if [ $input == 'y' ] || [ $input == 'Y' ]; then
|
||
|
#install flatpak and enable flathub
|
||
|
sudo xbps-install -Sy xdg-desktop-portal xdg-desktop-portal-gtk xdg-user-dirs xdg-user-dirs-gtk xdg-utils
|
||
|
sudo xbps-install -Sy flatpak
|
||
|
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||
|
fi
|
||
|
|
||
|
#enable usage statistics
|
||
|
clear
|
||
|
echo "enable usage statistics for Void Linux? (y/N)"
|
||
|
read input
|
||
|
if [ $input == 'y' ] || [ $input == 'Y' ]; then
|
||
|
sudo xbps-install -Sy PopCorn
|
||
|
sudo ln -s /etc/sv/popcorn /var/service/
|
||
|
fi
|
||
|
|
||
|
|
||
|
#install fish shell
|
||
|
clear
|
||
|
echo "install and use fish shell? (y/N)"
|
||
|
read input
|
||
|
if [ $input == 'y' ] || [ $input == 'Y' ]; then
|
||
|
sudo xbps-install -Sy fish-shell
|
||
|
chsh -s /usr/bin/fish $USER
|
||
|
fi
|
||
|
|
||
|
#install zsh shell
|
||
|
clear
|
||
|
echo "install and use zsh? (y/N)"
|
||
|
read input
|
||
|
if [ $input == 'y' ] || [ $input == 'Y' ]; then
|
||
|
chsh -s /bin/zsh $USER
|
||
|
|
||
|
|
||
|
#setup .zprofile and zsh history file
|
||
|
cd ~
|
||
|
ln -s ~/.profile ~/.zprofile
|
||
|
mkdir -p ~/.cache/zsh
|
||
|
touch ~/.cache/zsh/history
|
||
|
|
||
|
fi
|
||
|
|
||
|
###themes and fonts
|
||
|
#most themes are stored in my dotfiles repo
|
||
|
#sudo xbps-install -S nerd-fonts-otf
|
||
|
sudo xbps-install -S noto-fonts-ttf noto-fonts-ttf-extra noto-fonts-cjk font-awesome
|
||
|
|
||
|
|
||
|
### install user programs ###
|
||
|
|
||
|
clear
|
||
|
echo "install my cli programs? (y/N)"
|
||
|
read input
|
||
|
if [ $input == 'y' ] || [ $input == 'Y' ]; then
|
||
|
|
||
|
#cli programs to isntall
|
||
|
sudo xbps-install -Sy neovim htop
|
||
|
#pulsemixer pamixer
|
||
|
sudo xbps-install -Sy mpv mpd ncmpcpp mpc #cmus cmus-ffmpeg cava #audio cava -> console audio visualizer for alsa
|
||
|
sudo xbps-install -Sy lf mtm #file browser terminal multiplexor
|
||
|
sudo xbps-install -Sy ImageMagick ffmpegthumbnailer viu #jp2a #for ascii image previews and video thumbnails in lf
|
||
|
sudo xbps-install -Sy zathura zathura-cb zathura-pdf-mupdf #pdfs manga
|
||
|
sudo xbps-install -Sy youtube-dl straw-viewer #download youtube videos
|
||
|
sudo xbps-install -Sy transmission tremc #transmission-remote-cli #torrents
|
||
|
sudo xbps-install -Sy pywal #generate themes from pictures
|
||
|
sudo xbps-install -Sy tealdeer ufetch termdown # misc utils
|
||
|
sudo xbps-install -Sy scrot sfeed sfeed_curses #newsboat
|
||
|
#sudo xbps-install -Sy trackma
|
||
|
#pip install random-username
|
||
|
|
||
|
fi
|
||
|
|
||
|
clear
|
||
|
echo "install my gui programs? (y/N)"
|
||
|
read input
|
||
|
if [ $input == 'y' ] || [ $input == 'Y' ]; then
|
||
|
sudo xbps-install -Sy firefox
|
||
|
fi
|
||
|
|
||
|
clear
|
||
|
echo "install virt-manager? (y/N)"
|
||
|
read input
|
||
|
if [ $input == 'y' ] || [ $input == 'Y' ]; then
|
||
|
sudo xbps-install -S libvirt qemu virt-manager lxsession
|
||
|
sudo xbps-install -S gst-plugins-good1 # fixes audio issues
|
||
|
|
||
|
sudo ln -s /etc/sv/libvirtd /var/service
|
||
|
sudo ln -s /etc/sv/virtlockd /var/service
|
||
|
sudo ln -s /etc/sv/virtlogd /var/service
|
||
|
|
||
|
sudo usermod -G libvirt -a $USER
|
||
|
sudo usermod -G libvirt -a root
|
||
|
fi
|
||
|
|
||
|
|
||
|
clear
|
||
|
echo "install gaming programs(wine lutris steam)? (y/N)"
|
||
|
echo "this will enable nonfree repos"
|
||
|
read input
|
||
|
if [ $input == 'y' ] || [ $input == 'Y' ]; then
|
||
|
sudo xbps-install -Sy void-repo-nonfree void-repo-multilib void-repo-multilib-nonfree
|
||
|
sudo xbps-install -Sy mesa-dri-32bit
|
||
|
sudo xbps-install -Sy wine-32bit wine-gecko wine-mono winetricks protontricks libselinux
|
||
|
sudo xbps-install -Sy lutris steam
|
||
|
sudo xbps-install -Sy libdrm-32bit
|
||
|
fi
|
||
|
|
||
|
#Haskell
|
||
|
#sudo xbps-install -Sy ghc cabal-install stack
|
||
|
#sudo ln -s /lib/libncurses.so.6.1 /lib/libtinfo.so.6
|
||
|
|
||
|
#my devel
|
||
|
#sudo xbps-install -Sy base-devel make gcc gdb
|
||
|
|
||
|
#sudo xbps-install -Sy lua love luarocks
|
||
|
|
||
|
#muttwizard
|
||
|
clear
|
||
|
echo "install muttwizard dependencies? (y/N)"
|
||
|
read input
|
||
|
if [ $input == 'y' ] || [ $input == 'Y' ]; then
|
||
|
sudo xbps-install -Sy neomutt isync msmtp pass urlview lynx notmuch
|
||
|
fi
|
||
|
|
||
|
### SYSTEM SETUP ###
|
||
|
|
||
|
### setup services ###
|
||
|
sudo ln -s /etc/sv/dbus /var/service
|
||
|
#sudo ln -s /etc/sv/cgmanager /var/service/
|
||
|
sudo ln -s /etc/sv/elogind /var/service/
|
||
|
sudo ln -s /etc/sv/chronyd /var/service/
|
||
|
|
||
|
clear
|
||
|
echo "enable wifi with IWD? (use iwctl to setup network) (y/N)"
|
||
|
read input
|
||
|
if [ $input == 'y' ] || [ $input == 'Y' ]; then
|
||
|
sudo ln -s /etc/sv/iwd /var/service/
|
||
|
fi
|
||
|
|
||
|
### set limits.conf for esync
|
||
|
sudo sh -c "echo '$USER hard nofile 524288' >> /etc/security/limits.conf"
|
||
|
|
||
|
|
||
|
### modify udevil config to add exec to mount options
|
||
|
sudo sed -i 's/^allowed_options .*$/&, exec/g' /etc/udevil/udevil.conf
|
||
|
|
||
|
echo "create modified hosts file from someonewhocares.org and change DNS to OpenDNS Family Shield?\n do this at any time by running the ~/scripts/update-hosts script (y/N)"
|
||
|
read input
|
||
|
if [ $input == 'y' ] || [ $input == 'Y' ]; then
|
||
|
cd ~/.local/scripts/
|
||
|
~/.local/scripts/update-hosts
|
||
|
|
||
|
sudo echo "static domain_name_servers=84.200.69.80 84.200.70.40 2001:1608:10:25::1c04:b12f 2001:1608:10:25::9249:d69b" >> /etc/dhcpcd.conf #dns.watch
|
||
|
fi
|
||
|
|
||
|
|
||
|
echo "disable mouse acceleration? (y/N)"
|
||
|
read input
|
||
|
if [ $input == 'y' ] || [ $input == 'Y' ]; then
|
||
|
sudo ln -s ~/.config/.sysconf/etc/X11/xorg.conf.d/50-mouse-acceleration.conf /etc/X11/xorg.conf.d/
|
||
|
fi
|
||
|
|
||
|
#Vim YouCompleteMe deps
|
||
|
sudo xbps-install -S python3-devel
|
||
|
|
||
|
###suckless-install.sh dependancies
|
||
|
sudo xbps-install -S base-devel make libXft-devel libX11-devel libXinerama-devel patch ncurses-devel
|
||
|
|
||
|
#surf dependencies
|
||
|
sudo xbps-install -S gtk+-devel webkit2gtk-devel gcr-devel
|
||
|
|
||
|
sudo xbps-install -S cmake curlpp-devel #for tuitube
|
||
|
|
||
|
#straw-viewer dependencies
|
||
|
#sudo xbps-install -S perl-Module-Build
|
||
|
|
||
|
#yacy dependancies
|
||
|
sudo xbps-install -S openjdk8 apache-ant
|
||
|
|
||
|
|
||
|
echo "change mirror to alpha.us.voidlinux.org? (y/N)"
|
||
|
read input
|
||
|
if [ $input == 'y' ] || [ $input == 'Y' ]; then
|
||
|
sudo mkdir -p /etc/xbps.d
|
||
|
sudo cp /usr/share/xbps.d/*-repository-*.conf /etc/xbps.d/
|
||
|
sudo sed -i 's|https://alpha.de.repo.voidlinux.org|https://alpha.us.repo.voidlinux.org|g' /etc/xbps.d/*-repository-*.conf
|
||
|
sudo xbps-install -S
|
||
|
fi
|
||
|
|
||
|
#install xdeb
|
||
|
mkdir -p ~/devel/repos/
|
||
|
git clone https://github.com/toluschr/xdeb.git ~/devel/repos
|
||
|
cd ~/devel/repos/xdeb
|
||
|
sudo cp ./xdeb /usr/local/bin
|
||
|
|
||
|
|
||
|
sh ~/.local/installers/suckless-install.sh
|