summaryrefslogtreecommitdiff
path: root/custom/notify-user.nix
diff options
context:
space:
mode:
authorGregor Kleen <pngwjpgh@users.noreply.github.com>2016-07-21 16:42:03 +0200
committerGregor Kleen <pngwjpgh@users.noreply.github.com>2016-07-21 16:42:03 +0200
commitf670428abfce7f2d38358a15a0da22c17943736f (patch)
treef0086d83330e85d7a9fa85847ebcd46d9106270d /custom/notify-user.nix
parentc93c2951a71c3c88806db829a41ae34799d4c84a (diff)
downloadnixos-f670428abfce7f2d38358a15a0da22c17943736f.tar
nixos-f670428abfce7f2d38358a15a0da22c17943736f.tar.gz
nixos-f670428abfce7f2d38358a15a0da22c17943736f.tar.bz2
nixos-f670428abfce7f2d38358a15a0da22c17943736f.tar.xz
nixos-f670428abfce7f2d38358a15a0da22c17943736f.zip
better notify-gkleen
Diffstat (limited to 'custom/notify-user.nix')
-rw-r--r--custom/notify-user.nix29
1 files changed, 29 insertions, 0 deletions
diff --git a/custom/notify-user.nix b/custom/notify-user.nix
new file mode 100644
index 00000000..f7fbc7c0
--- /dev/null
+++ b/custom/notify-user.nix
@@ -0,0 +1,29 @@
1{ stdenv, writeTextFile
2, ghcWithPackages
3, user ? "gkleen"
4, libnotify
5}:
6
7stdenv.mkDerivation {
8 name = ''notify-${user}'';
9 src = writeTextFile { name = ''notify-${user}.hs''; text = ''
10 import Control.Shell
11 import System.FilePath.Glob (glob)
12
13 import Data.List (isPrefixOf)
14
15 main = shell_ $ do
16 (envFile:_) <- liftIO $ glob "/home/${user}/.dbus/session-bus/*-0"
17 sessionAddr <- snd . break (== '=') . head . filter ("DBUS_SESSION_BUS_ADDRESS=" `isPrefixOf`) . lines <$> input envFile
18 env <- getShellEnv
19 withEnv "DBUS_SESSION_BUS_ADDRESS" sessionAddr $ run "${libnotify}/bin/notify-send" cmdline
20 ''; };
21 phases = [ "buildPhase" "installPhase" ];
22 buildPhase = ''
23 ${ghcWithPackages (p: with p; [ shellmate Glob ])}/bin/ghc -odir . -hidir . $src -o notify-${user}
24 '';
25 installPhase = ''
26 mkdir -p $out/bin
27 cp notify-${user} $out/bin
28 '';
29}