Compare commits

..

No commits in common. "270e1a0be4410d7675160c2bb9be27a05eb7ca3e" and "6225bb0f273730097d435e45351fdd85e7a68c1c" have entirely different histories.

40 changed files with 425 additions and 639 deletions

View file

@ -14,7 +14,7 @@
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
imports = [ imports = [
./modules ./modules
# ./options.nix
]; ];
environment.pathsToLink = [ environment.pathsToLink = [

View file

@ -1,12 +0,0 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [
./terminal
];
}

View file

@ -8,6 +8,5 @@
{ {
imports = [ imports = [
./kitty.nix ./kitty.nix
./ranger.nix
]; ];
} }

View file

@ -2,7 +2,6 @@
config, config,
lib, lib,
pkgs, pkgs,
osConfig,
... ...
}: }:

View file

@ -8,6 +8,5 @@
{ {
imports = [ imports = [
./desktop ./desktop
./apps
]; ];
} }

View file

@ -8,20 +8,12 @@
}: }:
{ {
imports = config = lib.mkIf osConfig.desktop.shell.noctalia.enable {
if true then
[
inputs.noctalia.homeModules.default
]
else
[ ];
config = {
programs.noctalia-shell =
if osConfig.desktop.shell.noctalia.enable then
{
enable = true;
}
else
{ };
}; };
imports = lib.mkIf osConfig.desktop.shell.noctalia.enable [
inputs.noctalia.homeModules.default
]
} }

View file

@ -8,27 +8,19 @@
}: }:
{ {
config = config = lib.mkIf osConfig.desktop.shell.walker.enable {
if osConfig.desktop.shell.walker.enable then programs = {
{ walker = {
programs = { enable = true;
walker = { runAsService = true;
enable = true; config = {
runAsService = true; theme = "noctalia";
config = {
theme = "noctalia";
};
};
}; };
} };
else };
{ }; };
imports = imports = lib.mkIf osConfig.desktop.shell.walker.enable [
if osConfig.desktop.shell.walker.enable then inputs.walker.homeManagerModules.default
[ ]
inputs.walker.homeManagerModules.default
]
else
[ ];
} }

View file

