From b5b6f3bdd542f7a423a69405aab9153afaaa98b6 Mon Sep 17 00:00:00 2001 From: Dmitriy Kholkin Date: Mon, 10 Aug 2020 01:17:22 +0400 Subject: [PATCH] change theme engine, some fixes --- default.nix | 1 + flake.lock | 48 ++++- flake.nix | 3 +- modules/applications.nix | 4 +- modules/applications/alacritty.nix | 94 ++++++++++ modules/applications/packages.nix | 5 +- modules/applications/rofi.nix | 15 ++ modules/applications/vscode.nix | 26 +++ modules/applications/youtube-to-mpv.nix | 39 ---- modules/default.nix | 4 +- modules/packages.nix | 16 +- .../advance-touch.nix | 0 modules/{applications => packages}/bpytop.nix | 0 .../flatcolor-gtk-theme.nix | 0 .../i3lock-fancy-rapid.nix | 0 modules/packages/ibm-plex-powerline.nix | 38 ++++ modules/{applications => packages}/nomino.nix | 0 .../{applications => packages}/wg-conf.nix | 0 .../{applications => packages}/xonar-fp.nix | 0 modules/packages/youtube-to-mpv.nix | 22 +++ modules/themes.nix | 119 +++++-------- modules/workspace/dunst.nix | 19 +- modules/workspace/fonts.nix | 27 +-- modules/workspace/gtk.nix | 35 ++-- modules/workspace/i3/default.nix | 104 ++++++----- modules/workspace/i3status-rust/default.nix | 42 +++-- .../workspace/i3status-rust/scripts/df.nix | 4 +- modules/workspace/kde/default.nix | 168 +++++++++--------- modules/workspace/rofi.nix | 8 - modules/workspace/xresources.nix | 53 +++--- modules/workspace/zsh.nix | 2 +- modules/xserver.nix | 23 +-- support.nix | 70 ++++---- todo.md | 11 +- 34 files changed, 592 insertions(+), 408 deletions(-) create mode 100644 modules/applications/alacritty.nix create mode 100644 modules/applications/rofi.nix create mode 100644 modules/applications/vscode.nix delete mode 100644 modules/applications/youtube-to-mpv.nix rename modules/{applications => packages}/advance-touch.nix (100%) rename modules/{applications => packages}/bpytop.nix (100%) rename modules/{applications => packages}/flatcolor-gtk-theme.nix (100%) rename modules/{applications => packages}/i3lock-fancy-rapid.nix (100%) create mode 100644 modules/packages/ibm-plex-powerline.nix rename modules/{applications => packages}/nomino.nix (100%) rename modules/{applications => packages}/wg-conf.nix (100%) rename modules/{applications => packages}/xonar-fp.nix (100%) create mode 100644 modules/packages/youtube-to-mpv.nix delete mode 100644 modules/workspace/rofi.nix diff --git a/default.nix b/default.nix index 673f1dc..ea4fb0c 100644 --- a/default.nix +++ b/default.nix @@ -5,6 +5,7 @@ rec { imports = [ (./hardware-configuration + "/${name}.nix") inputs.home-manager.nixosModules.home-manager + (import inputs.base16.hmModule) (import ./modules device) ]; diff --git a/flake.lock b/flake.lock index 12173a5..3d6f94a 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,23 @@ { "nodes": { + "base16": { + "inputs": { + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1597006283, + "narHash": "sha256-O7vu1L1TxSx7IS2BQL90RCR6S/9rGLs2NL+Porppp4I=", + "owner": "alukardbf", + "repo": "base16-nix", + "rev": "ee0b1e4c6aaf2e9ea959eb649bc409bd10eeb7dc", + "type": "github" + }, + "original": { + "owner": "alukardbf", + "repo": "base16-nix", + "type": "github" + } + }, "base16-horizon-scheme": { "flake": false, "locked": { @@ -18,7 +36,7 @@ }, "home-manager": { "inputs": { - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs_2" }, "locked": { "lastModified": 1591751635, @@ -69,7 +87,7 @@ }, "nix": { "inputs": { - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs_3" }, "locked": { "lastModified": 1596554686, @@ -86,15 +104,16 @@ }, "nixpkgs": { "locked": { - "lastModified": 1591748508, - "narHash": "sha256-GdYYaYsSBgYUhbDT1JJQ7vEgo8FWeW/AW7/qqJuCvRA=", + "lastModified": 1593360652, + "narHash": "sha256-8dXbDWhLzgZfiQ+XZ2rtSnUAafFizeeXJa5fuF/9n4w=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1d8c4410687390f9b8f92dbe6ff39fd8fc2b17c6", + "rev": "c5299e9d5bb18f1ebd817e0a4767103b9935f0ee", "type": "github" }, "original": { "id": "nixpkgs", + "ref": "release-20.03", "type": "indirect" } }, @@ -115,6 +134,20 @@ } }, "nixpkgs_2": { + "locked": { + "lastModified": 1591748508, + "narHash": "sha256-GdYYaYsSBgYUhbDT1JJQ7vEgo8FWeW/AW7/qqJuCvRA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "1d8c4410687390f9b8f92dbe6ff39fd8fc2b17c6", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixpkgs_3": { "locked": { "lastModified": 1591633336, "narHash": "sha256-oVXv4xAnDJB03LvZGbC72vSVlIbbJr8tpjEW5o/Fdek=", @@ -129,7 +162,7 @@ "type": "indirect" } }, - "nixpkgs_3": { + "nixpkgs_4": { "locked": { "lastModified": 1596265691, "narHash": "sha256-9ofCzFqttTsGrvTaS4RrDSTNQO9PFOz5uyn8V+2eA5M=", @@ -147,12 +180,13 @@ }, "root": { "inputs": { + "base16": "base16", "base16-horizon-scheme": "base16-horizon-scheme", "home-manager": "home-manager", "i3lock-fancy-rapid": "i3lock-fancy-rapid", "materia-theme": "materia-theme", "nix": "nix", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_4", "nixpkgs-mozilla": "nixpkgs-mozilla", "spotify-tui": "spotify-tui", "zsh-autosuggestions": "zsh-autosuggestions", diff --git a/flake.nix b/flake.nix index e11b426..d4ae3ae 100644 --- a/flake.nix +++ b/flake.nix @@ -2,9 +2,10 @@ description = "System configuration"; inputs = { - # nixpkgs = github:nixos/nixpkgs-channels/840c782d507d60aaa49aa9e3f6d0b0e780912742; nixpkgs.url = github:nixos/nixpkgs/nixos-unstable; home-manager.url = github:rycee/home-manager/bqv-flakes; + base16.url = github:alukardbf/base16-nix; + # base16.url = "/shared/nixos/base16-nix"; base16-horizon-scheme = { url = github:AlukardBF/base16-horizon-scheme; flake = false; diff --git a/modules/applications.nix b/modules/applications.nix index 8cd4049..5038634 100644 --- a/modules/applications.nix +++ b/modules/applications.nix @@ -7,8 +7,8 @@ with import ../support.nix { inherit lib config; }; { config = rec { defaultApplications = { term = { - cmd = "${pkgs.rxvt_unicode}/bin/urxvt"; - desktop = "urxvt"; + cmd = "${pkgs.alacritty}/bin/alacritty"; + desktop = "alacritty"; }; dmenu = { cmd = "${pkgs.rofi}/bin/rofi -show run"; diff --git a/modules/applications/alacritty.nix b/modules/applications/alacritty.nix new file mode 100644 index 0000000..da4bf1f --- /dev/null +++ b/modules/applications/alacritty.nix @@ -0,0 +1,94 @@ +{ pkgs, lib, config, ... }: +let + thm = config.lib.base16.theme; +in +{ + home-manager.users.alukard = { + programs.alacritty = { + enable = true; + settings = { + font = { + # normal.family = "Roboto Mono for Powerline"; + # bold = { style = "Bold"; }; + normal = { + family = "${thm.powerlineFont}"; + style = "Regular"; + }; + bold = { + family = "${thm.powerlineFont}"; + style = "Bold"; + }; + italic = { + family = "${thm.powerlineFont}"; + style = "Italic"; + }; + bold_italic = { + family = "${thm.powerlineFont}"; + style = "Bold Italic"; + }; + size = 11; + }; + + window.padding = { + x = 2; + y = 2; + }; + + shell.program = "${pkgs.zsh}/bin/zsh"; + + cursor.style = "Beam"; + + colors = { + primary = { + background = "0x${thm.base00-hex}"; + foreground = "0x${thm.base05-hex}"; + }; + cursor = { + text = "0x${thm.base00-hex}"; + cursor = "0x${thm.base05-hex}"; + }; + normal = { + black = "0x${thm.base00-hex}"; + red = "0x${thm.base08-hex}"; + green = "0x${thm.base0B-hex}"; + yellow = "0x${thm.base0A-hex}"; + blue = "0x${thm.base0D-hex}"; + magenta = "0x${thm.base0E-hex}"; + cyan = "0x${thm.base0C-hex}"; + white = "0x${thm.base05-hex}"; + }; + bright = { + black = "0x${thm.base03-hex}"; + red = "0x${thm.base09-hex}"; + green = "0x${thm.base01-hex}"; + yellow = "0x${thm.base02-hex}"; + blue = "0x${thm.base04-hex}"; + magenta = "0x${thm.base06-hex}"; + cyan = "0x${thm.base0F-hex}"; + white = "0x${thm.base07-hex}"; + }; + draw_bold_text_with_bright_colors = "false"; + # bright = { + # black = "0x${thm.base03-hex}"; + # red = "0x${thm.base08-hex}"; + # green = "0x${thm.base0B-hex}"; + # yellow = "0x${thm.base0A-hex}"; + # blue = "0x${thm.base0D-hex}"; + # magenta = "0x${thm.base0E-hex}"; + # cyan = "0x${thm.base0C-hex}"; + # white = "0x${thm.base07-hex}"; + # }; + # indexed_colors = { + # - { index: 16, color: '0xff8700' } + # - { index: 17, color: '0xd65d0e' } + # - { index: 18, color: '0x3a3a3a' } + # - { index: 19, color: '0x4e4e4e' } + # - { index: 20, color: '0x949494' } + # - { index: 21, color: '0xd5c4a1' } + # }; + + }; + }; + }; + }; +} \ No newline at end of file diff --git a/modules/applications/packages.nix b/modules/applications/packages.nix index 69b3f41..806491b 100644 --- a/modules/applications/packages.nix +++ b/modules/applications/packages.nix @@ -40,7 +40,6 @@ in { vdpauinfo libva-utils lm_sensors - libnotify gparted neofetch bashmount @@ -64,13 +63,13 @@ in { # cli ranger youtube-dl - wpgtk + # wpgtk # pywal # python27Packages.pygtk # pywal GTK2 reload # python2 # pywal GTK2 reload # ncmpcpp - (youtube-to-mpv.override { isLaptop = isLaptop; }) + youtube-to-mpv wg-conf (vivaldi.override { proprietaryCodecs = true; }) diff --git a/modules/applications/rofi.nix b/modules/applications/rofi.nix new file mode 100644 index 0000000..3a032af --- /dev/null +++ b/modules/applications/rofi.nix @@ -0,0 +1,15 @@ +{ pkgs, config, lib, ... }: +let + thm = config.lib.base16.theme; + themeFile = config.lib.base16.templateFile { name = "rofi"; }; +in +{ + home-manager.users.alukard = { + programs.rofi = { + enable = true; + font = "${thm.fontMono} ${thm.headerSize}"; + terminal = config.defaultApplications.term.cmd; + theme = "${themeFile}"; + }; + }; +} \ No newline at end of file diff --git a/modules/applications/vscode.nix b/modules/applications/vscode.nix new file mode 100644 index 0000000..e32f157 --- /dev/null +++ b/modules/applications/vscode.nix @@ -0,0 +1,26 @@ +{ pkgs, lib, config, ... }: +let + thm = config.lib.base16.theme; +in +{ + + # Support Wal color theme + home-manager.users.alukard.home.file.".cache/wal/colors".text = '' + #${thm.base00-hex} + #${thm.base01-hex} + #${thm.base02-hex} + #${thm.base03-hex} + #${thm.base04-hex} + #${thm.base05-hex} + #${thm.base06-hex} + #${thm.base07-hex} + #${thm.base08-hex} + #${thm.base09-hex} + #${thm.base0A-hex} + #${thm.base0B-hex} + #${thm.base0C-hex} + #${thm.base0D-hex} + #${thm.base0E-hex} + #${thm.base0F-hex} + ''; +} \ No newline at end of file diff --git a/modules/applications/youtube-to-mpv.nix b/modules/applications/youtube-to-mpv.nix deleted file mode 100644 index 7e701f5..0000000 --- a/modules/applications/youtube-to-mpv.nix +++ /dev/null @@ -1,39 +0,0 @@ - -{ stdenv, pkgs, isLaptop ? false }: -# TODO: отвязать от urxvt -let - # myScript = if isLaptop then - # pkgs.writeShellScriptBin "yt-mpv" '' - # if [[ "$1" != "--no-video" ]]; then - # BATTERY="`${pkgs.acpi}/bin/acpi -b | grep --invert-match unavailable | head -1`" - # STATUS=`awk -F'[,:] ' '{print $2}' <<< "$BATTERY"` - # ${pkgs.libnotify}/bin/notify-send -t 3000 --icon=video-television "Playing Video" "$(xclip -o)" - # if [[ "$STATUS" == "Discharging" ]]; then - # ${pkgs.mpv}/bin/mpv --fs --ytdl-format="bestvideo[height<=?1080][fps<=?30][vcodec!=?vp9]+bestaudio/best" "$(xclip -o)" - # else - # ${pkgs.mpv}/bin/mpv --fs "$(xclip -o)" - # fi - # else - # ${pkgs.libnotify}/bin/notify-send -t 3000 --icon=video-television "Playing Audio" "$(xclip -o)" - # ${pkgs.rxvt_unicode}/bin/urxvt -e ${pkgs.mpv}/bin/mpv --no-video "$(xclip -o)" - # fi - # '' - # else - myScript = pkgs.writeShellScriptBin "yt-mpv" '' - if [[ "$1" != "--no-video" ]]; then - ${pkgs.libnotify}/bin/notify-send -t 3000 --icon=video-television "Playing Video" "$(xclip -o)" - ${pkgs.mpv}/bin/mpv --fs "$(xclip -o)" - else - ${pkgs.libnotify}/bin/notify-send -t 3000 --icon=video-television "Playing Audio" "$(xclip -o)" - ${pkgs.rxvt_unicode}/bin/urxvt -e ${pkgs.mpv}/bin/mpv --no-video "$(xclip -o)" - fi - ''; -in -stdenv.mkDerivation rec { - name = "youtube-to-mpv"; - src = myScript; - installPhase = '' - mkdir -p $out/bin - mv ./bin/yt-mpv $out/bin/yt-mpv - ''; -} \ No newline at end of file diff --git a/modules/default.nix b/modules/default.nix index bf25b72..b25affd 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -1,7 +1,10 @@ device: { config, lib, ... }: { imports = [ + ./applications/alacritty.nix ./applications/packages.nix + ./applications/rofi.nix + ./applications/vscode.nix # ./workspace/barrier.nix ./workspace/dunst.nix @@ -16,7 +19,6 @@ device: ./workspace/mpv.nix ./workspace/pulseeffects ./workspace/qbittorrent - ./workspace/rofi.nix # ./workspace/spotifyd.nix ./workspace/ssh.nix ./workspace/xresources.nix diff --git a/modules/packages.nix b/modules/packages.nix index 1a4bae8..18df33e 100644 --- a/modules/packages.nix +++ b/modules/packages.nix @@ -10,19 +10,21 @@ rec { inherit inputs; - youtube-to-mpv = pkgs.callPackage ./applications/youtube-to-mpv.nix { }; + youtube-to-mpv = pkgs.callPackage ./packages/youtube-to-mpv.nix { }; - wg-conf = pkgs.callPackage ./applications/wg-conf.nix { }; + wg-conf = pkgs.callPackage ./packages/wg-conf.nix { }; - i3lock-fancy-rapid = pkgs.callPackage ./applications/i3lock-fancy-rapid.nix { }; + i3lock-fancy-rapid = pkgs.callPackage ./packages/i3lock-fancy-rapid.nix { }; - xonar-fp = pkgs.callPackage ./applications/xonar-fp.nix { }; + xonar-fp = pkgs.callPackage ./packages/xonar-fp.nix { }; - advance-touch = pkgs.callPackage ./applications/advance-touch.nix { }; + advance-touch = pkgs.callPackage ./packages/advance-touch.nix { }; - nomino = pkgs.callPackage ./applications/nomino.nix { }; + nomino = pkgs.callPackage ./packages/nomino.nix { }; - bpytop = pkgs.callPackage ./applications/bpytop.nix { }; + bpytop = pkgs.callPackage ./packages/bpytop.nix { }; + + ibm-plex-powerline = pkgs.callPackage ./packages/ibm-plex-powerline.nix { }; # micro = super.micro.overrideAttrs (old: rec { # version = "2.0.6"; diff --git a/modules/applications/advance-touch.nix b/modules/packages/advance-touch.nix similarity index 100% rename from modules/applications/advance-touch.nix rename to modules/packages/advance-touch.nix diff --git a/modules/applications/bpytop.nix b/modules/packages/bpytop.nix similarity index 100% rename from modules/applications/bpytop.nix rename to modules/packages/bpytop.nix diff --git a/modules/applications/flatcolor-gtk-theme.nix b/modules/packages/flatcolor-gtk-theme.nix similarity index 100% rename from modules/applications/flatcolor-gtk-theme.nix rename to modules/packages/flatcolor-gtk-theme.nix diff --git a/modules/applications/i3lock-fancy-rapid.nix b/modules/packages/i3lock-fancy-rapid.nix similarity index 100% rename from modules/applications/i3lock-fancy-rapid.nix rename to modules/packages/i3lock-fancy-rapid.nix diff --git a/modules/packages/ibm-plex-powerline.nix b/modules/packages/ibm-plex-powerline.nix new file mode 100644 index 0000000..caa1c51 --- /dev/null +++ b/modules/packages/ibm-plex-powerline.nix @@ -0,0 +1,38 @@ +{ python3Packages, python2, fetchFromGitHub, fetchzip }: +let + fontpatcher = python3Packages.buildPythonApplication rec { + name = "fontpatcher"; + src = fetchFromGitHub { + owner = "powerline"; + repo = "fontpatcher"; + rev = "c3488091611757cb02014ed7ed2f11be0208da83"; + sha256 = "1261h8233spflbbwbjz9w9bxcmznjldxwff08xn2cly6r9f49a0s"; + }; + propagatedBuildInputs = [ + python2 + python3Packages.fontforge + ]; + doCheck = false; + preFixup = '' + mkdir -p $out/fonts + cp fonts/* $out/fonts + ''; + }; + + version = "5.1.0"; +in fetchzip { + name = "ibm-plex-powerline-${version}"; + + url = "https://github.com/IBM/plex/releases/download/v${version}/OpenType.zip"; + + postFetch = '' + mkdir -p $out/share/fonts/opentype + unzip -j $downloadedFile "OpenType/*/IBMPlexMono*.otf" -d $out/share/fonts/opentype + cd $out/share/fonts/opentype + ${fontpatcher}/bin/powerline-fontpatcher $out/share/fonts/opentype/* + rm -f $out/share/fonts/opentype/IBMPlex* + ''; + + sha256 = "sha256-DaNXraX1gXhoS3Pnttw4VVHRvGrQRR2wuplNJn+c6cg="; +} + diff --git a/modules/applications/nomino.nix b/modules/packages/nomino.nix similarity index 100% rename from modules/applications/nomino.nix rename to modules/packages/nomino.nix diff --git a/modules/applications/wg-conf.nix b/modules/packages/wg-conf.nix similarity index 100% rename from modules/applications/wg-conf.nix rename to modules/packages/wg-conf.nix diff --git a/modules/applications/xonar-fp.nix b/modules/packages/xonar-fp.nix similarity index 100% rename from modules/applications/xonar-fp.nix rename to modules/packages/xonar-fp.nix diff --git a/modules/packages/youtube-to-mpv.nix b/modules/packages/youtube-to-mpv.nix new file mode 100644 index 0000000..bec03bd --- /dev/null +++ b/modules/packages/youtube-to-mpv.nix @@ -0,0 +1,22 @@ + +{ stdenv, pkgs, config }: +# TODO: config.defaultApplications doesn't work +let + yt-mpv = pkgs.writeShellScriptBin "yt-mpv" '' + if [[ "$1" != "--no-video" ]]; then + ${pkgs.libnotify}/bin/notify-send -t 3000 --icon=video-television "Playing Video" "$(xclip -o)" + ${pkgs.mpv}/bin/mpv --fs "$(xclip -o)" + else + ${pkgs.libnotify}/bin/notify-send -t 3000 --icon=video-television "Playing Audio" "$(xclip -o)" + ${pkgs.alacritty}/bin/alacritty -e ${pkgs.mpv}/bin/mpv --no-video "$(xclip -o)" + fi + ''; +in +stdenv.mkDerivation rec { + name = "youtube-to-mpv"; + src = yt-mpv; + installPhase = '' + mkdir -p $out/bin + mv ./bin/yt-mpv $out/bin/yt-mpv + ''; +} \ No newline at end of file diff --git a/modules/themes.nix b/modules/themes.nix index ada2c7d..9416dcd 100644 --- a/modules/themes.nix +++ b/modules/themes.nix @@ -1,79 +1,52 @@ { 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; +# let +# fromBase16 = base16scheme: +# builtins.mapAttrs (_: v: "#" + v) { +# bg = base00-hex; +# # fg = base07-hex; +# fg = base05-hex; +# }; +# in +{ + # options = { + # themes = { + # colors = mkOption { + # description = + # "Set of colors from which the themes for various applications will be generated"; + # type = with types; + # submodule { - gray = base03; - alt = base02; - dark = base01; - - red = base08; - orange = base09; - yellow = base0A; - green = base0B; - cyan = base0C; - blue = base0D; - purple = base0E; - }; - - fromYAML = yaml: - builtins.fromJSON (builtins.readFile (pkgs.stdenv.mkDerivation { - name = "fromYAML"; - phases = [ "buildPhase" ]; - buildPhase = "echo '${yaml}' | ${pkgs.yaml2json}/bin/yaml2json > $out"; - })); -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"; - }; - }; - }; - }; - }; - # config = { - # themes.colors = (fromBase16 (fromYAML - # (builtins.readFile "${inputs.base16-unclaimed-schemes}/irblack.yaml"))) - # // { - # alt = "#001d6c"; - - # red = "#da1e28"; - # green = "#24a148"; - # orange = "#ff832b"; - # yellow = "#f1c21b"; + # options = let + # colors = (builtins.genList (x: (toString x) ) 15); + # in { + # bg = types.str; + # fg = types.str; + # } // builtins.listToAttrs (builtins.map (x: { + # name = "base${x}"; + # value = types.str; + # }) colors); + # }; # }; + # }; # }; - config = { - themes.colors = (fromBase16 (fromYAML - (builtins.readFile "${inputs.base16-horizon-scheme}/horizon-dark.yaml"))); + config.themes.base16 = { + enable = true; + # scheme = "tomorrow"; + # variant = "tomorrow-night"; + scheme = "gruvbox"; + variant = "gruvbox-dark-medium"; + extraParams = { + font = "IBM Plex Sans"; + fontMono = "IBM Plex Mono"; + fontSerif = "IBM Plex Serif"; + fallbackFont = "Roboto"; + fallbackFontMono = "Roboto Mono"; + fallbackFontSerif = "Roboto Slab"; + fontSize = "12"; + headerSize = "14"; + iconFont = "Material Icons"; + powerlineFont = "IBM Plex Mono for Powerline"; + }; }; -} +} \ No newline at end of file diff --git a/modules/workspace/dunst.nix b/modules/workspace/dunst.nix index 383e0f7..e5242c3 100644 --- a/modules/workspace/dunst.nix +++ b/modules/workspace/dunst.nix @@ -1,5 +1,5 @@ { pkgs, config, lib, ... }: -let thm = config.themes.colors; +let thm = config.lib.base16.theme; in { home-manager.users.alukard = { services.dunst = { @@ -12,8 +12,9 @@ in { global = { geometry = "500x5-30+50"; transparency = 10; - frame_color = thm.blue; - font = "Roboto 13"; + frame_color = "#${thm.base05-hex}"; + separator_color = "#${thm.base05-hex}"; + font = "${thm.font} ${thm.fontSize}"; padding = 15; horizontal_padding = 17; word_wrap = true; @@ -25,20 +26,20 @@ in { }; urgency_low = { - background = thm.bg; - foreground = thm.fg; + background = "#${thm.base01-hex}"; + foreground = "#${thm.base03-hex}"; timeout = 5; }; urgency_normal = { - background = thm.alt; - foreground = thm.fg; + background = "#${thm.base02-hex}"; + foreground = "#${thm.base05-hex}"; timeout = 10; }; urgency_critical = { - background = thm.fg; - foreground = thm.bg; + background = "#${thm.base08-hex}"; + foreground = "#${thm.base06-hex}"; timeout = 15; }; }; diff --git a/modules/workspace/fonts.nix b/modules/workspace/fonts.nix index 2546e6f..d795e30 100644 --- a/modules/workspace/fonts.nix +++ b/modules/workspace/fonts.nix @@ -1,26 +1,29 @@ -{ pkgs, config, lib, ... }: { +{ pkgs, config, lib, ... }: +let + thm = config.lib.base16.theme; +in +{ fonts = { fonts = with pkgs; [ - # terminus_font - # opensans-ttf + ibm-plex + ibm-plex-powerline + fira-code + material-design-icons + material-icons roboto roboto-mono roboto-slab - fira-code - # noto-fonts - # noto-fonts-emoji - powerline-fonts - material-icons font-awesome_4 + # powerline-fonts ]; fontconfig = { enable = true; defaultFonts = { - monospace = ["Roboto Mono 13"]; - sansSerif = ["Roboto 13"]; - serif = ["Roboto Slab 13"]; + monospace = [ "${thm.fontMono} 13" ]; + sansSerif = [ "${thm.font} 13" ]; + serif = [ "${thm.fontSerif} 13" ]; }; }; enableDefaultFonts = true; }; -} +} \ No newline at end of file diff --git a/modules/workspace/gtk.nix b/modules/workspace/gtk.nix index af1b52a..72794ac 100644 --- a/modules/workspace/gtk.nix +++ b/modules/workspace/gtk.nix @@ -1,25 +1,24 @@ { pkgs, config, lib, inputs, ... }: let - thm = config.themes.colors; - thm' = builtins.mapAttrs (name: value: builtins.substring 1 7 value) thm; + thm = config.lib.base16.theme; 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'.blue} - 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'.blue} - WM_BORDER_UNFOCUS=${thm'.alt} + BG=${thm.base00-hex} + FG=${thm.base05-hex} + BTN_BG=${thm.base00-hex} + BTN_FG=${thm.base05-hex} + MENU_BG=${thm.base00-hex} + MENU_FG=${thm.base05-hex} + ACCENT_BG=${thm.base02-hex} + SEL_BG=${thm.base0D-hex} + SEL_FG=${thm.base00-hex} + TXT_BG=${thm.base00-hex} + TXT_FG=${thm.base05-hex} + HDR_BTN_BG=${thm.base00-hex} + HDR_BTN_FG=${thm.base05-hex} + WM_BORDER_FOCUS=${thm.base02-hex} + WM_BORDER_UNFOCUS=${thm.base01-hex} MATERIA_STYLE_COMPACT=True MATERIA_COLOR_VARIANT=dark UNITY_DEFAULT_LAUNCHER_STYLE=False @@ -59,7 +58,7 @@ in { # package = pkgs.flatcolor-gtk-theme; }; font = { - name = "Roboto 12"; + name = "${thm.font} ${thm.fontSize}"; }; gtk3.extraConfig.gtk-cursor-theme-name = "bibata_oil"; }; diff --git a/modules/workspace/i3/default.nix b/modules/workspace/i3/default.nix index 4384bad..770cec5 100644 --- a/modules/workspace/i3/default.nix +++ b/modules/workspace/i3/default.nix @@ -1,6 +1,6 @@ { pkgs, config, ... }: let - thm = config.themes.colors; + thm = config.lib.base16.theme; apps = config.defaultApplications; # lock = pkgs.writeShellScript "lock" "sudo /run/current-system/sw/bin/lock"; in { @@ -21,60 +21,55 @@ in { ]; "ﱘ" = [{ class = "cantata"; }]; }; - fonts = [ "RobotoMono 9" ]; + fonts = [ "${thm.fontMono} 9" ]; bars = [ ]; - # colors = rec { - # background = thm.bg; - # unfocused = { - # border = thm.dark; - # background = thm.bg; - # text = thm.alt; - # indicator = thm.fg; - # childBorder = thm.dark; - # }; - # focusedInactive = unfocused; - # urgent = unfocused // { - # border = thm.orange; - # text = thm.fg; - # childBorder = thm.orange; - # }; - # focused = unfocused // { - # border = thm.blue; - # background = thm.dark; - # text = thm.fg; - # childBorder = thm.blue; - # }; - # }; - colors = rec { - background = "\$bg"; + colors = { + focused = { + border = "#${thm.base05-hex}"; + background = "#${thm.base00-hex}"; + text = "#${thm.base0D-hex}"; + indicator = "#${thm.base0D-hex}"; + childBorder = "#${thm.base0C-hex}"; + }; + focusedInactive = { + border = "#${thm.base01-hex}"; + background = "#${thm.base01-hex}"; + text = "#${thm.base05-hex}"; + indicator = "#${thm.base03-hex}"; + childBorder = "#${thm.base01-hex}"; + }; unfocused = { - border = "\$dark"; - background = "\$bg"; - text = "\$alt"; - indicator = "\$fg"; - childBorder = "\$dark"; + border = "#${thm.base01-hex}"; + background = "#${thm.base00-hex}"; + text = "#${thm.base05-hex}"; + indicator = "#${thm.base01-hex}"; + childBorder = "#${thm.base01-hex}"; }; - focusedInactive = unfocused; - urgent = unfocused // { - border = "\$purple"; - text = "\$fg"; - childBorder = "\$purple"; + urgent = { + border = "#${thm.base08-hex}"; + background = "#${thm.base08-hex}"; + text = "#${thm.base00-hex}"; + indicator = "#${thm.base08-hex}"; + childBorder = "#${thm.base08-hex}"; }; - focused = unfocused // { - border = "\$blue"; - background = "\$dark"; - text = "\$fg"; - childBorder = "\$blue"; + placeholder = { + border = "#${thm.base00-hex}"; + background = "#${thm.base00-hex}"; + text = "#${thm.base05-hex}"; + indicator = "#${thm.base00-hex}"; + childBorder = "#${thm.base00-hex}"; }; + background = "#${thm.base07-hex}"; }; + gaps = { inner = 6; smartGaps = true; smartBorders = "on"; }; - focus.mouseWarping = true; + focus.mouseWarping = false; focus.followMouse = false; modifier = "Mod4"; window = { @@ -89,7 +84,7 @@ in { ]; }; startup = map (a: { notification = false; } // a) [ - # { command = "${pkgs.xorg.xrdb}/bin/xrdb -merge ~/.Xresources"; } + { command = "${pkgs.xorg.xrdb}/bin/xrdb -merge ~/.Xresources"; } { command = "${pkgs.pywal}/bin/wal -R"; } { command = "${pkgs.tdesktop}/bin/telegram-desktop"; } { @@ -188,12 +183,23 @@ in { default_border pixel 1 hide_edge_borders smart - set_from_resource $bg i3wm.background "{background}" - set_from_resource $fg i3wm.foreground "{foreground}" - set_from_resource $dark i3wm.color0 "{color0}" - set_from_resource $alt i3wm.color8 "{color8}" - set_from_resource $purple i3wm.color5 "{color5}" - set_from_resource $blue i3wm.color4 "{color4}" + # Set colors + set $base00 #${thm.base00-hex} + set $base01 #${thm.base01-hex} + set $base02 #${thm.base02-hex} + set $base03 #${thm.base03-hex} + set $base04 #${thm.base04-hex} + set $base05 #${thm.base05-hex} + set $base06 #${thm.base06-hex} + set $base07 #${thm.base07-hex} + set $base08 #${thm.base08-hex} + set $base09 #${thm.base09-hex} + set $base0A #${thm.base0A-hex} + set $base0B #${thm.base0B-hex} + set $base0C #${thm.base0C-hex} + set $base0D #${thm.base0D-hex} + set $base0E #${thm.base0E-hex} + set $base0F #${thm.base0F-hex} ''; }; } diff --git a/modules/workspace/i3status-rust/default.nix b/modules/workspace/i3status-rust/default.nix index 7f86dd0..542f87d 100644 --- a/modules/workspace/i3status-rust/default.nix +++ b/modules/workspace/i3status-rust/default.nix @@ -4,12 +4,14 @@ with rec { }; with deviceSpecific; with import ../../../support.nix { inherit pkgs config lib; }; -let scripts = import ./scripts pkgs config; +let + scripts = import ./scripts pkgs config; + thm = config.lib.base16.theme; in { home-manager.users.alukard.xsession.windowManager.i3.extraConfig = '' bar { id top - font pango:Roboto Mono 11, FontAwesome 11 + font pango:${thm.iconFont} 11, ${thm.fontMono} 11, ${thm.fallbackFontMono} 11 mode dock hidden_state hide position top @@ -18,22 +20,36 @@ in { strip_workspace_numbers no tray_output primary colors { - background $bg - statusline $fg - separator $alt - focused_workspace $bg $bg $blue - active_workspace $bg $bg $green - inactive_workspace $bg $bg $fg - urgent_workspace $bg $bg $orange - binding_mode $bg $bg $yellow + background #${thm.base00-hex} + separator #${thm.base01-hex} + statusline #${thm.base04-hex} + focused_workspace #${thm.base00-hex} #${thm.base00-hex} #${thm.base0D-hex} + active_workspace #${thm.base00-hex} #${thm.base03-hex} #${thm.base00-hex} + inactive_workspace #${thm.base00-hex} #${thm.base01-hex} #${thm.base05-hex} + urgent_workspace #${thm.base00-hex} #${thm.base0A-hex} #${thm.base00-hex} + binding_mode #${thm.base00-hex} #${thm.base0A-hex} #${thm.base00-hex} } } ''; - # TODO: rewrite concat home-manager.users.alukard.xdg.configFile."i3status-rust/config.toml".text = lib.concatStrings ['' - theme = "slick" - icons = "awesome" + + [theme] + name = "solarized-dark" + [theme.overrides] + idle_bg = "#${thm.base00-hex}" + idle_fg = "#${thm.base05-hex}" + info_bg = "#${thm.base0C-hex}" + info_fg = "#${thm.base00-hex}" + good_bg = "#${thm.base0B-hex}" + good_fg = "#${thm.base00-hex}" + warning_bg = "#${thm.base0A-hex}" + warning_fg = "#${thm.base00-hex}" + critical_bg = "#${thm.base08-hex}" + critical_fg = "#${thm.base00-hex}" + + [icons] + name = "material" [[block]] block = "net" diff --git a/modules/workspace/i3status-rust/scripts/df.nix b/modules/workspace/i3status-rust/scripts/df.nix index 64fa788..7d90f34 100644 --- a/modules/workspace/i3status-rust/scripts/df.nix +++ b/modules/workspace/i3status-rust/scripts/df.nix @@ -1,4 +1,4 @@ -{ bash, config, curl, ... }: '' +{ bash, config, curl, ... }: with config.lib.base16.theme; '' #!/usr/bin/env bash - echo 'folder' `df -h / | tail -1 | awk '{print $4}'`iB + echo 'folder' `df -h / | tail -1 | awk '{print $4}'`iB '' diff --git a/modules/workspace/kde/default.nix b/modules/workspace/kde/default.nix index c051f7e..aba11fa 100644 --- a/modules/workspace/kde/default.nix +++ b/modules/workspace/kde/default.nix @@ -41,90 +41,90 @@ with import ../../../support.nix { inherit lib config; }; { }; home-manager.users.alukard.xdg.configFile."kdeglobals".text = 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; - }; - "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; - }; - "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; - }; - "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; - }; - "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; - }; - "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; - }; + # "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; + # }; + # "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; + # }; + # "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; + # }; + # "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; + # }; + # "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; + # }; + # "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; + # }; General = { ColorScheme = "Generated"; Name = "Generated"; diff --git a/modules/workspace/rofi.nix b/modules/workspace/rofi.nix deleted file mode 100644 index aba6625..0000000 --- a/modules/workspace/rofi.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ pkgs, config, lib, ... }: { - home-manager.users.alukard.programs.rofi = { - enable = true; - font = "Roboto Mono 14"; - terminal = config.defaultApplications.term.cmd; - theme = "~/.cache/wal/colors-rofi-dark.rasi"; - }; -} \ No newline at end of file diff --git a/modules/workspace/xresources.nix b/modules/workspace/xresources.nix index 075e850..c491ca8 100644 --- a/modules/workspace/xresources.nix +++ b/modules/workspace/xresources.nix @@ -2,30 +2,31 @@ { config, lib, pkgs, ... }: { home-manager.users.alukard = { - xresources.properties = with config.themes.colors; { - "*background" = bg; - "*foreground" = fg; - "*color0" = dark; - "*color1" = red; - "*color2" = green; - "*color3" = yellow; - "*color4" = blue; - "*color5" = purple; - "*color6" = cyan; - "*color7" = fg; - "*color8" = dark; - "*color9" = red; - "*color10" = green; - "*color11" = yellow; - "*color12" = blue; - "*color13" = purple; - "*color14" = cyan; - "*color15" = fg; + xresources.properties = with config.lib.base16.theme; { + "*background" = "#${base00-hex}"; + "*foreground" = "#${base05-hex}"; + "*color0" = "#${base00-hex}"; + "*color1" = "#${base08-hex}"; + "*color2" = "#${base0B-hex}"; + "*color3" = "#${base0A-hex}"; + "*color4" = "#${base0D-hex}"; + "*color5" = "#${base0E-hex}"; + "*color6" = "#${base0C-hex}"; + "*color7" = "#${base05-hex}"; + "*color8" = "#${base03-hex}"; + "*color9" = "#${base09-hex}"; + "*color10" = "#${base01-hex}"; + "*color11" = "#${base02-hex}"; + "*color12" = "#${base04-hex}"; + "*color13" = "#${base06-hex}"; + "*color14" = "#${base0F-hex}"; + "*color15" = "#${base07-hex}"; + "*cursorColor" = "#${base05-hex}"; - "URxvt.font" = "xft:Roboto Mono for Powerline:style=Regular:size=11"; - "URxvt.boldFont" = "xft:Roboto Mono for Powerline:style=Bold:size=11"; - "URxvt.italicFont" = "xft:Roboto Mono for Powerline:style=Italic:size=11"; - "URxvt.boldItalicfont" = "xft:Roboto Mono for Powerline:style=Bold Italic:size=11"; + "URxvt.font" = "xft:${powerlineFont}:style=Regular:size=11"; + "URxvt.boldFont" = "xft:${powerlineFont}:style=Bold:size=11"; + "URxvt.italicFont" = "xft:${powerlineFont}:style=Italic:size=11"; + "URxvt.boldItalicfont" = "xft:${powerlineFont}:style=Bold Italic:size=11"; "URxvt.letterSpace" = "0"; "URxvt.lineSpace" = "0"; @@ -46,12 +47,6 @@ "URxvt.keysym.Control-Down" = "\\033[1;5B"; "URxvt.keysym.Control-Right" = "\\033[1;5C"; "URxvt.keysym.Control-Left" = "\\033[1;5D"; - }; - # home.activation.xrdb = { - # after = ["linkGeneration"]; - # before = []; - # data = "DISPLAY=:0 ${pkgs.xorg.xrdb}/bin/xrdb -merge ${config.users.users.alukard.home}/.Xresources"; - # }; }; } \ No newline at end of file diff --git a/modules/workspace/zsh.nix b/modules/workspace/zsh.nix index c91ab23..8a9c9ab 100644 --- a/modules/workspace/zsh.nix +++ b/modules/workspace/zsh.nix @@ -43,7 +43,7 @@ "grep" = "rg"; # "mkdir" = "ad"; "man" = "pinfo"; - "l" = "exa -lahgGF@ --git --group-directories-first"; + "l" = "exa -lahgF@ --git --group-directories-first"; "tree" = "exa -T"; "ltree" = "exa -lhgFT@ --git"; "atree" = "exa -aT"; diff --git a/modules/xserver.nix b/modules/xserver.nix index 21e832e..3d2f8bf 100644 --- a/modules/xserver.nix +++ b/modules/xserver.nix @@ -1,8 +1,11 @@ { pkgs, lib, config, ... }: +let + thm = config.lib.base16.theme; +in with rec { - inherit (config) deviceSpecific themes; + inherit (config) deviceSpecific; }; -with deviceSpecific; with themes; { +with deviceSpecific; { services.xserver = { enable = true; @@ -37,18 +40,18 @@ with deviceSpecific; with themes; { show-input-cursor = false password-alignment = right [greeter-theme] - font = "Roboto Mono" + font = "#${thm.font} Mono" font-size = 14pt - text-color = "${colors.green}" - error-color = "${colors.green}" + text-color = "#${thm.base0B-hex}" + error-color = "#${thm.base0B-hex}" background-image = "" - background-color = "${colors.bg}" - window-color = "${colors.dark}" - border-color = "${colors.blue}" + background-color = "#${thm.base00-hex}" + window-color = "#${thm.base01-hex}" + border-color = "#${thm.base0D-hex}" border-width = 1px layout-space = 14 - password-color = "${colors.green}" - password-background-color = "${colors.bg}" + password-color = "#${thm.base0B-hex}" + password-background-color = "#${thm.base00-hex}" ''; }; }; diff --git a/support.nix b/support.nix index 7bbb199..454ef08 100644 --- a/support.nix +++ b/support.nix @@ -10,41 +10,41 @@ builtins.toString value; in "${key}=${mvalue}"; }; - 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))); - hex2decDigits = rec { - "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; - A = a; - B = b; - C = c; - D = d; - E = e; - F = f; - }; + # 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))); + # hex2decDigits = rec { + # "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; + # A = a; + # B = b; + # C = c; + # D = d; + # E = e; + # F = f; + # }; - doubleDigitHexToDec = hex: - 16 * hex2decDigits."${builtins.substring 0 1 hex}" - + hex2decDigits."${builtins.substring 1 2 hex}"; - thmDec = builtins.mapAttrs (name: color: colorHex2Dec color) thm; - colorHex2Dec = color: - builtins.concatStringsSep "," - (map (x: toString (doubleDigitHexToDec x)) (splitHex color)); + # doubleDigitHexToDec = hex: + # 16 * hex2decDigits."${builtins.substring 0 1 hex}" + # + hex2decDigits."${builtins.substring 1 2 hex}"; + # thmDec = builtins.mapAttrs (name: color: colorHex2Dec color) thm; + # colorHex2Dec = color: + # builtins.concatStringsSep "," + # (map (x: toString (doubleDigitHexToDec x)) (splitHex color)); } diff --git a/todo.md b/todo.md index 2ef2b38..3ddcc22 100644 --- a/todo.md +++ b/todo.md @@ -1,7 +1,8 @@ # TODO -* i3 хоткеи на русской раскладке -* Добавить словарь -* Spotifyd + cli -* [Make i3status-rust theme](https://github.com/greshake/i3status-rust/blob/master/themes.md) -* make overlay \ No newline at end of file +* i3 hotkeys with ru keyboard layout +* Add some dictionary program +* spotifyd + cli +* generated gtk icons +* overlay for my packages +* separators and icons in i3status-rust