Post install for a more keyboard driven Ubuntu 26.04


A post install set up for Ubuntu 26.04 for people that like the concept of something like Omarchy but need to stick to Ubuntu, Gnome and keyboard shortcuts that are more in line with Windows and Mac. The combination of Gnome and Wayland does't handle window placement well and makes configuration more manual than it should be. A bit annoying especially as the two projects seem unwilling to even acknowledge there is an issue.
GPaste – The Best Clipboard Manager for Gnome
Kitty - the fast, feature-rich, cross-platform, GPU based terminal
Run-or-raise - Feature rich shortcut key app launcher
sudo apt update && sudo apt upgrade -y
sudo apt install -y neovim curl ripgrep wl-clipboard tmux tree gnome-shell-extension-manager
sudo apt install -y p7zip-full unace unrar zip unzip sharutils rar uudeview mpack arj cabextract filezilla
sudo apt install -y gnome-tweaks file-roller gnome-shell-extension-gpaste
sudo apt install ubuntu-restricted-extras vlc libavcodec-extra mpv ffmpeg
sudo apt install -y fd-find fzf bat kitty lsd jq btop
mkdir -p ~/.local/bin
ln -s /usr/bin/batcat ~/.local/bin/bat
Settings
Settings > Privacy & Security > Screen: Blank Screen Delay 15 minutes
Settings > Online Accounts: Connect Google Account
Settings > Ubuntu Desktop > Desktop Icons > Position of New Icons: Top Left
Settings > Ubuntu Desktop > Enhanced Tiling > Tiling Popup: Off (Tiling popup can get in the way when moving Windows by keyboardquickly)
Settings > Keyboard > View and Customize Shortcuts
- System
- Show the notification list - Shift+Super+V
- GPaste
- Display the history - Super+V
- Custom Shortcuts.
- Add Custom Shortcut key
- Command - nautilus
- Shortcut - Super + e
- Add Custom Shortcut key
- Command - shutdown now
- Shortcut - Shift + alt + F4
- Add Custom Shortcut key
RESTART COMPUTER
Gnome Extension Manager
Gpaste - Clipboard Manager
Use the <Super key> Extension to bring up the Extension Manager and then turn on Gpaste
Ubuntu Tiling Assistant
NOTE: Ubuntu 26.04 already has Ubuntu Tiling Assistant installed so there is no need to install it. However, you may want to change some of the settings. I set up a template to launch all of the apps I usually use with a single key press.
In Extension Manager > System Extensions > Ubuntu Tiling Assistant click on the gear icon to get to the configuration page. You then have to click on the circled i in the top right corner and select Advanced Settings. Turn on advanced/experimental settings and only then will you be able to see the Layouts tab at the top of the screen that you need. Not very user friendly.
If you mess up your Tiling Assistant Settings, as I did at one point, you can reset it by running the following command in a terminal:
gsettings reset-recursively org.gnome.shell.extensions.tiling-assistant
** NOTE ** Ubuntu Tiling Assistant manager doesn't seem to work reliably, which is probably why they have hidden the advanced settings. Disappointing as a distro, especially a LTS distro, really should have a decent tiling manager that works.
Run or Raise
Use the <Super key> Extension to bring up the Gnome extensions manager
Browse > Search for Run or Raise and install
Use the gear icon and then the open shortcuts.conf file to configure
Example entries:
<Super>f,firefox,,
<Super>k,kitty,,
<Super>g,firefox https://mail.google.com/mail/u/0/#inbox,,/.*Gmail.*$/
<Shift><Super>d,firefox https://drive.google.com/drive/u/0/my-drive,,/$My Drive.*$/
Fonts
curl -OL https://github.com/ryanoasis/nerd-fonts/releases/latest/download/RobotoMono.tar.xz
curl -OL https://github.com/ryanoasis/nerd-fonts/releases/download/v3.4.0/NerdFontsSymbolsOnly.zip
# 1. Extract the file into folder
mkdir -p RobotoMono && tar -xf RobotoMono.tar.xz -C RobotoMono --strip-components=1
unzip NerdFontsSymbolsOnly.zip -d NerdFontsSymbolsOnly
# 2. Move the folder to the system fonts directory
sudo mv RobotoMono /usr/share/fonts/truetype/
sudo mv NerdFontsSymbolsOnly /usr/share/fonts/truetype/
# 3. Update the font cache so the system recognizes the new files
sudo fc-cache -f -v
Now change your ls aliases in ~/.bashrc to use lsd
# some more ls aliases
alias ll='lsd -alF'
alias la='lsd -A'
alias l='lsd -CF'
alias ls='lsd'
Input-remapper - Maps any input to any other input (maybe)
sudo apt install input-remapper
remap Caps Lock + hjkl to arrow keys
Easier Update
If you want to be able to update without entering sudo password everytime. Replace user_name with yours. May be a security consideration.
sudo visudo
# add the following to just before the last line to allow apt update without typing pw
# remember to replace user_name below with your actual user name
user_name ALL=(ALL) NOPASSWD: /usr/bin/apt update, /usr/bin/apt upgrade -y, /usr/bin/apt list
Defaults env_keep += "TERMINFO"
To save the file with Nano: Ctrl-x Y
Recommend aliasing to up by adding the following line in ~/.bashrc
alias up='sudo apt update && sudo apt upgrade -y'
Internationalization (example for Japanese)
sudo apt install -y fonts-ipafont fonts-vlgothic xfonts-intl-japanese xfonts-intl-japanese-big fonts-roboto
Settings > System > Region & Language > Manage Installed languages
sudo apt install ibus-mozc
ibus restart
gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'jp'), ('ibus', 'mozc-jp'), ('xkb', 'us')]"
ibus-setup if you want to add input languages.
Settings > Keyboard > Input Sources (add your input sources and make sure they are in the order you want).
Docker Installation
sudo apt remove docker.io docker-doc docker-compose podman-docker containerd runc
sudo apt install -y 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
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 update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
Must Restart Computer before verifying installation
docker --version
docker compose version
docker run hello-world
Dev Tools
Create directories
mkdir -p ~/bin ~/dev/java ~/dev/python ~/dev/ts
Git
sudo apt-get install git
git config --global core.editor "vim"
git config --global user.name "Your Name"
git config --global user.email your.name@email.com
Do you want to copy the keys or create new ones?
Create new ones
cd ~/.ssh
ssh-keygen -t rsa -b 4096 -C "your.name@email.com"`
# press enter three times
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
wl-copy < ~/.ssh/id_rsa.pub
Open GitHub's Add new SSH Key and paste there.
Alternatively copy over old ~/.ssh folder to new install
mise
one config file to manage tools (node, python, rust, go, etc)
curl https://mise.run | sh
# .bashrc should have echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc
mise use --global node@lts
Python
UV
curl -LsSf https://astral.sh/uv/install.sh | sh
# echo 'eval "$(uv generate-shell-completion bash)"' >> ~/.bashrc
uv tool install ipdb
uv tool install ipython
uv tool install ruff
Antigravity
VS Code
code_url="https://go.microsoft.com/fwlink/?LinkID=760868"
curl -Lo code_latest_amd64.deb "$code_url"
sudo apt install ./code_latest_amd64.deb
OpenCode
DBeaver - Universal Database Tool
wget -O- https://dbeaver.io/debs/dbeaver.gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/dbeaver-archive-keyring.gpg > /dev/null
rm dbeaver.gpg.key
echo "deb [signed-by=/usr/share/keyrings/dbeaver-archive-keyring.gpg] https://dbeaver.io/debs/dbeaver-ce /" | sudo tee /etc/apt/sources.list.d/dbeaver.list
sudo apt-get update && sudo apt-get install dbeaver-ce
Other Misc. Apps
Anki - powerful, intelligent flashcards
sudo apt install libxcb-xinerama0 libxcb-cursor0 libnss3 mplayer
anki_url="https://github.com/ankitects/anki/releases/download/25.09/anki-launcher-25.09-linux.tar.zst"
curl -OL "$anki_url"
mkdir -p ~/.local/share/anki
tar --use-compress-program=unzstd -xf "${anki_url##*/}" -C ~/.local/share/anki --strip-components=1
ln -s ~/.local/share/anki/anki ~/.local/bin/anki
echo 'export ANKI_WAYLAND=1' >> ~/.bashrc
cp ~/.local/share/anki/anki.desktop ~/.local/share/applications/
sed -i "s|^Exec=.*|Exec=env ANKI_WAYLAND=1 ${HOME}/.local/share/anki/anki %f|" ${HOME}/.local/share/applications/anki.desktop
sed -i "s|^TryExec=.*|TryExec=${HOME}/.local/share/anki/anki|" ${HOME}/.local/share/applications/anki.desktop
sed -i "s|^Icon=.*|Icon=${HOME}/.local/share/anki/anki.png|" ${HOME}/.local/share/applications/anki.desktop
Will need to logout of session and back in before using.
HyperTTS - In Anki, click Tools -> Add-ons, then click Get Add-ons. Type in the addon number: 111623432. After installation, restart Anki. Go to to Tools -> HyperTTS: Services Configuration - Enable Free Services