如何使視窗在不活動時保持不透明?
我將 Xfce 設置為在沒有滑鼠焦點時使所有視窗半透明。如何將特定視窗設置為在不活動時保持不透明?Xfce 沒有更改特定視窗設置的選項(據我所知)。
我之前找到了解決方案,但我再也找不到了。我使用命令行程序在我想要的視窗上設置特定的視窗管理器提示,從而阻止視窗變得透明。但我不記得我使用的程序或視窗管理器提示的名稱。我認為提示名稱的一部分可能是
LOCKED
.例如,這對於防止 GIMP 視窗在失去滑鼠焦點時變得透明很有用。
我有
transset-df
,但它沒有辦法強制視窗在不活動時保持相同的透明度。
使用Devilspie2將視窗類型設置為“實用程序”以用於選擇性應用程序。此視窗類型不受 Xfce 環境中“非活動視窗的不透明度”的影響。
初步設置
從儲存庫(在Debian和Ubuntu
$HOME/.config/devilspie2
儲存庫中可用)安裝 Devilspie2,然後使用以下內容創建一個新的配置文件。debug_print("Window Name: " .. get_window_name()); debug_print("Application name: " .. get_application_name()); if (get_application_name()=="xfce4-dict") then set_window_type "_NET_WM_WINDOW_TYPE_UTILITY"; end
將文件另存為
opaque.lua
. 文件名可以是任何名稱,但它必須具有.lua
文件副檔名才能與 Devilspie2 一起使用。初步測試
在調試模式下執行 Devilspie2,您將看到如下所示。
$ devilspie2 -d Running devilspie2 in debug mode. Using scripts from folder: /home/USERNAME/.config/devilspie2 ------------ List of LUA files handling "window_open" events in folder: /home/USERNAME/.config/devilspie2/opaque.lua List of LUA files handling "window_close" events in folder: ------------ Window Name: Desktop Application name: xfdesktop Window Name: xfce4-panel Application name: xfce4-panel Window Name: Application Finder Application name: xfrun4 Window Name: Dictionary Application name: xfce4-dict
以下螢幕截圖顯示了執行 Devilspie2 之前和之後的 Dictionary 非活動視窗。請注意,Dictionary(底部)的不透明度發生了變化,但 Xfce Terminal 在兩個視窗都處於非活動狀態時保持不那麼不透明(左側)。
Dictionary 的非活動視窗仍然完全不透明,因為相對於配置文件,Devilspie2 已將視窗類型更改為“Utility”。
修改設置
debug_print
創建的配置文件包含以顯示“視窗名稱:…應用程序名稱:…”的調試消息開頭的前兩行。這些行允許 Devilspie2 為目前執行的應用程序和隨後執行的應用程序顯示各自的名稱。根據調試消息,使用者應遵循以下步驟:
- 確定選擇的應用程序,該應用程序在不活動時需要完全不透明。查找包含它的行
Application name:
並複制該值。/home/USERNAME/.config/devilspie2/opaque.lua
使用文本編輯器打開相同的配置文件,然後替換xfce4-dict
為選擇的應用程序。- 保存文件。
- 退出並再次執行 Devilspie2。
請注意,USERNAME 指的是目前使用者名。
修改後的配置現在將生效。如果選擇的應用程序已經在執行,則來回切換視窗以在視窗再次變為非活動狀態時查看有效更改。
持久設置:Devilspie2 必須在後台執行,此解決方案才能對每個會話有效。要使其持久化,
devilspie2
請在“會話和啟動”中的“應用程序自動啟動”選項卡下添加。什麼窗戶類型
最初,我在玩 Devilspie2 時通過反複試驗找到了這個解決方案。後來我嘗試執行 GIMP 2.8 並註意到主視窗在不活動時變得不那麼不透明,但其他兩個浮動視窗仍然完全不透明。
然後我通過執行確認了視窗類型
xwininfo
,然後點擊其中一個浮動視窗,以列印視窗管理器提示。$ xwininfo -wm xwininfo: Please select the window about which you would like information by clicking the mouse in that window. xwininfo: Window id: 0x2a00686 "Layers - Brushes" Window manager hints: Client accepts input or input focus: Yes Initial state is Normal State Displayed on desktop 1 Window type: Utility Window state: Skip Pager Skip Taskbar Process id: 5262 on host XXXXX Frame extents: 1, 1, 22, 4
還有賓果遊戲,視窗類型確實是“實用程序”!
小問題:“實用程序”視窗類型有一種不同的行為,即應用程序視窗將不再出現在工作列中。
Alt
使用者可以通過+Tab
鍵而不是工作列繼續導航。這種行為對於“實用程序”視窗類型是正常的,對於浮動視窗(即 GIMP 中的停靠欄)可以觀察到相同的情況。
如果使用者覺得這種行為是不可取的,那麼改變視窗類型可能是一個有缺點的解決方案。另一方面,該行為是一個微不足道的問題,同時能夠在不活動時保持選擇性視窗不透明。
測試在 Xubuntu 14.04 (Xfce 4.10) 中工作,使用 Devilspie2 v0.31。