3 minutes
kitty + zsh + powerlevel10k = ✨ aesthetics ✨
Who doesn’t like a good looking terminal and useful layouts and keymaps? This has always been my goal since I started using linux as main OS.
I have used lots of different terminals, plugins and settings over the years but I think now I achieved the glory with my current setup:
Let’s have a look to the configuration.
What do I use?
- Terminal: Kitty
- Shell:
zsh
- zsh config management: Oh my Zsh!
- zsh theme: powerlevel10k
- editor: neovim
Configuration
Terminal
To achieve a clean look in the terminal, I changed the opacity of kitty, removed the window title bar, and changed margins. Here the configuration needed:
background_opacity 0.76
draw_minimal_borders yes
window_padding_width 2
window_border_width 0
hide_window_decorations yes
titlebar-only yes
active_border_color none
I have also added changes for the tabs bar in order to make it look minimalist:
tab_bar_edge top
tab_bar_background none
tab_bar_style powerline
tab_powerline_style slanted
tab_title_template "{fmt.fg.c2c2c2}{title}"
active_tab_title_template "{fmt.fg._fff}{title}"
active_tab_foreground #fff
active_tab_font_style bold-italic
active_tab_background #8631B4
inactive_tab_foreground #c2c2c2
inactive_tab_background #8631B4
In order to move quick between splits I added the following mappings:
map cmd+shift+up neighboring_window up
map cmd+shift+left neighboring_window left
map cmd+shift+right neighboring_window right
map cmd+shift+down neighboring_window down
powerlevel10k
There is not much to mention here since I have used the powerlevel10k script to configure it.
Once you install powerlevel10k it should init the configuration wizard. If you want to re-configure
do so by running p10k configure
in your terminal.
You can check my powerlevel10k config file here.
neovim
Plugins:
In this case, I got rid of many highlights background colors
highlight LineNr ctermbg=none
highlight Normal ctermbg=none
highlight NonText ctermbg=none
highlight SignColumn ctermbg=none
highlight VertSplit ctermbg=none ctermfg=98 cterm=none
I have also setup a color column to show a visual limit at 100 chars
set colorcolumn=100
highlight ColorColumn ctermbg=93
My vim-airline config goes like this:
let g:airline_theme='selenized_bw'
" Show git branch
let g:airline#extensions#branch#enabled=1
let g:airline#extensions#hunks#enabled=0
let g:airline_powerline_fonts=1
let g:airline_detect_spell=0
" Short version for modes
let g:airline_mode_map = {
\ '__' : '-',
\ 'c' : 'C',
\ 'i' : 'I',
\ 'ic' : 'I',
\ 'ix' : 'I',
\ 'n' : 'N',
\ 'multi' : 'M',
\ 'ni' : 'N',
\ 'no' : 'N',
\ 'R' : 'R',
\ 'Rv' : 'R',
\ 's' : 'S',
\ 'S' : 'S',
\ '' : 'S',
\ 't' : 'T',
\ 'v' : 'V',
\ 'V' : 'V',
\ '' : 'V',
\ }
That’s it! The setup is fairly simple and the results are quite good.
You can have a look at all my config and dotfiles in here.
PS: this article has its source on github. I’m using a github action to publish it to different platforms. Read more {{#if medium}} here {{/if}} {{#if devto}} here {{/if}}
Related articles:
- Bash + GNU Stow: take a walk while your new macbook is being set up
- Kitty configuration for the iTerm user
- Vim: Delightful settings and plugins
👽