diff --git a/pkgs/caffeinated/default.nix b/pkgs/caffeinated/default.nix new file mode 100644 index 0000000..2545a5c --- /dev/null +++ b/pkgs/caffeinated/default.nix @@ -0,0 +1,51 @@ +{ + stdenv, + lib, + fetchFromGitHub, + + pkgconf, + pkg-config, + wayland-scanner, + + systemd, + libbsd, + wayland, + wayland-protocols, +}: + +stdenv.mkDerivation { + pname = "caffeinated"; + version = "2022-12-08"; + + src = fetchFromGitHub { + owner = "electrickite"; + repo = "caffeinated"; + rev = "5a8eff054bdce225a19cf3ab785dc1bbc9bd3265"; + hash = "sha256-X1w/YWljcwb5ZH8Nt92CDhPU/yqBLH3lBS7yVJUeyzY="; + }; + + nativeBuildInputs = [ + pkgconf + pkg-config + wayland-scanner + ]; + + buildInputs = [ + systemd + libbsd + wayland + wayland-protocols + ]; + + makeFlags = [ "WAYLAND=1" ]; + + installFlags = [ "PREFIX=$(out)" ]; + + meta = { + description = "Utility to prevent the system from entering an idle state"; + homepage = "https://github.com/electrickite/caffeinated"; + license = lib.licenses.mit; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ lelgenio ]; + }; +} diff --git a/pkgs/default.nix b/pkgs/default.nix index b702886..abb2bb5 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -3,6 +3,7 @@ { pkgs, inputs }: rec { + caffeinated = pkgs.callPackage ./caffeinated { }; cargo-checkmate = pkgs.callPackage ./cargo-checkmate.nix { }; lipsum = pkgs.callPackage ./lipsum.nix { }; emmet-cli = pkgs.callPackage ./emmet-cli.nix { }; diff --git a/scripts/_sway_idle_toggle b/scripts/_sway_idle_toggle deleted file mode 100755 index e77952c..0000000 --- a/scripts/_sway_idle_toggle +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh - -swayidlectl() { - systemctl --user $1 swayidle.service -} - -if swayidlectl status > /dev/null; then - swayidlectl stop -else - swayidlectl start -fi diff --git a/scripts/default.nix b/scripts/default.nix index 9b0b728..3003685 100644 --- a/scripts/default.nix +++ b/scripts/default.nix @@ -44,7 +44,6 @@ ]; _diffr = [ diffr ]; _thunar-terminal = [ terminal ]; - _sway_idle_toggle = [ swayidle ]; kak-pager = [ fish _diffr diff --git a/user/sway/default.nix b/user/sway/default.nix index 5fbd379..bc53b36 100644 --- a/user/sway/default.nix +++ b/user/sway/default.nix @@ -154,6 +154,7 @@ in wl-clipboard wtype wl-crosshair + caffeinated grim satty diff --git a/user/sway/sway-binds.nix b/user/sway/sway-binds.nix index ae71cf4..3d61b4e 100644 --- a/user/sway/sway-binds.nix +++ b/user/sway/sway-binds.nix @@ -19,7 +19,7 @@ let ''; _suspend = pkgs.writeShellScriptBin "_suspend" '' ${pkgs.sway}/bin/swaymsg mode default - systemctl --user start swayidle.service + pkill caffeinated || true systemctl suspend ''; @@ -143,7 +143,7 @@ let system_binds = { "--locked Ctrl+${mod}+z" = "exec ${_suspend}/bin/_suspend"; - "${mod}+Alt+c" = "exec ${pkgs._sway_idle_toggle}/bin/_sway_idle_toggle"; + "${mod}+Alt+c" = "exec pkill caffeinated || exec caffeinated"; }; screenshot_binds = { diff --git a/user/waybar/default.nix b/user/waybar/default.nix index 5af72bc..696f062 100644 --- a/user/waybar/default.nix +++ b/user/waybar/default.nix @@ -3,12 +3,10 @@ osConfig, pkgs, lib, - font, ... }: let inherit (config.my) - key theme accent font @@ -170,8 +168,8 @@ in }; "custom/caffeine" = { format = "{}"; - exec = "systemctl --user status swayidle > /dev/null && echo 󰒲 || echo 󰒳"; - on-click = "${pkgs._sway_idle_toggle}/bin/_sway_idle_toggle"; + exec = "pgrep caffeinated > /dev/null && echo '󰒳' || echo '󰒲' "; + on-click = "pkill caffeinated || exec caffeinated"; interval = 1; tooltip = false; };