- OS: Ubuntu
- Desktop environment: Gnome
- Terminal emulator: kitty
- Terminal shell: zsh with Oh My Zsh
- Text editor: Neovim
Tutorial for installing Gnome shell extensions here.
- Blur my Shell: Adds a blur look to different parts of the GNOME Shell, including the top panel, dash, and overview.
- Rounded Window Corners: Add rounded corners for all windows
- Unite: Makes a few layout tweaks to the top panel and removes window decorations to make it look like Ubuntu Unity Shell.
Installation instructions here.
My configuration files can be found here (.config/kitty
).
- Colour theme: Based on Tokyo Night, with some minor changes
- Font: Caskaydia Cove (patched font for Cascadia Code)
The keyboard shortcuts are mostly based on the default Gnome Terminal shortcuts, with a few changes. The configuration file can be found here (.config/kitty/shortcuts.conf
).
Copy/paste
Action | Shortcut |
---|---|
Copy to clipboard | ctrl + shift + c |
Paste from clipboard | ctrl + shift + v |
Debugging
Action | Shortcut |
---|---|
Open debug config | ctrl + shift + f6 |
Layouts
Action | Shortcut |
---|---|
Rotate to next layout | ctrl + shift + r |
Miscellaneous
Action | Shortcut |
---|---|
Show kitty documentation | ctrl + shift + f1 |
Edit kitty config file | ctrl + shift + f2 |
(Re)load kitty config file | ctrl + shift + f5 |
Tab Management
Action | Shortcut |
---|---|
Switch to tab 1 | ctrl + alt + 1 |
Switch to tab 2 | ctrl + alt + 2 |
Switch to tab 3 | ctrl + alt + 3 |
Switch to tab 4 | ctrl + alt + 4 |
Switch to tab 5 | ctrl + alt + 5 |
Switch to tab 6 | ctrl + alt + 6 |
Switch to tab 7 | ctrl + alt + 7 |
Switch to tab 8 | ctrl + alt + 8 |
Switch to tab 9 | ctrl + alt + 9 |
Switch to tab 10 | ctrl + alt + 0 |
Close current tab | ctrl + shift + q |
Move current tab backward | ctrl + shift + , |
Move current tab forward | ctrl + shift + . |
Open a new tab (in the current directory) | ctrl + shift + t |
Switch to the next tab | ctrl + tab |
Switch to the previous tab | ctrl + shift + tab |
Window Management
Action | Shortcut |
---|---|
Switch to window 1 | ctrl + shift + 1 |
Switch to window 2 | ctrl + shift + 2 |
Switch to window 3 | ctrl + shift + 3 |
Switch to window 4 | ctrl + shift + 4 |
Switch to window 5 | ctrl + shift + 5 |
Switch to window 6 | ctrl + shift + 6 |
Switch to window 7 | ctrl + shift + 7 |
Switch to window 8 | ctrl + shift + 8 |
Switch to window 9 | ctrl + shift + 9 |
Switch to window 10 | ctrl + shift + 0 |
Decrease font size for all windows | ctrl + shift + minus |
Increase font size for all windows | ctrl + shift + plus |
Move current window backward | ctrl + shift + b |
Move current window forward | ctrl + shift + f |
Move current window to top | ctrl + shift + ` |
Switch to the next window | ctrl + shift + l |
Switch to the previous window | ctrl + shift + h |
Swap current window with another window (selected visually) | ctrl + shift + f8 |
Close current window | ctrl + shift + w |
Open a new window (in the current directory) | ctrl + shift + n |
Toggle fullscreen | f11 |
Make current window narrower | ctrl + shift + left |
Make current window wider | ctrl + shift + right |
Make current window taller | ctrl + shift + up |
Make current window shorter | ctrl + shift + down |
Reset window sizes to default | ctrl + shift + home |
- To make kitty the default terminal on Ubuntu (which lets you use
ctrl + alt + t
on Ubuntu to open kitty), run the following commands:and select kitty. Note that this assumessudo update-alternatives --install /usr/bin/x-terminal-emulator x-terminal-emulator `which kitty` 50 sudo update-alternatives --config x-terminal-emulator
kitty
is on your$PATH
. If you installed a pre-built binary ofkitty
using the default command,kitty
is installed to~/.local/kitty.app
on Linux, and you can add it to your path by e.g. adding a symlink for it in/usr/local/bin
, which is what I have done.
- Installation instructions for zsh here.
- Installation instructions for Oh My Zsh here. You'll need to have zsh installed first.
- Main config file for zsh is here (
.zshrc
). - Custom Oh My Zsh config is here (I use
$ZSH_CUSTOM = ~/.oh-my-zsh-custom
for my custom Oh My Zsh directory).
- Git: Provides some aliases and useful functions. Built-in to Oh My Zsh.
- zsh-autosuggestions: Suggests commands as you type based on history and completions.
- zsh-nvm: Set up nvm once and never touch it again. Has a lazy-load setting for nvm which is very useful.
- zsh-syntax-highlighting: Syntax highlighting for zsh.
- I use a custom theme with a pretty prompt that displays useful things like
- Git info (if in a Git repository)
- Conda environment (if one is active)
- Timestamp (I don't use this personally, but the option is there if you'd like to use it)
It can be found here (
/.oh-my-zsh-custom/themes/limao.zsh-theme
). You can enable/disable parts of the prompt to your liking, or add more parts.
Installation instructions here.
My configuration files can be found here (.config/nvim
). For compatibility's sake (and in the rare occasion where I do need to use regular vim), settings that are common to regular vim can be found in .vimrc
, and my Neovim config is set up to first run everything that is in .vimrc
.
- folke/lazy.nvim - A modern plugin manager for Neovim.
- averms/black-nvim - A Neovim plugin to format your code using Black.
- windwp/nvim-autopairs - autopairs for neovim written in lua
- lervag/vimtex - A modern Vim and neovim filetype plugin for LaTeX files.
- romgrk/barbar.nvim - The neovim tabline plugin.
- nvim-lualine/lualine.nvim - A blazing fast and easy to configure neovim statusline plugin written in pure lua.
- nvim-tree/nvim-tree.lua - A file explorer tree for neovim written in lua.
- hrsh7th/cmp-nvim-lsp - nvim-cmp source for neovim builtin LSP client.
- ray-x/lsp_signature.nvim - LSP signature hint as you type.
- VonHeikemen/lsp-zero.nvim - A starting point to setup some lsp related features in neovim.
- williamboman/mason.nvim - Portable package manager for Neovim that runs everywhere Neovim runs. Easily install and manage LSP servers, DAP servers, linters, and formatters.
- williamboman/mason-lspconfig.nvim - Extension to mason.nvim that makes it easier to use lspconfig with mason.nvim.
- folke/neodev.nvim - Neovim setup for init.lua and plugin development with full signature help, docs and completion for the nvim lua API.
- hrsh7th/nvim-cmp - A completion plugin for neovim coded in Lua.
- neovim/nvim-lspconfig - Quickstart configs for Nvim LSP.
- nvim-treesitter/nvim-treesitter - Nvim Treesitter configurations and abstraction layer.
- TokyoNight.nvim: Tokyo Night theme for Neovim.
- If you're using Wayland (like me), you might need to
apt install wl-clipboard
to get copy/paste with the system clipboard working in Neovim.