为什么sudo pm-suspend在i3平铺窗口管理器中不起作用?

ton*_*nix 9 bash

我对i3平铺窗口管理器的〜/ .i3/config文件有一点问题.我试图将pm-suspend实用程序设置为Mod4(Windows键)+ p(p char)的键绑定.

我在/ usr/bin /中有一个名为suspendandlock的 bash脚本:

#!/bin/bash
sudo pm-suspend | i3lock -i /home/antony/unity-desk.png -p default -d -n 
Run Code Online (Sandbox Code Playgroud)

我之前使用visudo修改了/ etc/sudoers文件,添加了这一行:

%users ALL = NOPASSWD: /usr/sbin/pm-suspend
Run Code Online (Sandbox Code Playgroud)

这样就没有人需要密码来执行pm-suspend实用程序.

然后我有我的i3配置文件,我添加了这个:

bindsym $mod+p exec suspendandlock
Run Code Online (Sandbox Code Playgroud)

其中$ mod是Mod4键.当我输入suspendandlock命令时,脚本在gnome-terminal上运行正常 - >它挂起系统并按预期阻塞屏幕.

但是当我从键盘输入Mod4 + p时,它只会阻止屏幕而不执行pm-suspend.为什么不起作用?

有谁知道我哪里错了?

sto*_*ord 9

看起来OP解决了这个问题,但对于其他需要修复它的人(包括我自己),只需运行:

sudo usermod -aG users `whoami`
which pm-suspend || sudo apt-get install pm-utils #make sure you have pm-suspend command, install it if you don't
Run Code Online (Sandbox Code Playgroud)

运行sudo visudo并添加:

%users ALL = NOPASSWD: /usr/sbin/pm-suspend
Run Code Online (Sandbox Code Playgroud)

然后添加:

bindsym $mod+p exec "sudo pm-suspend | i3lock"
Run Code Online (Sandbox Code Playgroud)

到〜/ .i3/config.运行$ mod + p现在将锁定然后暂停您的计算机.