@ -11,7 +11,6 @@
options = { options = {
desktop = { desktop = {
hyprland = { hyprland = {
enable = lib.mkEnableOption "enable hyprland";
monitors = lib.mkOption { monitors = lib.mkOption {
default = [ default = [
",preferred,auto,1" ",preferred,auto,1"
@ -45,7 +44,7 @@
}; };
}; };
config = lib.mkIf osConfig.desktop.window-managers.hyprland.enable { config = lib.mkIf osConfig.desktop.hyprland.enable {
xdg.portal = { xdg.portal = {
enable = true; enable = true;
configPackages = [ configPackages = [
@ -98,9 +97,9 @@
(lib.mkIf (osConfig.desktop.shell.rofi.enable) "$mod, D, exec, rofi -show drun") (lib.mkIf (osConfig.desktop.shell.rofi.enable) "$mod, D, exec, rofi -show drun")
"$mod, return, exec, ${osConfig.apps.terminal.binary}" "$mod, return, exec, ${osConfig.apps.terminal.binary}"
(lib.mkIf (osConfig.desktop.utilities.grimblast.enable) ", print, exec, GRIMBLAST_EDITOR=gradia grimblast edit area") (lib.mkIf (osConfig.desktop.utilities.grimblast.enable) ", print, exec, GRIMBLAST_EDITOR=gradia grimblast edit area")
(lib.mkIf (osConfig.desktop.shell.walker.enable && osConfig.misc.bitwarden.enable) (lib.mkIf (osConfig.desktop.shell.walker.enable) (
"$mod, B, exec, rbw unlocked || kitty --class kitty-floating -e rbw unlock; selected=$(rbw list | walker -d); wl-copy $(rbw get \"$selected\"); sleep 30; rbw lock" lib.mkIf (osConfig.misc.bitwarden.enable) "$mod, B, exec, rbw unlocked || kitty --class kitty-floating -e rbw unlock; selected=$(rbw list | walker -d); wl-copy $(rbw get \"$selected\"); sleep 30; rbw lock"
) ))
"$mod, F, fullscreen, 1" "$mod, F, fullscreen, 1"
"$shiftmod, F, fullscreen, 0" "$shiftmod, F, fullscreen, 0"
"$shiftmod, Q, killactive," "$shiftmod, Q, killactive,"

View file

@ -8,102 +8,105 @@
}: }:
let let
modifier = if (osConfig.keybinds.modifier == "Meta") then "Mod" else null; modifier = lib.mkIf (${osConfig.keybinds.modifier} == "Meta") "Mod";
kb-layout = builtins.substring 0 2 osConfig.system.locale; kb-layout = builtins.substring 0 2 osConfig.system.locale;
in in
{ {
config = options = {
if osConfig.desktop.window-managers.niri.enable then desktop.window-managers = {
{ niri = {
home.file = { };
"~/.config/niri/config.kdl" = '' };
input {
keyboard { };
xkb { config = lib.mkIf osConfig.desktop.window-managers.niri.enable {
layout "${kb-layout}" home.file = {
} "~/.config/niri/config.kdl" = ''
repeat-delay 600 input {
repeat-rate 20
track-layout "global" keyboard {
} xkb {
touchpad { layout "${kb-layout}"
tap }
dwt repeat-delay 600
accel-profile "flat" repeat-rate 20
accel-speed 0.0 track-layout "global"
scroll-method "two-finger" }
touchpad {
tap
dwt
accel-profile "flat"
accel-speed 0.0
scroll-method "two-finger"
} }
mouse { mouse {
accel-speed 0.5 accel-speed 0.5
accel-profile "flat" accel-profile "flat"
} }
} }
gestures { gestures {
hot-corners { hot-corners {
off off
} }
} }
cursor { cursor {
hide-when-typing hide-when-typing
hide-after-inactive-ms 2000 hide-after-inactive-ms 2000
} }
xwayland-satellite { xwayland-satellite {
path "xwayland-satellite" path "xwayland-satellite"
} }
hotkey-overlay { hotkey-overlay {
hide-not-bound hide-not-bound
} }
binds { binds {
${modifier}+Down cooldown-ms=150 { focus-workspace-down; } ${modifier}+Down cooldown-ms=150 { focus-workspace-down; }
${modifier}+Up cooldown-ms=150 { focus-workspace-up; } ${modifier}+Up cooldown-ms=150 { focus-workspace-up; }
${modifier}+${osConfig.keybinds.hotkeys.terminal} { spawn "${osConfig.terminal.binary}";} ${modifier}+${osConfig.keybinds.hotkeys.terminal} { spawn "${osConfig.terminal.binary}";}
${modifier}+Left {focus-column-left; } ${modifier}+Left {focus-column-left; }
${modifier}+Right {focus-column-right; } ${modifier}+Right {focus-column-right; }
${modifier}+${osConfig.keybinds.hotkeys.browser} { spawn "${osConfig.apps.browser.default}";} ${modifier}+${osConfig.keybinds.hotkeys.browser} { spawn "${osConfig.apps.browser.default}";}
${modifier}+${osConfig.keybinds.hotkeys.launcher} { spawn "${osConfig.desktop.window-managers.shell.launcher.default}";} ${modifier}+${osConfig.keybinds.hotkeys.launcher} { spawn "${osConfig.desktop.window-managers.shell.launcher.default}";}
Print { screenshot;} Print { screenshot;}
${modifier}+Shift+${osConfig.keybinds.hotkeys.close-window} { close-window; } ${modifier}+Shift+${osConfig.keybinds.hotkeys.close-window} { close-window; }
${modifier}+Shift+${osConfig.keybinds.hotkeys.editor} { spawn "${osConfig.apps.development.editor.default}";} ${modifier}+Shift+${osConfig.keybinds.hotkeys.editor} { spawn "${osConfig.apps.development.editor.default}";}
} }
spawn-at-startup "elephant" spawn-at-startup "elephant"
spawn-at-startup "noctalia-shell" spawn-at-startup "noctalia-shell"
layout { layout {
gaps 20 gaps 20
focus-ring { focus-ring {
width 5 width 5
} }
border { border {
off off
} }
} }
window-rule { window-rule {
geometry-corner-radius 20 geometry-corner-radius 20
clip-to-geometry true clip-to-geometry true
} }
prefer-no-csd prefer-no-csd
include "noctalia.kdl" include "noctalia.kdl"
''; '';
}; };
} };
else
{ };
} }

View file

@ -3,68 +3,70 @@
pkgs, pkgs,
lib, lib,
inputs, inputs,
osConfig,
... ...
}: }:
{ {
config = options = {
if osConfig.desktop.window-managers.sway.enable then desktop.window-managers = {
{ sway = {
wayland.windowManager.sway = { };
enable = true; };
package = pkgs.swayfx;
config = {
modifier = "Mod4";
startup = [
{ command = "elephant"; }
];
keybindings =
let
modifier = config.wayland.windowManager.sway.config.modifier;
in
{
"${modifier}+Return" = "exec ${config.wayland.windowManager.sway.config.terminal}";
"${modifier}+Shift+q" = "kill";
"${modifier}+d" = "exec walker";
"${modifier}+o" = "exec zen";
"${modifier}+Control+right" = "exec /home/marty/.config/sway/scripts/workspaceswitcher right";
"${modifier}+Control+left" = "exec /home/marty/.config/sway/scripts/workspaceswitcher left";
"${modifier}+f" = "fullscreen";
"${modifier}+1" = "workspace number 1"; };
"${modifier}+2" = "workspace number 2"; config = lib.mkIf osConfig.desktop.window-managers.sway.enable {
"${modifier}+3" = "workspace number 3"; wayland.windowManager.sway = {
"${modifier}+4" = "workspace number 4"; enable = true;
"${modifier}+5" = "workspace number 5"; package = pkgs.swayfx;
"${modifier}+6" = "workspace number 6"; config = {
"${modifier}+7" = "workspace number 7"; modifier = "Mod4";
"${modifier}+8" = "workspace number 8"; startup = [
"${modifier}+9" = "workspace number 9"; { command = "elephant"; }
"${modifier}+s" = "workspace number 0"; ];
keybindings =
let
modifier = config.wayland.windowManager.sway.config.modifier;
in
{
"${modifier}+Return" = "exec ${config.wayland.windowManager.sway.config.terminal}";
"${modifier}+Shift+q" = "kill";
"${modifier}+d" = "exec walker";
"${modifier}+o" = "exec zen";
"${modifier}+Control+right" = "exec /home/marty/.config/sway/scripts/workspaceswitcher right";
"${modifier}+Control+left" = "exec /home/marty/.config/sway/scripts/workspaceswitcher left";
"${modifier}+f" = "fullscreen";
"${modifier}+Shift+1" = "move container to workspace number 1"; "${modifier}+1" = "workspace number 1";
"${modifier}+Shift+2" = "move container to workspace number 2"; "${modifier}+2" = "workspace number 2";
"${modifier}+Shift+3" = "move container to workspace number 3"; "${modifier}+3" = "workspace number 3";
"${modifier}+Shift+4" = "move container to workspace number 4"; "${modifier}+4" = "workspace number 4";
"${modifier}+Shift+5" = "move container to workspace number 5"; "${modifier}+5" = "workspace number 5";
"${modifier}+Shift+6" = "move container to workspace number 6"; "${modifier}+6" = "workspace number 6";
"${modifier}+Shift+7" = "move container to workspace number 7"; "${modifier}+7" = "workspace number 7";
"${modifier}+Shift+8" = "move container to workspace number 8"; "${modifier}+8" = "workspace number 8";
"${modifier}+Shift+9" = "move container to workspace number 9"; "${modifier}+9" = "workspace number 9";
"${modifier}+Shift+s" = "move container to workspace number 0"; "${modifier}+s" = "workspace number 0";
};
input = { "${modifier}+Shift+1" = "move container to workspace number 1";
"*" = { "${modifier}+Shift+2" = "move container to workspace number 2";
xkb_layout = builtins.substring 0 2 osConfig.system.locale; "${modifier}+Shift+3" = "move container to workspace number 3";
}; "${modifier}+Shift+4" = "move container to workspace number 4";
}; "${modifier}+Shift+5" = "move container to workspace number 5";
defaultWorkspace = "workspace number 1"; "${modifier}+Shift+6" = "move container to workspace number 6";
terminal = osConfig.desktop.defaults.terminal.binary; "${modifier}+Shift+7" = "move container to workspace number 7";
"${modifier}+Shift+8" = "move container to workspace number 8";
"${modifier}+Shift+9" = "move container to workspace number 9";
"${modifier}+Shift+s" = "move container to workspace number 0";
};
input = {
"*" = {
xkb_layout = builtins.substring 0 2 osConfig.system.locale;
}; };
checkConfig = false;
}; };
} defaultWorkspace = "workspace number 1";
else terminal = osConfig.desktop.defaults.terminal.binary;
{ }; };
checkConfig = false;
};
};
} }

View file

@ -40,7 +40,7 @@
}; };
imports = [ imports = [
./../../home ./../../modules
]; ];
programs.home-manager.enable = true; programs.home-manager.enable = true;
} }

View file

@ -16,26 +16,11 @@
}; };
config = { config = {
environment.systemPackages = environment.systemPackages = with pkgs; [
with pkgs; (lib.mkIf (apps.audio.base.enable) pavucontrol)
[ ] (lib.mkIf (apps.audio.base.enable) playerctl)
++ ( (lib.mkIf (apps.audio.editing.enable) tenacity)
if (config.apps.audio.base.enable) then (lib.mkIf (apps.audio.editing.enable) flac)
[ ];
pavucontrol
playerctl
]
else
[ ]
)
++ (
if (config.apps.audio.editing.enable) then
[
tenacity
flac
]
else
[ ]
);
}; };
} }

