Nordic Palette for your desktop.

For those who asked for pointers on arranging their GTK Desktop to Nordic colors, here are my recommendations. If you are unfamiliar with the Nordic Palette here is information on its specification.

Obviously, there are many, many options available to you. I will only discuss those I use. Be advised, I am running dual window managers from within a single user space. I am NOT running a complete desktop environment (DE) such as xfce, mate etc. One additional note, I do not really care whether or not QT apps respect my theming. That is a topic for another posting.

Here is the required scrot (proof of existence):

i3wm (not gaps), rofi, conkybar, conky(2), st (terminal), Nordic Palette on MX21(b2) running Debian Bullseye

The GUI tool I use to make modifications on my wms (dwm & i3wm) is ‘lxappearance’. In order to use this to set root/sudo user application settings as well as normal user themes you should the following (from the command line). For a personal user space run:

$ lxappearance

For root/ user apps run:

$ sudo lxappearance

If you do not see your preferred theme options when running sudo that means you have not installed your themes “system-wide”.

Here are the themes I use:

Other tools that I use which offer plugin themes that adhere to the Nordic palette include:

  • Geany
  • Mousepad
  • Firefox
  • Thunderbird

In dwm & i3wm, I use the Nordic palette for st (terminal). The config.h settings/code for the Nordic color palette follows:

/* Terminal colors (16 first used in escape sequence) */
static const char *colorname[] = {
/* 8 normal colors */
"#3b4252", /* black */
"#bf616a", /* red */
"#a3be8c", /* green */
"#ebcb8b", /* yellow */
"#81a1c1", /* blue */
"#b48ead", /* magenta */
"#88c0d0", /* cyan */
"#e5e9f0", /* white */

/* 8 bright colors */
"#4c566a", /* black */
"#bf616a", /* red */
"#a3be8c", /* green */
"#ebcb8b", /* yellow */
"#81a1c1", /* blue */
"#b48ead", /* magenta */
"#8fbcbb", /* cyan */
"#eceff4", /* white */

[255] = 0,

/* more colors can be added after 255 to use with DefaultXX */
"#f0c674", /*256 cursor*/
"#555555", /*257 rev cursor*/
"#2e3440", /* background */
"#d8dee9", /* foreground */
};

Additionally, I modified a rofi template from Primetoxinz to adhere to the Nordic palette:

/**
 * Author: Primetoxinz & ManyRoads
 */
* {
    text-color:             #E5E9F0;
    background-color:       #4C566A;
    lightbg:                #434C5E;
    red:                    #BF616A;
    purple:                 #B48EAD; 
    blue:                   #81A1C1; 
    foreground:             #ECEFF4;
    background:             #434C5E;
    width:                  480;
    lines:                  15;

    selected-normal-foreground:  @foreground;
    normal-foreground:           @foreground;
    alternate-normal-background: @background;
    selected-urgent-foreground:  @foreground;
    urgent-foreground:           @foreground;
    alternate-urgent-background: @background;
    active-foreground:           @foreground;
    selected-active-foreground:  @foreground;
    alternate-normal-foreground: @foreground;
    alternate-active-background: @blue;
    bordercolor:                 @foreground;
    normal-background:           @background;
    selected-normal-background:  @blue;
    separatorcolor:              @purple;
    spacing:                     5;
    urgent-background:           @red;
    alternate-urgent-foreground: @foreground;
    selected-urgent-background:  @red;
    alternate-active-foreground: @foreground;
    selected-active-background:  @blue;
    active-background:           @purple;
}
window {
    border:     2;
    text-color: @foreground;
    background-color: rgba ( 0, 0, 0, 0 % );
    padding:    15;
    text-color: @bordercolor;
    background-color: @background;
}
mainbox {
    border:  2;
    padding: 10;
}
message {
    border:     1px dash 0px 0px ;
    text-color: @separatorcolor;
    padding:    2px 2px 2px ;
}
textbox {
    text-color: @foreground;
}
listview {
    fixed-height: 0;
    border:       2px 0px 0px ;
    padding:      2px 2px 2px ;
    text-color: @separatorcolor;
}
element {
    border: 0;
}
element-text {
    background-color: inherit;
    text-color:       inherit;
}
element.normal.normal {
    text-color: @normal-foreground;
    background-color: @normal-background;
}
element.normal.urgent {
    text-color: @urgent-foreground;
    background-color: @urgent-background;
}
element.normal.active {
    text-color: @active-foreground;
    background-color: @active-background;
}
element.selected.normal {
    text-color: @selected-normal-foreground;
    background-color: @selected-normal-background;
}
element.selected.urgent {
    text-color: @selected-urgent-foreground;
    background-color: @selected-urgent-background;
}
element.selected.active {
    text-color: @selected-active-foreground;
    background-color: @selected-active-background;
}
element.alternate.normal {
    text-color: @alternate-normal-foreground;
    background-color: @alternate-normal-background;
}
element.alternate.urgent {
    text-color: @alternate-urgent-foreground;
    background-color: @alternate-urgent-background;
}
element.alternate.active {
    text-color: @alternate-active-foreground;
    background-color: @alternate-active-background;
}
mode-switcher {
    border: 1px dash 0px 0px ;
}
button selected {
    text-color: @selected-normal-foreground;
    background-color: @selected-normal-background;
}
inputbar {
    spacing: 0;
    border: 0px ;
}
button normal {
    text-color: @foreground;
}

