Compare commits

...

9 Commits

Author SHA1 Message Date
528b82bdaf fix ctrl-arrow keys 2026-07-25 21:09:04 -05:00
2a3e0e2e2b add treesitter and update stuff with nvim config 2026-07-25 21:08:37 -05:00
32a8c1260a fix up a few things 2026-07-20 21:27:18 -05:00
7347b64eba add nvm lazy loading to zsh 2026-07-20 20:53:56 -05:00
53b43eda88 add desktop background 2026-07-19 16:11:49 -05:00
e28f15a0c2 fix a few formatting things 2026-07-19 16:11:35 -05:00
111b0cef32 fix calendar widget and set up taskbar layout 2026-07-19 15:19:58 -05:00
fb9570fd74 actually remove stuff 2026-07-19 14:35:25 -05:00
f94fc0aa97 install discord & vs code 2026-07-19 14:35:10 -05:00
6 changed files with 89 additions and 36 deletions

View File

@@ -2,7 +2,7 @@
## DESKTOP ENVIRONMENT ## ## DESKTOP ENVIRONMENT ##
########################### ###########################
# Designed & tested on Cinnamon 6.4.8 # Designed & tested on Cinnamon 6.4.8
echo "## desktop environment" | tee todo.md -a echo "## desktop environment" | tee -a todo.md
# remap caps-lock to escape (more efficient neovim) # remap caps-lock to escape (more efficient neovim)
gsettings set org.gnome.libgnomekbd.keyboard options "['grp\tgrp:win_space_toggle', 'terminate\tterminate:ctrl_alt_bksp', 'caps\tcaps:escape']" gsettings set org.gnome.libgnomekbd.keyboard options "['grp\tgrp:win_space_toggle', 'terminate\tterminate:ctrl_alt_bksp', 'caps\tcaps:escape']"
@@ -19,15 +19,33 @@ gsettings set org.cinnamon.gestures swipe-right-3 "WORKSPACE_PREVIOUS::start" #
gsettings set org.cinnamon.desktop.wm.preferences mouse-button-modifier "'<Super>'" gsettings set org.cinnamon.desktop.wm.preferences mouse-button-modifier "'<Super>'"
# hide annoying super menu icons # hide annoying super menu icons
echo "* hide annoying super menu icons" | tee -a todo.md
# set up taskbar
# startup programs - artha # startup programs - artha
mkdir -p $HOME/.config/autostart mkdir -p "$HOME/.config/autostart"
cp ./utils/artha-autostart.desktop $HOME/.config/autostart/artha.desktop cp ./utils/artha-autostart.desktop "$HOME/.config/autostart/artha.desktop"
chmod 755 $HOME/.config/autostart/artha.desktop chmod 755 "$HOME/.config/autostart/artha.desktop"
# disable calendar widget showing events too # disable calendar widget showing events too
FP="$HOME/.config/cinnamon/spices/calendar@cinnamon.org/13.json" # why is this 13? doesn't seem very robust # 13.json corresponds to the numerical (zero-indexed) position in the
cat $FP | jq '.["show-events"].value = false' | tee $FP # enabled-applets section of `dconf dump /org/cinnamon/`
FP="$HOME/.config/cinnamon/spices/calendar@cinnamon.org/13.json"
cat $FP | jq '.["show-events"].value = false' | tee tmp.json && mv tmp.json "$FP"
# set up taskbar (grouped-window-list widget)
FP="$HOME/.config/cinnamon/spices/grouped-window-list@cinnamon.org/2.json"
TASKBAR_LAYOUT='[
"nemo.desktop",
"org.gnome.Terminal.desktop",
"brave-browser.desktop",
"discord.desktop",
"code.desktop"
]'
cat $FP | jq --argjson layout "$TASKBAR_LAYOUT" '.["pinned-apps"]["value"] = $layout' | tee tmp.json && mv tmp.json "$FP"
# set desktop background image
IMAGE_NAME="smoky-mountains-background.jpg"
mkdir -p "$HOME/.local/share/backgrounds"
cp "./utils/$IMAGE_NAME" "$HOME/.local/share/backgrounds/$IMAGE_NAME"
gsettings set org.cinnamon.desktop.background picture-uri "file://$HOME/.local/share/backgrounds/$IMAGE_NAME"

67
main.sh
View File

