From 53d893cde30b11388ba77b904ee9a406c3e879ae Mon Sep 17 00:00:00 2001 From: Arpit Chakladar Date: Thu, 2 Jul 2026 01:31:37 +0530 Subject: Added ente auth configuration - Ente Auth 2FA manager --- modules/programs/enteauth/default.nix | 57 +++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 modules/programs/enteauth/default.nix (limited to 'modules/programs/enteauth') diff --git a/modules/programs/enteauth/default.nix b/modules/programs/enteauth/default.nix new file mode 100644 index 0000000..632b979 --- /dev/null +++ b/modules/programs/enteauth/default.nix @@ -0,0 +1,57 @@ +{ + config, + lib, + pkgs, + ... +}: + +# Ente Auth - end-to-end encrypted authentication (2FA) +let + enteAuthWithKeyring = pkgs.symlinkJoin { + name = "ente-auth-wrapped"; + paths = [ pkgs.ente-auth ]; + buildInputs = [ pkgs.makeWrapper ]; + postBuild = '' + wrapProgram $out/bin/enteauth \ + --prefix PATH : ${ + lib.makeBinPath [ + pkgs.gnome-keyring + pkgs.dbus + ] + } \ + --run "echo 'password' | ${pkgs.gnome-keyring}/bin/gnome-keyring-daemon --unlock --components=secrets" + + rm -rf $out/share/applications/* + + ln -s ${customDesktopItem}/share/applications/* $out/share/applications/ + ''; + }; + + customDesktopItem = pkgs.makeDesktopItem { + name = "enteauth"; + exec = "enteauth"; + icon = "io.ente.auth"; + comment = "End-to-end encrypted 2FA authenticator"; + desktopName = "Ente Auth"; + genericName = "2FA Authenticator"; + categories = [ + "Utility" + "Security" + ]; + terminal = false; + }; +in +{ + options.programs.enteauth = { + enable = lib.mkEnableOption "Enables wrapped ente-auth with automated keyring unlocks and a desktop entry."; + package = lib.mkOption { + type = lib.types.package; + default = enteAuthWithKeyring; + description = "The customized version of ente-auth with a self-unlocking daemon backend."; + }; + }; + + config = lib.mkIf config.programs.enteauth.enable { + home.packages = [ config.programs.enteauth.package ]; + }; +} -- cgit v1.2.3