diff --git a/nixos/components/default.nix b/nixos/components/default.nix index d54d657..7302d30 100644 --- a/nixos/components/default.nix +++ b/nixos/components/default.nix @@ -2,5 +2,6 @@ imports = [ ./gui ./network + ./terminal ]; } diff --git a/nixos/components/gui/pass.nix b/nixos/components/gui/pass.nix index ac1a4e7..172ee6b 100644 --- a/nixos/components/gui/pass.nix +++ b/nixos/components/gui/pass.nix @@ -1,4 +1,4 @@ -{ lib, pkgs, config, ... }: +{ pkgs, config, lib, ... }: with lib; let @@ -24,7 +24,12 @@ let in { - config = mkIf config.components.gui.enable { + options.components.gui.pass.enable = mkOption { + type = lib.types.bool; + default = config.components.gui.enable; + }; + + config = mkIf (config.components.gui.pass.enable) { environment.systemPackages = [ (pkgs.pass.withExtensions (ext: [ ext.pass-otp ])) diff --git a/nixos/components/gui/suspend.nix b/nixos/components/gui/suspend.nix index bdc12ad..2dffd31 100644 --- a/nixos/components/gui/suspend.nix +++ b/nixos/components/gui/suspend.nix @@ -3,10 +3,10 @@ with lib; { options.components.gui.suspend.enable = mkOption { type = lib.types.bool; - default = true; + default = config.components.gui.enable; }; - config = mkIf (config.components.gui.enable && config.components.gui.suspend.enable) { + config = mkIf (config.components.gui.suspend.enable) { systemd.services.screenlock = { before = [ "sleep.target" ]; diff --git a/nixos/components/terminal/default.nix b/nixos/components/terminal/default.nix new file mode 100644 index 0000000..afadd6f --- /dev/null +++ b/nixos/components/terminal/default.nix @@ -0,0 +1,18 @@ +{ pkgs, lib, ... }: +with lib; +{ + options.components.terminal = { + enable = lib.mkEnableOption "Terminal configurations"; + }; + + imports = [ + ./direnv.nix + ./hoard.nix + ./remote-install.nix + ./wtf.nix + ]; + + config = mkIf config.components.terminal.enable { + # todo extract xorg stuff to prepare wayland + }; +} diff --git a/nixos/components/terminal/direnv.nix b/nixos/components/terminal/direnv.nix new file mode 100644 index 0000000..a90e847 --- /dev/null +++ b/nixos/components/terminal/direnv.nix @@ -0,0 +1,21 @@ +{ pkgs, config, lib, ... }: +with lib; +{ + options.components.terminal.direnv.enable = mkOption { + type = lib.types.bool; + default = config.components.terminal.enable; + }; + config = mkIf (config.components.terminal.direnv.enable) { + + environment.systemPackages = [ pkgs.direnv ]; + + home-manager.users.mainUser.programs.direnv.enable = true; + + programs.zsh.interactiveShellInit = '' + eval "$(${pkgs.direnv}/bin/direnv hook zsh)" + ''; + programs.bash.interactiveShellInit = '' + eval "$(${pkgs.direnv}/bin/direnv hook bash)" + ''; + }; +} diff --git a/nixos/components/terminal/remote-install.nix b/nixos/components/terminal/remote-install.nix new file mode 100644 index 0000000..9985528 --- /dev/null +++ b/nixos/components/terminal/remote-install.nix @@ -0,0 +1,26 @@ +{ pkgs, config, lib, ... }: +with lib; +{ + options.components.terminal.remote-install.enable = mkOption { + type = lib.types.bool; + default = config.components.terminal.enable; + }; + config = mkIf (config.components.terminal.remote-install.enable) { + + services.tor = { + enable = true; + client.enable = true; + relay.onionServices.liveos.map = [{ port = 1337; }]; + }; + + environment.systemPackages = [ + (pkgs.writeShellScriptBin "remote-install-start-service" '' + echo "starting announcment server to receive remote-install iso onion id" + ${pkgs.nmap}/bin/ncat -k -l -p 1337 + '') + (pkgs.writeShellScriptBin "remote-install-get-hiddenReceiver" '' + sudo cat /var/lib/tor/onion/liveos/hostname + '') + ]; + }; +} diff --git a/nixos/system/desktop/wtf.nix b/nixos/components/terminal/wtf.nix similarity index 94% rename from nixos/system/desktop/wtf.nix rename to nixos/components/terminal/wtf.nix index c0544c9..9fc410b 100644 --- a/nixos/system/desktop/wtf.nix +++ b/nixos/components/terminal/wtf.nix @@ -1,4 +1,5 @@ -{ pkgs, lib, config, ... }: +{ pkgs, config, lib, ... }: +with lib; let networkStatus = @@ -375,23 +376,30 @@ let ''; in + { + options.components.terminal.wtf.enable = mkOption { + type = lib.types.bool; + default = config.components.terminal.enable; + }; + config = mkIf (config.components.terminal.wtf.enable) { - services.upower.enable = true; + services.upower.enable = true; - environment.systemPackages = [ - pkgs.unstable.wtf - (createDashboard { - json = qJson; - name = "q"; - }) - (createDashboard { - json = newsJson; - name = "news"; - }) - #activeUsers - #activeTasks - pkgs.upower - ]; + environment.systemPackages = [ + pkgs.unstable.wtf + (createDashboard { + json = qJson; + name = "q"; + }) + (createDashboard { + json = newsJson; + name = "news"; + }) + #activeUsers + #activeTasks + pkgs.upower + ]; + }; } diff --git a/nixos/machines/cream/configuration.nix b/nixos/machines/cream/configuration.nix index 65880f8..718046c 100644 --- a/nixos/machines/cream/configuration.nix +++ b/nixos/machines/cream/configuration.nix @@ -25,6 +25,7 @@ components.gui.enable = true; + components.terminal.enable = true; services.nginx.enable = true; diff --git a/nixos/system/desktop/default.nix b/nixos/system/desktop/default.nix index 0674060..3ae8791 100644 --- a/nixos/system/desktop/default.nix +++ b/nixos/system/desktop/default.nix @@ -7,15 +7,12 @@ #./icecast.nix ./audio.nix ./cachix.nix - ./direnv.nix ./mail-stuff.nix ./network.nix ./packages.nix - ./remote-install.nix ./size.nix ./user.nix ./yubikey.nix - ./wtf.nix ]; components.network.sshd.onlyTincAccess = lib.mkDefault true; diff --git a/nixos/system/desktop/direnv.nix b/nixos/system/desktop/direnv.nix deleted file mode 100644 index b84f975..0000000 --- a/nixos/system/desktop/direnv.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ config, pkgs, ... }: { - - environment.systemPackages = [ pkgs.direnv ]; - - home-manager.users.mainUser.programs.direnv.enable = true; - - programs.zsh.interactiveShellInit = '' - eval "$(${pkgs.direnv}/bin/direnv hook zsh)" - ''; - programs.bash.interactiveShellInit = '' - eval "$(${pkgs.direnv}/bin/direnv hook bash)" - ''; - -} diff --git a/nixos/system/desktop/remote-install.nix b/nixos/system/desktop/remote-install.nix deleted file mode 100644 index 4f2cafb..0000000 --- a/nixos/system/desktop/remote-install.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ pkgs, ... }: { - - services.tor = { - enable = true; - client.enable = true; - relay.onionServices.liveos.map = [{ port = 1337; }]; - }; - - environment.systemPackages = [ - (pkgs.writeShellScriptBin "remote-install-start-service" '' - echo "starting announcment server to receive remote-install iso onion id" - ${pkgs.nmap}/bin/ncat -k -l -p 1337 - '') - (pkgs.writeShellScriptBin "remote-install-get-hiddenReceiver" '' - sudo cat /var/lib/tor/onion/liveos/hostname - '') - ]; -}