I generally stick to GNOME Debian forks. Currently I'm partial to Linux Mint.
This deprecates a lot of modifications I used to do, e.g. GNOME shell
extensions. I no longer move all the files into ~/.config, I prefer to add
links to these files in the native configurations.
Install system packages with
sudo apt install -y $(cat apt-packages.txt)Installs with apt, but you need to add their repo:
https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get updateBefore installing:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginScripts are stored in bin, including link-config which creates
symbolic links to some of these config files in ~/.config.
Include the local bashrc by running the following:
echo "source ~/dot/.bashrc" > ~/.bash_aliasesIf you want to use it:
git submodule update --init
chsh -s $(which zsh)I've switched from vim-plug to lazy.nvim although I've
not fallen in love with it yet. Starting nvim and then typing :Lazy should
open the plugin manager though. The version packaged for ubuntu falls behind
sometimes, which can break autocomplete plugins. If you can't get the package
you want via your package manager, I recommend just installing the AppImage.
Add the following configuration to ~/.gitconfig:
[include]
path = ~/dot/git/configInstall "Command Launcher" and then import the file command.json which adds an icon to the panel which rotates the secondary monitor. Must use proprietary Nvidia drivers for this to work. Add further extensions to taste. The following keyboard commands are useful:
- Super-Tab: Show the window selection screen
- Super+R: Run dialog
- Super+H: Switch to left workspace
- Super+L: Switch to right workspace
- Super+T: Launch terminal
- Super+W: Launch web browser
- Super+.: Toggle always on top
- Super+F11: Toggle fullscreen state
The settings.json goes in ~/.config/Code/User/.
There's no way to reference this file from the default. You could maybe symlink
it if you really wanted to. These are all necessary extensions, but there are
more, too.
- vscodevim
- Dracula
- Rewrap
- Remote - SSH
- Remote Explorer
- Banner Comments+
These are more project-specific:
- Pylance
- Continue
- Debugger for firefox/chrome
- Docker
- Jupyter
- Python
- vscode-pdf
Setting up a local llama is actually very easy using ollama. I access my local models through an open-webui running in a docker container on my home server which accesses the models running on my PC.
curl -fsSL https://ollama.com/install.sh | sh
python3 -m venv llama-env
source ./llama-env/bin/activate
ollama serveServes at http://localhost:11434. This is one of the few web services I actually run on my PC rather than the server. When you log into your hosted open-webui, give it the IP of this service to make requests to the models.
These can't be installed through a package manager, I think. Some are bundled with operating systems by default. I generally try to avoid Flatpaks in order to preserve storage, but some cannot be avoided.
- Unity
- Obsidian
- AppFlowy
- LibreOffice
My audio production setup seems to get more complicated all the time. I just added a bunch of parts.
- Bitwig Studio: Download as a Flatpak from their site
- Vital: Available as a deb
- Cardinal/VCVrack
- Mixxx (Virtual DJ tool)
- Surge XT (Hybrid synthesizer)
- Rolling sampler
- Helvum (GTK audio patchbay)
- Protokol (MIDI/OSC monitor)
- Open Stage Control
- DrivenByMoss
Today I connected a bunch of things together. Helvum connects audio output to the input of rolling sampler. DrivenByMoss has a script for OSC--once we start the OSC server, we can add a MIDI device with this script. When they communicate on the same port, outputs from OSC are connected to parameters in Bitwig.
Install these as necessary because you can use them exactly the same in the browser.
- Spotify
- Discord
- Slack
Once WOL is enabled in BIOS, we just need to run the following on the target system to enable magic packets. wake-pc.sh will wake up CHRIS.
nmcli connection show
nmcli connection modify "Wired connection 1" 802-3-ethernet.wake-on-lan magici3 is a window manager with tiling functionality that I often find more appealing than Cinnamon's. It requires some configuration to be pleasant to use. I use the following packages:
- rofi
- polybar
- dunst
Fortunately these are very easy to set up. link-config will set up the config files. In most display managers it is straightforward to launch these alongside a more featured DE, such as Cinnamon or KDE.
I don't generally use these tools anymore:
I use vim-plug to load
extensions. Create a link in .config/nvim/init.vim to load the file in this
repo. Run pip install neovim to fix YCM completion.
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
mkdir .config/nvim
echo "source ~/dot/nvim/init.vim" > .config/nvim/init.vimThen open vim and run :PlugInstall
- NVidia Monitor
- Dash to Dock
- Change alt+tab to switch windows
- CUDA 10.1 (should be pre installed)
- CUDNN 7.6 (not higher)
Use the system76 libraries and
make sure you install the 10.1 versions. System76 installs these into
/usr/lib/cuda but tensorflow still finds them I think.
sudo apt install system76-cuda-10.1
sudo apt install system76-cudnn-10.1
You might need to fix the symbolic links
Use miniconda to avoid bloat but for easy environment management
- tensorflow
- pytorch
- jupyter
- numpy
- sklearn
- matplotlib
- seaborn