dwmでアプリケーションに全画面を強制的に終了させる方法は?

dwmでアプリケーションに全画面を強制的に終了させる方法は?

フルスクリーン設定を持たないアプリがありますが、フルスクリーンを占めて本当に迷惑です。アプリケーションをウィンドウに置き換える方法を探しています。

答え1

dwmタイルを埋めるためにフルスクリーンを作成することが問題の場合は、デフォルトでフロートするようconfig.hに指定できます。

これは以下で行われますrules[]

static const Rule rules[] = {
    /* class      instance    title       tags mask     isfloating   monitor */
    { "Gimp",     NULL,       NULL,       0,            1,           -1 },
    { "vlc",      NULL,       NULL,       0,            1,           -1 },
    { "feh",      NULL,       NULL,       0,            1,           -1 },
    { "Firefox",  NULL,       NULL,       1 << 8,       0,           -1 },
};

私の例に示すように、常にGimpフローティングモード()で開くと、タイル全体を埋めるのを防ぐことができます(そしてウィンドウの残りの部分もスライドできます)。vlcfehisfl

ウィンドウマネージャに、それがどのウィンドウであるかを知らせるために最初の列(クラス)に配置する必要がある名前を見つけるには、このxpropツールを使用できます。例Gimp:

$ xprop

[...]

WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
WM_CLASS(STRING) = "gimp", "Gimp"
WM_ICON_NAME(STRING) = "GNU Image Manipulation Program"
_NET_WM_ICON_NAME(UTF8_STRING) = "GNU Image Manipulation Program"
WM_NAME(STRING) = "GNU Image Manipulation Program"
_NET_WM_NAME(UTF8_STRING) = "GNU Image Manipulation Program"

を実行するとカーソルがトリガーにxpropなり、ターゲットウィンドウ(この場合はウィンドウ)をクリックできますGimp

xprop興味のある出力変数はWM_CLASS(STRING)構造を持ちますWM_CLASS(STRING) = instance, class。上記の例では()がWM_CLASS(STRING) = "gimp", "Gimp"必要です。これはで行うことです。ClassGimprules[]

関連情報