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://awesomeopensource.com/project/pineapplegiant/spaceduck-terminal

VSCode

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

Emacs

Emacs theme can be found at this repo: https://awesomeopensource.com/project/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



Alternative Project Comparisons
Related Awesome Lists
Top Programming Languages
Top Projects

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Theme (43,503
Vim (18,653
Terminal (17,837
Vim Script (11,513
Neovim (4,038
Tmux (3,880
Color Scheme (2,996
Vim Plugin (2,487
Iterm (1,893
Nvim (1,477
Rainbow (1,255
Airline (1,133
Ducks (73
Dragon (64
Kittens (23
Drip (18
Puppies (9