From 08c0ed5f4561f110865e969402403d27aba6c931 Mon Sep 17 00:00:00 2001 From: punkfairie Date: Sun, 2 Mar 2025 10:41:56 -0800 Subject: [PATCH] feat: Initial switch to Stylix --- flake.nix | 25 +--- modules/home/appearance/base/default.nix | 41 ++---- modules/home/appearance/gtk/default.nix | 2 - modules/home/appearance/qt/default.nix | 7 - modules/home/options/theme/default.nix | 139 ------------------ modules/home/programs/cli/cheat/default.nix | 1 - modules/home/programs/cli/default.nix | 2 +- modules/home/programs/cli/git/default.nix | 20 --- .../home/programs/cli/starship/default.nix | 7 +- .../cli/starship/{rose-pine.nix => theme.nix} | 121 ++++++--------- modules/home/programs/cli/tmux/default.nix | 19 +-- modules/home/programs/gui/floorp/default.nix | 7 + modules/home/programs/gui/vesktop/default.nix | 1 + modules/home/programs/gui/wezterm/default.nix | 47 +----- modules/home/programs/tui/amfora/default.nix | 16 +- .../programs/tui/amfora/template.mustache | 46 ++++++ modules/home/programs/tui/btop/default.nix | 1 - modules/home/programs/tui/cava/default.nix | 5 + .../programs/wayland/hyprlock/default.nix | 12 -- .../home/programs/wayland/waybar/default.nix | 54 +++---- .../home/programs/wayland/wlogout/default.nix | 135 ++++++++--------- modules/home/services/dunst/default.nix | 128 +++++----------- modules/home/wayland/hyprland/default.nix | 39 +---- modules/home/wayland/niri/default.nix | 28 ++-- modules/nixos/appearance/base/default.nix | 31 +++- .../appearance/base}/wallpaper.png | Bin modules/nixos/appearance/console/default.nix | 13 -- modules/nixos/bundles/desktop/default.nix | 1 - modules/nixos/bundles/server/default.nix | 1 - overlays/maple-mono-NF/default.nix | 10 ++ systems/x86_64-linux/nyx/default.nix | 1 + 31 files changed, 319 insertions(+), 641 deletions(-) delete mode 100644 modules/home/options/theme/default.nix rename modules/home/programs/cli/starship/{rose-pine.nix => theme.nix} (53%) create mode 100644 modules/home/programs/tui/amfora/template.mustache rename modules/{home/wayland/niri => nixos/appearance/base}/wallpaper.png (100%) delete mode 100644 modules/nixos/appearance/console/default.nix create mode 100644 overlays/maple-mono-NF/default.nix diff --git a/flake.nix b/flake.nix index 2208baf..2ba0dc0 100644 --- a/flake.nix +++ b/flake.nix @@ -22,7 +22,7 @@ ]; systems.modules.nixos = with inputs; [ - rose-pine.nixosModules.rose-pine + stylix.nixosModules.stylix niri-flake.nixosModules.niri ]; @@ -37,10 +37,6 @@ outputs-builder = channels: { formatter = channels.nixpkgs.alejandra; }; - - alias = { - shells.default = "nix"; - }; }; inputs = { @@ -77,30 +73,17 @@ inputs.nixpkgs.follows = "nixpkgs"; }; - rose-pine.url = "git+https://codewith.babesonthe.net/punkfairie/rose-pine-nix"; + stylix.url = "github:danth/stylix/release-24.11"; - marleyvim.url = "git+https://codewith.babesonthe.net/punkfairie/marleyvim"; + niri-flake.url = "github:sodiboo/niri-flake"; wezterm = { url = "github:wez/wezterm?dir=nix"; inputs.nixpkgs.follows = "nixpkgs"; }; - niri-flake.url = "github:sodiboo/niri-flake"; + marleyvim.url = "git+https://codewith.babesonthe.net/punkfairie/marleyvim"; - # Rose pine themes that aren't included in the above flake: - # TODO: Integrate these to punkfairie/rose-pine-nix. - rose-pine-amfora = { - url = "github:rose-pine/amfora"; - flake = false; - }; - rose-pine-qt5ct = { - url = "github:piperbly/rose-pine-qt5ct"; - flake = false; - }; - rose-pine-hyprcursor.url = "github:ndom91/rose-pine-hyprcursor"; - - # Rofi rofi-themes = { url = "git+https://codewith.babesonthe.net/punkfairie/rofi-themes"; flake = false; diff --git a/modules/home/appearance/base/default.nix b/modules/home/appearance/base/default.nix index 7d94586..362fdc9 100644 --- a/modules/home/appearance/base/default.nix +++ b/modules/home/appearance/base/default.nix @@ -2,44 +2,18 @@ lib, config, pkgs, + system, ... }: let + inherit (lib.snowfall.system) is-darwin; + cfg = config.marleyos.appearance.base; inherit (config.marleyos) isDesktop; in { options.marleyos.appearance.base.enable = lib.mkEnableOption "base"; config = lib.mkIf cfg.enable { - rose-pine = { - enable = true; - flavor = "main"; - }; - - rose-pine.pointerCursor.enable = lib.mkIf config.rose-pine.enable true; - marleyos = { - theme = { - icons = { - package = pkgs.kora-icon-theme; - name = "kora"; - }; - - fonts = { - monospace = { - package = pkgs.maple-mono-NF; - name = "Maple Mono NF"; - # TODO: package font with harfbuzz features. - ligatures = [ - "cv02" - "ss01" - "ss02" - "ss03" - "ss04" - "ss05" - ]; - }; - }; - }; apps = { pinentry = if isDesktop @@ -47,5 +21,14 @@ in { else pkgs.pinentry-curses; }; }; + + stylix = { + iconTheme = { + package = pkgs.kora-icon-theme; + name = "kora"; + }; + + fonts.sizes.terminal = lib.mkIf (is-darwin system) 14; + }; }; } diff --git a/modules/home/appearance/gtk/default.nix b/modules/home/appearance/gtk/default.nix index 09c024d..14a10c8 100644 --- a/modules/home/appearance/gtk/default.nix +++ b/modules/home/appearance/gtk/default.nix @@ -13,8 +13,6 @@ in { gtk = { enable = true; - rose-pine.enable = lib.mkIf config.rose-pine.enable true; - gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc"; }; }; diff --git a/modules/home/appearance/qt/default.nix b/modules/home/appearance/qt/default.nix index 0a1fdf1..3515a2c 100644 --- a/modules/home/appearance/qt/default.nix +++ b/modules/home/appearance/qt/default.nix @@ -9,15 +9,8 @@ in { options.marleyos.appearance.qt.enable = lib.mkEnableOption "qt"; config = lib.mkIf cfg.enable { - xdg.configFile = lib.mkIf config.rose-pine.enable { - "qt5ct/colors/rose-pine.conf" = { - source = "${inputs.rose-pine-qt5ct}/rose-pine.conf"; - }; - }; - qt = { enable = true; - style.name = "adwaita"; }; }; } diff --git a/modules/home/options/theme/default.nix b/modules/home/options/theme/default.nix deleted file mode 100644 index 072f03a..0000000 --- a/modules/home/options/theme/default.nix +++ /dev/null @@ -1,139 +0,0 @@ -{ - lib, - config, - system, - pkgs, - ... -}: let - inherit (lib.snowfall.system) is-linux; - - cfg = config.marleyos.theme; - - # https://github.com/nix-community/home-manager/blob/master/modules/misc/gtk.nix - iconThemeType = lib.types.submodule { - options = { - package = lib.mkOption { - type = with lib.types; nullOr package; - default = null; - example = pkgs.gnome.adwaita-icon-theme; - description = '' - Package providing the icon theme. This package will be installed to - your profile. If `null` then the theme is assumed to already be - available in your profile. - ''; - }; - - name = lib.mkOption { - type = with lib.types; str; - example = "Adwaita"; - description = "The name of the icon theme within the package."; - }; - }; - }; - - mkFontType = type: default: (lib.mkOption { - type = lib.types.submodule { - options = { - package = lib.mkOption { - type = with lib.types; package; - default = default.package; - description = "The package providing the ${type} font."; - }; - - name = lib.mkOption { - type = with lib.types; str; - default = default.name; - description = "The name of the ${type} font."; - }; - - ligatures = lib.mkOption { - type = with lib.types; listOf str; - default = default.ligatures; - description = "The ligature features to enable for programs that support it."; - }; - }; - }; - inherit default; - description = "The ${type} font to use."; - }); -in { - options.marleyos.theme = { - icons = lib.mkOption { - type = with lib.types; nullOr iconThemeType; - default = null; - description = "The icon theme to use."; - }; - - fonts = lib.mkOption { - type = with lib.types; - submodule { - options = { - monospace = mkFontType "monospace" { - package = pkgs.maple-mono-NF; - name = "Maple Mono NF"; - ligatures = []; - }; - - sansSerif = mkFontType "sans-serif" { - package = pkgs.dm-sans; - name = "DeepMind Sans"; - ligatures = []; - }; - - serif = mkFontType "serif" { - package = pkgs.eb-garamond; - name = "EB Garamond"; - ligatures = []; - }; - - emoji = mkFontType "emoji" { - package = pkgs.whatsapp-emoji-font; - name = "Apple Color Emoji"; - ligatures = []; - }; - }; - }; - default = {}; - description = "Default font configuration."; - }; - }; - - config = lib.mkMerge [ - # icons - (lib.mkIf ((cfg.icons != null) && (is-linux system)) { - gtk = lib.mkDefault { - iconTheme = { - inherit (cfg.icons) name; - package = lib.mkIf (cfg.icons.package != null) cfg.icons.package; - }; - }; - - services.dunst = lib.mkDefault { - iconTheme = { - inherit (cfg.icons) name; - package = lib.mkIf (cfg.icons.package != null) cfg.icons.package; - }; - }; - }) - - # fonts - { - home.packages = [ - cfg.fonts.monospace.package - cfg.fonts.sansSerif.package - cfg.fonts.serif.package - cfg.fonts.emoji.package - ]; - - fonts.fontconfig = lib.mkIf (is-linux system) { - enable = true; - defaultFonts = { - monospace = [cfg.fonts.monospace.name]; - sansSerif = [cfg.fonts.sansSerif.name]; - serif = [cfg.fonts.serif.name]; - emoji = [cfg.fonts.emoji.name]; - }; - }; - } - ]; -} diff --git a/modules/home/programs/cli/cheat/default.nix b/modules/home/programs/cli/cheat/default.nix index 9816009..0e806ab 100644 --- a/modules/home/programs/cli/cheat/default.nix +++ b/modules/home/programs/cli/cheat/default.nix @@ -17,7 +17,6 @@ in { xdg.configFile."cheat/conf.yml".source = toYAML "conf.yml" { colorize = true; - style = lib.mkIf config.rose-pine.enable "rose-pine"; formatter = "terminal256"; pager = "less -FRX"; diff --git a/modules/home/programs/cli/default.nix b/modules/home/programs/cli/default.nix index 62f80c2..8b71b55 100644 --- a/modules/home/programs/cli/default.nix +++ b/modules/home/programs/cli/default.nix @@ -12,7 +12,7 @@ in { config = lib.mkIf cfg.enable { marleyos.programs = { bat = enabled; - cheat = enabled; + # cheat = enabled; curl = enabled; eza = enabled; figlet = enabled; diff --git a/modules/home/programs/cli/git/default.nix b/modules/home/programs/cli/git/default.nix index 945b7df..5bc92b4 100644 --- a/modules/home/programs/cli/git/default.nix +++ b/modules/home/programs/cli/git/default.nix @@ -53,26 +53,6 @@ in { "*.bmp binary" ]; - # ██████╗ ███████╗██╗ ████████╗ █████╗ - # ██╔══██╗██╔════╝██║ ╚══██╔══╝██╔══██╗ - # ██║ ██║█████╗ ██║ ██║ ███████║ - # ██║ ██║██╔══╝ ██║ ██║ ██╔══██║ - # ██████╔╝███████╗███████╗██║ ██║ ██║ - # ╚═════╝ ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═╝ - - # delta = { - # enable = true; - # - # options = { - # navigate = true; - # # TODO: Add to rose-pine-nix - # syntax-theme = "${colors.base}"; - # features = "mellow-barbet"; - # true-color = "always"; - # hyperlinks = true; - # }; - # }; - # ██████╗ ██╗███████╗███████╗████████╗ █████╗ ███████╗████████╗██╗ ██████╗ # ██╔══██╗██║██╔════╝██╔════╝╚══██╔══╝██╔══██╗██╔════╝╚══██╔══╝██║██╔════╝ # ██║ ██║██║█████╗ █████╗ ██║ ███████║███████╗ ██║ ██║██║ diff --git a/modules/home/programs/cli/starship/default.nix b/modules/home/programs/cli/starship/default.nix index 9649dac..4f21d35 100644 --- a/modules/home/programs/cli/starship/default.nix +++ b/modules/home/programs/cli/starship/default.nix @@ -9,17 +9,12 @@ in { imports = [ ./nerd-font-symbols.nix - ./rose-pine.nix + ./theme.nix ]; config = lib.mkIf cfg.enable { programs.starship = { enable = true; - - enableTransience = true; - - # Using my own version because I made so many fixes it wasn't worth... - rose-pine.enable = false; }; }; } diff --git a/modules/home/programs/cli/starship/rose-pine.nix b/modules/home/programs/cli/starship/theme.nix similarity index 53% rename from modules/home/programs/cli/starship/rose-pine.nix rename to modules/home/programs/cli/starship/theme.nix index 016667a..5985762 100644 --- a/modules/home/programs/cli/starship/rose-pine.nix +++ b/modules/home/programs/cli/starship/theme.nix @@ -7,9 +7,9 @@ cfg = config.marleyos.programs.starship; in { - config = lib.mkIf (cfg.enable && config.rose-pine.enable) { + config = lib.mkIf cfg.enable { programs.starship.settings = let - mkFormat = t: " [](fg:overlay)[${t}]($style)[](fg:overlay) "; + mkFormat = t: " [](fg:base02)[${t}]($style)[](fg:base02) "; langFormat = mkFormat "$symbol$version"; in { format = mkDefault (lib.concatStrings [ @@ -36,54 +36,29 @@ in { "$character" ]); - # TODO: Make the palette available from rose-pine-nix. - palettes.rose-pine = - if (config.rose-pine.flavor == "moon") - then - (mkDefault { - overlay = "#393552"; - love = "#eb6f92"; - gold = "#f6c177"; - rose = "#ea9a97"; - pine = "#3e8fb0"; - foam = "#9ccfd8"; - iris = "#c4a7e7"; - }) - else if (config.rose-pine.flavor == "dawn") - then - (mkDefault { - overlay = "#f2e9e1"; - love = "#b4637a"; - gold = "#ea9d34"; - rose = "#d7827e"; - pine = "#286983"; - foam = "#56949f"; - iris = "#907aa9"; - }) - else - (mkDefault { - overlay = "#26233a"; - love = "#eb6f92"; - gold = "#f6c177"; - rose = "#ebbcba"; - pine = "#31748f"; - foam = "#9ccfd8"; - iris = "#c4a7e7"; - }); + palettes.default = with config.lib.stylix.colors.withHashtag; mkDefault { + base02 = base02; + base08 = base08; + base09 = base09; + base0A = base0A; + base0B = base0B; + base0C = base0C; + base0D = base0D; + }; - palette = "rose-pine"; + palette = "default"; username = { disabled = mkDefault false; format = mkDefault (mkFormat " 󰧱 $user "); show_always = mkDefault true; - style_root = mkDefault "bg:overlay fg:iris"; - style_user = mkDefault "bg:overlay fg:iris"; + style_root = mkDefault "bg:base02 fg:base0D"; + style_user = mkDefault "bg:base02 fg:base0D"; }; directory = { format = mkDefault (mkFormat " $path "); - style = mkDefault "bg:overlay fg:pine"; + style = mkDefault "bg:base02 fg:base0B"; truncation_length = mkDefault 3; truncation_symbol = mkDefault "…/"; @@ -97,123 +72,123 @@ in { git_branch = { format = mkDefault (mkFormat " $symbol $branch "); - style = mkDefault "bg:overlay fg:foam"; + style = mkDefault "bg:base02 fg:base0C"; symbol = mkDefault ""; }; git_status = { disabled = mkDefault false; - style = mkDefault "bg:overlay fg:love"; + style = mkDefault "bg:base02 fg:base08"; format = mkDefault (mkFormat " $all_status$ahead_behind"); - up_to_date = mkDefault "[ ✓ ](bg:overlay fg:iris)"; - untracked = mkDefault "[?\\($count\\)](bg:overlay fg:gold)"; - stashed = mkDefault "[\\$](bg:overlay fg:iris)"; - modified = mkDefault "[!\\($count\\)](bg:overlay fg:gold)"; - renamed = mkDefault "[»\\($count\\)](bg:overlay fg:iris)"; + up_to_date = mkDefault "[ ✓ ](bg:base02 fg:base0D)"; + untracked = mkDefault "[?\\($count\\)](bg:base02 fg:base09)"; + stashed = mkDefault "[\\$](bg:base02 fg:base0D)"; + modified = mkDefault "[!\\($count\\)](bg:base02 fg:base09)"; + renamed = mkDefault "[»\\($count\\)](bg:base02 fg:base0D)"; deleted = mkDefault "[✘\\($count\\)](style)"; - staged = mkDefault "[++\\($count\\)](bg:overlay fg:gold)"; - ahead = mkDefault "[⇡\\(\${count}\\)](bg:overlay fg:foam)"; - diverged = mkDefault "⇕[\\[](bg:overlay fg:iris)[⇡\\(\${ahead_count}\\)](bg:overlay fg:foam)[⇣\\(\${behind_count}\\)](bg:overlay fg:rose)[\\]](bg:overlay fg:iris)"; - behind = mkDefault "[⇣\\(\${count}\\)](bg:overlay fg:rose)"; + staged = mkDefault "[++\\($count\\)](bg:base02 fg:base09)"; + ahead = mkDefault "[⇡\\(\${count}\\)](bg:base02 fg:base0C)"; + diverged = mkDefault "⇕[\\[](bg:base02 fg:base0D)[⇡\\(\${ahead_count}\\)](bg:base02 fg:base0C)[⇣\\(\${behind_count}\\)](bg:base02 fg:base0A)[\\]](bg:base02 fg:base0D)"; + behind = mkDefault "[⇣\\(\${count}\\)](bg:base02 fg:base0A)"; }; fill = { - style = mkDefault "fg:overlay"; + style = mkDefault "fg:base02"; symbol = mkDefault " "; }; time = { disabled = mkDefault false; format = mkDefault (mkFormat " $time 󰴈 "); - style = mkDefault "bg:overlay fg:rose"; + style = mkDefault "bg:base02 fg:base0A"; time_format = mkDefault "%I:%M%P"; use_12hr = mkDefault true; }; character = let vim = ""; - mkChar = sym: col: " [${sym}](fg:${col}) [󰄾](fg:foam)"; + mkChar = sym: col: " [${sym}](fg:${col}) [󰄾](fg:base0C)"; in { - success_symbol = mkChar "" "iris"; - error_symbol = mkChar "󰋔" "love"; - vimcmd_symbol = mkChar vim "rose"; - vimcmd_replace_one_symbol = mkChar vim "foam"; - vimcmd_replace_symbol = mkChar vim "foam"; - vimcmd_visual_symbol = mkChar vim "iris"; + success_symbol = mkChar "" "base0D"; + error_symbol = mkChar "󰋔" "base08"; + vimcmd_symbol = mkChar vim "base0A"; + vimcmd_replace_one_symbol = mkChar vim "base0C"; + vimcmd_replace_symbol = mkChar vim "base0C"; + vimcmd_visual_symbol = mkChar vim "base0D"; }; ### Languages ### c = { - style = mkDefault "bg:overlay fg:pine"; + style = mkDefault "bg:base02 fg:base0B"; format = mkDefault langFormat; disabled = mkDefault false; symbol = mkDefault " "; }; elixir = { - style = mkDefault "bg:overlay fg:pine"; + style = mkDefault "bg:base02 fg:base0B"; format = mkDefault langFormat; disabled = mkDefault false; symbol = mkDefault " "; }; elm = { - style = mkDefault "bg:overlay fg:pine"; + style = mkDefault "bg:base02 fg:base0B"; format = mkDefault langFormat; disabled = mkDefault false; symbol = mkDefault " "; }; haskell = { - style = mkDefault "bg:overlay fg:pine"; + style = mkDefault "bg:base02 fg:base0B"; format = mkDefault langFormat; disabled = mkDefault false; symbol = mkDefault " "; }; java = { - style = mkDefault "bg:overlay fg:pine"; + style = mkDefault "bg:base02 fg:base0B"; format = mkDefault langFormat; disabled = mkDefault false; symbol = mkDefault " "; }; julia = { - style = mkDefault "bg:overlay fg:pine"; + style = mkDefault "bg:base02 fg:base0B"; format = mkDefault langFormat; disabled = mkDefault false; symbol = mkDefault " "; }; nodejs = { - style = mkDefault "bg:overlay fg:pine"; + style = mkDefault "bg:base02 fg:base0B"; format = mkDefault langFormat; disabled = mkDefault false; symbol = mkDefault "󰎙 "; }; nim = { - style = mkDefault "bg:overlay fg:pine"; + style = mkDefault "bg:base02 fg:base0B"; format = mkDefault langFormat; disabled = mkDefault false; symbol = mkDefault "󰆥 "; }; python = { - style = mkDefault "bg:overlay fg:pine"; + style = mkDefault "bg:base02 fg:base0B"; disabled = mkDefault false; symbol = mkDefault " "; }; rust = { - style = mkDefault "bg:overlay fg:pine"; + style = mkDefault "bg:base02 fg:base0B"; format = mkDefault langFormat; disabled = mkDefault false; symbol = mkDefault ""; }; scala = { - style = "bg:overlay fg:pine"; + style = "bg:base02 fg:base0B"; format = mkDefault langFormat; disabled = false; symbol = " "; @@ -221,14 +196,14 @@ in { ### Tools ### conda = { - style = mkDefault "bg:overlay fg:pine"; + style = mkDefault "bg:base02 fg:base0B"; format = mkDefault (mkFormat "$symbol$environment"); disabled = mkDefault false; symbol = mkDefault "🅒 "; }; nix_shell = { - style = "bg:overlay fg:foam"; + style = "bg:base02 fg:base0C"; format = mkDefault (mkFormat " $symbol $state( \($name\)) "); disabled = mkDefault false; symbol = mkDefault " "; diff --git a/modules/home/programs/cli/tmux/default.nix b/modules/home/programs/cli/tmux/default.nix index e6848c8..3af865b 100644 --- a/modules/home/programs/cli/tmux/default.nix +++ b/modules/home/programs/cli/tmux/default.nix @@ -12,15 +12,6 @@ in { programs.tmux = { enable = true; - rose-pine = { - extraConfig = - # tmux - '' - set -g @rose_pine_host 'on' - set -g @rose_pine_directory 'on' - ''; - }; - terminal = "tmux-256color"; escapeTime = 0; @@ -40,6 +31,16 @@ in { shortcut = "a"; plugins = with pkgs.tmuxPlugins; [ + { + # TODO: copy over bar config to allow stylix theming + plugin = rose-pine; + extraConfig = + # tmux + '' + set -g @rose_pine_host 'on' + set -g @rose_pine_directory 'on' + ''; + } { plugin = resurrect; } diff --git a/modules/home/programs/gui/floorp/default.nix b/modules/home/programs/gui/floorp/default.nix index 04b1802..bbbdce0 100644 --- a/modules/home/programs/gui/floorp/default.nix +++ b/modules/home/programs/gui/floorp/default.nix @@ -9,6 +9,12 @@ in { options.marleyos.programs.floorp.enable = lib.mkEnableOption "floorp"; config = lib.mkIf cfg.enable { + stylix.targets.floorp = { + enable = true; + colorTheme.enable = true; + profileNames = [config.marleyos.my.name]; + }; + programs.floorp = { enable = true; @@ -23,6 +29,7 @@ in { consent-o-matic darkreader facebook-container + firefox-color kagi-search # libredirect # proton-vpn diff --git a/modules/home/programs/gui/vesktop/default.nix b/modules/home/programs/gui/vesktop/default.nix index ed4bd97..1a4b829 100644 --- a/modules/home/programs/gui/vesktop/default.nix +++ b/modules/home/programs/gui/vesktop/default.nix @@ -9,6 +9,7 @@ in { options.marleyos.programs.vesktop.enable = lib.mkEnableOption "vesktop"; config = lib.mkIf cfg.enable { + # TODO: Switch to nixcord. home.packages = with pkgs; [ vesktop ]; diff --git a/modules/home/programs/gui/wezterm/default.nix b/modules/home/programs/gui/wezterm/default.nix index 5cc7709..2ba2461 100644 --- a/modules/home/programs/gui/wezterm/default.nix +++ b/modules/home/programs/gui/wezterm/default.nix @@ -11,11 +11,6 @@ isGenericLinux = config.targets.genericLinux.enable; isNotNixOS = isGenericLinux || (is-darwin system); - - theme = - if config.rose-pine.enable - then "rose-pine" - else ""; in { options.marleyos.programs.wezterm.enable = lib.mkEnableOption "wezterm"; @@ -32,9 +27,7 @@ in { # TODO: create `local config` & return it seperately, so other modules can # insert config in the middle - extraConfig = let - inherit (config.marleyos.theme) fonts; - in + extraConfig = # lua '' local config = wezterm.config_builder() @@ -44,44 +37,6 @@ in { config.enable_tab_bar = false - config.color_scheme = "${theme}" - - config.font = wezterm.font_with_fallback({ - { - family = "${fonts.monospace.name}", - harfbuzz_features = { - ${lib.concatStrings fonts.monospace.ligatures} - } - }, - { family = "FairiesevkaTerm Nerd Font Mono" }, - { - family = "FiraCode Nerd Font", - harfbuzz_features = { - "cv02", - "cv06", - "ss01", - "cv14", - "onum", - "ss04", - "cv18", - "cv31", - "cv30", - "cv25", - "cv26", - "cv32", - "ss06", - "ss07", - }, - }, - { family = "${fonts.emoji.name}" }, - }) - - config.font_size = ${ - if (is-darwin system) - then "14.0" - else "11.0" - } - return config ''; }; diff --git a/modules/home/programs/tui/amfora/default.nix b/modules/home/programs/tui/amfora/default.nix index 7f39a85..c7ef87b 100644 --- a/modules/home/programs/tui/amfora/default.nix +++ b/modules/home/programs/tui/amfora/default.nix @@ -6,15 +6,6 @@ ... }: let cfg = config.marleyos.programs.amfora; - - theme = - if config.rose-pine.enable - then "rose-pine" - else ""; - themeFiles = { - rose-pine = "${inputs.rose-pine-amfora}/themes/rose-pine.toml"; - }; - themeFile = themeFiles."${theme}"; in { options.marleyos.programs.amfora.enable = lib.mkEnableOption "amfora"; @@ -23,7 +14,10 @@ in { amfora ]; - xdg.configFile."amfora/theme.toml".source = themeFile; + xdg.configFile."amfora/theme.toml".source = config.lib.stylix.colors { + template = ./template.mustache; + extension = ".toml"; + }; # https://github.com/makeworld-the-better-one/amfora/blob/master/default-config.toml # Amfora requires a number of options to run - omitting everything I didn't @@ -52,7 +46,7 @@ in { underline = true # }}} - highlight_style = "${theme}" + highlight_style = "${config.lib.stylix.colors.scheme-name}" # Defaults {{{ [auth] diff --git a/modules/home/programs/tui/amfora/template.mustache b/modules/home/programs/tui/amfora/template.mustache new file mode 100644 index 0000000..a60f917 --- /dev/null +++ b/modules/home/programs/tui/amfora/template.mustache @@ -0,0 +1,46 @@ +## vim:set ft=toml: +## name: {{scheme-name}} +## adapted from: https://github.com/rose-pine/amfora/blob/main/themes/rose-pine.toml + +bg = "{{base00-hex}}" +tab_num = "{{base0D-hex}}" +tab_divider = "{{base07-hex}}" +bottombar_label = "{{base0D-hex}}" +bottombar_text = "{{base05-hex}}" +bottombar_bg = "{{base01-hex}}" +scrollbar = "{{base01-hex}}" +hdg_1 = "{{base0D-hex}}" +hdg_2 = "{{base0C-hex}}" +hdg_3 = "{{base0A-hex}}" +amfora_link = "{{base09-hex}}" +foreign_link = "{{base04-hex}}" +link_number = "{{base03-hex}}" +regular_text = "{{base05-hex}}" +quote_text = "{{base06-hex}}" +preformatted_text = "{{base06-hex}}" +list_text = "{{base05-hex}}" +btn_bg = "{{base0B-hex}}" +btn_text = "{{base05-hex}}" +dl_choice_modal_bg = "{{base01-hex}}" +dl_choice_modal_text = "{{base05-hex}}" +dl_modal_bg = "{{base01-hex}}" +dl_modal_text = "{{base05-hex}}" +info_modal_bg = "{{base01-hex}}" +info_modal_text = "{{base05-hex}}" +error_modal_bg = "{{base01-hex}}" +error_modal_text = "{{base08-hex}}" +yesno_modal_bg = "{{base01-hex}}" +yesno_modal_text = "{{base05-hex}}" +tofu_modal_bg = "{{base01-hex}}" +tofu_modal_text = "{{base05-hex}}" +subscription_modal_bg = "{{base01-hex}}" +subscription_modal_text = "{{base05-hex}}" +input_modal_bg = "{{base01-hex}}" +input_modal_text = "{{base05-hex}}" +input_modal_field_bg = "{{base02-hex}}" +input_modal_field_text = "{{base05-hex}}" +bkmk_modal_bg = "{{base01-hex}}" +bkmk_modal_text = "{{base05-hex}}" +bkmk_modal_label = "{{base0D-hex}}" +bkmk_modal_field_bg = "{{base02-hex}}" +bkmk_modal_field_text = "{{base05-hex}}" diff --git a/modules/home/programs/tui/btop/default.nix b/modules/home/programs/tui/btop/default.nix index 7d9bf41..e4ded59 100644 --- a/modules/home/programs/tui/btop/default.nix +++ b/modules/home/programs/tui/btop/default.nix @@ -12,7 +12,6 @@ in { enable = true; settings = { - theme_background = false; truecolor = true; vim_keys = true; }; diff --git a/modules/home/programs/tui/cava/default.nix b/modules/home/programs/tui/cava/default.nix index 46f19ac..1b84e39 100644 --- a/modules/home/programs/tui/cava/default.nix +++ b/modules/home/programs/tui/cava/default.nix @@ -22,5 +22,10 @@ in { }; }; }; + + stylix.targets.cava = { + enable = true; + rainbow.enable = true; + }; }; } diff --git a/modules/home/programs/wayland/hyprlock/default.nix b/modules/home/programs/wayland/hyprlock/default.nix index 84f6fd2..89e73ff 100644 --- a/modules/home/programs/wayland/hyprlock/default.nix +++ b/modules/home/programs/wayland/hyprlock/default.nix @@ -19,14 +19,6 @@ in { no_fade_in = false; }; - background = [ - { - path = "${../../../wayland/hyprland/wallpaper.png}"; - blur_passes = 3; - blur_size = 8; - } - ]; - input-field = [ { size = "200, 50"; @@ -34,10 +26,6 @@ in { monitor = ""; dots_center = true; fade_on_empty = false; - # FIXME: Don't hardcode these. - font_color = "rgb(191724)"; - inner_color = "rgb(ebbcba)"; - outer_color = "rgb(191724)"; outline_thickness = 5; placeholder_text = "password..."; shadow_passes = 2; diff --git a/modules/home/programs/wayland/waybar/default.nix b/modules/home/programs/wayland/waybar/default.nix index 25103a1..e2f8ee9 100644 --- a/modules/home/programs/wayland/waybar/default.nix +++ b/modules/home/programs/wayland/waybar/default.nix @@ -203,21 +203,6 @@ in { style = let transition = "all 0.3s cubic-bezier(.55,-0.68,.48,1.682)"; in - lib.concatStrings [ - (lib.optionalString config.rose-pine.enable - #css - '' - @define-color zero @base; - @define-color one @surface; - @define-color two @overlay; - @define-color four @subtle; - @define-color seven @highlightHigh; - @define-color eight @love; - @define-color b @pine; - @define-color e @gold; - @define-color d @iris; - @define-color accentFour @foam; - '') # css '' * { @@ -233,8 +218,8 @@ in { } #workspaces { - color: @zero; - background: @one; + color: @base00; + background: @base01; margin: 4px 4px; padding: 5px 5px; border-radius: 16px; @@ -245,8 +230,8 @@ in { padding: 0 5px; margin: 0 3px; border-radius: 16px; - color: @zero; - background: linear-gradient(45deg, @eight, @d); + color: @base00; + background: linear-gradient(45deg, @base08, @base0D); opacity: 0.5; transition: ${transition}; } @@ -256,8 +241,8 @@ in { padding: 0 5px; margin: 0 3px; border-radius: 16px; - color: @zero; - background: linear-gradient(45deg, @eight, @d); + color: @base00; + background: linear-gradient(45deg, @base08, @base0D); opacity: 1.0; transition: ${transition}; min-width: 40px; @@ -266,20 +251,20 @@ in { #workspaces button:hover { font-weight: bold; border-radius: 16px; - color: @zero; - background: linear-gradient(45deg, @eight, @iris); + color: @base00; + background: linear-gradient(45deg, @base08, @iris); opacity: 0.8; transition: ${transition}; } tooltip { - background: @zero; - border: 1px solid @eight; + background: @base00; + border: 1px solid @base08; border-radius: 12px; } tooltip label { - color: @eight; + color: @base08; } #window, #pulseaudio, #cpu, #memory, #idle_inhibitor { @@ -287,14 +272,14 @@ in { margin: 4px 0; margin-left: 7px; padding: 0 18px; - background: @four; - color: @zero; + background: @base04; + color: @base00; border-radius: 24px 10px 24px 10px; } #custom-startmenu { - color: @b; - background: @two; + color: @base0B; + background: @base02; font-size: 28px; margin: 0; padding: 0 30px 0 15px; @@ -304,8 +289,8 @@ in { #network, #battery, #custom-notifications, #tray, #custom-exit { font-weight: bold; - background: @seven; - color: @zero; + background: @base07; + color: @base00; margin: 4px 0; margin-right: 7px; border-radius: 10px 24px 10px 24px; @@ -314,14 +299,13 @@ in { #clock { font-weight: bold; - color: @zero; - background: linear-gradient(90deg, @e, @accentFour); + color: @base00; + background: linear-gradient(90deg, @base0E, @base0C); margin: 0; padding: 0 15px 0 30px; border-radius: 0 0 0 40px; } '' - ]; }; }; } diff --git a/modules/home/programs/wayland/wlogout/default.nix b/modules/home/programs/wayland/wlogout/default.nix index 025f0c2..b0a7f83 100644 --- a/modules/home/programs/wayland/wlogout/default.nix +++ b/modules/home/programs/wayland/wlogout/default.nix @@ -58,84 +58,75 @@ in { } ]; - style = lib.concatStrings [ - (lib.optionalString config.rose-pine.enable + style = with config.lib.stylix.colors.withHashtag; + lib.concatStrings [ #css '' - @define-color zero #191724; - @define-color one #1f1d2e; - @define-color two #26233a; - @define-color four #908caa; - @define-color five #e0def4; - @define-color seven #524f67; - @define-color eight #eb6f92; - @define-color b #31748f; - @define-color e #f6c177; - @define-color d #c4a7e7; - @define-color c #9ccf38; - '') - # css - '' - * { - font-family: ${config.marleyos.theme.fonts.monospace.name}; - background-image: none; - transition: 20ms; - } + @define-color base05 ${base05}; + @define-color base0B ${base0B}; + '' + # css + '' + * { + font-family: ${config.stylix.fonts.monospace.name}; + background-image: none; + transition: 20ms; + } - window { - background-color: rgba(12, 12, 12, 0.1); - } + window { + background-color: rgba(12, 12, 12, 0.1); + } - button { - color: @five; - font-size: 20px; - background-repeat: no-repeat; - background-position: center; - background-size: 25%; - border-style: solid; - background-color: rgba(12, 12, 12, 0.3); - border: 3px solid @five; - box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); - } + button { + color: @base05; + font-size: 20px; + background-repeat: no-repeat; + background-position: center; + background-size: 25%; + border-style: solid; + background-color: rgba(12, 12, 12, 0.3); + border: 3px solid @base05; + box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); + } - button:focus, button:active, button:hover { - color: @b; - background-color: rgba(12, 12, 12, 0.5); - border: 3px solid @b; - } + button:focus, button:active, button:hover { + color: @base0B; + background-color: rgba(12, 12, 12, 0.5); + border: 3px solid @base0B; + } - #lock { - margin: 10px; - border-radius: 20px; - background-image: image(url("${./lock.png}")); - } - #logout { - margin: 10px; - border-radius: 20px; - background-image: image(url("${./logout.png}")); - } - #reboot { - margin: 10px; - border-radius: 20px; - background-image: image(url("${./reboot.png}")); - } - #shutdown { - margin: 10px; - border-radius: 20px; - background-image: image(url("${./shutdown.png}")); - } - #suspend { - margin: 10px; - border-radius: 20px; - background-image: image(url("${./suspend.png}")); - } - #hibernate { - margin: 10px; - border-radius: 20px; - background-image: image(url("${./hibernate.png}")); - } - '' - ]; + #lock { + margin: 10px; + border-radius: 20px; + background-image: image(url("${./lock.png}")); + } + #logout { + margin: 10px; + border-radius: 20px; + background-image: image(url("${./logout.png}")); + } + #reboot { + margin: 10px; + border-radius: 20px; + background-image: image(url("${./reboot.png}")); + } + #shutdown { + margin: 10px; + border-radius: 20px; + background-image: image(url("${./shutdown.png}")); + } + #suspend { + margin: 10px; + border-radius: 20px; + background-image: image(url("${./suspend.png}")); + } + #hibernate { + margin: 10px; + border-radius: 20px; + background-image: image(url("${./hibernate.png}")); + } + '' + ]; }; }; } diff --git a/modules/home/services/dunst/default.nix b/modules/home/services/dunst/default.nix index e31f169..f855452 100644 --- a/modules/home/services/dunst/default.nix +++ b/modules/home/services/dunst/default.nix @@ -11,98 +11,48 @@ in { services.dunst = { enable = true; - # I don't want to use the rose-pine icons; also don't want to deal with - # the drop-in weirdness. - # TODO: Convert dunst.rose-pine to attr set to fix this. - rose-pine.enable = true; + settings = { + global = with config.stylix.fonts; { + monitor = 0; + sort = "yes"; + idle_threshold = 120; + font = "${monospace.name} ${toString sizes.popup}"; + markup = "full"; + show_age_threshold = 60; + word_wrap = "yes"; + ignore_newline = "no"; + stack_duplicates = true; + hide_duplicate_count = false; + show_indicators = "yes"; + sticky_history = "yes"; + history_length = 20; + browser = "${lib.getExe config.marleyos.apps.browser} --new-tab"; + always_run_script = true; + title = "Dunst"; + class = "Dunst"; + mouse_left_click = "do_action"; + mouse_middle_click = "close_current"; + mouse_right_click = "close_all"; + }; - settings = lib.mkMerge [ - ### Rose Pine ### - (lib.mkIf config.rose-pine.enable { - global = { - width = 400; - offset = "20x60"; - progress_bar_min_width = 380; - progress_bar_max_width = 380; - progress_bar_corner_radius = 2; - padding = 10; - horizontal_padding = 10; - frame_width = 1; - gap_size = 3; - corner_radius = 2; - background = "#26233a"; - foreground = "#e0def4"; - }; + signed_on = { + appname = "Pidgin"; + summary = "*signed on*"; + urgency = "low"; + }; - urgency_low = { - background = "#26273d"; - highlight = "#31748f"; - frame_color = "#31748f"; - default_icon = "dialog-information"; - format = "%s\\n%b"; - }; + signed_off = { + appname = "Pidgin"; + summary = "*signed off*"; + urgency = "low"; + }; - urgency_normal = { - background = "#362e3c"; - highlight = "#f6c177"; - frame_color = "#f6c177"; - default_icon = "dialog-warning"; - format = "%s\\n%b"; - }; - - urgency_critical = { - background = "#35263d"; - highlight = "#eb6f92"; - frame_color = "#eb6f92"; - default_icon = "dialog-error"; - format = "%s\\n%b"; - }; - }) - - ### Custom ### - { - global = { - monitor = 0; - sort = "yes"; - idle_threshold = 120; - font = config.marleyos.theme.fonts.monospace.name + " 10"; - markup = "full"; - show_age_threshold = 60; - word_wrap = "yes"; - ignore_newline = "no"; - stack_duplicates = true; - hide_duplicate_count = false; - show_indicators = "yes"; - sticky_history = "yes"; - history_length = 20; - browser = "/usr/bin/zen-browser --new-tab"; - always_run_script = true; - title = "Dunst"; - class = "Dunst"; - mouse_left_click = "do_action"; - mouse_middle_click = "close_current"; - mouse_right_click = "close_all"; - }; - - signed_on = { - appname = "Pidgin"; - summary = "*signed on*"; - urgency = "low"; - }; - - signed_off = { - appname = "Pidgin"; - summary = "*signed off*"; - urgency = "low"; - }; - - says = { - appname = "Pidgin"; - summary = "*says*"; - urgency = "critical"; - }; - } - ]; + says = { + appname = "Pidgin"; + summary = "*says*"; + urgency = "critical"; + }; + }; }; }; } diff --git a/modules/home/wayland/hyprland/default.nix b/modules/home/wayland/hyprland/default.nix index 3b69fb1..718baca 100644 --- a/modules/home/wayland/hyprland/default.nix +++ b/modules/home/wayland/hyprland/default.nix @@ -1,8 +1,6 @@ { lib, config, - inputs, - pkgs, ... }: let cfg = config.marleyos.wayland.hyprland; @@ -50,24 +48,14 @@ in { }; home.sessionVariables = let - cfg = config.home.pointerCursor; + cfg = config.stylix.cursor; in { HYPRCURSOR_THEME = cfg.name; - HYPRCURSOR_SIZE = 24; + HYPRCURSOR_SIZE = cfg.size; }; - home.packages = - lib.optional - config.rose-pine.enable - inputs.rose-pine-hyprcursor.packages.${pkgs.system}.default; - services.hyprpaper = { enable = true; - - settings = { - preload = "${./wallpaper.png}"; - wallpaper = ", ${./wallpaper.png}"; - }; }; wayland.windowManager.hyprland = { @@ -138,32 +126,22 @@ in { "[workspace ${toString browserWs} silent] $browser" ]; - # Fix WM thinking the cursor is bigger than it is, causing the pointer - # to be offset. - env = - [ - "XCURSOR_SIZE,24" - "HYPRCURSOR_SIZE,24" - ] - ++ (lib.optional config.rose-pine.enable "HYPRCURSOR_THEME,rose-pine-hyprcursor"); - workspace = lib.mkIf (cfg ? monitors) (map (ws: "${toString ws}, monitor:${wsMons."${toString ws}"}") workspaces); - "$main" = lib.mkIf config.rose-pine.enable "$love"; - "$inactive" = lib.mkIf config.rose-pine.enable "$muted"; + general = let + inherit (config.lib.stylix) colors; - general = { + rgb = color: "rgb(${color})"; + in { gaps_in = 5; gaps_out = 20; border_size = 2; - "col.inactive_border" = "$inactive"; - "col.active_border" = - lib.mkIf config.rose-pine.enable "$rose $pine $love $iris 90deg"; + "col.active_border" = with colors; "${rgb base0A} ${rgb base0B} ${rgb base08} ${rgb base0D} 90deg"; resize_on_border = false; @@ -177,7 +155,6 @@ in { enabled = true; range = 4; render_power = 3; - color = "rgba(1a1a1aee)"; }; blur = { @@ -233,8 +210,6 @@ in { "$mod" = "SUPER"; - # When changing these, make sure to also update waybar's script, defined - # below. bind = [ "$mod, Q, killactive," "$mod SHIFT, E, exit," diff --git a/modules/home/wayland/niri/default.nix b/modules/home/wayland/niri/default.nix index 920e775..5b3c281 100644 --- a/modules/home/wayland/niri/default.nix +++ b/modules/home/wayland/niri/default.nix @@ -43,6 +43,7 @@ in { prefer-no-csd = true; hotkey-overlay.skip-at-startup = true; + ### Startup Programs ### spawn-at-startup = let inherit (config.marleyos) apps; in [ @@ -51,18 +52,12 @@ in { (cmd (lib.getExe apps.email)) ]; + ### Layout ### layout = let - hasTheme = config.rose-pine.enable; - mkTheme = lib.mkIf hasTheme; - colors = - if hasTheme - then config.rose-pine.palette - else null; - gradient = { - gradient = { - from = colors.rose.hex; - to = colors.iris.hex; + gradient = with config.lib.stylix.colors.withHashtag; { + from = base08; + to = base0D; angle = 90; }; }; @@ -78,16 +73,9 @@ in { default-column-width = {proportion = 0.5;}; - focus-ring = { - width = 4; - active = mkTheme gradient; - inactive = {color = colors.highlight-high.hex;}; - }; - border = { width = 4; - active = mkTheme gradient; - inactive = {color = colors.highlight-high.hex;}; + active = gradient; }; shadow = { @@ -103,8 +91,10 @@ in { }; }; + ### Screenshots ### screenshot-path = "~/pictures/screenshots/%Y-%m-%d %H-%M-%S.png"; + ### Workspaces ### workspaces = { "01-main" = { open-on-output = builtins.elemAt cfg.monitors 0; @@ -120,6 +110,7 @@ in { }; }; + ### Window Rules ### window-rules = [ { @@ -163,6 +154,7 @@ in { } ]); + ### Keybinds ### binds = with config.lib.niri.actions; { "Mod+Q".action = close-window; "Mod+Shift+E".action = quit; diff --git a/modules/nixos/appearance/base/default.nix b/modules/nixos/appearance/base/default.nix index f14c05d..ba97866 100644 --- a/modules/nixos/appearance/base/default.nix +++ b/modules/nixos/appearance/base/default.nix @@ -1,6 +1,7 @@ { lib, config, +pkgs, ... }: let cfg = config.marleyos.appearance.base; @@ -8,9 +9,35 @@ in { options.marleyos.appearance.base.enable = lib.mkEnableOption "base"; config = lib.mkIf cfg.enable { - rose-pine = { + stylix = { enable = true; - flavor = "main"; + + base16Scheme = "${pkgs.base16-schemes}/share/themes/rose-pine.yaml"; + image = ./wallpaper.png; + + fonts = { + serif = { + package = pkgs.eb-garamond; + name = "EB Garamond"; + }; + sansSerif = { + package = pkgs.dm-sans; + name = "DeepMind Sans"; + }; + monospace = { + package = pkgs.maple-mono-NF; + name = "Maple Mono NF"; + }; + emoji = { + package = pkgs.whatsapp-emoji-font; + name = "Apple Color Emoji"; + }; + }; + + cursor = { + package = pkgs.rose-pine-cursor; + name = "BreezeX-RosePine-Linux"; + }; }; }; } diff --git a/modules/home/wayland/niri/wallpaper.png b/modules/nixos/appearance/base/wallpaper.png similarity index 100% rename from modules/home/wayland/niri/wallpaper.png rename to modules/nixos/appearance/base/wallpaper.png diff --git a/modules/nixos/appearance/console/default.nix b/modules/nixos/appearance/console/default.nix deleted file mode 100644 index cbdf30d..0000000 --- a/modules/nixos/appearance/console/default.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ - lib, - config, - ... -}: let - cfg = config.marleyos.appearance.console; -in { - options.marleyos.appearance.console.enable = lib.mkEnableOption "console"; - - config = lib.mkIf cfg.enable { - console.rose-pine.enable = lib.mkIf config.rose-pine.enable true; - }; -} diff --git a/modules/nixos/bundles/desktop/default.nix b/modules/nixos/bundles/desktop/default.nix index 5f0032d..08a165e 100644 --- a/modules/nixos/bundles/desktop/default.nix +++ b/modules/nixos/bundles/desktop/default.nix @@ -20,7 +20,6 @@ in { appearance = { base = enabled; - console = enabled; }; programs = { diff --git a/modules/nixos/bundles/server/default.nix b/modules/nixos/bundles/server/default.nix index 30617ac..a9d6753 100644 --- a/modules/nixos/bundles/server/default.nix +++ b/modules/nixos/bundles/server/default.nix @@ -15,7 +15,6 @@ in { appearance = { base = enabled; - console = enabled; }; programs = { diff --git a/overlays/maple-mono-NF/default.nix b/overlays/maple-mono-NF/default.nix new file mode 100644 index 0000000..898d37e --- /dev/null +++ b/overlays/maple-mono-NF/default.nix @@ -0,0 +1,10 @@ +_: final: prev: { + maple-mono-NF = prev.maple-mono-NF.overrideAttrs (old: { + src = prev.fetchFromGitHub { + owner = "punkfairie"; + repo = "maple-font"; + rev = "v1740887062"; + hash = "sha256-e0c1c8wtprdgrYcQ7/RsiABIWUCPjVV8jxTLAjO5ZQk"; + }; + }); +} diff --git a/systems/x86_64-linux/nyx/default.nix b/systems/x86_64-linux/nyx/default.nix index ba534ae..3c938fa 100644 --- a/systems/x86_64-linux/nyx/default.nix +++ b/systems/x86_64-linux/nyx/default.nix @@ -10,6 +10,7 @@ in { marleyos = { hasNvidia = true; + mounts.babeshare = enabled; bundles.desktop = enabled;