diff --git a/home/common/default.nix b/home/common/default.nix index 6117a29..132c05c 100644 --- a/home/common/default.nix +++ b/home/common/default.nix @@ -13,6 +13,7 @@ ./dnote.nix ../modules/zed ../modules/voxtype + ../modules/elephant ./secrets.nix inputs.hastebin.nixosModules.hm inputs.agenix.homeManagerModules.default @@ -81,12 +82,11 @@ pkgs-unstable.devbox pkgs-unstable.feishin openscad - pkgs-unstable.walker pkgs-unstable.shairport-sync-airplay2 (writeShellScriptBin "pw" '' ${lib.getExe rbw} ls --fields 'id,folder,name' | \ ${lib.getExe gawk} -F '\t' '{print $1 "\t" ($2 == "" ? "" : $2 "/") $3}' | \ - ${lib.getExe pkgs-unstable.walker} -d -l 2 | \ + ${lib.getExe config.services.walker.package} -d -l 2 | \ xargs ${lib.getExe rbw} get "$@" | ${lib.getExe' wl-clipboard "wl-copy"} '') (google-fonts.override { fonts = [ "Tajawal" ]; }) @@ -653,11 +653,37 @@ }; services.gpg-agent = with pkgs; { + + services.walker = { enable = true; - enableSshSupport = true; - pinentry.package = pinentry-gnome3; + package = pkgs.symlinkJoin { + inherit (pkgs-unstable.walker) name meta; + paths = [ pkgs-unstable.walker ]; + nativeBuildInputs = [ pkgs.makeBinaryWrapper ]; + postBuild = '' + wrapProgram $out/bin/walker \ + --prefix PATH : ${lib.makeBinPath [ config.services.elephant.package ]} + ''; + }; + systemd = { + enable = true; + }; + settings = { + providers = { + default = [ + "desktopapplications" + "calc" + "websearch" + "bitwarden" + ]; + }; + }; }; + services.elephant.enable = true; + + systemd.user.services.walker.Install.WantedBy = lib.mkForce [ "graphical-session.target" ]; + systemd.user.services.shairport-sync = { Unit = { Description = "AirPlay audio server"; diff --git a/home/modules/elephant/default.nix b/home/modules/elephant/default.nix new file mode 100644 index 0000000..a01b414 --- /dev/null +++ b/home/modules/elephant/default.nix @@ -0,0 +1,43 @@ +{ + config, + lib, + pkgs, + pkgs-unstable, + ... +}: +let + cfg = config.services.elephant; + wrappedPackage = pkgs.symlinkJoin { + inherit (cfg.package) name meta; + paths = [ cfg.package ]; + nativeBuildInputs = [ pkgs.makeBinaryWrapper ]; + postBuild = '' + wrapProgram $out/bin/elephant \ + --prefix PATH : ${lib.makeBinPath [ pkgs.bash ]} + ''; + }; +in +{ + options.services.elephant = { + enable = lib.mkEnableOption "Enable Elephant"; + package = lib.mkOption { + type = lib.types.package; + default = pkgs-unstable.elephant; + }; + }; + + config = lib.mkIf cfg.enable { + systemd.user.services.elephant = { + Unit = { + Description = "Elephant"; + After = [ "niri.service" ]; + Wants = [ "niri.service" ]; + }; + Service = { + ExecStart = lib.getExe wrappedPackage; + Restart = "on-failure"; + }; + Install.WantedBy = [ "graphical-session.target" ]; + }; + }; +}