From 9bbebf48a2a34a7c34677217d929f390d40fbece Mon Sep 17 00:00:00 2001 From: 4Lost Date: Mon, 4 Mar 2024 21:13:15 +0100 Subject: [PATCH] rofi & gpg --- configuration.nix | 4 ++-- home/TODOS.md | 11 +++++---- home/programs/default.nix | 3 ++- home/programs/dropbox/default.nix | 6 +---- home/programs/rofi/default.nix | 38 +++++++++++++++++++++++++++++++ home/services/default.nix | 2 +- home/services/gpg-agent.nix | 28 +++++++++++++++++++++++ 7 files changed, 78 insertions(+), 14 deletions(-) create mode 100644 home/programs/rofi/default.nix create mode 100644 home/services/gpg-agent.nix diff --git a/configuration.nix b/configuration.nix index 1656f4f..4937219 100644 --- a/configuration.nix +++ b/configuration.nix @@ -2,7 +2,8 @@ { # Include the results of the hardware scan. - imports = [ ./hardware-configuration.nix ]; + imports = + [ ./hardware-configuration.nix ./home/programs/dropbox/default.nix ]; # Use the systemd-boot EFI boot loader. boot.loader = { @@ -78,7 +79,6 @@ alacritty dmenu - dropbox-cli gnome.nautilus lxqt.lxqt-policykit # provides a default authentication client for policykit ]; diff --git a/home/TODOS.md b/home/TODOS.md index 0213dd2..5ab3bcc 100644 --- a/home/TODOS.md +++ b/home/TODOS.md @@ -1,5 +1,7 @@ # Neues +## Rofi + ## Obsidian - Install? @@ -105,11 +107,6 @@ - Maby nur PC -## Dropbox - -- Installieren -- aufräumen - ## Rofi - Installieren @@ -177,3 +174,7 @@ ## Nautilus - Thumbnailer + +## Dropbox + +- aufräumen diff --git a/home/programs/default.nix b/home/programs/default.nix index e190f06..b1e86e3 100644 --- a/home/programs/default.nix +++ b/home/programs/default.nix @@ -1,8 +1,9 @@ { imports = [ ./alacritty - ./neovim ./git.nix + ./neovim + ./rofi ./wallpaper.nix ./xmonad ./zathura.nix diff --git a/home/programs/dropbox/default.nix b/home/programs/dropbox/default.nix index a78c23d..ccef9fc 100644 --- a/home/programs/dropbox/default.nix +++ b/home/programs/dropbox/default.nix @@ -1,11 +1,7 @@ { pkgs, lib, ... }: { - environment.systemPackages = with pkgs; [ - # dropbox - we don't need this in the environment. systemd unit pulls it in - fq - dropbox-cli - ]; + environment.systemPackages = with pkgs; [ dropbox dropbox-cli ]; networking.firewall = { allowedTCPPorts = [ 17500 ]; diff --git a/home/programs/rofi/default.nix b/home/programs/rofi/default.nix new file mode 100644 index 0000000..da50112 --- /dev/null +++ b/home/programs/rofi/default.nix @@ -0,0 +1,38 @@ +{ pkgs, ... }: + +{ + home.packages = with pkgs; [ oranchelo-icon-theme nerdfonts pass xclip ]; + + xsession.initExtra = "setxkbmap de"; # rofi pass needs this to be set + + programs.rofi = { + enable = true; + terminal = "${pkgs.alacritty}/bin/alacritty"; + theme = ./theme.rafi; + extraConfig = { + mode = "run,drun,window,ssh,network"; + icon-theme = "Oranchelo"; + show-icons = true; + drun-display-format = "{icon} {name}"; + location = 0; + disable-history = false; + hide-scrollbar = true; + display-drun = "  Apps "; + display-run = "  Run "; + display-window = "  Window"; + display-ssh = "  SSH"; + sidebar-mode = true; + }; + pass = { + enable = true; + extraConfig = '' + EDITOR='rofi-sensible-terminal -e vim' + clibpoard_backend=xclip + clip=clipboard + password_length=32 + default_user="$\{ROFI_PASS_DEFAULT_USER-$(whoami)\}" + ''; + }; + }; +} + diff --git a/home/services/default.nix b/home/services/default.nix index d9ed076..4493c83 100644 --- a/home/services/default.nix +++ b/home/services/default.nix @@ -1,5 +1,5 @@ { pkgs, ... }: { - imports = [ ./ssh-agent.nix ]; + imports = [ ./ssh-agent.nix ./gpg-agent.nix ]; } diff --git a/home/services/gpg-agent.nix b/home/services/gpg-agent.nix new file mode 100644 index 0000000..b9921d2 --- /dev/null +++ b/home/services/gpg-agent.nix @@ -0,0 +1,28 @@ +{ pkgs, ... }: + +# See https://github.com/nix-community/home-manager/issues/3095 +let + pinentryRofi = pkgs.writeShellApplication { + name = "pinentry-rofi-with-env"; + text = '' + PATH="$PATH:${pkgs.coreutils}/bin:${pkgs.rofi}/bin" + "${pkgs.pinentry-rofi}/bin/pinentry-rofi" "$@" + ''; + }; +in { + home.packages = with pkgs; [ pinentry-rofi ]; + + programs.gpg.enable = true; + + services.gpg-agent = { + enable = true; + enableZshIntegration = true; + pinentryFlavor = null; + defaultCacheTtl = 7200; # 2h + maxCacheTtl = 28800; # 8h + extraConfig = '' + pinentry-program ${pinentryRofi}/bin/pinentry-rofi-with-env + ''; + }; +} +