Skip to content

User Color Schemes

Create your own color schemes to personalize Noctalia with your favorite colors.


Create a folder for your scheme in ~/.config/noctalia/colorschemes/:

~/.config/noctalia/colorschemes/MyScheme/

Create a JSON file with the same name as your folder:

~/.config/noctalia/colorschemes/MyScheme/MyScheme.json

{
"dark": {
"mPrimary": "#a6e22e",
"mOnPrimary": "#272822",
"mSecondary": "#66d9ef",
"mOnSecondary": "#272822",
"mTertiary": "#f92672",
"mOnTertiary": "#272822",
"mError": "#f92672",
"mOnError": "#272822",
"mSurface": "#272822",
"mOnSurface": "#f8f8f2",
"mHover": "#3a3a32",
"mOnHover": "#f8f8f2",
"mSurfaceVariant": "#3e3d32",
"mOnSurfaceVariant": "#a6e22e",
"mOutline": "#75715e",
"mShadow": "#272822",
"terminal": {
"background": "#272822",
"foreground": "#f8f8f2",
"cursor": "#f8f8f2",
"cursorText": "#272822",
"selectionBackground": "#f8f8f2",
"selectionForeground": "#272822",
"normal": {
"black": "#272822",
"red": "#f92672",
"green": "#a6e22e",
"yellow": "#f4bf75",
"blue": "#66d9ef",
"magenta": "#ae81ff",
"cyan": "#a1efe4",
"white": "#f8f8f2"
},
"bright": {
"black": "#75715e",
"red": "#f92672",
"green": "#a6e22e",
"yellow": "#f4bf75",
"blue": "#66d9ef",
"magenta": "#ae81ff",
"cyan": "#a1efe4",
"white": "#f9f8f5"
}
}
},
"light": {
"mPrimary": "#a6e22e",
"mOnPrimary": "#f8f8f2",
"mSecondary": "#66d9ef",
"mOnSecondary": "#f8f8f2",
"mTertiary": "#f92672",
"mOnTertiary": "#f8f8f2",
"mError": "#f92672",
"mOnError": "#f8f8f2",
"mSurface": "#f8f8f2",
"mOnSurface": "#272822",
"mHover": "#e6e1dc",
"mOnHover": "#272822",
"mSurfaceVariant": "#e6e1dc",
"mOnSurfaceVariant": "#272822",
"mOutline": "#a6e22e",
"mShadow": "#d8d8d8",
"terminal": {
"background": "#f8f8f2",
"foreground": "#272822",
"cursor": "#272822",
"cursorText": "#f8f8f2",
"selectionBackground": "#272822",
"selectionForeground": "#f8f8f2",
"normal": {
"black": "#f8f8f2",
"red": "#f92672",
"green": "#a6e22e",
"yellow": "#f4bf75",
"blue": "#66d9ef",
"magenta": "#ae81ff",
"cyan": "#a1efe4",
"white": "#272822"
},
"bright": {
"black": "#d8d8d2",
"red": "#f92672",
"green": "#a6e22e",
"yellow": "#f4bf75",
"blue": "#66d9ef",
"magenta": "#ae81ff",
"cyan": "#a1efe4",
"white": "#1e1e19"
}
}
}
}
  1. Restart Noctalia to load the new scheme
  2. Open Settings → Color Scheme
  3. Select your scheme from the list

Each scheme needs both dark and light variants with these colors:

PropertyDescription
mPrimaryPrimary accent (buttons, links, highlights)
mOnPrimaryText/icons on primary surfaces
mSecondarySecondary accent color
mOnSecondaryText/icons on secondary surfaces
mTertiaryTertiary accent color
mOnTertiaryText/icons on tertiary surfaces
mErrorError/warning color
mOnErrorText/icons on error surfaces
mSurfaceMain background color
mOnSurfacePrimary text color
mHoverHover state background
mOnHoverText on hover surfaces
mSurfaceVariantSecondary background (cards, panels)
mOnSurfaceVariantText on surface variants
mOutlineBorders and dividers
mShadowShadow color

The terminal section defines colors for terminal emulators (Foot, Ghostty, Kitty, Alacritty, Wezterm):

PropertyDescription
backgroundTerminal background
foregroundDefault text color
cursorCursor color
cursorTextText under cursor
selectionBackgroundSelection highlight
selectionForegroundSelected text color
normalNormal colors
brightBright variants of the normal colors

  • Start simple - Pick 2-3 core colors that define your scheme
  • Ensure contrast - Text should be readable on all backgrounds
  • Test both modes - Dark and light variants should both work well

Popular themes like Dracula, Nord, or Catppuccin can be adapted:

  1. Find the theme’s color palette
  2. Map colors to Noctalia’s properties
  3. Adjust for good contrast

Want to share your color scheme with the community?

Submit it to the noctalia-colorschemes repository!


IssueSolution
Scheme not appearingCheck folder/file naming match exactly
Colors not applyingValidate JSON syntax
Poor contrastUse contrast checker tools
Terminal colors wrongVerify all normal and bright colors are defined