Skip to content

Switch from pop-os iced fork to iced_layershell#578

Draft
MalpenZibo wants to merge 14 commits intomainfrom
switch-to-iced_layershell
Draft

Switch from pop-os iced fork to iced_layershell#578
MalpenZibo wants to merge 14 commits intomainfrom
switch-to-iced_layershell

Conversation

@MalpenZibo
Copy link
Copy Markdown
Owner

@MalpenZibo MalpenZibo commented Apr 1, 2026

Summary

  • Replace the pop-os iced fork (MalpenZibo/iced) with iced_layershell, a standalone Wayland layer shell backend built on standard iced 0.14
  • Migrate all iced:: imports to iced_layershell::, replacing iced::window::Id with SurfaceId, iced::daemon() with iced_layershell::application(), and platform-specific layer surface APIs with iced_layershell equivalents
  • Merge PulseAudio listener and commander into a single connection thread to avoid mainloop assertion failures under the calloop-based event loop

Test plan

  • Bar renders correctly on single and multi-monitor setups
  • ESC key closes menus
  • Audio controls work (volume slider, mute toggle, device switching)
  • SIGUSR1 visibility toggle works
  • Output add/remove events handled correctly

@MalpenZibo MalpenZibo force-pushed the switch-to-iced_layershell branch from 3812dee to bb13f6e Compare April 1, 2026 10:02
@MalpenZibo MalpenZibo marked this pull request as draft April 1, 2026 11:22
@MalpenZibo MalpenZibo marked this pull request as draft April 1, 2026 11:22
@romanstingler
Copy link
Copy Markdown
Collaborator

romanstingler commented Apr 1, 2026

Background color is missing.
2026-04-01-15:46:06

2026-04-01-15:45:37
[appearance]
style = "Solid"
success_color = "#a3be8c"
text_color = "#eceff4"
workspace_colors = ["#88c0d0", "#81a1c1", "#5e81ac"]

[appearance.primary_color]
base = "#88c0d0"
text = "#242933"

[appearance.danger_color]
base = "#bf616a"
weak = "#ebcb8b"

[appearance.background_color]
base = "#3b4252"
weak = "#2e3440"
strong = "#3b4252"

[appearance.secondary_color]
base = "#1c212b"
strong = "#2e3440"

@MalpenZibo
Copy link
Copy Markdown
Owner Author

Can you share your appearance settings? This could be related to the changes to the theme settings. I want to fix that kind of stuff in a dedicated PR. Maybe if we decide to stick with this iced_layershell solution, I can rebase #574 on top of this

Add hover state tracking and shell.request_redraw() to PositionButton,
matching iced 0.14's reactive rendering protocol (PR #2662).

Previously, hover status was computed live in draw() from cursor position.
With reactive rendering, draw() is only called when a widget requests it.
Without request_redraw(), the button never triggers a redraw on hover
enter/leave.

Now: update() tracks is_hovered state changes and calls request_redraw()
when hover changes. draw() uses the tracked state instead of live cursor.
- Flip workspace scroll direction mapping for negated axis values
- Handle both Lines and Pixels scroll deltas in position_button
- Adjust default md font size to 14px
Replace iterate(false) + sleep(10ms) polling loop with iterate(true)
blocking on a registered pipe fd. Commands wake the mainloop via the
pipe, restoring zero-idle-CPU behavior.
@MalpenZibo MalpenZibo force-pushed the switch-to-iced_layershell branch from 4a96263 to c8f57b8 Compare April 2, 2026 10:21
@romanstingler
Copy link
Copy Markdown
Collaborator

I think I found it.

@MalpenZibo
Copy link
Copy Markdown
Owner Author

Ok secondary color will be probably deprecated.
In the refactor palette PR I plan to resolve some of this kind of issue. I will use you configuration to make some test!

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.

2 participants