From 1e94d11ce026a057677733e05aa99366df342c91 Mon Sep 17 00:00:00 2001 From: Jo Date: Thu, 4 Sep 2025 14:19:17 +0200 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=93=9D=20Improve=20README=20readabili?= =?UTF-8?q?ty=20and=20completeness?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index df3a877..6f0b954 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,7 @@ Secrets are managed by the [sops-nix](https://github.com/Mic92/sops-nix) nixos/h - General secrets are stored within the `secrets` directory. - System specific secrets are stored within their respective `systems///secrets` directory. +- User secrets are stored within their respective `homes///secrets` directory. The following command may be used to convert the SSH host key of a new machine to an age key: @@ -66,7 +67,7 @@ You may also encrypt arbitrary binary formats, like .cfg, using the following co nix-shell -p sops --run "sops -e original_file.cfg > secrets/encrypted_file.cfg" ``` -Lastly, when adding new systems, make sure to update any required secret files with the following command: +Finally, when adding new systems, make sure to update any required secret files with the following command: ```sh nix-shell -p sops --run "sops updatekeys secrets/example.yaml" @@ -117,7 +118,7 @@ Some of my future goals for this flake are: - Further refining my usage of the Nix language, through language best-practices and CLI dev tools. ## 🏗️ Structure -The structure this flake aims to build on is relatively simple to grasp. +This flake follows an opinionated directory structure, described below. ``` flake.nix --> The flake. From 8edd189f075f3b5525cb2647351242477b16f4bb Mon Sep 17 00:00:00 2001 From: Jo Date: Thu, 4 Sep 2025 14:20:41 +0200 Subject: [PATCH 2/2] =?UTF-8?q?=E2=9C=A8=20Add=20packettracer=20home=20mod?= =?UTF-8?q?ule?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jo/apps/packettracer/default.nix | 9 ++++++ homes/x86_64-linux/jo/default.nix | 4 +-- modules/home/apps/packettracer/default.nix | 28 +++++++++++++++++++ 3 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 homes/x86_64-linux/jo/apps/packettracer/default.nix create mode 100644 modules/home/apps/packettracer/default.nix diff --git a/homes/x86_64-linux/jo/apps/packettracer/default.nix b/homes/x86_64-linux/jo/apps/packettracer/default.nix new file mode 100644 index 0000000..2b26736 --- /dev/null +++ b/homes/x86_64-linux/jo/apps/packettracer/default.nix @@ -0,0 +1,9 @@ +{ + ... +}: +{ + puzzlevision.apps.packettracer = { + enable = true; + binaryPath = ./Packet_Tracer822_amd64_signed.deb; + }; +} diff --git a/homes/x86_64-linux/jo/default.nix b/homes/x86_64-linux/jo/default.nix index eff88f9..4905028 100644 --- a/homes/x86_64-linux/jo/default.nix +++ b/homes/x86_64-linux/jo/default.nix @@ -8,6 +8,7 @@ ./apps/discord ./apps/firefox ./apps/vicinae + ./apps/packettracer ]; puzzlevision = { @@ -28,9 +29,6 @@ }; }; - # Notify on systembus events - services.systembus-notify.enable = true; - sops.secrets.wakatime-cfg = { format = "binary"; sopsFile = ./secrets/wakatime.cfg; diff --git a/modules/home/apps/packettracer/default.nix b/modules/home/apps/packettracer/default.nix new file mode 100644 index 0000000..3cc9e22 --- /dev/null +++ b/modules/home/apps/packettracer/default.nix @@ -0,0 +1,28 @@ +{ + config, + self, + pkgs, + lib, + ... +}: +let + inherit (self) namespace; + inherit (self.lib) mkOpt; + inherit (lib) mkEnableOption types mkIf; + + cfg = config.${namespace}.apps.packettracer; +in +{ + options.${namespace}.apps.packettracer = { + enable = mkEnableOption "the Cisco Packettracer application, a network emulator."; + binaryPath = + mkOpt types.path null + "The path of the Packettracer binary. Has to be downloaded from Cisco Netacad"; + }; + + config = mkIf cfg.enable { + home.packages = with pkgs; [ + (ciscoPacketTracer8.override { packetTracerSource = cfg.binaryPath; }) + ]; + }; +}