From c26ee5a448b0b2f509ee704ebffaa665400a2216 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Mon, 15 Jun 2020 19:29:19 +0100 Subject: [PATCH] feat(fun/uggc): Install desktop handler in Nix derivation This actually registers the desktop entry, so xdg-open etc. start working: tazjin@frog /depot> xdg-open 'uggcf://gjvggre.pbz/alnabgrpu/fgnghf/1272363652679524352' Opening in existing browser session. Change-Id: Ia754cb87470fce2f8d3340d1147f3f01b9914858 Reviewed-on: https://cl.tvl.fyi/c/depot/+/387 Reviewed-by: riking --- fun/uggc/default.nix | 29 +++++++++++++++++------------ fun/uggc/uggc.desktop | 2 +- users/tazjin/nixos/frog/default.nix | 5 +++-- 3 files changed, 21 insertions(+), 15 deletions(-) diff --git a/fun/uggc/default.nix b/fun/uggc/default.nix index 398e7b6ff..49160071f 100644 --- a/fun/uggc/default.nix +++ b/fun/uggc/default.nix @@ -1,14 +1,19 @@ -{ depot, ... }@args: +{ depot, pkgs, ... }@args: let - gopkgs = depot.third_party.gopkgs; -in -depot.nix.buildGo.program { - name = "uggc"; - srcs = [ - ./main.go - ]; - deps = [ - gopkgs."github.com".pkg.browser.gopkg - ]; -} + inherit (pkgs) gopkgs; + uggc = depot.nix.buildGo.program { + name = "uggc"; + srcs = [ + ./main.go + ]; + deps = [ + gopkgs."github.com".pkg.browser.gopkg + ]; + }; +in uggc.overrideAttrs(old: { + buildCommand = old.buildCommand + '' + install -D ${./uggc.desktop} $out/share/applications/uggc.desktop + sed "s|@out@|$out|g" -i $out/share/applications/uggc.desktop + ''; +}) diff --git a/fun/uggc/uggc.desktop b/fun/uggc/uggc.desktop index 5203277f4..c4eeff7f5 100644 --- a/fun/uggc/uggc.desktop +++ b/fun/uggc/uggc.desktop @@ -1,7 +1,7 @@ [Desktop Entry] Type=Application Name=Rot13 URL Handler -Exec=uggc %u +Exec=@out@/bin/uggc StartupNotify=false MimeType=x-scheme-handler/uggc; MimeType=x-scheme-handler/uggcf; diff --git a/users/tazjin/nixos/frog/default.nix b/users/tazjin/nixos/frog/default.nix index 72b1c9ed3..5c694380d 100644 --- a/users/tazjin/nixos/frog/default.nix +++ b/users/tazjin/nixos/frog/default.nix @@ -189,9 +189,10 @@ in depot.lib.fix(self: { environment.systemPackages = # programs from the depot (with depot; [ - fun.idual.script - lieer frogEmacs + fun.idual.script + fun.uggc + lieer ops.kontemplate third_party.ffmpeg third_party.git