Skip to content

This is a collection of personal tweaks/rituals that make Ubuntu feel just right for me like how a ballerina customizes their pointe shoes to feel just right for them.

License

Notifications You must be signed in to change notification settings

garylvov/dev_env

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DEVeloper ENVironment (Ubuntu)

This is a collection of personal tweaks/rituals that make Ubuntu feel just right for me like how a ballerina customizes their pointe shoes to feel just right for them, as well as some other useful resources I keep going back to.

It would be cool if this was an Ansible playbook, but I haven't made it there yet. This also has some handy commands that I always look up and then forget.

GPU Drivers with Docker Passthrough - Make ML Go Brrr

The definitive NVIDIA Ubuntu Driver / CUDA Install Guide

Hermetic and Reproducible Python Package Template

Hermetic and Reproducible Python Package Template authored by yours truly.

I love to use Pixi, which can be installed with the following.

curl -fsSL https://pixi.sh/install.sh | sh

Vibe Coding

My Agentic Vibe Coding w/ Claude Code Tutorial

Claude code can be installed with the following.

curl -fsSL https://claude.ai/install.sh | bash

The Classics

sudo apt-get install terminator # Make sure to turn on infinite scrollback: right click->preferences->profiles->scrolling
sudo apt-get install htop
sudo apt-get install nvtop
sudo apt-get install btop

Code Editors

sudo snap install code --classic
sudo apt-get install vim

Remoting in

Classic

sudo apt-get install openssh-client
sudo apt-get install openssh-server

Networking

The free plan from Tailscale works great (up to 100 personal devices!).

I tried to use WireGuard alone once and quickly retreated to the comfort of Tailscale.

Remote Desktop

I like to use NoMachine.

Importantly, for NoMachine to work, in the Settings, under System, "Desktop Sharing" and "Remote Control" need to be enabled.

I want to try Sunshine/Moonlight but I haven't gotten around to it yet.

I need to remember to always do the following. Settings -> Sharing -> Remote Desktop -> On.

Github

Adding a new SSH agent Key

Can be added to key agent here

Creating a private fork from a public repo - make sure to have public repo link ready

More information about private forks

Gnome Extensions

Caffeine and Tactile are must have extensions IMO

sudo apt-get install gnome-shell-extension-manager

Browser Stuff

Vimium

Notes

Obsidian

Obsidian Git Plugin

Obsidian Ubuntu 24.04 Permissions

Run Obsidian with the --disable-gpu flag to prevent any glitches with Wayland!

Sometimes libfuse2 is needed.

sudo apt update -y && sudo apt install -y libfuse2

Citations

Zotero

Extra Zotero Install Help

Watch Count / Inotify

Updating Watch Count Stack Overflow

Space Preservation Part I

Check disk usage with the following.

sudo apt-get install baobab
sudo baobab

If your overlay2 folder gets huge, see the following.

When Docker Gets Greedy (Space Preservation Part II)

Get rid of old docker images with the following.

docker system df
# Clear builder cache with the following.
docker builder prune -a -f

Kubernetes

Kubectl install

K9s:

wget https://github.com/derailed/k9s/releases/download/v0.32.7/k9s_linux_amd64.deb && apt install ./k9s_linux_amd64.deb && rm k9s_linux_amd64.deb

Handy commands that I always forget:

kubectl config get-contexts # Get all contexts
kubectl get namespaces # Get all namespaces
kubectl config use-context <CONTEXT> # Set Contexts
kubectl config set-context --current --namespace=<NAMESPACE> # Set the namespace for the current context

Keybindings

I've used Keyd in the past but tbh I didn't love it and am considering switching to Hawck. I think binding the capslock key to something that isn't useless is great.

Hawck

Keyd

Keyd conf file:

[ids]
*
[main]
capslock = layer(capslock)
[capslock]
e = oneshot(control)
q = oneshot(alt)
o = oneshot(shift)
p = oneshot(tab)
g = b
h = left
j = down
k = up
l = right
u = S-'
i = S-5

Tmux

Yank

Fan stuff for PCs

Cooler Control

Local LLM + Coding

Opencode

For local agentic coding:

vim ~/.local/share/opencode/opencode.json
ollama run SimonPu/Qwen3-Coder:30B-Instruct_Q4_K_XL

Running Ollama:

docker rm ollama 2>/dev/null || true && docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
docker exec -it ollama bash
# Some favorites of mine:
ollama run deepseek-r1:70b
ollama run qwen:110b
ollama run qwen2.5-coder:32b

# Example of increasing context size:
echo \
"FROM deepseek-r1:70b
PARAMETER num_ctx 60000
PARAMETER num_predict 30000" > Modelfile
ollama create deepseek-r1-60k-context-and-30k:70b -f Modelfile
ollama run deepseek-r1-60k-context-and-30k:70b --verbose

# Afterwards, make sure to clean up with CTRL + C, CTRL + D, and then docker stop ollama

Python Extract Method

Some VSCode Python extensions conflict with each other. I forgot how to resolve this. I think you may want just the Microsoft Python extension and as few others as possible. I also really like the rainbow indent extension it's great!

About

This is a collection of personal tweaks/rituals that make Ubuntu feel just right for me like how a ballerina customizes their pointe shoes to feel just right for them.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages