Open Elv13 opened 5 years ago
How is the client placed/screen selected
(assumes that resize_requests_honor
feature is added)
First one, adding a client
awful.rules
than "everything in general".property::foo
signals are emitted before awful.rules
"goes to work". For example, the screen containing the position that the window was created is set and this already emits property::screen
. request::tag
is always emitted, even when the rules specify some tags. It's just that the only thing connected to this signal does nothing if the client already has tags (that belong to the same screen as the client).focus=true
, but in the default config this is already gated by awful.client.focus.filter
.
-I think "Resume normal operation" sounds weird, how about "done"?Here is what the C code does when a new client appears (that is visible from Lua):
new
)client.get()
)property::screen
)property::x
, ::y
, ::width
, ::height
, ::window
(?), ::geometry
, in this order)property::border_width
)size_hints_honor = true
(property::size_hints_honor
)c.focusable
is set,] group_window, icon (from ICCCM), transient_for, leader_window
(no signal), client_machine, role, pid, icon (from EWMH), name (from ICCCM), name (from EWMH), icon_name (from ICCCM), icon_name (from EWMH), class, protocols (this is purely internal to the C code), motif wm hints, opacitytransient_for
for other clients pointing to this client is updated/set_NET_WM_DESKTOP
), a state (sticky, skip_taskbar, fullscreen, maximized h/v, above, below, modal, hidden, urgent (via EWMH)), or a window type, this is now fetched and applied (So, clients can actually be tagged before awful.rules
runs!)awful.startup_notification
ever using this)property::list
is emitted, just because the client list changed a long time ago.manage
emitted and the C code is done.How is the client placed/screen selected
awful.spawn
? If so, this reference could be made more explicit and it might make sense to mention that this requires the client to support SNmanage
picture above?request::geometry
with "ewmh" context is emitted (for historic reasons, no idea what this has to do with EWMH). This signal is handled in awful.ewmh.client_geometry_requests
and applied if resize_requests_honor
(which needs to be renamed) is true
."
Hello,
In an attempt to fix more of #1373 and because I am adding more client and spawn related commits since last week, I think our process are now too complex to be learnt from reading the doc as it stands now. This issue will be a dumping ground for unfinished flowcharts and will eventually result in a pull request when I am happy.
If anyone think more of the steps deserve to be shown, tell us about it and why. My goal here is not to convert the lua code into a flowchart, it is to guide the new users in the maze of extension points. Eventually I will add colors to the extension points and a legend with proper documentation links.
First one, adding a client