
我的桌面圖示不起作用。當我嘗試使用它時出現錯誤
不受信任的桌面文件 該桌面檔案不受信任,無法啟動。若要啟用啟動右鍵單擊,然後: 啟用“允許啟動”
在以下情況下我沒有收到此“允許啟動”選單項目:
- 我右鍵單擊桌面上的圖標
- 我在 Dolphin 中右鍵單擊其文件
- 我在“文件管理器”中右鍵單擊該文件
因此,我嘗試使用此網頁上的說明從命令列執行此操作:如何在 Ubuntu 18.04 上透過命令列將 .desktop 檔案標記為受信任?。由於我有許多此類不受信任的啟動器鏈接,因此我使用了此命令序列,並獲得了以下響應:
$ chmod u+xrw /home/stephen/Desktop/*.desktop
$ chmod g+xrw /home/stephen/Desktop/*.desktop
$ chmod o+xr /home/stephen/Desktop/*.desktop
$ gio set "/home/stephen/Desktop/*.desktop" "metadata::trusted" yes
gio: Setting attribute metadata::trusted not supported
當我給 gio 一個特定的檔案而不是 * 通配符時,以及當我嘗試以 root 身分執行 gio 時,我遇到了同樣的錯誤。
給予 gio 指令的正確屬性是什麼? 「允許啟動」選單項目應出現在哪些文件瀏覽器中?
我的作業系統是 Ubuntu 22.04 jammy
這是我遇到問題的 .desktop 檔案之一:
[Desktop Entry]
Comment=Powerful yet simple to use screenshot software.
Comment=Powerful yet simple to use screenshot software.
Comment[en_US]=Powerful yet simple to use screenshot software.
Exec=flameshot launcher
GenericName=
GenericName=
GenericName[en_US]=
Icon=flameshot
MimeType=
Name=Flameshot (Snappy Edition)
Name=Flameshot (Snappy Edition)
Path=
StartupNotify=false
Terminal=false
TerminalOptions=
Type=Application
Version=1.0
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-KDE-SubstituteUID=false
X-KDE-Username=
我遵循了ubfan1在2022年9月6日評論中提出的建議。
stephen@stephen:~$ desktop-file-validate /home/stephen/Desktop/Flameshot.desktop
/home/stephen/Desktop/Flameshot.desktop: error: file contains multiple keys named "Comment" in group "Desktop Entry"
/home/stephen/Desktop/Flameshot.desktop: error: file contains multiple keys named "GenericName" in group "Desktop Entry"
/home/stephen/Desktop/Flameshot.desktop: error: file contains multiple keys named "Name" in group "Desktop Entry"
/home/stephen/Desktop/Flameshot.desktop: warning: value "" for key "Path" in group "Desktop Entry" does not look like an absolute path
/home/stephen/Desktop/Flameshot.desktop: warning: key "TerminalOptions" in group "Desktop Entry" is deprecated
Path 鍵應該設定為什麼?我不知道這一點,也因為這只是一個警告,所以我相應地編輯了文件的其餘部分。這是這些編輯的結果:
[Desktop Entry]
Comment=Powerful yet simple to use screenshot software.
Comment[en_US]=Powerful yet simple to use screenshot software.
Exec=flameshot launcher
GenericName=
GenericName[en_US]=
Icon=flameshot
MimeType=
Name=Flameshot (Snappy Edition)
Path=
StartupNotify=false
Terminal=false
Type=Application
Version=1.0
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-Desktop-File-Install-Version=0.26
X-KDE-SubstituteUID=false
X-KDE-Username=
現在我得到這些結果:
stephen@stephen:~$ desktop-file-validate /home/stephen/Desktop/Flameshot.desktop
/home/stephen/Desktop/Flameshot.desktop: warning: value "" for key "Path" in group "Desktop Entry" does not look like an absolute path
stephen@stephen:~$ sudo desktop-file-install /home/stephen/Desktop/Flameshot.desktop
/usr/share/applications/Flameshot.desktop: warning: value "" for key "Path" in group "Desktop Entry" does not look like an absolute path
stephen@stephen:~$ sudo desktop-file-edit /home/stephen/Desktop/Flameshot.desktop
/home/stephen/Desktop/Flameshot.desktop: warning: value "" for key "Path" in group "Desktop Entry" does not look like an absolute path
仍然沒有出現「允許啟動」選單項目。
然後我發現Flameshot.desktop不再可執行。所以我用Dolphin來做到這一點。執行此操作後,我發現使其可執行的行為導致 Flameshot.desktop 的內容恢復到我上面開始的內容。重複的鍵條目被重新引入,我最終回到了起點。
也許路徑鍵警告比我想像的更重要。在我再次嘗試之前,我需要知道將其設定為什麼。任何其他建議也將不勝感激。
我創建了一個電子表格來比較在測試帳戶中執行的“strace gio set”命令的結果,該帳戶是為測試而創建的新臨時帳戶,我可以在其中創建工作桌面圖標,以及斯蒂芬帳戶,這是主要的帳戶,以及在 Ubuntu 安裝期間建立的帳戶,但我無法使用該帳戶。可從以下位置下載:
https://www.mediafire.com/file/xz4dy7280wfx3u8/giosetenablecomparison.ods/file
A列是主帳戶中命令的結果,B列是測試帳戶中命令的結果。直到第 59 行,結果都非常相似。
在史蒂芬帳戶中,輸出在第 59 行結束。
我不知道所有這些輸出意味著什麼。在我看來,史蒂芬帳戶中的某些錯誤導致進程過早結束。這裡有人可以看到出了什麼問題,並提出解決方案。
我遷移過來的舊電腦的作業系統是 Pop!_OS 21.04。我遷移到的新電腦(並遇到此圖示問題)安裝的是 Ubuntu 22.04。當我進行遷移時,我複製了 /opt 中的所有二進位檔案以及 /home 中的所有檔案。透過複製 /opt 中的所有文件,我希望能夠節省自己的時間和精力來再次安裝所有軟體。我知道其他地方有二進位文件,例如 /user/bin 和 /snap。我沒有複製這些,而是打算使用安裝檔案將它們安裝在新電腦上。我知道在安裝這些連結到的應用程式之前,/Desktop 目錄中會有損壞的連結。我認為現在這可能是個錯誤,所有內容都應該從新電腦中的安裝檔案安裝。
請求的命令的結果鋼鐵起子在他的評論中:
stephen@stephen:~$ echo $DBUS_SESSION_BUS_ADDRESS
unix:path=/run/user/1000/bus
stephen@stephen:~$ id -u
1000
答案1
gio set "/home/stephen/Desktop/*.desktop" "metadata::trusted" yes
是不正確的。 3個問題:
你需要使用
dbus-launch
.如果dbus-launch
沒有安裝,請先執行以下操作:sudo apt install dbus-x11
您不能使用通配符。
從 Ubuntu 20.04 開始,它是“true”而不是“yes”。
命令:
dbus-launch gio set /home/stephen/Desktop/{name}.desktop "metadata::trusted" true
(其中{name}需要替換為實際名稱)
答案2
「允許啟動」選單項目沒有出現,因為目錄:「~/Desktop」可供其他人寫入。我必須查找並分析 GNU 原始碼才能找到答案。關鍵是文件中的第 200 行:
/usr/share/gnome-shell/extensions/ding(at)rastersoft.com/fileItemMenu.js"
。
(以 (at) 代替 @)
這是:
if (fileItem.isValidDesktopFile && !this._desktopManager.writableByOthers && !fileItem.writableByOthers && (selectedItemsNum == 1 )) {
由於目錄“~/Desktop”可供其他人寫入,因此術語“!this._desktopManager.writableByOthers”為 false,因此選單項目沒有出現。
「~/Desktop」目錄不能被其他人寫入的權限的要求沒有記錄,但需要記錄。如果是的話,它會節省我很多時間。