X11

限制監視器對某些應用程序的訪問

  • May 3, 2021

我的機器上有兩台顯示器。我想阻止某些應用程序訪問兩個監視器之一,同時仍向其他應用程序授予權限。

我想將應用程序僅限於 HDMI-1-1(檢查xrandr下面的輸出)並阻止它讀取 eDP-1-1。有可能這樣做嗎?

xrandr輸出:

een 0: minimum 8 x 8, current 3840 x 1080, maximum 32767 x 32767
eDP-1-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
  1920x1080     60.06*+  60.01    59.97    59.96    59.93    40.04  
  1680x1050     59.95    59.88  
  1600x1024     60.17  
  1400x1050     59.98  
  1600x900      59.99    59.94    59.95    59.82  
  1280x1024     60.02  
  1440x900      59.89  
  1400x900      59.96    59.88  
  1280x960      60.00  
  1440x810      60.00    59.97  
  1368x768      59.88    59.85  
  1360x768      59.80    59.96  
  1280x800      59.99    59.97    59.81    59.91  
  1152x864      60.00  
  1280x720      60.00    59.99    59.86    59.74  
  1024x768      60.04    60.00  
  960x720       60.00  
  928x696       60.05  
  896x672       60.01  
  1024x576      59.95    59.96    59.90    59.82  
  960x600       59.93    60.00  
  960x540       59.96    59.99    59.63    59.82  
  800x600       60.00    60.32    56.25  
  840x525       60.01    59.88  
  864x486       59.92    59.57  
  800x512       60.17  
  700x525       59.98  
  800x450       59.95    59.82  
  640x512       60.02  
  720x450       59.89  
  700x450       59.96    59.88  
  640x480       60.00    59.94  
  720x405       59.51    58.99  
  684x384       59.88    59.85  
  680x384       59.80    59.96  
  640x400       59.88    59.98  
  576x432       60.06  
  640x360       59.86    59.83    59.84    59.32  
  512x384       60.00  
  512x288       60.00    59.92  
  480x270       59.63    59.82  
  400x300       60.32    56.34  
  432x243       59.92    59.57  
  320x240       60.05  
  360x202       59.51    59.13  
  320x180       59.84    59.32  
HDMI-1-1 connected 1920x1080+1920+0 (normal left inverted right x axis y axis) 527mm x 296mm
  1920x1080     60.00*+  74.97    50.00    59.94  
  1680x1050     59.88  
  1600x900      60.00  
  1280x1024     60.02  
  1440x900      59.90  
  1280x800      59.91  
  1280x720      60.00    50.00    59.94  
  1024x768      60.00  
  800x600       60.32  
  720x576       50.00  
  720x480       60.00    59.94  
  640x480       60.00    59.94  
  720x400       70.08

發行版:PopOS 20.04

在 X.org only session 下這是不可能的,如果你執行兩個 X.org 伺服器(例如,預設情況下 then :1)在它們上執行的程序將無法嗅探另一個 X.org 伺服器(當然不是直接,一個邪惡應用程序可能會使用不同的 DISPLAY 變數重新啟動自身)。

因此,最好的辦法是使用兩個不同的 X.org 會話來擁有兩個不同的使用者帳戶。

我從未使用過 Wayland - 它有更嚴格的政策,但我不知道如何使用它。

這是不可能的。

但是,如果 HDMI-1-1 顯示器已在 eDP-1-1 上打開,您可以使用devilspiedevilspie2編寫一些內容以將視窗移動到 HDMI-1-1 顯示器。

devilspie 和 devilspie2 在後台執行,不斷監視與視窗相關的事件,並且可以使用自己的腳本語言執行操作。

devilspie幾乎是廢棄軟體,並使用自己的類似 lisp 的語言。 devilspie2使用lua作為腳本語言。

或者,您可以使用xdoxdotool和/或wmctrl編寫一個 shell 腳本來執行相同的操作。您可以從 cron 定期執行這樣的腳本,或者它可以在無限循環中執行程式碼主體(強烈建議在每次迭代之間稍作睡眠)。

引用自:https://unix.stackexchange.com/questions/647836