diff --git a/home/configs/niri/config.kdl b/home/configs/niri/config.kdl deleted file mode 100644 index aeb53c7..0000000 --- a/home/configs/niri/config.kdl +++ /dev/null @@ -1,36 +0,0 @@ -output "AOC Q27G2WG4" { - mode "2560x1440@144" - position x=3840 y=0 - variable-refresh-rate on-demand=true -} - -input { - keyboard { - xkb { - layout "de" - } - repeat-delay 600 - repeat-rate 20 - track-layout "global" - } - touchpad { - - } - mouse { - accel-speed 0.5 - accel-profile "flat" - - } -} - -binds { - Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; } - Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; } - - Mod+Left {focus-column-left; } - Mod+Right {focus-column-right; } -Mod+D { spawn "walker"; } -Mod+Shift+P { quit; } -Mod+Return { spawn "kitty";} - } -include "./noctalia.kdl" \ No newline at end of file diff --git a/home/desktop/window-managers/niri.nix b/home/desktop/window-managers/niri.nix index 80609a8..f29e2f1 100644 --- a/home/desktop/window-managers/niri.nix +++ b/home/desktop/window-managers/niri.nix @@ -7,6 +7,11 @@ ... }: +let + modifier = lib.mkIf (${osConfig.keybinds.modifier} == "Meta") "Mod"; + kb-layout = builtins.substring 0 2 osConfig.system.locale; +in + { options = { desktop.window-managers = { @@ -16,7 +21,91 @@ }; config = lib.mkIf osConfig.desktop.window-managers.niri.enable { - xdg.configFile."niri/config.kdl".source = ../../configs/niri/config.kdl; + home.file = { + "~/.config/niri/config.kdl" = '' +input { + keyboard { + xkb { + layout "${kb-layout}" + } + repeat-delay 600 + repeat-rate 20 + track-layout "global" + } + touchpad { + tap + dwt + accel-profile "flat" + accel-speed 0.0 + scroll-method "two-finger" + + + } + mouse { + accel-speed 0.5 + accel-profile "flat" + + } +} + +gestures { + hot-corners { + off + } + +} + +cursor { + hide-when-typing + hide-after-inactive-ms 2000 +} + +xwayland-satellite { + path "xwayland-satellite" +} + +hotkey-overlay { + hide-not-bound +} + +binds { + ${modifier}+Down cooldown-ms=150 { focus-workspace-down; } + ${modifier}+Up cooldown-ms=150 { focus-workspace-up; } + ${modifier}+${osConfig.keybinds.hotkeys.terminal} { spawn "${osConfig.terminal.binary}";} + ${modifier}+Left {focus-column-left; } + ${modifier}+Right {focus-column-right; } + ${modifier}+${osConfig.keybinds.hotkeys.browser} { spawn "zen";} + ${modifier}+${osConfig.keybinds.hotkeys.launcher} { spawn "walker";} + Print { screenshot;} + ${modifier}+Shift+Q { close-window; } +} + +spawn-at-startup "elephant" +spawn-at-startup "noctalia-shell" + + +layout { + gaps 20 + focus-ring { + width 5 + } + border { + off + } +} +window-rule { + geometry-corner-radius 20 + clip-to-geometry true +} + + +prefer-no-csd + +include "noctalia.kdl" + + + ''; + }; }; } diff --git a/home/modules/development/openssl.nix b/home/modules/development/openssl.nix deleted file mode 100644 index 23e455e..0000000 --- a/home/modules/development/openssl.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: - -{ - home.packages = with pkgs; [ - openssl - ]; -} diff --git a/home/modules/development/python.nix b/home/modules/development/python.nix deleted file mode 100644 index 42695ed..0000000 --- a/home/modules/development/python.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: - -{ - options = { - development = { - python.enable = lib.mkEnableOption "enable python"; - }; - }; - - config = lib.mkIf config.development.python.enable { - home.packages = with pkgs; [ - uv - virtualenv - ]; - }; -} diff --git a/home/modules/media/3d.nix b/home/modules/media/3d.nix deleted file mode 100644 index 67a2b7a..0000000 --- a/home/modules/media/3d.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: - -{ - options = { - media = { - threeD = { - enable = lib.mkEnableOption "enable all 3d media"; - blender.enable = lib.mkEnableOption "enable blender"; - }; - }; - }; - - config = { - media.threeD = lib.mkIf config.media.threeD.enable { - blender.enable = lib.mkDefault true; - }; - - home.packages = with pkgs; [ - (lib.mkIf (config.media.threeD.blender.enable) blender) - - ]; - }; -} diff --git a/home/modules/misc/bitwarden.nix b/home/modules/misc/bitwarden.nix deleted file mode 100644 index 3c7fbe6..0000000 --- a/home/modules/misc/bitwarden.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: - -{ - options = { - misc = { - bitwarden.enable = lib.mkEnableOption "enable bitwarden"; - }; - }; - - config = lib.mkIf config.misc.bitwarden.enable { - home.packages = with pkgs; [ - rbw - pinentry-curses - (lib.mkIf (config.desktop.rofi.enable) rofi-rbw) - ]; - }; -} diff --git a/home/modules/misc/default.nix b/home/modules/misc/default.nix deleted file mode 100644 index 5b37a75..0000000 --- a/home/modules/misc/default.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: - -{ - imports = [ - ./bitwarden.nix - ./syncthing.nix - ./secrets.nix - ./obsidian.nix - ]; -} diff --git a/home/modules/misc/obsidian.nix b/home/modules/misc/obsidian.nix deleted file mode 100644 index c37883c..0000000 --- a/home/modules/misc/obsidian.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: - -{ - options = { - misc = { - obsidian.enable = lib.mkEnableOption "enable obsidian"; - }; - }; - - config = lib.mkIf config.misc.obsidian.enable { - home.packages = with pkgs; [ - obsidian - ]; - }; -} diff --git a/home/modules/misc/syncthing.nix b/home/modules/misc/syncthing.nix deleted file mode 100644 index 452fa2c..0000000 --- a/home/modules/misc/syncthing.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: - -{ - options = { - syncthing.devices = lib.mkOption { - default = { }; - description = '' - set syncthing devices - ''; - }; - syncthing.folders = lib.mkOption { - default = { }; - description = '' - set syncthing folders - ''; - }; - }; - - config = { - home.packages = with pkgs; [ - localsend - ]; - services = { - syncthing = { - enable = true; - tray.enable = true; - guiAddress = "0.0.0.0:8384"; - settings = { - devices = config.syncthing.devices; - folders = config.syncthing.folders; - }; - overrideDevices = lib.mkIf (config.syncthing.devices == { }) false; - overrideFolders = lib.mkIf (config.syncthing.folders == { }) false; - }; - }; - }; -} diff --git a/modules/apps/default.nix b/modules/apps/default.nix index e98bf1a..9d741e1 100644 --- a/modules/apps/default.nix +++ b/modules/apps/default.nix @@ -8,8 +8,11 @@ { imports = [ ./audio + ./development ./gaming ./image + ./misc + ./peripherals ./video ./terminal ]; diff --git a/home/modules/development/default.nix b/modules/apps/development/default.nix similarity index 70% rename from home/modules/development/default.nix rename to modules/apps/development/default.nix index 458ed9f..cbb7240 100644 --- a/home/modules/development/default.nix +++ b/modules/apps/development/default.nix @@ -13,8 +13,4 @@ ./godot.nix ./openssl.nix ]; - home.packages = with pkgs; [ - bc - imagemagick - ]; } diff --git a/home/modules/development/git.nix b/modules/apps/development/git.nix similarity index 59% rename from home/modules/development/git.nix rename to modules/apps/development/git.nix index b9511f7..7445de6 100644 --- a/home/modules/development/git.nix +++ b/modules/apps/development/git.nix @@ -6,13 +6,7 @@ }: { - options = { - development = { - git.enable = lib.mkEnableOption "enable git"; - }; - }; - - config = lib.mkIf config.development.git.enable { + config = { programs = { git = { enable = true; @@ -21,8 +15,8 @@ defaultBranch = "main"; }; user = { - email = "marty@marty.tf"; - name = "marty"; + email = "${config.user.email}"; + name = "${config.user.userName}"; }; push = { autoSetupRemote = true; diff --git a/home/modules/development/godot.nix b/modules/apps/development/godot.nix similarity index 100% rename from home/modules/development/godot.nix rename to modules/apps/development/godot.nix diff --git a/home/modules/development/vscodium.nix b/modules/apps/development/vscodium.nix similarity index 100% rename from home/modules/development/vscodium.nix rename to modules/apps/development/vscodium.nix diff --git a/modules/apps/misc/default.nix b/modules/apps/misc/default.nix new file mode 100644 index 0000000..8b4c490 --- /dev/null +++ b/modules/apps/misc/default.nix @@ -0,0 +1,56 @@ +{ + config, + pkgs, + inputs, + lib, + ... +}: + +{ + options = { + apps.misc = { + obsidian.enable = lib.mkEnableOption "enable obsidian"; + bitwarden.enable = lib.mkEnableOption "enable bitwarden"; + blender.enable = lib.mkEnableOption "enable blender"; + syncthing = { + enable = lib.mkEnableOption "enable syncthing"; + devices = lib.mkOption { + default = { }; + description = '' + set syncthing devices + ''; + }; + folders = lib.mkOption { + default = { }; + description = '' + set syncthing folders + ''; + }; + }; + }; + }; + + config = { + environment.systemPackages = with pkgs; [ + (lib.mkIf (config.apps.misc.obsidian.enable) obsidian) + (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) + ]; + + services = { + syncthing = lib.mkIf config.apps.misc.syncthing.enable { + enable = true; + tray.enable = true; + guiAddress = "0.0.0.0:8384"; + settings = { + devices = config.apps.misc.syncthing.devices; + folders = config.apps.misc.syncthing.folders; + }; + overrideDevices = lib.mkIf (config.apps.misc.syncthing.devices == { }) false; + overrideFolders = lib.mkIf (config.apps.misc.syncthing.folders == { }) false; + }; + }; + }; +} diff --git a/modules/apps/terminal/base-packages.nix b/modules/apps/terminal/base-packages.nix index 097dfe5..4d2c5aa 100644 --- a/modules/apps/terminal/base-packages.nix +++ b/modules/apps/terminal/base-packages.nix @@ -16,6 +16,8 @@ [ unzip btop + bc + openssl ] ++ lib.mkIf config.apps.terminal.toys [ diff --git a/modules/desktop/shell/default.nix b/modules/desktop/shell/default.nix index e4b76b0..53c9913 100644 --- a/modules/desktop/shell/default.nix +++ b/modules/desktop/shell/default.nix @@ -7,9 +7,9 @@ { imports = [ + ./launcher.nix ./noctalia.nix ./swww.nix - ./walker.nix ./waybar.nix ]; } diff --git a/modules/desktop/shell/launcher.nix b/modules/desktop/shell/launcher.nix new file mode 100644 index 0000000..058134e --- /dev/null +++ b/modules/desktop/shell/launcher.nix @@ -0,0 +1,31 @@ +{ + config, + pkgs, + inputs, + lib, + ... +}: + +{ + options = { + desktop.shell = { + walker.enable = lib.mkEnableOption "enable walker"; + rofi.enable = lib.mkEnableOption "enable rofi"; + launcher = lib.mkOption { + default = (lib.mkIf config.desktop.shell.walker.enable "walker"); + description = "default launcher" + }; + }; + }; + + config = { + programs = { + walker = lib.mkIf config.desktop.shell.walker.enable { + enable = true; + }; + }; + environment.systemPackages = with pkgs; [ + (lib.mkIf (config.desktop.shell.rofi.enable) rofi) + ]; + }; +} diff --git a/modules/desktop/shell/walker.nix b/modules/desktop/shell/walker.nix deleted file mode 100644 index 87e9890..0000000 --- a/modules/desktop/shell/walker.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ - config, - pkgs, - inputs, - lib, - ... -}: - -{ - options = { - desktop.shell = { - walker.enable = lib.mkEnableOption "enable walker"; - }; - }; - - config = lib.mkIf config.desktop.shell.walker.enable { - programs = { - walker = { - enable = true; - }; - }; - }; -} diff --git a/modules/desktop/window-managers/default.nix b/modules/desktop/window-managers/default.nix index e648214..c0b8114 100644 --- a/modules/desktop/window-managers/default.nix +++ b/modules/desktop/window-managers/default.nix @@ -6,6 +6,32 @@ }: { + options = { + keybinds = { + modifier = lib.mkOption { + default = "Meta"; + description = "modifier key"; + }; + hotkeys = { + terminal = lib.mkOption { + default = "Return"; + description = "terminal hotkey"; + }; + launcher = lib.mkOption { + default = "D"; + description = "launcher hotkey"; + }; + browser = lib.mkOption { + default = "O"; + description = "browser hotkey"; + }; + editor = lib.mkOption { + default = "E"; + description = "editor hotkey"; + }; + }; + } + }; imports = [ ./hyprland.nix ./niri.nix diff --git a/modules/user/default.nix b/modules/user/default.nix index 4a06ffb..fc7460e 100644 --- a/modules/user/default.nix +++ b/modules/user/default.nix @@ -15,6 +15,10 @@ main user name ''; }; + email = lib.mkOption { + default = "${config.user.userName}@${config.domain}"; + description = "main user email" + } shell = lib.mkOption { default = pkgs.fish; description = ''