From be8b2831390b792428c63940fe41cac40f260fad Mon Sep 17 00:00:00 2001 From: uku Date: Mon, 27 Jan 2025 20:27:15 +0100 Subject: [PATCH] fix(client): disable ssh-askpass on wsl the curses askpass is cool but it just. doesn't work well, especially when there are multiple tabs open in windows terminal which completely breaks it beyond belief. so yeah, bye bye --- configs/client.nix | 16 +++++++++------- configs/desktop.nix | 1 + exprs/curses-ssh-askpass.nix | 15 --------------- exprs/overlay.nix | 1 - 4 files changed, 10 insertions(+), 23 deletions(-) delete mode 100644 exprs/curses-ssh-askpass.nix diff --git a/configs/client.nix b/configs/client.nix index 817daa5..9e20d55 100644 --- a/configs/client.nix +++ b/configs/client.nix @@ -1,4 +1,9 @@ -{ lib, pkgs, ... }: +{ + lib, + pkgs, + config, + ... +}: { imports = [ ./common.nix @@ -17,7 +22,8 @@ nixd ]; - variables.SSH_ASKPASS_REQUIRE = "prefer"; + # disable ssh-askpass on wsl namely, to simply have a normal prompt that reads from stdin + variables.SSH_ASKPASS_REQUIRE = if config.programs.ssh.enableAskPassword then "prefer" else "never"; }; networking = { @@ -31,11 +37,7 @@ programs = { nix-ld.enable = true; - ssh = { - startAgent = true; - enableAskPassword = true; - askPassword = lib.mkOverride 1200 "${pkgs.curses-ssh-askpass}"; # see exprs/curses-ssh-askpass.nix - }; + ssh.startAgent = true; }; virtualisation.docker.enable = true; diff --git a/configs/desktop.nix b/configs/desktop.nix index 416ef2d..f87a1f3 100644 --- a/configs/desktop.nix +++ b/configs/desktop.nix @@ -112,6 +112,7 @@ programs = { firefox.enable = true; virt-manager.enable = true; + ssh.enableAskPassword = true; }; security.pam.services.login.enableGnomeKeyring = true; diff --git a/exprs/curses-ssh-askpass.nix b/exprs/curses-ssh-askpass.nix deleted file mode 100644 index 653500b..0000000 --- a/exprs/curses-ssh-askpass.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - lib, - pinentry-curses, - writeShellScript, -}: -writeShellScript "curses-ssh-askpass" '' - if [ -z ''${1+x} ]; then - prompt="GETPIN" - else - prompt="SETDESC $1\nGETPIN" - fi - - pin=$(echo -e "$prompt" | ${lib.getExe pinentry-curses} -T /dev/pts/0 | grep D | tr -d '\n') - echo "''${pin:2}" -'' diff --git a/exprs/overlay.nix b/exprs/overlay.nix index 9a7430d..566bb41 100644 --- a/exprs/overlay.nix +++ b/exprs/overlay.nix @@ -1,6 +1,5 @@ inputs: final: prev: { idea-ultimate-fixed = prev.callPackage ./idea-fixed.nix { }; - curses-ssh-askpass = prev.callPackage ./curses-ssh-askpass.nix { }; vencord = prev.vencord.overrideAttrs (old: rec { version = "${old.version}+git.${inputs.vencord.shortRev}";