web-dev-qa-db-ja.com

Awesomeの特定のタグでクライアントを手動でスポーンする方法は?

ルールを使用したクライアントへの自動タグ割り当てはすでにありますが、特定のタグでクライアントを生成する必要がある場合があります。

たとえば、通常、次のルールを使用して、タグ2にブラウザ(dwb)を配置します。

awful.rules.rules = {
    [...]
    { rule = { class = "Dwb" }, properties = { tag = tags[1][2] } },
}

しかし、デバッグセッション用にブラウザーを生成するときは、別のタグ(IDEと一緒に)でブラウザーを生成する必要があります。たとえば、タグ3とします。

コマンドラインからプログラムを起動して、そのクライアントがパラメーターとして指定されたタグで生成されるようにするにはどうすればよいですか?

3
Preuk

関数を作成し、すばらしいクライアントツールを使用して使用できます。

まず、関数を作成し、それをrc.luaファイルに追加します。

function spawn(command, class, tag, test)
local test = test or "class"
local callback
callback = function(c)
    if test == "class" then
        if c.class == class then
            awful.client.movetotag(tag, c)
            client.disconnect_signal("manage", callback)
        end
    elseif test == "instance" then
        if c.instance == class then
            awful.client.movetotag(tag, c)
            client.disconnect_signal("manage", callback)
        end
    elseif test == "name" then
           if string.match(c.name, class) then
               awful.client.movetotag(tag, c)
            client.disconnect_signal("manage", callback)
        end
    end
end
client.connect_signal("manage", callback)
awful.util.spawn_with_Shell(command)
end

次に、すばらしいセッションを再開します(通常はCtrl + Super + rを使用)。

次に、ルールを作成しているかのように、移動するクライアント(ウィンドウ)を識別する方法を選択します。クラスごと、インスタンスごと、または名前ごとに実行できます。 xpropを使用して、Windowsに関する情報を取得します。これも参照してください [〜#〜] faq [〜#〜]

最後に、簡単なbashスクリプトを作成します。

#!/usr/bin/env bash
cat <<EOF | awesome-client
spawn("/usr/bin/firefox", "Firefox", tags[1][1], "class")
EOF

必要な数のスポーンアクションを追加できます。作業するタスクに応じて、必要なすべてのプログラムを起動する複数の起動スクリプトを作成しました。

お役に立てれば。

2
mperrin