6

同じレイアウトを使用しながら、タイル化されていないウィンドウから境界線を削除し (最大化されているか、タグに割り当てられている単一のウィンドウに関係なく)、タイル化されたらすぐに境界線を追加したいと思います。

私はこの解決策を試しました(client.add_signalをclient.connect_signalに変更して):http://blog.lazut.in/2012/11/awesome-wm-remove-border-from-maximized.html

client.connect_signal("focus",
     function(c)
        if c.maximized_horizontal == true and c.maximized_vertical == true then
           c.border_width = "0"
           c.border_color = beautiful.border_focus
        else
           c.border_width = beautiful.border_width
           c.border_color = beautiful.border_focus
        end
     end)

しかし、それはいくつかの最大化されたウィンドウでのみ機能し、削除した境界線 (たとえば、シナプス ランチャー) を awal.rules.rules のプロパティを介して上書きしました。

関数が公式の素晴らしい API ドキュメントにリストされているのを見ましたがtiled(screen)、それで何かできるでしょうか? 私はまだAwesome WMに慣れていないので、少し助けていただければ幸いです。

4

3 に答える 3

3

これは、同じ結果を得るために rc.lua にあるものです。

for s = 1, screen.count() do
    screen[s]:connect_signal("arrange", function ()
        local clients = awful.client.visible(s)
        local layout  = awful.layout.getname(awful.layout.get(s))

        -- No borders with only one visible client or in maximized layout
        if #clients > 1 and layout ~= "max" then
            for _, c in pairs(clients) do -- Floaters always have borders
                if not awful.rules.match(c, {class = "Synapse"}) and awful.client.floating.get(c) or layout == "floating" then                                     
                    c.border_width = beautiful.border_width
                    c.border_color = beautiful.border_focus
                end
            end
        end
    end)
end

if not awful.rules.match(c, {class = "Synapse"})...ご指定のシナプスランチャーケースを処理する条件を追加しました。しかし、それはすでに他の条件によってカバーされている可能性があります (ランチャーはすでに浮いているはずなので、次の条件では境界を取得できません)

于 2015-06-09T23:35:49.033 に答える