dependency injection

This commit is contained in:
anakha 2021-07-11 16:34:28 -04:00
parent 66e44c3e7e
commit 0515fb8082
3 changed files with 67 additions and 16 deletions

View File

@ -2,7 +2,10 @@
---------------------------------------------------------- dependencies -- ; ---------------------------------------------------------- dependencies -- ;
local capi = {root=root} local capi = {root=root}
local naughty = require('naughty')
local gears = require("gears")
local awful = require("awful") local awful = require("awful")
local beautiful = require('beautiful')
local modkey = "Mod4" local modkey = "Mod4"
local altkey = "Mod1" local altkey = "Mod1"

View File

@ -1,7 +1,12 @@
--------------------------------------------------------- dependencies -- ; --------------------------------------------------------- dependencies -- ;
local grect = require("gears.geometry").rectangle local naughty = require('naughty')
local gears = require("gears")
local awful = require("awful")
local beautiful = require('beautiful')
local grect = gears.geometry.rectangle
local tabs = require("machina.tabs") local tabs = require("machina.tabs")
local geoms = require("machina.geoms") local geoms = require("machina.geoms")
local helpers = require("machina.helpers") local helpers = require("machina.helpers")
@ -70,6 +75,20 @@ end
------------------------------------------ get_visible_floating_clients -- ; ------------------------------------------ get_visible_floating_clients -- ;
local function get_all_floating_clients(s)
local s = s or awful.screen.focused(s)
local les_visibles = {}
for i,p in pairs(s.all_clients) do
if p.floating then
les_visibles[#les_visibles+1] = p
end
end
return les_visibles
end
local function get_visible_floating_clients(s) local function get_visible_floating_clients(s)
local s = s or awful.screen.focused(s) local s = s or awful.screen.focused(s)
local les_visibles = {} local les_visibles = {}
@ -110,11 +129,16 @@ local function align_floats(direction)
local direction = direction or "right" local direction = direction or "right"
local space_around = get_space_around(c) local space_around = get_space_around(c)
local cs = get_visible_floating_clients(s) local cs = get_all_floating_clients(s)
if space_around.right < 300 and space_around.left < 300 then if not c then return end
--|flow control
if space_around.right < 300
and space_around.left < 300 then
return return
end end --|flow control
for i,p in pairs(cs) do for i,p in pairs(cs) do
if p.window == c.window then goto next end if p.window == c.window then goto next end
@ -151,9 +175,12 @@ local function align_floats(direction)
if direction == "left" then direction = "right" end if direction == "left" then direction = "right" end
if direction == "right" then direction = "left" end if direction == "right" then direction = "left" end
p:emit_signal("request::activate") p.hidden = false
p:raise()
-- p:emit_signal("request::activate")
--|bring float up --|bring float up
awful.placement.no_offscreen(p) awful.placement.no_offscreen(p)
--|ensure everything is visible --|ensure everything is visible
@ -164,8 +191,12 @@ local function align_floats(direction)
--|keep focus at the originating client --|keep focus at the originating client
end end
end end
--|this will spread out visible floating to the left or --|this will spread out floating clients to the left or
--|right, can refactor most of this later. --|right of the focused client, can refactor most of this later.
--|perhaps it is better to limit this to visible floats only.
--|perhaps it would be better to keep the position and geometry
--|of the floats prior to aligning them, so that they can appear
--|where they used to be later.
------------------------------------------------------------- go_edge() -- ; ------------------------------------------------------------- go_edge() -- ;
@ -210,7 +241,8 @@ local function screen_info(s)
focused_client focused_client
end end
--------------------------------------------------------- get_regions() -- ;
---------------------------------------------------------- get_region() -- ;
local function get_region(region_ix, s) local function get_region(region_ix, s)
local s = s or awful.screen.focused() local s = s or awful.screen.focused()
@ -253,6 +285,7 @@ local function get_region(region_ix, s)
return machi_regions[region_ix] return machi_regions[region_ix]
end end
--------------------------------------------------------- get_regions() -- ;
local function get_regions(s) local function get_regions(s)
local s = s or awful.screen.focused() local s = s or awful.screen.focused()
@ -575,13 +608,18 @@ local function expand_horizontal(direction)
c.maximized_vertical = false c.maximized_vertical = false
if not c.floating then if not c.floating then
-- draw_tabbar(c.region) draw_tabbar(c.region)
resize_region_to_index(c.region, true, true) resize_region_to_index(c.region, true, true)
gears.timer.weak_start_new(0.1,function ()
client.focus = mouse.current_client
end) --|when toggling leave the focus
--|to the client under the pointer
end end
return return
end --|reset toggle when sending same shortcut end --|reset toggle when sending the same
--|consequitively --|shortcut consequitively.
local stuff = get_client_info() local stuff = get_client_info()
local target = grect.get_in_direction(direction, stuff.regions, client.focus:geometry()) local target = grect.get_in_direction(direction, stuff.regions, client.focus:geometry())
@ -654,7 +692,13 @@ local function expand_horizontal(direction)
c:geometry(geom) c:geometry(geom)
awful.placement.centered(c) awful.placement.centered(c)
client.focus = nil
--|allow micky to move the mouse
gears.timer.delayed_call(function (c) gears.timer.delayed_call(function (c)
client.focus = c
--|allow micky to move the mouse
c:raise() c:raise()
client.emit_signal("tabbar_draw", c.region) client.emit_signal("tabbar_draw", c.region)
clear_tabbar(c) clear_tabbar(c)
@ -1324,8 +1368,9 @@ end
----------------------------------------------------; ----------------------------------------------------;
-- awful.titlebar.widget.connect_signal("mouse::enter", function()
-- log('here')
-- end)
--------------------------------------------------------------- signals -- ; --------------------------------------------------------------- signals -- ;
@ -1339,6 +1384,10 @@ client.connect_signal("unmanage", unmanage_signal)
client.connect_signal("manage", manage_signal) client.connect_signal("manage", manage_signal)
tag.connect_signal("property::selected", selected_tag_signal) tag.connect_signal("property::selected", selected_tag_signal)
-- client.connect_signal("mouse::enter", function ()
-- log(mouse.current_widget)
-- end)
--------------------------------------------------------------- exports -- ; --------------------------------------------------------------- exports -- ;
module = { module = {

View File

@ -1,9 +1,9 @@
--------------------------------------------- widget.tabbar.default.lua -- ; --------------------------------------------- widget.tabbar.default.lua -- ;
local awful = require("awful")
local gears = require("gears") local gears = require("gears")
local wibox = require("wibox") local wibox = require("wibox")
local beautiful = require("beautiful") local beautiful = require("beautiful")
local bg_normal = beautiful.tabbar_bg_normal or beautiful.bg_normal or "#1a1a1a" local bg_normal = beautiful.tabbar_bg_normal or beautiful.bg_normal or "#1a1a1a"
@ -17,7 +17,6 @@ local font = beautiful.tabbar_font or beautiful.font or "Recursiv
local size = beautiful.tabbar_size or 14 local size = beautiful.tabbar_size or 14
local position = beautiful.tabbar_position or "bottom" local position = beautiful.tabbar_position or "bottom"
local function create(c, focused_bool, buttons, idx) local function create(c, focused_bool, buttons, idx)
local flexlist = wibox.layout.flex.horizontal local flexlist = wibox.layout.flex.horizontal
local title_temp = string.lower(c.class) or c.name or "-" local title_temp = string.lower(c.class) or c.name or "-"