From 73ae00995c7a401301a987d51d577b8c829623b9 Mon Sep 17 00:00:00 2001 From: shamma-alblooshi1 Date: Mon, 5 Aug 2024 12:36:42 +0400 Subject: [PATCH] Add comms-vm Signed-off-by: shamma-alblooshi1 --- modules/common/networking/hosts.nix | 2 +- modules/common/services/desktop.nix | 8 +++++++- modules/reference/appvms/{element.nix => comms.nix} | 11 ++++++++--- modules/reference/appvms/default.nix | 8 ++++++-- modules/reference/profiles/mvp-user-trial.nix | 2 +- .../services/dendrite-pinecone/dendrite-config.nix | 6 ++---- .../services/dendrite-pinecone/dendrite-pinecone.nix | 2 +- packages/icon-pack/default.nix | 1 + 8 files changed, 27 insertions(+), 13 deletions(-) rename modules/reference/appvms/{element.nix => comms.nix} (85%) diff --git a/modules/common/networking/hosts.nix b/modules/common/networking/hosts.nix index 12b6efe3f..5b62e6d9e 100644 --- a/modules/common/networking/hosts.nix +++ b/modules/common/networking/hosts.nix @@ -73,7 +73,7 @@ let } { ip = 103; - name = "element-vm"; + name = "comms-vm"; } { ip = 104; diff --git a/modules/common/services/desktop.nix b/modules/common/services/desktop.nix index be6d4f07b..30f953659 100644 --- a/modules/common/services/desktop.nix +++ b/modules/common/services/desktop.nix @@ -102,10 +102,16 @@ in { name = "Element"; - path = "${pkgs.givc-cli}/bin/givc-cli ${cliArgs} start element"; + path = "${pkgs.givc-cli}/bin/givc-cli ${cliArgs} start --vm comms-vm element"; icon = "${pkgs.icon-pack}/element-desktop.svg"; } + { + name = "Slack"; + path = "${pkgs.givc-cli}/bin/givc-cli ${cliArgs} start --vm comms-vm slack"; + icon = "${pkgs.icon-pack}/slack.svg"; + } + { name = "AppFlowy"; path = "${pkgs.givc-cli}/bin/givc-cli ${cliArgs} start appflowy"; diff --git a/modules/reference/appvms/element.nix b/modules/reference/appvms/comms.nix similarity index 85% rename from modules/reference/appvms/element.nix rename to modules/reference/appvms/comms.nix index 246d2cedd..78dcc0055 100644 --- a/modules/reference/appvms/element.nix +++ b/modules/reference/appvms/comms.nix @@ -17,9 +17,10 @@ let false; in { - name = "element"; + name = "comms"; packages = [ + pkgs.chromium pkgs.element-desktop pkgs.element-gps pkgs.gpsd @@ -101,8 +102,12 @@ in ghaf.givc.appvm = { enable = true; - name = lib.mkForce "element-vm"; - applications = lib.mkForce ''{"element": "${config.ghaf.givc.appPrefix}/run-waypipe ${config.ghaf.givc.appPrefix}/element-desktop --enable-features=UseOzonePlatform --ozone-platform=wayland"}''; + name = lib.mkForce "comms-vm"; + applications = lib.mkForce '' + { + "element": "${config.ghaf.givc.appPrefix}/run-waypipe ${config.ghaf.givc.appPrefix}/element-desktop --enable-features=UseOzonePlatform --ozone-platform=wayland", + "slack": "${config.ghaf.givc.appPrefix}/run-waypipe ${config.ghaf.givc.appPrefix}/chromium --enable-features=UseOzonePlatform --ozone-platform=wayland --app=https://app.slack.com/client ${config.ghaf.givc.idsExtraArgs}" + }''; }; } ]; diff --git a/modules/reference/appvms/default.nix b/modules/reference/appvms/default.nix index 731df72d5..9e2664aea 100644 --- a/modules/reference/appvms/default.nix +++ b/modules/reference/appvms/default.nix @@ -17,7 +17,11 @@ in chromium-vm = lib.mkEnableOption "Enable the Chromium appvm"; gala-vm = lib.mkEnableOption "Enable the Gala appvm"; zathura-vm = lib.mkEnableOption "Enable the Zathura appvm"; - element-vm = lib.mkEnableOption "Enable the Element appvm"; + comms-vm = lib.mkEnableOption '' + Enable the communications appvm + - Element + - Slack + ''; appflowy-vm = lib.mkEnableOption "Enable the Appflowy appvm"; business-vm = lib.mkEnableOption "Enable the Business appvm"; enabled-app-vms = lib.mkOption { @@ -35,7 +39,7 @@ in (lib.optionals cfg.chromium-vm [ (import ./chromium.nix { inherit pkgs lib config; }) ]) ++ (lib.optionals cfg.gala-vm [ (import ./gala.nix { inherit pkgs lib config; }) ]) ++ (lib.optionals cfg.zathura-vm [ (import ./zathura.nix { inherit pkgs lib config; }) ]) - ++ (lib.optionals cfg.element-vm [ (import ./element.nix { inherit pkgs lib config; }) ]) + ++ (lib.optionals cfg.comms-vm [ (import ./comms.nix { inherit pkgs lib config; }) ]) ++ (lib.optionals cfg.appflowy-vm [ (import ./appflowy.nix { inherit pkgs lib config; }) ]) ++ (lib.optionals cfg.business-vm [ (import ./business.nix { inherit pkgs lib config; }) ]); }; diff --git a/modules/reference/profiles/mvp-user-trial.nix b/modules/reference/profiles/mvp-user-trial.nix index 83df3fce1..a19200843 100644 --- a/modules/reference/profiles/mvp-user-trial.nix +++ b/modules/reference/profiles/mvp-user-trial.nix @@ -24,7 +24,7 @@ in chromium-vm = true; gala-vm = true; zathura-vm = true; - element-vm = true; + comms-vm = true; appflowy-vm = true; business-vm = true; }; diff --git a/modules/reference/services/dendrite-pinecone/dendrite-config.nix b/modules/reference/services/dendrite-pinecone/dendrite-config.nix index 4bde55e3d..4f8409015 100644 --- a/modules/reference/services/dendrite-pinecone/dendrite-config.nix +++ b/modules/reference/services/dendrite-pinecone/dendrite-config.nix @@ -22,10 +22,8 @@ in "${lib.head vmNetworking.networking.nat.internalInterfaces}"; - getElementVmEntry = builtins.filter ( - x: x.name == "element-vm" - ) config.ghaf.networking.hosts.entries; - serverIpAddr = lib.head (builtins.map (x: x.ip) getElementVmEntry); + getCommsVmEntry = builtins.filter (x: x.name == "comms-vm") config.ghaf.networking.hosts.entries; + serverIpAddr = lib.head (builtins.map (x: x.ip) getCommsVmEntry); in { enable = lib.mkDefault false; diff --git a/modules/reference/services/dendrite-pinecone/dendrite-pinecone.nix b/modules/reference/services/dendrite-pinecone/dendrite-pinecone.nix index d20f38e0e..b925f5165 100644 --- a/modules/reference/services/dendrite-pinecone/dendrite-pinecone.nix +++ b/modules/reference/services/dendrite-pinecone/dendrite-pinecone.nix @@ -134,7 +134,7 @@ in # TODO: Move all these TcpPort and things like that, to the options of # this module, away from from package itself. - # Forward incoming TCP traffic on port ${dendrite-pineconePkg.TcpPort} to internal network(element-vm) + # Forward incoming TCP traffic on port ${dendrite-pineconePkg.TcpPort} to internal network(comms-vm) iptables -t nat -A PREROUTING -i ${cfg.externalNic} -p tcp --dport ${dendrite-pineconePkg.TcpPort} -j DNAT --to-destination ${cfg.serverIpAddr}:${dendrite-pineconePkg.TcpPort} # Enable NAT for outgoing traffic diff --git a/packages/icon-pack/default.nix b/packages/icon-pack/default.nix index 4790abc87..d9f9d419b 100644 --- a/packages/icon-pack/default.nix +++ b/packages/icon-pack/default.nix @@ -19,6 +19,7 @@ let "microsoft-365.svg" "ms-outlook.svg" "preferences-system-network.svg" + "slack.svg" "system-lock-screen.svg" "system-log-out.svg" "system-reboot.svg"