View file

@ -14,7 +14,6 @@
./misc ./misc
./peripherals ./peripherals
./video ./video
./sync
./terminal ./terminal
]; ];
} }

View file

@ -7,6 +7,7 @@
{ {
imports = [ imports = [
./git.nix
./editor.nix ./editor.nix
./godot.nix ./godot.nix
./languages.nix ./languages.nix

View file

@ -11,54 +11,44 @@
editor = { editor = {
vscodium.enable = lib.mkEnableOption "enable vscodium"; vscodium.enable = lib.mkEnableOption "enable vscodium";
emacs.enable = lib.mkEnableOption "enable emacs"; emacs.enable = lib.mkEnableOption "enable emacs";
default = lib.mkOption { default = "vscodium";
default = "vscodium";
description = "default editor";
};
}; };
}; };
}; };
config = { config = {
environment.systemPackages = environment.systemPackages = with pkgs; [
with pkgs; (lib.mkIf config.development.editor.vscodium.enable vscodium)
[ nixfmt
nixfmt ];
]
++ (if config.development.editor.vscodium.enable then [ vscodium ] else [ ]);
programs = { programs = {
vscode = vscode = lib.mkIf config.development.editor.vscodium.enable {
if config.development.editor.vscodium.enable then enable = true;
{ package = pkgs.vscodium;
enable = true; defaultEditor = lib.mkIf (config.development.editor.default == "vscodium") true;
package = pkgs.vscodium; profiles.default.extensions = with pkgs.vscode-extensions; [
defaultEditor = if (config.development.editor.default == "vscodium") then true else false; catppuccin.catppuccin-vsc
# profiles.default.extensions = with pkgs.vscode-extensions; [ catppuccin.catppuccin-vsc-icons
# catppuccin.catppuccin-vsc jnoortheen.nix-ide
# catppuccin.catppuccin-vsc-icons alefragnani.project-manager
# jnoortheen.nix-ide naumovs.color-highlight
# alefragnani.project-manager geequlim.godot-tools
# naumovs.color-highlight stylelint.vscode-stylelint
# geequlim.godot-tools ecmel.vscode-html-css
# stylelint.vscode-stylelint esbenp.prettier-vscode
# ecmel.vscode-html-css ];
# esbenp.prettier-vscode };
# ];
}
else
{ };
}; };
services = { services = {
emacs = emacs = lib.mkIf config.development.editor.emacs.enable {
if config.development.editor.emacs.enable then enable = true;
{ install = true;
enable = true; defaultEditor = lib.mkIf (config.development.editor.default == "emacs") true;
install = true; };
defaultEditor = if (config.development.editor.default == "emacs") then true else false; };
} home.sessionVariables = {
else EDITOR = lib.mkDefault "codium";
{ };
}; };
}; };
} }

View file

@ -10,7 +10,7 @@
programs = { programs = {
git = { git = {
enable = true; enable = true;
config = { settings = {
init = { init = {
defaultBranch = "main"; defaultBranch = "main";
}; };

View file

@ -12,14 +12,9 @@
}; };
}; };
config = { config = lib.mkIf config.apps.development.godot.enable {
environment.systemPackages = systemPackages = with pkgs; [
if config.apps.development.godot.enable then godot
with pkgs; ];
[
godot
]
else
[ ];
}; };
} }

View file

@ -8,15 +8,13 @@
{ {
options = { options = {
apps.development.languages = { apps.development.languages = {
python.enable = lib.mkEnableOption "enable python"; python = lib.mkEnableOption "enable python";
}; };
}; };
config = { config = {
environment.systemPackages = environment.systemPackages = with pkgs; [
with pkgs; (lib.mkIf lib.mkIf config.development.languages.python.enable virtualenv)
[ ];
]
++ (if config.apps.development.languages.python.enable then [ virtualenv ] else [ ]);
}; };
} }

View file

@ -6,65 +6,8 @@
}: }:
{ {
options = { imports = [
apps.gaming = { ./steam.nix
enable = lib.mkEnableOption "enable gaming"; ./minecraft.nix
steam.enable = lib.mkEnableOption "enable steam"; ];
minecraft.enable = lib.mkEnableOption "enable minecraft";
};
};
config = {
environment.systemPackages =
with pkgs;
[ ]
++ (
if (config.apps.gaming.enable) then
[
cartridges
lutris
]
else
[ ]
)
++ (
if (config.apps.gaming.minecraft.enable) then
[ prismlauncher ]
else
[ ]
)
++ (
if (config.apps.gaming.steam.enable) then
[ adwsteamgtk ]
else
[ ]
);
programs = {
steam =
if config.apps.gaming.steam.enable then
{
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
localNetworkGameTransfers.openFirewall = true;
gamescopeSession.enable = true;
protontricks.enable = true;
extraCompatPackages = with pkgs; [
proton-ge-bin
];
extraPackages = with pkgs; [
gamescope
];
}
else
{ };
gamescope = {
enable = true;
capSysNice = true;
};
};
};
} }

View file

@ -0,0 +1,20 @@
{
config,
lib,
pkgs,
...
}:
{
options = {
apps.gaming = {
minecraft.enable = lib.mkEnableOption "enable minecraft";
};
};
config = lib.mkIf config.apps.gaming.minecraft.enable {
environment.systemPackages = with pkgs; [
prismlauncher
];
};
}

View file

@ -0,0 +1,41 @@
{
config,
lib,
pkgs,
...
}:
{
options = {
apps.gaming = {
steam.enable = lib.mkEnableOption "enable steam";
};
};
config = lib.mkIf config.apps.gaming.steam.enable {
environment.systemPackages = with pkgs; [
adwsteamgtk
];
programs = {
steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
localNetworkGameTransfers.openFirewall = true;
gamescopeSession.enable = true;
protontricks.enable = true;
extraCompatPackages = with pkgs; [
proton-ge-bin
];
extraPackages = with pkgs; [
gamescope
];
};
gamescope = {
enable = true;
capSysNice = true;
};
};
};
}

View file

@ -15,25 +15,10 @@
}; };
config = { config = {
environment.systemPackages = environment.systemPackages = with pkgs; [
with pkgs; (lib.mkIf (apps.image.base.enable) nomacs)
[ ] (lib.mkIf (apps.image.editing.enable) gimp3-with-plugins)
++ ( (lib.mkIf (apps.image.editing.enable) krita)
if (config.apps.image.base.enable) then ];
[ nomacs ]
else
[ ]
)
++ (
if (config.apps.image.editing.enable) then
[
gimp3-with-plugins
krita
]
else
[ ]
);
}; };
} }

View file

@ -26,19 +26,9 @@
}; };
config = { config = {
environment.systemPackages = environment.systemPackages = [
[ ] (lib.mkIf config.apps.internet.browsers.zen-browser.enable config.apps.internet.browsers.zen-browser.package)
++ ( (lib.mkIf config.apps.internet.browsers.tor-browser.enable config.apps.internet.browsers.tor-browser.package)
if config.apps.internet.browsers.zen-browser.enable then ];
[ config.apps.internet.browsers.zen-browser.package ]
else
[ ]
)
++ (
if config.apps.internet.browsers.tor-browser.enable then
[ config.apps.internet.browsers.tor-browser.package ]
else
[ ]
);
}; };
} }

View file

@ -16,43 +16,16 @@
}; };
config = { config = {
environment.systemPackages = environment.systemPackages = with pkgs; [
with pkgs; (lib.mkIf (config.apps.misc.obsidian.enable) obsidian)
[ (lib.mkIf (config.apps.misc.bitwarden.enable) rbw (
libsecret lib.mkIf (config.desktop.shell.rofi.enable) pinentry-curses rofi-rbw
gcr_4 ))
pass (lib.mkIf (config.apps.misc.blender.enable) blender)
] libsecret
++ ( gcr_4
if (config.apps.misc.obsidian.enable) then pass
];
[ obsidian ]
else
[ ]
)
++ (
if (config.apps.misc.bitwarden.enable) then
[ rbw ]
++ (
if (config.desktop.shell.rofi.enable) then
[
pinentry-curses
rofi-rbw
]
else
[ ]
)
else
[ ]
)
++ (
if (config.apps.misc.blender.enable) then
[ blender ]
else
[ ]
);
programs = { programs = {
seahorse.enable = true; seahorse.enable = true;
}; };

View file

@ -31,30 +31,22 @@
}; };
config = { config = {
programs = { programs = {
kdeconnect = kdeconnect = lib.mkIf config.apps.sync.kde-connect.enable {
if config.apps.sync.kde-connect.enable then enable = true;
{ };
enable = true;
}
else
{ };
}; };
services = { services = {
syncthing = syncthing = lib.mkIf config.apps.sync.syncthing.enable {
if config.apps.sync.syncthing.enable then enable = true;
{ tray.enable = true;
enable = true; guiAddress = "0.0.0.0:8384";
tray.enable = true; settings = {
guiAddress = "0.0.0.0:8384"; devices = config.apps.sync.syncthing.devices;
settings = { folders = config.apps.sync.syncthing.folders;
devices = config.apps.sync.syncthing.devices; };
folders = config.apps.sync.syncthing.folders; overrideDevices = lib.mkIf (config.apps.sync.syncthing.devices == { }) false;
}; overrideFolders = lib.mkIf (config.apps.sync.syncthing.folders == { }) false;
overrideDevices = if (config.apps.sync.syncthing.devices == { }) then false else true; };
overrideFolders = if (config.apps.sync.syncthing.folders == { }) then false else true;
}
else
{ };
}; };
}; };
} }

View file

@ -19,20 +19,15 @@
bc bc
openssl openssl
] ]
++ ( ++ lib.mkIf config.apps.terminal.toys [
if config.apps.terminal.toys then
[
asciiquarium-transparent asciiquarium-transparent
cava cava
bunnyfetch bunnyfetch
nerdfetch nerdfetch
fastfetch fastfetch
cmatrix cmatrix
astroterm astroterm
] ];
else
[ ]
);
}; };
} }

View file

@ -13,25 +13,13 @@
}; };
}; };
config = { config = lib.mkIf config.apps.terminal.kitty.enable {
# apps.terminal = terminal = lib.mkIf (config.apps.terminal.default == "kitty") {
# if (config.apps.terminal.default == "kitty") then package = pkgs.kitty;
# { binary = "${pkgs.kitty}/bin/kitty";
# package = pkgs.kitty; };
# binary = "${pkgs.kitty}/bin/kitty"; environment.systemPackages = with pkgs; [
# } kitty
# else ];
# { };
environment.systemPackages =
with pkgs;
[ ]
++ (
if config.apps.terminal.kitty.enable then
[
kitty
]
else
[ ]
);
}; };
} }

View file

@ -18,16 +18,8 @@ in
}; };
config = { config = {
environment.systemPackages = environment.systemPackages = with pkgs; [
with pkgs; (lib.mkIf (tt.ranger.enable) ranger)
[ ];
]
++ (
if tt.ranger.enable then
[ ranger ]
else
[ ]
);
}; };
} }

View file

@ -16,32 +16,11 @@
}; };
config = { config = {
environment.systemPackages = environment.systemPackages = with pkgs; [
with pkgs; (lib.mkIf (apps.video.base.enable) mpv)
[ ] (lib.mkIf (apps.video.editing.enable) kdePackages.kdenlive)
++ ( (lib.mkIf (apps.video.media.enable) jellyfin-desktop)
if config.apps.video.base.enable then (lib.mkIf (apps.video.media.enable) pipeline)
];
[ mpv ]
else
[ ]
)
++ (
if config.apps.video.editing.enable then
[ kdePackages.kdenlive ]
else
[ ]
)
++ (
if config.apps.video.media.enable then
[
jellyfin-desktop
pipeline
]
else
[ ]
);
}; };
} }

View file

@ -30,35 +30,22 @@
programs = { programs = {
uwsm = { uwsm = {
waylandCompositors = { waylandCompositors = {
hyprland = hyprland = lib.mkIf config.desktop.window-managers.hyprland.enable {
if config.desktop.window-managers.hyprland.enable then prettyName = "Hyprland";
{ comment = "Hyprland";
prettyName = "Hyprland"; binPath = "${config.programs.hyprland.package}/bin/start-hyprland";
comment = "Hyprland"; };
binPath = "${config.programs.hyprland.package}/bin/start-hyprland"; sway = lib.mkIf config.desktop.window-managers.sway.enable {
} prettyName = "Sway";
else comment = "Sway";
{ }; binPath = "${config.programs.sway.package}/bin/sway --session";
sway = };
if config.desktop.window-managers.sway.enable then niri = lib.mkIf config.desktop.window-managers.niri.enable {
{ prettyName = "Niri";
prettyName = "Sway"; comment = "Niri";
comment = "Sway"; binPath = "${config.programs.niri.package}/bin/niri-session";
binPath = "${config.programs.sway.package}/bin/sway --session"; };
}
else
{ };
niri =
if config.desktop.window-managers.niri.enable then
{
prettyName = "Niri";
comment = "Niri";
binPath = "${config.programs.niri.package}/bin/niri-session";
}
else
{ };
}; };
}; };
}; };
xdg.portal.enable = true;
} }

View file

@ -12,23 +12,20 @@
walker.enable = lib.mkEnableOption "enable walker"; walker.enable = lib.mkEnableOption "enable walker";
rofi.enable = lib.mkEnableOption "enable rofi"; rofi.enable = lib.mkEnableOption "enable rofi";
launcher = lib.mkOption { launcher = lib.mkOption {
default = (if config.desktop.shell.walker.enable then "walker" else null); default = (lib.mkIf config.desktop.shell.walker.enable "walker");
description = "default launcher"; description = "default launcher";
}; };
}; };
}; };
config = { config = {
environment.systemPackages = programs = {
with pkgs; walker = lib.mkIf config.desktop.shell.walker.enable {
[ enable = true;
] };
++ ( };
if config.desktop.shell.rofi.enable then environment.systemPackages = with pkgs; [
(lib.mkIf (config.desktop.shell.rofi.enable) rofi)
[ rofi ] ];
else
[ ]
);
}; };
} }

View file

@ -12,4 +12,13 @@
noctalia.enable = lib.mkEnableOption "enable noctalia"; noctalia.enable = lib.mkEnableOption "enable noctalia";
}; };
}; };
imports = lib.mkIf config.desktop.shell.noctalia.enable [
inputs.noctalia.homeModules.default
];
config = lib.mkIf config.desktop.shell.noctalia.enable {
desktop.shell.swww.enable = lib.mkDefault false;
programs.noctalia-shell = {
enable = true;
};
};
} }

View file

@ -13,20 +13,10 @@
}; };
}; };
config = config = lib.mkIf config.desktop.shell.swww.enable {
environment.systemPackages = with pkgs; [
{ waypaper
environment.systemPackages = swww
with pkgs; ];
[ ] };
++ (
if config.desktop.shell.swww.enable then
[
waypaper
swww
]
else
[ ]
);
};
} }

View file

@ -12,15 +12,11 @@
}; };
}; };
config = { config = lib.mkIf config.desktop.shell.waybar.enable {
programs = programs = {
if config.desktop.shell.waybar.enable then waybar = {
{ enable = true;
waybar = { };
enable = true; };
};
}
else
{ };
}; };
} }

View file

@ -13,21 +13,10 @@
}; };
}; };
config = config = lib.mkIf config.desktop.utilities.grimblast.enable {
environment.systemPackages = with pkgs; [
{ grimblast
environment.systemPackages = gradia
with pkgs; ];
[ ] };
++ (
if config.desktop.utilities.grimblast.enable then
with pkgs;
[
grimblast
gradia
]
else
[ ]
);
};
} }

View file

@ -14,20 +14,14 @@
}; };
}; };
}; };
config = config = lib.mkIf config.desktop.window-managers.hyprland.enable {
programs.hyprland = {
{ enable = true;
programs.hyprland = withUWSM = true;
if config.desktop.window-managers.hyprland.enable then xwayland.enable = true;
{ package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
enable = true; portalPackage =
withUWSM = true; inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
xwayland.enable = true;
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
portalPackage =
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
}
else
{ };
}; };
};
} }

View file

@ -13,24 +13,13 @@
}; };
}; };
}; };
config = { config = lib.mkIf config.desktop.window-managers.niri.enable {
environment.systemPackages = services.gnome.gnome-keyring.enable = true;
with pkgs; environment.systemPackages = with pkgs; [
[ ] xwayland-satellite
++ ( ];
if config.desktop.window-managers.niri.enable then programs.niri = {
[ enable = true;
xwayland-satellite };
]
else
[ ]
);
programs.niri =
if config.desktop.window-managers.niri.enable then
{
enable = true;
}
else
{ };
}; };
} }

View file

@ -13,15 +13,12 @@
}; };
}; };
}; };
config = { config = lib.mkIf config.desktop.window-managers.sway.enable {
programs.sway = services.gnome.gnome-keyring.enable = true;
if config.desktop.window-managers.sway.enable then programs.sway = {
{ enable = true;
enable = true; wrapperFeatures.gtk = true;
wrapperFeatures.gtk = true; package = null;
package = null; };
}
else
{ };
}; };
} }

View file

@ -8,7 +8,6 @@
{ {
imports = [ imports = [
./boot.nix ./boot.nix
./git.nix
./shell.nix ./shell.nix
./networking.nix ./networking.nix
./localization.nix ./localization.nix

View file

@ -2,7 +2,7 @@
{ {
networking = { networking = {
domain = "maty.tf"; domain = config.domain;
networkmanager.enable = true; networkmanager.enable = true;
firewall = { firewall = {
enable = true; enable = true;