Skip to content

Samcfuchs/dot

Repository files navigation

Dotfiles

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.

Apt packages

Install system packages with

sudo apt install -y $(cat apt-packages.txt)

Docker

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 update

Before installing:

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Configuration

Scripts are stored in bin, including link-config which creates symbolic links to some of these config files in ~/.config.

bash

Include the local bashrc by running the following:

echo "source ~/dot/.bashrc" > ~/.bash_aliases

zsh

If you want to use it:

git submodule update --init
chsh -s $(which zsh)

nvim

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.

git

Add the following configuration to ~/.gitconfig:

[include]
    path = ~/dot/git/config

Cinnamon

Install "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

VS Code

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

Llama

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 serve

Serves 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.

Unpackaged apps

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

Audio Stack

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.

Apps that are just electron wrappers

Install these as necessary because you can use them exactly the same in the browser.

  • Spotify
  • Discord
  • Slack

Wake-on-LAN

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 magic

i3-wm

i3 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.

Archival

I don't generally use these tools anymore:

nvim (old config)

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.vim

Then open vim and run :PlugInstall

Alacritty

zsh

GNOME

NVidia CUDA

  • 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

Python

Use miniconda to avoid bloat but for easy environment management

  • tensorflow
  • pytorch
  • jupyter
  • numpy
  • sklearn
  • matplotlib
  • seaborn

Other Apps

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors