101 lines
3.3 KiB
Bash
101 lines
3.3 KiB
Bash
#!/bin/bash
|
|
set -euxo pipefail
|
|
|
|
AUR_PACKAGES=(
|
|
yaru-{gtk,icon,sound}-theme # Theme from Ubuntu
|
|
consolas-font # Monospace font used by Visual Studio
|
|
shadowfox-updater # Universal dark mode for Firefox
|
|
pup-git # Commandline HTML parser (useful for bash scripts)
|
|
ccls # C++ language server
|
|
ranger-git # File manager (use git for ueberzug image preview)
|
|
htop-vim-temperature # Process viewer with vim keybinds and cpu temp info
|
|
)
|
|
|
|
PYTHON_PACKAGES=(
|
|
# Web scraping libraries
|
|
requests # HTML requests
|
|
beautifulsoup4 # HTML parsing
|
|
|
|
# Statistics libraries
|
|
matplotlib # Plotting
|
|
numpy # Matrix manipulation
|
|
pandas # Data analysis
|
|
|
|
# Tools
|
|
pylint # Python linter
|
|
autopep8 # Python formatter
|
|
gdbgui # GDB frontend
|
|
ueberzug # Terminal image preview (used by ranger)
|
|
)
|
|
|
|
function set_gnome_settings {
|
|
# Set yaru theme
|
|
gsettings set org.gnome.desktop.interface enable-animations false
|
|
gsettings set org.gnome.desktop.interface gtk-theme Yaru-dark
|
|
gsettings set org.gnome.desktop.interface cursor-theme Yaru
|
|
gsettings set org.gnome.desktop.interface icon-theme Yaru
|
|
|
|
# Disable animations
|
|
gsettings set org.gnome.desktop.sound theme-name Yaru
|
|
|
|
# Set dvorak-programmer layout
|
|
gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us+dvp')]"
|
|
|
|
# Set caps to ctrl
|
|
gsettings set org.gnome.desktop.input-sources xkb-options "['ctrl:nocaps']"
|
|
|
|
# Change keyboard delay and speed
|
|
gsettings set org.gnome.desktop.peripherals.keyboard delay 250
|
|
gsettings set org.gnome.desktop.peripherals.keyboard repeat-interval 25
|
|
|
|
# Enable night light
|
|
gsettings set org.gnome.settings-daemon.plugins.color night-light-enabled true
|
|
|
|
# Sort directories before files
|
|
gsettings set org.gtk.Settings.FileChooser sort-directories-first true
|
|
}
|
|
|
|
function set_firefox_settings {
|
|
local prefs_file=$(ls ~/.mozilla/firefox/*release/prefs.js)
|
|
|
|
# Make shadowfox work on FF69
|
|
sed -i 's/\("toolkit.legacyUserProprefs_fileCustomizations.stylesheets", \)true/\1true/' "${prefs_file}"
|
|
sed -i 's/\("browser.in-content.dark-mode", \)false/\1true/' "${prefs_file}"
|
|
|
|
# Enable some privacy features
|
|
sed -i 's/\("privacy.firstparty.isolate", \)false/\1true/' "${prefs_file}"
|
|
sed -i 's/\("privacy.resistFingerprinting", \)false/\1true/' "${prefs_file}"
|
|
|
|
# Disable some spying features
|
|
sed -i 's/\("browser.send_pings", \)true/\1false/' "${prefs_file}"
|
|
sed -i 's/\("dom.event.clipboardevents.enabled", \)true/\1false/' "${prefs_file}"
|
|
sed -i 's/\("media.navigator.enabled.stylesheets", \)true/\1false/' "${prefs_file}"
|
|
}
|
|
|
|
|
|
# Check internet connection
|
|
ping -w1 -c1 google.com || exit 1
|
|
|
|
# Enable pacman colors
|
|
sudo sed -i 's/#Color/Color/' /etc/pacman.conf
|
|
|
|
# Install yay if not installed
|
|
if ! pacman -Qi yay; then
|
|
git clone http://aur.archlinux.org/yay.git
|
|
cd yay
|
|
makepkg -si --noconfirm
|
|
cd ..
|
|
rm -rf yay
|
|
fi
|
|
|
|
yay -Sy --noconfirm --needed ${AUR_PACKAGES[*]}
|
|
pip install --user ${PYTHON_PACKAGES[*]}
|
|
|
|
# Install vim-plug
|
|
curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \
|
|
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
|
|
|
set_gnome_settings
|
|
set_firefox_settings
|
|
|