From f7f719b153bd82776f39c9d4b7828b0b4ec5aa5e Mon Sep 17 00:00:00 2001 From: Manuel Thalmann Date: Fri, 3 May 2024 01:40:09 +0200 Subject: Add `okular` as a markdown viewer --- flake.nix | 3 +++ 1 file changed, 3 insertions(+) (limited to 'flake.nix') diff --git a/flake.nix b/flake.nix index 789b70f..99f4d80 100644 --- a/flake.nix +++ b/flake.nix @@ -149,6 +149,9 @@ # This guide itself (run `view-yubikey-guide` on the terminal # to open it in a non-graphical environment). yubikeyGuide + + # PDF and Markdown viewer + okular ]; # Disable networking so the system is air-gapped -- cgit v1.2.3 From 841785582988d236d2c97de16f962eeb115c9ed3 Mon Sep 17 00:00:00 2001 From: Manuel Thalmann Date: Fri, 3 May 2024 01:43:36 +0200 Subject: Disable screen saver --- flake.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'flake.nix') diff --git a/flake.nix b/flake.nix index 789b70f..3112cb0 100644 --- a/flake.nix +++ b/flake.nix @@ -78,7 +78,10 @@ # Comment out to run in a console for a smaller iso and less RAM. xserver = { enable = true; - desktopManager.xfce.enable = true; + desktopManager.xfce = { + enable = true; + enableScreensaver = false; + }; displayManager = { lightdm.enable = true; autoLogin = { -- cgit v1.2.3 From c4541aab99ac19e926415cf2555f458b3a60588a Mon Sep 17 00:00:00 2001 From: Manuel Thalmann Date: Fri, 3 May 2024 01:46:02 +0200 Subject: Fix non-existent guide icon --- flake.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'flake.nix') diff --git a/flake.nix b/flake.nix index 789b70f..26ac54b 100644 --- a/flake.nix +++ b/flake.nix @@ -38,7 +38,7 @@ ''; shortcut = pkgs.makeDesktopItem { name = "yubikey-guide"; - icon = "${pkgs.yubikey-manager-qt}/share/ykman-gui/icons/ykman.png"; + icon = "${pkgs.yubikey-manager-qt}/share/icons/hicolor/128x128/apps/ykman.png"; desktopName = "drduh's YubiKey Guide"; genericName = "Guide to using YubiKey for GnuPG and SSH"; comment = "Open the guide in a reader program"; -- cgit v1.2.3 From 21eb55c899b601fd0fa2a92a4c8d16d0d107ec1b Mon Sep 17 00:00:00 2001 From: Manuel Thalmann Date: Fri, 3 May 2024 01:59:18 +0200 Subject: Include the diceware web app --- flake.nix | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) (limited to 'flake.nix') diff --git a/flake.nix b/flake.nix index 789b70f..e60b3e1 100644 --- a/flake.nix +++ b/flake.nix @@ -29,6 +29,8 @@ sed '/pinentry-program/d' ${drduhConfig}/gpg-agent.conf > $out echo "pinentry-program ${pkgs.pinentry.curses}/bin/pinentry" >> $out ''; + dicewareAddress = "localhost"; + dicewarePort = 8080; viewYubikeyGuide = pkgs.writeShellScriptBin "view-yubikey-guide" '' viewer="$(type -P xdg-open || true)" if [ -z "$viewer" ]; then @@ -49,6 +51,38 @@ name = "yubikey-guide"; paths = [viewYubikeyGuide shortcut]; }; + dicewareScript = pkgs.writeShellScriptBin "diceware-webapp" '' + viewer="$(type -P xdg-open || true)" + if [ -z "$viewer" ]; then + viewer="firefox" + fi + exec $viewer "http://"${lib.escapeShellArg dicewareAddress}":${toString dicewarePort}/index.html" + ''; + dicewarePage = pkgs.stdenv.mkDerivation { + name = "diceware-page"; + src = pkgs.fetchFromGitHub { + owner = "grempe"; + repo = "diceware"; + rev = "9ef886a2a9699f73ae414e35755fd2edd69983c8"; + sha256 = "44rpK8svPoKx/e/5aj0DpEfDbKuNjroKT4XUBpiOw2g="; + }; + patches = [ + # Include changes published on https://secure.research.vt.edu/diceware/ + ./diceware-vt.patch + ]; + buildPhase = '' + cp -a . $out + ''; + }; + dicewareWebApp = pkgs.makeDesktopItem { + name = "diceware"; + icon = "${dicewarePage}/favicon.ico"; + desktopName = "Diceware Passphrase Generator"; + genericName = "Passphrase Generator"; + comment = "Open the passphrase generator in a web browser"; + categories = ["Utility"]; + exec = "${dicewareScript}/bin/${dicewareScript.name}"; + }; in { isoImage = { isoName = "yubikeyLive.iso"; @@ -87,9 +121,34 @@ }; }; }; + # Host the `https://secure.research.vt.edu/diceware/` website offline + nginx = { + enable = true; + virtualHosts."diceware.local" = { + listen = [ + { + addr = dicewareAddress; + port = dicewarePort; + } + ]; + root = "${dicewarePage}"; + }; + }; }; programs = { + # Add firefox for running the diceware web app + firefox = { + enable = true; + preferences = { + # Disable data reporting confirmation dialogue + "datareporting.policy.dataSubmissionEnabled" = false; + # Disable welcome tab + "browser.aboutwelcome.enabled" = false; + }; + # Make preferences appear as user-defined values + preferencesStatus = "user"; + }; ssh.startAgent = false; gnupg.agent = { enable = true; @@ -138,6 +197,7 @@ # Password generation tools diceware + dicewareWebApp pwgen # Might be useful beyond the scope of the guide @@ -194,6 +254,7 @@ cp -R ${self}/contrib/* ${homeDir} ln -sf ${yubikeyGuide}/share/applications/yubikey-guide.desktop ${desktopDir} + ln -sf ${dicewareWebApp}/share/applications/${dicewareWebApp.name} ${desktopDir} ln -sfT ${self} ${documentsDir}/YubiKey-Guide ''; system.stateVersion = "23.11"; -- cgit v1.2.3