diff --git a/home/desktop/window-managers/niri.nix b/home/desktop/window-managers/niri.nix index f29e2f1..70f0aaa 100644 --- a/home/desktop/window-managers/niri.nix +++ b/home/desktop/window-managers/niri.nix @@ -75,10 +75,11 @@ binds { ${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";} + ${modifier}+${osConfig.keybinds.hotkeys.browser} { spawn "${osConfig.apps.browser.default}";} + ${modifier}+${osConfig.keybinds.hotkeys.launcher} { spawn "${osConfig.desktop.window-managers.shell.launcher.default}";} Print { screenshot;} - ${modifier}+Shift+Q { close-window; } + ${modifier}+Shift+${osConfig.keybinds.hotkeys.close-window} { close-window; } + ${modifier}+Shift+${osConfig.keybinds.hotkeys.editor} { spawn "${osConfig.apps.development.editor.default}";} } spawn-at-startup "elephant" diff --git a/home/modules/connectivity/default.nix b/home/modules/connectivity/default.nix deleted file mode 100644 index 7671b68..0000000 --- a/home/modules/connectivity/default.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: - -{ - imports = [ - ./internet - ./bluetooth - ./mounts - ./social-media - ]; -} diff --git a/home/modules/defaults/default.nix b/home/modules/defaults/default.nix deleted file mode 100644 index d5bdd81..0000000 --- a/home/modules/defaults/default.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ - config, - pkgs, - inputs, - lib, - ... -}: - -{ - options = { - device = { - type = { - laptop = lib.mkEnableOption "laptop"; - desktop = lib.mkEnableOption "desktop"; - server = lib.mkEnableOption "server"; - }; - }; - }; - imports = [ - ./laptop.nix - ./desktop.nix - ./server.nix - ]; - config = { - development = lib.mkDefault { - git.enable = true; - }; - terminal = lib.mkDefault { - ranger.enable = true; - }; - misc = lib.mkDefault { - bitwarden.enable = true; - }; - internet.tor.enable = true; - syncthing = lib.mkDefault { - devices = { - marty-pc = { - id = "6PJZD52-EEWIO7U-MZMJJ5B-33DGNSU-O7DJVRT-GAE7QZG-ZY3VIMV-VSMBDQP"; - autoAcceptFolder = true; - }; - marty-server = { - id = "UDMXEKZ-HYIFI5S-VAKE75O-K3C65QV-LS43QA5-3JTHWKL-CI5C3Y6-P4NSQQM"; - autoAcceptFolders = true; - }; - marty-latitude = { - id = "SOAWHKA-BCQGO5G-IJ24WTO-RDETP5M-LNTVO66-MHIOUU2-NNQ57P6-FFKNSA6"; - autoAcceptFolders = true; - }; - marty-pixel = { - id = "GSBXOGW-6SYLDUQ-HPH7FBJ-CKHWQIK-K5YORB4-CYKGYT6-DLCVSAK-LA2RMAK"; - autoAcceptFolders = true; - }; - marty-fairphone = { - id = "2ISVWQV-4USY5IA-2OU55CE-Q7VLPD7-4RVQ5WX-FXQSJMY-2ES4EZG-IGFB7QG"; - autoAcceptFolders = true; - }; - }; - }; - }; -} diff --git a/home/modules/defaults/desktop.nix b/home/modules/defaults/desktop.nix deleted file mode 100644 index 514e005..0000000 --- a/home/modules/defaults/desktop.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ - config, - pkgs, - inputs, - lib, - ... -}: - -{ - config = lib.mkIf config.device.type.desktop { - development = lib.mkDefault { - vscodium.enable = true; - godot.enable = true; - python.enable = true; - }; - terminal = lib.mkDefault { - kitty.enable = true; - }; - desktop = lib.mkDefault { - hyprland = { - enable = true; - numlock = true; - }; - # waybar.enable = true; - walker.enable = true; - wallpaper.enable = true; - grimblast.enable = true; - audio.enable = true; - noctalia.enable = true; - }; - messaging.enable = true; - internet = lib.mkDefault { - browsers = { - zen-browser = { - enable = true; - }; - tor-browser = { - enable = true; - }; - }; - mail = { - enable = true; - providers.protonmail.enable = true; - }; - rss.enable = true; - }; - bluetooth.enable = true; - media = { - images.enable = true; - video.enable = true; - audio.enable = true; - threeD.enable = true; - }; - misc = { - obsidian.enable = true; - }; - }; -} diff --git a/home/modules/defaults/laptop.nix b/home/modules/defaults/laptop.nix deleted file mode 100644 index cd4f4a0..0000000 --- a/home/modules/defaults/laptop.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ - config, - pkgs, - inputs, - lib, - ... -}: - -{ - config = lib.mkIf config.device.type.laptop { - home.packages = with pkgs; [ - light - ]; - development = lib.mkDefault { - vscodium.enable = true; - }; - terminal = lib.mkDefault { - kitty.enable = true; - }; - desktop = lib.mkDefault { - hyprland = { - enable = true; - }; - # waybar.enable = true; - walker.enable = true; - wallpaper.enable = true; - grimblast.enable = true; - audio.enable = true; - noctalia.enable = true; - }; - messaging.enable = true; - internet = lib.mkDefault { - browsers = { - zen-browser = { - enable = true; - }; - }; - mail = { - enable = true; - providers.protonmail.enable = true; - }; - rss.enable = true; - }; - bluetooth.enable = true; - media = { - images.nomacs.enable = true; - video.mpv.enable = true; - video.tsukimi.enable = true; - }; - }; -} diff --git a/home/modules/defaults/server.nix b/home/modules/defaults/server.nix deleted file mode 100644 index e2c76af..0000000 --- a/home/modules/defaults/server.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ - config, - pkgs, - inputs, - lib, - ... -}: - -{ - -} \ No newline at end of file diff --git a/home/modules/misc/secrets.nix b/home/modules/misc/secrets.nix deleted file mode 100644 index 35fe641..0000000 --- a/home/modules/misc/secrets.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: - -{ - home.packages = with pkgs; [ - pass - gnome-keyring - seahorse - libsecret - gcr - ]; - services.gnome-keyring.enable = true; -} diff --git a/hosts/marty-thinkpad/default.nix b/hosts/marty-thinkpad/default.nix index f555d3f..fa0b0ae 100644 --- a/hosts/marty-thinkpad/default.nix +++ b/hosts/marty-thinkpad/default.nix @@ -28,7 +28,6 @@ imports = [ ./hardware.nix - ../../modules/desktop/niri.nix # ../../modules/server/nginx.nix ]; diff --git a/modules/apps/development/default.nix b/modules/apps/development/default.nix index cbb7240..875388b 100644 --- a/modules/apps/development/default.nix +++ b/modules/apps/development/default.nix @@ -8,9 +8,8 @@ { imports = [ ./git.nix - ./vscodium.nix - ./python.nix + ./editor.nix ./godot.nix - ./openssl.nix + ./languages.nix ]; } diff --git a/modules/apps/development/editor.nix b/modules/apps/development/editor.nix new file mode 100644 index 0000000..ef93334 --- /dev/null +++ b/modules/apps/development/editor.nix @@ -0,0 +1,54 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + options = { + development = { + editor = { + vscodium.enable = lib.mkEnableOption "enable vscodium"; + emacs.enable = lib.mkEnableOption "enable emacs"; + default = "vscodium"; + }; + }; + }; + + config = { + environment.systemPackages = with pkgs; [ + (lib.mkIf config.development.editor.vscodium.enable vscodium) + nixfmt + ]; + + programs = { + vscode = lib.mkIf config.development.editor.vscodium.enable { + enable = true; + package = pkgs.vscodium; + defaultEditor = lib.mkIf (config.development.editor.default == "vscodium") true; + profiles.default.extensions = with pkgs.vscode-extensions; [ + catppuccin.catppuccin-vsc + catppuccin.catppuccin-vsc-icons + jnoortheen.nix-ide + alefragnani.project-manager + naumovs.color-highlight + geequlim.godot-tools + stylelint.vscode-stylelint + ecmel.vscode-html-css + esbenp.prettier-vscode + ]; + }; + }; + services = { + emacs = lib.mkIf config.development.editor.emacs.enable { + enable = true; + install = true; + defaultEditor = lib.mkIf (config.development.editor.default == "emacs") true; + }; + }; + home.sessionVariables = { + EDITOR = lib.mkDefault "codium"; + }; + }; +} diff --git a/modules/apps/development/godot.nix b/modules/apps/development/godot.nix index a62c5db..dbde233 100644 --- a/modules/apps/development/godot.nix +++ b/modules/apps/development/godot.nix @@ -7,13 +7,13 @@ { options = { - development = { + apps.development = { godot.enable = lib.mkEnableOption "enable godot"; }; }; - config = lib.mkIf config.development.godot.enable { - home.packages = with pkgs; [ + config = lib.mkIf config.apps.development.godot.enable { + systemPackages = with pkgs; [ godot ]; }; diff --git a/modules/apps/development/languages.nix b/modules/apps/development/languages.nix new file mode 100644 index 0000000..b6280cc --- /dev/null +++ b/modules/apps/development/languages.nix @@ -0,0 +1,20 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + options = { + apps.development.languages = { + python = lib.mkEnableOption "enable python"; + }; + }; + + config = { + environment.systemPackages = with pkgs; [ + (lib.mkIf lib.mkIf config.development.languages.python.enable virtualenv) + ]; + }; +} diff --git a/modules/apps/development/vscodium.nix b/modules/apps/development/vscodium.nix deleted file mode 100644 index 21cd7ef..0000000 --- a/modules/apps/development/vscodium.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: - -{ - options = { - development = { - vscodium.enable = lib.mkEnableOption "enable vscodium"; - }; - }; - - config = lib.mkIf config.development.vscodium.enable { - programs.vscode = { - enable = true; - package = pkgs.vscodium; - profiles.default.extensions = with pkgs.vscode-extensions; [ - catppuccin.catppuccin-vsc - catppuccin.catppuccin-vsc-icons - jnoortheen.nix-ide - alefragnani.project-manager - naumovs.color-highlight - geequlim.godot-tools - stylelint.vscode-stylelint - ecmel.vscode-html-css - esbenp.prettier-vscode - ]; - }; - home.packages = with pkgs; [ - nixfmt - ]; - home.sessionVariables = { - EDITOR = lib.mkDefault "codium"; - }; - }; -} diff --git a/modules/apps/internet/browser.nix b/modules/apps/internet/browser.nix new file mode 100644 index 0000000..6e6bc96 --- /dev/null +++ b/modules/apps/internet/browser.nix @@ -0,0 +1,34 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + options = { + apps.internet.browsers = { + zen-browser = { + enable = lib.mkEnableOption "enable zen browser"; + package = inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.default; + binary = "${config.apps.internet.browsers.zen-browser.package}/bin/zen"; + }; + tor-browser = { + enable = lib.mkEnableOption "enable tor browser"; + package = pkgs.tor-browser; + binary = "${config.apps.internet.browsers.tor-browser.package}/bin/tor-browser"; + }; + default = lib.mkOption { + default = "zen"; + description = "default browser"; + }; + }; + }; + config = { + + 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) + ]; + }; +} diff --git a/modules/apps/internet/default.nix b/modules/apps/internet/default.nix new file mode 100644 index 0000000..5ae91ab --- /dev/null +++ b/modules/apps/internet/default.nix @@ -0,0 +1,13 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + imports = [ + ./browser.nix + ./mail.nix + ]; +} diff --git a/modules/apps/misc/default.nix b/modules/apps/misc/default.nix index 8b4c490..3192aea 100644 --- a/modules/apps/misc/default.nix +++ b/modules/apps/misc/default.nix @@ -12,21 +12,6 @@ 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 - ''; - }; - }; }; }; @@ -37,20 +22,15 @@ lib.mkIf (config.desktop.shell.rofi.enable) pinentry-curses rofi-rbw )) (lib.mkIf (config.apps.misc.blender.enable) blender) + libsecret + gcr_4 + pass ]; - + programs = { + seahorse.enable = true; + }; 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; - }; + gnome.gnome-keyring.enable = true; }; }; } diff --git a/modules/apps/sync/default.nix b/modules/apps/sync/default.nix new file mode 100644 index 0000000..b2908fd --- /dev/null +++ b/modules/apps/sync/default.nix @@ -0,0 +1,52 @@ +{ + config, + pkgs, + inputs, + lib, + ... +}: + +{ + options = { + apps.sync = { + kde-connect = { + enable = lib.mkEnableOption "enable kde-connect"; + }; + syncthing = { + enable = lib.mkEnableOption "enable syncthing"; + devices = lib.mkOption { + default = { }; + description = '' + set syncthing devices + ''; + }; + folders = lib.mkOption { + default = { }; + description = '' + set syncthing folders + ''; + }; + }; + }; + }; + config = { + programs = { + kdeconnect = lib.mkIf config.apps.sync.kde-connect.enable { + enable = true; + }; + }; + services = { + syncthing = lib.mkIf config.apps.sync.syncthing.enable { + enable = true; + tray.enable = true; + guiAddress = "0.0.0.0:8384"; + settings = { + 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; + }; + }; + }; +} diff --git a/modules/desktop/shell/launcher.nix b/modules/desktop/shell/launcher.nix index 058134e..31af404 100644 --- a/modules/desktop/shell/launcher.nix +++ b/modules/desktop/shell/launcher.nix @@ -13,7 +13,7 @@ rofi.enable = lib.mkEnableOption "enable rofi"; launcher = lib.mkOption { default = (lib.mkIf config.desktop.shell.walker.enable "walker"); - description = "default launcher" + description = "default launcher"; }; }; }; diff --git a/modules/desktop/window-managers/default.nix b/modules/desktop/window-managers/default.nix index c0b8114..0b3749b 100644 --- a/modules/desktop/window-managers/default.nix +++ b/modules/desktop/window-managers/default.nix @@ -30,7 +30,7 @@ description = "editor hotkey"; }; }; - } + }; }; imports = [ ./hyprland.nix diff --git a/modules/system/networking.nix b/modules/system/networking.nix index 872e5a3..ea37bf8 100644 --- a/modules/system/networking.nix +++ b/modules/system/networking.nix @@ -2,6 +2,7 @@ { networking = { + domain = config.domain; networkmanager.enable = true; firewall = { enable = true; diff --git a/modules/user/default.nix b/modules/user/default.nix index fc7460e..0864183 100644 --- a/modules/user/default.nix +++ b/modules/user/default.nix @@ -16,9 +16,9 @@ ''; }; email = lib.mkOption { - default = "${config.user.userName}@${config.domain}"; - description = "main user email" - } + default = "${config.user.userName}@${config.networking.domain}"; + description = "main user email"; + }; shell = lib.mkOption { default = pkgs.fish; description = '' diff --git a/options.nix b/options.nix index 9820ff4..1e7f5b7 100644 --- a/options.nix +++ b/options.nix @@ -44,6 +44,36 @@ default = "kitty"; toys = true; }; + sync = { + syncthing = { + devices = { + marty-pc = { + id = "6PJZD52-EEWIO7U-MZMJJ5B-33DGNSU-O7DJVRT-GAE7QZG-ZY3VIMV-VSMBDQP"; + autoAcceptFolder = true; + }; + marty-server = { + id = "UDMXEKZ-HYIFI5S-VAKE75O-K3C65QV-LS43QA5-3JTHWKL-CI5C3Y6-P4NSQQM"; + autoAcceptFolders = true; + }; + marty-latitude = { + id = "SOAWHKA-BCQGO5G-IJ24WTO-RDETP5M-LNTVO66-MHIOUU2-NNQ57P6-FFKNSA6"; + autoAcceptFolders = true; + }; + marty-thinkpad = { + id = "NWHFQSW-FOBGFLV-YMZR77Q-KNRR3YC-4C6PKXT-TTPDCOL-CDB6QX4-3QJE2AN"; + autoAcceptFolders = true; + }; + marty-pixel = { + id = "GSBXOGW-6SYLDUQ-HPH7FBJ-CKHWQIK-K5YORB4-CYKGYT6-DLCVSAK-LA2RMAK"; + autoAcceptFolders = true; + }; + marty-fairphone = { + id = "2ISVWQV-4USY5IA-2OU55CE-Q7VLPD7-4RVQ5WX-FXQSJMY-2ES4EZG-IGFB7QG"; + autoAcceptFolders = true; + }; + }; + }; + }; }; desktop = { window-managers = {