在 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.shrunning chmod a+x ~/bin/.wacomsetup.sh。檢查屬性,顯示它可以作為程式運行,但我的使用者帳戶只能讀取/寫入該檔案。

我已經確認當我使用 從終端運行它時它可以工作sh ~/bin/.wacomsetup.sh,但是當我將路徑作為啟動應用程式中的新條目中的命令條目時(這是特定於Cinnamon 的嗎?),它在登入後不會運行腳本/restarting(我必須手動運行它)。

編輯啟動程式:
名稱: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然後登出並重新登入。

相關內容