Install some reasonable tools and all dependencies for the more advanced package installers
First, use snap (ubuntu software) to install gnome-tweaks, open and bind capslock to be ctrl
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \
&& sudo dpkg -i google-chrome-stable_current_amd64.deb
sudo apt install nodejs tmux htop vim curl git gh make fuse build-essential \
libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev \
liblzma-dev fzf btop fd-find kitty exa
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
cargo install sd tldr zellij
sudo snap install slack vscode discord gathertown diff-so-fancy
snap connect gathertown:audio-record
snap connect gathertown:camera
Installing fuse does something with the kernel so best to restart here
sudo apt-add-repository ppa:fish-shell/release-3 && sudo apt update
sudo apt install fish
python -m pip install virtualfish
Then you need to do restart computer, then run vf install
curl https://pyenv.run | bash
set -Ux PYENV_ROOT $HOME/.pyenv
fish_add_path $PYENV_ROOT/bin
Then you want to restart/reload the shell.
pyenv install 3.8
pyenv install 3.9
pyenv global 3.9
pip install jupyter-client Pillow cairosvg pnglatex plotly kaleido
mkdir ~/.fonts && cd ~/.fonts
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.0.1/Hack.zip
unzip Hack.zip
rm Hack.zip
fc-cache -fv
wget https://github.com/neovim/neovim/releases/download/stable/nvim.appimage
mv nvim.appimage ~/.config/nvim/nvim.appimage
chmod +x ~/.config/nvim/nvim.appimage
wget https://github.com/neovide/neovide/releases/download/0.12.2/neovide.AppImage
mv neovide.AppImage ~/.config/nvim/neovide.appimage
chmod +x ~/.config/nvim/neovide.appimage
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
fish_add_path ~/.cargo/bin/
https://docs.docker.com/desktop/install/ubuntu/ install the docker desktop first, on Linux that is very different from the docker engine that runs on the host natively...
https://github.com/jesseduffield/lazydocker#binary-release-linuxosxwindows
like lazygit
for docker. Awesome!
ln -s $HOME/.config/gitconfig $HOME/.gitconfig
ln -s $HOME/.config/tmux.conf $HOME/.tmux.conf
Download the binary from kmonad github.
Make it executable and put it in /home/mattias/.local/bin/kmonad
We want to run kmonad as a user with the minimal privilages needed see more.
sudo usermod -aG input $USER
sudo groupadd uinput
sudo usermod -aG uinput $USER
echo 'KERNEL=="uinput", MODE="0660", GROUP="uinput", OPTIONS+="static_node=uinput"'\
| sudo tee /etc/udev/rules.d/90-uinput.rules
echo uinput | sudo tee /etc/modules-load.d/uinput.conf
Now add it as a service to ubuntu:
sudo ln -s /home/mattias/.config/kmonad/kmonad.service /etc/systemd/system/kmonad.service
sudo systemctl daemon-reload # this will register the new service to the deamon
sudo systemctl enable kmonad.service # enable on boot
sudo systemctl start kmonad.service # start now
sudo systemctl status kmonad.service
journalctl -u kmonad.service # to check the logs
To restart it after a config update run sudo systemctl restart kmonad.service