aboutsummaryrefslogtreecommitdiff
path: root/.config
diff options
context:
space:
mode:
authortdro <tdro@users.noreply.github.com>2020-12-05 04:33:48 -0500
committertdro <tdro@users.noreply.github.com>2020-12-05 04:35:40 -0500
commit2038dc9f3e44b6bbbebda7503dc1a6eeee1d7b97 (patch)
tree58d46bdf1bb9c32cdb7a8e6aa836072496fc5756 /.config
parentea0d4733ad73f3e0d4d00fa1d18c3dfa1935e70e (diff)
downloaddotfiles-2038dc9f3e44b6bbbebda7503dc1a6eeee1d7b97.tar.gz
dotfiles-2038dc9f3e44b6bbbebda7503dc1a6eeee1d7b97.tar.bz2
dotfiles-2038dc9f3e44b6bbbebda7503dc1a6eeee1d7b97.zip
.config/systemd/user: Add idle event X11 hook
Diffstat (limited to '.config')
-rw-r--r--.config/nixpkgs/config.nix1
-rw-r--r--.config/nixpkgs/packages/xprintidle/default.nix27
-rw-r--r--.config/systemd/user/events-idle.service14
3 files changed, 42 insertions, 0 deletions
diff --git a/.config/nixpkgs/config.nix b/.config/nixpkgs/config.nix
index 684eba2..4963689 100644
--- a/.config/nixpkgs/config.nix
+++ b/.config/nixpkgs/config.nix
@@ -168,6 +168,7 @@ in
Xorg = pkgs.buildEnv {
name = "xorg";
paths = [
+ (callPackage ./packages/xprintidle/default.nix {})
xorg.xauth
xorg.xev
xorg.xf86inputevdev
diff --git a/.config/nixpkgs/packages/xprintidle/default.nix b/.config/nixpkgs/packages/xprintidle/default.nix
new file mode 100644
index 0000000..975b464
--- /dev/null
+++ b/.config/nixpkgs/packages/xprintidle/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, libX11, libXScrnSaver, libXext, meson, pkg-config
+, ninja }:
+
+stdenv.mkDerivation rec {
+ pname = "xprintidle";
+ version = "0.2.4";
+
+ src = fetchFromGitHub {
+ owner = "g0hl1n";
+ repo = pname;
+ rev = version;
+ sha256 = "10na3ymzfhpq800wsyd23m57ngz69nn5i10c7p9iya8hzi7cf20a";
+ };
+
+ nativeBuildInputs = [ meson pkg-config ninja ];
+
+ buildInputs = [ libX11 libXScrnSaver libXext ];
+
+ meta = {
+ inherit version;
+ description = "A command-line tool to print idle time from libXss";
+ homepage = "https://github.com/g0hl1n/xprintidle";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [ stdenv.lib.maintainers.raskin ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/.config/systemd/user/events-idle.service b/.config/systemd/user/events-idle.service
new file mode 100644
index 0000000..360a754
--- /dev/null
+++ b/.config/systemd/user/events-idle.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Execute events on X11 idle
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/env sh -c 'while true; do sleep 3 && [ "$(xprintidle)" -gt 60000 ] && %h/.local/bin/scripts/events-idle; done'
+Restart=always
+RestartSec=5s
+SyslogIdentifier=events-idle
+CPUQuota=60%
+IOWeight=60
+
+[Install]
+WantedBy=default.target