Skip to content

Added options for panel/dock positions and finer autohide configuration#306

Open
AKArien wants to merge 7 commits intoWayfireWM:masterfrom
AKArien:options-clean
Open

Added options for panel/dock positions and finer autohide configuration#306
AKArien wants to merge 7 commits intoWayfireWM:masterfrom
AKArien:options-clean

Conversation

@AKArien
Copy link
Contributor

@AKArien AKArien commented Nov 1, 2025

  • Adjusted the naming of a few options in adequation with new features
  • Added options to control the delay before doing the showing/hiding animations
  • Added options to place the panel and dock on the left and right edges of the screen
  • Added minimal width option
  • Added option to force spanning the full edge
  • Option to force the panel to be centered by the middle box instead of the total width. This will lead to more spaced out elements in the side that takes less space

For the panel, most widgets have a layout adaptation for the vertical panel. Exceptions are network and window-list, because i couldn’t figure out a clean or good way to do it are. Textual widgets (clock, command-output and arguably both of the previously mentionned unchanged) don’t have special adaptations, the formatting for the text they output should be adapted to account for it. Maybe it would be a good idea to add examples to the default config file/wiki.

Breaking stuff :

  • dock/dock_height is replaced by dock/minimal_height

Adresses #259

@AKArien AKArien marked this pull request as draft November 1, 2025 21:00
@eaglgenes101
Copy link

I'm interested in some of the features in this PR, is this suitable for trying out at this moment?

@AKArien
Copy link
Contributor Author

AKArien commented Dec 17, 2025

@eaglgenes101 hi, thanks for your interest !
While some of the code is on the "never let this see the light of day" list, i'm pretty sure most of the features should behave correctly for the user. Of course, please report back if you have any issues or improvements !

Exception is the "orientation" (pivoting) feature : options for rotated icons in the dock don't look and feel great, because the icons are not perfect squares and the widgets are still laid out as per their original dimensions, leading to a bit of overlap. I also meant to let panel widgets be oriented similarly, but it's even more of a problem there.
I'm thinking of just giving up on this pivoting ordeal, as it's probably not such great eye candy anyway.

@eaglgenes101
Copy link

In the end, I decided that this functionality isn't exactly what I wanted. That said, having icons on the side dock works well, and I don't recall any bugs I ran into.

@AKArien AKArien marked this pull request as ready for review February 11, 2026 01:04
@AKArien
Copy link
Contributor Author

AKArien commented Feb 11, 2026

Probably not perfect as is, but i’m hoping it won’t be a waste of your time to review :)

@AKArien AKArien changed the title (DRAFT) Added many configuration options to the dock and the panel Added extra configuration options to the dock and the panel Feb 11, 2026
@AKArien
Copy link
Contributor Author

AKArien commented Feb 12, 2026

@trigg hey there, taking the liberty to ping you to ask how much breaking is ok.
notably, this is currently breaking dock_height to unify minimal sizes between panel and dock. With it introducing a vertical panel, i currently changed the description of widgets_left and right to indicate wether it becomes the top or bottom. Soreau also suggested to rename them as start/end, which i do see the value in, although it’s a bit unclear at a first reading which is which.
And hey, if we are breaking things… i am once again asking to change launchers_size into launchers_icon_size :)
He also suggested splitting this pr in a few smaller ones, which i will let you be the arbiter of soundness of.
Finally, if you have any idea on how to make the reflowing dock look good on the bottom, i’d like to hear :)
And, ofc, comment on the code problems ! Notably reloading the layout of widgets for a vertical panel currently has a lot of copypaste, but i’m not sure what is the best way to cut down on it.

@trigg
Copy link
Collaborator

trigg commented Feb 13, 2026

After a quick read through, this looks well thought out.

As to the questions:

  • I'd only use the terminology 'Start'/'End' instead of top/left bottom/right if it's also respecting the users reading direction. I don't think we are but could be wrong.
  • I'd welcome creating a launchers_icon_size option, provided we also check for an existing value in launcher_size first. We can phase the older out but we'll need a cross-over time period
  • Same with dock height, check existing config-name first, switch to newer name if unset.
  • Splitting this PR looks, to me, like it would just make a bunch of PRs that all require one another to work. Possibly reorder and title commits to individual tasks, but I'd be happy to squash merge otherwise.

