This commit is contained in:
billy 2025-08-16 19:43:10 -04:00
parent 3f0e041fe5
commit a33e5716e2
3 changed files with 105 additions and 37 deletions

View File

@ -54,6 +54,7 @@ install_themes=false
install_nerdfonts=false install_nerdfonts=false
install_dotfiles=false install_dotfiles=false
install_gnome_configs=false install_gnome_configs=false
install_rtaudio=false
echo "${fg_blue}" echo "${fg_blue}"
cat ascii.txt cat ascii.txt
@ -61,17 +62,13 @@ echo "${reset}"
cecho "----debian install script-----" fg_cyan cecho "----debian install script-----" fg_cyan
confirm "Is this a server? (Y/N)" && is_server=true confirm "Is this a server? (Y/N)" && is_server=true
confirm "Swap Left Super & Left Control <for mac keyboard> (Y/N)" && is_macbook=true confirm "Swap Left Super & Left Control <for mac keyboard> (Y/N)" && is_macbook=true
if $is_server; then
echo ":3"
else
if echo $DESKTOP_SESSION | grep -q "gnome"; then if echo $DESKTOP_SESSION | grep -q "gnome"; then
confirm "Install gnome extensions, tweaks, and configs? (Y/N)" && install_gnome_configs=true confirm "Install gnome extensions, tweaks, and configs? (Y/N)" && install_gnome_configs=true
confirm "Install GTK themes? (Y/N)" && install_themes=true confirm "Install GTK themes? (Y/N)" && install_themes=true
fi fi
fi
confirm "Install Nerd Fonts? (Y/N)" && install_nerdfonts=true confirm "Install Nerd Fonts? (Y/N)" && install_nerdfonts=true
confirm "Install billypom dotfiles? - includes .bash_aliases file, tmux, kitty, and nvim configs (Y/N)" && install_dotfiles=true confirm "Install billypom dotfiles? - includes .bash_aliases file, tmux, kitty, and nvim configs (Y/N)" && install_dotfiles=true
confirm "Configure realtime audio for music production? (Y/N)" && install_rtaudio=true
cecho "Updating package manager" fg_cyan cecho "Updating package manager" fg_cyan
sudo apt update sudo apt update
@ -81,7 +78,12 @@ cecho "Installing yummy packages" fg_cyan
if $is_server; then if $is_server; then
sudo apt install vim neovim git cifs-utils nfs-common ripgrep stow virtualenv wget zip unzip kitty python3-pip ncdu htop python3-venv curl sudo apt install vim neovim git cifs-utils nfs-common ripgrep stow virtualenv wget zip unzip kitty python3-pip ncdu htop python3-venv curl
else else
sudo apt install vim git cifs-utils nfs-common ripgrep stow virtualenv wget zip unzip kitty python3-pip ncdu htop libfuse-dev nemo python3-venv curl irssi sudo apt install vim git cifs-utils nfs-common ripgrep stow virtualenv wget zip unzip kitty python3-pip ncdu htop libfuse-dev nemo python3-venv curl irssi qpwgraph steam-installer protontricks
# librewolf
sudo apt install extrepo -y
sudo extrepo enable librewolf
sudo apt update
sudo apt install librewolf
fi fi
# themes # themes
@ -119,17 +121,29 @@ if $install_nerdfonts; then
fi fi
# xdg defaults # xdg defaults
xdg-mime default nemo.desktop inode/directory # xdg-mime default nemo.desktop inode/directory
xdg-mime default pcmanfm.desktop inode/directory
xdg-mime default nvim.desktop text/plain xdg-mime default nvim.desktop text/plain
# This command installs kitty as an option for the default terminal emulator within the alternatives system, assigning it a priority of 50
sudo update-alternatives --install /usr/bin/x-terminal-emulator x-terminal-emulator /usr/bin/kitty 50
sed -i "s/^DESKTOP=.*/DESKTOP=desktop/" /etc/xdg/user-dirs.conf sed -i "s/^DESKTOP=.*/DESKTOP=desktop/" /etc/xdg/user-dirs.defaults
sed -i "s/^DOWNLOAD=.*/DOWNLOAD=downloads/" /etc/xdg/user-dirs.conf sed -i "s/^DOWNLOAD=.*/DOWNLOAD=downloads/" /etc/xdg/user-dirs.defaults
sed -i "s/^TEMPLATES=.*/TEMPLATES=templates/" /etc/xdg/user-dirs.conf sed -i "s/^TEMPLATES=.*/TEMPLATES=templates/" /etc/xdg/user-dirs.defaults
sed -i "s/^PUBLICSHARE=.*/PUBLICSHARE=public/" /etc/xdg/user-dirs.conf sed -i "s/^PUBLICSHARE=.*/PUBLICSHARE=public/" /etc/xdg/user-dirs.defaults
sed -i "s/^DOCUMENTS=.*/DOCUMENTS=documents/" /etc/xdg/user-dirs.conf sed -i "s/^DOCUMENTS=.*/DOCUMENTS=documents/" /etc/xdg/user-dirs.defaults
sed -i "s/^MUSIC=.*/MUSIC=music/" /etc/xdg/user-dirs.conf sed -i "s/^MUSIC=.*/MUSIC=music/" /etc/xdg/user-dirs.defaults
sed -i "s/^PICTURES=.*/PICTURES=pictures/" /etc/xdg/user-dirs.conf sed -i "s/^PICTURES=.*/PICTURES=pictures/" /etc/xdg/user-dirs.defaults
sed -i "s/^VIDEOS=.*/VIDEOS=videos/" /etc/xdg/user-dirs.conf sed -i "s/^VIDEOS=.*/VIDEOS=videos/" /etc/xdg/user-dirs.defaults
sed -i 's/^XDG_DESKTOP_DIR=.*/XDG_DESKTOP_DIR="$HOME\/desktop"/' ~/.config/user-dirs.dirs
sed -i 's/^XDG_DOWNLOAD_DIR=.*/XDG_DOWNLOAD_DIR="$HOME\/downloads"/' ~/.config/user-dirs.dirs
sed -i 's/^XDG_TEMPLATES_DIR=.*/XDG_TEMPLATES_DIR="$HOME\/templates"/' ~/.config/user-dirs.dirs
sed -i 's/^XDG_PUBLICSHARE_DIR=.*/XDG_PUBLICSHARE_DIR="$HOME\/public"/' ~/.config/user-dirs.dirs
sed -i 's/^XDG_DOCUMENTS_DIR=.*/XDG_DOCUMENTS_DIR="$HOME\/documents"/' ~/.config/user-dirs.dirs
sed -i 's/^XDG_MUSIC_DIR=.*/XDG_MUSIC_DIR="$HOME\/music"/' ~/.config/user-dirs.dirs
sed -i 's/^XDG_PICTURES_DIR=.*/XDG_PICTURES_DIR="$HOME\/pictures"/' ~/.config/user-dirs.dirs
sed -i 's/^XDG_VIDEOS_DIR=.*/XDG_VIDEOS_DIR="$HOME\/videos"/' ~/.config/user-dirs.dirs
# gamecube adapter udev rule # gamecube adapter udev rule
# obsidian # obsidian
@ -151,10 +165,25 @@ if $install_dotfiles; then
bash options/dotfiles.sh bash options/dotfiles.sh
fi fi
# librewolf if $install_rtaudio; then
sudo apt install extrepo -y sudo apt install pavucontrol pipewire-jack pipewire-audio-client-libraries libspa-0.2-jack pulseaudio-utils
sudo extrepo enable librewolf cecho "Creating pipewire media session with jack config" fg_cyan
sudo apt update touch /etc/pipewire/media-session.d/with-jack
sudo apt install librewolf cp /usr/share/doc/pipewire/examples/ld.so.conf.d/pipewire-jack-*.conf /etc/ld.so.conf.d/
ldconfig
# https://wiki.linuxaudio.org/wiki/system_configuration#cpu_frequency_scaling
# printf '[Unit]\nDescription=Prepare system for real-time audio\n\n[Service]\nType=oneshot\nExecStart=/bin/bash /usr/local/bin/rt-audio-setup\nRemainAfterExit=yes\n\n[Install]\nWantedBy=multi-user.target' > /etc/systemd/system/rtaudio-setup.service
# echo 'echo -n performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor' | sudo tee /usr/local/bin/rt-audio-setup
# sudo chmod +x /usr/local/bin/rt-audio-setup
# sudo systemctl enable rtaudio-setup
# sudo systemctl start rtaudio-setup
# https://wiki.linuxaudio.org/wiki/system_configuration#limitsconfaudioconf
printf '@audio - rtprio 90 # maximum realtime priority\n@audio - memlock unlimited # maximum locked-in-memory address space (KB)' > /etc/security/limits.d/rtaudio.conf
echo "vm.swappiness=10" > /etc/sysctl.d/99-sysctl.conf
# echo "blacklist snd_hda_intel" >> /etc/modprobe.d/blacklist.conf
cecho "DO THIS STUFF MANUALLY BCUS IDK" fg_red
printf 'In the file `/etc/default/grub` change this line:\nGRUB_CMDLINE_LINUX="preempt=full threadirqs cpufreq.default_governor=performance"\n\nThen reboot\n\n'
fi
echo "\e[0;32m--- debian install script finished running ---\e[0m" echo "\e[0;32m--- debian install script finished running ---\e[0m"