@@ -15,12 +15,12 @@ INSTALL_USER=$(whoami)
## DEV/PROGRAMMING ## ## DEV/PROGRAMMING ##
## ESSENTIAL TOOLS ## ## ESSENTIAL TOOLS ##
####################### #######################
echo "## dev/programming & essential tools/programs" | tee todo.md -a echo "## dev/programming & essential tools/programs" | tee -a todo.md
echo "* install drivers & such" | tee todo.md -a echo "* install drivers & such" | tee -a todo.md
# Install some apt packages # Install some apt packages
sudo apt-get upgrade -y sudo apt-get upgrade -y
sudo apt-get install -y curl git jq build-essential unzip tree # for development sudo apt-get install -y curl git jq build-essential unzip tree npm # for development
sudo apt-get install -y ripgrep # I honestly don't remember why I installed these sudo apt-get install -y ripgrep # I honestly don't remember why I installed these
# Install Python & uv (package/version manager) # Install Python & uv (package/version manager)
@@ -30,23 +30,27 @@ source $HOME/.local/bin/env
uv python install --default uv python install --default
# Node.js 24 (with nvm - https://github.com/nvm-sh/nvm) # Node.js 24 (with nvm - https://github.com/nvm-sh/nvm)
# also required for pyright language server (neovim)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.5/install.sh | bash curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.5/install.sh | bash
\. "$HOME/.nvm/nvm.sh" # in lieu of restarting the shell \. "$HOME/.nvm/nvm.sh" # in lieu of restarting the shell
nvm install 24 nvm install 24
# install a nerd font (provides special symbols for zsh/starship) # install a nerd font (provides special symbols for zsh/starship)
sudo mkdir -p /usr/share/fonts/truetype/DejaVuSansMono/ sudo mkdir -p /usr/share/fonts/truetype/DejaVuSansMono/
sudo unzip ./utils/DejaVuSansMono.zip /usr/share/fonts/truetype/DejaVuSansMono/ sudo unzip ./utils/DejaVuSansMono.zip -d /usr/share/fonts/truetype/DejaVuSansMono/
fc-cache -f -v
# zsh (better shell) # zsh (better shell)
sudo apt-get install -y zsh sudo apt-get install -y zsh
sudo chsh $INSTALL_USER -s /bin/zsh sudo chsh $INSTALL_USER -s /bin/zsh
cp ./utils/dotzshrc "$HOME/.zshrc" cp ./utils/dotzshrc "$HOME/.zshrc"
# zsh nvm lazy loading (so shell doesn't take a million years to start)
git clone https://github.com/lukechilds/zsh-nvm.git "$HOME/.nvm-zsh"
# other install stuff already in .zshrc
# starship (shell prompt) # starship (shell prompt)
curl -sS https://starship.rs/install.sh | sudo sh -s -- -y curl -sS https://starship.rs/install.sh | sudo sh -s -- -y
# echo 'eval "$(starship init zsh)"' | tee "$HOME/.zshrc" -a # should already be in zshrc # echo 'eval "$(starship init zsh)"' | tee -a "$HOME/.zshrc" # should already be in zshrc
mkdir -p "$HOME/.config" mkdir -p "$HOME/.config"
cp ./utils/starship.toml "$HOME/.config/starship.toml" cp ./utils/starship.toml "$HOME/.config/starship.toml"
@@ -55,48 +59,66 @@ curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x8
sudo rm -rf /opt/nvim-linux-x86_64 sudo rm -rf /opt/nvim-linux-x86_64
sudo tar -C /opt -xzf nvim-linux-x86_64.tar.gz sudo tar -C /opt -xzf nvim-linux-x86_64.tar.gz
rm nvim-linux-x86_64.tar.gz rm nvim-linux-x86_64.tar.gz
echo 'export PATH="$PATH:/opt/nvim-linux-x86_64/bin"' | tee "$HOME/.bashrc" -a echo 'export PATH="$PATH:/opt/nvim-linux-x86_64/bin"' | tee -a "$HOME/.bashrc"
# Neovim config
git clone https://gitea.jovan04.com/evan/neovim-config "$HOME/.config/nvim" git clone https://gitea.jovan04.com/evan/neovim-config "$HOME/.config/nvim"
echo "* install pyright language server (and any other relevant ones)" | tee todo.md -a echo "* install pyright language server (and any other relevant ones)" | tee -a todo.md
# Other editor(s) (TBD) # tree-sitter-cli (neovim syntax highlighting)
echo "* investigate and install other IDE(s)" | tee todo.md -a curl -LO https://github.com/tree-sitter/tree-sitter/releases/latest/download/tree-sitter-cli-linux-x64.zip
sudo unzip ./tree-sitter-cli-linux-x64.zip -d /opt/nvim-linux-x86_64/bin/
rm ./tree-sitter-cli-linux-x64.zip
# install VS Code
wget "https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64" -O "vs-code-linux-x64.deb"
echo "code code/add-microsoft-repo boolean true" | sudo debconf-set-selections
sudo apt-get install -y ./vs-code-linux-x64.deb
rm ./vs-code-linux-x64.deb
echo "* investigate and install other IDE(s)" | tee -a todo.md
# Brave browser # Brave browser
curl -fsS https://dl.brave.com/install.sh | sh curl -fsS https://dl.brave.com/install.sh | sh
# GitHub SSH keys # GitHub SSH keys
echo "* generate new SSH key and add to GitHub?" | tee todo.md -a echo "* generate new SSH key and add to GitHub?" | tee -a todo.md
# things I'd rather not install but have to # things I'd rather not install but have to
# Discord (chat) # Discord (chat)
echo "* install Discord (chat)" | tee todo.md -a wget "https://discord.com/api/download?platform=linux&format=deb" -O "discord-linux.deb"
sudo apt-get install -y ./discord-linux.deb
rm ./discord-linux.deb
mkdir -p "$HOME/.config/discord"
echo '{ "DANGEROUS_ENABLE_DEVTOOLS_ONLY_ENABLE_IF_YOU_KNOW_WHAT_YOURE_DOING": true }' | tee "$HOME/.config/discord/settings.json"
echo "* find discord replacement" | tee -a todo.md
# Zoom (video call) # Zoom (video call)
echo "* install Zoom (video call)" | tee todo.md -a echo "* install Zoom (video call)" | tee -a todo.md
############################ ############################
## WORKFLOW/SMALL TOOLS ## ## WORKFLOW/SMALL TOOLS ##
############################ ############################
echo "## workflow helpers, small tools, and utilities" | tee todo.md -a echo "## workflow helpers, small tools, and utilities" | tee -a todo.md
# pbcopy/pbpaste (from macOS) # pbcopy/pbpaste (from macOS)
sudo apt-get install -y xclip sudo apt-get install -y xclip
printf '#!/bin/bash \nxclip -selection clipboard' | sudo tee /usr/local/bin/pbcopy printf '#!/bin/bash \nxclip -selection clipboard' | sudo tee /usr/local/bin/pbcopy
sudo chown 1000:1000 /usr/local/bin/pbcopy sudo chown $INSTALL_USER:$INSTALL_USER /usr/local/bin/pbcopy
chmod 755 /usr/local/bin/pbcopy chmod 755 /usr/local/bin/pbcopy
printf '#!/bin/bash \nxclip -selection clipboard -o' | sudo tee /usr/local/bin/pbpaste printf '#!/bin/bash \nxclip -selection clipboard -o' | sudo tee /usr/local/bin/pbpaste
sudo chown 1000:1000 /usr/local/bin/pbpaste sudo chown $INSTALL_USER:$INSTALL_USER /usr/local/bin/pbpaste
chmod 755 /usr/local/bin/pbpaste chmod 755 /usr/local/bin/pbpaste
# WordNet & def utility # WordNet & def utility
sudo apt-get install -y wordnet sudo apt-get install -y wordnet
printf '#!/bin/bash \nwn $1 -over' | sudo tee /usr/local/bin/def printf '#!/bin/bash \nwn $1 -over' | sudo tee /usr/local/bin/def
sudo chown 1000:1000 /usr/local/bin/def sudo chown $INSTALL_USER:$INSTALL_USER /usr/local/bin/def
chmod 755 /usr/local/bin/def chmod 755 /usr/local/bin/def
# Artha (WordNet dictionary) # Artha (WordNet dictionary)
@@ -108,13 +130,13 @@ sudo apt-get install -y qpdf
# rndrmarkdown markdown renderer # rndrmarkdown markdown renderer
sudo apt-get install -y pandoc sudo apt-get install -y pandoc
sudo cp ./utils/rndrmarkdown /usr/local/bin/rndrmarkdown sudo cp ./utils/rndrmarkdown /usr/local/bin/rndrmarkdown
sudo chown 1000:1000 /usr/local/bin/rndrmarkdown sudo chown $INSTALL_USER:$INSTALL_USER /usr/local/bin/rndrmarkdown
sudo chmod 755 /usr/local/bin/rndrmarkdown sudo chmod 755 /usr/local/bin/rndrmarkdown
echo 'alias rmd="rndrmarkdown"' | tee "$HOME/.bashrc" -a echo 'alias rmd="rndrmarkdown"' | tee -a "$HOME/.bashrc"
# readline (for piping 1 line into wc) # readline (for piping 1 line into wc)
printf '#!/bin/bash \necho "$(head -n $1 $2 | tail -n 1)"' | sudo tee /usr/local/bin/rline printf '#!/bin/bash \necho "$(head -n $1 $2 | tail -n 1)"' | sudo tee /usr/local/bin/rline
sudo chown 1000:1000 /usr/local/bin/rline sudo chown $INSTALL_USER:$INSTALL_USER /usr/local/bin/rline
chmod 755 /usr/local/bin/rline chmod 755 /usr/local/bin/rline
# Calc (command-line calculator) # Calc (command-line calculator)
@@ -143,13 +165,16 @@ sudo apt-get install -y btop
########################## ##########################
source ./user-programs.sh source ./user-programs.sh
########################### ###########################
## DESKTOP ENVIRONMENT ## ## DESKTOP ENVIRONMENT ##
########################### ###########################
# designed & tested on Cinnamon 6.4.8 # designed & tested on Cinnamon 6.4.8
source ./desktop-env.sh source ./desktop-env.sh
######################
## REMOVING STUFF ##
######################
source ./removing-stuff.sh
echo "Installation and setup finished. You must log out and log back in for all changes to take effect." echo "Installation and setup finished. You must log out and log back in for all changes to take effect."
read -p "Press enter to log out." read -p "Press enter to log out."

