mirror of
https://github.com/elwrcl/copnix.git
synced 2026-10-31 06:18:03 +03:00
theme/QoL
This commit is contained in:
22 files changed
+1022
-425
No files matched your search
Generated
+37
@@ -658,6 +658,8 @@
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"noctalia": "noctalia",
|
||||
"nyi": "nyi",
|
||||
"theme-assets": "theme-assets",
|
||||
"themes": "themes",
|
||||
"zen-browser": "zen-browser"
|
||||
}
|
||||
},
|
||||
@@ -676,6 +678,41 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"theme-assets": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1787833947,
|
||||
"narHash": "sha256-Zi1xOHjpDbchysJijm4kuII/cdXtI59NCh/Nwwo/iVw=",
|
||||
"owner": "elwrcl",
|
||||
"repo": "copland-theme",
|
||||
"rev": "ec9ffc0afa6bf6293070a44d16b7d8f022f42b65",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "elwrcl",
|
||||
"repo": "copland-theme",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"themes": {
|
||||
"locked": {
|
||||
"lastModified": 1770999457,
|
||||
"narHash": "sha256-018znIdT/TBFsNcDYv6l4NCnK96gDiJMODoIGqnVn7o=",
|
||||
"owner": "RGBCube",
|
||||
"repo": "ThemeNix",
|
||||
"rev": "3779a7ba289d88ea092063e8bc512cfe80f293ba",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "RGBCube",
|
||||
"repo": "ThemeNix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"treefmt-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
|
||||
@@ -30,25 +30,30 @@ in
|
||||
config.flake.homeModules.home-ghostty
|
||||
config.flake.homeModules.home-nushell
|
||||
config.flake.homeModules.home-nushell-bash-compat
|
||||
config.flake.homeModules.home-nushell-colors
|
||||
config.flake.homeModules.home-nushell-completions
|
||||
config.flake.homeModules.home-nushell-prompt
|
||||
config.flake.homeModules.home-nushell-commandline-copy
|
||||
config.flake.homeModules.home-nushell-keybinds
|
||||
config.flake.homeModules.home-nushell-last
|
||||
config.flake.homeModules.home-nushell-editor
|
||||
config.flake.homeModules.home-nushell-greeting
|
||||
config.flake.homeModules.home-helix
|
||||
config.flake.homeModules.home-helix-theme
|
||||
config.flake.homeModules.home-helix-keys
|
||||
config.flake.homeModules.home-helix-languages
|
||||
config.flake.homeModules.home-helix-language-servers
|
||||
config.flake.homeModules.home-zellij
|
||||
config.flake.homeModules.home-zellij-keybinds
|
||||
config.flake.homeModules.home-zellij-theme
|
||||
config.flake.homeModules.home-zellij-layout-ide
|
||||
config.flake.homeModules.home-zellij-ide-command
|
||||
# theme: one palette, one module per app it feeds
|
||||
config.flake.homeModules.home-theme
|
||||
config.flake.homeModules.home-theme-kemuri
|
||||
config.flake.homeModules.home-theme-gtk
|
||||
config.flake.homeModules.home-theme-qt
|
||||
config.flake.homeModules.home-theme-ghostty
|
||||
config.flake.homeModules.home-theme-helix
|
||||
config.flake.homeModules.home-theme-zellij
|
||||
config.flake.homeModules.home-theme-nushell
|
||||
config.flake.homeModules.home-direnv
|
||||
config.flake.homeModules.home-jujutsu
|
||||
config.flake.homeModules.home-jujutsu-difftastic
|
||||
@@ -57,12 +62,11 @@ in
|
||||
config.flake.homeModules.home-gh
|
||||
config.flake.homeModules.home-radicle
|
||||
config.flake.homeModules.home-zsh
|
||||
config.flake.homeModules.home-zsh-nu-handoff
|
||||
config.flake.homeModules.home-shell-tools
|
||||
config.flake.homeModules.home-session-vars
|
||||
config.flake.homeModules.home-cursor
|
||||
config.flake.homeModules.home-gtk
|
||||
config.flake.homeModules.home-icons
|
||||
config.flake.homeModules.home-qt
|
||||
config.flake.homeModules.home-browser-zen
|
||||
config.flake.homeModules.home-browser-helium
|
||||
config.flake.homeModules.home-mimeapps
|
||||
|
||||
@@ -29,11 +29,15 @@ in
|
||||
config.flake.homeModules.home-ghostty
|
||||
config.flake.homeModules.home-nushell
|
||||
config.flake.homeModules.home-nushell-bash-compat
|
||||
config.flake.homeModules.home-nushell-colors
|
||||
config.flake.homeModules.home-nushell-completions
|
||||
config.flake.homeModules.home-nushell-prompt
|
||||
config.flake.homeModules.home-nushell-commandline-copy
|
||||
config.flake.homeModules.home-nushell-last
|
||||
# theme: one palette, one module per app it feeds
|
||||
config.flake.homeModules.home-theme
|
||||
config.flake.homeModules.home-theme-kemuri
|
||||
config.flake.homeModules.home-theme-ghostty
|
||||
config.flake.homeModules.home-theme-nushell
|
||||
config.flake.homeModules.home-direnv
|
||||
config.flake.homeModules.home-jujutsu
|
||||
config.flake.homeModules.home-jujutsu-difftastic
|
||||
|
||||
@@ -1,132 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
# this could be changed
|
||||
flake.homeModules.home-helix-theme =
|
||||
{ ... }:
|
||||
{
|
||||
programs.helix.themes.kanagawa-dragon-copnix = {
|
||||
inherits = "kanagawa-dragon";
|
||||
|
||||
palette = {
|
||||
copBg = "#090E13";
|
||||
copBgAlt = "#0E141B";
|
||||
copBgSoft = "#151B22";
|
||||
copSelect = "#22262D";
|
||||
copGutter = "#3A414B";
|
||||
copGray = "#5C6066";
|
||||
copFg = "#c5c9c7";
|
||||
copRed = "#c4746e";
|
||||
copRedBright = "#e46876";
|
||||
copGreen = "#8a9a7b";
|
||||
copYellow = "#c4b28a";
|
||||
copYellowBright = "#e6c384";
|
||||
copBlue = "#8ba4b0";
|
||||
copBlueBright = "#7fb4ca";
|
||||
copMagenta = "#a292a3";
|
||||
copCyan = "#8ea4a2";
|
||||
};
|
||||
|
||||
"ui.background" = {
|
||||
fg = "copFg";
|
||||
bg = "copBg";
|
||||
};
|
||||
"ui.text" = "copFg";
|
||||
"ui.window" = "copBgSoft";
|
||||
|
||||
"ui.gutter" = {
|
||||
bg = "copBg";
|
||||
};
|
||||
"ui.linenr" = {
|
||||
fg = "copGutter";
|
||||
bg = "copBg";
|
||||
};
|
||||
"ui.linenr.selected" = {
|
||||
fg = "copYellowBright";
|
||||
bg = "copBg";
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
|
||||
"ui.cursorline.primary" = {
|
||||
bg = "copBgAlt";
|
||||
};
|
||||
"ui.cursorline.secondary" = {
|
||||
bg = "copBgAlt";
|
||||
};
|
||||
|
||||
"ui.selection" = {
|
||||
bg = "copSelect";
|
||||
};
|
||||
"ui.selection.primary" = {
|
||||
bg = "#2A3038";
|
||||
};
|
||||
|
||||
"ui.statusline" = {
|
||||
fg = "copFg";
|
||||
bg = "copBgSoft";
|
||||
};
|
||||
"ui.statusline.inactive" = {
|
||||
fg = "copGray";
|
||||
bg = "copBgAlt";
|
||||
};
|
||||
"ui.statusline.normal" = {
|
||||
fg = "copBg";
|
||||
bg = "copBlueBright";
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"ui.statusline.insert" = {
|
||||
fg = "copBg";
|
||||
bg = "copGreen";
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"ui.statusline.select" = {
|
||||
fg = "copBg";
|
||||
bg = "copMagenta";
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
|
||||
"ui.bufferline" = {
|
||||
fg = "copGray";
|
||||
bg = "copBgAlt";
|
||||
};
|
||||
"ui.bufferline.active" = {
|
||||
fg = "copFg";
|
||||
bg = "copBgSoft";
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"ui.bufferline.background" = {
|
||||
bg = "copBg";
|
||||
};
|
||||
|
||||
"ui.popup" = {
|
||||
fg = "copFg";
|
||||
bg = "copBgSoft";
|
||||
};
|
||||
"ui.popup.info" = {
|
||||
fg = "copFg";
|
||||
bg = "copBgAlt";
|
||||
};
|
||||
"ui.menu" = {
|
||||
fg = "copFg";
|
||||
bg = "copBgSoft";
|
||||
};
|
||||
"ui.menu.selected" = {
|
||||
fg = "copBg";
|
||||
bg = "copBlueBright";
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"ui.help" = {
|
||||
fg = "copFg";
|
||||
bg = "copBgSoft";
|
||||
};
|
||||
|
||||
"ui.virtual.indent-guide" = "copGutter";
|
||||
"ui.virtual.ruler" = {
|
||||
bg = "copBgAlt";
|
||||
};
|
||||
"ui.virtual.whitespace" = "copGutter";
|
||||
"diff.plus" = "copGreen";
|
||||
"diff.minus" = "copRedBright";
|
||||
"diff.delta" = "copBlueBright";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -8,7 +8,7 @@
|
||||
defaultEditor = true;
|
||||
|
||||
settings = {
|
||||
theme = "kanagawa-dragon-copnix";
|
||||
theme = "kemuri-copnix";
|
||||
|
||||
editor = {
|
||||
line-number = "relative";
|
||||
|
||||
@@ -87,31 +87,7 @@
|
||||
mouse-scroll-multiplier = 2;
|
||||
shell-integration-features = "no-cursor,sudo,no-title";
|
||||
|
||||
palette = [
|
||||
"0=#090E13"
|
||||
"1=#c4746e"
|
||||
"2=#8a9a7b"
|
||||
"3=#c4b28a"
|
||||
"4=#8ba4b0"
|
||||
"5=#a292a3"
|
||||
"6=#8ea4a2"
|
||||
"7=#a4a7a4"
|
||||
"8=#5C6066"
|
||||
"9=#e46876"
|
||||
"10=#87a987"
|
||||
"11=#e6c384"
|
||||
"12=#7fb4ca"
|
||||
"13=#938aa9"
|
||||
"14=#7aa89f"
|
||||
"15=#c5c9c7"
|
||||
];
|
||||
|
||||
background = "#090E13";
|
||||
foreground = "#c5c9c7";
|
||||
cursor-color = "#c5c9c7";
|
||||
cursor-text = "#9cdef2";
|
||||
selection-background = "#22262D";
|
||||
selection-foreground = "#c5c9c7";
|
||||
# Colors live in home-theme-ghostty, driven by the active palette.
|
||||
cursor-style = "block";
|
||||
cursor-style-blink = true;
|
||||
adjust-cell-height = "35%";
|
||||
|
||||
@@ -1,83 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
flake.homeModules.home-qt =
|
||||
{ config, pkgs, ... }:
|
||||
let
|
||||
p = config.elars.theme.palette.withHashtag;
|
||||
active = builtins.concatStringsSep ", " [
|
||||
p.base05 p.base01 p.base02 p.base02 p.base00 p.base01
|
||||
p.base05 p.base07 p.base05 p.base01 p.base00 p.base00
|
||||
p.base06 p.base00 p.base0D p.base0E p.base02 p.base01
|
||||
p.base01 p.base05 p.base04
|
||||
];
|
||||
inactive = active;
|
||||
disabled = builtins.concatStringsSep ", " [
|
||||
p.base04 p.base01 p.base02 p.base02 p.base00 p.base01
|
||||
p.base04 p.base06 p.base04 p.base01 p.base00 p.base00
|
||||
p.base02 p.base04 p.base04 p.base04 p.base02 p.base01
|
||||
p.base01 p.base04 p.base03
|
||||
];
|
||||
|
||||
font = "JetBrainsMono Nerd Font,11,-1,5,50,0,0,0,0,0";
|
||||
in
|
||||
{
|
||||
qt = {
|
||||
enable = true;
|
||||
platformTheme.name = "qtct";
|
||||
style.name = "qtct";
|
||||
};
|
||||
|
||||
home.packages = [
|
||||
pkgs.qt5ct
|
||||
pkgs.qt6ct
|
||||
];
|
||||
|
||||
xdg.configFile."qt5ct/colors/kemuri.conf".text = ''
|
||||
[ColorScheme]
|
||||
active_colors=${active}
|
||||
inactive_colors=${inactive}
|
||||
disabled_colors=${disabled}
|
||||
'';
|
||||
xdg.configFile."qt6ct/colors/kemuri.conf".text = ''
|
||||
[ColorScheme]
|
||||
active_colors=${active}
|
||||
inactive_colors=${inactive}
|
||||
disabled_colors=${disabled}
|
||||
'';
|
||||
|
||||
xdg.configFile."qt5ct/qt5ct.conf".text = ''
|
||||
[Appearance]
|
||||
style=Fusion
|
||||
custom_palette=true
|
||||
color_scheme_path=${config.xdg.configHome}/qt5ct/colors/kemuri.conf
|
||||
standard_dialogs=default
|
||||
|
||||
[Fonts]
|
||||
fixed="${font}"
|
||||
general="${font}"
|
||||
'';
|
||||
xdg.configFile."qt6ct/qt6ct.conf".text = ''
|
||||
[Appearance]
|
||||
style=Fusion
|
||||
custom_palette=true
|
||||
color_scheme_path=${config.xdg.configHome}/qt6ct/colors/kemuri.conf
|
||||
standard_dialogs=default
|
||||
|
||||
[Fonts]
|
||||
fixed="${font}"
|
||||
general="${font}"
|
||||
'';
|
||||
|
||||
xdg.configFile."kdeglobals".text = ''
|
||||
[General]
|
||||
font=${font}
|
||||
fixed=${font}
|
||||
menuFont=${font}
|
||||
toolBarFont=${font}
|
||||
smallestReadableFont=JetBrainsMono Nerd Font,9,-1,5,50,0,0,0,0,0
|
||||
|
||||
[Icons]
|
||||
Theme=int_nord
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{ ... }:
|
||||
{
|
||||
flake.homeModules.home-zsh-nu-handoff =
|
||||
{ config, lib, ... }:
|
||||
let
|
||||
nu = lib.getExe config.programs.nushell.package;
|
||||
in
|
||||
{
|
||||
programs.zsh.initContent = lib.mkBefore ''
|
||||
if [[ -o interactive && -z "$NO_NU" && -z "$INSIDE_NU" ]]; then
|
||||
export INSIDE_NU=1
|
||||
exec ${nu}
|
||||
fi
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -70,8 +70,6 @@
|
||||
export MESA_SHADER_CACHE_MAX_SIZE=2G
|
||||
export MESA_SHADER_CACHE_DIR=/tmp/mesa_shader_cache
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
|
||||
/home/elars/.config/copetch/animated-copetch.sh
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
flake.homeModules.home-nushell-colors =
|
||||
{ pkgs, lib, ... }:
|
||||
let
|
||||
inherit (lib.meta) getExe;
|
||||
|
||||
lsColors = pkgs.runCommand "ls_colors.txt" { } ''
|
||||
${getExe pkgs.vivid} generate gruvbox-dark-hard > $out
|
||||
'';
|
||||
in
|
||||
{
|
||||
home.packages = [ pkgs.vivid ];
|
||||
|
||||
programs.nushell.extraConfig = ''
|
||||
$env.LS_COLORS = open --raw ${lsColors}
|
||||
|
||||
$env.config.color_config.row_index = "light_yellow_bold"
|
||||
$env.config.color_config.header = "light_yellow_bold"
|
||||
|
||||
$env.config.color_config.bool = {||
|
||||
if $in {
|
||||
"light_green_bold"
|
||||
} else {
|
||||
"light_red_bold"
|
||||
}
|
||||
}
|
||||
|
||||
$env.config.color_config.string = {||
|
||||
if $in =~ "^(#|0x)[a-fA-F0-9]+$" {
|
||||
$in | str replace "0x" "#"
|
||||
} else {
|
||||
"white"
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{ ... }:
|
||||
{
|
||||
flake.homeModules.home-nushell-greeting =
|
||||
{ config, lib, ... }:
|
||||
let
|
||||
nyi = lib.getExe config.programs.nyi.package;
|
||||
in
|
||||
{
|
||||
programs.nushell.extraConfig = ''
|
||||
if $nu.is-interactive and ($env.ZELLIJ? | is-empty) {
|
||||
^${nyi} --frames 60
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -124,10 +124,6 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($"($env.HOME)/.config/copetch/animated-copetch.sh" | path exists) {
|
||||
^$"($env.HOME)/.config/copetch/animated-copetch.sh"
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
{ ... }:
|
||||
{
|
||||
flake.homeModules.home-theme-ghostty =
|
||||
{ config, ... }:
|
||||
let
|
||||
p = config.elars.theme.palette.withHashtag;
|
||||
in
|
||||
{
|
||||
programs.ghostty.settings = {
|
||||
background = p.base00;
|
||||
foreground = p.base05;
|
||||
|
||||
cursor-color = p.accent;
|
||||
cursor-text = p.base00;
|
||||
|
||||
selection-background = p.base02;
|
||||
selection-foreground = p.base05;
|
||||
|
||||
palette = [
|
||||
"0=${p.base00}"
|
||||
"1=${p.base08}"
|
||||
"2=${p.base0B}"
|
||||
"3=${p.base0A}"
|
||||
"4=${p.base0D}"
|
||||
"5=${p.base0E}"
|
||||
"6=${p.base0C}"
|
||||
"7=${p.base05}"
|
||||
"8=${p.base03}"
|
||||
"9=${p.base08}"
|
||||
"10=${p.base0B}"
|
||||
"11=${p.base09}"
|
||||
"12=${p.base0D}"
|
||||
"13=${p.base0E}"
|
||||
"14=${p.base0C}"
|
||||
"15=${p.base07}"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{ ... }:
|
||||
{
|
||||
flake.homeModules.home-gtk =
|
||||
flake.homeModules.home-theme-gtk =
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
gtk = {
|
||||
@@ -0,0 +1,232 @@
|
||||
{ ... }:
|
||||
{
|
||||
flake.homeModules.home-theme-helix =
|
||||
{ config, ... }:
|
||||
let
|
||||
p = config.elars.theme.palette.withHashtag;
|
||||
in
|
||||
{
|
||||
programs.helix.themes.kemuri-copnix = {
|
||||
palette = {
|
||||
bg = p.base00;
|
||||
bgAlt = p.base01;
|
||||
bgSoft = p.base02;
|
||||
select = p.base02;
|
||||
selectPrimary = p.base03;
|
||||
gutter = p.base03;
|
||||
gray = p.base04;
|
||||
fg = p.base05;
|
||||
fgSoft = p.base06;
|
||||
fgBright = p.base07;
|
||||
red = p.base08;
|
||||
orange = p.base09;
|
||||
yellow = p.base0A;
|
||||
green = p.base0B;
|
||||
cyan = p.base0C;
|
||||
blue = p.base0D;
|
||||
magenta = p.base0E;
|
||||
brown = p.base0F;
|
||||
};
|
||||
|
||||
# ui
|
||||
"ui.background" = {
|
||||
fg = "fg";
|
||||
bg = "bg";
|
||||
};
|
||||
"ui.text" = "fg";
|
||||
"ui.text.focus" = {
|
||||
fg = "fgBright";
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"ui.window" = "bgSoft";
|
||||
"ui.cursor" = {
|
||||
fg = "bg";
|
||||
bg = "fgSoft";
|
||||
};
|
||||
"ui.cursor.primary" = {
|
||||
fg = "bg";
|
||||
bg = "fgBright";
|
||||
};
|
||||
"ui.cursor.match" = {
|
||||
fg = "orange";
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
|
||||
"ui.gutter" = {
|
||||
bg = "bg";
|
||||
};
|
||||
"ui.linenr" = {
|
||||
fg = "gutter";
|
||||
bg = "bg";
|
||||
};
|
||||
"ui.linenr.selected" = {
|
||||
fg = "orange";
|
||||
bg = "bg";
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
|
||||
"ui.cursorline.primary" = {
|
||||
bg = "bgAlt";
|
||||
};
|
||||
"ui.cursorline.secondary" = {
|
||||
bg = "bgAlt";
|
||||
};
|
||||
|
||||
"ui.selection" = {
|
||||
bg = "select";
|
||||
};
|
||||
"ui.selection.primary" = {
|
||||
bg = "selectPrimary";
|
||||
};
|
||||
|
||||
"ui.statusline" = {
|
||||
fg = "fg";
|
||||
bg = "bgSoft";
|
||||
};
|
||||
"ui.statusline.inactive" = {
|
||||
fg = "gray";
|
||||
bg = "bgAlt";
|
||||
};
|
||||
"ui.statusline.normal" = {
|
||||
fg = "bg";
|
||||
bg = "blue";
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"ui.statusline.insert" = {
|
||||
fg = "bg";
|
||||
bg = "green";
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"ui.statusline.select" = {
|
||||
fg = "bg";
|
||||
bg = "magenta";
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
|
||||
"ui.bufferline" = {
|
||||
fg = "gray";
|
||||
bg = "bgAlt";
|
||||
};
|
||||
"ui.bufferline.active" = {
|
||||
fg = "fg";
|
||||
bg = "bgSoft";
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"ui.bufferline.background" = {
|
||||
bg = "bg";
|
||||
};
|
||||
|
||||
"ui.popup" = {
|
||||
fg = "fg";
|
||||
bg = "bgSoft";
|
||||
};
|
||||
"ui.popup.info" = {
|
||||
fg = "fg";
|
||||
bg = "bgAlt";
|
||||
};
|
||||
"ui.menu" = {
|
||||
fg = "fg";
|
||||
bg = "bgSoft";
|
||||
};
|
||||
"ui.menu.selected" = {
|
||||
fg = "bg";
|
||||
bg = "fgSoft";
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"ui.help" = {
|
||||
fg = "fg";
|
||||
bg = "bgSoft";
|
||||
};
|
||||
"ui.virtual.indent-guide" = "gutter";
|
||||
"ui.virtual.ruler" = {
|
||||
bg = "bgAlt";
|
||||
};
|
||||
"ui.virtual.whitespace" = "gutter";
|
||||
"ui.virtual.inlay-hint" = "gray";
|
||||
|
||||
# syntax
|
||||
"comment" = {
|
||||
fg = "gray";
|
||||
modifiers = [ "italic" ];
|
||||
};
|
||||
"variable" = "fg";
|
||||
"variable.parameter" = "fgSoft";
|
||||
"variable.builtin" = "red";
|
||||
"variable.other.member" = "cyan";
|
||||
"constant" = "orange";
|
||||
"constant.numeric" = "orange";
|
||||
"constant.character.escape" = "magenta";
|
||||
"string" = "green";
|
||||
"string.regexp" = "cyan";
|
||||
"type" = "yellow";
|
||||
"type.builtin" = "yellow";
|
||||
"constructor" = "blue";
|
||||
"function" = "blue";
|
||||
"function.builtin" = "blue";
|
||||
"function.macro" = "magenta";
|
||||
"keyword" = {
|
||||
fg = "magenta";
|
||||
};
|
||||
"keyword.control" = "magenta";
|
||||
"keyword.directive" = "brown";
|
||||
"operator" = "fgSoft";
|
||||
"punctuation" = "gray";
|
||||
"punctuation.bracket" = "fgSoft";
|
||||
"label" = "magenta";
|
||||
"namespace" = "cyan";
|
||||
"attribute" = "brown";
|
||||
"tag" = "blue";
|
||||
|
||||
"markup.heading" = {
|
||||
fg = "orange";
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"markup.bold" = {
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"markup.italic" = {
|
||||
modifiers = [ "italic" ];
|
||||
};
|
||||
"markup.link.url" = {
|
||||
fg = "cyan";
|
||||
modifiers = [ "underlined" ];
|
||||
};
|
||||
"markup.link.text" = "blue";
|
||||
"markup.raw" = "green";
|
||||
|
||||
# diagnostics & diff
|
||||
"diagnostic.error" = {
|
||||
underline = {
|
||||
color = "red";
|
||||
style = "curl";
|
||||
};
|
||||
};
|
||||
"diagnostic.warning" = {
|
||||
underline = {
|
||||
color = "yellow";
|
||||
style = "curl";
|
||||
};
|
||||
};
|
||||
"diagnostic.info" = {
|
||||
underline = {
|
||||
color = "blue";
|
||||
style = "curl";
|
||||
};
|
||||
};
|
||||
"diagnostic.hint" = {
|
||||
underline = {
|
||||
color = "cyan";
|
||||
style = "curl";
|
||||
};
|
||||
};
|
||||
"error" = "red";
|
||||
"warning" = "yellow";
|
||||
"info" = "blue";
|
||||
"hint" = "cyan";
|
||||
|
||||
"diff.plus" = "green";
|
||||
"diff.minus" = "red";
|
||||
"diff.delta" = "blue";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -17,7 +17,7 @@
|
||||
base07 = "fafbfe";
|
||||
|
||||
base08 = "cf7670"; # red / mError
|
||||
base09 = "d1ba94"; # orange (approximated, see note above)
|
||||
base09 = "d1ba94"; # orange
|
||||
base0A = "bfa67a"; # yellow
|
||||
base0B = "8ca38a"; # green
|
||||
base0C = "7fa39a"; # cyan
|
||||
|
||||
@@ -0,0 +1,238 @@
|
||||
{ ... }:
|
||||
{
|
||||
flake.homeModules.home-theme-nushell =
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (lib.meta) getExe;
|
||||
|
||||
p = config.elars.theme.palette;
|
||||
h = p.withHashtag;
|
||||
accent = h.accent or h.base06;
|
||||
|
||||
vividTheme = pkgs.writeText "kemuri.yml" ''
|
||||
colors:
|
||||
bg: '${p.base00}'
|
||||
surface: '${p.base02}'
|
||||
muted: '${p.base04}'
|
||||
fg: '${p.base05}'
|
||||
accent: '${lib.removePrefix "#" accent}'
|
||||
red: '${p.base08}'
|
||||
orange: '${p.base09}'
|
||||
yellow: '${p.base0A}'
|
||||
green: '${p.base0B}'
|
||||
cyan: '${p.base0C}'
|
||||
blue: '${p.base0D}'
|
||||
magenta: '${p.base0E}'
|
||||
brown: '${p.base0F}'
|
||||
|
||||
core:
|
||||
normal_text: {}
|
||||
regular_file: {}
|
||||
reset_to_normal: {}
|
||||
|
||||
directory:
|
||||
foreground: blue
|
||||
font-style: bold
|
||||
|
||||
symlink:
|
||||
foreground: cyan
|
||||
|
||||
multi_hard_link: {}
|
||||
|
||||
fifo:
|
||||
foreground: bg
|
||||
background: cyan
|
||||
|
||||
socket:
|
||||
foreground: bg
|
||||
background: magenta
|
||||
|
||||
door:
|
||||
foreground: bg
|
||||
background: magenta
|
||||
|
||||
block_device:
|
||||
foreground: bg
|
||||
background: orange
|
||||
|
||||
character_device:
|
||||
foreground: bg
|
||||
background: yellow
|
||||
|
||||
broken_symlink:
|
||||
foreground: bg
|
||||
background: red
|
||||
|
||||
missing_symlink_target:
|
||||
foreground: bg
|
||||
background: red
|
||||
|
||||
setuid:
|
||||
foreground: red
|
||||
font-style: bold
|
||||
|
||||
setgid:
|
||||
foreground: orange
|
||||
font-style: bold
|
||||
|
||||
file_with_capability:
|
||||
foreground: red
|
||||
|
||||
sticky_other_writable:
|
||||
foreground: bg
|
||||
background: green
|
||||
|
||||
other_writable:
|
||||
foreground: blue
|
||||
background: surface
|
||||
|
||||
sticky:
|
||||
foreground: bg
|
||||
background: blue
|
||||
|
||||
executable_file:
|
||||
foreground: green
|
||||
font-style: bold
|
||||
|
||||
text:
|
||||
special:
|
||||
foreground: bg
|
||||
background: accent
|
||||
|
||||
todo:
|
||||
font-style: bold
|
||||
|
||||
licenses:
|
||||
foreground: muted
|
||||
|
||||
configuration:
|
||||
foreground: yellow
|
||||
|
||||
other:
|
||||
foreground: fg
|
||||
|
||||
markup:
|
||||
foreground: accent
|
||||
|
||||
programming:
|
||||
source:
|
||||
foreground: cyan
|
||||
|
||||
tooling:
|
||||
foreground: brown
|
||||
|
||||
continuous-integration:
|
||||
foreground: magenta
|
||||
|
||||
media:
|
||||
foreground: magenta
|
||||
|
||||
office:
|
||||
foreground: orange
|
||||
|
||||
archives:
|
||||
foreground: red
|
||||
font-style: underline
|
||||
|
||||
executable:
|
||||
foreground: green
|
||||
font-style: bold
|
||||
|
||||
unimportant:
|
||||
foreground: muted
|
||||
'';
|
||||
|
||||
lsColors = pkgs.runCommand "ls_colors.txt" { } ''
|
||||
${getExe pkgs.vivid} generate ${vividTheme} > $out
|
||||
'';
|
||||
in
|
||||
{
|
||||
home.packages = [ pkgs.vivid ];
|
||||
|
||||
programs.nushell.extraConfig = ''
|
||||
$env.LS_COLORS = open --raw ${lsColors}
|
||||
|
||||
$env.config.color_config = {
|
||||
separator: "${h.base03}"
|
||||
leading_trailing_space_bg: { attr: n }
|
||||
header: { fg: "${accent}" attr: b }
|
||||
row_index: { fg: "${h.base04}" attr: b }
|
||||
empty: "${h.base0D}"
|
||||
hints: "${h.base04}"
|
||||
search_result: { fg: "${h.base00}" bg: "${accent}" }
|
||||
|
||||
int: "${h.base09}"
|
||||
float: "${h.base09}"
|
||||
filesize: "${h.base0C}"
|
||||
duration: "${h.base0A}"
|
||||
datetime: "${h.base0E}"
|
||||
range: "${h.base0A}"
|
||||
binary: "${h.base0F}"
|
||||
nothing: "${h.base08}"
|
||||
cell-path: "${h.base06}"
|
||||
record: "${h.base05}"
|
||||
list: "${h.base05}"
|
||||
block: "${h.base05}"
|
||||
closure: "${h.base0C}"
|
||||
glob: "${h.base0C}"
|
||||
|
||||
shape_binary: { fg: "${h.base0F}" attr: b }
|
||||
shape_block: { fg: "${h.base0D}" attr: b }
|
||||
shape_bool: "${h.base0C}"
|
||||
shape_closure: { fg: "${h.base0C}" attr: b }
|
||||
shape_custom: "${h.base0B}"
|
||||
shape_datetime: { fg: "${h.base0E}" attr: b }
|
||||
shape_directory: "${h.base0D}"
|
||||
shape_external: "${h.base0C}"
|
||||
shape_external_resolved: { fg: "${h.base0B}" attr: b }
|
||||
shape_externalarg: { fg: "${h.base0B}" attr: b }
|
||||
shape_filepath: "${h.base0D}"
|
||||
shape_flag: { fg: "${h.base0A}" attr: b }
|
||||
shape_float: { fg: "${h.base09}" attr: b }
|
||||
shape_garbage: { fg: "${h.base07}" bg: "${h.base08}" attr: b }
|
||||
shape_glob_interpolation: { fg: "${h.base0C}" attr: b }
|
||||
shape_globpattern: { fg: "${h.base0C}" attr: b }
|
||||
shape_int: { fg: "${h.base09}" attr: b }
|
||||
shape_internalcall: { fg: "${h.base0C}" attr: b }
|
||||
shape_keyword: { fg: "${h.base0E}" attr: b }
|
||||
shape_list: { fg: "${h.base0C}" attr: b }
|
||||
shape_literal: "${h.base0D}"
|
||||
shape_match_pattern: "${h.base0B}"
|
||||
shape_matching_brackets: { attr: u }
|
||||
shape_nothing: "${h.base08}"
|
||||
shape_operator: "${h.base0A}"
|
||||
shape_pipe: { fg: "${h.base0E}" attr: b }
|
||||
shape_range: { fg: "${h.base0A}" attr: b }
|
||||
shape_record: { fg: "${h.base0C}" attr: b }
|
||||
shape_redirection: { fg: "${h.base0E}" attr: b }
|
||||
shape_signature: { fg: "${h.base0B}" attr: b }
|
||||
shape_string: "${h.base0B}"
|
||||
shape_string_interpolation: { fg: "${h.base0C}" attr: b }
|
||||
shape_table: { fg: "${h.base0D}" attr: b }
|
||||
shape_variable: "${h.base0E}"
|
||||
shape_vardecl: "${h.base0E}"
|
||||
}
|
||||
|
||||
$env.config.color_config.bool = {||
|
||||
if $in {
|
||||
{ fg: "${h.base0B}" attr: b }
|
||||
} else {
|
||||
{ fg: "${h.base08}" attr: b }
|
||||
}
|
||||
}
|
||||
|
||||
$env.config.color_config.string = {||
|
||||
if $in =~ "^(#|0x)[a-fA-F0-9]+$" {
|
||||
$in | str replace "0x" "#"
|
||||
} else {
|
||||
"${h.base05}"
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,226 @@
|
||||
{ ... }:
|
||||
{
|
||||
flake.homeModules.home-theme-qt =
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
p = config.elars.theme.palette;
|
||||
h = p.withHashtag;
|
||||
rgb = hex: lib.concatMapStringsSep "," toString (config.elars.theme.hexToRgb hex);
|
||||
accent = p.accent or p.base06;
|
||||
foregrounds = {
|
||||
Normal = p.base05;
|
||||
Inactive = p.base04;
|
||||
Active = accent;
|
||||
Link = p.base0C;
|
||||
Visited = p.base0E;
|
||||
Negative = p.base08;
|
||||
Neutral = p.base0A;
|
||||
Positive = p.base0B;
|
||||
};
|
||||
|
||||
colorSet =
|
||||
name:
|
||||
{
|
||||
background,
|
||||
alternate,
|
||||
normal ? foregrounds.Normal,
|
||||
inactive ? foregrounds.Inactive,
|
||||
}:
|
||||
let
|
||||
fg = foregrounds // {
|
||||
Normal = normal;
|
||||
Inactive = inactive;
|
||||
};
|
||||
in
|
||||
''
|
||||
[Colors:${name}]
|
||||
BackgroundNormal=${rgb background}
|
||||
BackgroundAlternate=${rgb alternate}
|
||||
DecorationFocus=${rgb accent}
|
||||
DecorationHover=${rgb p.base03}
|
||||
ForegroundActive=${rgb fg.Active}
|
||||
ForegroundInactive=${rgb fg.Inactive}
|
||||
ForegroundLink=${rgb fg.Link}
|
||||
ForegroundNegative=${rgb fg.Negative}
|
||||
ForegroundNeutral=${rgb fg.Neutral}
|
||||
ForegroundNormal=${rgb fg.Normal}
|
||||
ForegroundPositive=${rgb fg.Positive}
|
||||
ForegroundVisited=${rgb fg.Visited}
|
||||
'';
|
||||
|
||||
qtctColors =
|
||||
{
|
||||
text,
|
||||
window,
|
||||
base,
|
||||
alternateBase,
|
||||
button,
|
||||
buttonText,
|
||||
bright,
|
||||
shadow,
|
||||
}:
|
||||
builtins.concatStringsSep ", " [
|
||||
text # WindowText
|
||||
button # Button
|
||||
h.base03 # Light
|
||||
h.base02 # Midlight
|
||||
shadow # Dark
|
||||
h.base03 # Mid
|
||||
buttonText # Text
|
||||
bright # BrightText
|
||||
buttonText # ButtonText
|
||||
base # Base
|
||||
window # Window
|
||||
shadow # Shadow
|
||||
h.base03 # Highlight
|
||||
bright # HighlightedText
|
||||
h.base0C # Link
|
||||
h.base0E # LinkVisited
|
||||
alternateBase # AlternateBase
|
||||
h.base01 # NoRole
|
||||
h.base01 # ToolTipBase
|
||||
text # ToolTipText
|
||||
h.base04 # PlaceholderText
|
||||
];
|
||||
|
||||
active = qtctColors {
|
||||
text = h.base05;
|
||||
window = h.base01;
|
||||
base = h.base00;
|
||||
alternateBase = h.base01;
|
||||
button = h.base02;
|
||||
buttonText = h.base05;
|
||||
bright = h.base07;
|
||||
shadow = h.base00;
|
||||
};
|
||||
|
||||
disabled = qtctColors {
|
||||
text = h.base04;
|
||||
window = h.base01;
|
||||
base = h.base00;
|
||||
alternateBase = h.base01;
|
||||
button = h.base01;
|
||||
buttonText = h.base04;
|
||||
bright = h.base06;
|
||||
shadow = h.base00;
|
||||
};
|
||||
|
||||
font = "JetBrainsMono Nerd Font,11,-1,5,50,0,0,0,0,0";
|
||||
in
|
||||
{
|
||||
qt = {
|
||||
enable = true;
|
||||
platformTheme.name = "qtct";
|
||||
style.name = "qtct";
|
||||
};
|
||||
|
||||
home.packages = [
|
||||
pkgs.qt6Packages.qt6ct
|
||||
];
|
||||
|
||||
xdg.configFile."qt6ct/colors/kemuri.conf".text = ''
|
||||
[ColorScheme]
|
||||
active_colors=${active}
|
||||
inactive_colors=${active}
|
||||
disabled_colors=${disabled}
|
||||
'';
|
||||
|
||||
xdg.configFile."qt6ct/qt6ct.conf".text = ''
|
||||
[Appearance]
|
||||
style=Fusion
|
||||
custom_palette=true
|
||||
color_scheme_path=${config.xdg.configHome}/qt6ct/colors/kemuri.conf
|
||||
standard_dialogs=default
|
||||
|
||||
[Fonts]
|
||||
fixed="${font}"
|
||||
general="${font}"
|
||||
'';
|
||||
|
||||
xdg.configFile."kdeglobals".text = ''
|
||||
[General]
|
||||
ColorScheme=${p.name}
|
||||
Name=${p.name}
|
||||
font=${font}
|
||||
fixed=${font}
|
||||
menuFont=${font}
|
||||
toolBarFont=${font}
|
||||
smallestReadableFont=JetBrainsMono Nerd Font,9,-1,5,50,0,0,0,0,0
|
||||
|
||||
[Icons]
|
||||
Theme=int_nord
|
||||
|
||||
[KDE]
|
||||
widgetStyle=Fusion
|
||||
contrast=4
|
||||
|
||||
${colorSet "Window" {
|
||||
background = p.base01;
|
||||
alternate = p.base02;
|
||||
}}
|
||||
${colorSet "View" {
|
||||
background = p.base00;
|
||||
alternate = p.base01;
|
||||
}}
|
||||
${colorSet "Button" {
|
||||
background = p.base02;
|
||||
alternate = p.base01;
|
||||
}}
|
||||
${colorSet "Header" {
|
||||
background = p.base01;
|
||||
alternate = p.base02;
|
||||
}}
|
||||
${colorSet "Header][Inactive" {
|
||||
background = p.base00;
|
||||
alternate = p.base01;
|
||||
normal = p.base04;
|
||||
}}
|
||||
${colorSet "Tooltip" {
|
||||
background = p.base01;
|
||||
alternate = p.base02;
|
||||
}}
|
||||
${colorSet "Complementary" {
|
||||
background = p.base00;
|
||||
alternate = p.base01;
|
||||
}}
|
||||
${colorSet "Selection" {
|
||||
background = p.base03;
|
||||
alternate = p.base03;
|
||||
normal = p.base07;
|
||||
inactive = p.base06;
|
||||
}}
|
||||
|
||||
[WM]
|
||||
activeBackground=${rgb p.base02}
|
||||
activeBlend=${rgb p.base02}
|
||||
activeForeground=${rgb p.base05}
|
||||
inactiveBackground=${rgb p.base01}
|
||||
inactiveBlend=${rgb p.base01}
|
||||
inactiveForeground=${rgb p.base04}
|
||||
|
||||
[ColorEffects:Disabled]
|
||||
Color=${rgb p.base01}
|
||||
ColorAmount=0
|
||||
ColorEffect=0
|
||||
ContrastAmount=0.65
|
||||
ContrastEffect=1
|
||||
IntensityAmount=0.1
|
||||
IntensityEffect=2
|
||||
|
||||
[ColorEffects:Inactive]
|
||||
ChangeSelectionColor=true
|
||||
Color=${rgb p.base02}
|
||||
ColorAmount=0.025
|
||||
ColorEffect=2
|
||||
ContrastAmount=0.1
|
||||
ContrastEffect=2
|
||||
IntensityAmount=0
|
||||
IntensityEffect=0
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,154 @@
|
||||
{ ... }:
|
||||
{
|
||||
flake.homeModules.home-theme-zellij =
|
||||
{ config, lib, ... }:
|
||||
let
|
||||
p = config.elars.theme.palette;
|
||||
|
||||
c = hex: lib.concatMapStringsSep " " toString (config.elars.theme.hexToRgb hex);
|
||||
|
||||
bg = c p.base00;
|
||||
bgAlt = c p.base01;
|
||||
fg = c p.base05;
|
||||
accent = c (p.accent or p.base06);
|
||||
orange = c p.base09;
|
||||
yellow = c p.base0A;
|
||||
green = c p.base0B;
|
||||
cyan = c p.base0C;
|
||||
blue = c p.base0D;
|
||||
magenta = c p.base0E;
|
||||
red = c p.base08;
|
||||
|
||||
slot =
|
||||
{
|
||||
base,
|
||||
background,
|
||||
e0 ? orange,
|
||||
e1 ? blue,
|
||||
e2 ? green,
|
||||
e3 ? magenta,
|
||||
}:
|
||||
lib.concatStringsSep "\n " [
|
||||
"base ${base}"
|
||||
"background ${background}"
|
||||
"emphasis_0 ${e0}"
|
||||
"emphasis_1 ${e1}"
|
||||
"emphasis_2 ${e2}"
|
||||
"emphasis_3 ${e3}"
|
||||
];
|
||||
|
||||
unselected = slot {
|
||||
base = fg;
|
||||
background = bg;
|
||||
};
|
||||
|
||||
selected = slot {
|
||||
base = bg;
|
||||
background = accent;
|
||||
e1 = bg;
|
||||
};
|
||||
in
|
||||
{
|
||||
programs.zellij.themes.kemuri-copnix = ''
|
||||
themes {
|
||||
kemuri-copnix {
|
||||
text_unselected {
|
||||
${unselected}
|
||||
}
|
||||
text_selected {
|
||||
${selected}
|
||||
}
|
||||
ribbon_selected {
|
||||
${slot {
|
||||
base = bg;
|
||||
background = accent;
|
||||
e0 = red;
|
||||
e1 = yellow;
|
||||
e2 = magenta;
|
||||
e3 = blue;
|
||||
}}
|
||||
}
|
||||
ribbon_unselected {
|
||||
${slot {
|
||||
base = fg;
|
||||
background = bgAlt;
|
||||
e0 = red;
|
||||
e1 = fg;
|
||||
e2 = blue;
|
||||
e3 = magenta;
|
||||
}}
|
||||
}
|
||||
table_title {
|
||||
${slot {
|
||||
base = green;
|
||||
background = bg;
|
||||
}}
|
||||
}
|
||||
table_cell_selected {
|
||||
${selected}
|
||||
}
|
||||
table_cell_unselected {
|
||||
${unselected}
|
||||
}
|
||||
list_selected {
|
||||
${selected}
|
||||
}
|
||||
list_unselected {
|
||||
${unselected}
|
||||
}
|
||||
frame_selected {
|
||||
${slot {
|
||||
base = accent;
|
||||
background = bg;
|
||||
e1 = green;
|
||||
e2 = magenta;
|
||||
e3 = bg;
|
||||
}}
|
||||
}
|
||||
frame_highlight {
|
||||
${slot {
|
||||
base = orange;
|
||||
background = bg;
|
||||
e0 = magenta;
|
||||
e1 = orange;
|
||||
e2 = orange;
|
||||
e3 = orange;
|
||||
}}
|
||||
}
|
||||
exit_code_success {
|
||||
${slot {
|
||||
base = green;
|
||||
background = bg;
|
||||
e0 = accent;
|
||||
e1 = bg;
|
||||
e2 = magenta;
|
||||
e3 = blue;
|
||||
}}
|
||||
}
|
||||
exit_code_error {
|
||||
${slot {
|
||||
base = red;
|
||||
background = bg;
|
||||
e0 = yellow;
|
||||
e1 = bg;
|
||||
e2 = bg;
|
||||
e3 = bg;
|
||||
}}
|
||||
}
|
||||
multiplayer_user_colors {
|
||||
player_1 ${magenta}
|
||||
player_2 ${blue}
|
||||
player_3 ${cyan}
|
||||
player_4 ${yellow}
|
||||
player_5 ${accent}
|
||||
player_6 ${green}
|
||||
player_7 ${red}
|
||||
player_8 ${orange}
|
||||
player_9 ${fg}
|
||||
player_10 ${bgAlt}
|
||||
}
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -2,13 +2,58 @@
|
||||
{
|
||||
flake.homeModules.home-theme =
|
||||
{ lib, ... }:
|
||||
let
|
||||
inherit (builtins) substring;
|
||||
|
||||
hexDigit =
|
||||
c:
|
||||
{
|
||||
"0" = 0;
|
||||
"1" = 1;
|
||||
"2" = 2;
|
||||
"3" = 3;
|
||||
"4" = 4;
|
||||
"5" = 5;
|
||||
"6" = 6;
|
||||
"7" = 7;
|
||||
"8" = 8;
|
||||
"9" = 9;
|
||||
"a" = 10;
|
||||
"b" = 11;
|
||||
"c" = 12;
|
||||
"d" = 13;
|
||||
"e" = 14;
|
||||
"f" = 15;
|
||||
}
|
||||
.${lib.toLower c};
|
||||
|
||||
hexPair = s: 16 * hexDigit (substring 0 1 s) + hexDigit (substring 1 1 s);
|
||||
in
|
||||
{
|
||||
options.elars.theme.palette = lib.mkOption {
|
||||
type = lib.types.raw;
|
||||
description = ''
|
||||
Active ThemeNix-shaped base16 palette. Set by exactly one
|
||||
`home-theme-*` module (e.g. home-theme-kemuri); consumed by
|
||||
home-gtk and home-qt.
|
||||
every `home-theme-<app>` module.
|
||||
'';
|
||||
};
|
||||
|
||||
options.elars.theme.hexToRgb = lib.mkOption {
|
||||
type = lib.types.raw;
|
||||
default =
|
||||
hex:
|
||||
let
|
||||
h = lib.removePrefix "#" hex;
|
||||
in
|
||||
[
|
||||
(hexPair (substring 0 2 h))
|
||||
(hexPair (substring 2 2 h))
|
||||
(hexPair (substring 4 2 h))
|
||||
];
|
||||
description = ''
|
||||
`"1e1d1b"` (or `"#1e1d1b"`) -> `[ 30 29 27 ]`. For consumers that
|
||||
want decimal channels instead of hex (KDE's kdeglobals, zellij).
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,130 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
flake.homeModules.home-zellij-theme =
|
||||
{ ... }:
|
||||
# this could be change
|
||||
{
|
||||
programs.zellij.themes.kanagawa-dragon-copnix = ''
|
||||
themes {
|
||||
kanagawa-dragon-copnix {
|
||||
text_unselected {
|
||||
base 197 201 199
|
||||
background 9 14 19
|
||||
emphasis_0 182 146 123
|
||||
emphasis_1 127 180 202
|
||||
emphasis_2 138 154 123
|
||||
emphasis_3 162 146 163
|
||||
}
|
||||
text_selected {
|
||||
base 9 14 19
|
||||
background 127 180 202
|
||||
emphasis_0 182 146 123
|
||||
emphasis_1 9 14 19
|
||||
emphasis_2 138 154 123
|
||||
emphasis_3 162 146 163
|
||||
}
|
||||
ribbon_selected {
|
||||
base 9 14 19
|
||||
background 127 180 202
|
||||
emphasis_0 196 116 110
|
||||
emphasis_1 182 146 123
|
||||
emphasis_2 162 146 163
|
||||
emphasis_3 139 164 176
|
||||
}
|
||||
ribbon_unselected {
|
||||
base 197 201 199
|
||||
background 34 38 45
|
||||
emphasis_0 196 116 110
|
||||
emphasis_1 197 201 199
|
||||
emphasis_2 139 164 176
|
||||
emphasis_3 162 146 163
|
||||
}
|
||||
table_title {
|
||||
base 138 154 123
|
||||
background 0
|
||||
emphasis_0 182 146 123
|
||||
emphasis_1 127 180 202
|
||||
emphasis_2 138 154 123
|
||||
emphasis_3 162 146 163
|
||||
}
|
||||
table_cell_selected {
|
||||
base 9 14 19
|
||||
background 127 180 202
|
||||
emphasis_0 182 146 123
|
||||
emphasis_1 9 14 19
|
||||
emphasis_2 138 154 123
|
||||
emphasis_3 162 146 163
|
||||
}
|
||||
table_cell_unselected {
|
||||
base 197 201 199
|
||||
background 9 14 19
|
||||
emphasis_0 182 146 123
|
||||
emphasis_1 127 180 202
|
||||
emphasis_2 138 154 123
|
||||
emphasis_3 162 146 163
|
||||
}
|
||||
list_selected {
|
||||
base 9 14 19
|
||||
background 127 180 202
|
||||
emphasis_0 182 146 123
|
||||
emphasis_1 9 14 19
|
||||
emphasis_2 138 154 123
|
||||
emphasis_3 162 146 163
|
||||
}
|
||||
list_unselected {
|
||||
base 197 201 199
|
||||
background 9 14 19
|
||||
emphasis_0 182 146 123
|
||||
emphasis_1 127 180 202
|
||||
emphasis_2 138 154 123
|
||||
emphasis_3 162 146 163
|
||||
}
|
||||
frame_selected {
|
||||
base 127 180 202
|
||||
background 0
|
||||
emphasis_0 182 146 123
|
||||
emphasis_1 138 154 123
|
||||
emphasis_2 162 146 163
|
||||
emphasis_3 0
|
||||
}
|
||||
frame_highlight {
|
||||
base 182 146 123
|
||||
background 0
|
||||
emphasis_0 162 146 163
|
||||
emphasis_1 182 146 123
|
||||
emphasis_2 182 146 123
|
||||
emphasis_3 182 146 123
|
||||
}
|
||||
exit_code_success {
|
||||
base 138 154 123
|
||||
background 0
|
||||
emphasis_0 127 180 202
|
||||
emphasis_1 9 14 19
|
||||
emphasis_2 162 146 163
|
||||
emphasis_3 139 164 176
|
||||
}
|
||||
exit_code_error {
|
||||
base 228 104 118
|
||||
background 0
|
||||
emphasis_0 230 195 132
|
||||
emphasis_1 0
|
||||
emphasis_2 0
|
||||
emphasis_3 0
|
||||
}
|
||||
multiplayer_user_colors {
|
||||
player_1 162 146 163
|
||||
player_2 139 164 176
|
||||
player_3 0
|
||||
player_4 230 195 132
|
||||
player_5 127 180 202
|
||||
player_6 0
|
||||
player_7 196 116 110
|
||||
player_8 0
|
||||
player_9 0
|
||||
player_10 0
|
||||
}
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -7,7 +7,7 @@
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
theme = "kanagawa-dragon-copnix";
|
||||
theme = "kemuri-copnix";
|
||||
default_layout = "compact";
|
||||
default_mode = "normal";
|
||||
default_shell = "nu";
|
||||
|
||||
Reference in new issue
Block a user