View File

@ -9,6 +9,12 @@ fg_cyan="$(tput setaf 6)"
fg_white="$(tput setaf 7)" fg_white="$(tput setaf 7)"
reset="$(tput sgr0)" reset="$(tput sgr0)"
scriptdir=$PWD scriptdir=$PWD
# -------- NOTES
# see all keys
# `gsettings list-keys org.gnome.shell.keybindings `
#
# then do something like:
# `gsettings set org.gnome.shell.keybindings screenshot '["disabled"]'`
cecho() { cecho() {
@ -34,34 +40,38 @@ gsettings set org.gnome.desktop.default-applications.terminal exec kitty
# better alt tab functionality # better alt tab functionality
cecho "Making alt-tab better :)" fg_cyan cecho "Making alt-tab better :)" fg_cyan
gsettings set org.gnome.desktop.wm.keybindings switch-windows "['<Alt>Tab']" gsettings set org.gnome.desktop.wm.keybindings switch-windows "['<Alt>Tab']"
gsettings set org.gnome.desktop.wm.keybindings switch-windows-backward "['<Shift><Alt>Tab', '<Alt>Above_Tab']" gsettings set org.gnome.desktop.wm.keybindings switch-windows-backward "['<Shift><Alt>Tab']"
gsettings set org.gnome.desktop.wm.keybindings switch-applications "[]" gsettings set org.gnome.desktop.wm.keybindings switch-applications "[]"
gsettings set org.gnome.desktop.wm.keybindings switch-applications-backward "[]" gsettings set org.gnome.desktop.wm.keybindings switch-applications-backward "[]"
gsettings set org.gnome.shell.keybindings screenshot "['Print']"
gsettings set org.gnome.shell.keybindings screenshot-window "['<Alt>Print']"
gsettings set org.gnome.shell.keybindings show-screenshot-ui "['<Super><Shift>S']"
if $is_macbook; then if $is_macbook; then
cecho "Swapping left Super & left Control" fg_cyan cecho "Swapping left Super & left Control" fg_cyan
bash options/toggle-gnome-macbook-keyboard.sh 1 bash options/toggle-gnome-macbook-keyboard.sh 1
fi fi
# i dont rly care about extensions cecho "Turning off hot corner" fg_cyan
gsettings set org.gnome.desktop.interface enable-hot-corners false
gsettings set org.gnome.mutter edge-tiling false
sudo apt install -y pipx sudo apt install -y pipx
# # adds ~/.local/bin to PATH # adds ~/.local/bin to PATH
pipx ensurepath pipx ensurepath
# # https://github.com/essembeh/gnome-extensions-cli # https://github.com/essembeh/gnome-extensions-cli
pipx install gnome-extensions-cli --system-site-packages pipx install gnome-extensions-cli --system-site-packages
# # install gnome extensions # install gnome extensions
gext install dash-to-dock@micxgx.gmail.com user-theme@gnome-shell-extensions.gcampax.github.com openbar@neuromorph emoji-copy@felipeftn tiling-assistant@leleat-on-github Vitals@CoreCoding.com compiz-windows-effect@hermes83.github.com gext install dash-to-dock@micxgx.gmail.com user-theme@gnome-shell-extensions.gcampax.github.com emoji-copy@felipeftn tiling-assistant@leleat-on-github Vitals@CoreCoding.com
# # enable gnome extensions # enable gnome extensions
gext enable dash-to-dock@micxgx.gmail.com user-theme@gnome-shell-extensions.gcampax.github.com openbar@neuromorph emoji-copy@felipeftn tiling-assistant@leleat-on-github Vitals@CoreCoding.com compiz-windows-effect@hermes83.github.com gext enable dash-to-dock@micxgx.gmail.com user-theme@gnome-shell-extensions.gcampax.github.com emoji-copy@felipeftn tiling-assistant@leleat-on-github Vitals@CoreCoding.com
# # wobbly windows
# # gext install compiz-windows-effect@hermes83.github.com
# gext enable compiz-windows-effect@hermes83.github.com
# custom keyboard shortcuts
# this is the worst script in the world
# "name|command|binding" # "name|command|binding"
keybindings=( keybindings=(
"Terminal|kitty|<Super>Return" "Terminal|kitty|<Super>Return"
"wallpaper|~/utils/gnome-wallpaper/wallpaper.sh|Launch7" "wallpaper|~/.utils/wallpaper.sh|Launch7"
"wallpaper2|~/utils/gnome-wallpaper/my_wallpaper.sh|<Control>Launch7"
"browser|librewolf|<Super>Shift" "browser|librewolf|<Super>Shift"
) )

29
options/wine-staging.sh Executable file
View File

@ -0,0 +1,29 @@
# https://gitlab.winehq.org/wine/wine/-/wikis/Debian-Ubuntu
# install wine staging
sudo dpkg --add-architecture i386
sudo apt update
sudo mkdir -pm755 /etc/apt/keyrings
wget -O - https://dl.winehq.org/wine-builds/winehq.key | sudo gpg --dearmor -o /etc/apt/keyrings/winehq-archive.key -
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/debian/dists/trixie/winehq-trixie.sources
sudo apt update
sudo apt install --install-recommends winehq-staging
# downgrade to 9.21
version=9.21
variant=staging
codename=$(shopt -s nullglob; awk '/^deb https:\/\/dl\.winehq\.org/ { print $3; exit 0 } END { exit 1 }' /etc/apt/sources.list /etc/apt/sources.list.d/*.list || awk '/^Suites:/ { print $2; exit }' /etc/apt/sources.list /etc/apt/sources.list.d/wine*.sources)
suffix=$(dpkg --compare-versions "$version" ge 6.1 && ((dpkg --compare-versions "$version" eq 6.17 && echo "-2") || echo "-1"))
sudo apt install --install-recommends {"winehq-$variant","wine-$variant","wine-$variant-amd64","wine-$variant-i386"}="$version~$codename$suffix"
# prevent these from being updated
sudo apt-mark hold winehq-staging
# yabridge
DOWNLOAD_DIR="${XDG_DOWNLOAD_DIR:-$(xdg-user-dir DOWNLOAD)}"
cd $DOWNLOAD_DIR || exit
wget https://github.com/robbert-vdh/yabridge/releases/download/5.1.1/yabridge-5.1.1.tar.gz
tar -C ~/.local/share -xavf yabridge-5.1.1.tar.gz
echo 'export PATH="$PATH:$HOME/.local/share/yabridge"' >> ~/.bashrc
rm $DOWNLOAD_DIR/yabridge-5.1.1.tar.gz
source ~/.bashrc
yabridgectl add "$HOME/.wine/drive_c/Program Files/Steinberg/VstPlugins"
yabridgectl add "$HOME/.wine/drive_c/Program Files/Common Files/VST3"
yabridgectl sync