Awesome Open Source
Awesome Open Source

Spaceduck 🚀🦆

Stars Fork MIT license Code Size Made with Neovim :)

Spaceduck Logo of duck in an astronaut uniform holding computer: credit to Lexi @kalrita_lw Screenshot of terminal with vim spaceduck theme installed

Inspiration 💭

This theme was inspired from my incessant desire to feel like I'm in space when I stare at a computer. "Spaceduck" takes its name from my love of duck dodgers as a kid.

If it looks ugly it's because I don't know what I'm doing pls help. If it's the sexiest thing you've ever seen, well then uhm.. you're welcome 😎

NOTE: This repo hosts the Vim/Neovim spaceduck theme, to install other ports look for the other ports below.

Colors Palette 🎨

Base Colors

Note: The Syntax color ID's are not an exhaustive & complete list.

Color Picker Boxes Palette Hex HSV/HSB RGB cterm/256 SYN ID
Red Color Red #e33400 14,100,89 227, 52, 0 166 Error, Ignore
Orange Color Orange #e39400 39,100,89 227, 148, 0 172 Exception, Keyword, SpecialChar
Green Color Green #5ccc96 151,55,80 92, 204, 150 78 Statement, Underlined, Function, Include, Conditonal
Yellow Color Yellow #f2ce00 51,100,95 242, 206, 0 220 Constant, Boolean, Character, Float, Number
Purple Color Purple #b3a1e6 256,30,90 179, 161, 230 146 PreProc, Special, Tag, Debug, StorageClass
Purple2 Color Purple2 #7a5ccc 256,55,80 122, 92, 204 98 Title, Define, Macro, Define, Precondit, (Operator)
Dark Purple Color Dark Purple #30365F 232, 49, 37 48, 54, 95 237 Comment, LineNR, MatchParen, EndOfBuffer, Pmenu, IncSearch
Dark Purple2 Color Dark Purple2 #686f9a 232,32,60 104, 111, 154 60 Todo, PmenuSbar, Conceal, Search
Cyan Color Cyan #00a3cc 192,100,80 0, 163, 204 38 Identifier, String, Structure, Typedef
Magenta Color Magenta #ce6f8f 340,46,81 206, 111, 143 168 Type, Delimeter, Operator

Special Colors

Color Picker Boxes Palette Hex HSV/HSB RGB cterm/256 SYN ID
Background Color Background #0f111b 230,44,11 15, 17, 27 233 Background
Foreground Color Foreground #ecf0c1 65,20,94 236, 240, 193 255 Foregrond, Delimiter
Visual Selection Color Visual Selection #1b1c36 238, 50, 21 27, 28, 54 234 Visual
Cursor Line Color Cursor Line #16172d 237,51,18 22, 23, 45 234 CursorLine

Coloration Colors

Color Picker Boxes Palette Hex HSV/HSB RGB cterm/256 SYN ID
Grey Color Grey #818596 229,14,59 129, 133, 150 102 Cursor, Tabline
Grey 2 Color Grey 2 #c1c3cc 229,5,80 193, 195, 204 251 TabLineSel
Pure White Color Pure White #ffffff 0,0,100 255, 255, 255 15 Search, Todo
Pure Black Color Pure Black #000000 0,0,0 0, 0, 0 0 VertSplit, TabLine

Current Language Support

Basically languages I looked at with my eyes to make sure they didn't look like poop.

Languages:

Note: if something looks off please submit an issue with a screenshot

  • C, C++, fortran, haskell, html, java, javascript, markdown, php, python, ruby, sql, LaTeX, typescript

Plugins:

Install 💾

If using Vim/Neovim I recommend installing the vim-polyglot plugin for improved syntax highlighting:

Plug 'sheerun/vim-polyglot'

Vim and Neovim

This repo hosts the Vim/Neovim color scheme.

Install the plugin with whatever plugin manager you use:

Plug 'pineapplegiant/spaceduck', { 'branch': 'main' }

And add this to your vimrc/init.vim configuration file:

    if exists('+termguicolors')
      let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
      let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
      set termguicolors
    endif

   colorscheme spaceduck

Or manually add the color theme to your 'runtimepath' for the file.

:h colors

  let g:airline_theme = 'spaceduck'
lightline normal mode screenshot lightline insert mode screenshot lightline visual mode screenshot lightline replace mode screenshot
    let g:lightline = {
          \ 'colorscheme': 'spaceduck',
          \ }

Don't be afraid of the vim documentation either for more information, like for manual installs! :h colorscheme

lualine normal mode screenshot lualine insert mode screenshot lualine visual mode screenshot lualine replace mode screenshot

You only really need 'theme': 'spaceduck', but this is what I have in my vimrc:

  let g:lualine = {
      \'options' : {
      \  'theme' : 'spaceduck',
      \  'section_separators' : ['', ''],
      \  'component_separators' : ['', ''],
      \  'icons_enabled' : v:true,
      \},
      \'sections' : {
      \  'lualine_a' : [ ['mode', {'upper': v:true,},], ],
      \  'lualine_b' : [ ['branch', {'icon': '',}, ], ],
      \  'lualine_c' : [ ['filename', {'file_status': v:true,},], ],
      \  'lualine_x' : [ 'encoding', 'fileformat', 'filetype' ],
      \  'lualine_y' : [ 'progress' ],
      \  'lualine_z' : [ 'location'  ],
      \},
      \'inactive_sections' : {
      \  'lualine_a' : [  ],
      \  'lualine_b' : [  ],
      \  'lualine_c' : [ 'filename' ],
      \  'lualine_x' : [ 'location' ],
      \  'lualine_y' : [  ],
      \  'lualine_z' : [  ],
      \},
      \'extensions' : [ 'fzf' ],
      \}

  lua require("lualine").setup()

Other Spaceduck Ports

Terminal

Terminal install can be found at this repo: https://github.com/pineapplegiant/spaceduck-terminal

VSCode

Vscode theme can be found at this repo: https://github.com/tathran/spaceduck-vscode

Emacs

Emacs theme can be found at this repo: https://github.com/tathran/spaceduck-emacs

Slack

  • Go to User Menu > Preferences > Sidebar Theme
  • In the bottom of the window, look for a "customize your theme and share it with others" link
  • Copy and paste the values below:
    • #0f111b,#7A5CCC,#7A5CCC,#ffffff,#16172D,#ecf0c1,#5CCC96,#00A3CC,#0f111b,#ecf0c1

Tmux

Checkout some tmux config inspiration here at the terminal repo. Or if you're in a rush you can use this basic one:

  # Basic color support setting
  set-option -g default-terminal "screen-256color"

  # Default bar color
  set-option -g status-style bg='#1b1c36',fg='#ecf0c1'

  # Active Pane
  set -g pane-active-border-style "fg=#5ccc96"

  # Inactive Pane
  set -g pane-border-style "fg=#686f9a"

  # Active window
  set-option -g window-status-current-style bg='#686f9a',fg='#ffffff'

  # Message
  set-option -g message-style bg='#686f9a',fg='#ecf0c1'
  set-option -g message-command-style bg='#686f9a',fg='#ecf0c1'

  # When Commands are run
  set -g message-style "fg=#0f111b,bg=#686f9a"

Troubleshooting 🔧

True color

Make sure you are using a terminal emulator that supports truecolor.

Read more about truecolor support here.

Colors don't look right

If you are running vim within tmux, you may run into some truecolor issues.

To fix, add this to you tmux.conf:

    set -g terminal-overrides ',xterm-256color:Tc'
    set -g default-terminal "tmux-256color"
    set -as terminal-overrides ',xterm*:sitm=\E[3m'

And in your .bash_profile or .zshrc:

  export TERM="xterm-256color"

Screenshots 📸

COC-Explorer, HTML, Vista Screenshot of spaceduck theme using HTML

Credit to u/addisonbean for Arch Desktop Inspo Screenshot of spaceduck theme on Arch

Credit to u/malthusthomas for SPT on terminal Screenshot of spaceduck theme on SPT

Credits 💳

Contribute 🙏

If you'd like to contribute please reach out! I don't know what I'm doing. Try to send a screenshot when posting issues as well. If you port it to whatever you're using, send me a link so I can link it here!

Vim Estilo

I currently use estilo to manage colors for Vim/Neovim, please install the dependencies to compile the colors specified in the YAML into the color scheme.

To find the current syntax element under the cursor, I use this mapping which maps Ctrl+a to find the id under the cursor:

" Show syntax color highlighting groups for word under cursor
    nmap <c-a> :call <SID>SynStack()<CR>
    function! <SID>SynStack()
      if !exists("*synstack")
        return
      endif
      echo map(synstack(line('.'), col('.')), 'synIDattr(v:val, "name")')
    endfunction

This will show you the syntax ID to where we can then modify the color of that word.

Testing colors look good

  • To test that colors look good, you can run: :source $VIMRUNTIME/syntax/hitest.vim this will open a buffer of all color groups defined!
  • Check current defined colors in buffer :highlight or :hi for short.
  • Looking for more syntax elements? Check out $VIMRUNTIME/syntax/ for all of vim's language support.

TODO

Check out my Todo list


Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
vim-script (1,364
vim (908
theme (860
neovim (386
vim-plugin (214
color-scheme (144
macosx (115
nvim (86
iterm2 (63
unicorns (17