在 Linux Mint 14 中,从启动应用程序运行脚本不起作用,但从终端运行脚本可以

在 Linux Mint 14 中,从启动应用程序运行脚本不起作用,但从终端运行脚本可以

我创建了一个脚本来在会话开始时设置我的 Intuos 平板电脑:

#!/bin/sh

xsetwacom set "Wacom Intuos4 4x6 pad" AbsWheelUp "key ctrl minus";
xsetwacom set "Wacom Intuos4 4x6 pad" AbsWheelDown "key ctrl plus";
xsetwacom set "Wacom Intuos4 4x6 pad" Button 1 "key ctrl 0"; #touchring button

xsetwacom set "Wacom Intuos4 4x6 stylus" Button 2 3;
xsetwacom set "Wacom Intuos4 4x6 stylus" Button 3 2;
xsetwacom set "Wacom Intuos4 4x6 stylus" TabletPCButton on;

我已将其保存为~/bin/.wacomsetup.sh正在运行chmod a+x ~/bin/.wacomsetup.sh。检查属性,显示它被允许作为程序运行,但我的用户帐户只能读取/写入该文件。

我已经确认当我使用从终端运行它时它可以工作sh ~/bin/.wacomsetup.sh,但是当我将路径作为命令条目放在启动应用程序中的新条目中时(这是特定于 Cinnamon 的吗?),它不会在登录/重新启动后运行脚本(我必须手动运行它)。

编辑启动程序:
名称:Setup Wacom Intuos
命令:sh ~/bin/.wacomsetup.sh
注释:ksdfk

我是否需要向脚本应用不同的权限才能以这种方式在启动时运行?

谢谢
(如果有更好的标签,如果有人可以更恰当地重新标记这个问题,我将不胜感激。)

答案1

可以尝试以下几件事:

  1. 将启动应用程序中路径中的“~”替换为你的主文件夹的绝对路径(例如/home/whateveryourusernameis

  2. 删除sh路径中的,因为它不是必需的;只要脚本是可执行的(在 DACL 中为您设置了“x”位),#!/bin/sh脚本开始时就会检测到它是一个 shell 脚本并自动启动 shell 解释器来执行命令。

  3. 尝试将脚本移动到/usr/bin,使其世界可读和可执行,并将Command:启动应用程序中的设置为wacomsetup.sh。虽然我怀疑这一步是否必要,因为启动应用程序在您登录后在您的用户帐户下执行,并且 Xorg 应该已经启动了……

  4. 只是为了确保问题不是脚本运行但由于某种原因,命令无法执行:在脚本顶部的行下#!/bin/sh,尝试添加:( echo scripted > ~/scripted如果您已经有同名文件用于其他用途,请更改“脚本”部分)。然后确保该文件不存在,然后注销/登录并查看它是否写入该文件。如果没有,则脚本甚至没有运行。如果您确实看到该文件,则脚本正在运行,但调用xsetwacom失败。

答案2

我不确定您说的“启动应用程序”是什么意思。我猜想它是一个 GUI 前端。您在哪里找到它的?

无论如何,您是否尝试过向 中添加新的 .desktop 文件~/.config/autostart?它应该是这样的:

[Desktop Entry]
Name=wacomsetup
Type=Application
Exec=/home/your_user/bin/.wacomsetup.sh
X-GNOME-Autostart-enabled=true
Comment=Blah blah
Hidden=false

例如,将其另存为,wacomsetup.desktop然后注销并重新登录。

相关内容