inputbar {
    children:   [ prompt,textbox-prompt-colon,entry,case-indicator ];
}
textbox-prompt-colon {
    expand:     false;
    str:        ":";
    margin:     0px 0.3em 0em 0em ;
    text-color: @normal-foreground;
}

I, also, have set Nordic colors in .Xresources for use on xterm & urxvt:

! Nordic Color scheme
#define nord0 #2E3440
#define nord1 #3B4252
#define nord2 #434C5E
#define nord3 #4C566A
#define nord4 #D8DEE9
#define nord5 #E5E9F0
#define nord6 #ECEFF4
#define nord7 #8FBCBB
#define nord8 #88C0D0
#define nord9 #81A1C1
#define nord10 #5E81AC
#define nord11 #BF616A
#define nord12 #D08770
#define nord13 #EBCB8B
#define nord14 #A3BE8C
#define nord15 #B48EAD

*.foreground: nord4
*.background: nord0
*.cursorColor: nord4
*fading: 35
*fadeColor: nord3

*.color0: nord1
*.color1: nord11
*.color2: nord14
*.color3: nord13
*.color4: nord9
*.color5: nord15
*.color6: nord8
*.color7: nord5
*.color8: nord3
*.color9: nord11
*.color10: nord14
*.color11: nord13
*.color12: nord9
*.color13: nord15
*.color14: nord7
*.color15: nord6

! dmenu settings

dmenu.selforeground: #ECEFF4
dmenu.background: #2E3440
dmenu.selbackground: #4C566A
dmenu.foreground: #ECEFF4
dmenu.font: "DejaVu Sans Mono:size=11.5:antialias=true"

! URxvt Settings
URxvt.font: xft:DejaVu Sans Mono:size=11.5:antialias=true
URxvt.boldFont: xft:DejaVu Sans Mono:bold:size=11.5:antialias=true
urxvt*scrollBar: false
urxvt*mouseWheelScrollPage: true
urxvt*cursorBlink: true
urxvt*saveLines: 5000
urxvt*internalBorder: 15
urxvt*geometry: 90x32
! Setting transparency and background
URxvt*depth: 32
URxvt.background: [90]#3B4252

! Normal copy-paste keybindings ( ctrl-shift c/v )
urxvt.iso14755: false
urxvt.keysym.Shift-Control-V: eval:paste_clipboard
urxvt.keysym.Shift-Control-C: eval:selection_to_clipboard
!xterm escape codes, word by word movement
urxvt.keysym.Control-Left: \033[1;5D
urxvt.keysym.Shift-Control-Left: \033[1;6D
urxvt.keysym.Control-Right: \033[1;5C
urxvt.keysym.Shift-Control-Right: \033[1;6C
urxvt.keysym.Control-Up: \033[1;5A
urxvt.keysym.Shift-Control-Up: \033[1;6A
urxvt.keysym.Control-Down: \033[1;5B
urxvt.keysym.Shift-Control-Down: \033[1;6B

! Xterm Settings
xterm*font: xft:DejaVu Sans Mono:size=11.5:antialias=true
xterm*geometry: 90x32
xterm*mouseWheelScrollPage: true
xterm*cursorBlink: true
xterm*saveLines: 5000
xterm*internalBorder: 15

 

All in all, this provides are pretty consistent Nordic palette for my two favorite wms (dwm & i3wm: non-gaps). These identical settings work for me on both arch & Debian based distros.

Remember, like with all of my work, I am able to provide the following assurance(s):
  • It is almost certainly going to work until it breaks; although I have to admit it may never work and that would be sad.
  • When/if it does break, you may keep all of the pieces.
  • If you find my materials helpful, both you & I will be happy, at least for a little while.
  • My advice is worth every penny you paid for it!