refactor(home): Remove color options from marleyos.theme
This commit is contained in:
parent
b24720d921
commit
f06c243d43
22 changed files with 376 additions and 482 deletions
|
@ -21,6 +21,10 @@
|
|||
marleyvim.overlays.default
|
||||
];
|
||||
|
||||
systems.modules.nixos = with inputs; [
|
||||
rose-pine.nixosModules.rose-pine
|
||||
];
|
||||
|
||||
systems.modules.darwin = with inputs; [
|
||||
lix.nixosModules.default
|
||||
];
|
||||
|
|
|
@ -5,41 +5,22 @@
|
|||
...
|
||||
}: let
|
||||
inherit (lib) mkEnableOption mkIf;
|
||||
inherit (lib.marleyos) enabled;
|
||||
|
||||
cfg = config.marleyos.appearance.base;
|
||||
inherit (config.marleyos.theme) colors;
|
||||
inherit (config.marleyos) isDesktop;
|
||||
in {
|
||||
options.marleyos.appearance.base.enable = mkEnableOption "base";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = with pkgs; [
|
||||
# TODO: package font with harfbuzz features.
|
||||
maple-mono-NF
|
||||
dm-sans
|
||||
eb-garamond
|
||||
whatsapp-emoji-font
|
||||
];
|
||||
rose-pine = {
|
||||
enable = true;
|
||||
flavor = "main";
|
||||
};
|
||||
|
||||
rose-pine.pointerCursor = mkIf colors.isRosePine enabled;
|
||||
rose-pine.pointerCursor.enable = mkIf config.rose-pine.enable true;
|
||||
|
||||
marleyos = {
|
||||
theme = {
|
||||
colors = {
|
||||
default = "dark";
|
||||
|
||||
dark = {
|
||||
base = "rose-pine";
|
||||
flavor = "main";
|
||||
};
|
||||
|
||||
light = {
|
||||
base = "rose-pine";
|
||||
flavor = "dawn";
|
||||
};
|
||||
};
|
||||
|
||||
icons = {
|
||||
package = pkgs.kora-icon-theme;
|
||||
name = "kora";
|
||||
|
@ -49,6 +30,7 @@ in {
|
|||
monospace = {
|
||||
package = pkgs.maple-mono-NF;
|
||||
name = "Maple Mono NF";
|
||||
# TODO: package font with harfbuzz features.
|
||||
ligatures = [
|
||||
"cv02"
|
||||
"ss01"
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
inherit (lib.marleyos) enabled;
|
||||
|
||||
cfg = config.marleyos.appearance.gtk;
|
||||
inherit (config.marleyos.theme) colors;
|
||||
in {
|
||||
options.marleyos.appearance.gtk.enable = mkEnableOption "gtk";
|
||||
|
||||
|
@ -17,7 +16,7 @@ in {
|
|||
gtk = {
|
||||
enable = true;
|
||||
|
||||
rose-pine = mkIf colors.isRosePine enabled;
|
||||
rose-pine = mkIf config.rose-pine.enable enabled;
|
||||
|
||||
gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc";
|
||||
};
|
||||
|
|
|
@ -3,18 +3,15 @@
|
|||
config,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
inherit (lib) mkEnableOption mkIf;
|
||||
|
||||
cfg = config.marleyos.appearance.qt;
|
||||
inherit (config.marleyos.theme) colors;
|
||||
in
|
||||
{
|
||||
in {
|
||||
options.marleyos.appearance.qt.enable = mkEnableOption "qt";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
xdg.configFile = mkIf (colors.base == "rose-pine") {
|
||||
xdg.configFile = mkIf config.rose-pine.enable {
|
||||
"qt5ct/colors/rose-pine.conf" = {
|
||||
source = "${inputs.rose-pine-qt5ct}/rose-pine.conf";
|
||||
};
|
||||
|
|
|
@ -9,48 +9,6 @@
|
|||
|
||||
cfg = config.marleyos.theme;
|
||||
|
||||
colorThemes = lib.types.enum [
|
||||
"rose-pine"
|
||||
];
|
||||
|
||||
colorThemeType = lib.types.submodule {
|
||||
options = {
|
||||
base = lib.mkOption {
|
||||
type = colorThemes;
|
||||
example = "rose-pine";
|
||||
description = lib.literalMD ''
|
||||
The color theme to use. This should match the base of the enable
|
||||
options provided by the input's module. For instance, the rose-pine
|
||||
home-manager module provides the {option}`rose-pine.enable` base
|
||||
option and the {option}`programs.gtk.rose-pine.enable` option.
|
||||
'';
|
||||
};
|
||||
|
||||
flavor = lib.mkOption {
|
||||
type = with lib.types; nullOr str;
|
||||
default = null;
|
||||
example = "moon";
|
||||
description = "The theme flavor to use, if applicable.";
|
||||
};
|
||||
|
||||
accent = lib.mkOption {
|
||||
type = with lib.types; nullOr str;
|
||||
default = null;
|
||||
example = "rose";
|
||||
description = "The theme accent to use, if applicable.";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
mkColorThemeOpt = mode: flavor: (lib.mkOption {
|
||||
type = with lib.types; either str colorThemeType;
|
||||
default = {
|
||||
base = "rose-pine";
|
||||
inherit flavor;
|
||||
};
|
||||
description = "The color theme to use in ${mode} mode.";
|
||||
});
|
||||
|
||||
# https://github.com/nix-community/home-manager/blob/master/modules/misc/gtk.nix
|
||||
iconThemeType = lib.types.submodule {
|
||||
options = {
|
||||
|
@ -100,31 +58,6 @@
|
|||
});
|
||||
in {
|
||||
options.marleyos.theme = {
|
||||
colors = {
|
||||
default = lib.mkOption {
|
||||
type = with lib.types; str;
|
||||
default = "dark";
|
||||
description = "Whether to prefer the light or dark theme.";
|
||||
};
|
||||
|
||||
light = mkColorThemeOpt "light" "dawn";
|
||||
dark = mkColorThemeOpt "dark" "main";
|
||||
|
||||
base = lib.mkOption {
|
||||
type = colorThemes;
|
||||
};
|
||||
flavor = lib.mkOption {
|
||||
type = with lib.types; nullOr str;
|
||||
};
|
||||
accent = lib.mkOption {
|
||||
type = with lib.types; nullOr str;
|
||||
};
|
||||
|
||||
isRosePine = lib.mkOption {
|
||||
type = with lib.types; bool;
|
||||
};
|
||||
};
|
||||
|
||||
icons = lib.mkOption {
|
||||
type = with lib.types; nullOr iconThemeType;
|
||||
default = null;
|
||||
|
@ -166,18 +99,6 @@ in {
|
|||
};
|
||||
|
||||
config = lib.mkMerge [
|
||||
# colors
|
||||
{
|
||||
marleyos.theme.colors = rec {
|
||||
inherit (cfg.colors."${cfg.colors.default}") base;
|
||||
inherit (cfg.colors."${cfg.colors.default}") flavor;
|
||||
inherit (cfg.colors."${cfg.colors.default}") accent;
|
||||
|
||||
# HACK: Need to come up with a better solution
|
||||
isRosePine = base == "rose-pine";
|
||||
};
|
||||
}
|
||||
|
||||
# icons
|
||||
(lib.mkIf ((cfg.icons != null) && (is-linux system)) {
|
||||
gtk = lib.mkDefault {
|
||||
|
|
|
@ -4,20 +4,20 @@
|
|||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
inherit (lib) mkEnableOption mkIf;
|
||||
|
||||
cfg = config.marleyos.programs.amfora;
|
||||
inherit (config.marleyos.theme) colors;
|
||||
|
||||
theme =
|
||||
if config.rose-pine.enable
|
||||
then "rose-pine"
|
||||
else "";
|
||||
themeFiles = {
|
||||
rose-pine = "${inputs.rose-pine-amfora}/themes/rose-pine.toml";
|
||||
};
|
||||
|
||||
themeFile = themeFiles."${colors.base}";
|
||||
in
|
||||
{
|
||||
themeFile = themeFiles."${theme}";
|
||||
in {
|
||||
options.marleyos.programs.amfora.enable = mkEnableOption "amfora";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
@ -25,12 +25,13 @@ in
|
|||
amfora
|
||||
];
|
||||
|
||||
xdg.configFile."amfora/theme.toml".source = "${themeFile}";
|
||||
xdg.configFile."amfora/theme.toml".source = themeFile;
|
||||
|
||||
# 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
|
||||
# care to customize resulted in go panic errors.
|
||||
xdg.configFile."amfora/config.toml".text = # toml
|
||||
xdg.configFile."amfora/config.toml".text =
|
||||
# toml
|
||||
''
|
||||
include = "./theme.toml"
|
||||
|
||||
|
@ -53,7 +54,7 @@ in
|
|||
underline = true
|
||||
# }}}
|
||||
|
||||
highlight_style = "${colors.base}"
|
||||
highlight_style = "${theme}"
|
||||
|
||||
# Defaults {{{
|
||||
[auth]
|
||||
|
|
|
@ -3,15 +3,11 @@
|
|||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
inherit (lib) mkEnableOption mkIf;
|
||||
inherit (lib.marleyos) enabled;
|
||||
|
||||
cfg = config.marleyos.programs.bat;
|
||||
inherit (config.marleyos.theme) colors;
|
||||
in
|
||||
{
|
||||
in {
|
||||
options.marleyos.programs.bat.enable = mkEnableOption "bat";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
@ -23,8 +19,6 @@ in
|
|||
batman
|
||||
];
|
||||
|
||||
rose-pine = mkIf colors.isRosePine enabled;
|
||||
|
||||
config = {
|
||||
style = "auto";
|
||||
};
|
||||
|
@ -38,13 +32,15 @@ in
|
|||
functions = {
|
||||
cat = {
|
||||
wraps = "bat";
|
||||
body = # fish
|
||||
body =
|
||||
# fish
|
||||
"bat $argv";
|
||||
};
|
||||
|
||||
cath = {
|
||||
wraps = "bat";
|
||||
body = # fish
|
||||
body =
|
||||
# fish
|
||||
"bat --plain --language=help $argv";
|
||||
};
|
||||
};
|
||||
|
@ -54,25 +50,29 @@ in
|
|||
B = {
|
||||
position = "anywhere";
|
||||
setCursor = true;
|
||||
expansion = # fish
|
||||
expansion =
|
||||
# fish
|
||||
"% | bat";
|
||||
};
|
||||
|
||||
"-h" = {
|
||||
position = "anywhere";
|
||||
expansion = # fish
|
||||
expansion =
|
||||
# fish
|
||||
"-h | cath";
|
||||
};
|
||||
|
||||
"--help" = {
|
||||
position = "anywhere";
|
||||
expansion = # fish
|
||||
expansion =
|
||||
# fish
|
||||
"--help | cath";
|
||||
};
|
||||
|
||||
help = {
|
||||
position = "anywhere";
|
||||
expansion = # fish
|
||||
expansion =
|
||||
# fish
|
||||
"help | cath";
|
||||
};
|
||||
};
|
||||
|
|
|
@ -2,23 +2,17 @@
|
|||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
inherit (lib) mkEnableOption mkIf;
|
||||
inherit (lib.marleyos) enabled;
|
||||
|
||||
cfg = config.marleyos.programs.btop;
|
||||
inherit (config.marleyos.theme) colors;
|
||||
in
|
||||
{
|
||||
in {
|
||||
options.marleyos.programs.btop.enable = mkEnableOption "btop";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.btop = {
|
||||
enable = true;
|
||||
|
||||
rose-pine = mkIf colors.isRosePine enabled;
|
||||
|
||||
settings = {
|
||||
theme_background = false;
|
||||
truecolor = true;
|
||||
|
|
|
@ -2,15 +2,11 @@
|
|||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
inherit (lib) mkEnableOption mkIf;
|
||||
inherit (lib.marleyos) enabled;
|
||||
|
||||
cfg = config.marleyos.programs.cava;
|
||||
inherit (config.marleyos.theme) colors;
|
||||
in
|
||||
{
|
||||
in {
|
||||
options.marleyos.programs.cava.enable = mkEnableOption "cava";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
@ -19,8 +15,6 @@ in
|
|||
# ported to nixpkgs/unstable
|
||||
enable = false;
|
||||
|
||||
rose-pine = mkIf colors.isRosePine enabled;
|
||||
|
||||
# TODO: disable this when mpd is not enabled? Can that be detected on non
|
||||
# NixOS systems?
|
||||
settings = {
|
||||
|
|
|
@ -3,16 +3,13 @@
|
|||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
inherit (lib) mkEnableOption mkIf;
|
||||
|
||||
cfg = config.marleyos.programs.cheat;
|
||||
inherit (config.marleyos.theme) colors;
|
||||
|
||||
toYAML = (pkgs.formats.yaml { }).generate;
|
||||
in
|
||||
{
|
||||
toYAML = (pkgs.formats.yaml {}).generate;
|
||||
in {
|
||||
options.marleyos.programs.cheat.enable = mkEnableOption "cheat";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
@ -22,28 +19,26 @@ in
|
|||
|
||||
xdg.configFile."cheat/conf.yml".source = toYAML "conf.yml" {
|
||||
colorize = true;
|
||||
style = "${colors.base}";
|
||||
style = lib.mkIf config.rose-pine.enable "rose-pine";
|
||||
formatter = "terminal256";
|
||||
pager = "less -FRX";
|
||||
|
||||
cheatpaths =
|
||||
let
|
||||
cheatDir = "${config.xdg.configHome}/cheat/cheatsheets";
|
||||
in
|
||||
[
|
||||
{
|
||||
name = "community";
|
||||
path = "${cheatDir}/community";
|
||||
tags = [ "community" ];
|
||||
readonly = true;
|
||||
}
|
||||
{
|
||||
name = "personal";
|
||||
path = "${cheatDir}/personal";
|
||||
tags = [ "personal" ];
|
||||
readonly = false;
|
||||
}
|
||||
];
|
||||
cheatpaths = let
|
||||
cheatDir = "${config.xdg.configHome}/cheat/cheatsheets";
|
||||
in [
|
||||
{
|
||||
name = "community";
|
||||
path = "${cheatDir}/community";
|
||||
tags = ["community"];
|
||||
readonly = true;
|
||||
}
|
||||
{
|
||||
name = "personal";
|
||||
path = "${cheatDir}/personal";
|
||||
tags = ["personal"];
|
||||
readonly = false;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -4,21 +4,16 @@
|
|||
pkgs,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
inherit (lib) mkEnableOption mkIf optionals;
|
||||
inherit (lib.snowfall.system) is-linux is-darwin;
|
||||
inherit (lib.marleyos) enabled;
|
||||
|
||||
cfg = config.marleyos.programs.fish;
|
||||
inherit (config.marleyos.theme) colors;
|
||||
in
|
||||
{
|
||||
in {
|
||||
options.marleyos.programs.fish.enable = mkEnableOption "fish";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home.packages =
|
||||
with pkgs;
|
||||
home.packages = with pkgs;
|
||||
[
|
||||
# general
|
||||
babelfish
|
||||
|
@ -36,14 +31,12 @@ in
|
|||
pax
|
||||
]
|
||||
# unrar-free is broken on darwin :(
|
||||
++ (optionals (is-linux system) [ unrar-free ])
|
||||
++ (optionals (is-darwin system) [ unrar ]);
|
||||
++ (optionals (is-linux system) [unrar-free])
|
||||
++ (optionals (is-darwin system) [unrar]);
|
||||
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
|
||||
rose-pine = mkIf colors.isRosePine enabled;
|
||||
|
||||
preferAbbrs = true;
|
||||
|
||||
plugins = with pkgs.fishPlugins; [
|
||||
|
@ -65,7 +58,8 @@ in
|
|||
}
|
||||
];
|
||||
|
||||
shellInit = # fish
|
||||
shellInit =
|
||||
# fish
|
||||
''
|
||||
set -g fish_key_bindings fish_vi_key_bindings
|
||||
'';
|
||||
|
@ -79,7 +73,8 @@ in
|
|||
};
|
||||
|
||||
functions = {
|
||||
fish_greeting = # fish
|
||||
fish_greeting =
|
||||
# fish
|
||||
''
|
||||
echo ""
|
||||
figlet -f Elite " marleyOS" | lolcat
|
||||
|
@ -87,7 +82,8 @@ in
|
|||
|
||||
extract = {
|
||||
argumentNames = "file";
|
||||
body = # fish
|
||||
body =
|
||||
# fish
|
||||
''
|
||||
set --erase argv[1]
|
||||
|
||||
|
|
|
@ -2,13 +2,10 @@
|
|||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
inherit (lib) mkEnableOption mkIf;
|
||||
inherit (lib.marleyos) enabled;
|
||||
|
||||
cfg = config.marleyos.programs.fzf;
|
||||
inherit (config.marleyos.theme) colors;
|
||||
|
||||
has-ripgrep = config.programs.ripgrep.enable;
|
||||
has-fd = config.programs.fd.enable;
|
||||
|
@ -17,16 +14,13 @@ let
|
|||
has-tmux = config.programs.tmux.enable;
|
||||
has-delta = config.programs.git.delta.enable;
|
||||
has-difft = config.programs.git.difftastic.enable;
|
||||
in
|
||||
{
|
||||
in {
|
||||
options.marleyos.programs.fzf.enable = mkEnableOption "fzf";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.fzf = {
|
||||
enable = true;
|
||||
|
||||
rose-pine = mkIf colors.isRosePine enabled;
|
||||
|
||||
defaultOptions = [
|
||||
"--margin=10%,5%"
|
||||
"--border=sharp"
|
||||
|
@ -53,15 +47,14 @@ in
|
|||
};
|
||||
|
||||
home.sessionVariables =
|
||||
if has-delta then
|
||||
{
|
||||
fzf_diff_highlighter = "delta --paging=never --features=arctic-fox";
|
||||
}
|
||||
else if has-difft then
|
||||
{
|
||||
fzf_diff_highlighter = "difft --color=always";
|
||||
}
|
||||
else
|
||||
{ };
|
||||
if has-delta
|
||||
then {
|
||||
fzf_diff_highlighter = "delta --paging=never --features=arctic-fox";
|
||||
}
|
||||
else if has-difft
|
||||
then {
|
||||
fzf_diff_highlighter = "difft --color=always";
|
||||
}
|
||||
else {};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2,242 +2,237 @@
|
|||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
inherit (lib) mkIf mkDefault concatStrings;
|
||||
|
||||
cfg = config.marleyos.programs.starship;
|
||||
inherit (config.marleyos.theme) colors;
|
||||
in
|
||||
{
|
||||
config = mkIf (cfg.enable && colors.isRosePine) {
|
||||
programs.starship.settings =
|
||||
let
|
||||
mkFormat = t: " [](fg:overlay)[${t}]($style)[](fg:overlay) ";
|
||||
langFormat = mkFormat "$symbol$version";
|
||||
in
|
||||
{
|
||||
format = mkDefault (concatStrings [
|
||||
"$username"
|
||||
"$directory"
|
||||
"$nix_shell"
|
||||
"$git_branch"
|
||||
"$git_status"
|
||||
"$fill"
|
||||
"$c"
|
||||
"$elixir"
|
||||
"$elm"
|
||||
"$golang"
|
||||
"$haskell"
|
||||
"$java"
|
||||
"$julia"
|
||||
"$nodejs"
|
||||
"$nim"
|
||||
"$rust"
|
||||
"$scala"
|
||||
"$python"
|
||||
"$time"
|
||||
"$line_break"
|
||||
"$character"
|
||||
]);
|
||||
in {
|
||||
config = mkIf (cfg.enable && config.rose-pine.enable) {
|
||||
programs.starship.settings = let
|
||||
mkFormat = t: " [](fg:overlay)[${t}]($style)[](fg:overlay) ";
|
||||
langFormat = mkFormat "$symbol$version";
|
||||
in {
|
||||
format = mkDefault (concatStrings [
|
||||
"$username"
|
||||
"$directory"
|
||||
"$nix_shell"
|
||||
"$git_branch"
|
||||
"$git_status"
|
||||
"$fill"
|
||||
"$c"
|
||||
"$elixir"
|
||||
"$elm"
|
||||
"$golang"
|
||||
"$haskell"
|
||||
"$java"
|
||||
"$julia"
|
||||
"$nodejs"
|
||||
"$nim"
|
||||
"$rust"
|
||||
"$scala"
|
||||
"$python"
|
||||
"$time"
|
||||
"$line_break"
|
||||
"$character"
|
||||
]);
|
||||
|
||||
# TODO: Make the palette available from rose-pine-nix.
|
||||
palettes.rose-pine =
|
||||
if (colors.flavor == "moon") then
|
||||
(mkDefault {
|
||||
overlay = "#393552";
|
||||
love = "#eb6f92";
|
||||
gold = "#f6c177";
|
||||
rose = "#ea9a97";
|
||||
pine = "#3e8fb0";
|
||||
foam = "#9ccfd8";
|
||||
iris = "#c4a7e7";
|
||||
})
|
||||
else if (colors.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";
|
||||
});
|
||||
# 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";
|
||||
});
|
||||
|
||||
palette = "rose-pine";
|
||||
palette = "rose-pine";
|
||||
|
||||
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";
|
||||
};
|
||||
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";
|
||||
};
|
||||
|
||||
directory = {
|
||||
format = mkDefault (mkFormat " $path ");
|
||||
style = mkDefault "bg:overlay fg:pine";
|
||||
truncation_length = mkDefault 3;
|
||||
truncation_symbol = mkDefault "…/";
|
||||
directory = {
|
||||
format = mkDefault (mkFormat " $path ");
|
||||
style = mkDefault "bg:overlay fg:pine";
|
||||
truncation_length = mkDefault 3;
|
||||
truncation_symbol = mkDefault "…/";
|
||||
|
||||
substitutions = {
|
||||
Documents = mkDefault "";
|
||||
Downloads = mkDefault " ";
|
||||
Music = mkDefault " ";
|
||||
Pictures = mkDefault " ";
|
||||
};
|
||||
};
|
||||
|
||||
git_branch = {
|
||||
format = mkDefault (mkFormat " $symbol $branch ");
|
||||
style = mkDefault "bg:overlay fg:foam";
|
||||
symbol = mkDefault "";
|
||||
};
|
||||
|
||||
git_status = {
|
||||
disabled = mkDefault false;
|
||||
style = mkDefault "bg:overlay fg:love";
|
||||
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)";
|
||||
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)";
|
||||
};
|
||||
|
||||
fill = {
|
||||
style = mkDefault "fg:overlay";
|
||||
symbol = mkDefault " ";
|
||||
};
|
||||
|
||||
time = {
|
||||
disabled = mkDefault false;
|
||||
format = mkDefault (mkFormat " $time ");
|
||||
style = mkDefault "bg:overlay fg:rose";
|
||||
time_format = mkDefault "%I:%M%P";
|
||||
use_12hr = mkDefault true;
|
||||
};
|
||||
|
||||
character =
|
||||
let
|
||||
vim = "";
|
||||
mkChar = sym: col: " [${sym}](fg:${col}) [](fg:foam)";
|
||||
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";
|
||||
};
|
||||
|
||||
### Languages ###
|
||||
c = {
|
||||
style = mkDefault "bg:overlay fg:pine";
|
||||
format = mkDefault langFormat;
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault " ";
|
||||
};
|
||||
|
||||
elixir = {
|
||||
style = mkDefault "bg:overlay fg:pine";
|
||||
format = mkDefault langFormat;
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault " ";
|
||||
};
|
||||
|
||||
elm = {
|
||||
style = mkDefault "bg:overlay fg:pine";
|
||||
format = mkDefault langFormat;
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault " ";
|
||||
};
|
||||
|
||||
haskell = {
|
||||
style = mkDefault "bg:overlay fg:pine";
|
||||
format = mkDefault langFormat;
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault " ";
|
||||
};
|
||||
|
||||
java = {
|
||||
style = mkDefault "bg:overlay fg:pine";
|
||||
format = mkDefault langFormat;
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault " ";
|
||||
};
|
||||
|
||||
julia = {
|
||||
style = mkDefault "bg:overlay fg:pine";
|
||||
format = mkDefault langFormat;
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault " ";
|
||||
};
|
||||
|
||||
nodejs = {
|
||||
style = mkDefault "bg:overlay fg:pine";
|
||||
format = mkDefault langFormat;
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault " ";
|
||||
};
|
||||
|
||||
nim = {
|
||||
style = mkDefault "bg:overlay fg:pine";
|
||||
format = mkDefault langFormat;
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault " ";
|
||||
};
|
||||
|
||||
python = {
|
||||
style = mkDefault "bg:overlay fg:pine";
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault " ";
|
||||
};
|
||||
|
||||
rust = {
|
||||
style = mkDefault "bg:overlay fg:pine";
|
||||
format = mkDefault langFormat;
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault "";
|
||||
};
|
||||
|
||||
scala = {
|
||||
style = "bg:overlay fg:pine";
|
||||
format = mkDefault langFormat;
|
||||
disabled = false;
|
||||
symbol = " ";
|
||||
};
|
||||
|
||||
### Tools ###
|
||||
conda = {
|
||||
style = mkDefault "bg:overlay fg:pine";
|
||||
format = mkDefault (mkFormat "$symbol$environment");
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault "🅒 ";
|
||||
};
|
||||
|
||||
nix_shell = {
|
||||
style = "bg:overlay fg:foam";
|
||||
format = mkDefault (mkFormat " $symbol $state( \($name\)) ");
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault " ";
|
||||
substitutions = {
|
||||
Documents = mkDefault "";
|
||||
Downloads = mkDefault " ";
|
||||
Music = mkDefault " ";
|
||||
Pictures = mkDefault " ";
|
||||
};
|
||||
};
|
||||
|
||||
git_branch = {
|
||||
format = mkDefault (mkFormat " $symbol $branch ");
|
||||
style = mkDefault "bg:overlay fg:foam";
|
||||
symbol = mkDefault "";
|
||||
};
|
||||
|
||||
git_status = {
|
||||
disabled = mkDefault false;
|
||||
style = mkDefault "bg:overlay fg:love";
|
||||
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)";
|
||||
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)";
|
||||
};
|
||||
|
||||
fill = {
|
||||
style = mkDefault "fg:overlay";
|
||||
symbol = mkDefault " ";
|
||||
};
|
||||
|
||||
time = {
|
||||
disabled = mkDefault false;
|
||||
format = mkDefault (mkFormat " $time ");
|
||||
style = mkDefault "bg:overlay fg:rose";
|
||||
time_format = mkDefault "%I:%M%P";
|
||||
use_12hr = mkDefault true;
|
||||
};
|
||||
|
||||
character = let
|
||||
vim = "";
|
||||
mkChar = sym: col: " [${sym}](fg:${col}) [](fg:foam)";
|
||||
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";
|
||||
};
|
||||
|
||||
### Languages ###
|
||||
c = {
|
||||
style = mkDefault "bg:overlay fg:pine";
|
||||
format = mkDefault langFormat;
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault " ";
|
||||
};
|
||||
|
||||
elixir = {
|
||||
style = mkDefault "bg:overlay fg:pine";
|
||||
format = mkDefault langFormat;
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault " ";
|
||||
};
|
||||
|
||||
elm = {
|
||||
style = mkDefault "bg:overlay fg:pine";
|
||||
format = mkDefault langFormat;
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault " ";
|
||||
};
|
||||
|
||||
haskell = {
|
||||
style = mkDefault "bg:overlay fg:pine";
|
||||
format = mkDefault langFormat;
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault " ";
|
||||
};
|
||||
|
||||
java = {
|
||||
style = mkDefault "bg:overlay fg:pine";
|
||||
format = mkDefault langFormat;
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault " ";
|
||||
};
|
||||
|
||||
julia = {
|
||||
style = mkDefault "bg:overlay fg:pine";
|
||||
format = mkDefault langFormat;
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault " ";
|
||||
};
|
||||
|
||||
nodejs = {
|
||||
style = mkDefault "bg:overlay fg:pine";
|
||||
format = mkDefault langFormat;
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault " ";
|
||||
};
|
||||
|
||||
nim = {
|
||||
style = mkDefault "bg:overlay fg:pine";
|
||||
format = mkDefault langFormat;
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault " ";
|
||||
};
|
||||
|
||||
python = {
|
||||
style = mkDefault "bg:overlay fg:pine";
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault " ";
|
||||
};
|
||||
|
||||
rust = {
|
||||
style = mkDefault "bg:overlay fg:pine";
|
||||
format = mkDefault langFormat;
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault "";
|
||||
};
|
||||
|
||||
scala = {
|
||||
style = "bg:overlay fg:pine";
|
||||
format = mkDefault langFormat;
|
||||
disabled = false;
|
||||
symbol = " ";
|
||||
};
|
||||
|
||||
### Tools ###
|
||||
conda = {
|
||||
style = mkDefault "bg:overlay fg:pine";
|
||||
format = mkDefault (mkFormat "$symbol$environment");
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault "🅒 ";
|
||||
};
|
||||
|
||||
nix_shell = {
|
||||
style = "bg:overlay fg:foam";
|
||||
format = mkDefault (mkFormat " $symbol $state( \($name\)) ");
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault " ";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -3,23 +3,20 @@
|
|||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
inherit (lib) mkEnableOption mkIf;
|
||||
|
||||
cfg = config.marleyos.programs.tmux;
|
||||
inherit (config.marleyos.theme) colors;
|
||||
in
|
||||
{
|
||||
in {
|
||||
options.marleyos.programs.tmux.enable = mkEnableOption "tmux";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.tmux = {
|
||||
enable = true;
|
||||
|
||||
rose-pine = mkIf (colors.base == "rose-pine") {
|
||||
enable = true;
|
||||
extraConfig = # tmux
|
||||
rose-pine = {
|
||||
extraConfig =
|
||||
# tmux
|
||||
''
|
||||
set -g @rose_pine_host 'on'
|
||||
set -g @rose_pine_directory 'on'
|
||||
|
@ -51,7 +48,8 @@ in
|
|||
|
||||
{
|
||||
plugin = continuum;
|
||||
extraConfig = # tmux
|
||||
extraConfig =
|
||||
# tmux
|
||||
''
|
||||
set -g @continuum-restore 'on'
|
||||
'';
|
||||
|
@ -59,7 +57,8 @@ in
|
|||
|
||||
{
|
||||
plugin = tilish;
|
||||
extraConfig = # tmux
|
||||
extraConfig =
|
||||
# tmux
|
||||
''
|
||||
# Don't enforce the layout.
|
||||
set -g @tilish-enforce 'none'
|
||||
|
@ -77,7 +76,8 @@ in
|
|||
|
||||
{
|
||||
plugin = jump;
|
||||
extraConfig = # tmux
|
||||
extraConfig =
|
||||
# tmux
|
||||
''
|
||||
set -g @jump-key 's'
|
||||
'';
|
||||
|
@ -85,7 +85,8 @@ in
|
|||
|
||||
{
|
||||
plugin = fingers;
|
||||
extraConfig = # tmux
|
||||
extraConfig =
|
||||
# tmux
|
||||
''
|
||||
set -g @fingers-jump-key 'f'
|
||||
'';
|
||||
|
@ -93,7 +94,8 @@ in
|
|||
|
||||
{
|
||||
plugin = tmux-floax;
|
||||
extraConfig = # tmux
|
||||
extraConfig =
|
||||
# tmux
|
||||
''
|
||||
set -g @floax-bind 'i'
|
||||
set -g @floax-text-color 'white'
|
||||
|
@ -101,7 +103,8 @@ in
|
|||
}
|
||||
];
|
||||
|
||||
extraConfig = # tmux
|
||||
extraConfig =
|
||||
# tmux
|
||||
''
|
||||
# Set repeat timeout so keys can be repeated without the prefix.
|
||||
set -g repeat-time 1000
|
||||
|
|
|
@ -8,10 +8,14 @@
|
|||
inherit (lib.snowfall.system) is-darwin;
|
||||
|
||||
cfg = config.marleyos.programs.wezterm;
|
||||
inherit (config.marleyos.theme) colors;
|
||||
|
||||
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";
|
||||
|
||||
|
@ -40,7 +44,7 @@ in {
|
|||
|
||||
config.enable_tab_bar = false
|
||||
|
||||
config.color_scheme = "${colors.base}"
|
||||
config.color_scheme = "${theme}"
|
||||
|
||||
config.font = wezterm.font_with_fallback({
|
||||
{
|
||||
|
|
|
@ -2,22 +2,16 @@
|
|||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
inherit (lib) mkEnableOption mkIf;
|
||||
inherit (lib.marleyos) enabled;
|
||||
|
||||
cfg = config.marleyos.programs.zathura;
|
||||
inherit (config.marleyos.theme) colors;
|
||||
in
|
||||
{
|
||||
in {
|
||||
options.marleyos.programs.zathura.enable = mkEnableOption "zathura";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.zathura = {
|
||||
enable = true;
|
||||
|
||||
rose-pine = mkIf colors.isRosePine enabled;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -6,9 +6,6 @@
|
|||
inherit (lib.marleyos) disabled;
|
||||
|
||||
cfg = config.marleyos.services.dunst;
|
||||
inherit (config.marleyos.theme) colors;
|
||||
|
||||
isRosePine = colors.base == "rose-pine";
|
||||
in {
|
||||
options.marleyos.services.dunst.enable = lib.mkEnableOption "dunst";
|
||||
|
||||
|
@ -23,7 +20,7 @@ in {
|
|||
|
||||
settings = lib.mkMerge [
|
||||
### Rose Pine ###
|
||||
(lib.mkIf isRosePine {
|
||||
(lib.mkIf config.rose-pine.enable {
|
||||
global = {
|
||||
width = 400;
|
||||
offset = "20x60";
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
...
|
||||
}: let
|
||||
cfg = config.marleyos.services.waybar;
|
||||
inherit (config.marleyos.theme) colors;
|
||||
in {
|
||||
options.marleyos.services.waybar.enable = lib.mkEnableOption "waybar";
|
||||
|
||||
|
@ -13,8 +12,6 @@ in {
|
|||
programs.waybar = {
|
||||
enable = true;
|
||||
|
||||
rose-pine.enable = lib.mkIf colors.isRosePine true;
|
||||
|
||||
# https://gitlab.com/Zaney/zaneyos/-/blob/main/config/waybar.nix
|
||||
settings = [
|
||||
{
|
||||
|
@ -201,7 +198,7 @@ in {
|
|||
transition = "all 0.3s cubic-bezier(.55,-0.68,.48,1.682)";
|
||||
in
|
||||
lib.concatStrings [
|
||||
(lib.optionalString colors.isRosePine
|
||||
(lib.optionalString config.rose-pine.enable
|
||||
#css
|
||||
''
|
||||
@define-color darkOne @base;
|
||||
|
|
|
@ -5,10 +5,7 @@
|
|||
pkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.marleyos) enabled;
|
||||
|
||||
cfg = config.marleyos.wayland.hyprland;
|
||||
inherit (config.marleyos.theme) colors;
|
||||
in {
|
||||
options.marleyos.wayland.hyprland = {
|
||||
enable = lib.mkEnableOption "hyprland";
|
||||
|
@ -45,9 +42,10 @@ in {
|
|||
|
||||
home.pointerCursor.hyprcursor.enable = true;
|
||||
|
||||
home.packages = [
|
||||
inputs.rose-pine-hyprcursor.packages.${pkgs.system}.default
|
||||
];
|
||||
home.packages =
|
||||
lib.optional
|
||||
config.rose-pine.enable
|
||||
inputs.rose-pine-hyprcursor.packages.${pkgs.system}.default;
|
||||
|
||||
services.hyprpaper = {
|
||||
enable = true;
|
||||
|
@ -64,8 +62,6 @@ in {
|
|||
systemd.enable = true;
|
||||
xwayland.enable = true;
|
||||
|
||||
rose-pine = lib.mkIf colors.isRosePine enabled;
|
||||
|
||||
settings = let
|
||||
numMonitors = lib.length (lib.attrNames (cfg.monitors or {}));
|
||||
workspaces = lib.range 1 10;
|
||||
|
@ -135,7 +131,7 @@ in {
|
|||
"XCURSOR_SIZE,24"
|
||||
"HYPRCURSOR_SIZE,24"
|
||||
]
|
||||
++ (lib.optional colors.isRosePine "HYPRCURSOR_THEME,rose-pine-hyprcursor");
|
||||
++ (lib.optional config.rose-pine.enable "HYPRCURSOR_THEME,rose-pine-hyprcursor");
|
||||
|
||||
workspace =
|
||||
lib.mkIf (cfg ? monitors)
|
||||
|
@ -143,8 +139,8 @@ in {
|
|||
(ws: "${toString ws}, monitor:${wsMons."${toString ws}"}")
|
||||
workspaces);
|
||||
|
||||
"$main" = lib.mkIf colors.isRosePine "$love";
|
||||
"$inactive" = lib.mkIf colors.isRosePine "$muted";
|
||||
"$main" = lib.mkIf config.rose-pine.enable "$love";
|
||||
"$inactive" = lib.mkIf config.rose-pine.enable "$muted";
|
||||
|
||||
general = {
|
||||
gaps_in = 5;
|
||||
|
@ -153,7 +149,7 @@ in {
|
|||
|
||||
"col.inactive_border" = "$inactive";
|
||||
"col.active_border" =
|
||||
lib.mkIf colors.isRosePine "$rose $pine $love $iris 90deg";
|
||||
lib.mkIf config.rose-pine.enable "$rose $pine $love $iris 90deg";
|
||||
|
||||
resize_on_border = false;
|
||||
|
||||
|
|
16
modules/nixos/appearance/base/default.nix
Normal file
16
modules/nixos/appearance/base/default.nix
Normal file
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.appearance.base;
|
||||
in {
|
||||
options.marleyos.appearance.base.enable = lib.mkEnableOption "base";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
rose-pine = {
|
||||
enable = true;
|
||||
flavor = "main";
|
||||
};
|
||||
};
|
||||
}
|
13
modules/nixos/appearance/console/default.nix
Normal file
13
modules/nixos/appearance/console/default.nix
Normal file
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
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;
|
||||
};
|
||||
}
|
|
@ -10,11 +10,14 @@ in {
|
|||
|
||||
marleyos = {
|
||||
hasNvidia = true;
|
||||
|
||||
mounts.babeshare = enabled;
|
||||
|
||||
wayland.hyprland = enabled;
|
||||
|
||||
appearance = {
|
||||
base = enabled;
|
||||
console = enabled;
|
||||
};
|
||||
|
||||
programs = {
|
||||
fish = enabled;
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue