Compare commits
3 commits
6225bb0f27
...
270e1a0be4
| Author | SHA1 | Date | |
|---|---|---|---|
| 270e1a0be4 | |||
| 784f214fb7 | |||
| cd3ce9f816 |
40 changed files with 639 additions and 425 deletions
|
|
@ -14,7 +14,7 @@
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
imports = [
|
imports = [
|
||||||
./modules
|
./modules
|
||||||
|
# ./options.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
environment.pathsToLink = [
|
environment.pathsToLink = [
|
||||||
|
|
|
||||||
12
home/apps/default.nix
Normal file
12
home/apps/default.nix
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./terminal
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
@ -8,5 +8,6 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./kitty.nix
|
./kitty.nix
|
||||||
|
./ranger.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
osConfig,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,5 +8,6 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./desktop
|
./desktop
|
||||||
|
./apps
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,12 +8,20 @@
|
||||||
}:
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
config = lib.mkIf osConfig.desktop.shell.noctalia.enable {
|
imports =
|
||||||
};
|
if true then
|
||||||
|
[
|
||||||
imports = lib.mkIf osConfig.desktop.shell.noctalia.enable [
|
|
||||||
inputs.noctalia.homeModules.default
|
inputs.noctalia.homeModules.default
|
||||||
]
|
]
|
||||||
|
else
|
||||||
|
[ ];
|
||||||
|
config = {
|
||||||
|
programs.noctalia-shell =
|
||||||
|
if osConfig.desktop.shell.noctalia.enable then
|
||||||
|
{
|
||||||
|
enable = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{ };
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,9 @@
|
||||||
}:
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
config = lib.mkIf osConfig.desktop.shell.walker.enable {
|
config =
|
||||||
|
if osConfig.desktop.shell.walker.enable then
|
||||||
|
{
|
||||||
programs = {
|
programs = {
|
||||||
walker = {
|
walker = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -18,9 +20,15 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
}
|
||||||
|
else
|
||||||
|
{ };
|
||||||
|
|
||||||
imports = lib.mkIf osConfig.desktop.shell.walker.enable [
|
imports =
|
||||||
|
if osConfig.desktop.shell.walker.enable then
|
||||||
|
[
|
||||||
inputs.walker.homeManagerModules.default
|
inputs.walker.homeManagerModules.default
|
||||||
]
|
]
|
||||||
|
else
|
||||||
|
[ ];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@
|
||||||
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"
|
||||||
|
|
@ -44,7 +45,7 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf osConfig.desktop.hyprland.enable {
|
config = lib.mkIf osConfig.desktop.window-managers.hyprland.enable {
|
||||||
xdg.portal = {
|
xdg.portal = {
|
||||||
enable = true;
|
enable = true;
|
||||||
configPackages = [
|
configPackages = [
|
||||||
|
|
@ -97,9 +98,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) (
|
(lib.mkIf (osConfig.desktop.shell.walker.enable && osConfig.misc.bitwarden.enable)
|
||||||
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, 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,"
|
||||||
|
|
|
||||||
|
|
@ -8,22 +8,17 @@
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
modifier = lib.mkIf (${osConfig.keybinds.modifier} == "Meta") "Mod";
|
modifier = if (osConfig.keybinds.modifier == "Meta") then "Mod" else null;
|
||||||
kb-layout = builtins.substring 0 2 osConfig.system.locale;
|
kb-layout = builtins.substring 0 2 osConfig.system.locale;
|
||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
options = {
|
config =
|
||||||
desktop.window-managers = {
|
if osConfig.desktop.window-managers.niri.enable then
|
||||||
niri = {
|
{
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
config = lib.mkIf osConfig.desktop.window-managers.niri.enable {
|
|
||||||
home.file = {
|
home.file = {
|
||||||
"~/.config/niri/config.kdl" = ''
|
"~/.config/niri/config.kdl" = ''
|
||||||
input {
|
input {
|
||||||
|
|
||||||
keyboard {
|
keyboard {
|
||||||
xkb {
|
xkb {
|
||||||
|
|
@ -47,29 +42,29 @@ input {
|
||||||
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}";}
|
||||||
|
|
@ -80,13 +75,13 @@ binds {
|
||||||
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
|
||||||
|
|
@ -94,19 +89,21 @@ layout {
|
||||||
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
|
||||||
|
{ };
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,18 +3,14 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
inputs,
|
inputs,
|
||||||
|
osConfig,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
options = {
|
config =
|
||||||
desktop.window-managers = {
|
if osConfig.desktop.window-managers.sway.enable then
|
||||||
sway = {
|
{
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
config = lib.mkIf osConfig.desktop.window-managers.sway.enable {
|
|
||||||
wayland.windowManager.sway = {
|
wayland.windowManager.sway = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.swayfx;
|
package = pkgs.swayfx;
|
||||||
|
|
@ -68,5 +64,7 @@
|
||||||
};
|
};
|
||||||
checkConfig = false;
|
checkConfig = false;
|
||||||
};
|
};
|
||||||
};
|
}
|
||||||
|
else
|
||||||
|
{ };
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
./../../modules
|
./../../home
|
||||||
];
|
];
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,11 +16,26 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages =
|
||||||
(lib.mkIf (apps.audio.base.enable) pavucontrol)
|
with pkgs;
|
||||||
(lib.mkIf (apps.audio.base.enable) playerctl)
|
[ ]
|
||||||
(lib.mkIf (apps.audio.editing.enable) tenacity)
|
++ (
|
||||||
(lib.mkIf (apps.audio.editing.enable) flac)
|
if (config.apps.audio.base.enable) then
|
||||||
];
|
[
|
||||||
|
pavucontrol
|
||||||
|
playerctl
|
||||||
|
]
|
||||||
|
else
|
||||||
|
[ ]
|
||||||
|
)
|
||||||
|
++ (
|
||||||
|
if (config.apps.audio.editing.enable) then
|
||||||
|
[
|
||||||
|
tenacity
|
||||||
|
flac
|
||||||
|
]
|
||||||
|
else
|
||||||
|
[ ]
|
||||||
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@
|
||||||
./misc
|
./misc
|
||||||
./peripherals
|
./peripherals
|
||||||
./video
|
./video
|
||||||
|
./sync
|
||||||
./terminal
|
./terminal
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./git.nix
|
|
||||||
./editor.nix
|
./editor.nix
|
||||||
./godot.nix
|
./godot.nix
|
||||||
./languages.nix
|
./languages.nix
|
||||||
|
|
|
||||||
|
|
@ -11,44 +11,54 @@
|
||||||
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 = with pkgs; [
|
environment.systemPackages =
|
||||||
(lib.mkIf config.development.editor.vscodium.enable vscodium)
|
with pkgs;
|
||||||
|
[
|
||||||
nixfmt
|
nixfmt
|
||||||
];
|
]
|
||||||
|
++ (if config.development.editor.vscodium.enable then [ vscodium ] else [ ]);
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
vscode = lib.mkIf config.development.editor.vscodium.enable {
|
vscode =
|
||||||
|
if config.development.editor.vscodium.enable then
|
||||||
|
{
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.vscodium;
|
package = pkgs.vscodium;
|
||||||
defaultEditor = lib.mkIf (config.development.editor.default == "vscodium") true;
|
defaultEditor = if (config.development.editor.default == "vscodium") then true else false;
|
||||||
profiles.default.extensions = with pkgs.vscode-extensions; [
|
# profiles.default.extensions = with pkgs.vscode-extensions; [
|
||||||
catppuccin.catppuccin-vsc
|
# catppuccin.catppuccin-vsc
|
||||||
catppuccin.catppuccin-vsc-icons
|
# catppuccin.catppuccin-vsc-icons
|
||||||
jnoortheen.nix-ide
|
# jnoortheen.nix-ide
|
||||||
alefragnani.project-manager
|
# alefragnani.project-manager
|
||||||
naumovs.color-highlight
|
# naumovs.color-highlight
|
||||||
geequlim.godot-tools
|
# geequlim.godot-tools
|
||||||
stylelint.vscode-stylelint
|
# stylelint.vscode-stylelint
|
||||||
ecmel.vscode-html-css
|
# ecmel.vscode-html-css
|
||||||
esbenp.prettier-vscode
|
# esbenp.prettier-vscode
|
||||||
];
|
# ];
|
||||||
};
|
}
|
||||||
|
else
|
||||||
|
{ };
|
||||||
};
|
};
|
||||||
services = {
|
services = {
|
||||||
emacs = lib.mkIf config.development.editor.emacs.enable {
|
emacs =
|
||||||
|
if config.development.editor.emacs.enable then
|
||||||
|
{
|
||||||
enable = true;
|
enable = true;
|
||||||
install = true;
|
install = true;
|
||||||
defaultEditor = lib.mkIf (config.development.editor.default == "emacs") true;
|
defaultEditor = if (config.development.editor.default == "emacs") then true else false;
|
||||||
};
|
}
|
||||||
};
|
else
|
||||||
home.sessionVariables = {
|
{ };
|
||||||
EDITOR = lib.mkDefault "codium";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,9 +12,14 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf config.apps.development.godot.enable {
|
config = {
|
||||||
systemPackages = with pkgs; [
|
environment.systemPackages =
|
||||||
|
if config.apps.development.godot.enable then
|
||||||
|
with pkgs;
|
||||||
|
[
|
||||||
godot
|
godot
|
||||||
];
|
]
|
||||||
|
else
|
||||||
|
[ ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,13 +8,15 @@
|
||||||
{
|
{
|
||||||
options = {
|
options = {
|
||||||
apps.development.languages = {
|
apps.development.languages = {
|
||||||
python = lib.mkEnableOption "enable python";
|
python.enable = lib.mkEnableOption "enable python";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages =
|
||||||
(lib.mkIf lib.mkIf config.development.languages.python.enable virtualenv)
|
with pkgs;
|
||||||
];
|
[
|
||||||
|
]
|
||||||
|
++ (if config.apps.development.languages.python.enable then [ virtualenv ] else [ ]);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,65 @@
|
||||||
}:
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
options = {
|
||||||
./steam.nix
|
apps.gaming = {
|
||||||
./minecraft.nix
|
enable = lib.mkEnableOption "enable gaming";
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
{
|
|
||||||
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
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,41 +0,0 @@
|
||||||
{
|
|
||||||
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;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -15,10 +15,25 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages =
|
||||||
(lib.mkIf (apps.image.base.enable) nomacs)
|
with pkgs;
|
||||||
(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
|
||||||
|
[ ]
|
||||||
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,9 +26,19 @@
|
||||||
};
|
};
|
||||||
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
|
||||||
|
[ ]
|
||||||
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,16 +16,43 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages =
|
||||||
(lib.mkIf (config.apps.misc.obsidian.enable) obsidian)
|
with pkgs;
|
||||||
(lib.mkIf (config.apps.misc.bitwarden.enable) rbw (
|
[
|
||||||
lib.mkIf (config.desktop.shell.rofi.enable) pinentry-curses rofi-rbw
|
|
||||||
))
|
|
||||||
(lib.mkIf (config.apps.misc.blender.enable) blender)
|
|
||||||
libsecret
|
libsecret
|
||||||
gcr_4
|
gcr_4
|
||||||
pass
|
pass
|
||||||
];
|
]
|
||||||
|
++ (
|
||||||
|
if (config.apps.misc.obsidian.enable) then
|
||||||
|
|
||||||
|
[ 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;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -31,12 +31,18 @@
|
||||||
};
|
};
|
||||||
config = {
|
config = {
|
||||||
programs = {
|
programs = {
|
||||||
kdeconnect = lib.mkIf config.apps.sync.kde-connect.enable {
|
kdeconnect =
|
||||||
|
if config.apps.sync.kde-connect.enable then
|
||||||
|
{
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
}
|
||||||
|
else
|
||||||
|
{ };
|
||||||
};
|
};
|
||||||
services = {
|
services = {
|
||||||
syncthing = lib.mkIf config.apps.sync.syncthing.enable {
|
syncthing =
|
||||||
|
if config.apps.sync.syncthing.enable then
|
||||||
|
{
|
||||||
enable = true;
|
enable = true;
|
||||||
tray.enable = true;
|
tray.enable = true;
|
||||||
guiAddress = "0.0.0.0:8384";
|
guiAddress = "0.0.0.0:8384";
|
||||||
|
|
@ -44,9 +50,11 @@
|
||||||
devices = config.apps.sync.syncthing.devices;
|
devices = config.apps.sync.syncthing.devices;
|
||||||
folders = config.apps.sync.syncthing.folders;
|
folders = config.apps.sync.syncthing.folders;
|
||||||
};
|
};
|
||||||
overrideDevices = lib.mkIf (config.apps.sync.syncthing.devices == { }) false;
|
overrideDevices = if (config.apps.sync.syncthing.devices == { }) then false else true;
|
||||||
overrideFolders = lib.mkIf (config.apps.sync.syncthing.folders == { }) false;
|
overrideFolders = if (config.apps.sync.syncthing.folders == { }) then false else true;
|
||||||
};
|
}
|
||||||
|
else
|
||||||
|
{ };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,9 @@
|
||||||
bc
|
bc
|
||||||
openssl
|
openssl
|
||||||
]
|
]
|
||||||
++ lib.mkIf config.apps.terminal.toys [
|
++ (
|
||||||
|
if config.apps.terminal.toys then
|
||||||
|
[
|
||||||
|
|
||||||
asciiquarium-transparent
|
asciiquarium-transparent
|
||||||
cava
|
cava
|
||||||
|
|
@ -28,6 +30,9 @@
|
||||||
fastfetch
|
fastfetch
|
||||||
cmatrix
|
cmatrix
|
||||||
astroterm
|
astroterm
|
||||||
];
|
]
|
||||||
|
else
|
||||||
|
[ ]
|
||||||
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,13 +13,25 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf config.apps.terminal.kitty.enable {
|
config = {
|
||||||
terminal = lib.mkIf (config.apps.terminal.default == "kitty") {
|
# apps.terminal =
|
||||||
package = pkgs.kitty;
|
# if (config.apps.terminal.default == "kitty") then
|
||||||
binary = "${pkgs.kitty}/bin/kitty";
|
# {
|
||||||
};
|
# package = pkgs.kitty;
|
||||||
environment.systemPackages = with pkgs; [
|
# binary = "${pkgs.kitty}/bin/kitty";
|
||||||
|
# }
|
||||||
|
# else
|
||||||
|
# { };
|
||||||
|
environment.systemPackages =
|
||||||
|
with pkgs;
|
||||||
|
[ ]
|
||||||
|
++ (
|
||||||
|
if config.apps.terminal.kitty.enable then
|
||||||
|
[
|
||||||
kitty
|
kitty
|
||||||
];
|
]
|
||||||
|
else
|
||||||
|
[ ]
|
||||||
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,16 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages =
|
||||||
(lib.mkIf (tt.ranger.enable) ranger)
|
with pkgs;
|
||||||
];
|
[
|
||||||
|
]
|
||||||
|
++ (
|
||||||
|
if tt.ranger.enable then
|
||||||
|
|
||||||
|
[ ranger ]
|
||||||
|
else
|
||||||
|
[ ]
|
||||||
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,11 +16,32 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages =
|
||||||
(lib.mkIf (apps.video.base.enable) mpv)
|
with pkgs;
|
||||||
(lib.mkIf (apps.video.editing.enable) kdePackages.kdenlive)
|
[ ]
|
||||||
(lib.mkIf (apps.video.media.enable) jellyfin-desktop)
|
++ (
|
||||||
(lib.mkIf (apps.video.media.enable) pipeline)
|
if config.apps.video.base.enable then
|
||||||
];
|
|
||||||
|
[ mpv ]
|
||||||
|
else
|
||||||
|
[ ]
|
||||||
|
)
|
||||||
|
++ (
|
||||||
|
if config.apps.video.editing.enable then
|
||||||
|
|
||||||
|
[ kdePackages.kdenlive ]
|
||||||
|
else
|
||||||
|
[ ]
|
||||||
|
)
|
||||||
|
++ (
|
||||||
|
if config.apps.video.media.enable then
|
||||||
|
|
||||||
|
[
|
||||||
|
jellyfin-desktop
|
||||||
|
pipeline
|
||||||
|
]
|
||||||
|
else
|
||||||
|
[ ]
|
||||||
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -30,22 +30,35 @@
|
||||||
programs = {
|
programs = {
|
||||||
uwsm = {
|
uwsm = {
|
||||||
waylandCompositors = {
|
waylandCompositors = {
|
||||||
hyprland = lib.mkIf config.desktop.window-managers.hyprland.enable {
|
hyprland =
|
||||||
|
if config.desktop.window-managers.hyprland.enable then
|
||||||
|
{
|
||||||
prettyName = "Hyprland";
|
prettyName = "Hyprland";
|
||||||
comment = "Hyprland";
|
comment = "Hyprland";
|
||||||
binPath = "${config.programs.hyprland.package}/bin/start-hyprland";
|
binPath = "${config.programs.hyprland.package}/bin/start-hyprland";
|
||||||
};
|
}
|
||||||
sway = lib.mkIf config.desktop.window-managers.sway.enable {
|
else
|
||||||
|
{ };
|
||||||
|
sway =
|
||||||
|
if config.desktop.window-managers.sway.enable then
|
||||||
|
{
|
||||||
prettyName = "Sway";
|
prettyName = "Sway";
|
||||||
comment = "Sway";
|
comment = "Sway";
|
||||||
binPath = "${config.programs.sway.package}/bin/sway --session";
|
binPath = "${config.programs.sway.package}/bin/sway --session";
|
||||||
};
|
}
|
||||||
niri = lib.mkIf config.desktop.window-managers.niri.enable {
|
else
|
||||||
|
{ };
|
||||||
|
niri =
|
||||||
|
if config.desktop.window-managers.niri.enable then
|
||||||
|
{
|
||||||
prettyName = "Niri";
|
prettyName = "Niri";
|
||||||
comment = "Niri";
|
comment = "Niri";
|
||||||
binPath = "${config.programs.niri.package}/bin/niri-session";
|
binPath = "${config.programs.niri.package}/bin/niri-session";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{ };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
xdg.portal.enable = true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,20 +12,23 @@
|
||||||
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 = (lib.mkIf config.desktop.shell.walker.enable "walker");
|
default = (if config.desktop.shell.walker.enable then "walker" else null);
|
||||||
description = "default launcher";
|
description = "default launcher";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
programs = {
|
environment.systemPackages =
|
||||||
walker = lib.mkIf config.desktop.shell.walker.enable {
|
with pkgs;
|
||||||
enable = true;
|
[
|
||||||
};
|
]
|
||||||
};
|
++ (
|
||||||
environment.systemPackages = with pkgs; [
|
if config.desktop.shell.rofi.enable then
|
||||||
(lib.mkIf (config.desktop.shell.rofi.enable) rofi)
|
|
||||||
];
|
[ rofi ]
|
||||||
|
else
|
||||||
|
[ ]
|
||||||
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,13 +12,4 @@
|
||||||
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;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,10 +13,20 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf config.desktop.shell.swww.enable {
|
config =
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
|
{
|
||||||
|
environment.systemPackages =
|
||||||
|
with pkgs;
|
||||||
|
[ ]
|
||||||
|
++ (
|
||||||
|
if config.desktop.shell.swww.enable then
|
||||||
|
[
|
||||||
waypaper
|
waypaper
|
||||||
swww
|
swww
|
||||||
];
|
]
|
||||||
|
else
|
||||||
|
[ ]
|
||||||
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,11 +12,15 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf config.desktop.shell.waybar.enable {
|
config = {
|
||||||
programs = {
|
programs =
|
||||||
|
if config.desktop.shell.waybar.enable then
|
||||||
|
{
|
||||||
waybar = {
|
waybar = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
};
|
}
|
||||||
|
else
|
||||||
|
{ };
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,10 +13,21 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf config.desktop.utilities.grimblast.enable {
|
config =
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
|
{
|
||||||
|
environment.systemPackages =
|
||||||
|
with pkgs;
|
||||||
|
[ ]
|
||||||
|
++ (
|
||||||
|
if config.desktop.utilities.grimblast.enable then
|
||||||
|
with pkgs;
|
||||||
|
[
|
||||||
grimblast
|
grimblast
|
||||||
gradia
|
gradia
|
||||||
];
|
]
|
||||||
|
else
|
||||||
|
[ ]
|
||||||
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,14 +14,20 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
config = lib.mkIf config.desktop.window-managers.hyprland.enable {
|
config =
|
||||||
programs.hyprland = {
|
|
||||||
|
{
|
||||||
|
programs.hyprland =
|
||||||
|
if config.desktop.window-managers.hyprland.enable then
|
||||||
|
{
|
||||||
enable = true;
|
enable = true;
|
||||||
withUWSM = true;
|
withUWSM = true;
|
||||||
xwayland.enable = true;
|
xwayland.enable = true;
|
||||||
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
||||||
portalPackage =
|
portalPackage =
|
||||||
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
||||||
};
|
}
|
||||||
|
else
|
||||||
|
{ };
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,13 +13,24 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
config = lib.mkIf config.desktop.window-managers.niri.enable {
|
config = {
|
||||||
services.gnome.gnome-keyring.enable = true;
|
environment.systemPackages =
|
||||||
environment.systemPackages = with pkgs; [
|
with pkgs;
|
||||||
|
[ ]
|
||||||
|
++ (
|
||||||
|
if config.desktop.window-managers.niri.enable then
|
||||||
|
[
|
||||||
xwayland-satellite
|
xwayland-satellite
|
||||||
];
|
]
|
||||||
programs.niri = {
|
else
|
||||||
|
[ ]
|
||||||
|
);
|
||||||
|
programs.niri =
|
||||||
|
if config.desktop.window-managers.niri.enable then
|
||||||
|
{
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
}
|
||||||
|
else
|
||||||
|
{ };
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,12 +13,15 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
config = lib.mkIf config.desktop.window-managers.sway.enable {
|
config = {
|
||||||
services.gnome.gnome-keyring.enable = true;
|
programs.sway =
|
||||||
programs.sway = {
|
if config.desktop.window-managers.sway.enable then
|
||||||
|
{
|
||||||
enable = true;
|
enable = true;
|
||||||
wrapperFeatures.gtk = true;
|
wrapperFeatures.gtk = true;
|
||||||
package = null;
|
package = null;
|
||||||
};
|
}
|
||||||
|
else
|
||||||
|
{ };
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./boot.nix
|
./boot.nix
|
||||||
|
./git.nix
|
||||||
./shell.nix
|
./shell.nix
|
||||||
./networking.nix
|
./networking.nix
|
||||||
./localization.nix
|
./localization.nix
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
programs = {
|
programs = {
|
||||||
git = {
|
git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
config = {
|
||||||
init = {
|
init = {
|
||||||
defaultBranch = "main";
|
defaultBranch = "main";
|
||||||
};
|
};
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
networking = {
|
networking = {
|
||||||
domain = config.domain;
|
domain = "maty.tf";
|
||||||
networkmanager.enable = true;
|
networkmanager.enable = true;
|
||||||
firewall = {
|
firewall = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue