2017-02-21 11 views
1

awesome 4.0では、フローティングウィンドウにタイトルバーを表示する方法はありますか?フローティングウィンドウにのみタイトルバーを表示

ドキュメントを見ると、すぐにオプションがないようです。

指定する。私は動的に浮動と浮動の間でウィンドウを切り替えるときに動作するソリューションを探しています。

答えて

0

変更

{ rule_any = {type = { "normal", "dialog" } 
    }, properties = { titlebars_enabled = true } 
}, 

{ rule_any = {type = { "dialog" } 
    }, properties = { titlebars_enabled = true } 
}, 
+0

これは新しいクライアントにのみ適用され、タイル表示からフローティングに切り替えるクライアントには適用されないようです。 – Juicy

+0

その場合、 'property :: floating'(' client.connec_signal( "property :: floating"、function(c)... end')と 'property :: layout'タグの両方に接続する必要があります(そして目に見えるすべてのクライアントをforeachします)。次に、タイトルバーを切り替えます。ただし、https://github.com/awesomeWM/awesome/issues/1588にヒットしますが、この機能は中断されませんが、クライアントはある時点でタイトルバーを持っていました。 –

0

に少し遅れて、私は、あまりにもこれをやってみたかったと私はそれが主に取り組みました。クライアントがタイトルバーを表示または非表示にすることを期待するすべてのケースをカバーしているわけではありませんが、私のユースケースには十分に近いです。 まず、すべてのクライアントのタイトルバーを無効にする必要があります。そのため、すべてのクライアントに一致するデフォルトルールのプロパティにtitlebars_enabled = falseを追加してください。
次に、クライアントがフローティングになると、タイトルバーを切り替える必要があり、フローティングが停止するとオフに切り替える必要があります。
私はこの小さなヘルパー関数を書いて、コードを明確にしました。 strueの場合は、バーを表示し、そうでない場合は非表示にします。しかし、私たちのケースでは、ウィンドウがタイトルバーを持っていないので、まだ作成されていないキャッチがあります。現在の信号が空の場合は、信号を送信して私たちのために構築します。

--Toggle titlebar on floating status change 
client.connect_signal("property::floating", function(c) 
    setTitlebar(c, c.floating) 
end) 

しかし、唯一の作成された後の状態を変更するクライアントに適用される:

-- Toggle titlebar on or off depending on s. Creates titlebar if it doesn't exist 
local function setTitlebar(client, s) 
    if s then 
     if client.titlebar == nil then 
      client:emit_signal("request::titlebars", "rules", {}) 
     end 
     awful.titlebar.show(client) 
    else 
     awful.titlebar.hide(client) 
    end 
end 

今、私たちは、プロパティの変更をフックすることができます。

-- Hook called when a client spawns 
client.connect_signal("manage", function(c) 
    setTitlebar(c, c.floating or c.first_tag.layout == awful.layout.suit.floating) 
end) 

そして、現在のレイアウトが浮いている場合は、最終的に、クライアントは浮動プロパティが設定されていないので、我々は、追加する必要があります。私たちは、浮動または浮動タグで生まれている新しいクライアント用のフックが必要レイアウト変更のためのフックを使用して、内部のクライアントに小節線を追加します。

-- Show titlebars on tags with the floating layout 
tag.connect_signal("property::layout", function(t) 
    -- New to Lua ? 
    -- pairs iterates on the table and return a key value pair 
    -- I don't need the key here, so I put _ to ignore it 
    for _, c in pairs(t:clients()) do 
     if t.layout == awful.layout.suit.floating then 
      setTitlebar(c, true) 
     else 
      setTitlebar(c, false) 
     end 
    end 
end) 

私はそれは、クライアントが複数回タグ付けされ、それらのタグの一つである場合は、クライアントは、フローティングレイアウトでタグ付けされた、または取得しますケースをカバーしていない、この上の多くの時間を費やす必要はありませんでしたフローティング。

関連する問題