fix dock autohide, fix titlebar beeing empty, added toggle floating(stays after reboot)
This commit is contained in:
@@ -181,33 +181,61 @@ return function(screen, programs)
|
|||||||
}
|
}
|
||||||
|
|
||||||
local function check_for_dock_hide(s)
|
local function check_for_dock_hide(s)
|
||||||
if #s:get_clients() < 1 then
|
local naughty = require("naughty")
|
||||||
|
if #s.selected_tag:clients() < 1 then
|
||||||
dock.visible = true
|
dock.visible = true
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
if s == mouse.screen then
|
if s == mouse.screen then
|
||||||
if mouse.current_widget then
|
--[[ if mouse.current_widget then
|
||||||
if tostring(mouse.current_widget):match("fake") then
|
if tostring(mouse.current_widget):match("fake") then
|
||||||
dock.visible = true
|
dock.visible = true
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
end
|
end ]]
|
||||||
for j, c in ipairs(screen.selected_tag:clients()) do
|
local visible = false
|
||||||
|
for j, c in ipairs(s.selected_tag:clients()) do
|
||||||
|
|
||||||
|
--naughty.notify({ title = tostring(c.class) })
|
||||||
|
if c.maximized or c.fullscreen then
|
||||||
|
dock.visible = false
|
||||||
|
return
|
||||||
|
end
|
||||||
local y = c:geometry().y
|
local y = c:geometry().y
|
||||||
local h = c.height
|
local h = c.height
|
||||||
if (y + h) >= screen.geometry.height - user_vars.dock_icon_size - 35 then
|
if (y + h) >= s.geometry.height - user_vars.dock_icon_size - 35 then
|
||||||
dock.visible = false
|
dock.visible = false
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
dock.visible = true
|
dock.visible = true
|
||||||
return
|
|
||||||
end
|
end
|
||||||
|
--[[ if visible then
|
||||||
|
dock.visible = visible
|
||||||
|
return
|
||||||
|
end ]]
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
dock.visible = false
|
dock.visible = false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local dock_intelligent_hide = gears.timer {
|
||||||
|
timeout = 1,
|
||||||
|
autostart = true,
|
||||||
|
call_now = true,
|
||||||
|
callback = function()
|
||||||
|
check_for_dock_hide(screen)
|
||||||
|
end
|
||||||
|
}
|
||||||
|
|
||||||
|
fakedock:connect_signal(
|
||||||
|
"mouse::enter",
|
||||||
|
function()
|
||||||
|
dock_intelligent_hide:stop()
|
||||||
|
dock.visible = true
|
||||||
|
end
|
||||||
|
)
|
||||||
|
|
||||||
client.connect_signal(
|
client.connect_signal(
|
||||||
"manage",
|
"manage",
|
||||||
function()
|
function()
|
||||||
@@ -244,15 +272,6 @@ return function(screen, programs)
|
|||||||
end
|
end
|
||||||
)
|
)
|
||||||
|
|
||||||
local dock_intelligent_hide = gears.timer {
|
|
||||||
timeout = 1,
|
|
||||||
autostart = true,
|
|
||||||
call_now = true,
|
|
||||||
callback = function()
|
|
||||||
check_for_dock_hide(screen)
|
|
||||||
end
|
|
||||||
}
|
|
||||||
|
|
||||||
dock:connect_signal(
|
dock:connect_signal(
|
||||||
"mouse::enter",
|
"mouse::enter",
|
||||||
function()
|
function()
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
local gears = require("gears")
|
local gears = require("gears")
|
||||||
local awful = require("awful")
|
local awful = require("awful")
|
||||||
local hotkeys_popup = require("awful.hotkeys_popup")
|
local hotkeys_popup = require("awful.hotkeys_popup")
|
||||||
|
local ruled = require("ruled")
|
||||||
|
|
||||||
local modkey = user_vars.modkey
|
local modkey = user_vars.modkey
|
||||||
|
|
||||||
@@ -309,5 +310,75 @@ return gears.table.join(
|
|||||||
awesome.emit_signal("kblayout::toggle")
|
awesome.emit_signal("kblayout::toggle")
|
||||||
end,
|
end,
|
||||||
{ description = "Toggle keyboard layout", group = "System" }
|
{ description = "Toggle keyboard layout", group = "System" }
|
||||||
|
),
|
||||||
|
awful.key(
|
||||||
|
{ modkey },
|
||||||
|
"#22",
|
||||||
|
function()
|
||||||
|
awful.spawn.easy_async_with_shell(
|
||||||
|
[[xprop | grep WM_CLASS | awk '{gsub(/"/, "", $4); print $4}']],
|
||||||
|
function(stdout)
|
||||||
|
if stdout then
|
||||||
|
ruled.client.append_rule {
|
||||||
|
rule = { class = stdout:gsub("\n", "") },
|
||||||
|
properties = {
|
||||||
|
floating = true
|
||||||
|
},
|
||||||
|
}
|
||||||
|
awful.spawn.easy_async_with_shell(
|
||||||
|
"cat ~/.config/awesome/src/assets/rules.txt",
|
||||||
|
function(stdout2)
|
||||||
|
for class in stdout2:gmatch("%a+") do
|
||||||
|
if class:match(stdout:gsub("\n", "")) then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
awful.spawn.with_shell("echo -n '" .. stdout:gsub("\n", "") .. ";' >> ~/.config/awesome/src/assets/rules.txt")
|
||||||
|
local c = mouse.screen.selected_tag:clients()
|
||||||
|
for j, client in ipairs(c) do
|
||||||
|
if client.class:match(stdout:gsub("\n", "")) then
|
||||||
|
client.floating = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
)
|
||||||
|
end
|
||||||
|
),
|
||||||
|
awful.key(
|
||||||
|
{ modkey, "Shift" },
|
||||||
|
"#22",
|
||||||
|
function()
|
||||||
|
awful.spawn.easy_async_with_shell(
|
||||||
|
[[xprop | grep WM_CLASS | awk '{gsub(/"/, "", $4); print $4}']],
|
||||||
|
function(stdout)
|
||||||
|
if stdout then
|
||||||
|
ruled.client.append_rule {
|
||||||
|
rule = { class = stdout:gsub("\n", "") },
|
||||||
|
properties = {
|
||||||
|
floating = false
|
||||||
|
},
|
||||||
|
}
|
||||||
|
awful.spawn.easy_async_with_shell(
|
||||||
|
[[
|
||||||
|
REMOVE="]] .. stdout:gsub("\n", "") .. [[;"
|
||||||
|
STR=$(cat ~/.config/awesome/src/assets/rules.txt)
|
||||||
|
echo -n ${STR//$REMOVE/} > ~/.config/awesome/src/assets/rules.txt
|
||||||
|
]],
|
||||||
|
function(stdout2)
|
||||||
|
local c = mouse.screen.selected_tag:clients()
|
||||||
|
for j, client in ipairs(c) do
|
||||||
|
if client.class:match(stdout:gsub("\n", "")) then
|
||||||
|
client.floating = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
)
|
||||||
|
end
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
0
awesome/src/assets/rules.txt
Normal file
0
awesome/src/assets/rules.txt
Normal file
Binary file not shown.
|
Before Width: | Height: | Size: 245 KiB After Width: | Height: | Size: 292 KiB |
@@ -5,6 +5,7 @@
|
|||||||
-- Awesome Libs
|
-- Awesome Libs
|
||||||
local awful = require("awful")
|
local awful = require("awful")
|
||||||
local beautiful = require("beautiful")
|
local beautiful = require("beautiful")
|
||||||
|
local ruled = require("ruled")
|
||||||
|
|
||||||
awful.rules.rules = {
|
awful.rules.rules = {
|
||||||
{
|
{
|
||||||
@@ -48,3 +49,17 @@ awful.rules.rules = {
|
|||||||
properties = { titlebars_enabled = true }
|
properties = { titlebars_enabled = true }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
awful.spawn.easy_async_with_shell(
|
||||||
|
"cat ~/.config/awesome/src/assets/rules.txt",
|
||||||
|
function(stdout)
|
||||||
|
for class in stdout:gmatch("%a+") do
|
||||||
|
ruled.client.append_rule {
|
||||||
|
rule = { class = class },
|
||||||
|
properties = {
|
||||||
|
floating = true
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
)
|
||||||
|
|||||||
@@ -236,15 +236,11 @@ client.connect_signal(
|
|||||||
client.connect_signal(
|
client.connect_signal(
|
||||||
'property::floating',
|
'property::floating',
|
||||||
function(c)
|
function(c)
|
||||||
if c.floating and not c.maximized then
|
if c.floating or (c.floating and c.maximized) then
|
||||||
if c.class == "Steam" then
|
awful.titlebar.show(c, 'left')
|
||||||
awful.titlebar.hide(c, 'left')
|
awful.titlebar.hide(c, 'right')
|
||||||
awful.titlebar.hide(c, 'right')
|
awful.titlebar.hide(c, 'top')
|
||||||
awful.titlebar.hide(c, 'top')
|
awful.titlebar.hide(c, 'bottom')
|
||||||
awful.titlebar.hide(c, 'bottom')
|
|
||||||
else
|
|
||||||
awful.titlebar.show(c, 'left')
|
|
||||||
end
|
|
||||||
else
|
else
|
||||||
awful.titlebar.hide(c, 'left')
|
awful.titlebar.hide(c, 'left')
|
||||||
awful.titlebar.hide(c, 'right')
|
awful.titlebar.hide(c, 'right')
|
||||||
|
|||||||
@@ -83,8 +83,8 @@ user_vars = {
|
|||||||
{ "Thunderbird", "thunderbird", "Thunderbird" },
|
{ "Thunderbird", "thunderbird", "Thunderbird" },
|
||||||
{ "Mattermost", "mattermost-desktop", "Mattermost" },
|
{ "Mattermost", "mattermost-desktop", "Mattermost" },
|
||||||
{ "Blender", "blender", "Blender" },
|
{ "Blender", "blender", "Blender" },
|
||||||
{ "Steam", "steam", "Steams" },
|
{ "Steam", "steam", "Steam" },
|
||||||
{ "FreeCAD", "freecad", "Freecad" },
|
{ "FreeCAD", "freecad", "FreeCAD" },
|
||||||
{ "Nemo", "nemo", "Dateien" },
|
{ "Nemo", "nemo", "Dateien" },
|
||||||
{ "Paradox Launcher", "394360", "Hearts of Iron 4", true }
|
{ "Paradox Launcher", "394360", "Hearts of Iron 4", true }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -151,6 +151,6 @@ show-all-xerrors = true;
|
|||||||
wintypes: {
|
wintypes: {
|
||||||
tooltip = { fade = true; focus = false; };
|
tooltip = { fade = true; focus = false; };
|
||||||
normal = { shadow = true; blur-background = false; };
|
normal = { shadow = true; blur-background = false; };
|
||||||
dock = { shadow = false; blur-background = false;};
|
dock = { shadow = true; blur-background = false;};
|
||||||
desktop = { shadow = true; blur-background = false; };
|
desktop = { shadow = true; blur-background = false; };
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user