I've not had a chance yet to run this and see it in action, I intend to soon

@AKArien AKArien changed the title Added extra configuration options to the dock and the panel Added options for panel/dock positions and finer autohide configuration Mar 1, 2026
AKArien added a commit to AKArien/wf-shell that referenced this pull request Mar 1, 2026
Now using a flowbox.
Deletes the css class out_box due to deleting the widget that uses it.
Doing so removes some possibilities for styling until WayfireWM#306 is merged, at which
point style on out_box could be moved to wf-dock and turning on it’s new
span_full_edge option.
@AKArien AKArien force-pushed the options-clean branch 3 times, most recently from 297e2e3 to 5d00931 Compare March 6, 2026 18:24
AKArien added a commit to AKArien/wf-shell that referenced this pull request Mar 7, 2026
Now using a flowbox.
Deletes the css class out_box due to deleting the widget that uses it.
Doing so removes some possibilities for styling until WayfireWM#306 is merged, at which
point style on out_box could be moved to wf-dock and turning on it’s new
span_full_edge option.
AKArien added a commit to AKArien/wf-shell that referenced this pull request Mar 7, 2026
Now using a flowbox.
Deletes the css class out_box due to deleting the widget that uses it.
Doing so removes some possibilities for styling until WayfireWM#306 is merged, at which
point style on out_box could be moved to wf-dock and turning on it’s new
span_full_edge option.
@AKArien
Copy link
Contributor Author

AKArien commented Mar 11, 2026

* I'd only use the terminology 'Start'/'End' instead of top/left bottom/right if it's also respecting the users reading direction. I don't think we are but could be wrong.

Actually, the CenterBox is already doing that it seems…

@AKArien
Copy link
Contributor Author

AKArien commented Mar 11, 2026

* I'd only use the terminology 'Start'/'End' instead of top/left bottom/right if it's also respecting the users reading direction. I don't think we are but could be wrong.

Actually, the CenterBox is already doing that it seems…

The thing is, we don’t, as everything we do assumes LTR. So, probably invert all the alignments and others (thinking of the alignments of the left and right boxes, start and end) if the direction is RTL ? we can get it from the content_box with get_direction.

@AKArien AKArien force-pushed the options-clean branch 5 times, most recently from 6d4e087 to 701df4a Compare March 11, 2026 17:49
@AKArien AKArien force-pushed the options-clean branch 4 times, most recently from 300988c to 242f8ad Compare March 13, 2026 12:12
AKArien added 5 commits March 13, 2026 19:33
Unify the options for setting minimum dimensions between panel and dock
by handling it in autohide-window. Now cofigured with
(section)/minimal_width and (section)/minimal_height.
This deprecates the dock/dock_height config option.
Previously were hardcoded values. Can now be configured with
(section)/autohide_show_delay and (section)/autohide_hide_delay.
…ght edge

Added support for positionning the panel and dock on the left and right edges.
Their layout is adapted for the occasion.

Some panel widgets do not have an adapted layout for a vertical panel :
`network` and `window-list` are because i couldn’t figure out a clean or good
way to adapt them.
Textual widgets (clock, command-output and arguably both of the previously
mentionned widgets) don’t have special adaptations as it is assumed what should
be adapted is the formatting for the text they output.
It is now optional for autohide windows to be strecthed across the edge they
are attached to (with gtk-layer-shell anchors). Defaults match prior behaviour.
Optional alternative layout for the panel.
Pushes the left and right boxes against the center box,
and gives the same allocation to left and right boxes, in order to keep the the middle widgets box in the center of the screen.
This last part is irrelevant if span_full_edge is on, but still applied.
AKArien added 2 commits March 14, 2026 11:19
Adjacent hotspots are put on the opposite edge, as to be continous from the
regular hotspot. Configured with (section)/adjacent_edge_hotspot_size.

Though not necessary for implementing the new feature, this commit breaks the
edge_offset option by renaming it to edge_hotspot_size for clarity.
Directly sets the gtk layer shell margin property on the edge the winodw is
attached to. Configured with (section)/edge_margin.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants