From 305fdb3d77422f34bf57c9421dbb0de05225707f Mon Sep 17 00:00:00 2001 From: Sam Day Date: Mon, 21 Sep 2026 09:11:08 +1000 Subject: [PATCH 1/4] Squashed 'phosh/' changes from 62fde093..37d48c69 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 37d48c69 layersurface: Sync with our custom-surface example in GTK4 cb8e5c94 layersurface: Switch to GtkPlain 393f34d4 hack: lockscreen: Disable gesture e3fe6fef lockscreen: Properly cleanup background fa3fad0e lockscreen: Use child property and simplify construction b7bcfbb6 top-panel: Use child property and simplify construction f88bbcdc home: Use child property and simplify construction 645b26ed lockscreen-manager: Properly destroy lockscreen 372e3f90 top-panel: Use layer-surface height 4ea68a24 top-panel: Act on configured 377f6129 home: Avoid gtk_window_get_default_size 1765a8e3 home: Act on configured 89a4cd6e layersurface: Adjust to custom surface a5f789f3 tree: Drop window properties 4ad4af3b overview: Properly remove activity 11331796 activity: Use GtkPaintable 857e3e92 activity: Queue draw for the correct widget 1d9a01ed Drop gtk4-layer-shell e08794e1 for-arun: ticket-box: Fix version 8bc3dffd for-arun: feedback-status-page: Make row take full width 0123f441 backport: thumbnail: Fix indent 1e377fb0 backport: lockscreen: Fix typo 666e85bb widget-box-standalone: Port to GTK 4 47007eff quick-settings-box-standalone: Port to GTK 4 7cfeca84 notify-server-standalone: Port to GTK 4 7f511988 notify-blocks: Port to GTK 4 9db8b660 custom-quick-settings-standalone: Port to GTK 4 6158ad6c app-scroll: Port to GTK 4 11692cc8 app-grid-standalone: Port to GTK 4 b80eb6d2 app-buttons: Port to GTK 4 174326ca plugins: Add gio-unix as dependency 3c6ae907 media-players: Port to GTK 4 facf645c upcoming-events: Port to GTK 4 eac40ef0 ticket-box: Port to GTK 4 90471960 launcher-box: Port to GTK 4 cda77dd6 emergency-info: Port to GTK 4 3f984958 calendar: Port to GTK 4 6a69a640 wifi-hotspot-quick-setting: Port to GTK 4 5f825e1c location-quick-setting: Port to GTK 4 23f2b571 simple-custom-quick-setting: Port to GTK 4 b6aee759 scaling-quick-setting: Port to GTK 4 1ab344d9 pomodoro-quick-setting: Port to GTK 4 02b8f87d night-light-quick-setting: Port to GTK 4 94aa3c3d mobile-data-quick-setting: Port to GTK 4 62e2eed9 dark-mode-quick-setting: Port to GTK 4 3b85ba56 caffeine-quick-setting: Port to GTK 4 43d6f658 gtk-list-models: Remove e21946a1 testlib: Port to GTK 4 5bebeca7 tests/services: Add gio-unix as dependency 496fed7d style: Port to GTK 4 8c6cf624 main: Port to GTK 4 bac7a16d home: Port to GTK 4 9eb54cb1 top-panel: Port to GTK 4 1595ee62 lockscreen: Port to GTK 4 0e9a7810 drag-surface: Port to GTK 4 d2019262 layersurface: Port to gtk4-layer-shell 2f161ffd splash: Port to GTK 4 fad8b16f shell: Port to GTK 4 98674306 head: Port to GTK 4 cd5d0f9c monitor: Port to GTK 4 27cf0e50 toplevel: Port to GTK 4 e68c4242 monitor-manager: Port to GTK 4 44ab439b toplevel-manager: Port to GTK 4 8ed2c317 lockscreen-manager: Port to GTK 4 b3743f6a gtk-mount-manager: Port to GTK 4 cc6098e3 phosh-wayland: Port to GTK 4 3b36a5b3 style-manager: Port to GTK 4 b870910e session-manager: Port to GTK 4 bb7b0878 screenshot-manager: Port to GTK 4 299c665a background-manager: Port to GTK 4 ee98ea83 idle-manager: Port to GTK 4 98e42bb5 util: Port to GTK 4 2c2d95a1 system-prompter: Port to GTK 4 642ab828 lockshield: Port to GTK 4 d9aadd57 osd-window: Port to GTK 4 545665e8 widget-box: Port to GTK 4 0df783b7 system-modal: Port to GTK 4 2b125199 location-manager: Port to GTK 4 1e4edaa6 connectivity-manager: Port to GTK 4 389a41f9 cell-broadcast-manager: Port to GTK 4 f797b619 bt-manager: Port to GTK 4 8b3138ac keypad: Port to GTK 4 51e4f5e1 fader: Port to GTK 4 92877e16 call-notification: Port to GTK 4 d2ebc4d3 call: Port to GTK 4 fdc0a22e animations: Port to GTK 4 2ab1b270 system-prompt: Port to GTK 4 cc7985a8 system-modal-dialog: Port to GTK 4 0c1f7b01 run-command-dialog: Port to GTK 4 60cc9ce1 power-menu: Port to GTK 4 9f3cc78f polkit-auth-prompt: Port to GTK 4 0a8ac368 network-auth-prompt: Port to GTK 4 dde21424 end-session-dialog: Port to GTK 4 2383cdf9 cell-broadcast-prompt: Port to GTK 4 97ecf01b gtk-mount-prompt: Port to GTK 4 e3e06a97 emergency-menu: Port to GTK 4 3bb73e88 emergency-contact-row: Port to GTK 4 aa47c6a1 app-auth-prompt: Port to GTK 4 9143b8fb revealer: Port to GTK 4 7da79470 password-entry: Port to GTK 4 48e06b18 activity: Port to GTK 4 7ed3bf1c swipe-away-bin: Port to GTK 4 3238af1a overview: Port to GTK 4 6b9d9363 app-grid: Port to GTK 4 e0a8a452 folder-info: Port to GTK 4 3a63897e app-grid-folder-button: Port to GTK 4 53942573 app-grid-button: Port to GTk 4 652a64e0 app-grid-base-button: Port to GTK 4 025578ba lockscreen-bg: Port to GTK 4 b2ba5ef7 background: Port to GTK 4 6fe37fb3 fading-label: Port to GTK 4 8d730358 clamp: Port to GTK 4 8c2793d5 arrow: Port to GTK 4 0d09808d settings: Port to GTK 4 49b56354 brightness-settings: Port to GTK 4 c5637215 notification-banner: Port to GTK 4 2b52baed notification-frame: Port to GTK 4 ab8840b8 notification-content: Port to GTK 4 9e662ce7 timestamp-label: Port to GTK 4 13054e47 media-player: Port to GTK 4 22328b91 audio-settings: Port to GTK 4 b6a3d376 audio-device-row: Port to GTK 4 3bbb8d50 channel-bar: Port to GTK 4 480085b9 quick-settings: Port to GTK 4 e84d8538 plugin-loader: Port to GTK 4 9397f190 quick-settings-box: Port to GTK 4 e1d19142 quick-setting: Port to GTK 4 57425ec1 connectivity-info: Port to GTK 4 0a208b45 status-icon: Port to GTK 4 b06bcb88 status-icon: Drop icon-size property 9093adba feedback-status-page: Port to GTK 4 f9cdc14a bt-status-page: Port to GTK 4 4507f086 bt-device-row: Port to GTK 4 83267c66 wifi-status-page: Port to GTK 4 a1c1113b wifi-network-row: Port to GTK 4 dbeef700 status-page: Port to GTK 4 433b3ea6 status-page-placeholder: Port to GTK 4 42d9ce12 tree: Use GTK 4 and Adwaita REVERT: 62fde093 Merge branch 'rel-0.53.0' into 'main' REVERT: 08fb5f55 treewide: Document changes and release 0.53.0 REVERT: 078b70f8 Merge branch 'gvc' into 'main' REVERT: fca6c7b9 gvc: Update to latest upstream commit REVERT: 8ebf5690 Update Occitan translation REVERT: 57ee06b5 Update Brazilian Portuguese translation REVERT: 617cd925 Merge branch 'xdgp-phrosh' into 'main' REVERT: 0b9b65a1 portal: Use Rust based GUI variants by default REVERT: 5dada684 Merge branch 'rel-0.53_rc1' into 'main' REVERT: ffb544f4 treewide: Document changes and release 0.53~rc1 REVERT: 0e1ddae8 Merge branch 'fix-theme-set' into 'main' REVERT: 4cb254d0 style-manager: Set the correct css provider REVERT: 5d3e1a89 Merge branch 'track-missing-toplevels' into 'main' REVERT: f61bc362 overview: Remove splash if we never get a toplevel REVERT: 8a472695 toplevel-manager: Track launched apps REVERT: 20fa7a51 overview: Drop unused arguments from signal handler REVERT: b776dc5d toplevel-manager: Drop super-cautious checks REVERT: fde14e9a toplevel-manager: Modernize REVERT: c60a9a62 overview: Ignore missing activity REVERT: 81847921 Update Russian translation REVERT: aeed8ccd Merge branch 'mr-1868-fixup' into 'main' REVERT: 0f832d9f device-row: Fix indent REVERT: a2183867 device-row: Use 'alias' instead of 'name' for device display REVERT: 3140901c Update Cornish translation REVERT: d0174695 Update Turkish translation REVERT: 11faf8e3 Merge branch 'gvc' into 'main' REVERT: bc7371e9 gvc: Switch back to blessed repo REVERT: 20c534c2 Update Swedish translation REVERT: 9e20d3d6 Update Georgian translation REVERT: 742110a3 Update Slovenian translation REVERT: 8907c5fc Update Ukrainian translation REVERT: 38e633df Update Bulgarian translation REVERT: c123751b Merge branch 'doc-noti' into 'main' REVERT: ea9d6805 docs: Mention UsesNotifications REVERT: 07057f1c Update Romanian translation REVERT: 76cd9bcd Update Persian translation REVERT: c6307ac3 Merge branch 'i1280-plugin-prefs-open-new2' into 'main' REVERT: 9a56f3c8 caffeine-quick-setting: Allow to open prefs via mobile settings REVERT: 26fcdd72 util: Allow to open settings panel with additional parameters REVERT: 97740b11 top-panel: Make panel launching actions take parameters REVERT: 6de0c87e top-panel: Add a common parsing function for panel options REVERT: 03e6b0ad Merge branch 'polkit-more-details' into 'main' REVERT: 7c19b471 polkit-auth-prompt: Display more information about user REVERT: 82ccb1aa polkit-auth-prompt: Uncrustify REVERT: 3e1a3ff7 polkit-auth-agent: Uncrustify REVERT: 630409ee polkit-auth-prompt: Follow our coding style REVERT: 5239e552 pokit-auth-agent: Follow our coding style REVERT: 83e53dc2 Merge branch 'packaging' into 'main' REVERT: 68efe67a packaging: Update dependencies REVERT: 432260ca Merge branch 'brightness-gesture' into 'main' REVERT: 7fabf60b lockscreen: Use two finger swipe gesture for brightness REVERT: e79613ed lockscreen: Sort callbacks alphabetically REVERT: 9d5013a4 lockscreen: Use most concrete type for widget-box REVERT: 2df9648b lockscreen: Uncrustify REVERT: 44676370 brightness-manager: Skip brightenss update REVERT: 101746b9 Merge branch 'media-length' into 'main' REVERT: b680d91b media-player: Avoid nan when track length is empty REVERT: 59729218 Merge branch 'simplify-session' into 'main' REVERT: 001291d5 phosh-session: Use name variable REVERT: 59341a0e phosh-session: Avoid the extra shell exec REVERT: c08c0acd phosh-session: Drop disable-acceleration-check REVERT: 6a52749e Update Cornish translation REVERT: 6d476361 Add Cornish translation REVERT: c84e8c94 Update Bulgarian translation REVERT: 9625805e Merge branch 'splash-launch' into 'main' REVERT: 218b3fc7 activity: Use slightly rounded corners REVERT: 738ec45b activity: Render empty state only on drawing area REVERT: b590438e overview: Use light mode based on what the splash manager does REVERT: e3ec75e3 overview: Raise and lower launch splashs REVERT: a644a483 overview: Add splash manager REVERT: cd924e14 overview: Show activity for launching apps REVERT: daeba3f4 activity: Try harder to get an app-id REVERT: db6e4da5 activity: Disable swipe and close button while app is loading REVERT: d0492565 activity: Show spinner when we don't have a thumbnail REVERT: 092b3e3f overview: Use splash colors instead of fake app REVERT: 0e766a21 splash-manager: Allow to lower all splashs and to raise base on startup-id REVERT: c1f28f89 splash: Allow to lower/raise the splash REVERT: 363b832d swipe-tracker: Allow to disable swipes REVERT: f994cd89 shell: Allow to get splash manager REVERT: bfe04e06 shell: Create splash manager earlier REVERT: 7525900d activity: Use phosh_util_toggle_style_class consistently REVERT: d2386a98 activity: Just use `MIN` REVERT: f096cbf8 overview: Use most specific type for carousel REVERT: 924adf69 overview: Use common pattern for find_activity_by_toplevel() REVERT: f86a6215 overview: Fix indent REVERT: 775d6527 Update Norwegian Bokmål translation REVERT: ee3dba00 Merge branch 'volume-control' into 'main' REVERT: d761bcfa audio-devices: Use type REVERT: 87669cc7 channel-bar: Remove unused defines REVERT: 19dcbe67 audio-settings: Avoid pointless cast REVERT: 3a5db230 audio-settings: Avoid channel-bar casts REVERT: c12e7381 channel-bar: Rename source files REVERT: b5c4e2ab channel-bar: Use proper namespace REVERT: edc8cf89 audio-devices: Move out of settings REVERT: 9e555676 audio-settings: Use audio-devices and mixer control from audio-manager REVERT: f6da870b audio-manager: Manage audio devices REVERT: 6267962c Update German translation REVERT: b7857b37 Merge branch 'appinfo-exec' into 'main' REVERT: e78f73cd app-list-model: Allow app-info lookup by recently launched executable REVERT: 55f70e37 app-list-model: Fix indent REVERT: dd18f36d app-tracker: Fix indent REVERT: f6efb023 util: Fix indent REVERT: a3d0a04d Merge branch 'smooth-brightness' into 'main' REVERT: 67c7fa51 brightness-manager: Add auto-brightness offset REVERT: 284d2283 brightness-manager: Drop schema check REVERT: 62f06c2c brightness-manager: Add additional factor when night light is on REVERT: e137e9f5 monitor-manager: Add night light temperature property REVERT: a9bee469 brightness-manager: Smoothen brightness transition REVERT: 873d5c72 brightness-manager: Simplify ending the transition REVERT: 352ed50c backlight: Round backlight level REVERT: 3e1d71b3 brightness-manager: Use faster up interval REVERT: 714d2434 brightness-manager: Use _ID for schema consistently REVERT: 5f307c4b doc: Document missing plugin schema entries REVERT: c2a15a5f Merge branch 'noti-activate' into 'main' REVERT: e06a21fe notification: Activate applications when sending notifications REVERT: 2752e8ef util: Determine object path automatically REVERT: 7c83dded util: Make platform-data helpers public REVERT: cee7c70f util: Allow to activate without actions REVERT: 023f435f Merge branch 'run-schema' into 'main' REVERT: 0f5bb23b run: Use plugin_schema_path REVERT: 1c452318 Update Romanian translation git-subtree-dir: phosh git-subtree-split: 37d48c69b2414fb8b8f9cee19eae60a700c4c551 --- NEWS | 46 - data/icons/fake-app.svg | 118 ++ data/mobi.phosh.shell.gschema.xml | 11 - data/phosh-portals.conf | 2 +- data/phosh-session.in | 6 +- debian/changelog | 247 ---- debian/control | 15 +- docs/app-dev.md | 4 - docs/phosh.gsettings.rst | 8 +- meson.build | 34 +- .../caffeine-quick-setting.c | 26 +- plugins/caffeine-quick-setting/interval-row.c | 8 +- plugins/caffeine-quick-setting/interval-row.h | 4 +- .../caffeine-quick-setting/interval-row.ui | 9 +- plugins/caffeine-quick-setting/qs.ui | 18 +- plugins/calendar/calendar.c | 16 +- plugins/calendar/calendar.ui | 3 +- .../dark-mode-quick-setting.c | 2 +- plugins/dark-mode-quick-setting/qs.ui | 3 +- plugins/emergency-info/emergency-info-row.c | 5 +- plugins/emergency-info/emergency-info-row.h | 4 +- plugins/emergency-info/emergency-info-row.ui | 5 +- plugins/emergency-info/emergency-info.c | 44 +- plugins/emergency-info/emergency-info.h | 2 +- plugins/emergency-info/emergency-info.ui | 36 +- .../prefs/emergency-info-prefs-row.ui | 2 +- plugins/launcher-box/launcher-box.c | 2 +- plugins/launcher-box/launcher-box.ui | 22 +- plugins/launcher-box/launcher-row.c | 13 +- plugins/launcher-box/launcher-row.h | 4 +- plugins/launcher-box/launcher-row.ui | 10 +- plugins/location-quick-setting/qs.ui | 2 +- plugins/media-players/media-players.ui | 26 +- plugins/meson.build | 3 +- plugins/mobile-data-quick-setting/qs.ui | 3 +- plugins/night-light-quick-setting/qs.ui | 3 +- .../pomodoro-quick-setting.c | 2 +- plugins/pomodoro-quick-setting/qs.ui | 3 +- plugins/scaling-quick-setting/qs.ui | 3 +- plugins/scaling-quick-setting/scale-row.c | 6 +- plugins/scaling-quick-setting/scale-row.h | 4 +- plugins/scaling-quick-setting/scale-row.ui | 11 +- .../scaling-quick-setting.c | 7 +- plugins/simple-custom-quick-setting/qs.ui | 3 +- plugins/ticket-box/meson.build | 4 +- plugins/ticket-box/ticket-box.c | 34 +- plugins/ticket-box/ticket-box.ui | 40 +- plugins/ticket-box/ticket-row.c | 11 +- plugins/ticket-box/ticket-row.h | 4 +- plugins/upcoming-events/event-list.c | 9 +- plugins/upcoming-events/event-list.ui | 18 +- plugins/upcoming-events/upcoming-event.c | 12 +- plugins/upcoming-events/upcoming-event.ui | 2 +- plugins/upcoming-events/upcoming-events.c | 29 +- plugins/upcoming-events/upcoming-events.ui | 24 +- plugins/wifi-hotspot-quick-setting/qs.ui | 3 +- .../wifi-hotspot-quick-setting/status-page.ui | 20 +- .../wifi-hotspot-quick-setting.c | 4 +- .../wifi-hotspot-status-page.c | 99 +- po/LINGUAS | 1 - po/POTFILES.in | 1 - po/POTFILES.skip | 2 +- po/bg.po | 228 +-- po/de.po | 35 +- po/fa.po | 60 +- po/ka.po | 79 +- po/kw.po | 1243 ----------------- po/nb.po | 560 ++------ po/oc.po | 855 +++--------- po/pt_BR.po | 66 +- po/ro.po | 84 +- po/ru.po | 64 +- po/sl.po | 62 +- po/sv.po | 48 +- po/tr.po | 52 +- po/uk.po | 67 +- run.in | 9 +- src/activity.c | 408 +++--- src/activity.h | 11 +- src/animation.c | 6 +- src/app-auth-prompt.c | 78 +- src/app-grid-base-button.c | 31 +- src/app-grid-button.c | 29 +- src/app-grid-folder-button.c | 6 +- src/app-grid.c | 107 +- src/app-grid.h | 3 +- src/app-list-model.c | 48 +- src/app-list-model.h | 6 +- src/app-tracker.c | 16 +- src/arrow.c | 27 +- src/audio-manager.c | 158 --- src/audio-manager.h | 29 - src/background-manager.c | 11 +- src/background.c | 38 +- src/background.h | 5 +- src/backlight.c | 2 +- src/brightness-manager.c | 205 +-- src/brightness-settings.c | 8 +- src/brightness-settings.h | 2 +- src/bt-device-row.c | 22 +- src/bt-device-row.h | 4 +- src/bt-manager.c | 9 +- src/bt-status-page.c | 4 +- src/call-notification.c | 6 +- src/call.c | 12 +- src/cell-broadcast-manager.c | 2 +- src/cell-broadcast-prompt.c | 10 + src/clamp.c | 110 +- src/clamp.h | 2 +- src/connectivity-manager.c | 24 +- src/dbus/meson.build | 14 - src/dbus/org.freedesktop.Accounts.User.xml | 38 - src/dbus/org.freedesktop.Accounts.xml | 29 - src/drag-surface.c | 20 +- src/emergency-contact-row.c | 6 +- src/emergency-contact-row.h | 4 +- src/emergency-menu.c | 16 +- src/end-session-dialog.c | 14 +- src/fader.c | 13 +- src/fading-label.c | 130 +- src/fading-label.h | 2 +- src/folder-info.c | 11 +- src/gtk-list-models/gtkfilterlistmodel.c | 711 ---------- src/gtk-list-models/gtkfilterlistmodel.h | 74 - src/gtk-list-models/gtkrbtree.c | 798 ----------- src/gtk-list-models/gtkrbtreeprivate.h | 75 - src/gtk-list-models/gtksortlistmodel.c | 562 -------- src/gtk-list-models/gtksortlistmodel.h | 61 - src/gtk-mount-prompt.c | 22 +- src/home.c | 132 +- src/idle-manager.c | 1 - src/keypad.c | 22 +- src/layersurface-priv.h | 11 +- src/layersurface.c | 498 ++++--- src/layersurface.h | 23 +- src/location-manager.c | 2 +- src/lockscreen-bg.c | 33 +- src/lockscreen-bg.h | 3 +- src/lockscreen-manager.c | 11 +- src/lockscreen.c | 282 ++-- src/lockscreen.h | 7 +- src/lockshield.c | 8 +- src/lockshield.h | 3 +- src/main.c | 19 +- src/media-player.c | 9 +- src/meson.build | 20 +- src/monitor-manager.c | 33 - src/monitor-manager.h | 1 - src/monitor/head.c | 2 - src/monitor/monitor.c | 2 - src/network-auth-prompt.c | 34 +- src/notifications/dbus-notification.c | 52 +- src/notifications/notification-banner.c | 15 +- src/notifications/notification-content.c | 28 +- src/notifications/notification-frame.c | 58 +- src/notifications/notification-frame.h | 2 +- src/notifications/timestamp-label.c | 8 +- src/notifications/timestamp-label.h | 2 +- src/osd-window.c | 17 +- src/overview.c | 371 ++--- src/overview.h | 2 +- src/password-entry.c | 12 + src/phosh-wayland.c | 2 +- src/phosh.gresources.xml | 3 +- src/polkit-auth-agent.c | 104 +- src/polkit-auth-agent.h | 13 +- src/polkit-auth-prompt.c | 164 +-- src/polkit-auth-prompt.h | 10 +- src/power-menu.c | 10 + src/quick-setting.c | 44 +- src/quick-settings-box.c | 300 ++-- src/quick-settings-box.h | 2 +- src/quick-settings.c | 18 +- src/quick-settings.h | 2 +- src/revealer.c | 20 +- src/revealer.h | 2 +- src/run-command-dialog.c | 11 +- src/screenshot-manager.c | 8 +- src/session-manager.c | 3 +- src/settings.c | 27 +- src/settings.h | 2 +- src/settings/audio-device-row.c | 4 +- src/settings/audio-device-row.h | 2 +- src/{audio => settings}/audio-device.c | 0 src/{audio => settings}/audio-device.h | 0 src/{audio => settings}/audio-devices.c | 2 +- src/{audio => settings}/audio-devices.h | 4 +- src/settings/audio-settings.c | 109 +- src/settings/audio-settings.h | 4 +- src/settings/channel-bar.h | 45 - .../{channel-bar.c => gvc-channel-bar.c} | 151 +- src/settings/gvc-channel-bar.h | 54 + src/settings/meson.build | 11 +- src/shell-priv.h | 2 - src/shell.c | 58 +- src/splash-manager.c | 44 - src/splash-manager.h | 3 - src/splash.c | 54 +- src/splash.h | 4 +- src/status-icon.c | 125 +- src/status-icon.h | 6 +- src/status-page-placeholder.c | 26 +- src/status-page-placeholder.h | 2 +- src/status-page.c | 27 +- src/status-page.h | 4 +- src/style-manager.c | 29 +- src/stylesheet/common.css | 20 +- src/swipe-away-bin.c | 186 ++- src/swipe-away-bin.h | 5 +- src/system-modal-dialog.c | 53 +- src/system-modal.c | 6 +- src/system-prompt.c | 18 +- src/system-prompter.h | 2 +- src/thumbnail.c | 1 - src/top-panel-bg.c | 6 +- src/top-panel-bg.h | 5 +- src/top-panel.c | 155 +- src/top-panel.h | 4 +- src/toplevel-manager.c | 231 +-- src/toplevel-manager.h | 5 +- src/toplevel.c | 2 - src/ui/activity.ui | 68 +- src/ui/app-auth-prompt.ui | 12 +- src/ui/app-grid-base-button.ui | 7 +- src/ui/app-grid-button.ui | 30 +- src/ui/app-grid-folder-button.ui | 3 +- src/ui/app-grid.ui | 87 +- src/ui/audio-device-row.ui | 10 +- src/ui/audio-settings.ui | 28 +- src/ui/brightness-settings.ui | 28 +- src/ui/bt-device-row.ui | 9 +- src/ui/bt-status-page.ui | 20 +- src/ui/call-notification.ui | 8 +- src/ui/cell-broadcast-prompt.ui | 7 +- src/ui/emergency-contact-row.ui | 5 +- src/ui/emergency-menu.ui | 12 +- src/ui/end-session-dialog.ui | 14 +- src/ui/feedback-status-page.ui | 8 +- src/ui/gtk-mount-prompt.ui | 80 +- src/ui/{channel-bar.ui => gvc-channel-bar.ui} | 12 +- src/ui/home.ui | 41 +- src/ui/keypad.ui | 82 +- src/ui/lockscreen.ui | 163 +-- src/ui/media-player.ui | 28 +- src/ui/network-auth-prompt.ui | 25 +- src/ui/notification-content.ui | 6 +- src/ui/notification-frame.ui | 40 +- src/ui/osd-window.ui | 13 +- src/ui/overview.ui | 8 +- src/ui/password-entry.ui | 2 +- src/ui/polkit-auth-prompt.ui | 29 +- src/ui/power-menu.ui | 52 +- src/ui/quick-setting.ui | 23 +- src/ui/quick-settings-box.ui | 4 +- src/ui/quick-settings.ui | 20 +- src/ui/revealer.ui | 6 +- src/ui/run-command-dialog.ui | 4 +- src/ui/settings.ui | 31 +- src/ui/splash.ui | 10 +- src/ui/status-icon.ui | 5 +- src/ui/status-page-placeholder.ui | 5 +- src/ui/status-page.ui | 30 +- src/ui/system-modal-dialog.ui | 6 +- src/ui/system-prompt.ui | 83 +- src/ui/timestamp-label.ui | 5 +- src/ui/top-panel.ui | 95 +- src/ui/widget-box.ui | 7 +- src/ui/wifi-network-row.ui | 6 +- src/ui/wifi-status-page.ui | 36 +- src/util.c | 98 +- src/util.h | 8 - src/widget-box.c | 33 +- src/wifi-network-row.c | 6 +- src/wifi-network-row.h | 5 +- src/wifi-status-page.c | 2 + subprojects/gvc.wrap | 4 +- subprojects/libcall-ui.wrap | 4 +- ...ure-callback-and-remove-default-size.patch | 96 ++ tests/services/meson.build | 2 +- tests/stubs/phosh.c | 14 - tests/stubs/toplevel-manager.c | 36 +- tests/test-activity.c | 4 +- tests/test-app-auth-prompt.c | 6 +- tests/test-app-grid-button.c | 68 +- tests/test-app-grid-folder-button.c | 4 +- tests/test-app-list-model.c | 20 +- tests/test-background.c | 6 +- tests/test-connectivity-info.c | 4 +- tests/test-css.c | 5 - tests/test-drag-surface.c | 13 +- tests/test-end-session-dialog.c | 12 +- tests/test-fading-label.c | 4 +- tests/test-gtk-mount-manager.c | 2 - tests/test-layer-surface.c | 7 +- tests/test-lockshield.c | 2 +- tests/test-notification-content.c | 4 +- tests/test-osd-window.c | 2 +- tests/test-overview.c | 8 +- tests/test-plugin-loader.c | 2 +- tests/test-power-menu.c | 2 +- tests/test-quick-setting.c | 109 +- tests/test-quick-settings-box.c | 49 +- tests/test-shell.c | 15 +- tests/test-status-icon.c | 47 +- tests/test-system-modal-dialog.c | 2 +- tests/test-system-modal.c | 7 +- tests/test-timestamp-label.c | 7 +- tests/testlib-full-shell.c | 21 +- tests/testlib.c | 1 - tools/app-buttons.c | 86 +- tools/app-grid-standalone.c | 61 +- tools/app-scroll.c | 75 +- tools/custom-quick-settings-standalone.c | 93 +- tools/notify-blocks.c | 92 +- tools/notify-server-standalone.c | 75 +- tools/quick-settings-box-standalone.c | 135 +- tools/widget-box-standalone.c | 91 +- 317 files changed, 4879 insertions(+), 10493 deletions(-) create mode 100644 data/icons/fake-app.svg delete mode 100644 po/kw.po delete mode 100644 src/audio-manager.c delete mode 100644 src/audio-manager.h delete mode 100644 src/dbus/org.freedesktop.Accounts.User.xml delete mode 100644 src/dbus/org.freedesktop.Accounts.xml delete mode 100644 src/gtk-list-models/gtkfilterlistmodel.c delete mode 100644 src/gtk-list-models/gtkfilterlistmodel.h delete mode 100644 src/gtk-list-models/gtkrbtree.c delete mode 100644 src/gtk-list-models/gtkrbtreeprivate.h delete mode 100644 src/gtk-list-models/gtksortlistmodel.c delete mode 100644 src/gtk-list-models/gtksortlistmodel.h rename src/{audio => settings}/audio-device.c (100%) rename src/{audio => settings}/audio-device.h (100%) rename src/{audio => settings}/audio-devices.c (99%) rename src/{audio => settings}/audio-devices.h (78%) delete mode 100644 src/settings/channel-bar.h rename src/settings/{channel-bar.c => gvc-channel-bar.c} (62%) create mode 100644 src/settings/gvc-channel-bar.h rename src/ui/{channel-bar.ui => gvc-channel-bar.ui} (71%) create mode 100644 subprojects/packagefiles/gtk4-layer-shell/0001-tree-Add-configure-callback-and-remove-default-size.patch diff --git a/NEWS b/NEWS index b897a6d09..952a36a4f 100644 --- a/NEWS +++ b/NEWS @@ -1,49 +1,3 @@ -phosh 0.53.0 ------------- -Released February 2026 -* Various auto brightness improvements, e.g. - * remember auto brightness offset - * compensate for night light -* overview: Show thumbnails for launching apps -* overview: Style improvements -* polkit-prompt: Show more user data -* Activation fixes for notifications - (Needs https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/9269) -* caffeine: Allow to open plugin prefs from the status page -* Multiple other fixes (Use alias for Bluetooth devices, improve app icon - lookup, …) -* Issues fixed: - * https://gitlab.gnome.org/World/Phosh/phosh/-/issues/647 - * https://gitlab.gnome.org/World/Phosh/phosh/-/issues/813 - * https://gitlab.gnome.org/World/Phosh/phosh/-/issues/1229 - * https://gitlab.gnome.org/World/Phosh/phosh/-/issues/1280 - * https://gitlab.gnome.org/World/Phosh/phosh/-/issues/1287 - * https://gitlab.gnome.org/World/Phosh/phosh/-/issues/1292 - * https://gitlab.gnome.org/World/Phosh/phosh/-/issues/1297 - * https://gitlab.gnome.org/World/Phosh/phosh/-/issues/1300 - * https://gitlab.gnome.org/World/Phosh/phosh/-/issues/1298 -* Contributors: - * AJ Dunevent - * Arun Mani J - * Guido Günther - * Rudra Pratap Singh -* UI translations: - * Anders Jonsson (sv) - * Antonio Marin (ro) - * Artur S0 (ru) - * Álvaro Burns (pt_BR) - * Danial Behzadi (fa) - * Efstathios Iosifidis (el) - * Ekaterine Papava (ka) - * Flynn Peck (kw) - * Fredrik Fyksen (nb) - * Jürgen Benvenuti (de) - * Martin (sl) - * Quentin PAGÈS (oc) - * Sabri Ünal (tr) - * Yuri Chornoivan (uk) - * twlvnn kraftwerk (bg) - phosh 0.52.1 ------------ Released January 2026 diff --git a/data/icons/fake-app.svg b/data/icons/fake-app.svg new file mode 100644 index 000000000..26b42d774 --- /dev/null +++ b/data/icons/fake-app.svg @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/data/mobi.phosh.shell.gschema.xml b/data/mobi.phosh.shell.gschema.xml index 0df34d8dc..8494b1812 100644 --- a/data/mobi.phosh.shell.gschema.xml +++ b/data/mobi.phosh.shell.gschema.xml @@ -11,17 +11,6 @@ - - - 0.0 - - Auto brightness offset - - Fixed offset added to the calculated auto brightnes value. - - - - diff --git a/data/phosh-portals.conf b/data/phosh-portals.conf index 3bf377d27..600c13984 100644 --- a/data/phosh-portals.conf +++ b/data/phosh-portals.conf @@ -1,5 +1,5 @@ [preferred] -default=phrosh;phosh;gtk; +default=phosh;phrosh;gtk; org.freedesktop.impl.portal.Access=phosh-shell; org.freedesktop.impl.portal.Background=none; org.freedesktop.impl.portal.Clipboard=none; diff --git a/data/phosh-session.in b/data/phosh-session.in index 960eb5e7a..878e716d9 100755 --- a/data/phosh-session.in +++ b/data/phosh-session.in @@ -2,7 +2,7 @@ COMPOSITOR="@compositor@" PHOC_INI="@pkgdatadir@/phoc.ini" -PHOSH_SESSION_BIN=${PHOSH_SESSION_BIN:-gnome-session} +GNOME_SESSION=${GNOME_SESSION:-gnome-session} help() { @@ -52,4 +52,6 @@ fi [ -n "$WLR_BACKENDS" ] || WLR_BACKENDS=drm,libinput export WLR_BACKENDS -exec $SYSTEMD_CAT "${COMPOSITOR}" -v -S -C "${PHOC_INI}" -E "${PHOSH_SESSION_BIN} --session=phosh" +# Run gnome-session through a login shell so it picks +# variables from /etc/profile.d (XDG_*) +exec $SYSTEMD_CAT "${COMPOSITOR}" -v -S -C "${PHOC_INI}" -E "bash -lc 'exec ${GNOME_SESSION} --disable-acceleration-check --session=phosh'" diff --git a/debian/changelog b/debian/changelog index 4ffa9620a..9230bf583 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,250 +1,3 @@ -phosh (0.53.0) experimental; urgency=medium - - [ Guido Günther ] - * portal: Use Rust based GUI variants by default. We want to drop the C - variants so let's switch. - * gvc: Update to latest upstream commit. We landed another bugfix, let's - grab it - - [ Álvaro Burns ] - * Update Brazilian Portuguese translation - - [ Quentin PAGÈS ] - * Update Occitan translation - - -- Guido Günther Sun, 15 Feb 2026 09:23:10 +0100 - -phosh (0.53~rc1) experimental; urgency=medium - - [ Efstathios Iosifidis ] - * Update Greek translation - - [ Antonio Marin ] - * Update Romanian translation - - [ Guido Günther ] - * run: Use plugin_schema_path. - We have it already so no need to maintain it in two locations - Closes: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/1298o - * util: Allow to activate without actions - * util: Make platform-data helpers public. We'll use them for - notifications - * util: Determine object path automatically. - Code taken from xdg-desktop-portal-phosh - * notification: Activate applications when sending notifications. - We activate the app and send the signal. - Should our heuristic to determine the bus name fail to work well we - can send `org.freedesktop.Notifications.ActivationToken` in - `on_app_activated` as a future improvement. - Helps: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/852 - * doc: Document missing plugin schema entries - * brightness-manager: Use _ID for schema consistently. - No point in having one schema with that suffix and the other without it. - * brightness-manager: Use faster up interval. - The human eye adjust to brightness gains more rapidly. - * backlight: Round backlight level. - This gives us more precise values than integer cutoff. - * brightness-manager: Simplify ending the transition - * brightness-manager: Smoothen brightness transition. - Use smoothstep to make things look less jittering - * monitor-manager: Add night light temperature property. - This allows us to track whether it is in use - * brightness-manager: Add additional factor when night light is on. - Night light reduces contrast as the eye is less susceptible to contrast - in the red spectrum. Lets make the display a bit brighter in those - cases. - Closes: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/1292 - * brightness-manager: Drop schema check. We can assume the 49 schema - now. - * brightness-manager: Add auto-brightness offset. - Closes: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/1297 - * util: Fix indent. - Gbp-dch: Ignore - * app-tracker: Fix indent. - We shorten a variable name and add get the shell variable in an extra - step for readability. - * app-list-model: Allow app-info lookup by recently launched executable. - The shell is usually used to launch apps so when launching remember the - executable. This will allow us look up app-info by exectable. - This is useful for DBus activated apps too as they still usually `Exec` - have an exec line in the desktop file. - * audio-manager: Manage audio devices. - Track the input and output audio devices - * audio-settings: Use audio-devices and mixer control from audio-manager. - This will allow us to use audio devices outside settings - * audio-devices: Move out of settings. - They're used in the audio manager now - * channel-bar: Use proper namespace. - It's a widget in Phosh so use that namespace. This also removes some - confusion between the gvc submodule and our internal widget. - * channel-bar: Rename source files. - Do that in an extra commit to ease review - * audio-settings: Avoid channel-bar casts. - Just use the most specific type right away. - * audio-settings: Avoid pointless cast - * channel-bar: Remove unused defines - * audio-devices: Use type. - We used gpointer to not leak it into libphosh but the library - is more self contained nowadays. - * overview: Use common pattern for find_activity_by_toplevel() - Return early from the loop instead of breaking and make the `l->data` - assignment the first thing in the loop. - Also make sure `g_autoptr ()` is always initialized. - Again fewer lines with easier to read code. - * overview: Use most specific type for carousel. - Avoids the long casts - * activity: Just use `MIN` - No need to open code this. - * activity: Use phosh_util_toggle_style_class consistently. - We use it to remove the class, use it for adding it too - * shell: Create splash manager earlier. - We want to use it from the overview so it has to be there with the - panels. - * shell: Allow to get splash manager - * swipe-tracker: Allow to disable swipes - * splash: Allow to lower/raise the splash - * splash-manager: Allow to lower all splashs and to raise base on startup-id - * overview: Use splash colors instead of fake app. - The fake app wasn't very useful. Use the splash screen - colors instead. - * activity: Show spinner when we don't have a thumbnail. - Add a spinner and show it when we don't have a thumbnail of the - application yet. - * activity: Disable swipe and close button while app is loading. - We can't stop it sensibly atm. - * activity: Try harder to get an app-id - * overview: Show activity for launching apps. - This gives the user feedback that the app is launching. - Closes: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/647 - * overview: Add splash manager - * overview: Raise and lower launch splashs. - When activating a splash we raise it to the top, when activating - an activity we lower all splashs so the app becomes visible. - This is not the ideal place to do it as it doesn't concernt the overview - but we track the toplevels here only atm (see - https://gitlab.gnome.org/World/Phosh/phosh/-/issues/327) - Helps: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/812 - Closes: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/813 - * overview: Use light mode based on what the splash manager does. - We won't switch when the user flips the theme during launch but - that's o.k. for the moment. - * activity: Render empty state only on drawing area. - This makes the thumbnail look more like the app - * activity: Use slightly rounded corners - * phosh-session: Drop disable-acceleration-check. - It is a noop nowadays - * phosh-session: Avoid the extra shell exec - gnome-session handles that for us - * phosh-session: Use name variable. - This ensures we don't accidentally clash with something set - in the environment - * media-player: Avoid nan when track length is empty. - Zero track length (as happens with gapless) can lead to -NAN - which trips up the progress bar. Use 0.0 in that case. - Closes: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/1287 - * brightness-manager: Skip brightenss update. - We can skip the brightness update on night light changes when - auto brightness is disabled. - * lockscreen: Sort callbacks alphabetically - * lockscreen: Use two finger swipe gesture for brightness. - This works better then trying to fit a zoom gesture. Move - to the UI file while at that. - Fixes: 336929ca4 ("lockscreen: Ignore gesture when user wants to zoom") - Co-authored-by: Arun Mani J - * packaging: Update dependencies. - We need recent schema to start successfully. Drop an ancient - conflict on calls and require stevia so we always have a working - OSK (user can still switch ofc). - * docs: Mention UsesNotifications. - This is is similar to UsesFeedback. - * gvc: Switch back to blessed repo. - Most of our patches are in. The leak fix is still missing but hopefully - we get that soon. - Update to 664eba4 ("mixer-control: Document that add_stream is transfer full") - * overview: Ignore missing activity. - When an app failed to start and we can't find a matching - activity that is usually because it crashed or exited - already. Avoid a critical in that case. - * toplevel-manager: Drop super-cautious checks. - The pointer arrays are created in init and never unref'ed or - free'd until dispose so no need to check this every call. - * overview: Drop unused arguments from signal handler. - No need to check types we never use - * toplevel-manager: Track launched apps. - When an app is reporting that it launced we track its app-id - and wait for a matching toplevel in toplevel-manager. When - that doesn't happen in time, we send out a signal. - * overview: Remove splash if we never get a toplevel. - In the unlikely case that we don't see a toplevel from a launched - app, remove the splash when toplevel-manager tells us that the - toplevel will likely never show up. - - [ Jürgen Benvenuti ] - * Update German translation - - [ Fredrik Fyksen ] - * Update Norwegian Bokmål translation - - [ twlvnn kraftwerk ] - * Update Bulgarian translation - - [ Flynn Peck ] - * Add Cornish translation - - [ Arun Mani J ] - * pokit-auth-agent: Follow our coding style - * polkit-auth-prompt: Follow our coding style - * polkit-auth-agent: Uncrustify - * polkit-auth-prompt: Uncrustify - * polkit-auth-prompt: Display more information about user. - Closes: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/1229 - - [ Rudra Pratap Singh ] - * top-panel: Add a common parsing function for panel options. - This way, we can keep the parsing in - sync for both mobile and non mobile panels. - * top-panel: Make panel launching actions take parameters. - Instead of a string we use (sav) parameter type - so we can pass additional parameters. - * util: Allow to open settings panel with additional parameters. - We add a second parameter to - `phosh_util_open_mobile_settings_panel`, allowing - one to send panel options alongside. The panel - name and options can then be packed to remotely - activate settings app accordingly. - * caffeine-quick-setting: Allow to open prefs via mobile settings. - Closes: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/1280 - - [ Danial Behzadi ] - * Update Persian translation - - [ Yuri Chornoivan ] - * Update Ukrainian translation - - [ Martin ] - * Update Slovenian translation - - [ Ekaterine Papava ] - * Update Georgian translation - - [ Anders Jonsson ] - * Update Swedish translation - - [ Sabri Ünal ] - * Update Turkish translation - - [ AJ Dunevent ] - * device-row: Use 'alias' instead of 'name' for device display. - The 'alias' property is preferred as it contains user-defined names - while falling back to the hardware name if no alias is set. Stays - consistent with other UI elements, similar environments, etc. - Closes: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/1300 - - [ Artur S0 ] - * Update Russian translation - - -- Guido Günther Tue, 10 Feb 2026 18:03:17 +0100 - phosh (0.52.1) experimental; urgency=medium * gvc: Handle port changes on streams. diff --git a/debian/control b/debian/control index b9154644a..f6ba60e01 100644 --- a/debian/control +++ b/debian/control @@ -9,7 +9,7 @@ Build-Depends: libadwaita-1-dev, libappstream-dev, libcallaudio-dev, - libevince-dev, + libpapers-dev, libgirepository1.0-dev, libgmobile-dev, libjson-glib-dev, @@ -74,16 +74,16 @@ Depends: ${misc:Depends}, ${shlibs:Depends}, fonts-lato, - gnome-shell-common (>= 49), - gsettings-desktop-schemas (>= 49), + gnome-shell-common, + gsettings-desktop-schemas (>= 47), libcap2-bin, libqrcodegen1, - phoc (>= 0.52.0), + phoc (>= 0.45.0), phosh-common (= ${source:Version}), Recommends: feedbackd (>= 0.5.0), - fonts-adwaita, - gnome-session-bin (>= 49), + fonts-cantarell, + gnome-session-bin, gnome-session-common, gnome-settings-daemon (>= 49), iio-sensor-proxy, @@ -93,11 +93,12 @@ Recommends: phosh-mobile-tweaks, phosh-plugins, slurp, - phosh-osk-stevia, + phosh-osk-stevia | squeekboard, Provides: notification-daemon, polkit-1-auth-agent, Breaks: + gnome-calls (<< 42), gnome-control-center (<< 42), gnome-settings-daemon (<< 49), libgtk-3-0 (<< 3.24.30), diff --git a/docs/app-dev.md b/docs/app-dev.md index f4135b766..d7119f65b 100644 --- a/docs/app-dev.md +++ b/docs/app-dev.md @@ -26,10 +26,6 @@ additional entries: feedbackd to trigger audio, haptic or led feedback. This is useful for setting applications so they can show entries for individual apps. Example: `X-Phosh-UsesFeedback=true` -* `X-GNOME-UsesNotifications`: Used to indicate that application submit notifications - This is useful for setting applications so they can show entries for - individual apps to fine tune their feedback. - Example: `X-GNOME-UsesNotifications=true` ## Desktop Notification Specification diff --git a/docs/phosh.gsettings.rst b/docs/phosh.gsettings.rst index 729e77c5b..f9ba92a8b 100644 --- a/docs/phosh.gsettings.rst +++ b/docs/phosh.gsettings.rst @@ -26,10 +26,6 @@ GSettings These gsettings are used by ``phosh``: -- `mobi.phosh.shell.brightness` - - - `auto-brightness-offset`: Offset added to the calculated auto brightness value - - `mobi.phosh.shell.cell-broadcast` - `enabled`: Whether receiving cell broadcasts is enabled @@ -82,7 +78,7 @@ These gsettings are used by ``phosh``: - `sm.puri.phosh.plugins.launcher-box` - - `folder`: The folder containing the desktop files to show in the launcher box + - `folder` - `sm.puri.phosh.plugins.ticket-box` @@ -90,7 +86,7 @@ These gsettings are used by ``phosh``: - `sm.puri.phosh.plugins.upcoming-events` - - `days`: Number of days to show in the upcoming events list + - `days` - `org.gnome.desktop.app-folders.folder`: Folder support diff --git a/meson.build b/meson.build index f7a08c37e..1298e5bea 100644 --- a/meson.build +++ b/meson.build @@ -1,7 +1,7 @@ project( 'phosh', 'c', - version: '0.53.0', + version: '0.52.1', license: 'GPL-3.0-or-later', meson_version: '>= 1.7.0', default_options: [ @@ -122,6 +122,11 @@ endif add_project_arguments(global_c_args, language: 'c') +run_data = configuration_data() +run_data.set('ABS_BUILDDIR', meson.current_build_dir()) +run_data.set('ABS_SRCDIR', meson.current_source_dir()) +configure_file(input: 'run.in', output: 'run', configuration: run_data) + gnome = import('gnome') i18n = import('i18n') pkgconfig = import('pkgconfig') @@ -130,11 +135,12 @@ appstream_dep = dependency('appstream', version: '>= 1.0.0') ecal_dep = dependency('libecal-2.0', version: '>= 3.33.1') eds_dep = dependency('libedataserver-1.2', version: '>= 3.33.1') fribidi_dep = dependency('fribidi') -gcr_dep = dependency('gcr-3', version: '>= 3.7.5') +gcr_dep = dependency('gcr-4', version: '>= 4.3.0') glib_dep = dependency('glib-2.0', version: glib_ver_cmp) gio_dep = dependency('gio-2.0', version: glib_ver_cmp) -gio_unix_dep = dependency('gio-unix-2.0', version: glib_ver_cmp) -gnome_bluetooth_dep = dependency('gnome-bluetooth-3.0', version: '>= 46.0') +gio_unix_dep = dependency('gio-unix-2.0', version: glib_ver_cmp) +gnome_bg_dep = dependency('gnome-bg-4') +gnome_bluetooth_dep = dependency ('gnome-bluetooth-3.0', version: '>= 46.0') gmobile_dep = dependency( 'gmobile', version: '>= 0.1.0', @@ -147,15 +153,15 @@ gmobile_dep = dependency( ], ) gmodule_dep = dependency('gmodule-no-export-2.0', version: glib_ver_cmp) -gnome_desktop_dep = dependency('gnome-desktop-3.0', version: '>=3.26') +gnome_desktop_dep = dependency('gnome-desktop-4', version: '>=4.0') gobject_dep = dependency('gobject-2.0', version: glib_ver_cmp) gsettings_desktop_schemas_dep = dependency( 'gsettings-desktop-schemas', version: '>=47', ) -gtk_dep = dependency('gtk+-3.0', version: '>=3.22') -gtk_wayland_dep = dependency('gtk+-wayland-3.0', version: '>=3.22') +gtk_dep = dependency('gtk4', version: '>=4.15') gudev_dep = dependency('gudev-1.0') +libadwaita_dep = dependency('libadwaita-1') libcall_ui = subproject( 'libcall-ui', default_options: [ @@ -189,12 +195,6 @@ libgvc = subproject( ], ) libgvc_dep = libgvc.get_variable('libgvc_dep') -libhandy_dep = dependency( - 'libhandy-1', - version: '>=1.1.90', - fallback: ['libhandy', 'libhandy_dep'], - default_options: ['introspection=disabled'], -) libcall_ui_dep = libcall_ui.get_variable('libcall_ui_dep') libnm_dep = dependency('libnm', version: '>= 1.14') libpolkit_agent_dep = dependency('polkit-agent-1', version: '>= 0.122') @@ -249,19 +249,11 @@ configure_file( install_dir: lib_inc_dir, ) - subdir('data') subdir('po') subdir('protocol') subdir('src') subdir('plugins') - -run_data = configuration_data() -run_data.set('ABS_BUILDDIR', meson.current_build_dir()) -run_data.set('ABS_SRCDIR', meson.current_source_dir()) -run_data.set('PLUGIN_SCHEMA_PATH', plugin_schema_path) -configure_file(input: 'run.in', output: 'run', configuration: run_data) - subdir('searchd') subdir('tests') subdir('tools') diff --git a/plugins/caffeine-quick-setting/caffeine-quick-setting.c b/plugins/caffeine-quick-setting/caffeine-quick-setting.c index fea45648d..8d65497cc 100644 --- a/plugins/caffeine-quick-setting/caffeine-quick-setting.c +++ b/plugins/caffeine-quick-setting/caffeine-quick-setting.c @@ -193,17 +193,17 @@ on_interval_row_activated (GtkListBox *listbox, PhoshCaffeineQuickSetting *self) { uint selected_idx = 0; - g_autoptr (GList) children = NULL; if (self->cur_row != row) { + GtkListBoxRow *child; phosh_caffeine_quick_setting_clear_timer (self); - children = gtk_container_get_children (GTK_CONTAINER (self->listbox)); - for (GList *child = children; child; child = child->next) { - if (child->data == row) + child = gtk_list_box_get_row_at_index (self->listbox, selected_idx); + while (child) { + if (child == row) break; - selected_idx++; + child = gtk_list_box_get_row_at_index (self->listbox, selected_idx); } g_settings_set_uint (self->settings, CAFFEINE_SELECTED_KEY, selected_idx); @@ -317,8 +317,14 @@ static void on_selected_index_changed (PhoshCaffeineQuickSetting *self) { uint selected_idx = g_settings_get_uint (self->settings, CAFFEINE_SELECTED_KEY); - g_autoptr (GList) children = gtk_container_get_children (GTK_CONTAINER (self->listbox)); - uint len = g_list_length (children); + GtkListBoxRow *child; + uint len = 0; + + child = gtk_list_box_get_row_at_index (self->listbox, len); + while (child) { + len++; + child = gtk_list_box_get_row_at_index (self->listbox, len); + } phosh_caffeine_quick_setting_clear_timer (self); @@ -346,14 +352,12 @@ on_intervals_changed (PhoshCaffeineQuickSetting *self) GVariantIter iter; PhoshIntervalRow* row = NULL; g_autoptr (GVariant) intervals = NULL; - g_autoptr (GList) children = gtk_container_get_children (GTK_CONTAINER (self->listbox)); g_debug ("Intervals changed, reconfiguring listbox..."); self->cur_row = NULL; - for (GList *child = children; child; child = child->next) - gtk_container_remove (GTK_CONTAINER (self->listbox), child->data); + gtk_list_box_remove_all (self->listbox); intervals = g_settings_get_value (self->settings, CAFFEINE_INTERVALS_KEY); @@ -373,7 +377,7 @@ static void phosh_caffeine_quick_setting_init (PhoshCaffeineQuickSetting *self) { gtk_widget_init_template (GTK_WIDGET (self)); - gtk_icon_theme_add_resource_path (gtk_icon_theme_get_default (), + gtk_icon_theme_add_resource_path (gtk_icon_theme_get_for_display (gdk_display_get_default ()), "/mobi/phosh/plugins/caffeine-quick-setting/icons"); self->settings = g_settings_new (CAFFEINE_QUICK_SETTING_SCHEMA); diff --git a/plugins/caffeine-quick-setting/interval-row.c b/plugins/caffeine-quick-setting/interval-row.c index 191a33096..e5eb6169c 100644 --- a/plugins/caffeine-quick-setting/interval-row.c +++ b/plugins/caffeine-quick-setting/interval-row.c @@ -26,14 +26,14 @@ enum { static GParamSpec *props[PROP_LAST_PROP]; struct _PhoshIntervalRow { - HdyActionRow parent; + AdwActionRow parent; GtkRevealer *revealer; uint value; gboolean selected; }; -G_DEFINE_TYPE (PhoshIntervalRow, phosh_interval_row, HDY_TYPE_ACTION_ROW); +G_DEFINE_TYPE (PhoshIntervalRow, phosh_interval_row, ADW_TYPE_ACTION_ROW); static void phosh_interval_row_set_value (PhoshIntervalRow *self, uint value) @@ -43,9 +43,9 @@ phosh_interval_row_set_value (PhoshIntervalRow *self, uint value) if (value < PHOSH_INTERVAL_ROW_INFINITY_VALUE) { g_autofree char *label = cui_call_format_duration ((double) value); - hdy_preferences_row_set_title (HDY_PREFERENCES_ROW (self), label); + adw_preferences_row_set_title (ADW_PREFERENCES_ROW (self), label); } else { - hdy_preferences_row_set_title (HDY_PREFERENCES_ROW (self), "∞"); + adw_preferences_row_set_title (ADW_PREFERENCES_ROW (self), "∞"); } g_object_bind_property (self, diff --git a/plugins/caffeine-quick-setting/interval-row.h b/plugins/caffeine-quick-setting/interval-row.h index 2c11b6a75..586a8b9ce 100644 --- a/plugins/caffeine-quick-setting/interval-row.h +++ b/plugins/caffeine-quick-setting/interval-row.h @@ -6,7 +6,7 @@ #pragma once -#include +#include #define PHOSH_INTERVAL_ROW_INFINITY_VALUE G_MAXUINT32 @@ -14,7 +14,7 @@ G_BEGIN_DECLS #define PHOSH_TYPE_INTERVAL_ROW (phosh_interval_row_get_type ()) -G_DECLARE_FINAL_TYPE (PhoshIntervalRow, phosh_interval_row, PHOSH, INTERVAL_ROW, HdyActionRow) +G_DECLARE_FINAL_TYPE (PhoshIntervalRow, phosh_interval_row, PHOSH, INTERVAL_ROW, AdwActionRow) PhoshIntervalRow *phosh_interval_row_new (uint value, gboolean selected); uint phosh_interval_row_get_value (PhoshIntervalRow *self); diff --git a/plugins/caffeine-quick-setting/interval-row.ui b/plugins/caffeine-quick-setting/interval-row.ui index df286c0fa..9adecfb8b 100644 --- a/plugins/caffeine-quick-setting/interval-row.ui +++ b/plugins/caffeine-quick-setting/interval-row.ui @@ -1,8 +1,7 @@ - - -