From 2699110467582a9a8c6bad31b78a0a9824579ba9 Mon Sep 17 00:00:00 2001 From: Alexander Bantyev Date: Thu, 10 Jun 2021 18:58:51 +0300 Subject: [PATCH] Use base16 themes, custom base16 theme --- flake.lock | 47 ++++--- flake.nix | 9 +- modules/applications/alacritty.nix | 28 +++-- modules/applications/emacs/default.nix | 9 +- modules/applications/emacs/init.el | 37 +++++- modules/applications/firefox.nix | 25 ++-- modules/applications/geary.nix | 8 +- modules/applications/okular.nix | 8 +- modules/applications/packages.nix | 2 +- modules/default.nix | 2 +- modules/overlay.nix | 5 +- modules/themes.nix | 108 ++++++++-------- modules/workspace/fonts.nix | 26 +++- modules/workspace/gtk.nix | 63 +++------- modules/workspace/i3blocks/default.nix | 26 ++-- modules/workspace/kde/default.nix | 163 +++++++++++++------------ modules/workspace/mako.nix | 12 +- modules/workspace/sway/default.nix | 32 ++--- modules/workspace/xresources.nix | 40 +++--- 19 files changed, 345 insertions(+), 305 deletions(-) diff --git a/flake.lock b/flake.lock index 4ad5245..be211a6 100644 --- a/flake.lock +++ b/flake.lock @@ -3,11 +3,11 @@ "NUR": { "flake": false, "locked": { - "lastModified": 1593719873, - "narHash": "sha256-AK0s3BOp7qO/d1vGL6Lh7hLjbqv3Zjo9KIr61UjBD78=", + "lastModified": 1623311631, + "narHash": "sha256-3lzdbWWoSE8zbNKvB2yOY1AAtLL/nIWcD94uRCwATvU=", "owner": "nix-community", "repo": "NUR", - "rev": "8654e8b452aee888d4cc67c649b70ddf1f50ea5e", + "rev": "97b0f023d370295a84c644be037b49bcf9c63c85", "type": "github" }, "original": { @@ -16,19 +16,19 @@ "type": "github" } }, - "base16-unclaimed-schemes": { + "base16-black-metal-scheme": { "flake": false, "locked": { - "lastModified": 1527170198, - "narHash": "sha256-YV2tgexpyeLqm6d8WaBwT9QPAHT/gxhiFpxQq03xdhA=", - "owner": "chriskempson", - "repo": "base16-unclaimed-schemes", - "rev": "d6b93456dc1012628faec572387814f59e0b854a", + "lastModified": 1585330710, + "narHash": "sha256-ctsMdfUpqVZfqtg4paYg4oCataRHoapxSiYRsi0lwhI=", + "owner": "metalelf0", + "repo": "base16-black-metal-scheme", + "rev": "c7a32bec8105a1ceddb9fcc90b713dabde5e7e5e", "type": "github" }, "original": { - "owner": "chriskempson", - "repo": "base16-unclaimed-schemes", + "owner": "metalelf0", + "repo": "base16-black-metal-scheme", "type": "github" } }, @@ -376,11 +376,11 @@ "nixpkgs-old": { "flake": false, "locked": { - "lastModified": 1592518222, - "narHash": "sha256-dkWpvJM3y7vXNu2FFrj4XHE3GoX0h+pIyc4gLQpQsmQ=", + "lastModified": 1600952148, + "narHash": "sha256-GUKHrnng33luc6mUT3rDnZ3Hm+4MMEJpEchRIAQx7JQ=", "owner": "nixos", "repo": "nixpkgs", - "rev": "289466dd6a11c65a7de4a954d6ebf66c1ad07652", + "rev": "75f4ba05c63be3f147bcc2f7bd4ba1f029cedcb1", "type": "github" }, "original": { @@ -531,7 +531,7 @@ "root": { "inputs": { "NUR": "NUR", - "base16-unclaimed-schemes": "base16-unclaimed-schemes", + "base16-black-metal-scheme": "base16-black-metal-scheme", "crdt": "crdt", "deploy-rs": "deploy-rs", "emacs-overlay": "emacs-overlay", @@ -546,6 +546,7 @@ "nixpkgs": "nixpkgs_7", "nixpkgs-old": "nixpkgs-old", "nixpkgs-wayland": "nixpkgs-wayland", + "rycee": "rycee", "simple-nixos-mailserver": "simple-nixos-mailserver", "simple-osd-daemons": "simple-osd-daemons", "sonoff-lan": "sonoff-lan", @@ -571,6 +572,22 @@ "type": "github" } }, + "rycee": { + "flake": false, + "locked": { + "lastModified": 1623298028, + "narHash": "sha256-ewN6rXEIiwysCZ6EN469Kdj3kuq/cEbEJOK0ZVWqK84=", + "owner": "rycee", + "repo": "nur-expressions", + "rev": "32bbce160cc8472102cf618d47f353781b903865", + "type": "gitlab" + }, + "original": { + "owner": "rycee", + "repo": "nur-expressions", + "type": "gitlab" + } + }, "simple-nixos-mailserver": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index 40d2202..77d8c6a 100644 --- a/flake.nix +++ b/flake.nix @@ -14,8 +14,8 @@ url = "github:nix-community/NUR"; flake = false; }; - base16-unclaimed-schemes = { - url = "github:chriskempson/base16-unclaimed-schemes"; + base16-black-metal-scheme = { + url = "github:metalelf0/base16-black-metal-scheme"; flake = false; }; home-manager.url = "github:rycee/home-manager"; @@ -53,6 +53,11 @@ }; himalaya.url = "github:soywod/himalaya"; impermanence.url = "github:nix-community/impermanence"; + + rycee = { + url = "gitlab:rycee/nur-expressions"; + flake = false; + }; }; outputs = { nixpkgs, nix, self, deploy-rs, ... }@inputs: { diff --git a/modules/applications/alacritty.nix b/modules/applications/alacritty.nix index 7b7b8d5..e6c93ae 100644 --- a/modules/applications/alacritty.nix +++ b/modules/applications/alacritty.nix @@ -1,13 +1,12 @@ { config, pkgs, lib, ... }: -let thm = config.themes.colors; -in { +{ home-manager.users.balsoft.programs.alacritty = { enable = true; settings = { font = rec { - normal.family = "IBM Plex Mono"; - size = 11; + normal.family = config.themes.fonts.mono.family; + size = config.themes.fonts.mono.size; bold = { style = "Bold"; }; }; @@ -20,20 +19,23 @@ in { cursor.style = "Beam"; - colors = { + colors = with pkgs.my-lib.thmHash; { primary = { - background = thm.bg; - foreground = thm.fg; + background = base00; + foreground = base05; }; cursor = { - text = thm.alt; - cursor = thm.fg; + text = base02; + cursor = base00; }; normal = { - black = thm.bg; - inherit (thm) red green yellow blue cyan; - magenta = thm.purple; - white = thm.fg; + black = base00; + red = base08; + green = base0B; + yellow = base0A; + blue = base0D; + magenta = base0E; + white = base07; }; }; }; diff --git a/modules/applications/emacs/default.nix b/modules/applications/emacs/default.nix index e707027..71496af 100644 --- a/modules/applications/emacs/default.nix +++ b/modules/applications/emacs/default.nix @@ -15,7 +15,8 @@ in { # directory = "emacs"; # }; - persist.state.homeFiles = [ ".config/emacs/custom" ".config/emacs/eshell/history" ]; + persist.state.homeFiles = + [ ".config/emacs/custom" ".config/emacs/eshell/history" ]; home-manager.users.balsoft = { programs.emacs = { @@ -70,6 +71,7 @@ in { dap-mode forge crdt + base16-theme ]; }; @@ -80,6 +82,9 @@ in { systemd.user.services.emacs.Service.Environment = "PATH=/run/current-system/sw/bin:/etc/profiles/per-user/balsoft/bin"; - xdg.configFile."emacs/init.el".source = ./init.el; + xdg.configFile."emacs/init.el".source = pkgs.substituteAll ({ + src = ./init.el; + font = with config.themes.fonts; "${mono.family} ${toString mono.size}"; + } // pkgs.my-lib.thmHash); }; } diff --git a/modules/applications/emacs/init.el b/modules/applications/emacs/init.el index 110126d..081d972 100755 --- a/modules/applications/emacs/init.el +++ b/modules/applications/emacs/init.el @@ -61,6 +61,7 @@ (tool-bar-mode -1) (cua-selection-mode 1) + (setq auto-revert-check-vc-info t) (vc-mode-line t) @@ -186,8 +187,8 @@ ;; (load-theme 'xresources t) ;; (set-frame-font "IBM Plex Mono 11" nil t))))) -(add-to-list 'default-frame-alist '(font . "IBM Plex Mono 11")) -(set-face-attribute 'default nil :font "IBM Plex Mono 11") +(add-to-list 'default-frame-alist '(font . "@font@")) +(set-face-attribute 'default nil :font "@font@") (setq inhibit-startup-screen t) @@ -215,5 +216,35 @@ (use-package treemacs-projectile) -(load-theme 'manoj-dark t) +(require 'base16-theme) + +(defvar base16-generated-colors + '(:base00 "@base00@" + :base01 "@base01@" + :base02 "@base02@" + :base03 "@base03@" + :base04 "@base04@" + :base05 "@base05@" + :base06 "@base06@" + :base07 "@base07@" + :base08 "@base08@" + :base09 "@base09@" + :base0A "@base0A@" + :base0B "@base0B@" + :base0C "@base0C@" + :base0D "@base0D@" + :base0E "@base0E@" + :base0F "@base0F@") + "All colors for Base16 are defined here.") + +;; Define the theme +(deftheme base16-generated) + +;; Add all the faces to the theme +(base16-theme-define 'base16-generated base16-generated-colors) + +;; Mark the theme as provided +(provide-theme 'base16-generated) + +(enable-theme 'base16-generated) ;;; init.el ends here diff --git a/modules/applications/firefox.nix b/modules/applications/firefox.nix index e4341f3..56b8527 100644 --- a/modules/applications/firefox.nix +++ b/modules/applications/firefox.nix @@ -1,5 +1,7 @@ { config, pkgs, lib, ... }: -let thm = config.themes.colors; +let + thm = pkgs.my-lib.thmHash; + fonts = config.themes.fonts; in { environment.sessionVariables = { MOZ_USE_XINPUT2 = "1"; @@ -24,10 +26,10 @@ in { visibility: collapse; } toolbar#nav-bar, nav-bar-customization-target { - background: ${thm.bg} !important; + background: ${thm.base00} !important; } @-moz-document url("about:newtab") { - * { background-color: ${thm.bg} !important; } + * { background-color: ${thm.base00} !important; } } ''; settings = { @@ -39,21 +41,21 @@ in { "browser.search.selectedEngine" = "Google"; "browser.urlbar.placeholderName" = "Google"; "browser.search.region" = "US"; - + "browser.uidensity" = 1; "browser.search.openintab" = true; "xpinstall.signatures.required" = false; "extensions.update.enabled" = false; - "font.name.monospace.x-western" = "IBM Plex Mono"; - "font.name.sans-serif.x-western" = "IBM Plex Sans"; - "font.name.serif.x-western" = "IBM Plex Serif"; + "font.name.monospace.x-western" = "${fonts.mono.family}"; + "font.name.sans-serif.x-western" = "${fonts.main.family}"; + "font.name.serif.x-western" = "${fonts.serif.family}"; - "browser.display.background_color" = thm.bg; - "browser.display.foreground_color" = thm.fg; + "browser.display.background_color" = thm.base00; + "browser.display.foreground_color" = thm.base05; "browser.display.document_color_use" = 2; - "browser.anchor_color" = thm.fg; - "browser.visited_color" = thm.blue; + "browser.anchor_color" = thm.base0D; + "browser.visited_color" = thm.base0C; "browser.display.use_document_fonts" = true; "pdfjs.disabled" = true; "media.videocontrols.picture-in-picture.enabled" = true; @@ -65,7 +67,6 @@ in { }; }; extensions = with pkgs.nur.rycee.firefox-addons; [ - torswitch adsum-notabs ublock-origin browserpass diff --git a/modules/applications/geary.nix b/modules/applications/geary.nix index 1ca58c6..d72c267 100644 --- a/modules/applications/geary.nix +++ b/modules/applications/geary.nix @@ -60,12 +60,12 @@ in { home-manager.users.balsoft = { xdg.configFile."geary/user-style.css".text = '' *, html, body, body.plain div, body.plain a, body.plain p, body.plain span { - background: ${config.themes.colors.bg} !important; - color: ${config.themes.colors.fg} !important; - font-family: 'IBM Plex Mono', monospace !important; + background: ${pkgs.my-lib.thmHash.base00} !important; + color: ${pkgs.my-lib.thmHash.base05} !important; + font-family: '${config.themes.fonts.mono.family}', monospace !important; } *, html, body { - font-size: 16px; + font-size: ${toString config.themes.fonts.mono.size}pt; } ''; home.activation.geary = '' diff --git a/modules/applications/okular.nix b/modules/applications/okular.nix index d75e35d..83f308d 100644 --- a/modules/applications/okular.nix +++ b/modules/applications/okular.nix @@ -2,17 +2,17 @@ with import ../../support.nix { inherit lib config; }; { home-manager.users.balsoft.xdg.configFile."okularpartrc".text = genIni { "Dlg Accessibility" = { - RecolorBackground = thmDec.bg; - RecolorForeground = thmDec.fg; + RecolorBackground = thmDec.base00; + RecolorForeground = thmDec.base05; }; "Document" = { ChangeColors = true; - PaperColor = thmDec.bg; + PaperColor = thmDec.base00; RenderMode = "Recolor"; }; "Main View" = { ShowLeftPanel = false; }; PageView = { - BackgroundColor = thmDec.bg; + BackgroundColor = thmDec.base00; UseCustomBackgroundColor = true; }; }; diff --git a/modules/applications/packages.nix b/modules/applications/packages.nix index 032d9d0..a512735 100644 --- a/modules/applications/packages.nix +++ b/modules/applications/packages.nix @@ -30,7 +30,7 @@ gnumeric gcalcli xdg_utils - # inputs.yt-utilities.defaultPackage.x86_64-linux + inputs.yt-utilities.defaultPackage.x86_64-linux lambda-launcher nix-patch pass-wayland diff --git a/modules/default.nix b/modules/default.nix index 9ef8202..8dafb21 100755 --- a/modules/default.nix +++ b/modules/default.nix @@ -3,7 +3,7 @@ builtins.listToAttrs (builtins.map (path: { b = builtins.baseNameOf path; m = builtins.match "(.*)\\.nix" b; in if isNull m then [ b ] else m); - value = import path; + value = path; }) [ ./applications.nix ./applications/alacritty.nix diff --git a/modules/overlay.nix b/modules/overlay.nix index d3243fc..22ba4bc 100644 --- a/modules/overlay.nix +++ b/modules/overlay.nix @@ -41,7 +41,7 @@ in { thm = config.themes.colors; splitHex = hexStr: map (x: builtins.elemAt x 0) (builtins.filter (a: a != "" && a != [ ]) - (builtins.split "(.{2})" (builtins.substring 1 6 hexStr))); + (builtins.split "(.{2})" hexStr)); hex2decDigits = rec { "0" = 0; "1" = 1; @@ -71,6 +71,7 @@ in { 16 * hex2decDigits."${builtins.substring 0 1 hex}" + hex2decDigits."${builtins.substring 1 2 hex}"; thmDec = builtins.mapAttrs (name: color: colorHex2Dec color) thm; + thmHash = builtins.mapAttrs (name: color: "#${color}") thm; colorHex2Dec = color: builtins.concatStringsSep "," (map (x: toString (doubleDigitHexToDec x)) (splitHex color)); @@ -88,8 +89,6 @@ in { simple-osd = inputs.simple-osd-daemons.packages.x86_64-linux; - inherit old; - yt-utilities = inputs.yt-utilities.defaultPackage.x86_64-linux; nerdfonts = nur.balsoft.pkgs.roboto-mono-nerd; diff --git a/modules/themes.nix b/modules/themes.nix index be3d193..f601a33 100755 --- a/modules/themes.nix +++ b/modules/themes.nix @@ -1,30 +1,14 @@ { config, lib, pkgs, inputs, ... }: with lib; let - colorType = types.str; - color = (name: - (mkOption { - description = "${name} color of palette"; - type = colorType; - })); - fromBase16 = { base00, base01, base02, base03, base04, base05, base06, base07 - , base08, base09, base0A, base0B, base0C, base0D, base0E, base0F, ... }: - builtins.mapAttrs (_: v: "#" + v) { - bg = base00; - fg = base07; + colorType = + types.addCheck types.str (x: !isNull (builtins.match "[0-9a-fA-F]{6}" x)); + color = mkOption { type = colorType; }; - gray = base03; - alt = base02; - dark = base01; - - red = base08; - orange = base09; - yellow = base0A; - green = base0B; - cyan = base0C; - blue = base0D; - purple = base0E; - }; + font = { + family = mkOption { type = types.str; }; + size = mkOption { type = types.int; }; + }; fromYAML = yaml: builtins.fromJSON (builtins.readFile (pkgs.stdenv.mkDerivation { @@ -35,41 +19,55 @@ let in { options = { themes = { - colors = mkOption { - description = - "Set of colors from which the themes for various applications will be generated"; - type = with types; - submodule { - options = { - bg = color "background"; - fg = color "foreground"; - gray = color "gray"; - - alt = color "alternative"; - dark = color "darker"; - - blue = color "blue"; - green = color "green"; - red = color "red"; - orange = color "orange"; - yellow = color "yellow"; - cyan = color "cyan"; - purple = color "purple"; - }; - }; + colors = builtins.listToAttrs (map (name: { + inherit name; + value = color; + }) [ + "base00" + "base01" + "base02" + "base03" + "base04" + "base05" + "base06" + "base07" + "base08" + "base09" + "base0A" + "base0B" + "base0C" + "base0D" + "base0E" + "base0F" + ]); + fonts = { + main = font; + serif = font; + mono = font; }; }; }; config = { - themes.colors = (fromBase16 (fromYAML - (builtins.readFile "${inputs.base16-unclaimed-schemes}/irblack.yaml"))) - // { - alt = "#001d6c"; - - red = "#da1e28"; - green = "#24a148"; - orange = "#ff832b"; - yellow = "#f1c21b"; - }; + themes.colors = { + # H = 0, S = 0% + base00 = "000000"; # L = 0% + base01 = "333333"; # L = 20% + base02 = "666666"; # L = 40% + base03 = "999999"; # L = 60% + base04 = "cccccc"; # L = 80% + base05 = "ffffff"; # L = 100% + base06 = "e6e6e6"; # L = 90% + base07 = "e6e6e6"; # L = 90% + # L = 50%, S = 50% + base08 = "bf4040"; # H = 0 RED + base09 = "bf8040"; # H = 30 ORANGE + base0A = "bfbf40"; # H = 60 YELLOW-ish + base0B = "80bf40"; # H = 90 GREEN + # Whoa, a lot of hues are green! + base0C = "40bfbf"; # H = 180 TEAL + base0D = "407fbf"; # H = 210 BLUE + base0E = "7f40bf"; # H = 270 PURPLE + base0F = "bf40bf"; # H = 300 MAGENTA + }; }; } diff --git a/modules/workspace/fonts.nix b/modules/workspace/fonts.nix index 412f445..a3d2654 100644 --- a/modules/workspace/fonts.nix +++ b/modules/workspace/fonts.nix @@ -1,5 +1,4 @@ -{ pkgs, config, lib, ... }: -{ +{ pkgs, config, lib, ... }: { fonts = { fonts = with pkgs; [ ibm-plex @@ -8,14 +7,29 @@ material-design-icons material-icons ]; - fontconfig = { + fontconfig = let fonts = config.themes.fonts; + in { enable = lib.mkForce true; defaultFonts = { - monospace = [ "IBM Plex Mono 13" ]; - sansSerif = [ "IBM Plex Sans 13" ]; - serif = [ "IBM Plex Serif 13" ]; + monospace = [ "${fonts.mono.family} ${toString fonts.mono.size}" ]; + sansSerif = [ "${fonts.main.family} ${toString fonts.main.size}" ]; + serif = [ "${fonts.serif.family} ${toString fonts.serif.size}" ]; }; }; enableDefaultFonts = true; }; + themes.fonts = { + main = { + family = "IBM Plex Sans"; + size = 13; + }; + serif = { + family = "IBM Plex Serif"; + size = 13; + }; + mono = { + family = "IBM Plex Mono"; + size = 13; + }; + }; } diff --git a/modules/workspace/gtk.nix b/modules/workspace/gtk.nix index 0e1c8ee..b96dfcd 100644 --- a/modules/workspace/gtk.nix +++ b/modules/workspace/gtk.nix @@ -1,56 +1,21 @@ { pkgs, config, lib, inputs, ... }: let thm = config.themes.colors; - thm' = builtins.mapAttrs (name: value: builtins.substring 1 7 value) thm; - materia_colors = pkgs.writeTextFile { - name = "gtk-generated-colors"; - text = '' - BG=${thm'.bg} - FG=${thm'.fg} - BTN_BG=${thm'.bg} - BTN_FG=${thm'.fg} - MENU_BG=${thm'.bg} - MENU_FG=${thm'.fg} - ACCENT_BG=${thm'.alt} - SEL_BG=${thm'.blue} - SEL_FG=${thm'.bg} - TXT_BG=${thm'.bg} - TXT_FG=${thm'.fg} - HDR_BTN_BG=${thm'.bg} - HDR_BTN_FG=${thm'.fg} - WM_BORDER_FOCUS=${thm'.alt} - WM_BORDER_UNFOCUS=${thm'.dark} - MATERIA_STYLE_COMPACT=True - MATERIA_COLOR_VARIANT=dark - UNITY_DEFAULT_LAUNCHER_STYLE=False - NAME=generated - ''; - }; + thm' = builtins.mapAttrs (name: value: { hex.rgb = value; }) thm; in { nixpkgs.overlays = [ (self: super: { - rendersvg = self.runCommandNoCC "rendersvg" {} '' - mkdir -p $out/bin - ln -s ${self.resvg}/bin/resvg $out/bin/rendersvg - ''; - generated-gtk-theme = self.stdenv.mkDerivation rec { - name = "generated-gtk-theme"; - src = inputs.materia-theme; - buildInputs = with self; [ sassc bc which rendersvg meson ninja nodePackages.sass gtk4.dev optipng ]; - MATERIA_COLORS = materia_colors; - phases = [ "unpackPhase" "installPhase" ]; - installPhase = '' - HOME=/build - chmod 777 -R . - patchShebangs . - mkdir -p $out/share/themes - mkdir bin - sed -e 's/handle-horz-.*//' -e 's/handle-vert-.*//' -i ./src/gtk-2.0/assets.txt - echo "Changing colours:" - ./change_color.sh -o Generated "$MATERIA_COLORS" -i False -t "$out/share/themes" - chmod 555 -R . - ''; - }; + generated-gtk-theme = + pkgs.callPackage "${inputs.rycee}/pkgs/materia-theme" { + configBase16 = { + name = "Generated"; + kind = "dark"; + colors = thm' // { + base01 = thm'.base00; + base02 = thm'.base00; + }; + }; + }; }) ]; programs.dconf.enable = true; @@ -66,7 +31,9 @@ in { name = "Generated"; package = pkgs.generated-gtk-theme; }; - font = { name = "IBM Plex 12"; }; + font = { + name = with config.themes.fonts; "${main.family} ${toString main.size}"; + }; gtk3 = { bookmarks = [ "file:///home/balsoft/projects Projects" diff --git a/modules/workspace/i3blocks/default.nix b/modules/workspace/i3blocks/default.nix index 4cefa16..8ca44de 100644 --- a/modules/workspace/i3blocks/default.nix +++ b/modules/workspace/i3blocks/default.nix @@ -1,5 +1,5 @@ { pkgs, config, lib, ... }: -with lib; +with lib; with pkgs.my-lib; let scripts = import ./scripts pkgs config; in { secrets.wage = { @@ -19,24 +19,24 @@ in { trayOutput = "primary"; command = "true"; colors = let - thm = config.themes.colors; + thm = pkgs.my-lib.thmHash; default = { - background = thm.bg; - border = thm.bg; + background = thm.base00; + border = thm.base00; }; in { - background = thm.bg; - statusline = thm.fg; - separator = thm.alt; - focusedWorkspace = default // { text = thm.red; }; - activeWorkspace = default // { text = thm.green; }; - inactiveWorkspace = default // { text = thm.fg; }; - urgentWorkspace = default // { text = thm.orange; }; - bindingMode = default // { text = thm.yellow; }; + background = thm.base00; + statusline = thm.base05; + separator = thm.base02; + focusedWorkspace = default // { text = thm.base08; }; + activeWorkspace = default // { text = thm.base0B; }; + inactiveWorkspace = default // { text = thm.base05; }; + urgentWorkspace = default // { text = thm.base09; }; + bindingMode = default // { text = thm.base0A; }; }; statusCommand = "${pkgs.i3blocks}/bin/i3blocks"; fonts = { - names = [ "IBM Plex Sans" "Material Icons" "Roboto Mono" ]; + names = [ "${config.themes.fonts.main.family}" "Material Icons" "Roboto Mono" ]; style = "Regular"; size = 12.0; }; diff --git a/modules/workspace/kde/default.nix b/modules/workspace/kde/default.nix index 7b7b635..5d00b6f 100644 --- a/modules/workspace/kde/default.nix +++ b/modules/workspace/kde/default.nix @@ -1,6 +1,5 @@ { pkgs, lib, config, ... }: -with pkgs.my-lib; -{ +with pkgs.my-lib; { xdg.portal.enable = true; services.dbus.packages = [ pkgs.firefox pkgs.systemd pkgs.papirus-icon-theme ]; @@ -17,103 +16,105 @@ with pkgs.my-lib; KDEDIRS = "/run/current-system/sw:/run/current-system/sw/share/kservices5:/run/current-system/sw/share/kservicetypes5:/run/current-system/sw/share/kxmlgui5"; }; - home-manager.users.balsoft = { + home-manager.users.balsoft = let fonts = config.themes.fonts; + in { services.kdeconnect.enable = true; - xdg.configFile."kdeglobals".text = genIni { + xdg.configFile."kdeglobals".text = with thmDec; genIni { "Colors:Button" = { - BackgroundAlternate = thmDec.dark; - BackgroundNormal = thmDec.bg; - DecorationFocus = thmDec.alt; - DecorationHover = thmDec.alt; - ForegroundActive = thmDec.alt; - ForegroundInactive = thmDec.dark; - ForegroundLink = thmDec.blue; - ForegroundNegative = thmDec.red; - ForegroundNeutral = thmDec.orange; - ForegroundNormal = thmDec.fg; - ForegroundPositive = thmDec.green; - ForegroundVisited = thmDec.gray; + BackgroundAlternate = base01; + BackgroundNormal = base00; + DecorationFocus = base02; + DecorationHover = base02; + ForegroundActive = base02; + ForegroundInactive = base01; + ForegroundLink = base0D; + ForegroundNegative = base08; + ForegroundNeutral = base09; + ForegroundNormal = base05; + ForegroundPositive = base0B; + ForegroundVisited = base03; }; "Colors:Complementary" = { - BackgroundAlternate = thmDec.dark; - BackgroundNormal = thmDec.bg; - DecorationFocus = thmDec.alt; - DecorationHover = thmDec.alt; - ForegroundActive = thmDec.orange; - ForegroundInactive = thmDec.dark; - ForegroundLink = thmDec.blue; - ForegroundNegative = thmDec.red; - ForegroundNeutral = thmDec.yellow; - ForegroundNormal = thmDec.fg; - ForegroundPositive = thmDec.green; - ForegroundVisited = thmDec.alt; + BackgroundAlternate = base01; + BackgroundNormal = base00; + DecorationFocus = base02; + DecorationHover = base02; + ForegroundActive = base09; + ForegroundInactive = base01; + ForegroundLink = base0D; + ForegroundNegative = base08; + ForegroundNeutral = base0A; + ForegroundNormal = base05; + ForegroundPositive = base0B; + ForegroundVisited = base02; }; "Colors:Selection" = { - BackgroundAlternate = thmDec.alt; - BackgroundNormal = thmDec.alt; - DecorationFocus = thmDec.alt; - DecorationHover = thmDec.alt; - ForegroundActive = thmDec.fg; - ForegroundInactive = thmDec.fg; - ForegroundLink = thmDec.blue; - ForegroundNegative = thmDec.red; - ForegroundNeutral = thmDec.orange; - ForegroundNormal = thmDec.fg; - ForegroundPositive = thmDec.green; - ForegroundVisited = thmDec.alt; + BackgroundAlternate = base0D; + BackgroundNormal = base0D; + DecorationFocus = base0D; + DecorationHover = base0D; + ForegroundActive = base05; + ForegroundInactive = base05; + ForegroundLink = base0D; + ForegroundNegative = base08; + ForegroundNeutral = base09; + ForegroundNormal = base05; + ForegroundPositive = base0B; + ForegroundVisited = base02; }; "Colors:Tooltip" = { - BackgroundAlternate = thmDec.dark; - BackgroundNormal = thmDec.bg; - DecorationFocus = thmDec.alt; - DecorationHover = thmDec.alt; - ForegroundActive = thmDec.alt; - ForegroundInactive = thmDec.dark; - ForegroundLink = thmDec.blue; - ForegroundNegative = thmDec.red; - ForegroundNeutral = thmDec.orange; - ForegroundNormal = thmDec.fg; - ForegroundPositive = thmDec.green; - ForegroundVisited = thmDec.gray; + BackgroundAlternate = base01; + BackgroundNormal = base00; + DecorationFocus = base02; + DecorationHover = base02; + ForegroundActive = base02; + ForegroundInactive = base01; + ForegroundLink = base0D; + ForegroundNegative = base08; + ForegroundNeutral = base09; + ForegroundNormal = base05; + ForegroundPositive = base0B; + ForegroundVisited = base03; }; "Colors:View" = { - BackgroundAlternate = thmDec.dark; - BackgroundNormal = thmDec.bg; - DecorationFocus = thmDec.alt; - DecorationHover = thmDec.alt; - ForegroundActive = thmDec.alt; - ForegroundInactive = thmDec.dark; - ForegroundLink = thmDec.blue; - ForegroundNegative = thmDec.red; - ForegroundNeutral = thmDec.orange; - ForegroundNormal = thmDec.fg; - ForegroundPositive = thmDec.green; - ForegroundVisited = thmDec.gray; + BackgroundAlternate = base01; + BackgroundNormal = base00; + DecorationFocus = base02; + DecorationHover = base02; + ForegroundActive = base02; + ForegroundInactive = base01; + ForegroundLink = base0D; + ForegroundNegative = base08; + ForegroundNeutral = base09; + ForegroundNormal = base05; + ForegroundPositive = base0B; + ForegroundVisited = base03; }; "Colors:Window" = { - BackgroundAlternate = thmDec.dark; - BackgroundNormal = thmDec.bg; - DecorationFocus = thmDec.alt; - DecorationHover = thmDec.alt; - ForegroundActive = thmDec.alt; - ForegroundInactive = thmDec.dark; - ForegroundLink = thmDec.blue; - ForegroundNegative = thmDec.red; - ForegroundNeutral = thmDec.orange; - ForegroundNormal = thmDec.fg; - ForegroundPositive = thmDec.green; - ForegroundVisited = thmDec.gray; + BackgroundAlternate = base01; + BackgroundNormal = base00; + DecorationFocus = base02; + DecorationHover = base02; + ForegroundActive = base02; + ForegroundInactive = base01; + ForegroundLink = base0D; + ForegroundNegative = base08; + ForegroundNeutral = base09; + ForegroundNormal = base05; + ForegroundPositive = base0B; + ForegroundVisited = base03; }; General = { ColorScheme = "Generated"; Name = "Generated"; - fixed = "IBM Plex Mono,11,-1,5,50,0,0,0,0,0"; - font = "IBM Plex,11,-1,5,50,0,0,0,0,0"; - menuFont = "IBM Plex,11,-1,5,50,0,0,0,0,0"; + fixed = "${fonts.mono.family},${toString fonts.mono.size},-1,5,50,0,0,0,0,0"; + font = "${fonts.main.family},${toString fonts.main.size},-1,5,50,0,0,0,0,0"; + menuFont = "${fonts.main.family},${toString fonts.main.size},-1,5,50,0,0,0,0,0"; shadeSortColumn = true; - smallestReadableFont = "IBM Plex,8,-1,5,57,0,0,0,0,0,Medium"; - toolBarFont = "IBM Plex,11,-1,5,50,0,0,0,0,0"; + smallestReadableFont = + "${fonts.main.family},${toString fonts.main.size},-1,5,57,0,0,0,0,0,Medium"; + toolBarFont = "${fonts.main.family},${toString fonts.main.size},-1,5,50,0,0,0,0,0"; }; KDE = { DoubleClickInterval = 400; diff --git a/modules/workspace/mako.nix b/modules/workspace/mako.nix index 99fedbe..95f1616 100644 --- a/modules/workspace/mako.nix +++ b/modules/workspace/mako.nix @@ -1,18 +1,18 @@ { pkgs, config, ... }: { home-manager.users.balsoft = { wayland.windowManager.sway.config.startup = [{ command = "mako"; }]; - programs.mako = { + programs.mako = with pkgs.my-lib.thmHash; { enable = true; layer = "overlay"; - font = "IBM Plex 13"; + font = with config.themes.fonts; "${main.family} ${toString main.size}"; width = 500; height = 80; defaultTimeout = 10000; maxVisible = 10; - backgroundColor = "${config.themes.colors.bg}AA"; - textColor = config.themes.colors.fg; - borderColor = "${config.themes.colors.blue}AA"; - progressColor = "over ${config.themes.colors.green}"; + backgroundColor = "${base00}AA"; + textColor = base05; + borderColor = "${base0D}AA"; + progressColor = "over ${base0B}"; iconPath = "${pkgs.papirus-icon-theme}/share/icons/Papirus-Dark"; maxIconSize = 24; }; diff --git a/modules/workspace/sway/default.nix b/modules/workspace/sway/default.nix index 763f3bf..fcf6026 100755 --- a/modules/workspace/sway/default.nix +++ b/modules/workspace/sway/default.nix @@ -1,6 +1,6 @@ { pkgs, lib, config, ... }: let - thm = config.themes.colors; + thm = pkgs.my-lib.thmHash; apps = config.defaultApplications; lock_fork = pkgs.writeShellScript "lock_fork" "sudo /run/current-system/sw/bin/lock &"; @@ -39,31 +39,31 @@ in { "ﱘ" = [{ app_id = "cantata"; }]; }; fonts = { - names = [ "IBM Plex" ]; + names = [ config.themes.fonts.main.family ]; style = "Regular"; size = 9.0; }; colors = rec { - background = thm.bg; + background = thm.base00; unfocused = { - text = thm.dark; - border = thm.dark; - background = thm.bg; - childBorder = thm.dark; - indicator = thm.fg; + text = thm.base02; + border = thm.base01; + background = thm.base00; + childBorder = thm.base01; + indicator = thm.base07; }; focusedInactive = unfocused; urgent = unfocused // { - text = thm.fg; - border = thm.orange; - childBorder = thm.orange; + text = thm.base05; + border = thm.base09; + childBorder = thm.base09; }; focused = unfocused // { - childBorder = thm.gray; - border = thm.gray; - background = thm.dark; - text = thm.fg; + childBorder = thm.base03; + border = thm.base03; + background = thm.base01; + text = thm.base05; }; }; gaps = { @@ -227,7 +227,7 @@ in { }; }; output = { - "*".bg = "${thm.bg} solid_color"; + "*".bg = "${thm.base00} solid_color"; } // lib.optionalAttrs (config.device == "AMD-Workstation") { DP-1.position = "0 400"; HDMI-A-1 = { diff --git a/modules/workspace/xresources.nix b/modules/workspace/xresources.nix index b41e902..e28ea5a 100644 --- a/modules/workspace/xresources.nix +++ b/modules/workspace/xresources.nix @@ -1,27 +1,27 @@ { config, lib, pkgs, ... }: { home-manager.users.balsoft = { - xresources.properties = with config.themes.colors; { - "*background" = bg; - "*foreground" = fg; - "*color0" = dark; - "*color1" = orange; - "*color2" = green; - "*color3" = yellow; - "*color4" = blue; - "*color5" = purple; - "*color6" = cyan; - "*color7" = fg; - "*color8" = dark; - "*color9" = orange; - "*color10" = green; - "*color11" = yellow; - "*color12" = blue; - "*color13" = purple; - "*color14" = cyan; - "*color15" = fg; + xresources.properties = with pkgs.my-lib.thmHash; { + "*background" = base00; + "*foreground" = base07; + "*color0" = base00; + "*color1" = base08; + "*color2" = base0B; + "*color3" = base0A; + "*color4" = base0D; + "*color5" = base0E; + "*color6" = base0C; + "*color7" = base07; + "*color8" = base03; + "*color9" = base09; + "*color10" = base01; + "*color11" = base02; + "*color12" = base04; + "*color13" = base07; + "*color14" = base0F; + "*color15" = base07; - "emacs.font" = "IBM Plex Mono 10"; + "emacs.font" = "${config.themes.fonts.mono.family} ${toString config.themes.fonts.mono.size}"; # "emacs.color0" = dark; # "emacs.color1" = green;