From d66e0951d4393e6ff834518c8c9a3c7af814ddd9 Mon Sep 17 00:00:00 2001 From: sstent Date: Sat, 25 Feb 2023 05:36:06 +0000 Subject: [PATCH] sync --- flake.nix | 27 ++----------- home-manager/sstent.nix | 64 ++++++++++++++++++++---------- modules/home-manager/default.nix | 2 +- modules/home-manager/ssh-proxy.nix | 43 ++++++++++++++++++++ 4 files changed, 91 insertions(+), 45 deletions(-) create mode 100644 modules/home-manager/ssh-proxy.nix diff --git a/flake.nix b/flake.nix index 068540f..eac73d5 100644 --- a/flake.nix +++ b/flake.nix @@ -35,33 +35,14 @@ outputs = { self, nixpkgs, home-manager, ... }@inputs: let inherit (self) outputs; - forAllSystems = nixpkgs.lib.genAttrs [ - "aarch64-linux" - "i686-linux" - "x86_64-linux" - ]; + forEachSystem = nixpkgs.lib.genAttrs [ "x86_64-linux" "aarch64-linux" ]; + forEachPkgs = f: forEachSystem (sys: f nixpkgs.legacyPackages.${sys}); in rec { - # Your custom packages - # Acessible through 'nix build', 'nix shell', etc - packages = forAllSystems (system: - let pkgs = nixpkgs.legacyPackages.${system}; - in import ./pkgs { inherit pkgs; } - ); - # Devshell for bootstrapping - # Acessible through 'nix develop' or 'nix-shell' (legacy) - devShells = forAllSystems (system: - let pkgs = nixpkgs.legacyPackages.${system}; - in import ./shell.nix { inherit pkgs; } - ); - - # Your custom packages and modifications, exported as overlays + packages = forEachPkgs (pkgs: import ./pkgs { inherit pkgs; }); + devShells = forEachPkgs (pkgs: import ./shell.nix { inherit pkgs; }); overlays = import ./overlays { inherit inputs; }; - # Reusable nixos modules you might want to export - # These are usually stuff you would upstream into nixpkgs nixosModules = import ./modules/nixos; - # Reusable home-manager modules you might want to export - # These are usually stuff you would upstream into home-manager homeManagerModules = import ./modules/home-manager; # NixOS configuration entrypoint diff --git a/home-manager/sstent.nix b/home-manager/sstent.nix index c6d4fbb..7fc1069 100644 --- a/home-manager/sstent.nix +++ b/home-manager/sstent.nix @@ -1,4 +1,25 @@ -{ lib, config, pkgs, ... }: { +# This is your home-manager configuration file +# Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix) + +{ inputs, outputs, lib, config, pkgs, ... }: { + imports = [ + ]; + + nixpkgs = { + overlays = [ + # Add overlays your own flake exports (from overlays and pkgs dir): + outputs.overlays.additions + outputs.overlays.modifications + outputs.overlays.unstable-packages + ]; + # Configure your nixpkgs instance + config = { + # Disable if you don't want unfree packages + allowUnfree = true; + # Workaround for https://github.com/nix-community/home-manager/issues/2942 + allowUnfreePredicate = (_: true); + }; + }; home.username = "sstent"; home.homeDirectory = "/home/sstent"; @@ -8,9 +29,9 @@ programs.home-manager.enable = true; home.packages = with pkgs; [ autossh - azure-cli + # azure-cli ansible - sshpass + # sshpass (import ./packages/python-packages.nix { pkgs = pkgs; }) pyinfra sshpass @@ -26,12 +47,13 @@ mr perl # beets - qemu_kvm - nixos-generators + # qemu_kvm + # nixos-generators nixfmt - deploy-rs + # deploy-rs ]; - + + services.ssh-proxy.enable = true; services.keybase.enable = true; services.kbfs.enable = true; @@ -100,22 +122,22 @@ programs = { }; }; - systemd.user = { +# systemd.user = { - startServices = true; +# startServices = true; - services.ssh-proxy = { - Unit = { Description = "WSL Proxy"; }; - Service = { - ExecStart = "${pkgs.writeShellScript "start-proxy" '' - set -x - ${pkgs.coreutils}/bin/rm -f /home/sstent/.ssh/wsl-ssh-agent.sock - ${pkgs.util-linux}/bin/setsid ${pkgs.socat}/bin/socat UNIX-LISTEN:/home/sstent/.ssh/wsl-ssh-agent.sock,fork EXEC:"${pkgs.npiperelay}/bin/npiperelay.exe -ei -s //./pipe/openssh-ssh-agent",nofork - ''}"; - }; - #Install = { WantedBy = [ "default.target" ]; }; - }; - }; +# services.ssh-proxy = { +# Unit = { Description = "WSL Proxy"; }; +# Service = { +# ExecStart = "${pkgs.writeShellScript "start-proxy" '' +# set -x +# ${pkgs.coreutils}/bin/rm -f /home/sstent/.ssh/wsl-ssh-agent.sock +# ${pkgs.util-linux}/bin/setsid ${pkgs.socat}/bin/socat UNIX-LISTEN:/home/sstent/.ssh/wsl-ssh-agent.sock,fork EXEC:"${pkgs.npiperelay}/bin/npiperelay.exe -ei -s //./pipe/openssh-ssh-agent",nofork +# ''}"; +# }; +# #Install = { WantedBy = [ "default.target" ]; }; +# }; +# }; } # homeage = { diff --git a/modules/home-manager/default.nix b/modules/home-manager/default.nix index e41f7d9..09bb8e1 100644 --- a/modules/home-manager/default.nix +++ b/modules/home-manager/default.nix @@ -3,5 +3,5 @@ { # List your module files here - # my-module = import ./my-module.nix; + ssh-proxy = import ./ssh-proxy.nix; } diff --git a/modules/home-manager/ssh-proxy.nix b/modules/home-manager/ssh-proxy.nix new file mode 100644 index 0000000..cd1fbe1 --- /dev/null +++ b/modules/home-manager/ssh-proxy.nix @@ -0,0 +1,43 @@ +{ lib, pkgs, config, ... }: +with lib; + +let cfg = config.services.ssh-proxy; +in { + options.services.ssh-proxy = { + enable = mkOption { + type = types.bool; + default = false; + description = '' + Enable ssh-proxy for WSL + ''; + }; + }; + + config = mkIf cfg.enable { + + home.packages = with pkgs; [ + npiperelay + socat + ]; + + + systemd.user = { + + startServices = true; + + services.ssh-proxy = { + Unit = { Description = "WSL Proxy"; }; + Service = { + ExecStart = "${pkgs.writeShellScript "start-proxy" '' + set -x + ${pkgs.coreutils}/bin/rm -f /home/sstent/.ssh/wsl-ssh-agent.sock + ${pkgs.util-linux}/bin/setsid ${pkgs.socat}/bin/socat UNIX-LISTEN:/home/sstent/.ssh/wsl-ssh-agent.sock,fork EXEC:"${pkgs.npiperelay}/bin/npiperelay.exe -ei -s //./pipe/openssh-ssh-agent",nofork + ''}"; + }; + #Install = { WantedBy = [ "default.target" ]; }; + }; + }; + + + }; +} \ No newline at end of file