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. 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; }) + ]; + }; +}