#idle #utility #inhibit

app ala-lape

代表他人阻止闲置

2 个不稳定版本

0.2.0 2024 年 7 月 12 日
0.1.0 2024 年 6 月 19 日

#2 in #idle

Download history 141/week @ 2024-06-18 1/week @ 2024-06-25 2/week @ 2024-07-02 93/week @ 2024-07-09 5/week @ 2024-07-16 8/week @ 2024-07-23

每月 106 次下载

EUPL-1.2

44KB
1K SLoC

ala lape

不睡眠

Build status Docs: CLI Docs: Config Crates.io release

什么是

一个小工具,可以帮助防止计算机在积极使用时进入闲置状态,这可能对桌面环境不可见。与其他许多闲置阻止程序不同,这个工具不依赖于创建 Wayland 表面。它完全不依赖于 Wayland,也可以与 XOrg 一起工作。

如果你在游戏中玩耍时,发现自己在游戏手柄上疯狂按键,结果计算机因为不识别游戏手柄输入为活动而进入睡眠状态,那么这个工具就是为你准备的。

如何

ala-lape 监控游戏手柄,并在有活动时阻止闲置(和/或支持的通知守护进程的通知)。它还可以监控进程的存在,并在选择进程存在时执行阻止。

闲置阻止是通过在闲置上获取一个 阻止器锁 来实现的,因此需要 systemd,但不需要依赖于 Wayland。

通知阻止取决于使用的守护进程 - 有关详情,请参阅文档

为什么

主要是因为修复这个问题(游戏手柄输入不被视为活动)是一个已经存在超过十年的问题,但仍然没有解决,因为它是一个难题。所以这是一个外部工具,可以完成这项工作。它通过不依赖于 Wayland 来完成这项工作,因为通过 Wayland 做这件事并没有与我的首选合成器(niri)一起工作,而且我根本不知道如何调试它,更不用说修复它了。

这是一个权宜之计,并且可以完成这项工作。

构建

cargo install ala-lape

或直接从此仓库的检出

cargo install --path .

NixOS

仓库中包含一个 flake,可用于 Home Manager,flake 也可以直接运行。

nix run git+https://git.madhouse-project.org/algernon/ala-lape.git
Home Manager 示例
{
  inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
  inputs.ala-lape = {
    url = "git+https://git.madhouse-project.org/algernon/ala-lape.git";
    inputs.nixpkgs.follows = "nixpkgs";
  };
  inputs.hm = {
    url = "github:nix-community/home-manager";
    inputs.nixpkgs.follows = "nixpkgs";
  };

  outputs = inputs: {
    homeManagerConfigurations."USER@HOSTNAME" = inputs.hm.lib.homeManagerConfiguration {
      pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux;
      modules = [
        inputs.ala-lape.homeManagerModules.default
        {
          services.ala-lape = {
            enable = true;
            package = inputs.ala-lape;
            config = {
              inhibitors.notifications.swaync.enable = true;
              limits = {
                poll_frequency = "30s";
                activity_timeout = "30s";
                event_threshold = 6;
              };
              gamepad = [
                { name = "X-Box 360"; }
              ];
              process = [
                { name = "some-program"; }
              ];
            };
          };
        }
      ];
    };
  };
}

依赖关系

~20–34MB
~549K SLoC