When using XMonad it's really easy to set up custom global keybindings declaratively.
home-manager
lets me write easy little
functions to do this. Previously I had them stuffed away in my report on krohnkite, but they
should be hoisted out; I don't define them in the XMonad module because i used these
in other tiling WMs too and sometimes in krunner…
{ pkgs, ... }:
{
home.packages = [
(pkgs.writeScriptBin "meta-x" ''
#!${pkgs.stdenv.shell}
emacsclient -c --eval "(execute-extended-command nil)"
'')
(pkgs.writeScriptBin "org-journal" ''
#!${pkgs.stdenv.shell}
emacsclient -c --eval "(cce/open-journal)"
'')
(pkgs.writeScriptBin "org-agenda" ''
#!${pkgs.stdenv.shell}
emacsclient -c --eval "(cce/org-agenda)"
'')
(pkgs.writeScriptBin "org-todos" ''
#!${pkgs.stdenv.shell}
emacsclient -c --eval "(cce/org-agenda t)"
'')
(pkgs.writeScriptBin "mastodon-el" ''
#!${pkgs.stdenv.shell}
emacsclient -c --eval "(cce/my-mastodon.el-buffers)"
'')
];
}