View File

@@ -1,7 +1,7 @@
###################### ######################
## REMOVING STUFF ## ## REMOVING STUFF ##
###################### ######################
echo "## removing stuff" | tee todo.md -a echo "## removing stuff" | tee -a todo.md
rmdir $HOME/Documents/ rmdir $HOME/Documents/
rmdir $HOME/Music/ rmdir $HOME/Music/

View File

@@ -1,7 +1,7 @@
########################## ##########################
## SPECIALTY PROGRAMS ## ## SPECIALTY PROGRAMS ##
########################## ##########################
echo "## special/single-use/professional programs" | tee todo.md -a echo "## special/single-use/professional programs" | tee -a todo.md
# GIMP (image manipulation) # GIMP (image manipulation)
sudo apt-get install -y gimp sudo apt-get install -y gimp
@@ -26,13 +26,13 @@ sudo apt-get update
sudo apt-get install -y freecad freecad-doc sudo apt-get install -y freecad freecad-doc
# 3D printing slicer # 3D printing slicer
echo "* choose and install 3D slicer" | tee todo.md -a echo "* choose and install 3D slicer" | tee -a todo.md
# ProtonVPN # ProtonVPN
echo "* install protonVPN" | tee todo.md -a echo "* install protonVPN" | tee -a todo.md
# Minecraft # Minecraft
echo "* install Minecraft" | tee todo.md -a echo "* install Minecraft" | tee -a todo.md
# unsure about right now # unsure about right now

View File

@@ -13,14 +13,24 @@ alias egrep='egrep --color=auto'
# sleep 10; alert # sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
# colored GCC warnings and errors
export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
export PATH="$PATH:/opt/nvim-linux-x86_64/bin" export PATH="$PATH:/opt/nvim-linux-x86_64/bin"
alias open="xdg-open" alias open="xdg-open"
alias nv="nvim" alias nv="nvim"
alias rmd="rndrmarkdown" alias rmd="rndrmarkdown"
# colored GCC warnings and errors autoload -Uz compinit && compinit
export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' zstyle ':completion:*' insert-tab false
zstyle ':completion:*' menu select
bindkey "^[[1;5C" forward-word # Ctrl+Right
bindkey "^[[1;5D" backward-word # Ctrl+Left
export NVM_LAZY_LOAD=true
source "$HOME/.nvm-zsh/zsh-nvm.plugin.zsh"
eval "$(starship init zsh)" eval "$(starship init zsh)"

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 MiB