feat(home): Add default apps module

This commit is contained in:
punkfairie 2025-01-12 09:44:58 -08:00
parent 79e69ee899
commit ff2e9b74d2
No known key found for this signature in database
GPG key ID: B3C5488E9A1A7CA6
9 changed files with 236 additions and 243 deletions

View file

@ -26,30 +26,33 @@ in {
rose-pine.pointerCursor = mkIf colors.isRosePine enabled; rose-pine.pointerCursor = mkIf colors.isRosePine enabled;
marleyos.theme = { marleyos = {
colors = { theme = {
default = "dark"; colors = {
default = "dark";
dark = { dark = {
base = "rose-pine"; base = "rose-pine";
flavor = "main"; flavor = "main";
};
light = {
base = "rose-pine";
flavor = "dawn";
};
}; };
light = { icons = {
base = "rose-pine"; package = pkgs.kora-icon-theme;
flavor = "dawn"; name = "kora";
}; };
}; };
apps = {
icons = { pinentry =
package = pkgs.kora-icon-theme; if isDesktop
name = "kora"; then pkgs.pinentry-gtk2
else pkgs.pinentry-curses;
}; };
pinentry =
if isDesktop
then pkgs.pinentry-gtk2
else pkgs.pinentry-curses;
}; };
fonts.fontconfig = mkIf (is-linux system) { fonts.fontconfig = mkIf (is-linux system) {

View file

@ -0,0 +1,55 @@
{
lib,
config,
pkgs,
system,
...
}: let
inherit (lib.snowfall.system) is-linux;
cfg = config.marleyos.apps;
in {
options.marleyos.apps = {
pinentry = lib.mkOption {
type = lib.types.package;
default = pkgs.pinentry-gtk2;
description = "The pinentry package to use.";
};
clipboard = lib.mkOption {
type = lib.types.package;
default =
if config.marleyos.wayland.hyprland.enable
then pkgs.wl-clipboard
else pkgs.clipboard-jh;
description = "The clipboard manager to use.";
};
terminal = lib.mkOption {
type = lib.types.package;
default = pkgs.wezterm;
description = "Ther terminal emulator to use.";
};
browser = lib.mkOption {
type = lib.types.package;
default = pkgs.floorp;
description = "The browser to use.";
};
};
config = lib.mkIf (is-linux system) {
home.packages = [
cfg.pinentry
cfg.clipboard
];
programs.rbw = lib.mkDefault {
settings.pinentry = cfg.pinentry;
};
services.gpg-agent = lib.mkDefault {
pinentryPackage = cfg.pinentry;
};
};
}

View file

@ -1,19 +1,9 @@
{ {
lib, lib,
config, config,
pkgs,
system, system,
... ...
}: let }: let
inherit
(lib)
types
mkOption
literalMD
mkMerge
mkIf
mkDefault
;
inherit (lib.snowfall.system) is-linux; inherit (lib.snowfall.system) is-linux;
cfg = config.marleyos.theme; cfg = config.marleyos.theme;
@ -22,12 +12,12 @@
"rose-pine" "rose-pine"
]; ];
colorThemeType = types.submodule { colorThemeType = lib.types.submodule {
options = { options = {
base = mkOption { base = lib.mkOption {
type = colorThemes; type = colorThemes;
example = "rose-pine"; example = "rose-pine";
description = literalMD '' description = lib.literalMD ''
The color theme to use. This should match the base of the enable 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 options provided by the input's module. For instance, the rose-pine
home-manager module provides the {option}`rose-pine.enable` base home-manager module provides the {option}`rose-pine.enable` base
@ -35,15 +25,15 @@
''; '';
}; };
flavor = mkOption { flavor = lib.mkOption {
type = with types; nullOr str; type = with lib.types; nullOr str;
default = null; default = null;
example = "moon"; example = "moon";
description = "The theme flavor to use, if applicable."; description = "The theme flavor to use, if applicable.";
}; };
accent = mkOption { accent = lib.mkOption {
type = with types; nullOr str; type = with lib.types; nullOr str;
default = null; default = null;
example = "rose"; example = "rose";
description = "The theme accent to use, if applicable."; description = "The theme accent to use, if applicable.";
@ -51,8 +41,8 @@
}; };
}; };
mkColorThemeOpt = mode: flavor: (mkOption { mkColorThemeOpt = mode: flavor: (lib.mkOption {
type = with types; either str colorThemeType; type = with lib.types; either str colorThemeType;
default = { default = {
base = "rose-pine"; base = "rose-pine";
inherit flavor; inherit flavor;
@ -61,10 +51,10 @@
}); });
# https://github.com/nix-community/home-manager/blob/master/modules/misc/gtk.nix # https://github.com/nix-community/home-manager/blob/master/modules/misc/gtk.nix
iconThemeType = types.submodule { iconThemeType = lib.types.submodule {
options = { options = {
package = mkOption { package = lib.mkOption {
type = with types; nullOr package; type = with lib.types; nullOr package;
default = null; default = null;
example = "pkgs.gnome.adwaita-icon-theme"; example = "pkgs.gnome.adwaita-icon-theme";
description = '' description = ''
@ -74,8 +64,8 @@
''; '';
}; };
name = mkOption { name = lib.mkOption {
type = with types; str; type = with lib.types; str;
example = "Adwaita"; example = "Adwaita";
description = "The name of the icon theme within the package."; description = "The name of the icon theme within the package.";
}; };
@ -84,8 +74,8 @@
in { in {
options.marleyos.theme = { options.marleyos.theme = {
colors = { colors = {
default = mkOption { default = lib.mkOption {
type = with types; str; type = with lib.types; str;
default = "dark"; default = "dark";
description = "Whether to prefer the light or dark theme."; description = "Whether to prefer the light or dark theme.";
}; };
@ -93,44 +83,29 @@ in {
light = mkColorThemeOpt "light" "dawn"; light = mkColorThemeOpt "light" "dawn";
dark = mkColorThemeOpt "dark" "main"; dark = mkColorThemeOpt "dark" "main";
base = mkOption { base = lib.mkOption {
type = colorThemes; type = colorThemes;
}; };
flavor = mkOption { flavor = lib.mkOption {
type = with types; nullOr str; type = with lib.types; nullOr str;
}; };
accent = mkOption { accent = lib.mkOption {
type = with types; nullOr str; type = with lib.types; nullOr str;
}; };
isRosePine = mkOption { isRosePine = lib.mkOption {
type = with types; bool; type = with lib.types; bool;
}; };
}; };
icons = mkOption { icons = lib.mkOption {
type = with types; nullOr iconThemeType; type = with lib.types; nullOr iconThemeType;
default = null; default = null;
description = "The icon theme to use."; description = "The icon theme to use.";
}; };
pinentry = mkOption {
type = with types; package;
default = pkgs.pinentry-gtk2;
description = "The pinentry package to use.";
};
clipboard = mkOption {
type = with types; package;
default =
if config.marleyos.wayland.hyprland.enable
then pkgs.wl-clipboard
else pkgs.clipboard-jh;
description = "The clipboard manager to use.";
};
}; };
config = mkMerge [ config = lib.mkMerge [
# colors # colors
{ {
marleyos.theme.colors = rec { marleyos.theme.colors = rec {
@ -144,36 +119,20 @@ in {
} }
# icons # icons
(mkIf ((cfg.icons != null) && (is-linux system)) { (lib.mkIf ((cfg.icons != null) && (is-linux system)) {
gtk = mkDefault { gtk = lib.mkDefault {
iconTheme = { iconTheme = {
inherit (cfg.icons) name; inherit (cfg.icons) name;
package = mkIf (cfg.icons.package != null) cfg.icons.package; package = lib.mkIf (cfg.icons.package != null) cfg.icons.package;
}; };
}; };
services.dunst = mkDefault { services.dunst = lib.mkDefault {
iconTheme = { iconTheme = {
inherit (cfg.icons) name; inherit (cfg.icons) name;
package = mkIf (cfg.icons.package != null) cfg.icons.package; package = lib.mkIf (cfg.icons.package != null) cfg.icons.package;
}; };
}; };
}) })
# pinentry
(mkIf (is-linux system) {
home.packages = [
cfg.pinentry
cfg.clipboard
];
programs.rbw = mkDefault {
settings.pinentry = cfg.pinentry;
};
services.gpg-agent = mkDefault {
pinentryPackage = cfg.pinentry;
};
})
]; ];
} }

View file

@ -2,15 +2,12 @@
lib, lib,
config, config,
... ...
}: }: let
let
inherit (lib) mkIf; inherit (lib) mkIf;
cfg = config.marleyos.programs.git; cfg = config.marleyos.programs.git;
in in {
{
config = mkIf cfg.enable { config = mkIf cfg.enable {
# █████╗ ██╗ ██╗ █████╗ ███████╗███████╗███████╗ # █████╗ ██╗ ██╗ █████╗ ███████╗███████╗███████╗
# ██╔══██╗██║ ██║██╔══██╗██╔════╝██╔════╝██╔════╝ # ██╔══██╗██║ ██║██╔══██╗██╔════╝██╔════╝██╔════╝
# ███████║██║ ██║███████║███████╗█████╗ ███████╗ # ███████║██║ ██║███████║███████╗█████╗ ███████╗
@ -18,157 +15,155 @@ in
# ██║ ██║███████╗██║██║ ██║███████║███████╗███████║ # ██║ ██║███████╗██║██║ ██║███████║███████╗███████║
# ╚═╝ ╚═╝╚══════╝╚═╝╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝ # ╚═╝ ╚═╝╚══════╝╚═╝╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝
programs.git.aliases = programs.git.aliases = let
let fish_fns = config.programs.fish.functions;
fish_fns = config.programs.fish.functions; in {
in ### Staging ###
{
### Staging ###
a = "add"; a = "add";
aa = "add --all"; aa = "add --all";
# Interactively stage parts of a file. # Interactively stage parts of a file.
apa = "add --patch"; apa = "add --patch";
da = "diff"; da = "diff";
das = "diff --staged"; das = "diff --staged";
daw = "diff --word-diff"; # Show diff by word. daw = "diff --word-diff"; # Show diff by word.
dasw = "diff --staged --word-diff"; dasw = "diff --staged --word-diff";
d = "!f() { git diff \"$@\" ':(exclude)package-lock.json' ':(exclude)*.lock'; }; f"; d = "!f() { git diff \"$@\" ':(exclude)package-lock.json' ':(exclude)*.lock'; }; f";
ds = "!f() { git diff --staged \"$@\" ':(exclude)package-lock.json' ':(exclude)*.lock'; }; f"; ds = "!f() { git diff --staged \"$@\" ':(exclude)package-lock.json' ':(exclude)*.lock'; }; f";
dw = "!f() { git diff --word-diff \"$@\" ':(exclude)package-lock.json' ':(exclude)*.lock'; }; f"; dw = "!f() { git diff --word-diff \"$@\" ':(exclude)package-lock.json' ':(exclude)*.lock'; }; f";
dsw = "!f() { git diff --staged --word-diff \"$@\" ':(exclude)package-lock.json' ':(exclude)*.lock'; }; f"; dsw = "!f() { git diff --staged --word-diff \"$@\" ':(exclude)package-lock.json' ':(exclude)*.lock'; }; f";
st = "status --short --branch"; st = "status --short --branch";
stu = "status --short --branch --untracked-files"; stu = "status --short --branch --untracked-files";
stl = "status"; stl = "status";
### Committing ### ### Committing ###
c = "commit"; c = "commit";
ce = "commit --amend"; ce = "commit --amend";
cen = "commit --amend --no-edit --no-verify"; cen = "commit --amend --no-edit --no-verify";
ca = "!git add --alll && git commit"; ca = "!git add --alll && git commit";
cae = "!git add --all && git commit --amend"; cae = "!git add --all && git commit --amend";
caen = "!git add --all && git commit --amend --no-edit --no-verify"; caen = "!git add --all && git commit --amend --no-edit --no-verify";
cfu = "commit --fixup"; cfu = "commit --fixup";
rev = "revert"; rev = "revert";
### Working Dir & Index Manipulation ### ### Working Dir & Index Manipulation ###
co = "checkout"; co = "checkout";
rt = "reset"; rt = "reset";
rts = "reset --soft"; # undo commits & stage their changes rts = "reset --soft"; # undo commits & stage their changes
rs = "restore --worktree"; # revert local changes rs = "restore --worktree"; # revert local changes
rst = "restore --staged"; # unstage things rst = "restore --staged"; # unstage things
rsa = "restore --worktree --staged"; rsa = "restore --worktree --staged";
rss = "restore --worktree --source"; # specify a commit to revert to rss = "restore --worktree --source"; # specify a commit to revert to
rsts = "restore --staged --source"; rsts = "restore --staged --source";
rsas = "restore --worktree --staged --source"; rsas = "restore --worktree --staged --source";
rmc = "rm --cached"; # leave worktree copy alone rmc = "rm --cached"; # leave worktree copy alone
sta = "stash push"; sta = "stash push";
stam = "stash push --message"; stam = "stash push --message";
staa = "stash push --include-untracted"; staa = "stash push --include-untracted";
staam = "stash push --include-untracted --message"; staam = "stash push --include-untracted --message";
stap = "stash pop"; stap = "stash pop";
stal = "stash list"; stal = "stash list";
stas = "stash show --text"; stas = "stash show --text";
cl = "clean -force"; # remove untracked & unignored files cl = "clean -force"; # remove untracked & unignored files
cldr = "clean --dry-run"; cldr = "clean --dry-run";
### Branches ### ### Branches ###
b = "branch"; b = "branch";
cb = "checkout -b"; cb = "checkout -b";
cm = lib.mkIf (fish_fns ? git_main_branch) "!git checkout $(git_main_branch)"; cm = lib.mkIf (fish_fns ? git_main_branch) "!git checkout $(git_main_branch)";
cd = lib.mkIf (fish_fns ? git_develop_branch) "!git checkout $(git_develop_branch)"; cd = lib.mkIf (fish_fns ? git_develop_branch) "!git checkout $(git_develop_branch)";
m = "merge"; m = "merge";
mtl = "mergetool --no-prompt"; mtl = "mergetool --no-prompt";
ma = "merge --abort"; ma = "merge --abort";
cp = "cherry-pick"; cp = "cherry-pick";
cpa = "cherry-pick --abort"; cpa = "cherry-pick --abort";
cpc = "cherry-pick --continue"; cpc = "cherry-pick --continue";
cpq = "cherry-pick --quit"; cpq = "cherry-pick --quit";
### Remotes ### ### Remotes ###
p = "push"; p = "push";
pv = "push --verbose"; pv = "push --verbose";
pdr = "push --dry-run"; pdr = "push --dry-run";
pf = "push --force-with-lease --force-if-includes"; pf = "push --force-with-lease --force-if-includes";
pfv = "push --verbose --force-with-lease --force-if-includes"; pfv = "push --verbose --force-with-lease --force-if-includes";
pff = "push --force"; pff = "push --force";
pffv = "push --verbose --force"; pffv = "push --verbose --force";
f = "fetch"; f = "fetch";
fa = "fetch --all --prune"; fa = "fetch --all --prune";
pl = "pull"; pl = "pull";
plr = "pull --rebase"; plr = "pull --rebase";
sub = "submodule"; sub = "submodule";
subu = "submodule update --init --recursive"; subu = "submodule update --init --recursive";
r = "remote"; r = "remote";
rv = "remote --verbose"; rv = "remote --verbose";
ra = "remote add"; ra = "remote add";
rrm = "remote remove"; rrm = "remote remove";
rmv = "remote rename"; rmv = "remote rename";
rset = "remote set-url"; rset = "remote set-url";
rup = "remote update"; rup = "remote update";
### Logs ### ### Logs ###
# Current branch. # Current branch.
l = "log --pretty=lc --graph"; l = "log --pretty=lc --graph";
lo = "log --pretty=lo --graph --date=human"; lo = "log --pretty=lo --graph --date=human";
ls = "log --pretty=lo --graph --date=human --simplify-by-decoration"; ls = "log --pretty=lo --graph --date=human --simplify-by-decoration";
lf = "log --pretty=lf --graph"; lf = "log --pretty=lf --graph";
ld = "log --pretty=lf --graph --cc --stat"; ld = "log --pretty=lf --graph --cc --stat";
lp = "log --pretty=lf --graph --cc --patch"; lp = "log --pretty=lf --graph --cc --patch";
lr = "log -5 --pretty=lc --graph"; lr = "log -5 --pretty=lc --graph";
lro = "log -5 --pretty=lo --graph --date=human"; lro = "log -5 --pretty=lo --graph --date=human";
lrs = "log -5 --pretty=lo --graph --date=human --simplify-by-decoration"; lrs = "log -5 --pretty=lo --graph --date=human --simplify-by-decoration";
lrf = "log -5 --pretty=lf --graph"; lrf = "log -5 --pretty=lf --graph";
lrd = "log -5 --pretty=lf --graph --cc --stat"; lrd = "log -5 --pretty=lf --graph --cc --stat";
lrp = "log -5 --pretty=lf --graph --cc --patch"; lrp = "log -5 --pretty=lf --graph --cc --patch";
# All branches on all remotes. # All branches on all remotes.
la = "log --pretty=lc --graph --all"; la = "log --pretty=lc --graph --all";
lao = "log --pretty=lo --graph --all --date=human"; lao = "log --pretty=lo --graph --all --date=human";
las = "log --pretty=lo --graph --all --date=human --simplify-by-decoration"; las = "log --pretty=lo --graph --all --date=human --simplify-by-decoration";
laf = "log --pretty=lf --graph --all"; laf = "log --pretty=lf --graph --all";
lad = "log --pretty=lf --graph --all --cc --stat"; lad = "log --pretty=lf --graph --all --cc --stat";
lap = "log --pretty=lf --graph --all --cc --patch"; lap = "log --pretty=lf --graph --all --cc --patch";
lar = "log -5 --pretty=lc --graph --all"; lar = "log -5 --pretty=lc --graph --all";
laro = "log -5 --pretty=lo --graph --all --date=human"; laro = "log -5 --pretty=lo --graph --all --date=human";
lars = "log -5 --pretty=lo --graph --all --date=human --simplify-by-decoration"; lars = "log -5 --pretty=lo --graph --all --date=human --simplify-by-decoration";
larf = "log -5 --pretty=lf --graph --all"; larf = "log -5 --pretty=lf --graph --all";
lard = "log -5 --pretty=lf --graph --all --cc --stat"; lard = "log -5 --pretty=lf --graph --all --cc --stat";
larp = "log -5 --pretty=lf --graph --all --cc --patch"; larp = "log -5 --pretty=lf --graph --all --cc --patch";
### Shortcuts ### ### Shortcuts ###
nevermind = "!git reset --hard head && git clean -df"; nevermind = "!git reset --hard head && git clean -df";
open = lib.mkIf (config.programs.fish.enable && (fish_fns ? git_open)) "!fish -c git_open"; open = lib.mkIf (config.programs.fish.enable && (fish_fns ? git_open)) "!fish -c git_open";
chash = "!git log --oneline | gum filter --height 10 | cut -d' ' -f1 | cb &>/dev/null"; chash = "!git log --oneline | gum filter --height 10 | cut -d' ' -f1 | ${config.marleyos.apps.clipboard} &>/dev/null";
}; };
}; };
} }

View file

@ -17,7 +17,7 @@ in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
home.packages = with pkgs; [ home.packages = with pkgs; [
gum gum
config.marleyos.theme.clipboard config.marleyos.apps.clipboard
]; ];
# ██████╗ ██╗████████╗ # ██████╗ ██╗████████╗

View file

@ -66,7 +66,7 @@ in {
blur-kern = "3x3box"; blur-kern = "3x3box";
blur-background-exclude = [ blur-background-exclude = [
"window_type = 'desktop'", "window_type = 'desktop'",
"name = 'firefox'", "name = '${lib.getName config.marleyos.apps.browser}'",
"class_g = 'slop'" "class_g = 'slop'"
]; ];

View file

@ -98,11 +98,9 @@ in {
in { in {
monitor = lib.attrValues cfg.monitors; monitor = lib.attrValues cfg.monitors;
# TODO: Set this in a default apps module. "$terminal" = lib.getExe config.marleyos.apps.terminal;
"$terminal" = lib.getExe pkgs.wezterm;
"$launcher" = "${lib.getExe pkgs.wofi} --show drun"; "$launcher" = "${lib.getExe pkgs.wofi} --show drun";
# TODO: Set this in a default apps module. "$browser" = lib.getExe config.marleyos.apps.browser;
"$browser" = "${lib.getExe pkgs.floorp}";
exec-once = let exec-once = let
browserWs = browserWs =

View file

@ -4,24 +4,14 @@
pkgs, pkgs,
... ...
}: let }: let
inherit
(lib)
mkEnableOption
mkIf
concatMapAttrs
map
range
listToAttrs
getExe
;
inherit (lib.marleyos) enabled disabled; inherit (lib.marleyos) enabled disabled;
cfg = config.marleyos.xorg.i3; cfg = config.marleyos.xorg.i3;
isGenericLinux = config.targets.genericLinux.enable; isGenericLinux = config.targets.genericLinux.enable;
in { in {
options.marleyos.xorg.i3.enable = mkEnableOption "i3"; options.marleyos.xorg.i3.enable = lib.mkEnableOption "i3";
config = mkIf cfg.enable { config = lib.mkIf cfg.enable {
marleyos = { marleyos = {
programs.rofi = enabled; programs.rofi = enabled;
services = { services = {
@ -43,7 +33,7 @@ in {
xsession.windowManager.i3 = { xsession.windowManager.i3 = {
enable = true; enable = true;
package = mkIf config.marleyos.nixGL.enable (config.lib.nixGL.wrap pkgs.i3); package = lib.mkIf config.marleyos.nixGL.enable (config.lib.nixGL.wrap pkgs.i3);
extraConfig = "tiling_drag modifier titlebar"; extraConfig = "tiling_drag modifier titlebar";
@ -83,13 +73,12 @@ in {
keybindings = let keybindings = let
mod = config.xsession.windowManager.i3.config.modifier; mod = config.xsession.windowManager.i3.config.modifier;
workspaces = range 1 10; workspaces = lib.range 1 10;
getI = i: getI = i:
if i == 10 if i == 10
then "0" then "0"
else toString i; else toString i;
inherit (config.xdg) configHome; inherit (config.xdg) configHome;
isGenericLinux = config.targets.genericLinux.enable;
in in
{ {
"${mod}+Shift+c" = "reload"; "${mod}+Shift+c" = "reload";
@ -109,15 +98,11 @@ in {
"${mod}+q" = "kill"; "${mod}+q" = "kill";
"${mod}+r" = "exec ${configHome}/rofi/launchers/type-1/launcher.sh"; "${mod}+r" = "exec ${configHome}/rofi/launchers/type-1/launcher.sh";
"${mod}+Return" = "exec ${ "${mod}+Return" = "exec ${lib.getExe config.marleyos.apps.terminal}";
if isGenericLinux
then "wezterm"
else "${pkgs.wezterm}/bin/wezterm"
}";
} }
# PulseAudio Volume - - - - - - - - - - - - - - - - - - - - - - - - # PulseAudio Volume - - - - - - - - - - - - - - - - - - - - - - - -
// ( // (
concatMapAttrs lib.concatMapAttrs
(key: cmd: { (key: cmd: {
"${key}" = "exec --no-startup-id pactl ${cmd} && killall -SIGUSR1 i3status"; "${key}" = "exec --no-startup-id pactl ${cmd} && killall -SIGUSR1 i3status";
}) })
@ -129,13 +114,13 @@ in {
} }
) )
# Focus & Movement - - - - - - - - - - - - - - - - - - - - - - - - - # Focus & Movement - - - - - - - - - - - - - - - - - - - - - - - - -
// (concatMapAttrs (direction: key: { // (lib.concatMapAttrs (direction: key: {
"${mod}+${key}" = "focus ${direction}"; "${mod}+${key}" = "focus ${direction}";
"${mod}+Shift+${key}" = "move ${direction}"; "${mod}+Shift+${key}" = "move ${direction}";
}) })
directions) directions)
# Switch Workspaces - - - - - - - - - - - - - - - - - - - - - - - - - # Switch Workspaces - - - - - - - - - - - - - - - - - - - - - - - - -
// (listToAttrs ( // (lib.listToAttrs (
(map (i: { (map (i: {
name = "${mod}+${getI i}"; name = "${mod}+${getI i}";
value = "workspace number ${toString i}"; value = "workspace number ${toString i}";
@ -143,7 +128,7 @@ in {
workspaces workspaces
)) ))
# Move Windows Between Workspaces - - - - - - - - - - - - - - - - - - # Move Windows Between Workspaces - - - - - - - - - - - - - - - - - -
// (listToAttrs ( // (lib.listToAttrs (
(map (i: { (map (i: {
name = "${mod}+Shift+${getI i}"; name = "${mod}+Shift+${getI i}";
value = "move container to workspace number ${toString i}"; value = "move container to workspace number ${toString i}";
@ -161,7 +146,7 @@ in {
"${mod}+Control+r" = "mode default"; "${mod}+Control+r" = "mode default";
} }
// ( // (
concatMapAttrs lib.concatMapAttrs
(key: action: { (key: action: {
"${key}" = "resize ${action} 10 px or 10 ppt"; "${key}" = "resize ${action} 10 px or 10 ppt";
}) })

View file

@ -8,8 +8,6 @@ in {
networking.hostName = "nyx"; networking.hostName = "nyx";
programs.firefox.enable = true;
marleyos = { marleyos = {
hasNvidia = true; hasNvidia = true;