From d270d94d67ae8d8a85a7ad35ff748e91644cdb9b Mon Sep 17 00:00:00 2001 From: Malte Brandy Date: Wed, 13 Oct 2021 16:51:32 +0200 Subject: [PATCH] Better Hotkeys --- home-manager/roles/gnome.nix | 5 ++++- nix/sources.json | 6 ++++++ overlays/haskell-dialog/default.nix | 26 ++++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 overlays/haskell-dialog/default.nix diff --git a/home-manager/roles/gnome.nix b/home-manager/roles/gnome.nix index c4861746..4cd07e40 100644 --- a/home-manager/roles/gnome.nix +++ b/home-manager/roles/gnome.nix @@ -1,5 +1,8 @@ { pkgs, lib, ... }: let + hotkeys = { + Firefox = "firefox"; + }; mkTuple = lib.hm.gvariant.mkTuple; statusScript = pkgs.writeHaskellScript { @@ -221,7 +224,7 @@ in "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/hotkeys" = { binding = "space"; - command = "kitty hotkeys"; + command = "kitty ${pkgs.haskell-dialog}/bin/hotkeys ${pkgs.writeText "hotkeys.yaml" (builtins.toJSON hotkeys)}"; name = "Hotkeys"; }; "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/clear-notifications" = diff --git a/nix/sources.json b/nix/sources.json index dbb5a099..eaf71461 100644 --- a/nix/sources.json +++ b/nix/sources.json @@ -1,4 +1,10 @@ { + "haskell-dialog": { + "branch": "main", + "repo": "git:haskell-dialog", + "rev": "66354c1cf519957c5acae1b14a99ba8c941a06c6", + "type": "git" + }, "hexa-nur-packages": { "branch": "master", "description": "My personal NUR repository: [maintainer=@mweinelt] ", diff --git a/overlays/haskell-dialog/default.nix b/overlays/haskell-dialog/default.nix new file mode 100644 index 00000000..f853b0eb --- /dev/null +++ b/overlays/haskell-dialog/default.nix @@ -0,0 +1,26 @@ +final: prev: +let + override = hfinal: hprev: { + relude = hfinal.relude_1_0_0_1; + semialign = hfinal.semialign_1_2; + time-compat = hfinal.time-compat_1_9_6_1; + hashable = hfinal.hashable_1_3_4_1; + yaml = hfinal.callHackageDirect + { + ver = "0.11.7.0"; + pkg = "yaml"; + sha256 = "0mn08dh5h49np5rd8ym7wl3i8nfdj9vgawprcdgrmvz5j59nsp0n"; + } + { }; + aeson = hfinal.callHackageDirect + { + ver = "2.0.1.0"; + pkg = "aeson"; + sha256 = "0nhzbnygj17m4x39mmf8r13xisc0hnkijnrwyqskf8gk276x9dpz"; + } + { }; + }; +in +{ + haskell-dialog = (prev.unstableHaskellPackages.override { overrides = override; }).callCabal2nix "haskell-dialog" prev.sources.haskell-dialog { }; +}