我可以在启动器内设置超级用户吗?

我可以在启动器内设置超级用户吗?

我有一个脚本,每次启动笔记本电脑时都会运行它(以重置屏幕亮度)。我希望能够使用启动器执行此命令:

echo 1500 > /sys/class/backlight/intel_backlight/brightness

不幸的是,为了执行此命令(编辑文件),我需要成为 SU 并输入我的用户名和密码。我知道 UNIX shell 脚本的设计不允许你输入这样的交互式变量,但我希望 Launcher 能有更多功能。

是否可以在启动器中输入超级用户名和密码等交互式参数?如果可以,该怎么做?

答案1

您可以使用 执行此操作gksu。具体来说,让启动器运行以下命令:

gksu "bash -c 'echo 1500 > /sys/class/backlight/intel_backlight/brightness'"

这将使脚本提示您输入密码,然后改变亮度。

另一个更好的解决方案是使用 gnome-settings 守护进程来更改亮度,但这可能有效也可能无效,具体取决于您的硬件。这将允许您更改亮度而无需输入密码。

这样做的命令是:

gdbus call --session --dest org.gnome.SettingsDaemon --object-path /org/gnome/SettingsDaemon/Power --method org.gnome.SettingsDaemon.Power.Screen.SetPercentage 100

您可以100用 0-100 之间的任意百分比亮度替换末尾的。

正如我所说的,这可能并不在所有情况下都有效,并且只能在您登录时使用。

为了使这些程序可以从启动器运行,您需要创建所谓的桌面文件。为此,您应该创建一个名为的新文件,~/.local/share/applications/fullbright.desktop并将以下内容复制粘贴到其中。

[Desktop Entry]
Name=Full Brightness
GenericName=Brightness
Comment=Set Full Brightness
Exec=gdbus call --session --dest org.gnome.SettingsDaemon --object-path /org/gnome/SettingsDaemon/Power --method org.gnome.SettingsDaemon.Power.Screen.SetPercentage 100
Terminal=false
Type=Application
Icon=checkbox
Categories=Utility;

如果 gdbus 命令在您的系统上不起作用,请将其替换为 gksu 命令。

现在您应该能够从启动器使用该名称调用此命令,Full Brightness并将其固定到您的 Dock 上,就像任何其他程序一样。

相关内容