├── .gitmodules
├── debian
├── phosh.docs
├── source
│ └── format
├── libphosh-0.45-0.install
├── gir1.2-phosh-0-dev.install
├── phosh-doc.install
├── phosh-mobile-tweaks.install
├── phosh-dev.install
├── phosh.triggers.in
├── phosh-doc.links
├── clean
├── not-installed
├── phosh.manpages
├── libphosh-0.45-dev.install
├── phosh.dirs
├── phosh-common.install
├── tests
│ └── control
├── gbp.conf
├── phosh-plugins.install
├── phosh.postrm.in
├── phosh.postinst.in
└── phosh.install
├── .ruff.toml
├── plugins
├── media-players
│ ├── stylesheet
│ │ └── common.css
│ ├── media-players.desktop.in.in
│ ├── phosh-plugin-media-players.gresources.xml
│ └── media-players.h
├── mobile-data-quick-setting
│ ├── icons
│ │ └── mobile-data-quick-setting-symbolic.svg
│ ├── phosh-plugin-mobile-data-quick-setting.gresources.xml
│ ├── mobile-data-quick-setting.desktop.in.in
│ ├── qs.ui
│ └── mobile-data-quick-setting.h
├── calendar
│ ├── stylesheet
│ │ └── common.css
│ ├── calendar.desktop.in.in
│ ├── phosh-plugin-calendar.gresources.xml
│ ├── calendar.h
│ └── calendar.ui
├── emergency-info
│ ├── stylesheet
│ │ └── common.css
│ ├── prefs
│ │ ├── phosh-plugin-prefs-emergency-info.gresources.xml
│ │ ├── emergency-info-prefs.h
│ │ ├── emergency-info-prefs-row.h
│ │ └── emergency-info-prefs-row.ui
│ ├── emergency-info.desktop.in.in
│ ├── emergency-info-common.h
│ ├── phosh-plugin-emergency-info.gresources.xml
│ ├── emergency-info.h
│ ├── emergency-info-row.ui
│ └── emergency-info-row.h
├── wifi-hotspot-quick-setting
│ ├── style.css
│ ├── wifi-hotspot-quick-setting.desktop.in.in
│ ├── wifi-hotspot-status-page.h
│ ├── phosh-plugin-wifi-hotspot-quick-setting.gresources.xml
│ ├── wifi-hotspot-quick-setting.h
│ ├── icons
│ │ ├── network-wireless-hotspot-acquiring-symbolic.svg
│ │ ├── network-wireless-hotspot-disabled-symbolic.svg
│ │ └── wifi-hotspot-quick-setting-symbolic.svg
│ └── qs.ui
├── ticket-box
│ ├── stylesheet
│ │ └── common.css
│ ├── prefs
│ │ ├── phosh-plugin-prefs-ticket-box.gresources.xml
│ │ ├── ticket-box-prefs.h
│ │ └── meson.build
│ ├── phosh-plugin-ticket-box.gresources.xml
│ ├── ticket-box.desktop.in.in
│ ├── ticket-box.h
│ ├── ticket-row.h
│ ├── sm.puri.phosh.plugins.ticket-box.gschema.xml
│ └── ticket.h
├── launcher-box
│ ├── launcher-box.desktop.in.in
│ ├── stylesheet
│ │ └── common.css
│ ├── phosh-plugin-launcher-box.gresources.xml
│ ├── launcher-box.h
│ ├── sm.puri.phosh.plugins.launcher-box.gschema.xml
│ └── launcher-row.h
├── caffeine-quick-setting
│ ├── prefs
│ │ ├── stylesheet
│ │ │ └── common.css
│ │ ├── phosh-plugin-prefs-caffeine-quick-setting.gresources.xml
│ │ └── caffeine-quick-setting-prefs.h
│ ├── caffeine-quick-setting.desktop.in.in
│ ├── phosh-plugin-caffeine-quick-setting.gresources.xml
│ ├── caffeine-quick-setting.h
│ └── interval-row.h
├── location-quick-setting
│ ├── phosh-plugin-location-quick-setting.gresources.xml
│ ├── location-quick-setting.desktop.in.in
│ ├── qs.ui
│ ├── location-quick-setting.h
│ └── icons
│ │ └── location-quick-setting-symbolic.svg
├── night-light-quick-setting
│ ├── phosh-plugin-night-light-quick-setting.gresources.xml
│ ├── night-light-quick-setting.desktop.in.in
│ ├── qs.ui
│ └── night-light-quick-setting.h
├── simple-custom-quick-setting
│ ├── phosh-plugin-simple-custom-quick-setting.gresources.xml
│ ├── simple-custom-quick-setting.desktop.in.in
│ └── simple-custom-quick-setting.h
├── upcoming-events
│ ├── prefs
│ │ ├── phosh-plugin-prefs-upcoming-events.gresources.xml
│ │ ├── upcoming-events-prefs.h
│ │ └── meson.build
│ ├── upcoming-events.desktop.in.in
│ ├── icons
│ │ ├── upcoming-events-skip-empty-symbolic.svg
│ │ └── upcoming-events-all-symbolic.svg
│ ├── upcoming-events.h
│ ├── event-list.h
│ ├── phosh-plugin-upcoming-events.gresources.xml
│ ├── sm.puri.phosh.plugins.upcoming-events.gschema.xml
│ └── mobi.phosh.Shell.CalendarServer.xml
├── pomodoro-quick-setting
│ ├── prefs
│ │ ├── phosh-plugin-prefs-pomodoro-quick-setting.gresources.xml
│ │ └── pomodoro-quick-setting-prefs.h
│ ├── pomodoro-quick-setting.desktop.in.in
│ ├── phosh-plugin-pomodoro-quick-setting.gresources.xml
│ ├── qs.ui
│ ├── pomodoro-quick-setting.h
│ └── icons
│ │ └── pomodoro-off-symbolic.svg
├── dark-mode-quick-setting
│ ├── dark-mode-quick-setting.desktop.in.in
│ ├── icons
│ │ ├── dark-mode-symbolic.svg
│ │ └── dark-mode-disabled-symbolic.svg
│ ├── phosh-plugin-dark-mode-quick-setting.gresources.xml
│ ├── qs.ui
│ └── dark-mode-quick-setting.h
├── scaling-quick-setting
│ ├── scaling-quick-setting.desktop.in.in
│ ├── phosh-plugin-scaling-quick-setting.gresources.xml
│ ├── scale-row.h
│ └── scaling-quick-setting.h
└── phosh-plugin.h.in
├── tests
├── system
│ ├── meson.build
│ ├── share
│ │ └── desktop-directories
│ │ │ ├── X-Phosh-foo.directory
│ │ │ └── broken.directory
│ └── config
│ │ └── meson.build
├── data
│ ├── phoc-notch.ini
│ ├── cat.jpg
│ ├── phoc-landscape.ini
│ └── phosh,tiny.json
├── phosh-logo.png
├── user
│ ├── meson.build
│ ├── config-high-contrast
│ │ └── glib-2.0
│ │ │ └── settings
│ │ │ ├── keyfile
│ │ │ └── meson.build
│ ├── config
│ │ └── meson.build
│ └── share
│ │ └── applications
│ │ └── demo.app.Second.desktop
├── integration
│ ├── keyfile
│ ├── run-pytest.in
│ └── meson.build
├── services
│ ├── org.gnome.Phosh.MockSearchProvider.service.in
│ ├── testlib-search-provider-app.h
│ └── meson.build
├── screenshot-no-anim-overrides.css
├── phosh-test.gresources.xml
├── testlib-head-stub.h
├── stubs
│ ├── lockscreen-manager.c
│ ├── evil-icon.h
│ ├── meson.build
│ └── app-tracker.c
├── test-overview.c
├── test-connectivity-info.c
├── testlib-calls-mock.h
├── test-activity.c
├── test-power-menu.c
├── testlib-mpris-mock.h
├── test-media-player.c
└── testlib-emergency-calls.h
├── src
├── phosh-marshalers.list
├── monitor
│ ├── meson.build
│ └── gamma-table.h
├── dbus
│ ├── org.gnome.SettingsDaemon.Color.xml
│ ├── org.freedesktop.hostname1.xml
│ ├── org.freedesktop.GeoClue2.Manager.xml
│ ├── org.freedesktop.GeoClue2.Agent.xml
│ ├── org.gnome.SettingsDaemon.Rfkill.xml
│ ├── mobi.phosh.Shell.DebugControl.xml
│ └── org.gnome.ScreenSaver.xml
├── gtk-list-models
│ └── meson.build
├── notifications
│ ├── timestamp-label-priv.h
│ ├── mount-notification.h
│ ├── notification-banner.h
│ ├── timestamp-label.h
│ ├── notify-feedback.h
│ └── meson.build
├── wall-clock-priv.h
├── system-prompter.h
├── settings
│ ├── meson.build
│ ├── audio-devices.h
│ ├── audio-device-row.h
│ └── audio-settings.h
├── wwan
│ ├── meson.build
│ ├── phosh-wwan-mm.h
│ ├── phosh-wwan-ofono.h
│ └── wwan-manager.h
├── thumbnail-priv.h
├── bidi.h
├── lockscreen-manager-priv.h
├── ui
│ ├── timestamp-label.ui
│ ├── quick-settings-box.ui
│ ├── emergency-contact-row.ui
│ ├── password-entry.ui
│ ├── status-icon.ui
│ ├── revealer.ui
│ └── widget-box.ui
├── bt-info.h
├── hks-info.h
├── power-menu-manager.h
├── vpn-info.h
├── wifi-info.h
├── call.h
├── torch-info.h
├── docked-info.h
├── password-entry.h
├── suspend-manager.h
├── mount-operation.h
├── feedbackinfo.h
├── location-info.h
├── mount-manager.h
├── fake-clock.h
├── system-prompt.h
├── battery-manager.h
├── bt-device-row.h
├── connectivity-info.h
├── network-auth-manager.h
├── run-command-manager.h
├── wifi-status-page.h
├── splash-manager.h
├── quick-settings.h
├── settings.h
├── emergency-menu.h
├── backlight-sysfs.h
├── lockshield.h
├── feedback-status-page.h
├── cell-broadcast-manager.h
├── default-media-player.h
├── clamp.h
├── lockscreen-priv.h
├── call-notification.h
├── idle-manager.h
├── cell-broadcast-prompt.h
├── fader.h
├── connectivity-manager.h
├── bt-status-page.h
├── auto-brightness-bucket.h
├── brightness-settings.h
├── metainfo-cache.h
├── widget-box.h
├── wifi-network-row.h
├── location-manager.h
├── app-grid-folder-button.h
├── gtk-mount-manager.h
├── wwan-info.h
├── arrow.h
├── contrib
│ └── gnome-bluetooth
│ │ ├── bluetooth-device.h
│ │ └── gnome-bluetooth-enum-types.h
├── portal-access-manager.h
├── ambient.h
├── app-tracker.h
├── manager.h
├── auth-prompt-option.h
├── battery-info.h
├── launcher-entry-manager.h
├── osd-window.h
├── system-modal.h
├── proximity.h
├── power-menu.h
├── hks-manager.h
├── sensor-proxy-manager.h
├── splash.h
├── libphosh.h
├── style-manager.h
├── keyboard-events.h
├── debug-control.h
├── osk-manager.h
├── screen-saver-manager.h
├── run-command-dialog.h
├── polkit-auth-prompt.h
├── activity.h
├── app-list-model.h
├── docked-manager.h
├── emergency-calls-manager.h
├── overview.h
├── portal-request.h
├── lockscreen-bg.h
├── vpn-manager.h
├── polkit-auth-agent.h
├── top-panel-bg.h
├── emergency-contact-row.h
├── udev-manager.h
├── app-grid.h
├── search
│ └── meson.build
└── stylesheet
│ └── adwaita-dark.css
├── .gitattributes
├── .github
└── FUNDING.yml
├── po
├── meson.build
├── POTFILES.skip
└── LINGUAS
├── screenshots
├── phosh-locked.png
└── phosh-overview.png
├── subprojects
├── glib.wrap
├── libfeedback.wrap
├── libhandy.wrap
├── gmobile.wrap
├── libcall-ui.wrap
└── gvc.wrap
├── data
├── systemd
│ ├── phosh.session.conf.in
│ ├── mobi.phosh.Shell.target
│ ├── mobi.phosh.OSK.target
│ └── mobi.phosh.Shell.service.in
├── phosh-shell.portal
├── mobi.phosh.Shell.Search.service.in
├── icons
│ ├── meson.build
│ ├── input-powerbar-symbolic.svg
│ ├── chat-symbolic.svg
│ ├── padlock-symbolic.svg
│ ├── asterisk-symbolic.svg
│ ├── mobile-data-symbolic.svg
│ ├── eye-not-looking-symbolic.svg
│ ├── chat-none-symbolic.svg
│ ├── torch-enabled-symbolic.svg
│ ├── moon-filled-symbolic.svg
│ ├── screenshot-portrait-symbolic.svg
│ ├── network-wireless-disabled-symbolic.svg
│ ├── no-notifications-symbolic.svg
│ ├── network-cellular-no-data-signal-excellent-symbolic.svg
│ ├── camera-hardware-disabled-symbolic.svg
│ ├── torch-disabled-symbolic.svg
│ ├── network-cellular-no-data-signal-none-symbolic.svg
│ ├── network-cellular-no-data-signal-ok-symbolic.svg
│ ├── app-close-symbolic.svg
│ ├── network-cellular-no-data-signal-good-symbolic.svg
│ ├── network-cellular-no-data-signal-weak-symbolic.svg
│ ├── mobile-data-disabled-symbolic.svg
│ └── audio-handsfree-symbolic.svg
├── phosh.session.desktop.in.in
├── wayland-sessions
│ └── phosh.desktop
├── mobi.phosh.Shell.desktop.in.in
├── phoc.ini
├── phosh-portals.conf
└── leak-suppress.txt
├── calendar-server
├── CalendarServer.service.in
└── calendar-debug.h
├── .gitlab-ci
├── libphosh-test.c
├── asan.Dockerfile
├── Makefile
├── README.md
├── check-po
├── g-style
├── screenshot.Dockerfile
└── debian.Dockerfile
├── tools
├── montage-screenshots
├── build-symbols-file
├── set_brightness
├── check-end-session
├── check-screenshot
├── run_tool.in
├── check-screen-saver
├── check-exported-symbols
├── check-osd
└── check-deprecated-ui-props
├── docs
├── urlmap.js
└── phosh-dbus-sm.puri.OSK0.md
├── searchd
├── meson.build
└── searchd.h
├── .editorconfig
├── .dir-locals.el
├── .gitignore
└── gcovr.cfg
/.gitmodules:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/debian/phosh.docs:
--------------------------------------------------------------------------------
1 | NEWS
2 |
--------------------------------------------------------------------------------
/.ruff.toml:
--------------------------------------------------------------------------------
1 | line-length = 100
2 |
--------------------------------------------------------------------------------
/debian/source/format:
--------------------------------------------------------------------------------
1 | 3.0 (native)
2 |
--------------------------------------------------------------------------------
/plugins/media-players/stylesheet/common.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/tests/system/meson.build:
--------------------------------------------------------------------------------
1 | subdir('config')
2 |
--------------------------------------------------------------------------------
/debian/libphosh-0.45-0.install:
--------------------------------------------------------------------------------
1 | usr/lib/*/libphosh-0.??.so.0
2 |
--------------------------------------------------------------------------------
/debian/gir1.2-phosh-0-dev.install:
--------------------------------------------------------------------------------
1 | usr/share/gir-1.0/Phosh-0.gir
2 |
--------------------------------------------------------------------------------
/src/phosh-marshalers.list:
--------------------------------------------------------------------------------
1 | VOID:OBJECT,STRING
2 | VOID:STRING,VARIANT
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | src/libphosh-abi.dump export-ignore gitlab-generated
2 |
--------------------------------------------------------------------------------
/debian/phosh-doc.install:
--------------------------------------------------------------------------------
1 | usr/share/doc/phosh-0 /usr/share/doc/phosh-doc/
2 |
--------------------------------------------------------------------------------
/debian/phosh-mobile-tweaks.install:
--------------------------------------------------------------------------------
1 | usr/share/glib-2.0/schemas/*.override
2 |
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | github: phoshmobi
2 | custom: https://ev.phosh.mobi/donate/
3 |
--------------------------------------------------------------------------------
/debian/phosh-dev.install:
--------------------------------------------------------------------------------
1 | usr/include/phosh/
2 | usr/lib/*/pkgconfig/phosh*.pc
3 |
--------------------------------------------------------------------------------
/debian/phosh.triggers.in:
--------------------------------------------------------------------------------
1 | interest-noawait /usr/lib/#MULTIARCH#/phosh/plugins
2 |
--------------------------------------------------------------------------------
/po/meson.build:
--------------------------------------------------------------------------------
1 | i18n = import('i18n')
2 | i18n.gettext('phosh', preset: 'glib')
3 |
--------------------------------------------------------------------------------
/tests/data/phoc-notch.ini:
--------------------------------------------------------------------------------
1 | [output:HEADLESS-1]
2 | mode = 1080x2340
3 | scale = 3
--------------------------------------------------------------------------------
/tests/data/cat.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PhoshMobi/phosh/HEAD/tests/data/cat.jpg
--------------------------------------------------------------------------------
/debian/phosh-doc.links:
--------------------------------------------------------------------------------
1 | usr/share/doc/phosh-doc/phosh-0 usr/share/devhelp/books/phosh-0
2 |
--------------------------------------------------------------------------------
/tests/phosh-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PhoshMobi/phosh/HEAD/tests/phosh-logo.png
--------------------------------------------------------------------------------
/tests/user/meson.build:
--------------------------------------------------------------------------------
1 | subdir('config')
2 | subdir('config-high-contrast/glib-2.0/settings/')
3 |
--------------------------------------------------------------------------------
/screenshots/phosh-locked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PhoshMobi/phosh/HEAD/screenshots/phosh-locked.png
--------------------------------------------------------------------------------
/debian/clean:
--------------------------------------------------------------------------------
1 | debian/phosh.postinst
2 | debian/phosh.postrm
3 | debian/phosh.service
4 | debian/phosh.triggers
5 |
--------------------------------------------------------------------------------
/screenshots/phosh-overview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PhoshMobi/phosh/HEAD/screenshots/phosh-overview.png
--------------------------------------------------------------------------------
/debian/not-installed:
--------------------------------------------------------------------------------
1 | usr/include/gmobile/
2 | usr/lib/*/libphosh-0.??.a
3 | usr/lib/*/girepository-1.0/Phosh-0.typelib
4 |
--------------------------------------------------------------------------------
/plugins/mobile-data-quick-setting/icons/mobile-data-quick-setting-symbolic.svg:
--------------------------------------------------------------------------------
1 | ../../../data/icons/mobile-data-symbolic.svg
--------------------------------------------------------------------------------
/subprojects/glib.wrap:
--------------------------------------------------------------------------------
1 | [wrap-git]
2 | directory=glib
3 | url=https://gitlab.gnome.org/GNOME/glib.git
4 | revision=2.69.0
5 |
6 |
--------------------------------------------------------------------------------
/data/systemd/phosh.session.conf.in:
--------------------------------------------------------------------------------
1 | [Unit]
2 | @gsd_wants@
3 |
4 | Wants=mobi.phosh.OSK.target
5 |
6 | Requires=@app_id@.target
7 |
--------------------------------------------------------------------------------
/debian/phosh.manpages:
--------------------------------------------------------------------------------
1 | usr/share/man/man1/phosh.1
2 | usr/share/man/man1/phosh-session.1
3 | usr/share/man/man5/phosh.gsettings.5
4 |
--------------------------------------------------------------------------------
/debian/libphosh-0.45-dev.install:
--------------------------------------------------------------------------------
1 | usr/include/libphosh-0.??/
2 | usr/lib/*/libphosh-0.??.so
3 | usr/lib/*/pkgconfig/libphosh-0.??.pc
4 |
--------------------------------------------------------------------------------
/calendar-server/CalendarServer.service.in:
--------------------------------------------------------------------------------
1 | [D-BUS Service]
2 | Name=@app_id@.CalendarServer
3 | Exec=@libexecdir@/@shell@-calendar-server
4 |
--------------------------------------------------------------------------------
/data/phosh-shell.portal:
--------------------------------------------------------------------------------
1 | [portal]
2 | DBusName=mobi.phosh.Shell.Portal
3 | Interfaces=org.freedesktop.impl.portal.Access
4 | UseIn=phosh
5 |
--------------------------------------------------------------------------------
/debian/phosh.dirs:
--------------------------------------------------------------------------------
1 | /usr/share/phosh
2 | /usr/lib/${DEB_HOST_MULTIARCH}/phosh/plugins
3 | /usr/lib/${DEB_HOST_MULTIARCH}/phosh/plugins/prefs
4 |
--------------------------------------------------------------------------------
/subprojects/libfeedback.wrap:
--------------------------------------------------------------------------------
1 | [wrap-git]
2 | directory=feedbackd
3 | url=https://source.puri.sm/Librem5/feedbackd.git
4 | revision=v0.7.0
5 |
--------------------------------------------------------------------------------
/subprojects/libhandy.wrap:
--------------------------------------------------------------------------------
1 | [wrap-git]
2 | directory=libhandy
3 | url=https://gitlab.gnome.org/GNOME/libhandy.git
4 | revision=1.2.0
5 |
6 |
--------------------------------------------------------------------------------
/data/mobi.phosh.Shell.Search.service.in:
--------------------------------------------------------------------------------
1 | [D-BUS Service]
2 | Name=mobi.phosh.Shell.Search
3 | Exec=@libexecdir@/phosh-searchd --gapplication-service
4 |
--------------------------------------------------------------------------------
/subprojects/gmobile.wrap:
--------------------------------------------------------------------------------
1 | [wrap-git]
2 | directory=gmobile
3 | url=https://gitlab.gnome.org/World/Phosh/gmobile.git
4 | revision=v0.1.0
5 | depth=1
6 |
--------------------------------------------------------------------------------
/tests/user/config-high-contrast/glib-2.0/settings/keyfile:
--------------------------------------------------------------------------------
1 | [org/gnome/desktop/interface]
2 | gtk-theme='HighContrast'
3 | icon-theme='HighContrast'
4 |
--------------------------------------------------------------------------------
/subprojects/libcall-ui.wrap:
--------------------------------------------------------------------------------
1 | [wrap-git]
2 | directory=libcall-ui
3 | url=https://gitlab.gnome.org/World/Phosh/libcall-ui/
4 | revision=v0.1.5
5 | depth=1
6 |
--------------------------------------------------------------------------------
/tests/system/share/desktop-directories/X-Phosh-foo.directory:
--------------------------------------------------------------------------------
1 | [Desktop Entry]
2 | Name=Phosh Test Folder
3 | Icon=applications-other
4 | Type=Directory
5 |
--------------------------------------------------------------------------------
/data/icons/meson.build:
--------------------------------------------------------------------------------
1 | install_data(
2 | 'mobi.phosh.Shell-symbolic.svg',
3 | install_dir: join_paths(datadir, 'icons', 'hicolor', 'symbolic', 'apps'),
4 | )
5 |
--------------------------------------------------------------------------------
/plugins/calendar/stylesheet/common.css:
--------------------------------------------------------------------------------
1 | phosh-calendar {
2 | background-color: @phosh_notification_bg_color;
3 | border-radius: 12px;
4 | padding: 8px;
5 | }
6 |
--------------------------------------------------------------------------------
/data/phosh.session.desktop.in.in:
--------------------------------------------------------------------------------
1 | [GNOME Session]
2 | # Translators: this is the session name, no need to translate it
3 | Name=Phosh
4 | RequiredComponents=@required_components@
5 |
--------------------------------------------------------------------------------
/plugins/emergency-info/stylesheet/common.css:
--------------------------------------------------------------------------------
1 | phosh-emergency-info {
2 | background-color: @phosh_notification_bg_color;
3 | border-radius: 12px;
4 | padding: 0 8px
5 | }
6 |
--------------------------------------------------------------------------------
/tests/integration/keyfile:
--------------------------------------------------------------------------------
1 | [sm/puri/phosh/plugins]
2 | quick-settings=['caffeine-quick-setting', 'location-quick-setting', 'pomodoro-quick-setting', 'wifi-hotspot-quick-setting']
3 |
--------------------------------------------------------------------------------
/subprojects/gvc.wrap:
--------------------------------------------------------------------------------
1 | [wrap-git]
2 | directory=gvc
3 | url=https://gitlab.gnome.org/GNOME/libgnome-volume-control.git
4 | revision=5f9768a2eac29c1ed56f1fbb449a77a3523683b6
5 | depth=1
6 |
--------------------------------------------------------------------------------
/tests/services/org.gnome.Phosh.MockSearchProvider.service.in:
--------------------------------------------------------------------------------
1 | [D-BUS Service]
2 | Name=org.gnome.Phosh.MockSearchProvider
3 | Exec=@ABS_BUILDDIR@/tests/services/mock-search-provider
4 |
--------------------------------------------------------------------------------
/tests/system/share/desktop-directories/broken.directory:
--------------------------------------------------------------------------------
1 | # not a desktop file, missing header, parsing fails
2 | Name=Phosh Test Folder
3 | Icon=applications-other
4 | Type=Directory
5 |
--------------------------------------------------------------------------------
/debian/phosh-common.install:
--------------------------------------------------------------------------------
1 | usr/lib/systemd/user/mobi.phosh.OSK.target
2 | usr/share/glib-2.0/schemas/mobi.phosh.shell.enums.xml
3 | usr/share/glib-2.0/schemas/mobi.phosh.shell.gschema.xml
4 |
--------------------------------------------------------------------------------
/plugins/wifi-hotspot-quick-setting/style.css:
--------------------------------------------------------------------------------
1 | phosh-wifi-hotspot-status-page .password-entry,
2 | phosh-wifi-hotspot-status-page .ssid {
3 | font-size: 1.25rem;
4 | font-weight: bold;
5 | }
6 |
--------------------------------------------------------------------------------
/data/wayland-sessions/phosh.desktop:
--------------------------------------------------------------------------------
1 | [Desktop Entry]
2 | Name=Phosh
3 | Comment=Phone Shell
4 | Comment=This session logs you into Phosh
5 | Exec=phosh-session
6 | Type=Application
7 | DesktopNames=Phosh;GNOME;
8 |
--------------------------------------------------------------------------------
/tests/data/phoc-landscape.ini:
--------------------------------------------------------------------------------
1 | [output:HEADLESS-1]
2 | mode = 1440x720
3 | scale = 2
4 |
5 | [output:WL-1]
6 | mode = 720x360
7 | scale = 1
8 |
9 | [output:X11-1]
10 | mode = 720x360
11 | scale = 1
12 |
--------------------------------------------------------------------------------
/tests/system/config/meson.build:
--------------------------------------------------------------------------------
1 | # Hack to ensure the dir actually exists
2 | custom_target(
3 | 'dummy-config-dir',
4 | command: ['touch', 'dummy-file'],
5 | install: false,
6 | output: 'dummy-file',
7 | )
8 |
--------------------------------------------------------------------------------
/plugins/media-players/media-players.desktop.in.in:
--------------------------------------------------------------------------------
1 | [Plugin]
2 | Id=@name@
3 | Name=Media Players
4 | Types=lockscreen;
5 | Comment=Track currently running media players
6 | Plugin=@plugins_dir@/libphosh-plugin-@name@.so
7 |
--------------------------------------------------------------------------------
/tests/user/config/meson.build:
--------------------------------------------------------------------------------
1 | # Hack to ensure the dir actually exists
2 | custom_target(
3 | 'dummy-config-dir-user',
4 | command: ['touch', 'dummy-file'],
5 | install: false,
6 | output: 'dummy-file',
7 | )
8 |
--------------------------------------------------------------------------------
/tests/user/config-high-contrast/glib-2.0/settings/meson.build:
--------------------------------------------------------------------------------
1 | copy_keyfile_hc = custom_target(
2 | 'copy-hc-keyfile',
3 | input: 'keyfile',
4 | output: 'keyfile',
5 | command: ['cp', '@INPUT@', '@OUTPUT@'],
6 | )
7 |
--------------------------------------------------------------------------------
/data/icons/input-powerbar-symbolic.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/debian/tests/control:
--------------------------------------------------------------------------------
1 | Test-Command: /usr/libexec/phosh --help
2 | Restrictions: superficial
3 | Depends: phosh
4 |
5 | Test-Command: pkg-config --libs --cflags libphosh-0.45
6 | Restrictions: superficial
7 | Depends: libphosh-0.45-dev
8 |
--------------------------------------------------------------------------------
/plugins/ticket-box/stylesheet/common.css:
--------------------------------------------------------------------------------
1 | phosh-ticket-box {
2 | background-color: @phosh_notification_bg_color;
3 | border-radius: 12px;
4 | padding: 8px;
5 | }
6 |
7 | phosh-ticket-row {
8 | margin-top: 6px;
9 | }
10 |
--------------------------------------------------------------------------------
/src/monitor/meson.build:
--------------------------------------------------------------------------------
1 | phosh_monitor_inc = include_directories('.')
2 |
3 | phosh_monitor_headers = files('gamma-table.h', 'head-priv.h', 'monitor.h')
4 |
5 | phosh_monitor_sources = files('gamma-table.c', 'head.c', 'monitor.c')
6 |
--------------------------------------------------------------------------------
/plugins/launcher-box/launcher-box.desktop.in.in:
--------------------------------------------------------------------------------
1 | [Plugin]
2 | Id=@name@
3 | Name=Launcher Box
4 | Types=lockscreen;
5 | Comment=Add launchers to the lock screen. This plugin is experimental.
6 | Plugin=@plugins_dir@/libphosh-plugin-@name@.so
7 |
--------------------------------------------------------------------------------
/tests/screenshot-no-anim-overrides.css:
--------------------------------------------------------------------------------
1 | /* These overrides help us get visually consistent results from screenshots,
2 | * to aid in automated diffs against a baseline. */
3 | .phosh-lockscreen-arrow {
4 | transition: none;
5 | animation: none;
6 | }
7 |
--------------------------------------------------------------------------------
/plugins/caffeine-quick-setting/prefs/stylesheet/common.css:
--------------------------------------------------------------------------------
1 | .caffeine-spinbutton {
2 | font-size: 200%;
3 | }
4 |
5 | .caffeine-spinbutton > text {
6 | padding: 10px;
7 | }
8 |
9 | .caffeine-spinbutton-separator {
10 | font-size: 400%;
11 | }
12 |
--------------------------------------------------------------------------------
/plugins/calendar/calendar.desktop.in.in:
--------------------------------------------------------------------------------
1 | [Plugin]
2 | # Translators: This is an internal id, no need to translate it
3 | Id=@name@
4 | Name=Calendar
5 | Types=lockscreen;
6 | Comment=A simple calendar widget
7 | Plugin=@plugins_dir@/libphosh-plugin-@name@.so
8 | NoDisplay=true
--------------------------------------------------------------------------------
/src/dbus/org.gnome.SettingsDaemon.Color.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.gitlab-ci/libphosh-test.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2024 The Phosh Developers
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Guido Günther
7 | */
8 |
9 | #include
10 |
11 | int main(void)
12 | {
13 | }
14 |
--------------------------------------------------------------------------------
/tests/phosh-test.gresources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | phosh-logo.png
5 | screenshot-no-anim-overrides.css
6 |
7 |
8 |
--------------------------------------------------------------------------------
/tests/integration/run-pytest.in:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | set -e
4 |
5 | export WLR_RENDERER=pixman
6 | export WLR_BACKENDS=headless
7 | export TOPSRCDIR=@ABS_SRCDIR@
8 | export TOPBUILDDIR=@ABS_BUILDDIR@
9 | export PHOSH_DEBUG=fake-builtin
10 |
11 | exec umockdev-wrapper pytest $@
12 |
--------------------------------------------------------------------------------
/plugins/ticket-box/prefs/phosh-plugin-prefs-ticket-box.gresources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ticket-box-prefs.ui
5 |
6 |
7 |
--------------------------------------------------------------------------------
/tests/integration/meson.build:
--------------------------------------------------------------------------------
1 | run_data = configuration_data()
2 | run_data.set('ABS_BUILDDIR', meson.project_build_root())
3 | run_data.set('ABS_SRCDIR', meson.project_source_root())
4 | configure_file(
5 | input: 'run-pytest.in',
6 | output: 'run-pytest',
7 | configuration: run_data,
8 | )
9 |
--------------------------------------------------------------------------------
/plugins/location-quick-setting/phosh-plugin-location-quick-setting.gresources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | qs.ui
5 |
6 |
7 |
--------------------------------------------------------------------------------
/tests/data/phosh,tiny.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "phosh tiny",
3 | "x-res": 360,
4 | "y-res": 720,
5 | "border-radius": 30,
6 | "width": 68,
7 | "height": 145,
8 | "cutouts" : [
9 | {
10 | "name": "notch",
11 | "path": "M 160 0 V 20 H 200 V 0 Z"
12 | }
13 | ]
14 | }
15 |
--------------------------------------------------------------------------------
/plugins/mobile-data-quick-setting/phosh-plugin-mobile-data-quick-setting.gresources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | qs.ui
5 |
6 |
7 |
--------------------------------------------------------------------------------
/plugins/night-light-quick-setting/phosh-plugin-night-light-quick-setting.gresources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | qs.ui
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/gtk-list-models/meson.build:
--------------------------------------------------------------------------------
1 | phosh_gtk_list_models_inc = include_directories('.')
2 |
3 | phosh_gtk_list_models_sources = files(
4 | 'gtkfilterlistmodel.c',
5 | 'gtkfilterlistmodel.h',
6 | 'gtkrbtree.c',
7 | 'gtkrbtreeprivate.h',
8 | 'gtksortlistmodel.c',
9 | 'gtksortlistmodel.h',
10 | )
11 |
--------------------------------------------------------------------------------
/tools/montage-screenshots:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | SCREENSHOT_ROOT=${1:-_build}/tests/screenshots/
4 |
5 | for dir in $(find "${SCREENSHOT_ROOT}" -mindepth 1 -maxdepth 1 -type d); do
6 | out="${dir}.png"
7 | echo "Assembling ${out}"
8 | montage -mode concatenate "$dir/*.png" "${out}"
9 | done
10 |
--------------------------------------------------------------------------------
/plugins/simple-custom-quick-setting/phosh-plugin-simple-custom-quick-setting.gresources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | qs.ui
5 |
6 |
7 |
--------------------------------------------------------------------------------
/plugins/upcoming-events/prefs/phosh-plugin-prefs-upcoming-events.gresources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | upcoming-events-prefs.ui
5 |
6 |
7 |
--------------------------------------------------------------------------------
/data/systemd/mobi.phosh.Shell.target:
--------------------------------------------------------------------------------
1 | [Unit]
2 | Description=Phosh
3 | DefaultDependencies=no
4 |
5 | Requisite=gnome-session-initialized.target
6 | PartOf=gnome-session-initialized.target
7 | Before=gnome-session-initialized.target
8 |
9 | Requires=mobi.phosh.Shell.service
10 | After=mobi.phosh.Shell.service
11 |
--------------------------------------------------------------------------------
/plugins/pomodoro-quick-setting/prefs/phosh-plugin-prefs-pomodoro-quick-setting.gresources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | prefs.ui
5 |
6 |
7 |
--------------------------------------------------------------------------------
/tools/build-symbols-file:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | set -e
4 |
5 | VERSION="$1"
6 | API_SYMBOLS="$2"
7 | PLUGIN_SYMBOLS="$3"
8 |
9 | cat <
2 |
3 |
4 | calendar.ui
5 | stylesheet/common.css
6 |
7 |
8 |
--------------------------------------------------------------------------------
/plugins/upcoming-events/upcoming-events.desktop.in.in:
--------------------------------------------------------------------------------
1 | [Plugin]
2 | Id=@name@
3 | Name=Upcoming Events
4 | Types=lockscreen;
5 | Comment=Show upcoming calendar events
6 | Plugin=@plugins_dir@/libphosh-plugin-@name@.so
7 |
8 | [Prefs]
9 | Id=@name@-prefs
10 | Plugin=@plugin_prefs_dir@/libphosh-plugin-prefs-@name@.so
11 |
--------------------------------------------------------------------------------
/plugins/ticket-box/phosh-plugin-ticket-box.gresources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ticket-box.ui
5 | stylesheet/common.css
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/monitor/gamma-table.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2023 Phosh.mobi e.V.
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 |
11 | G_BEGIN_DECLS
12 |
13 | void phosh_gamma_table_fill (guint16 *table, guint32 ramp_size, guint32 temp);
14 |
15 | G_END_DECLS
16 |
--------------------------------------------------------------------------------
/src/notifications/timestamp-label-priv.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright © 2020 Lugsole
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 |
11 |
12 | G_BEGIN_DECLS
13 |
14 | char *phosh_time_diff_in_words (GDateTime *dt, GDateTime *dt_now);
15 |
16 | G_END_DECLS
17 |
--------------------------------------------------------------------------------
/debian/gbp.conf:
--------------------------------------------------------------------------------
1 | [DEFAULT]
2 | debian-branch = main
3 | debian-tag = v%(version)s
4 | debian-tag-msg = %(pkg)s v%(version)s
5 |
6 | [tag]
7 | sign-tags = true
8 |
9 | [dch]
10 | postedit = sed -i s"@^\( \+version: '\)[0-9][^']\+\(',\)@\1$GBP_DEBIAN_VERSION\2@" meson.build
11 | ignore-regex = ((Signed-off|Acked)-by:|Part-of:)
12 |
--------------------------------------------------------------------------------
/src/wall-clock-priv.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2025 The Phosh Developers
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 |
11 | G_BEGIN_DECLS
12 |
13 | char *phosh_wall_clock_strip_am_pm (PhoshWallClock *self, const char *time);
14 |
15 | G_END_DECLS
16 |
--------------------------------------------------------------------------------
/debian/phosh-plugins.install:
--------------------------------------------------------------------------------
1 | usr/share/glib-2.0/schemas/sm.puri.phosh.plugins.*.gschema.xml
2 | usr/share/glib-2.0/schemas/mobi.phosh.plugins.*.gschema.xml
3 | usr/lib/*/phosh/plugins/libphosh-plugin-*.so
4 | usr/lib/*/phosh/plugins/prefs/libphosh-plugin-prefs-*.so
5 | usr/lib/*/phosh/plugins/*.plugin
6 | usr/share/phosh/plugins/icons/*.svg
7 |
--------------------------------------------------------------------------------
/docs/urlmap.js:
--------------------------------------------------------------------------------
1 | // SPDX-FileCopyrightText: 2024 The Phosh Developers
2 | // SPDX-License-Identifier: GPL-3.0-or-later
3 |
4 | baseURLs = [
5 | [ 'GLib', 'https://docs.gtk.org/glib/' ],
6 | [ 'GObject', 'https://docs.gtk.org/gobject/' ],
7 | [ 'Gio', 'https://docs.gtk.org/gio/' ],
8 | [ 'Gtk', 'https://docs.gtk.org/gtk3/' ]
9 | ]
10 |
--------------------------------------------------------------------------------
/plugins/dark-mode-quick-setting/dark-mode-quick-setting.desktop.in.in:
--------------------------------------------------------------------------------
1 | [Plugin]
2 | # Translators: This is an internal id, no need to translate it
3 | Id=@name@
4 | Name=Dark Mode / Color Scheme Quick Setting
5 | Types=quick-setting;
6 | Comment=Toggle dark mode
7 | Plugin=@plugins_dir@/libphosh-plugin-@name@.so
8 | Icon=dark-mode-quick-setting
9 |
--------------------------------------------------------------------------------
/plugins/media-players/phosh-plugin-media-players.gresources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | media-players.ui
5 | stylesheet/common.css
6 |
7 |
8 |
--------------------------------------------------------------------------------
/plugins/mobile-data-quick-setting/mobile-data-quick-setting.desktop.in.in:
--------------------------------------------------------------------------------
1 | [Plugin]
2 | # Translators: This is an internal id, no need to translate it
3 | Id=@name@
4 | Name=Mobile Data Quick Setting
5 | Types=quick-setting;
6 | Comment=Toggle mobile data on/off
7 | Plugin=@plugins_dir@/libphosh-plugin-@name@.so
8 | Icon=mobile-data-quick-setting
9 |
--------------------------------------------------------------------------------
/plugins/night-light-quick-setting/night-light-quick-setting.desktop.in.in:
--------------------------------------------------------------------------------
1 | [Plugin]
2 | # Translators: This is an internal id, no need to translate it
3 | Id=@name@
4 | Name=Night Light Quick Setting
5 | Types=quick-setting;
6 | Comment=Toggle night light on/off
7 | Plugin=@plugins_dir@/libphosh-plugin-@name@.so
8 | Icon=night-light-quick-setting
9 |
--------------------------------------------------------------------------------
/plugins/ticket-box/ticket-box.desktop.in.in:
--------------------------------------------------------------------------------
1 | [Plugin]
2 | Id=@name@
3 | Name=Ticket Box
4 | Types=lockscreen;
5 | Comment=Show PDFs on the lock screen. This plugin is experimental.
6 | Plugin=@plugins_dir@/libphosh-plugin-@name@.so
7 |
8 | [Prefs]
9 | Id=@name@-prefs
10 | Plugin=@plugin_prefs_dir@/libphosh-plugin-prefs-@name@.so
11 |
--------------------------------------------------------------------------------
/plugins/wifi-hotspot-quick-setting/wifi-hotspot-quick-setting.desktop.in.in:
--------------------------------------------------------------------------------
1 | [Plugin]
2 | # Translators: This is an internal id, no need to translate it
3 | Id=@name@
4 | Name=Wi-Fi Hotspot Quick Setting
5 | Types=quick-setting;
6 | Comment=Toggle Wi-Fi hotspot on/off
7 | Plugin=@plugins_dir@/libphosh-plugin-@name@.so
8 | Icon=wifi-hotspot-quick-setting
9 |
--------------------------------------------------------------------------------
/po/POTFILES.skip:
--------------------------------------------------------------------------------
1 | src/gtk-list-models/gtkfilterlistmodel.c
2 | src/gtk-list-models/gtksortlistmodel.c
3 | src/settings/gvc-channel-bar.c
4 | subprojects/
5 | plugins/simple-custom-quick-setting/qs.ui
6 | plugins/simple-custom-quick-setting/simple-custom-quick-setting.c
7 | plugins/simple-custom-quick-setting/simple-custom-quick-setting.desktop.in.in
8 |
--------------------------------------------------------------------------------
/plugins/location-quick-setting/location-quick-setting.desktop.in.in:
--------------------------------------------------------------------------------
1 | [Plugin]
2 | # Translators: This is an internal id, no need to translate it
3 | Id=@name@
4 | Name=Location Quick Setting
5 | Types=quick-setting;
6 | Comment=Toggle location services on/off
7 | Plugin=@plugins_dir@/libphosh-plugin-@name@.so
8 | Icon=location-quick-setting
9 |
10 |
--------------------------------------------------------------------------------
/plugins/scaling-quick-setting/scaling-quick-setting.desktop.in.in:
--------------------------------------------------------------------------------
1 | [Plugin]
2 | # Translators: This is an internal id, no need to translate it
3 | Id=@name@
4 | Name=Scaling Quick Setting
5 | Types=quick-setting;
6 | Comment=A quick setting for adjusting the display scaling.
7 | Plugin=@plugins_dir@/libphosh-plugin-@name@.so
8 | Icon=scaling-quick-setting
9 |
--------------------------------------------------------------------------------
/src/dbus/org.freedesktop.hostname1.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/tools/set_brightness:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | B=${1:-100}
4 |
5 | dbus-send --session --type=method_call \
6 | --dest="org.gnome.SettingsDaemon.Power" \
7 | /org/gnome/SettingsDaemon/Power \
8 | org.freedesktop.DBus.Properties.Set \
9 | string:"org.gnome.SettingsDaemon.Power.Screen" \
10 | string:"Brightness" \
11 | variant:int32:${B}
12 |
--------------------------------------------------------------------------------
/plugins/simple-custom-quick-setting/simple-custom-quick-setting.desktop.in.in:
--------------------------------------------------------------------------------
1 | [Plugin]
2 | # Translators: This is an internal id, no need to translate it
3 | Id=@name@
4 | Name=Simple Custom Quick Setting
5 | Types=quick-setting;
6 | Comment=A simple custom quick setting for demonstration purposes.
7 | Plugin=@plugins_dir@/libphosh-plugin-@name@.so
8 | NoDisplay=true
--------------------------------------------------------------------------------
/src/system-prompter.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2018 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #define GCR_API_SUBJECT_TO_CHANGE
10 | #include
11 |
12 | GcrSystemPrompter *phosh_system_prompter_register(void);
13 | void phosh_system_prompter_unregister(void);
14 |
--------------------------------------------------------------------------------
/data/systemd/mobi.phosh.OSK.target:
--------------------------------------------------------------------------------
1 | [Unit]
2 | Description=Phosh On Screen Keyboard
3 | CollectMode=inactive-or-failed
4 |
5 | # Pull in the service
6 | Wants=mobi.phosh.OSK.service
7 |
8 | # Require GNOME session and specify startup ordering
9 | Requisite=gnome-session-initialized.target
10 | After=mobi.phosh.Shell.target
11 | After=mobi.phosh.Phrog.target
12 |
--------------------------------------------------------------------------------
/src/settings/meson.build:
--------------------------------------------------------------------------------
1 | phosh_settings_widgets_headers = files(
2 | 'audio-device-row.h',
3 | 'audio-device.h',
4 | 'audio-devices.h',
5 | 'audio-settings.h',
6 | )
7 |
8 | phosh_settings_widgets_sources = files(
9 | 'audio-device-row.c',
10 | 'audio-device.c',
11 | 'audio-devices.c',
12 | 'audio-settings.c',
13 | 'gvc-channel-bar.c',
14 | )
15 |
--------------------------------------------------------------------------------
/src/wwan/meson.build:
--------------------------------------------------------------------------------
1 | phosh_wwan_inc = include_directories('.')
2 |
3 | phosh_wwan_headers = files(
4 | 'phosh-wwan-iface.h',
5 | 'phosh-wwan-mm.h',
6 | 'phosh-wwan-ofono.h',
7 | 'wwan-manager.h',
8 | )
9 |
10 | phosh_wwan_sources = files(
11 | 'phosh-wwan-iface.c',
12 | 'phosh-wwan-mm.c',
13 | 'phosh-wwan-ofono.c',
14 | 'wwan-manager.c',
15 | )
16 |
--------------------------------------------------------------------------------
/tools/check-end-session:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | set -e
4 |
5 | ACTION="${1:-0}"
6 |
7 | gdbus call --session --dest org.gnome.Shell \
8 | --object-path /org/gnome/SessionManager/EndSessionDialog \
9 | --method org.gnome.SessionManager.EndSessionDialog.Open \
10 | "${ACTION}" 0 30 '["/org/example/com/foo1", "/org/example/com/foo2"]'
11 |
12 |
--------------------------------------------------------------------------------
/debian/phosh.postrm.in:
--------------------------------------------------------------------------------
1 | #! /bin/sh
2 | set -e
3 |
4 | #DEBHELPER#
5 |
6 | case "$1" in
7 | (remove|purge)
8 | if [ -d /usr/lib/#MULTIARCH#/phosh/plugins ]; then
9 | rm -f /usr/lib/#MULTIARCH#/phosh/plugins/giomodule.cache
10 | rm -f /usr/lib/#MULTIARCH#/phosh/plugins/prefs/giomodule.cache
11 | fi
12 | ;;
13 | esac
14 |
--------------------------------------------------------------------------------
/src/thumbnail-priv.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2025 Phosh.mobi e.V.
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Guido Günther
7 | */
8 |
9 | #pragma once
10 |
11 | #include "thumbnail.h"
12 |
13 | G_BEGIN_DECLS
14 |
15 | void phosh_thumbnail_set_ready (PhoshThumbnail *self, gboolean ready);
16 |
17 | G_END_DECLS
18 |
--------------------------------------------------------------------------------
/plugins/caffeine-quick-setting/prefs/phosh-plugin-prefs-caffeine-quick-setting.gresources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | prefs.ui
5 | stylesheet/common.css
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/bidi.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2020 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 | #include
11 |
12 | G_BEGIN_DECLS
13 |
14 | PangoDirection phosh_find_base_dir (const gchar *text,
15 | gint length);
16 |
17 | G_END_DECLS
18 |
--------------------------------------------------------------------------------
/src/dbus/org.freedesktop.GeoClue2.Manager.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/plugins/upcoming-events/icons/upcoming-events-skip-empty-symbolic.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/plugins/emergency-info/prefs/phosh-plugin-prefs-emergency-info.gresources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | emergency-info-prefs.ui
5 | emergency-info-prefs-row.ui
6 |
7 |
8 |
--------------------------------------------------------------------------------
/plugins/launcher-box/stylesheet/common.css:
--------------------------------------------------------------------------------
1 | phosh-launcher-box {
2 | background-color: @phosh_notification_bg_color;
3 | border-radius: 12px;
4 | padding: 8px;
5 | }
6 |
7 | phosh-launcher-box row label.p-launcher-row-count {
8 | border-radius: 12px;
9 | padding: 2px 6px 2px 6px;
10 | background: shade(@theme_bg_color, 1.2);
11 | color: shade(@theme_fg_color, 0.9);
12 | }
13 |
--------------------------------------------------------------------------------
/plugins/upcoming-events/icons/upcoming-events-all-symbolic.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/lockscreen-manager-priv.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2025 The Phosh Developers
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include "lockscreen-manager.h"
10 | #include "calls-manager.h"
11 |
12 | G_BEGIN_DECLS
13 |
14 | PhoshLockscreenManager *phosh_lockscreen_manager_new (PhoshCallsManager *calls_manager);
15 |
16 | G_END_DECLS
17 |
--------------------------------------------------------------------------------
/tools/check-screenshot:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | set -e
4 |
5 | x=${1:-10}
6 | y=${2:-10}
7 | w=${3:-100}
8 | h=${3:-100}
9 |
10 | gdbus call --session \
11 | --dest "org.gnome.Shell.Screenshot" \
12 | --object-path "/org/gnome/Shell/Screenshot" \
13 | --method "org.gnome.Shell.Screenshot.ScreenshotArea" \
14 | $x $y $w $h true "$PWD/screenshot.png"
15 |
--------------------------------------------------------------------------------
/data/icons/chat-symbolic.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/plugins/emergency-info/emergency-info.desktop.in.in:
--------------------------------------------------------------------------------
1 | [Plugin]
2 | # Translators: This is an internal id, no need to translate it
3 | Id=@name@
4 | Name=Emergency Info
5 | Types=lockscreen;
6 | Comment=Show emergency information and contacts
7 | Plugin=@plugins_dir@/libphosh-plugin-@name@.so
8 |
9 | [Prefs]
10 | Id=@name@-prefs
11 | Plugin=@plugin_prefs_dir@/libphosh-plugin-prefs-@name@.so
12 |
--------------------------------------------------------------------------------
/plugins/launcher-box/phosh-plugin-launcher-box.gresources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | launcher-box.ui
5 | launcher-row.ui
6 | stylesheet/common.css
7 |
8 |
9 |
--------------------------------------------------------------------------------
/data/icons/padlock-symbolic.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/plugins/emergency-info/emergency-info-common.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2022 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #define EMERGENCY_INFO_GKEYFILE_LOCATION "phosh"
10 | #define EMERGENCY_INFO_GKEYFILE_NAME "EmergencyInfo.keyfile"
11 | #define INFO_GROUP "Info"
12 | #define CONTACTS_GROUP "Contacts"
13 |
--------------------------------------------------------------------------------
/plugins/emergency-info/phosh-plugin-emergency-info.gresources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | emergency-info.ui
5 | emergency-info-row.ui
6 | stylesheet/common.css
7 |
8 |
9 |
--------------------------------------------------------------------------------
/po/LINGUAS:
--------------------------------------------------------------------------------
1 | am
2 | ar
3 | be
4 | bg
5 | ca
6 | cs
7 | da
8 | de
9 | el
10 | en_GB
11 | eo
12 | es
13 | eu
14 | fa
15 | fi
16 | fr
17 | fur
18 | fy
19 | gl
20 | he
21 | hi
22 | hr
23 | ht
24 | hu
25 | id
26 | it
27 | ja
28 | ka
29 | ko
30 | la
31 | lv
32 | nb
33 | nl
34 | oc
35 | pl
36 | pt
37 | pt_BR
38 | ro
39 | ru
40 | sat
41 | sk
42 | sl
43 | sr
44 | sv
45 | tr
46 | uk
47 | uz
48 | zh_CN
49 | zh_Hans_CN
50 | zh_TW
51 |
--------------------------------------------------------------------------------
/src/ui/timestamp-label.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 1
6 |
7 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/tests/testlib-head-stub.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2021 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Guido Günther
7 | */
8 |
9 | #include "phosh-wayland.h"
10 |
11 | #include
12 |
13 | G_BEGIN_DECLS
14 |
15 | void phosh_test_head_stub_init (PhoshWayland *wl);
16 | void phosh_test_head_stub_destroy (void);
17 |
18 | G_END_DECLS
19 |
--------------------------------------------------------------------------------
/data/icons/asterisk-symbolic.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/plugins/dark-mode-quick-setting/icons/dark-mode-symbolic.svg:
--------------------------------------------------------------------------------
1 |
2 |
5 |
--------------------------------------------------------------------------------
/searchd/meson.build:
--------------------------------------------------------------------------------
1 | if not get_option('searchd')
2 | subdir_done()
3 | endif
4 |
5 | searchd_args = ['-DG_LOG_USE_STRUCTURED', '-DG_LOG_DOMAIN="mobi.phosh.Shell.Search"']
6 |
7 | executable(
8 | 'phosh-searchd',
9 | ['searchd.c', 'search-provider.c'],
10 | include_directories: [root_inc],
11 | dependencies: phosh_search_dep,
12 | c_args: searchd_args,
13 | install_dir: libexecdir,
14 | install: true,
15 | )
16 |
--------------------------------------------------------------------------------
/tests/stubs/lockscreen-manager.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2018 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | /* Stubs so we don't need to run the shell */
8 |
9 | #include "lockscreen-manager.h"
10 |
11 | gboolean
12 | phosh_lockscreen_manager_set_page (PhoshLockscreenManager *self,
13 | PhoshLockscreenPage page)
14 | {
15 | return FALSE;
16 | }
17 |
--------------------------------------------------------------------------------
/plugins/dark-mode-quick-setting/phosh-plugin-dark-mode-quick-setting.gresources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | qs.ui
5 | icons/dark-mode-symbolic.svg
6 | icons/dark-mode-disabled-symbolic.svg
7 |
8 |
9 |
--------------------------------------------------------------------------------
/plugins/calendar/calendar.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2022 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Guido Günther
7 | */
8 |
9 |
10 | #include
11 |
12 | #pragma once
13 |
14 | G_BEGIN_DECLS
15 |
16 | #define PHOSH_TYPE_CALENDAR (phosh_calendar_get_type ())
17 | G_DECLARE_FINAL_TYPE (PhoshCalendar, phosh_calendar, PHOSH, CALENDAR, GtkBox)
18 |
19 | G_END_DECLS
20 |
--------------------------------------------------------------------------------
/plugins/caffeine-quick-setting/caffeine-quick-setting.desktop.in.in:
--------------------------------------------------------------------------------
1 | [Plugin]
2 | # Translators: This is an internal id, no need to translate it
3 | Id=@name@
4 | Name=Caffeine Quick Setting
5 | Types=quick-setting;
6 | Comment=Prevent the session from going idle
7 | Plugin=@plugins_dir@/libphosh-plugin-@name@.so
8 | Icon=caffeine-quick-setting
9 |
10 | [Prefs]
11 | Id=@name@-prefs
12 | Plugin=@plugin_prefs_dir@/libphosh-plugin-prefs-@name@.so
13 |
--------------------------------------------------------------------------------
/src/ui/quick-settings-box.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
9 |
10 |
--------------------------------------------------------------------------------
/plugins/ticket-box/prefs/ticket-box-prefs.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2022 Phosh.mobi e.V.
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #include
8 |
9 | #pragma once
10 |
11 | G_BEGIN_DECLS
12 |
13 | #define PHOSH_TYPE_TICKET_BOX_PREFS (phosh_ticket_box_prefs_get_type ())
14 | G_DECLARE_FINAL_TYPE (PhoshTicketBoxPrefs, phosh_ticket_box_prefs, PHOSH, TICKET_BOX_PREFS, AdwPreferencesDialog)
15 |
16 | G_END_DECLS
17 |
--------------------------------------------------------------------------------
/plugins/ticket-box/ticket-box.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2022 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Guido Günther
7 | */
8 |
9 |
10 | #include
11 |
12 | #pragma once
13 |
14 | G_BEGIN_DECLS
15 |
16 | #define PHOSH_TYPE_TICKET_BOX (phosh_ticket_box_get_type ())
17 | G_DECLARE_FINAL_TYPE (PhoshTicketBox, phosh_ticket_box, PHOSH, TICKET_BOX, GtkBox)
18 |
19 | G_END_DECLS
20 |
--------------------------------------------------------------------------------
/src/bt-info.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2020 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 | #include "status-icon.h"
11 |
12 | G_BEGIN_DECLS
13 |
14 | #define PHOSH_TYPE_BT_INFO (phosh_bt_info_get_type ())
15 |
16 | G_DECLARE_FINAL_TYPE (PhoshBtInfo, phosh_bt_info, PHOSH, BT_INFO, PhoshStatusIcon)
17 |
18 | GtkWidget * phosh_bt_info_new (void);
19 |
20 | G_END_DECLS
21 |
--------------------------------------------------------------------------------
/src/hks-info.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2020 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 | #include "status-icon.h"
11 |
12 | G_BEGIN_DECLS
13 |
14 | #define PHOSH_TYPE_HKS_INFO (phosh_hks_info_get_type ())
15 |
16 | G_DECLARE_FINAL_TYPE (PhoshHksInfo, phosh_hks_info, PHOSH, HKS_INFO, PhoshStatusIcon)
17 |
18 | GtkWidget * phosh_hks_info_new (void);
19 |
20 | G_END_DECLS
21 |
--------------------------------------------------------------------------------
/src/power-menu-manager.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2023 Phosh.mobi e.V.
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 |
11 | #define PHOSH_TYPE_POWER_MENU_MANAGER (phosh_power_menu_manager_get_type ())
12 | G_DECLARE_FINAL_TYPE (PhoshPowerMenuManager, phosh_power_menu_manager, PHOSH, POWER_MENU_MANAGER, GObject);
13 |
14 | PhoshPowerMenuManager *phosh_power_menu_manager_new (void);
15 |
--------------------------------------------------------------------------------
/src/vpn-info.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2021 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 | #include "status-icon.h"
11 |
12 | G_BEGIN_DECLS
13 |
14 | #define PHOSH_TYPE_VPN_INFO (phosh_vpn_info_get_type())
15 |
16 | G_DECLARE_FINAL_TYPE (PhoshVpnInfo, phosh_vpn_info, PHOSH, VPN_INFO, PhoshStatusIcon)
17 |
18 | GtkWidget * phosh_vpn_info_new (void);
19 |
20 | G_END_DECLS
21 |
--------------------------------------------------------------------------------
/src/wifi-info.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2019 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 | #include "status-icon.h"
11 |
12 | G_BEGIN_DECLS
13 |
14 | #define PHOSH_TYPE_WIFI_INFO (phosh_wifi_info_get_type())
15 |
16 | G_DECLARE_FINAL_TYPE (PhoshWifiInfo, phosh_wifi_info, PHOSH, WIFI_INFO, PhoshStatusIcon)
17 |
18 | GtkWidget * phosh_wifi_info_new (void);
19 |
20 | G_END_DECLS
21 |
--------------------------------------------------------------------------------
/src/call.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2021 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 | #pragma once
7 |
8 | #include "dbus/calls-dbus.h"
9 |
10 | #include
11 |
12 | G_BEGIN_DECLS
13 |
14 | #define PHOSH_TYPE_CALL (phosh_call_get_type())
15 |
16 | G_DECLARE_FINAL_TYPE (PhoshCall, phosh_call, PHOSH, CALL, GObject)
17 |
18 | PhoshCall * phosh_call_new (PhoshDBusCallsCall *proxy);
19 |
20 | G_END_DECLS
21 |
--------------------------------------------------------------------------------
/src/torch-info.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2020 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 | #include "status-icon.h"
11 |
12 | G_BEGIN_DECLS
13 |
14 | #define PHOSH_TYPE_TORCH_INFO (phosh_torch_info_get_type ())
15 |
16 | G_DECLARE_FINAL_TYPE (PhoshTorchInfo, phosh_torch_info, PHOSH, TORCH_INFO, PhoshStatusIcon)
17 |
18 | GtkWidget * phosh_torch_info_new (void);
19 |
20 | G_END_DECLS
21 |
--------------------------------------------------------------------------------
/plugins/emergency-info/prefs/emergency-info-prefs.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2022 Chris Talbot
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #include
8 |
9 | #pragma once
10 |
11 | G_BEGIN_DECLS
12 |
13 | #define PHOSH_TYPE_EMERGENCY_INFO_PREFS (phosh_emergency_info_prefs_get_type ())
14 | G_DECLARE_FINAL_TYPE (PhoshEmergencyInfoPrefs, phosh_emergency_info_prefs, PHOSH, EMERGENCY_INFO_PREFS, AdwPreferencesDialog)
15 |
16 | G_END_DECLS
17 |
--------------------------------------------------------------------------------
/plugins/launcher-box/launcher-box.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2023 The Phosh Developers
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Guido Günther
7 | */
8 |
9 |
10 | #include
11 |
12 | #pragma once
13 |
14 | G_BEGIN_DECLS
15 |
16 | #define PHOSH_TYPE_LAUNCHER_BOX (phosh_launcher_box_get_type ())
17 | G_DECLARE_FINAL_TYPE (PhoshLauncherBox, phosh_launcher_box, PHOSH, LAUNCHER_BOX, GtkBox)
18 |
19 | G_END_DECLS
20 |
--------------------------------------------------------------------------------
/plugins/media-players/media-players.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2025 Phosh.mobi e.V.
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Guido Günther
7 | */
8 |
9 |
10 | #include
11 |
12 | #pragma once
13 |
14 | G_BEGIN_DECLS
15 |
16 | #define PHOSH_TYPE_MEDIA_PLAYERS (phosh_media_players_get_type ())
17 | G_DECLARE_FINAL_TYPE (PhoshMediaPlayers, phosh_media_players, PHOSH, MEDIA_PLAYERS, GtkBox)
18 |
19 | G_END_DECLS
20 |
--------------------------------------------------------------------------------
/src/docked-info.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2020 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 | #include "status-icon.h"
11 |
12 | G_BEGIN_DECLS
13 |
14 | #define PHOSH_TYPE_DOCKED_INFO (phosh_docked_info_get_type ())
15 |
16 | G_DECLARE_FINAL_TYPE (PhoshDockedInfo, phosh_docked_info, PHOSH, DOCKED_INFO, PhoshStatusIcon)
17 |
18 | GtkWidget * phosh_docked_info_new (void);
19 |
20 | G_END_DECLS
21 |
--------------------------------------------------------------------------------
/tools/run_tool.in:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | set -e
3 |
4 | ABS_BUILDDIR='@ABS_BUILDDIR@'
5 |
6 | GSETTINGS_SCHEMA_DIR="${ABS_BUILDDIR}/data:${ABS_BUILDDIR}/plugins/launcher-box:${ABS_BUILDDIR}/plugins/pomodoro-quick-setting:${ABS_BUILDDIR}/plugins/ticket-box:${GSETTINGS_SCHEMA_DIR}:${ABS_BUILDDIR}/plugins/upcoming-events"
7 | export GSETTINGS_SCHEMA_DIR
8 |
9 | [ -n "$G_MESSAGES_DEBUG" ] || export G_MESSAGES_DEBUG=all
10 | export GNOTIFICATION_BACKEND=freedesktop
11 | set -x
12 | exec $@
13 |
--------------------------------------------------------------------------------
/src/password-entry.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2023 Tether Operations Limited
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 |
11 | G_BEGIN_DECLS
12 |
13 | #define PHOSH_TYPE_PASSWORD_ENTRY (phosh_password_entry_get_type ())
14 |
15 | G_DECLARE_FINAL_TYPE (PhoshPasswordEntry, phosh_password_entry, PHOSH, PASSWORD_ENTRY, GtkEntry)
16 |
17 | PhoshPasswordEntry *phosh_password_entry_new (void);
18 |
19 | G_END_DECLS
--------------------------------------------------------------------------------
/src/suspend-manager.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2022 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include "manager.h"
10 |
11 | G_BEGIN_DECLS
12 |
13 | #define PHOSH_TYPE_SUSPEND_MANAGER (phosh_suspend_manager_get_type ())
14 |
15 | G_DECLARE_FINAL_TYPE (PhoshSuspendManager, phosh_suspend_manager, PHOSH, SUSPEND_MANAGER, PhoshManager)
16 |
17 | PhoshSuspendManager *phosh_suspend_manager_new (void);
18 |
19 | G_END_DECLS
20 |
--------------------------------------------------------------------------------
/plugins/phosh-plugin.h.in:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2022 Phosh.mobi e.V.
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Guido Günther
7 | */
8 |
9 | #pragma once
10 |
11 | #mesondefine PHOSH_PLUGIN_EXTENSION_POINT_LOCKSCREEN_WIDGET
12 | #mesondefine PHOSH_PLUGIN_EXTENSION_POINT_LOCKSCREEN_WIDGET_PREFS
13 | #mesondefine PHOSH_PLUGIN_EXTENSION_POINT_QUICK_SETTING_WIDGET
14 | #mesondefine PHOSH_PLUGIN_EXTENSION_POINT_QUICK_SETTING_WIDGET_PREFS
15 |
--------------------------------------------------------------------------------
/plugins/upcoming-events/upcoming-events.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2022 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Guido Günther
7 | */
8 |
9 |
10 | #include
11 |
12 | #pragma once
13 |
14 | G_BEGIN_DECLS
15 |
16 | #define PHOSH_TYPE_UPCOMING_EVENTS (phosh_upcoming_events_get_type ())
17 | G_DECLARE_FINAL_TYPE (PhoshUpcomingEvents, phosh_upcoming_events, PHOSH, UPCOMING_EVENTS, GtkBox)
18 |
19 | G_END_DECLS
20 |
--------------------------------------------------------------------------------
/src/mount-operation.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2021 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 |
11 | G_BEGIN_DECLS
12 |
13 | #define PHOSH_TYPE_MOUNT_OPERATION (phosh_mount_operation_get_type ())
14 |
15 | G_DECLARE_FINAL_TYPE (PhoshMountOperation, phosh_mount_operation, PHOSH, MOUNT_OPERATION, GMountOperation)
16 |
17 | PhoshMountOperation *phosh_mount_operation_new (void);
18 |
19 | G_END_DECLS
20 |
--------------------------------------------------------------------------------
/src/feedbackinfo.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2020 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 | #include "status-icon.h"
11 |
12 | G_BEGIN_DECLS
13 |
14 | #define PHOSH_TYPE_FEEDBACK_INFO (phosh_feedback_info_get_type())
15 |
16 | G_DECLARE_FINAL_TYPE (PhoshFeedbackInfo, phosh_feedback_info, PHOSH, FEEDBACK_INFO, PhoshStatusIcon)
17 |
18 | GtkWidget * phosh_feedback_info_new (void);
19 |
20 | G_END_DECLS
21 |
--------------------------------------------------------------------------------
/src/location-info.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2021 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 | #include "status-icon.h"
11 |
12 | G_BEGIN_DECLS
13 |
14 | #define PHOSH_TYPE_LOCATION_INFO (phosh_location_info_get_type ())
15 |
16 | G_DECLARE_FINAL_TYPE (PhoshLocationInfo, phosh_location_info, PHOSH, LOCATION_INFO, PhoshStatusIcon)
17 |
18 | GtkWidget * phosh_location_info_new (void);
19 |
20 | G_END_DECLS
21 |
--------------------------------------------------------------------------------
/tools/check-screen-saver:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | set -e
4 |
5 | if [ -z "$1" ]; then
6 | gdbus call --session --dest org.gnome.ScreenSaver --object-path /org/gnome/ScreenSaver --method org.gnome.ScreenSaver.GetActive
7 | else
8 | case "$1" in
9 | on|1|ON)
10 | gdbus call --session --dest org.gnome.ScreenSaver --object-path /org/gnome/ScreenSaver --method org.gnome.ScreenSaver.Lock
11 | ;;
12 | *)
13 | echo "Unknown state"
14 | ;;
15 | esac
16 | fi
17 |
--------------------------------------------------------------------------------
/plugins/caffeine-quick-setting/phosh-plugin-caffeine-quick-setting.gresources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | qs.ui
5 | interval-row.ui
6 | icons/cafe-hot-symbolic.svg
7 | icons/cafe-cold-symbolic.svg
8 |
9 |
10 |
--------------------------------------------------------------------------------
/plugins/pomodoro-quick-setting/pomodoro-quick-setting.desktop.in.in:
--------------------------------------------------------------------------------
1 | [Plugin]
2 | # Translators: This is an internal id, no need to translate it
3 | Id=@name@
4 | # Translators: "Pomodoro" is a technique, no need to translate it
5 | Name=Pomodoro Quick Setting
6 | Types=quick-setting;
7 | Comment=Simple Pomodoro Timer
8 | Plugin=@plugins_dir@/libphosh-plugin-@name@.so
9 | Icon=pomodoro-quick-setting
10 |
11 | [Prefs]
12 | Id=@name@-prefs
13 | Plugin=@plugin_prefs_dir@/libphosh-plugin-prefs-@name@.so
14 |
--------------------------------------------------------------------------------
/plugins/upcoming-events/prefs/upcoming-events-prefs.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2024 Tether Operations Limited
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #include
8 |
9 | #pragma once
10 |
11 | G_BEGIN_DECLS
12 |
13 | #define PHOSH_TYPE_UPCOMING_EVENTS_PREFS (phosh_upcoming_events_prefs_get_type ())
14 | G_DECLARE_FINAL_TYPE (PhoshUpcomingEventsPrefs, phosh_upcoming_events_prefs, PHOSH, UPCOMING_EVENTS_PREFS, AdwPreferencesDialog)
15 |
16 | G_END_DECLS
17 |
--------------------------------------------------------------------------------
/src/mount-manager.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2020 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 |
11 | G_BEGIN_DECLS
12 |
13 | #define PHOSH_TYPE_MOUNT_MANAGER phosh_mount_manager_get_type ()
14 |
15 | G_DECLARE_FINAL_TYPE (PhoshMountManager, phosh_mount_manager,
16 | PHOSH, MOUNT_MANAGER, GObject)
17 |
18 | PhoshMountManager *phosh_mount_manager_new (void);
19 |
20 | G_END_DECLS
21 |
--------------------------------------------------------------------------------
/plugins/dark-mode-quick-setting/icons/dark-mode-disabled-symbolic.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/data/mobi.phosh.Shell.desktop.in.in:
--------------------------------------------------------------------------------
1 | [Desktop Entry]
2 | Type=Application
3 | Name=Phone Shell
4 | Comment=Window management and application launching for mobile
5 | Exec=@libexecdir@/phosh
6 | Categories=System;GNOME;GTK;Core;
7 | OnlyShowIn=GNOME;
8 | NoDisplay=true
9 | Icon=mobi.phosh.Shell
10 | X-GNOME-Autostart-Phase=DisplayServer
11 | X-GNOME-Provides=panel;windowmanager;
12 | X-GNOME-Autostart-Notify=true
13 | X-GNOME-AutoRestart=true
14 | X-GNOME-HiddenUnderSystemd=true
15 | X-Phosh-UsesFeedback=true
16 |
--------------------------------------------------------------------------------
/plugins/emergency-info/emergency-info.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2022 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Chris Talbot
7 | */
8 |
9 |
10 | #include
11 | #include
12 |
13 | #pragma once
14 |
15 | G_BEGIN_DECLS
16 |
17 | #define PHOSH_TYPE_EMERGENCY_INFO (phosh_emergency_info_get_type ())
18 | G_DECLARE_FINAL_TYPE (PhoshEmergencyInfo, phosh_emergency_info, PHOSH, EMERGENCY_INFO, GtkBox)
19 |
20 | G_END_DECLS
21 |
--------------------------------------------------------------------------------
/src/fake-clock.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2024 Phosh Developers
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include "wall-clock.h"
10 |
11 | #include
12 |
13 | G_BEGIN_DECLS
14 |
15 | #define PHOSH_TYPE_FAKE_CLOCK (phosh_fake_clock_get_type ())
16 |
17 | G_DECLARE_FINAL_TYPE (PhoshFakeClock, phosh_fake_clock, PHOSH, FAKE_CLOCK, PhoshWallClock)
18 |
19 | PhoshFakeClock *phosh_fake_clock_new (GDateTime *fake_offset);
20 |
21 | G_END_DECLS
22 |
--------------------------------------------------------------------------------
/src/system-prompt.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2018 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 | #include "system-modal-dialog.h"
11 |
12 | G_BEGIN_DECLS
13 |
14 | #define PHOSH_TYPE_SYSTEM_PROMPT (phosh_system_prompt_get_type())
15 |
16 | G_DECLARE_FINAL_TYPE (PhoshSystemPrompt, phosh_system_prompt, PHOSH, SYSTEM_PROMPT, PhoshSystemModalDialog)
17 |
18 | GtkWidget *phosh_system_prompt_new (void);
19 |
20 | G_END_DECLS
21 |
--------------------------------------------------------------------------------
/plugins/pomodoro-quick-setting/phosh-plugin-pomodoro-quick-setting.gresources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | qs.ui
5 | icons/pomodoro-active-symbolic.svg
6 | icons/pomodoro-break-symbolic.svg
7 | icons/pomodoro-off-symbolic.svg
8 |
9 |
10 |
--------------------------------------------------------------------------------
/plugins/scaling-quick-setting/phosh-plugin-scaling-quick-setting.gresources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | qs.ui
5 | scale-row.ui
6 | icons/screen-scaling-small-symbolic.svg
7 | icons/screen-scaling-large-symbolic.svg
8 |
9 |
10 |
--------------------------------------------------------------------------------
/src/dbus/org.freedesktop.GeoClue2.Agent.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/wwan/phosh-wwan-mm.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2018 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 | #pragma once
7 |
8 | #include
9 | #include "phosh-wwan-iface.h"
10 | #include "wwan-manager.h"
11 |
12 | G_BEGIN_DECLS
13 |
14 | #define PHOSH_TYPE_WWAN_MM (phosh_wwan_mm_get_type())
15 |
16 | G_DECLARE_FINAL_TYPE (PhoshWWanMM, phosh_wwan_mm, PHOSH, WWAN_MM, PhoshWWanManager)
17 |
18 | PhoshWWanMM * phosh_wwan_mm_new (void);
19 |
20 | G_END_DECLS
21 |
--------------------------------------------------------------------------------
/.gitlab-ci/asan.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.gnome.org/world/phosh/phosh/debian:v0.0.2025-11-06
2 |
3 | RUN export DEBIAN_FRONTEND=noninteractive \
4 | && apt-get -y update \
5 | && eatmydata apt-get -y update \
6 | && cd /home/user/app \
7 | && echo "deb http://deb.debian.org/debian-debug/ forky-debug main" > /etc/apt/sources.list.d/debug.list \
8 | && eatmydata apt-get update \
9 | && eatmydata apt-get -y install libgtk-3-0t64-dbgsym libglib2.0-0t64-dbgsym \
10 | && eatmydata apt-get clean
11 |
--------------------------------------------------------------------------------
/data/phoc.ini:
--------------------------------------------------------------------------------
1 | #[core]
2 | #xwayland=false
3 |
4 | #[output:DSI-1]
5 | #scale = 2
6 |
7 | [output:Virtual-1]
8 | # For the x86 VM using QXL to get a phone like geometry
9 | modeline = 87.25 720 776 848 976 1440 1443 1453 1493 -hsync +vsync
10 | mode = 720x1440
11 | scale = 2
12 |
13 | [output:X11-1]
14 | mode = 360x720
15 | #rotate = 90
16 | #scale = 1
17 |
18 | [output:WL-1]
19 | mode = 360x720
20 | #rotate = 90
21 | #scale = 1
22 |
23 | [output:HEADLESS-1]
24 | mode = 720x1440
25 | #rotate = 90
26 | scale = 2
27 |
--------------------------------------------------------------------------------
/tests/stubs/evil-icon.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright © 2020 Zander Brown
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Zander Brown
7 | */
8 |
9 | #include
10 |
11 | #pragma once
12 |
13 | G_BEGIN_DECLS
14 |
15 | #define PHOSH_TYPE_EVIL_ICON (phosh_evil_icon_get_type ())
16 |
17 | G_DECLARE_FINAL_TYPE (PhoshEvilIcon, phosh_evil_icon, PHOSH, EVIL_ICON, GObject)
18 |
19 |
20 | GIcon *phosh_evil_icon_new (void);
21 |
22 |
23 | G_END_DECLS
24 |
--------------------------------------------------------------------------------
/tests/stubs/meson.build:
--------------------------------------------------------------------------------
1 | test_stubs = files(
2 | 'app-tracker.c',
3 | 'background-manager.c',
4 | 'evil-icon.c',
5 | 'lockscreen-manager.c',
6 | 'phosh.c',
7 | 'thumbnail.c',
8 | 'toplevel-manager.c',
9 | 'toplevel.c',
10 | )
11 |
12 | test_stubs_lib = static_library(
13 | 'test-stubs',
14 | test_stubs,
15 | include_directories: phosh_lib_inc,
16 | sources: [phosh_generated_headers],
17 | dependencies: phosh_deps,
18 | )
19 |
20 | test_stubs_dep = declare_dependency(link_with: test_stubs_lib)
21 |
--------------------------------------------------------------------------------
/plugins/ticket-box/ticket-row.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2022 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include "ticket.h"
10 |
11 | #include
12 | #include
13 |
14 | G_BEGIN_DECLS
15 |
16 | #define PHOSH_TYPE_TICKET_ROW (phosh_ticket_row_get_type ())
17 |
18 | G_DECLARE_FINAL_TYPE (PhoshTicketRow, phosh_ticket_row, PHOSH, TICKET_ROW, HdyActionRow)
19 |
20 | GtkWidget *phosh_ticket_row_new (PhoshTicket *ticket);
21 |
22 | G_END_DECLS
23 |
--------------------------------------------------------------------------------
/src/battery-manager.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2025 Phosh.mobi e.V.
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include "manager.h"
10 |
11 | #include
12 |
13 | G_BEGIN_DECLS
14 |
15 | #define PHOSH_TYPE_BATTERY_MANAGER (phosh_battery_manager_get_type ())
16 |
17 | G_DECLARE_FINAL_TYPE (PhoshBatteryManager, phosh_battery_manager, PHOSH, BATTERY_MANAGER, PhoshManager)
18 |
19 | PhoshBatteryManager *phosh_battery_manager_new (void);
20 |
21 | G_END_DECLS
22 |
--------------------------------------------------------------------------------
/src/bt-device-row.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2024 The Phosh Developers
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include "bluetooth-device.h"
10 |
11 | #include
12 |
13 | G_BEGIN_DECLS
14 |
15 | #define PHOSH_TYPE_BT_DEVICE_ROW phosh_bt_device_row_get_type ()
16 | G_DECLARE_FINAL_TYPE (PhoshBtDeviceRow, phosh_bt_device_row, PHOSH, BT_DEVICE_ROW, HdyActionRow)
17 |
18 | GtkWidget *phosh_bt_device_row_new (BluetoothDevice *device);
19 |
20 | G_END_DECLS
21 |
--------------------------------------------------------------------------------
/src/connectivity-info.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2019 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 | #include "status-icon.h"
11 |
12 | G_BEGIN_DECLS
13 |
14 | #define PHOSH_TYPE_CONNECTIVITY_INFO (phosh_connectivity_info_get_type())
15 |
16 | G_DECLARE_FINAL_TYPE (PhoshConnectivityInfo, phosh_connectivity_info, PHOSH, CONNECTIVITY_INFO, PhoshStatusIcon)
17 |
18 | GtkWidget * phosh_connectivity_info_new (void);
19 |
20 | G_END_DECLS
21 |
--------------------------------------------------------------------------------
/src/network-auth-manager.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2021 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 |
11 | G_BEGIN_DECLS
12 |
13 | #define PHOSH_TYPE_NETWORK_AUTH_MANAGER (phosh_network_auth_manager_get_type ())
14 |
15 | G_DECLARE_FINAL_TYPE (PhoshNetworkAuthManager, phosh_network_auth_manager, PHOSH, NETWORK_AUTH_MANAGER, GObject)
16 |
17 | PhoshNetworkAuthManager *phosh_network_auth_manager_new (void);
18 |
19 | G_END_DECLS
20 |
--------------------------------------------------------------------------------
/src/run-command-manager.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2021 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Florian Loers
7 | */
8 |
9 | #pragma once
10 |
11 | #include
12 |
13 | #define PHOSH_TYPE_RUN_COMMAND_MANAGER (phosh_run_command_manager_get_type ())
14 | G_DECLARE_FINAL_TYPE (PhoshRunCommandManager, phosh_run_command_manager, PHOSH, RUN_COMMAND_MANAGER, GObject);
15 |
16 | PhoshRunCommandManager *phosh_run_command_manager_new (void);
17 |
--------------------------------------------------------------------------------
/src/wifi-status-page.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2023 Tether Operations Limited
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include "status-page.h"
10 |
11 | G_BEGIN_DECLS
12 |
13 | #define PHOSH_TYPE_WIFI_STATUS_PAGE phosh_wifi_status_page_get_type ()
14 | G_DECLARE_FINAL_TYPE (PhoshWifiStatusPage, phosh_wifi_status_page, PHOSH, WIFI_STATUS_PAGE,
15 | PhoshStatusPage)
16 |
17 | GtkWidget *phosh_wifi_status_page_new (void);
18 |
19 | G_END_DECLS
20 |
--------------------------------------------------------------------------------
/src/wwan/phosh-wwan-ofono.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2020 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 | #pragma once
7 |
8 | #include
9 | #include "phosh-wwan-iface.h"
10 | #include "wwan-manager.h"
11 |
12 | G_BEGIN_DECLS
13 |
14 | #define PHOSH_TYPE_WWAN_OFONO (phosh_wwan_ofono_get_type())
15 |
16 | G_DECLARE_FINAL_TYPE (PhoshWWanOfono, phosh_wwan_ofono, PHOSH, WWAN_OFONO, PhoshWWanManager)
17 |
18 | PhoshWWanOfono *phosh_wwan_ofono_new (void);
19 |
20 | G_END_DECLS
21 |
--------------------------------------------------------------------------------
/.gitlab-ci/Makefile:
--------------------------------------------------------------------------------
1 | VERSION=$(shell date --iso)
2 |
3 | all:
4 | sed -i s/v0\..*/v0.0.$(VERSION)/ *.Dockerfile
5 | ./run-docker.sh build --base debian --version 0.0.$(VERSION)
6 | ./run-docker.sh build --base asan --version 0.0.$(VERSION)
7 | ./run-docker.sh build --base screenshot --version 0.0.$(VERSION)
8 |
9 | push:
10 | ./run-docker.sh push --base debian --version 0.0.$(VERSION)
11 | ./run-docker.sh push --base asan --version 0.0.$(VERSION)
12 | ./run-docker.sh push --base screenshot --version 0.0.$(VERSION)
13 |
--------------------------------------------------------------------------------
/plugins/ticket-box/sm.puri.phosh.plugins.ticket-box.gschema.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 | 'phosh-ticket-box'
6 | Folder containing tickets
7 |
8 | The folder that contains the tickets that should be available
9 | on the lock screen.
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | end_of_line = lf
6 | insert_final_newline = true
7 | trim_trailing_whitespace = true
8 |
9 | [meson.build]
10 | indent_size = 2
11 | tab_size = 2
12 | indent_style = space
13 |
14 | [*.{c,h,c.in,h.in}]
15 | indent_size = 2
16 | tab_size = 2
17 | indent_style = space
18 | max_line_length = 100
19 |
20 | [*.css]
21 | indent_size = 2
22 | tab_size = 2
23 | indent_style = space
24 |
25 | [*.{xml,ui}]
26 | indent_size = 2
27 | tab_size = 2
28 | indent_style = space
29 |
30 |
--------------------------------------------------------------------------------
/src/splash-manager.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2021 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include "app-tracker.h"
10 |
11 | #include
12 |
13 | G_BEGIN_DECLS
14 |
15 | #define PHOSH_TYPE_SPLASH_MANAGER (phosh_splash_manager_get_type ())
16 |
17 | G_DECLARE_FINAL_TYPE (PhoshSplashManager, phosh_splash_manager, PHOSH, SPLASH_MANAGER, GObject)
18 |
19 | PhoshSplashManager *phosh_splash_manager_new (PhoshAppTracker *app_tracker);
20 |
21 | G_END_DECLS
22 |
--------------------------------------------------------------------------------
/src/quick-settings.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2024 Tether Operations Limited
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 |
11 | G_BEGIN_DECLS
12 |
13 | #define PHOSH_TYPE_QUICK_SETTINGS phosh_quick_settings_get_type ()
14 | G_DECLARE_FINAL_TYPE (PhoshQuickSettings, phosh_quick_settings, PHOSH, QUICK_SETTINGS, GtkBin)
15 |
16 | GtkWidget *phosh_quick_settings_new (void);
17 | void phosh_quick_settings_hide_status (PhoshQuickSettings *self);
18 |
19 | G_END_DECLS
20 |
--------------------------------------------------------------------------------
/data/icons/mobile-data-symbolic.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/debian/phosh.postinst.in:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | set -e
4 |
5 | if [ "$1" = triggered ]; then
6 | "/usr/lib/#MULTIARCH#/glib-2.0/gio-querymodules" "/usr/lib/#MULTIARCH#/phosh/plugins" || true
7 | "/usr/lib/#MULTIARCH#/glib-2.0/gio-querymodules" "/usr/lib/#MULTIARCH#/phosh/plugins/prefs" || true
8 | exit 0
9 | fi
10 |
11 | #DEBHELPER#
12 |
13 | "/usr/lib/#MULTIARCH#/glib-2.0/gio-querymodules" "/usr/lib/#MULTIARCH#/phosh/plugins" || true
14 | "/usr/lib/#MULTIARCH#/glib-2.0/gio-querymodules" "/usr/lib/#MULTIARCH#/phosh/plugins/prefs" || true
15 |
--------------------------------------------------------------------------------
/src/settings.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2018 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 | #include "wifi-status-page.h"
11 |
12 | #define PHOSH_TYPE_SETTINGS (phosh_settings_get_type())
13 |
14 | G_DECLARE_FINAL_TYPE (PhoshSettings, phosh_settings, PHOSH, SETTINGS, GtkBin)
15 |
16 | GtkWidget * phosh_settings_new (void);
17 | gint phosh_settings_get_drag_handle_offset (PhoshSettings *self);
18 | void phosh_settings_hide_details (PhoshSettings *self);
19 |
--------------------------------------------------------------------------------
/plugins/scaling-quick-setting/scale-row.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2025 The Phosh Developers
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 |
11 | G_BEGIN_DECLS
12 |
13 | #define PHOSH_TYPE_SCALE_ROW phosh_scale_row_get_type ()
14 |
15 | G_DECLARE_FINAL_TYPE (PhoshScaleRow, phosh_scale_row, PHOSH, SCALE_ROW, HdyActionRow)
16 |
17 | GtkWidget *phosh_scale_row_new (double scale, gboolean selected);
18 | double phosh_scale_row_get_scale (PhoshScaleRow *self);
19 |
20 | G_END_DECLS
21 |
--------------------------------------------------------------------------------
/src/emergency-menu.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2022 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Thomas Booker
7 | */
8 |
9 | #pragma once
10 |
11 | #include "system-modal-dialog.h"
12 |
13 | G_BEGIN_DECLS
14 |
15 | #define PHOSH_TYPE_EMERGENCY_MENU (phosh_emergency_menu_get_type ())
16 |
17 | G_DECLARE_FINAL_TYPE (PhoshEmergencyMenu, phosh_emergency_menu, PHOSH, EMERGENCY_MENU, PhoshSystemModalDialog)
18 |
19 | PhoshEmergencyMenu *phosh_emergency_menu_new (void);
20 |
21 | G_END_DECLS
22 |
--------------------------------------------------------------------------------
/tests/user/share/applications/demo.app.Second.desktop:
--------------------------------------------------------------------------------
1 | [Desktop Entry]
2 | Name=Med
3 | Exec=echo med
4 | # Translators: Do NOT translate or transliterate this text (this is an icon file name)!
5 | Icon=org.gnome.zbrown.Med
6 | # Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
7 | Keywords=editor;med;text;plain;
8 | Terminal=false
9 | Type=Application
10 | Categories=GTK;GNOME;Utility;TextEditor;
11 | StartupNotify=true
12 | DBusActivatable=true
13 | MimeType=text/plain;
14 |
--------------------------------------------------------------------------------
/plugins/dark-mode-quick-setting/qs.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | info
6 |
7 |
8 |
12 |
13 |
--------------------------------------------------------------------------------
/plugins/location-quick-setting/qs.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | info
6 |
7 |
8 |
12 |
13 |
--------------------------------------------------------------------------------
/plugins/pomodoro-quick-setting/qs.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | info
6 |
7 |
8 |
12 |
13 |
--------------------------------------------------------------------------------
/src/backlight-sysfs.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2025 Phosh.mobi e.V.
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include "backlight-priv.h"
10 |
11 | G_BEGIN_DECLS
12 |
13 | #define PHOSH_TYPE_BACKLIGHT_SYSFS (phosh_backlight_sysfs_get_type ())
14 |
15 | G_DECLARE_FINAL_TYPE (PhoshBacklightSysfs, phosh_backlight_sysfs, PHOSH, BACKLIGHT_SYSFS,
16 | PhoshBacklight)
17 |
18 | PhoshBacklightSysfs *phosh_backlight_sysfs_new (const char *connector_name, GError **error);
19 |
20 | G_END_DECLS
21 |
--------------------------------------------------------------------------------
/src/lockshield.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2018 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 | #pragma once
7 |
8 | #include
9 | #include "monitor/monitor.h"
10 | #include "layersurface.h"
11 |
12 | #define PHOSH_TYPE_LOCKSHIELD (phosh_lockshield_get_type())
13 |
14 | G_DECLARE_FINAL_TYPE (PhoshLockshield, phosh_lockshield, PHOSH, LOCKSHIELD, PhoshLayerSurface)
15 |
16 | GtkWidget *phosh_lockshield_new (struct zwlr_layer_shell_v1 *layer_shell,
17 | PhoshMonitor *monitor);
18 |
--------------------------------------------------------------------------------
/data/phosh-portals.conf:
--------------------------------------------------------------------------------
1 | [preferred]
2 | default=phosh;phrosh;gtk;
3 | org.freedesktop.impl.portal.Access=phosh-shell;
4 | org.freedesktop.impl.portal.Background=none;
5 | org.freedesktop.impl.portal.Clipboard=none;
6 | org.freedesktop.impl.portal.GlobalShortcuts=none;
7 | org.freedesktop.impl.portal.InputCapture=none;
8 | org.freedesktop.impl.portal.RemoteDesktop=none;
9 | org.freedesktop.impl.portal.ScreenCast=wlr;
10 | org.freedesktop.impl.portal.Screenshot=gtk;wlr;
11 | org.freedesktop.impl.portal.Secret=gnome-keyring;
12 | org.freedesktop.impl.portal.Usb=none;
13 |
--------------------------------------------------------------------------------
/src/feedback-status-page.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2025 The Phosh Developers
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include "status-page.h"
10 |
11 | G_BEGIN_DECLS
12 |
13 | #define PHOSH_TYPE_FEEDBACK_STATUS_PAGE (phosh_feedback_status_page_get_type ())
14 |
15 | G_DECLARE_FINAL_TYPE (PhoshFeedbackStatusPage, phosh_feedback_status_page, PHOSH, FEEDBACK_STATUS_PAGE,
16 | PhoshStatusPage)
17 |
18 | PhoshFeedbackStatusPage *phosh_feedback_status_page_new (void);
19 |
20 | G_END_DECLS
21 |
--------------------------------------------------------------------------------
/plugins/mobile-data-quick-setting/qs.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | info
6 |
7 |
8 |
12 |
13 |
--------------------------------------------------------------------------------
/plugins/night-light-quick-setting/qs.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | info
6 |
7 |
8 |
12 |
13 |
--------------------------------------------------------------------------------
/src/cell-broadcast-manager.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2024 The Phosh Developers
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 |
11 | G_BEGIN_DECLS
12 |
13 | #define PHOSH_TYPE_CELL_BROADCAST_MANAGER (phosh_cell_broadcast_manager_get_type ())
14 |
15 | G_DECLARE_FINAL_TYPE (PhoshCellBroadcastManager, phosh_cell_broadcast_manager,
16 | PHOSH, CELL_BROADCAST_MANAGER, GObject)
17 |
18 | PhoshCellBroadcastManager *phosh_cell_broadcast_manager_new (void);
19 |
20 | G_END_DECLS
21 |
--------------------------------------------------------------------------------
/src/default-media-player.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2025 Phosh.mobi e.V.
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include "media-player.h"
10 |
11 | G_BEGIN_DECLS
12 |
13 | #define PHOSH_TYPE_DEFAULT_MEDIA_PLAYER (phosh_default_media_player_get_type ())
14 |
15 | G_DECLARE_FINAL_TYPE (PhoshDefaultMediaPlayer, phosh_default_media_player, PHOSH,
16 | DEFAULT_MEDIA_PLAYER, PhoshMediaPlayer)
17 |
18 | GtkWidget *phosh_default_media_player_new (void);
19 |
20 | G_END_DECLS
21 |
--------------------------------------------------------------------------------
/searchd/searchd.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright © 2019 Zander Brown
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Zander Brown
7 | */
8 |
9 | #include
10 |
11 | G_BEGIN_DECLS
12 |
13 | #define PHOSH_TYPE_SEARCH_APPLICATION phosh_search_application_get_type()
14 | G_DECLARE_DERIVABLE_TYPE (PhoshSearchApplication, phosh_search_application, PHOSH, SEARCH_APPLICATION, GApplication)
15 |
16 | struct _PhoshSearchApplicationClass
17 | {
18 | GApplicationClass parent_class;
19 | };
20 |
21 | G_END_DECLS
22 |
--------------------------------------------------------------------------------
/src/clamp.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2022 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 |
11 | G_BEGIN_DECLS
12 |
13 | #define PHOSH_TYPE_CLAMP (phosh_clamp_get_type())
14 |
15 | G_DECLARE_FINAL_TYPE (PhoshClamp, phosh_clamp, PHOSH, CLAMP, GtkBin)
16 |
17 | GtkWidget *phosh_clamp_new (void);
18 | gint phosh_clamp_get_natural_size (PhoshClamp *self);
19 | void phosh_clamp_set_natural_size (PhoshClamp *self,
20 | gint natural_size);
21 |
22 | G_END_DECLS
23 |
--------------------------------------------------------------------------------
/src/dbus/org.gnome.SettingsDaemon.Rfkill.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/src/lockscreen-priv.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2025 The Phosh Developers
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include "background-image.h"
10 | #include "calls-manager.h"
11 | #include "lockscreen.h"
12 |
13 | G_BEGIN_DECLS
14 |
15 | GtkWidget *phosh_lockscreen_new (GType lockscreen_type, gpointer layer_shell, gpointer wl_output,
16 | PhoshCallsManager *calls_manager);
17 | void phosh_lockscreen_set_bg_image (PhoshLockscreen *self, PhoshBackgroundImage *image);
18 |
19 | G_END_DECLS
20 |
--------------------------------------------------------------------------------
/plugins/scaling-quick-setting/scaling-quick-setting.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2025 The Phosh Developers
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Adam Honse
7 | */
8 |
9 | #pragma once
10 |
11 | #include "quick-setting.h"
12 |
13 | G_BEGIN_DECLS
14 |
15 | #define PHOSH_TYPE_SCALING_QUICK_SETTING phosh_scaling_quick_setting_get_type ()
16 |
17 | G_DECLARE_FINAL_TYPE (PhoshScalingQuickSetting, phosh_scaling_quick_setting, PHOSH,
18 | SCALING_QUICK_SETTING, PhoshQuickSetting)
19 |
20 | G_END_DECLS
21 |
--------------------------------------------------------------------------------
/src/call-notification.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2023 Phosh.mobi e.V.
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include "call.h"
10 |
11 | #include
12 |
13 | G_BEGIN_DECLS
14 |
15 | #define PHOSH_TYPE_CALL_NOTIFICATION (phosh_call_notification_get_type ())
16 |
17 | G_DECLARE_FINAL_TYPE (PhoshCallNotification, phosh_call_notification, PHOSH, CALL_NOTIFICATION,
18 | GtkListBoxRow)
19 |
20 | PhoshCallNotification *phosh_call_notification_new (PhoshCall *call);
21 |
22 | G_END_DECLS
23 |
--------------------------------------------------------------------------------
/src/idle-manager.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2018 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Guido Günther
7 | */
8 | #pragma once
9 |
10 | #include
11 | #include "dbus/phosh-idle-dbus.h"
12 |
13 | #define PHOSH_TYPE_IDLE_MANAGER (phosh_idle_manager_get_type ())
14 | G_DECLARE_FINAL_TYPE (PhoshIdleManager, phosh_idle_manager, PHOSH, IDLE_MANAGER, GObject)
15 |
16 | PhoshIdleManager * phosh_idle_manager_get_default (void);
17 | void phosh_idle_manager_reset_timers (PhoshIdleManager *self);
18 |
--------------------------------------------------------------------------------
/tools/check-exported-symbols:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | #
3 | # Make sure our binary only exportes the wanted symbols:
4 |
5 | BIN=${1:-"_build/src/phosh"}
6 |
7 | PHOSH_SYMBOL_PREFIXES='phosh_(shell|wifi|wwan|mpris_manager|media_player|monitor|notification|notify_manager|quick_setting|status_icon|status_page|status_page_placholder|session_manager|util)_'
8 |
9 | if objdump -T $BIN | grep 'g DF .text' \
10 | | grep -v -E " (main$|${PHOSH_SYMBOL_PREFIXES}|gtk_(filter|sort)_list_model_)"; then
11 | echo "Found symbols that shouldn't be exported"
12 | exit 1
13 | fi
14 |
15 | exit 0
16 |
--------------------------------------------------------------------------------
/plugins/launcher-box/sm.puri.phosh.plugins.launcher-box.gschema.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 | ''
6 | Folder containing the launchers
7 |
8 | The folder that contains the launchers that should be available
9 | on the lock screen. If unset defaults to $XDG_CONFIG_HOME/phosh/plugins/launcher-box/
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/plugins/pomodoro-quick-setting/prefs/pomodoro-quick-setting-prefs.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2024 The Phosh Developers
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #include
8 |
9 | #pragma once
10 |
11 | G_BEGIN_DECLS
12 |
13 | #define PHOSH_TYPE_POMODORO_QUICK_SETTING_PREFS (phosh_pomodoro_quick_setting_prefs_get_type ())
14 | G_DECLARE_FINAL_TYPE (PhoshPomodoroQuickSettingPrefs,
15 | phosh_pomodoro_quick_setting_prefs,
16 | PHOSH, POMODORO_QUICK_SETTING_PREFS, AdwPreferencesDialog)
17 |
18 | G_END_DECLS
19 |
--------------------------------------------------------------------------------
/src/cell-broadcast-prompt.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2024 The Phosh Developers
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 | #include "system-modal-dialog.h"
11 |
12 | #define PHOSH_TYPE_CELL_BROADCAST_PROMPT (phosh_cell_broadcast_prompt_get_type ())
13 |
14 | G_DECLARE_FINAL_TYPE (PhoshCellBroadcastPrompt, phosh_cell_broadcast_prompt, PHOSH,
15 | CELL_BROADCAST_PROMPT, PhoshSystemModalDialog)
16 |
17 | GtkWidget *phosh_cell_broadcast_prompt_new (const char *message, const char *title);
18 |
--------------------------------------------------------------------------------
/src/fader.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2019 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 | #pragma once
7 |
8 | #include "monitor/monitor.h"
9 |
10 | #include
11 |
12 | G_BEGIN_DECLS
13 |
14 | #define PHOSH_TYPE_FADER (phosh_fader_get_type())
15 |
16 | G_DECLARE_FINAL_TYPE (PhoshFader, phosh_fader, PHOSH, FADER, PhoshLayerSurface)
17 |
18 | PhoshFader *phosh_fader_new (PhoshMonitor *monitor);
19 | void phosh_fader_hide (PhoshFader *self);
20 |
21 | G_END_DECLS
22 |
--------------------------------------------------------------------------------
/src/ui/emergency-contact-row.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 1
7 | 1
8 |
9 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/tools/check-osd:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | ICON=audio-volume-medium-symbolic
4 | OUTPUT="HDMI / DisplayPort"
5 |
6 | while [ -n "$1" ]; do
7 | case "$1" in
8 | -h|--headphone)
9 | ICON=audio-headphones-symbolic
10 | ;;
11 | -n|--no-label)
12 | OUTPUT=""
13 | ;;
14 | esac
15 | shift
16 | done
17 |
18 |
19 | gdbus call --session --dest org.gnome.Shell \
20 | --object-path /org/gnome/Shell \
21 | --method org.gnome.Shell.ShowOSD \
22 | '{"icon": <"'${ICON}'">, "label": <"'"${OUTPUT}"'">, "level": <0.5> }'
23 |
--------------------------------------------------------------------------------
/data/icons/eye-not-looking-symbolic.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/connectivity-manager.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2025 The Phosh Developers
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include "manager.h"
10 |
11 | #include
12 |
13 | G_BEGIN_DECLS
14 |
15 | #define PHOSH_TYPE_CONNECTIVITY_MANAGER (phosh_connectivity_manager_get_type ())
16 |
17 | G_DECLARE_FINAL_TYPE (PhoshConnectivityManager, phosh_connectivity_manager, PHOSH,
18 | CONNECTIVITY_MANAGER, PhoshManager)
19 |
20 | PhoshConnectivityManager *phosh_connectivity_manager_new (void);
21 |
22 | G_END_DECLS
23 |
--------------------------------------------------------------------------------
/plugins/emergency-info/emergency-info-row.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 1
7 |
8 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/plugins/wifi-hotspot-quick-setting/wifi-hotspot-status-page.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2025 Phosh.mobi e.V.
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include "status-page.h"
10 |
11 | G_BEGIN_DECLS
12 |
13 | #define PHOSH_TYPE_WIFI_HOTSPOT_STATUS_PAGE phosh_wifi_hotspot_status_page_get_type ()
14 |
15 | G_DECLARE_FINAL_TYPE (PhoshWifiHotspotStatusPage, phosh_wifi_hotspot_status_page, PHOSH,
16 | WIFI_HOTSPOT_STATUS_PAGE, PhoshStatusPage)
17 |
18 | GtkWidget *phosh_wifi_hotspot_status_page_new (void);
19 |
20 | G_END_DECLS
21 |
--------------------------------------------------------------------------------
/src/bt-status-page.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2024 The Phosh Developers
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include "quick-setting.h"
10 | #include "shell-priv.h"
11 | #include "status-page.h"
12 |
13 | #include
14 |
15 |
16 | G_BEGIN_DECLS
17 |
18 | #define PHOSH_TYPE_BT_STATUS_PAGE phosh_bt_status_page_get_type ()
19 | G_DECLARE_FINAL_TYPE (PhoshBtStatusPage, phosh_bt_status_page, PHOSH, BT_STATUS_PAGE,
20 | PhoshStatusPage)
21 |
22 | GtkWidget *phosh_bt_status_page_new (void);
23 |
24 | G_END_DECLS
25 |
--------------------------------------------------------------------------------
/src/notifications/mount-notification.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2020 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 |
11 | G_BEGIN_DECLS
12 |
13 | #define PHOSH_TYPE_MOUNT_NOTIFICATION phosh_mount_notification_get_type ()
14 |
15 | G_DECLARE_FINAL_TYPE (PhoshMountNotification, phosh_mount_notification,
16 | PHOSH, MOUNT_NOTIFICATION, PhoshNotification)
17 |
18 | PhoshMountNotification *phosh_mount_notification_new_from_mount (guint id, GMount *mount);
19 |
20 | G_END_DECLS
21 |
--------------------------------------------------------------------------------
/src/ui/password-entry.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | password
6 | 0
7 | ●
8 | 0
9 | eye-open-negative-filled-symbolic
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/plugins/location-quick-setting/location-quick-setting.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2025 Phosh.mobi e.V.
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Gotam Gorabh
7 | */
8 |
9 | #pragma once
10 |
11 | #include "quick-setting.h"
12 |
13 | G_BEGIN_DECLS
14 |
15 | #define PHOSH_TYPE_LOCATION_QUICK_SETTING phosh_location_quick_setting_get_type ()
16 | G_DECLARE_FINAL_TYPE (PhoshLocationQuickSetting,
17 | phosh_location_quick_setting,
18 | PHOSH, LOCATION_QUICK_SETTING, PhoshQuickSetting)
19 |
20 | G_END_DECLS
21 |
--------------------------------------------------------------------------------
/plugins/wifi-hotspot-quick-setting/phosh-plugin-wifi-hotspot-quick-setting.gresources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | status-page.ui
5 | qs.ui
6 | icons/network-wireless-hotspot-disabled-symbolic.svg
7 | icons/network-wireless-hotspot-acquiring-symbolic.svg
8 | style.css
9 |
10 |
11 |
--------------------------------------------------------------------------------
/src/auto-brightness-bucket.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2025 Phosh.mobi e.V.
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include "auto-brightness.h"
10 |
11 | #include
12 |
13 | G_BEGIN_DECLS
14 |
15 | #define PHOSH_TYPE_AUTO_BRIGHTNESS_BUCKET (phosh_auto_brightness_bucket_get_type ())
16 |
17 | G_DECLARE_FINAL_TYPE (PhoshAutoBrightnessBucket, phosh_auto_brightness_bucket,
18 | PHOSH, AUTO_BRIGHTNESS_BUCKET, GObject)
19 |
20 | PhoshAutoBrightnessBucket *phosh_auto_brightness_bucket_new (void);
21 |
22 | G_END_DECLS
23 |
--------------------------------------------------------------------------------
/data/icons/chat-none-symbolic.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/plugins/caffeine-quick-setting/caffeine-quick-setting.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2024 The Phosh Developers
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Guido Günther
7 | */
8 |
9 | #pragma once
10 |
11 | #include "quick-setting.h"
12 |
13 | G_BEGIN_DECLS
14 |
15 | #define PHOSH_TYPE_CAFFEINE_QUICK_SETTING phosh_caffeine_quick_setting_get_type ()
16 |
17 | G_DECLARE_FINAL_TYPE (PhoshCaffeineQuickSetting,
18 | phosh_caffeine_quick_setting,
19 | PHOSH, CAFFEINE_QUICK_SETTING, PhoshQuickSetting)
20 |
21 | G_END_DECLS
22 |
--------------------------------------------------------------------------------
/plugins/caffeine-quick-setting/prefs/caffeine-quick-setting-prefs.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2025 Phosh.mobi e.V.
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #include
8 |
9 | #pragma once
10 |
11 | G_BEGIN_DECLS
12 |
13 | #define PHOSH_TYPE_CAFFEINE_QUICK_SETTING_PREFS (phosh_caffeine_quick_setting_prefs_get_type ())
14 | G_DECLARE_FINAL_TYPE (PhoshCaffeineQuickSettingPrefs,
15 | phosh_caffeine_quick_setting_prefs,
16 | PHOSH, CAFFEINE_QUICK_SETTING_PREFS,
17 | AdwPreferencesDialog)
18 |
19 | G_END_DECLS
20 |
--------------------------------------------------------------------------------
/src/brightness-settings.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2025 Phosh.mobi e.V.
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 |
11 | G_BEGIN_DECLS
12 |
13 | #define PHOSH_TYPE_BRIGHTNESS_SETTINGS phosh_brightness_settings_get_type ()
14 |
15 | G_DECLARE_FINAL_TYPE (PhoshBrightnessSettings, phosh_brightness_settings, PHOSH,
16 | BRIGHTNESS_SETTINGS, GtkBin)
17 |
18 | GtkWidget *phosh_brightness_settings_new (void);
19 | void phosh_brightness_settings_hide_details (PhoshBrightnessSettings *self);
20 |
21 | G_END_DECLS
22 |
--------------------------------------------------------------------------------
/src/metainfo-cache.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2025 The Phosh Authors
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 |
11 | G_BEGIN_DECLS
12 |
13 | #define PHOSH_TYPE_METAINFO_CACHE phosh_metainfo_cache_get_type ()
14 |
15 | G_DECLARE_FINAL_TYPE (PhoshMetainfoCache, phosh_metainfo_cache,
16 | PHOSH, METAINFO_CACHE, GObject)
17 |
18 | PhoshMetainfoCache *phosh_metainfo_cache_get_default (void);
19 | char *phosh_metainfo_get_data_id (PhoshMetainfoCache *self, const char *cid);
20 |
21 | G_END_DECLS
22 |
--------------------------------------------------------------------------------
/src/widget-box.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2022 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 |
11 | G_BEGIN_DECLS
12 |
13 | #define PHOSH_TYPE_WIDGET_BOX (phosh_widget_box_get_type ())
14 |
15 | G_DECLARE_FINAL_TYPE (PhoshWidgetBox, phosh_widget_box, PHOSH, WIDGET_BOX, GtkBox)
16 |
17 | PhoshWidgetBox *phosh_widget_box_new (GStrv plugin_dirs);
18 | void phosh_widget_box_set_plugins (PhoshWidgetBox *self, GStrv plugins);
19 | gboolean phosh_widget_box_has_plugins (PhoshWidgetBox *self);
20 |
21 | G_END_DECLS
22 |
--------------------------------------------------------------------------------
/src/wifi-network-row.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2023 Tether Operations Limited
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 | #include
11 | #include "util.h"
12 | #include "wifi-network.h"
13 |
14 | G_BEGIN_DECLS
15 |
16 | #define PHOSH_TYPE_WIFI_NETWORK_ROW phosh_wifi_network_row_get_type ()
17 | G_DECLARE_FINAL_TYPE (PhoshWifiNetworkRow, phosh_wifi_network_row, PHOSH, WIFI_NETWORK_ROW,
18 | HdyActionRow)
19 |
20 | GtkWidget *phosh_wifi_network_row_new (PhoshWifiNetwork *network);
21 |
22 | G_END_DECLS
23 |
--------------------------------------------------------------------------------
/src/location-manager.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2020 Purism SPC
3 | * 2025 Phosh.mobi e.V.
4 | *
5 | * SPDX-License-Identifier: GPL-3.0-or-later
6 | */
7 | #pragma once
8 |
9 | #include "dbus/geoclue-agent-dbus.h"
10 | #include
11 |
12 | G_BEGIN_DECLS
13 |
14 | #define PHOSH_TYPE_LOCATION_MANAGER (phosh_location_manager_get_type ())
15 | G_DECLARE_FINAL_TYPE (PhoshLocationManager, phosh_location_manager, PHOSH, LOCATION_MANAGER,
16 | PhoshDBusGeoClue2AgentSkeleton)
17 |
18 | PhoshLocationManager * phosh_location_manager_new (void);
19 |
20 | G_END_DECLS
21 |
--------------------------------------------------------------------------------
/plugins/dark-mode-quick-setting/dark-mode-quick-setting.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2024 The Phosh Developers
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Teemu Ikonen
7 | */
8 |
9 | #pragma once
10 |
11 | #include "quick-setting.h"
12 |
13 | G_BEGIN_DECLS
14 |
15 | #define PHOSH_TYPE_DARK_MODE_QUICK_SETTING phosh_dark_mode_quick_setting_get_type ()
16 |
17 | G_DECLARE_FINAL_TYPE (PhoshDarkModeQuickSetting,
18 | phosh_dark_mode_quick_setting,
19 | PHOSH, DARK_MODE_QUICK_SETTING, PhoshQuickSetting)
20 |
21 | G_END_DECLS
22 |
--------------------------------------------------------------------------------
/src/app-grid-folder-button.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2024 Tether Operations Limited
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #include "app-grid-base-button.h"
8 | #include "folder-info.h"
9 |
10 | #pragma once
11 |
12 | G_BEGIN_DECLS
13 |
14 | #define PHOSH_TYPE_APP_GRID_FOLDER_BUTTON phosh_app_grid_folder_button_get_type ()
15 | G_DECLARE_FINAL_TYPE (PhoshAppGridFolderButton, phosh_app_grid_folder_button, PHOSH, APP_GRID_FOLDER_BUTTON, PhoshAppGridBaseButton)
16 |
17 | GtkWidget *phosh_app_grid_folder_button_new_from_folder_info (PhoshFolderInfo *folder_info);
18 |
19 | G_END_DECLS
20 |
--------------------------------------------------------------------------------
/src/gtk-mount-manager.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2021 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Guido Günther
7 | */
8 |
9 | #pragma once
10 |
11 | #include "dbus/phosh-gtk-mountoperation-dbus.h"
12 | #include
13 |
14 | #define PHOSH_TYPE_GTK_MOUNT_MANAGER (phosh_gtk_mount_manager_get_type ())
15 | G_DECLARE_FINAL_TYPE (PhoshGtkMountManager, phosh_gtk_mount_manager, PHOSH, GTK_MOUNT_MANAGER,
16 | PhoshDBusMountOperationHandlerSkeleton)
17 |
18 | PhoshGtkMountManager *phosh_gtk_mount_manager_new (void);
19 |
--------------------------------------------------------------------------------
/src/wwan-info.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2018 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 | #include "status-icon.h"
11 |
12 | G_BEGIN_DECLS
13 |
14 | #define PHOSH_TYPE_WWAN_INFO (phosh_wwan_info_get_type())
15 |
16 | G_DECLARE_FINAL_TYPE (PhoshWWanInfo, phosh_wwan_info, PHOSH, WWAN_INFO, PhoshStatusIcon)
17 |
18 | GtkWidget * phosh_wwan_info_new (void);
19 | void phosh_wwan_info_set_show_detail (PhoshWWanInfo *self, gboolean show);
20 | gboolean phosh_wwan_info_get_show_detail (PhoshWWanInfo *self);
21 |
22 | G_END_DECLS
23 |
--------------------------------------------------------------------------------
/tests/services/testlib-search-provider-app.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2025 Tether Operations Limited
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 |
11 | #include "testlib-search-provider.h"
12 |
13 | G_BEGIN_DECLS
14 |
15 | #define PHOSH_TYPE_SEARCH_PROVIDER_MOCK_APP (phosh_search_provider_mock_app_get_type ())
16 | G_DECLARE_FINAL_TYPE (PhoshSearchProviderMockApp,
17 | phosh_search_provider_mock_app,
18 | PHOSH, SEARCH_PROVIDER_MOCK_APP,
19 | GApplication)
20 |
21 | G_END_DECLS
22 |
--------------------------------------------------------------------------------
/src/arrow.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright © 2019 Alexander Mikhaylenko
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #include
8 |
9 | #pragma once
10 |
11 | G_BEGIN_DECLS
12 |
13 | #define PHOSH_TYPE_ARROW (phosh_arrow_get_type())
14 |
15 | G_DECLARE_FINAL_TYPE (PhoshArrow, phosh_arrow, PHOSH, ARROW, GtkDrawingArea)
16 |
17 | PhoshArrow *phosh_arrow_new (void);
18 |
19 | double phosh_arrow_get_progress (PhoshArrow *self);
20 | void phosh_arrow_set_progress (PhoshArrow *self,
21 | double progress);
22 |
23 | G_END_DECLS
24 |
--------------------------------------------------------------------------------
/src/contrib/gnome-bluetooth/bluetooth-device.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2021 Bastien Nocera
3 | *
4 | * SPDX-License-Identifier: LGPL-2.1-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 | #include
11 |
12 | #define BLUETOOTH_TYPE_DEVICE (bluetooth_device_get_type())
13 | G_DECLARE_FINAL_TYPE (BluetoothDevice, bluetooth_device, BLUETOOTH, DEVICE, GObject)
14 |
15 | const char *bluetooth_device_get_object_path (BluetoothDevice *device);
16 | void bluetooth_device_dump (BluetoothDevice *device);
17 | char *bluetooth_device_to_string (BluetoothDevice *device);
18 |
--------------------------------------------------------------------------------
/src/portal-access-manager.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2021 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Florian Loers
7 | */
8 |
9 | #pragma once
10 |
11 | #include "dbus/portal-dbus.h"
12 |
13 | #define PHOSH_TYPE_PORTAL_ACCESS_MANAGER (phosh_portal_access_manager_get_type ())
14 | G_DECLARE_FINAL_TYPE (PhoshPortalAccessManager, phosh_portal_access_manager,
15 | PHOSH, PORTAL_ACCESS_MANAGER,
16 | PhoshDBusImplPortalAccessSkeleton);
17 |
18 | PhoshPortalAccessManager *phosh_portal_access_manager_new (void);
19 |
--------------------------------------------------------------------------------
/plugins/mobile-data-quick-setting/mobile-data-quick-setting.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2024 The Phosh Developers
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Guido Günther
7 | */
8 |
9 | #pragma once
10 |
11 | #include "quick-setting.h"
12 |
13 | G_BEGIN_DECLS
14 |
15 | #define PHOSH_TYPE_MOBILE_DATA_QUICK_SETTING phosh_mobile_data_quick_setting_get_type ()
16 |
17 | G_DECLARE_FINAL_TYPE (PhoshMobileDataQuickSetting,
18 | phosh_mobile_data_quick_setting,
19 | PHOSH, MOBILE_DATA_QUICK_SETTING, PhoshQuickSetting)
20 |
21 | G_END_DECLS
22 |
--------------------------------------------------------------------------------
/plugins/night-light-quick-setting/night-light-quick-setting.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2024 The Phosh Developers
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Guido Günther
7 | */
8 |
9 | #pragma once
10 |
11 | #include "quick-setting.h"
12 |
13 | G_BEGIN_DECLS
14 |
15 | #define PHOSH_TYPE_NIGHT_LIGHT_QUICK_SETTING phosh_night_light_quick_setting_get_type ()
16 |
17 | G_DECLARE_FINAL_TYPE (PhoshNightLightQuickSetting,
18 | phosh_night_light_quick_setting,
19 | PHOSH, NIGHT_LIGHT_QUICK_SETTING, PhoshQuickSetting)
20 |
21 | G_END_DECLS
22 |
--------------------------------------------------------------------------------
/plugins/upcoming-events/event-list.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2022 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 |
11 | G_BEGIN_DECLS
12 |
13 | #define PHOSH_TYPE_EVENT_LIST (phosh_event_list_get_type ())
14 |
15 | G_DECLARE_FINAL_TYPE (PhoshEventList, phosh_event_list, PHOSH, EVENT_LIST, GtkBox)
16 |
17 | void phosh_event_list_bind_model (PhoshEventList *self, GListModel *model);
18 | void phosh_event_list_set_today (PhoshEventList *self, GDateTime *today);
19 | uint phosh_event_list_get_n_events (PhoshEventList *self);
20 |
21 | G_END_DECLS
22 |
--------------------------------------------------------------------------------
/src/settings/audio-devices.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2023 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 |
11 | #include "gvc-mixer-control.h"
12 |
13 | G_BEGIN_DECLS
14 |
15 | #define PHOSH_TYPE_AUDIO_DEVICES (phosh_audio_devices_get_type ())
16 |
17 | G_DECLARE_FINAL_TYPE (PhoshAudioDevices, phosh_audio_devices, PHOSH, AUDIO_DEVICES, GObject)
18 |
19 | PhoshAudioDevices *phosh_audio_devices_new (gpointer mixer_control,
20 | gboolean is_input);
21 |
22 | G_END_DECLS
23 |
--------------------------------------------------------------------------------
/plugins/calendar/calendar.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | vertical
6 | 12
7 | 12
8 | 12
9 | 12
10 |
11 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/src/ui/status-icon.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/plugins/upcoming-events/phosh-plugin-upcoming-events.gresources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | event-list.ui
5 | upcoming-event.ui
6 | upcoming-events.ui
7 | stylesheet/common.css
8 | icons/upcoming-events-all-symbolic.svg
9 | icons/upcoming-events-skip-empty-symbolic.svg
10 |
11 |
12 |
--------------------------------------------------------------------------------
/plugins/wifi-hotspot-quick-setting/wifi-hotspot-quick-setting.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2024 Tether Operations Limited
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Arun Mani J
7 | */
8 |
9 | #pragma once
10 |
11 | #include "quick-setting.h"
12 |
13 | G_BEGIN_DECLS
14 |
15 | #define PHOSH_TYPE_WIFI_HOTSPOT_QUICK_SETTING phosh_wifi_hotspot_quick_setting_get_type ()
16 |
17 | G_DECLARE_FINAL_TYPE (PhoshWifiHotspotQuickSetting,
18 | phosh_wifi_hotspot_quick_setting,
19 | PHOSH, WIFI_HOTSPOT_QUICK_SETTING, PhoshQuickSetting)
20 |
21 | G_END_DECLS
22 |
--------------------------------------------------------------------------------
/src/ambient.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2022 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include "calls-manager.h"
10 | #include "sensor-proxy-manager.h"
11 |
12 | G_BEGIN_DECLS
13 |
14 | #define PHOSH_TYPE_AMBIENT (phosh_ambient_get_type ())
15 |
16 | G_DECLARE_FINAL_TYPE (PhoshAmbient, phosh_ambient, PHOSH, AMBIENT, GObject);
17 |
18 | PhoshAmbient *phosh_ambient_new (PhoshSensorProxyManager *sensor_proxy_manager);
19 | gboolean phosh_ambient_get_auto_brightness (PhoshAmbient *self);
20 | double phosh_ambient_get_light_level (PhoshAmbient *self);
21 |
22 | G_END_DECLS
23 |
--------------------------------------------------------------------------------
/src/app-tracker.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2021 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 | #include
11 | #include
12 |
13 | G_BEGIN_DECLS
14 |
15 | #define PHOSH_TYPE_APP_TRACKER (phosh_app_tracker_get_type ())
16 |
17 | G_DECLARE_FINAL_TYPE (PhoshAppTracker, phosh_app_tracker, PHOSH, APP_TRACKER, GObject)
18 |
19 | PhoshAppTracker *phosh_app_tracker_new (void);
20 | void phosh_app_tracker_launch_app_info (PhoshAppTracker *self,
21 | GAppInfo *info);
22 |
23 | G_END_DECLS
24 |
--------------------------------------------------------------------------------
/src/manager.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2021 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 |
11 | G_BEGIN_DECLS
12 |
13 | #define PHOSH_TYPE_MANAGER (phosh_manager_get_type())
14 |
15 | G_DECLARE_DERIVABLE_TYPE (PhoshManager, phosh_manager, PHOSH, MANAGER, GObject)
16 |
17 | /**
18 | * PhoshManagerClass:
19 | * @parent_class: The parent class
20 | * @idle_init: a callback to be invoked once on idle
21 | */
22 | struct _PhoshManagerClass
23 | {
24 | GObjectClass parent_class;
25 |
26 | void (*idle_init) (PhoshManager *self);
27 | };
28 |
29 | G_END_DECLS
30 |
--------------------------------------------------------------------------------
/plugins/simple-custom-quick-setting/simple-custom-quick-setting.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2024 Tether Operations Limited
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Arun Mani J
7 | */
8 |
9 | #pragma once
10 |
11 | #include "quick-setting.h"
12 |
13 | G_BEGIN_DECLS
14 |
15 | #define PHOSH_TYPE_SIMPLE_CUSTOM_QUICK_SETTING phosh_simple_custom_quick_setting_get_type ()
16 |
17 | G_DECLARE_FINAL_TYPE (PhoshSimpleCustomQuickSetting,
18 | phosh_simple_custom_quick_setting,
19 | PHOSH, SIMPLE_CUSTOM_QUICK_SETTING, PhoshQuickSetting)
20 |
21 | G_END_DECLS
22 |
--------------------------------------------------------------------------------
/src/auth-prompt-option.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2022 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Florian Loers
7 | */
8 |
9 | #include
10 |
11 | #pragma once
12 |
13 | G_BEGIN_DECLS
14 |
15 | #define PHOSH_TYPE_AUTH_PROMPT_OPTION (phosh_auth_prompt_option_get_type ())
16 |
17 | G_DECLARE_FINAL_TYPE (PhoshAuthPromptOption, phosh_auth_prompt_option, PHOSH, AUTH_PROMPT_OPTION, GObject)
18 |
19 | const char *phosh_auth_prompt_option_get_id (PhoshAuthPromptOption *self);
20 | const char *phosh_auth_prompt_option_get_label (PhoshAuthPromptOption *self);
21 |
22 | G_END_DECLS
23 |
--------------------------------------------------------------------------------
/src/battery-info.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2018 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include "status-icon.h"
10 |
11 | #include
12 |
13 | G_BEGIN_DECLS
14 |
15 | #define PHOSH_TYPE_BATTERY_INFO (phosh_battery_info_get_type())
16 |
17 | G_DECLARE_FINAL_TYPE (PhoshBatteryInfo, phosh_battery_info, PHOSH, BATTERY_INFO, PhoshStatusIcon)
18 |
19 | GtkWidget * phosh_battery_info_new (void);
20 | void phosh_battery_info_set_show_detail (PhoshBatteryInfo *self, gboolean show);
21 | gboolean phosh_battery_info_get_show_detail (PhoshBatteryInfo *self);
22 |
23 | G_END_DECLS
24 |
--------------------------------------------------------------------------------
/src/launcher-entry-manager.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2024 The Phosh Developers
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Guido Günther
7 | */
8 |
9 | #pragma once
10 |
11 | #include "manager.h"
12 |
13 | #include
14 |
15 | G_BEGIN_DECLS
16 |
17 | #define PHOSH_TYPE_LAUNCHER_ENTRY_MANAGER (phosh_launcher_entry_manager_get_type ())
18 |
19 | G_DECLARE_FINAL_TYPE (PhoshLauncherEntryManager, phosh_launcher_entry_manager,
20 | PHOSH, LAUNCHER_ENTRY_MANAGER, PhoshManager)
21 |
22 | PhoshLauncherEntryManager *phosh_launcher_entry_manager_new (void);
23 |
24 | G_END_DECLS
25 |
--------------------------------------------------------------------------------
/src/ui/revealer.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 1
6 |
7 |
8 | 1
9 | 400
10 | crossfade
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/tests/test-overview.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2018 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Guido Günther
7 | */
8 |
9 | #include "overview.h"
10 |
11 | #include
12 |
13 | static void
14 | test_phosh_overview_new(void)
15 | {
16 | GtkWidget *window = phosh_overview_new ();
17 | g_assert (window);
18 | gtk_widget_destroy (window);
19 | }
20 |
21 |
22 | int
23 | main (int argc,
24 | char *argv[])
25 | {
26 | gtk_test_init (&argc, &argv, NULL);
27 | hdy_init ();
28 |
29 | g_test_add_func("/phosh/overview/new", test_phosh_overview_new);
30 | return g_test_run();
31 | }
32 |
--------------------------------------------------------------------------------
/.dir-locals.el:
--------------------------------------------------------------------------------
1 | (
2 | (c-mode . (
3 | (c-file-style . "linux")
4 | (indent-tabs-mode . nil)
5 | (c-basic-offset . 2)
6 | (display-fill-column-indicator-column . 100)
7 | ))
8 | (setq auto-mode-alist (cons '("\\.ui$" . nxml-mode) auto-mode-alist))
9 | (nxml-mode . (
10 | (indent-tabs-mode . nil)
11 | ))
12 | (css-mode . (
13 | (css-indent-offset . 2)
14 | ))
15 | (js-mode . (
16 | (indent-tabs-mode . nil)
17 | (js-indent-level . 2)
18 | ))
19 | (meson-mode . (
20 | (indent-tabs-mode . nil)
21 | ))
22 | )
23 |
--------------------------------------------------------------------------------
/plugins/wifi-hotspot-quick-setting/icons/network-wireless-hotspot-acquiring-symbolic.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/osd-window.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2021 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 | #include "system-modal.h"
11 |
12 | #define PHOSH_TYPE_OSD_WINDOW (phosh_osd_window_get_type ())
13 |
14 | G_DECLARE_FINAL_TYPE (PhoshOsdWindow, phosh_osd_window, PHOSH, OSD_WINDOW, PhoshSystemModal)
15 |
16 | GtkWidget *phosh_osd_window_new (const char *connector,
17 | const char *label,
18 | const char *icon_name,
19 | double level,
20 | double max_level);
21 |
--------------------------------------------------------------------------------
/data/icons/torch-enabled-symbolic.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/system-modal.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2018 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 | #include "layersurface.h"
11 | #include "monitor/monitor.h"
12 |
13 | #define PHOSH_TYPE_SYSTEM_MODAL (phosh_system_modal_get_type ())
14 |
15 | G_DECLARE_DERIVABLE_TYPE (PhoshSystemModal, phosh_system_modal, PHOSH, SYSTEM_MODAL, PhoshLayerSurface)
16 |
17 | /**
18 | * PhoshSystemModalClass
19 | * @parent_class: The parent class
20 | */
21 | struct _PhoshSystemModalClass {
22 | PhoshLayerSurfaceClass parent_class;
23 | };
24 |
25 |
26 | GtkWidget *phosh_system_modal_new (PhoshMonitor *monitor);
27 |
--------------------------------------------------------------------------------
/data/icons/moon-filled-symbolic.svg:
--------------------------------------------------------------------------------
1 |
2 |
5 |
--------------------------------------------------------------------------------
/data/icons/screenshot-portrait-symbolic.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/dbus/mobi.phosh.Shell.DebugControl.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
11 |
12 |
13 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/src/proximity.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2020 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include "calls-manager.h"
10 | #include "sensor-proxy-manager.h"
11 |
12 | G_BEGIN_DECLS
13 |
14 | #define PHOSH_TYPE_PROXIMITY (phosh_proximity_get_type ())
15 |
16 | G_DECLARE_FINAL_TYPE (PhoshProximity, phosh_proximity, PHOSH, PROXIMITY, GObject);
17 |
18 | PhoshProximity *phosh_proximity_new (PhoshSensorProxyManager *sensor_proxy_manager,
19 | PhoshCallsManager *calls_manager);
20 | gboolean phosh_proximity_has_fader (PhoshProximity *sensor_proxy_manager);
21 |
22 | G_END_DECLS
23 |
--------------------------------------------------------------------------------
/plugins/launcher-box/launcher-row.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2023 Phosh.mobi e.V.
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include "launcher-item.h"
10 |
11 | #include
12 | #include
13 |
14 | #include
15 |
16 | G_BEGIN_DECLS
17 |
18 | #define PHOSH_TYPE_LAUNCHER_ROW (phosh_launcher_row_get_type ())
19 |
20 | G_DECLARE_FINAL_TYPE (PhoshLauncherRow, phosh_launcher_row, PHOSH, LAUNCHER_ROW, HdyActionRow)
21 |
22 | GtkWidget *phosh_launcher_row_new (PhoshLauncherItem *item);
23 | PhoshLauncherItem *phosh_launcher_row_get_item (PhoshLauncherRow *self);
24 |
25 | G_END_DECLS
26 |
--------------------------------------------------------------------------------
/src/settings/audio-device-row.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2023 Phosh.mobi e.V.
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include "audio-device.h"
10 |
11 | #include
12 |
13 | G_BEGIN_DECLS
14 |
15 | #define PHOSH_TYPE_AUDIO_DEVICE_ROW (phosh_audio_device_row_get_type ())
16 |
17 | G_DECLARE_FINAL_TYPE (PhoshAudioDeviceRow, phosh_audio_device_row, PHOSH, AUDIO_DEVICE_ROW, GtkListBoxRow)
18 |
19 | PhoshAudioDeviceRow *phosh_audio_device_row_new (PhoshAudioDevice *audio_device);
20 | PhoshAudioDevice *phosh_audio_device_row_get_audio_device (PhoshAudioDeviceRow *self);
21 |
22 | G_END_DECLS
23 |
--------------------------------------------------------------------------------
/plugins/wifi-hotspot-quick-setting/qs.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | info
6 | status_page
7 |
8 |
9 |
10 | 1
11 | 16
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/src/power-menu.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2023 Phosh.mobi e.V.
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include "system-modal-dialog.h"
10 |
11 | #include
12 |
13 | G_BEGIN_DECLS
14 |
15 | #define PHOSH_TYPE_POWER_MENU (phosh_power_menu_get_type ())
16 |
17 | G_DECLARE_FINAL_TYPE (PhoshPowerMenu, phosh_power_menu, PHOSH, POWER_MENU, PhoshSystemModalDialog)
18 |
19 | PhoshPowerMenu *phosh_power_menu_new (PhoshMonitor *monitor);
20 | void phosh_power_menu_set_show_suspend (PhoshPowerMenu *self, gboolean show_suspend);
21 | gboolean phosh_power_menu_get_show_suspend (PhoshPowerMenu *self);
22 |
23 | G_END_DECLS
24 |
--------------------------------------------------------------------------------
/src/settings/audio-settings.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2023 Phosh.mobi e.V.
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 |
11 | G_BEGIN_DECLS
12 |
13 | #define PHOSH_TYPE_AUDIO_SETTINGS (phosh_audio_settings_get_type ())
14 |
15 | G_DECLARE_FINAL_TYPE (PhoshAudioSettings, phosh_audio_settings, PHOSH, AUDIO_SETTINGS, GtkBin)
16 |
17 | PhoshAudioSettings *phosh_audio_settings_new (void);
18 | gboolean phosh_audio_settings_get_output_is_headphone (PhoshAudioSettings *self);
19 | void phosh_audio_settings_hide_details (PhoshAudioSettings *self);
20 |
21 | G_END_DECLS
22 |
--------------------------------------------------------------------------------
/src/ui/widget-box.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | vertical
6 |
7 |
8 | 1
9 | 400
10 |
11 |
12 |
13 |
14 | 1
15 | carousel
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/src/hks-manager.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2020 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 |
11 |
12 | G_BEGIN_DECLS
13 |
14 | /**
15 | * PhoshHksDeviceType:
16 | * @PHOSH_HKS_TYPE_MIC: Microphone hardware kill switch
17 | *
18 | * Keep in sync with kernels rfkill types
19 | */
20 | typedef enum {
21 | PHOSH_HKS_TYPE_MIC = 10,
22 | } PhoshHksDeviceType;
23 |
24 |
25 | #define PHOSH_TYPE_HKS_MANAGER (phosh_hks_manager_get_type ())
26 |
27 | G_DECLARE_FINAL_TYPE (PhoshHksManager, phosh_hks_manager, PHOSH, HKS_MANAGER, GObject)
28 |
29 | PhoshHksManager *phosh_hks_manager_new (void);
30 |
31 | G_END_DECLS
32 |
--------------------------------------------------------------------------------
/tests/stubs/app-tracker.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2021 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Guido Günther
7 | */
8 |
9 | #include "app-tracker.h"
10 |
11 | struct _PhoshAppTracker {
12 | GObject parent;
13 | };
14 |
15 | G_DEFINE_TYPE (PhoshAppTracker, phosh_app_tracker, G_TYPE_OBJECT);
16 |
17 | static void
18 | phosh_app_tracker_class_init (PhoshAppTrackerClass *klass)
19 | {
20 | }
21 |
22 |
23 | static void
24 | phosh_app_tracker_init (PhoshAppTracker *self)
25 | {
26 | }
27 |
28 | void
29 | phosh_app_tracker_launch_app_info (PhoshAppTracker *self,
30 | GAppInfo *info)
31 | {
32 | }
33 |
--------------------------------------------------------------------------------
/src/sensor-proxy-manager.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2020 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include "dbus/iio-sensor-proxy-dbus.h"
10 |
11 | #define PHOSH_TYPE_SENSOR_PROXY_MANAGER (phosh_sensor_proxy_manager_get_type ())
12 |
13 | G_DECLARE_FINAL_TYPE (PhoshSensorProxyManager, phosh_sensor_proxy_manager,
14 | PHOSH, SENSOR_PROXY_MANAGER, PhoshDBusSensorProxyProxy)
15 |
16 | PhoshSensorProxyManager *phosh_sensor_proxy_manager_new (GError **err);
17 | gboolean phosh_sensor_proxy_manager_claim_proximity_sync (PhoshSensorProxyManager *self,
18 | GError **err);
19 |
--------------------------------------------------------------------------------
/.gitlab-ci/README.md:
--------------------------------------------------------------------------------
1 | ### Checklist for Updating the Docker Images
2 |
3 | - [ ] Update the `${image}.Dockerfile` file with the dependencies
4 | - [ ] Run `./run-docker.sh build --base ${image} --version ${number}`
5 | - [ ] Run `./run-docker.sh push --base ${image} --version ${number}`
6 | once the Docker image is built; you may need to log in by using
7 | `docker login` or `podman login` like
8 | podman login -u -p registry.gitlab.gnome.org/world/phosh/phosh
9 | See https://docs.gitlab.com/ee/user/packages/container_registry/
10 | - [ ] Update the `image` keys in the `.gitlab-ci.yml` file with the new
11 | image tag
12 | - [ ] Open a merge request with your changes and let it run
13 |
--------------------------------------------------------------------------------
/src/splash.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2021 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 | #include "layersurface.h"
11 |
12 | #include
13 |
14 | #define PHOSH_TYPE_SPLASH (phosh_splash_get_type ())
15 |
16 | G_DECLARE_DERIVABLE_TYPE (PhoshSplash, phosh_splash, PHOSH, SPLASH, PhoshLayerSurface)
17 |
18 | /**
19 | * PhoshSplashClass
20 | * @parent_class: The parent class
21 | */
22 | struct _PhoshSplashClass {
23 | PhoshLayerSurfaceClass parent_class;
24 | };
25 |
26 |
27 | GtkWidget *phosh_splash_new (GDesktopAppInfo *info, gboolean prefer_dark);
28 | void phosh_splash_hide (PhoshSplash *self);
29 |
--------------------------------------------------------------------------------
/data/icons/network-wireless-disabled-symbolic.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/plugins/emergency-info/emergency-info-row.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2022 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include "emergency-info.h"
10 |
11 | #include
12 | #include
13 |
14 | G_BEGIN_DECLS
15 |
16 | #define PHOSH_TYPE_EMERGENCY_INFO_ROW (phosh_emergency_info_row_get_type ())
17 |
18 | G_DECLARE_FINAL_TYPE (PhoshEmergencyInfoRow, phosh_emergency_info_row, PHOSH, EMERGENCY_INFO_ROW, HdyActionRow)
19 |
20 | GtkWidget *phosh_emergency_info_row_new (const char *contact,
21 | const char *number,
22 | const char *relationship);
23 |
24 | G_END_DECLS
25 |
--------------------------------------------------------------------------------
/plugins/ticket-box/ticket.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2022 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 |
11 | G_BEGIN_DECLS
12 |
13 | #define PHOSH_TYPE_TICKET (phosh_ticket_get_type ())
14 |
15 | G_DECLARE_FINAL_TYPE (PhoshTicket, phosh_ticket, PHOSH, TICKET, GObject)
16 |
17 | PhoshTicket *phosh_ticket_new (GFile *file, GFileInfo *info);
18 | GFile *phosh_ticket_get_file (PhoshTicket *self);
19 | const char *phosh_ticket_get_display_name (PhoshTicket *self);
20 | GIcon *phosh_ticket_get_icon (PhoshTicket *self);
21 | GDateTime *phosh_ticket_get_mod_time (PhoshTicket *self);
22 |
23 | G_END_DECLS
24 |
--------------------------------------------------------------------------------
/src/notifications/notification-banner.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2019 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 | #include "notification.h"
11 |
12 | G_BEGIN_DECLS
13 |
14 |
15 | #define PHOSH_TYPE_NOTIFICATION_BANNER (phosh_notification_banner_get_type ())
16 |
17 |
18 | G_DECLARE_FINAL_TYPE (PhoshNotificationBanner, phosh_notification_banner, PHOSH, NOTIFICATION_BANNER, PhoshLayerSurface)
19 |
20 |
21 | GtkWidget *phosh_notification_banner_new (PhoshNotification *notification);
22 | PhoshNotification *phosh_notification_banner_get_notification (PhoshNotificationBanner *self);
23 |
24 |
25 | G_END_DECLS
26 |
--------------------------------------------------------------------------------
/.gitlab-ci/check-po:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | #
3 | # Copyright (C) 2024 The Phosh developers
4 | # SPDX-License-Identifier: GPL-3.0-or-later
5 | # Author: Guido Günther
6 |
7 | cd po/ || exit 1
8 | # barf on untranslated C files. Seems intltool
9 | # can't be told to exit with non-zero exit status
10 | # in this case
11 |
12 | if intltool-update -m 2>&1 | grep -E -qs '/.*\.(c|ui|in)'; then
13 | intltool-update -m
14 | exit 1
15 | fi
16 |
17 | # Check for broken po files
18 | for file in *.po; do
19 | echo -n "Checking ${file}: "
20 | msgfmt -v -c "${file}"
21 | # Check for errors, msgfmt returns 0 on errors too
22 | if msgfmt -c "${file}" 2>&1 | grep -qs 'fatal error'; then
23 | exit 1
24 | fi
25 | done
26 |
--------------------------------------------------------------------------------
/src/libphosh.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2024 The Phosh Developers
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Guido Günther
7 | */
8 |
9 | /*
10 | * The list of headers here must match what is exposed in Phosh-0.gir
11 | * for Rust binding generation.
12 | */
13 |
14 | #pragma once
15 |
16 | #include
17 |
18 | G_BEGIN_DECLS
19 |
20 | #define __LIBPHOSH_H_INSIDE__
21 |
22 | #include "layersurface.h"
23 | #include "lockscreen-manager.h"
24 | #include "lockscreen.h"
25 | #include "quick-setting.h"
26 | #include "screenshot-manager.h"
27 | #include "shell.h"
28 | #include "status-icon.h"
29 | #include "status-page.h"
30 | #include "wall-clock.h"
31 |
32 | G_END_DECLS
33 |
--------------------------------------------------------------------------------
/src/style-manager.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2024 The Phosh Developers
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 |
11 | G_BEGIN_DECLS
12 |
13 | #define PHOSH_TYPE_STYLE_MANAGER (phosh_style_manager_get_type ())
14 |
15 | G_DECLARE_FINAL_TYPE (PhoshStyleManager, phosh_style_manager, PHOSH, STYLE_MANAGER, GObject)
16 |
17 | PhoshStyleManager *phosh_style_manager_new (void);
18 | const char *phosh_style_manager_get_theme_name (PhoshStyleManager *self);
19 | gboolean phosh_style_manager_is_high_contrast (PhoshStyleManager *self);
20 |
21 | const char *phosh_style_manager_get_stylesheet (const char *theme_name);
22 |
23 | G_END_DECLS
24 |
--------------------------------------------------------------------------------
/tests/test-connectivity-info.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2020 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Guido Günther
7 | */
8 |
9 | #include "connectivity-info.h"
10 |
11 | static void
12 | test_phosh_connectivity_info_new (void)
13 | {
14 | GtkWidget *widget;
15 |
16 | widget = phosh_connectivity_info_new ();
17 | g_assert_true (PHOSH_IS_CONNECTIVITY_INFO (widget));
18 |
19 | gtk_widget_destroy (widget);
20 | }
21 |
22 | int
23 | main (int argc,
24 | char *argv[])
25 | {
26 | gtk_test_init (&argc, &argv, NULL);
27 |
28 | g_test_add_func("/phosh/connectivity-info/new", test_phosh_connectivity_info_new);
29 |
30 | return g_test_run();
31 | }
32 |
--------------------------------------------------------------------------------
/data/icons/no-notifications-symbolic.svg:
--------------------------------------------------------------------------------
1 |
2 |
5 |
--------------------------------------------------------------------------------
/plugins/pomodoro-quick-setting/pomodoro-quick-setting.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2024 The Phosh Developers
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include "quick-setting.h"
10 |
11 | G_BEGIN_DECLS
12 |
13 | typedef enum _PhoshPomodoroState {
14 | PHOSH_POMODORO_STATE_OFF = 0,
15 | PHOSH_POMODORO_STATE_ACTIVE = 1,
16 | PHOSH_POMODORO_STATE_BREAK = 2,
17 | } PhoshPomodoroState;
18 |
19 | #define PHOSH_TYPE_POMODORO_QUICK_SETTING phosh_pomodoro_quick_setting_get_type ()
20 |
21 | G_DECLARE_FINAL_TYPE (PhoshPomodoroQuickSetting,
22 | phosh_pomodoro_quick_setting,
23 | PHOSH, POMODORO_QUICK_SETTING, PhoshQuickSetting)
24 |
25 | G_END_DECLS
26 |
--------------------------------------------------------------------------------
/src/keyboard-events.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2020 Evangelos Ribeiro Tzaras
3 | * 2025 Phosh.mobi e.V.
4 | *
5 | * SPDX-License-Identifier: GPL-3.0-or-later
6 | *
7 | * Author: Evangelos Ribeiro Tzaras
8 | */
9 |
10 | #pragma once
11 |
12 | #include
13 |
14 | G_BEGIN_DECLS
15 |
16 | #define PHOSH_TYPE_KEYBOARD_EVENTS (phosh_keyboard_events_get_type ())
17 |
18 | G_DECLARE_FINAL_TYPE (PhoshKeyboardEvents,
19 | phosh_keyboard_events,
20 | PHOSH,
21 | KEYBOARD_EVENTS,
22 | GSimpleActionGroup)
23 |
24 | PhoshKeyboardEvents *phosh_keyboard_events_new (GError **err);
25 |
26 | G_END_DECLS
27 |
--------------------------------------------------------------------------------
/tests/testlib-calls-mock.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2020 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Guido Günther
7 | */
8 |
9 | #include "testlib.h"
10 |
11 | G_BEGIN_DECLS
12 |
13 | typedef struct _PhoshCallsMock {
14 | GDBusObjectManagerServer *object_manager;
15 | gboolean bus_acquired;
16 | guint bus_id;
17 | } PhoshTestCallsMock;
18 |
19 | PhoshTestCallsMock *phosh_test_calls_mock_new (void);
20 | void phosh_test_calls_mock_dispose (PhoshTestCallsMock *self);
21 | void phosh_calls_mock_export (PhoshTestCallsMock *mock);
22 |
23 | G_DEFINE_AUTOPTR_CLEANUP_FUNC (PhoshTestCallsMock, phosh_test_calls_mock_dispose)
24 |
25 | G_END_DECLS
26 |
--------------------------------------------------------------------------------
/plugins/emergency-info/prefs/emergency-info-prefs-row.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2022 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 | #include
11 |
12 | G_BEGIN_DECLS
13 |
14 | #define PHOSH_TYPE_EMERGENCY_INFO_PREFS_ROW (phosh_emergency_info_prefs_row_get_type ())
15 |
16 | G_DECLARE_FINAL_TYPE (PhoshEmergencyInfoPrefsRow, phosh_emergency_info_prefs_row, PHOSH, EMERGENCY_INFO_PREFS_ROW, AdwActionRow)
17 |
18 | GtkWidget *phosh_emergency_info_prefs_row_new (const char *contact,
19 | const char *number,
20 | const char *relationship);
21 |
22 | G_END_DECLS
23 |
--------------------------------------------------------------------------------
/plugins/caffeine-quick-setting/interval-row.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2025 The Phosh Developers
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 |
11 | #define PHOSH_INTERVAL_ROW_INFINITY_VALUE G_MAXUINT32
12 |
13 | G_BEGIN_DECLS
14 |
15 | #define PHOSH_TYPE_INTERVAL_ROW (phosh_interval_row_get_type ())
16 |
17 | G_DECLARE_FINAL_TYPE (PhoshIntervalRow, phosh_interval_row, PHOSH, INTERVAL_ROW, HdyActionRow)
18 |
19 | PhoshIntervalRow *phosh_interval_row_new (uint value, gboolean selected);
20 | uint phosh_interval_row_get_value (PhoshIntervalRow *self);
21 | void phosh_interval_row_set_selected (PhoshIntervalRow *self, gboolean selected);
22 |
23 | G_END_DECLS
24 |
--------------------------------------------------------------------------------
/tests/test-activity.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2018 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Guido Günther
7 | */
8 |
9 | #include "activity.h"
10 |
11 | static void
12 | test_phosh_activity_new(void)
13 | {
14 | PhoshActivity *activity = PHOSH_ACTIVITY (phosh_activity_new ("com.example.foo"));
15 | g_assert (activity);
16 | g_assert_cmpstr (phosh_activity_get_app_id (activity), ==, "com.example.foo");
17 | gtk_widget_destroy (GTK_WIDGET (activity));
18 | }
19 |
20 |
21 | int
22 | main (int argc,
23 | char *argv[])
24 | {
25 | gtk_test_init (&argc, &argv, NULL);
26 |
27 | g_test_add_func("/phosh/activity/new", test_phosh_activity_new);
28 | return g_test_run();
29 | }
30 |
--------------------------------------------------------------------------------
/src/debug-control.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2025 Phosh.mobi e.V.
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include "phosh-dbus-debug-control.h"
10 |
11 | #include
12 |
13 | G_BEGIN_DECLS
14 |
15 |
16 |
17 | #define PHOSH_TYPE_DEBUG_CONTROL (phosh_debug_control_get_type ())
18 |
19 | G_DECLARE_FINAL_TYPE (PhoshDebugControl, phosh_debug_control, PHOSH, DEBUG_CONTROL,
20 | PhoshDBusDebugControlSkeleton)
21 |
22 | PhoshDebugControl *phosh_debug_control_new (void);
23 | void phosh_debug_control_set_exported (PhoshDebugControl *self,
24 | gboolean exported);
25 |
26 | G_END_DECLS
27 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | __pycache__/
2 | _build
3 | TAGS
4 | tags
5 | vgdump
6 | *.swp
7 | *~
8 | \#*#
9 | .\#*
10 | /subprojects/.wraplock
11 | /subprojects/glib
12 | /subprojects/gmobile
13 | /subprojects/gvc
14 | /subprojects/libcall-ui
15 | /subprojects/libhandy
16 | .vscode/
17 | *.gcov
18 | debian/phosh.service
19 | debian/files
20 | debian/*.substvars
21 | debian/*debhelper*
22 | debian/gir1.2-phosh-0-dev/
23 | debian/libphosh-0.45-0/
24 | debian/libphosh-0.45-dev/
25 | debian/phosh/
26 | debian/phosh-common/
27 | debian/phosh-dev/
28 | debian/phosh-doc/
29 | debian/phosh-mobile-tweaks/
30 | debian/phosh-plugins/
31 | debian/phosh.postinst
32 | debian/phosh.postrm
33 | debian/phosh.triggers
34 | debian/tmp/
35 | po/messages.mo
36 | po/missing
37 | po/notexist
38 | po/*.pot
39 |
--------------------------------------------------------------------------------
/plugins/upcoming-events/sm.puri.phosh.plugins.upcoming-events.gschema.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 | 7
7 | Number of days to display
8 | The number of days for which the events should be displayed.
9 |
10 |
11 | false
12 | Whether to exclude days without any events
13 | Controls whether days with no events should be displayed.
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/src/osk-manager.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2018 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Guido Günther
7 | */
8 |
9 | #pragma once
10 |
11 | #include
12 |
13 | G_BEGIN_DECLS
14 |
15 | #define PHOSH_TYPE_OSK_MANAGER (phosh_osk_manager_get_type())
16 |
17 | G_DECLARE_FINAL_TYPE (PhoshOskManager, phosh_osk_manager, PHOSH, OSK_MANAGER, GObject)
18 |
19 | PhoshOskManager * phosh_osk_manager_new (void);
20 | gboolean phosh_osk_manager_get_available (PhoshOskManager *self);
21 | void phosh_osk_manager_set_visible (PhoshOskManager *self, gboolean visible);
22 | gboolean phosh_osk_manager_get_visible (PhoshOskManager *self);
23 |
24 | G_END_DECLS
25 |
--------------------------------------------------------------------------------
/src/screen-saver-manager.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2018 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Guido Günther
7 | */
8 |
9 | #pragma once
10 |
11 | #include "lockscreen-manager.h"
12 |
13 | #include "dbus/phosh-screen-saver-dbus.h"
14 |
15 | #include
16 |
17 | G_BEGIN_DECLS
18 |
19 | #define PHOSH_TYPE_SCREEN_SAVER_MANAGER (phosh_screen_saver_manager_get_type ())
20 |
21 | G_DECLARE_FINAL_TYPE (PhoshScreenSaverManager, phosh_screen_saver_manager, PHOSH, SCREEN_SAVER_MANAGER,
22 | PhoshDBusScreenSaverSkeleton)
23 |
24 | PhoshScreenSaverManager *phosh_screen_saver_manager_new (PhoshLockscreenManager *lockscreen_manager);
25 |
26 | G_END_DECLS
27 |
--------------------------------------------------------------------------------
/src/notifications/timestamp-label.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright © 2020 Lugsole
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 |
11 |
12 | G_BEGIN_DECLS
13 |
14 | #define PHOSH_TYPE_TIMESTAMP_LABEL (phosh_timestamp_label_get_type ())
15 |
16 | G_DECLARE_FINAL_TYPE (PhoshTimestampLabel, phosh_timestamp_label, PHOSH, TIMESTAMP_LABEL, GtkBin)
17 |
18 | PhoshTimestampLabel *phosh_timestamp_label_new (void);
19 | void phosh_timestamp_label_set_timestamp (PhoshTimestampLabel *self,
20 | GDateTime *date);
21 | GDateTime * phosh_timestamp_label_get_timestamp (PhoshTimestampLabel *self);
22 |
23 | G_END_DECLS
24 |
--------------------------------------------------------------------------------
/tests/test-power-menu.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2023 Phosh.mobi e.V.
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Guido Günther
7 | */
8 |
9 | #include "power-menu.h"
10 |
11 | #include "testlib-compositor.h"
12 |
13 | static void
14 | test_phosh_power_menu_new (PhoshTestCompositorFixture *fixture, gconstpointer data)
15 | {
16 | PhoshPowerMenu *menu;
17 |
18 | menu = phosh_power_menu_new (phosh_test_get_monitor (fixture->state));
19 | gtk_widget_destroy (GTK_WIDGET (menu));
20 | }
21 |
22 | int
23 | main (int argc, char *argv[])
24 | {
25 | g_test_init (&argc, &argv, NULL);
26 |
27 | PHOSH_COMPOSITOR_TEST_ADD ("/phosh/power-menu/new", test_phosh_power_menu_new);
28 |
29 | return g_test_run ();
30 | }
31 |
--------------------------------------------------------------------------------
/tests/testlib-mpris-mock.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2020 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Guido Günther
7 | */
8 |
9 | #include "mpris-dbus.h"
10 |
11 | #include "testlib.h"
12 |
13 | G_BEGIN_DECLS
14 |
15 | typedef struct _PhoshMprisMock {
16 | PhoshDBusMediaPlayer2Player *skel;
17 | gboolean bus_acquired;
18 | guint bus_id;
19 | } PhoshTestMprisMock;
20 |
21 | PhoshTestMprisMock *phosh_test_mpris_mock_new (void);
22 | void phosh_test_mpris_mock_dispose (PhoshTestMprisMock *self);
23 | void phosh_mpris_mock_export (PhoshTestMprisMock *mock);
24 |
25 | G_DEFINE_AUTOPTR_CLEANUP_FUNC (PhoshTestMprisMock, phosh_test_mpris_mock_dispose)
26 |
27 | G_END_DECLS
28 |
--------------------------------------------------------------------------------
/src/run-command-dialog.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2021 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Florian Loers
7 | */
8 |
9 | #pragma once
10 |
11 | #include "system-modal-dialog.h"
12 | #include
13 |
14 | G_BEGIN_DECLS
15 |
16 | #define PHOSH_TYPE_RUN_COMMAND_DIALOG (phosh_run_command_dialog_get_type ())
17 |
18 | G_DECLARE_FINAL_TYPE (PhoshRunCommandDialog, phosh_run_command_dialog, PHOSH, RUN_COMMAND_DIALOG, PhoshSystemModalDialog)
19 |
20 | GtkWidget *phosh_run_command_dialog_new (void);
21 | void phosh_run_command_dialog_set_message (PhoshRunCommandDialog *self,
22 | const char *message);
23 |
24 | G_END_DECLS
25 |
--------------------------------------------------------------------------------
/plugins/pomodoro-quick-setting/icons/pomodoro-off-symbolic.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/polkit-auth-prompt.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2019 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 | #include "system-modal-dialog.h"
11 |
12 | #define PHOSH_TYPE_POLKIT_AUTH_PROMPT (phosh_polkit_auth_prompt_get_type())
13 |
14 | G_DECLARE_FINAL_TYPE (PhoshPolkitAuthPrompt, phosh_polkit_auth_prompt, PHOSH, POLKIT_AUTH_PROMPT, PhoshSystemModalDialog);
15 |
16 | GtkWidget *phosh_polkit_auth_prompt_new (const char *action_id,
17 | const char *message,
18 | const char *icon_name,
19 | const char *cookie,
20 | GStrv user_names);
21 |
22 |
23 |
--------------------------------------------------------------------------------
/data/icons/network-cellular-no-data-signal-excellent-symbolic.svg:
--------------------------------------------------------------------------------
1 |
2 |
6 |
--------------------------------------------------------------------------------
/data/icons/camera-hardware-disabled-symbolic.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/src/activity.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2018 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 | #pragma once
7 |
8 | #include
9 | #include "thumbnail.h"
10 |
11 | #define PHOSH_TYPE_ACTIVITY (phosh_activity_get_type())
12 |
13 | G_DECLARE_FINAL_TYPE (PhoshActivity, phosh_activity, PHOSH, ACTIVITY, GtkEventBox)
14 |
15 | GtkWidget *phosh_activity_new (const char *app_id);
16 | const char *phosh_activity_get_app_id (PhoshActivity *self);
17 | void phosh_activity_set_thumbnail (PhoshActivity *self,
18 | PhoshThumbnail *thumbnail);
19 | void phosh_activity_get_thumbnail_allocation (PhoshActivity *self,
20 | GtkAllocation *allocation);
21 |
--------------------------------------------------------------------------------
/src/dbus/org.gnome.ScreenSaver.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/data/icons/torch-disabled-symbolic.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/data/systemd/mobi.phosh.Shell.service.in:
--------------------------------------------------------------------------------
1 | # This is a systemd user unit intended to be started with gnome-session.
2 |
3 | [Unit]
4 | Description=Phosh, a shell for mobile phones
5 | Documentation=https://gitlab.gnome.org/World/Phosh/phosh
6 |
7 | After=gnome-session-manager.target
8 |
9 | Requisite=gnome-session-initialized.target
10 | PartOf=gnome-session-initialized.target
11 | Before=gnome-session-initialized.target
12 |
13 | StartLimitIntervalSec=15s
14 | StartLimitBurst=3
15 |
16 | OnFailure=gnome-session-shutdown.target
17 | OnFailureJobMode=replace-irreversibly
18 | CollectMode=inactive-or-failed
19 | RefuseManualStart=on
20 | RefuseManualStop=on
21 |
22 | [Service]
23 | Type=notify
24 | ExecStart=@libexecdir@/phosh
25 | Restart=on-failure
26 | Slice=session.slice
27 | OOMScoreAdjust=-1000
28 |
--------------------------------------------------------------------------------
/plugins/upcoming-events/mobi.phosh.Shell.CalendarServer.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/data/icons/network-cellular-no-data-signal-none-symbolic.svg:
--------------------------------------------------------------------------------
1 |
2 |
6 |
--------------------------------------------------------------------------------
/gcovr.cfg:
--------------------------------------------------------------------------------
1 | # Imported verbatim from gnome-shell
2 | exclude = calendar-server/
3 | exclude = src/contrib/
4 |
5 | # Autogenerated
6 | exclude = _build/
7 | exclude = _build/protocol/
8 | exclude = _build/plugins/upcoming-events/phosh-plugin-upcoming-events-phosh-calendar-dbus.c
9 | exclude = _build/plugins/upcoming-events/phosh-plugin-upcoming-events-resources.c
10 | exclude = _build/src/phosh-enums.c
11 | exclude = _build/src/phosh-marshalers.c
12 | exclude = _build/src/phosh-resources.c
13 | exclude = _build/subprojects/libcall-ui/src/cui-enums.c
14 | exclude = _build/subprojects/libcall-ui/src/cui-resources.c
15 | # Imported verbatim from GTK
16 | exclude = src/gtk-list-models/
17 |
18 | exclude = src/libphosh-tool.a.p/
19 | exclude = src/libphosh.so.p/
20 | exclude = subprojects/
21 | exclude = tools/
22 |
--------------------------------------------------------------------------------
/src/notifications/notify-feedback.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2021 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include "notification-list.h"
10 |
11 | #include
12 |
13 | #include "phosh-settings-enums.h"
14 |
15 | G_BEGIN_DECLS
16 |
17 |
18 | #define PHOSH_TYPE_NOTIFY_FEEDBACK (phosh_notify_feedback_get_type ())
19 |
20 | G_DECLARE_FINAL_TYPE (PhoshNotifyFeedback, phosh_notify_feedback, PHOSH, NOTIFY_FEEDBACK, GObject)
21 |
22 | PhoshNotifyFeedback *phosh_notify_feedback_new (PhoshNotificationList *list);
23 | gboolean phosh_notify_feedback_check_screen_wakeup (PhoshNotifyFeedback *self,
24 | PhoshNotification *notification);
25 |
26 | G_END_DECLS
27 |
--------------------------------------------------------------------------------
/debian/phosh.install:
--------------------------------------------------------------------------------
1 | usr/bin/phosh-session
2 | usr/lib/systemd/user/gnome-session@phosh.target.d/session.conf
3 | usr/lib/systemd/user/mobi.phosh.Shell.service
4 | usr/lib/systemd/user/mobi.phosh.Shell.target
5 | usr/libexec/phosh
6 | usr/libexec/phosh-searchd
7 | usr/libexec/phosh-calendar-server
8 | usr/share/icons/hicolor/symbolic/apps/mobi.phosh.Shell-symbolic.svg
9 | usr/share/locale
10 | usr/share/wayland-sessions/phosh.desktop
11 | usr/share/phosh/phoc.ini
12 | usr/share/gnome-session/sessions/phosh.session
13 | usr/share/applications/mobi.phosh.Shell.desktop
14 | usr/share/dbus-1/services/mobi.phosh.Shell.CalendarServer.service
15 | usr/share/dbus-1/services/mobi.phosh.Shell.Search.service
16 | usr/share/xdg-desktop-portal/phosh-portals.conf
17 | usr/share/xdg-desktop-portal/portals/phosh-shell.portal
18 |
--------------------------------------------------------------------------------
/src/app-list-model.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright © 2019 Zander Brown
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #include
8 | #include
9 |
10 | #pragma once
11 |
12 | G_BEGIN_DECLS
13 |
14 | #define PHOSH_TYPE_APP_LIST_MODEL phosh_app_list_model_get_type()
15 | G_DECLARE_DERIVABLE_TYPE (PhoshAppListModel, phosh_app_list_model, PHOSH, APP_LIST_MODEL, GObject)
16 |
17 | struct _PhoshAppListModelClass
18 | {
19 | GObjectClass parent_class;
20 | };
21 |
22 | PhoshAppListModel *phosh_app_list_model_get_default (void);
23 | GDesktopAppInfo *phosh_app_list_model_lookup_by_startup_wm_class (PhoshAppListModel *self,
24 | const char *class);
25 |
26 | G_END_DECLS
27 |
--------------------------------------------------------------------------------
/src/notifications/meson.build:
--------------------------------------------------------------------------------
1 | phosh_notifications_inc = include_directories('.')
2 |
3 | phosh_notifications_headers = files(
4 | 'dbus-notification.h',
5 | 'mount-notification.h',
6 | 'notification-banner.h',
7 | 'notification-content.h',
8 | 'notification-frame.h',
9 | 'notification-list.h',
10 | 'notification-source.h',
11 | 'notification.h',
12 | 'notify-feedback.h',
13 | 'notify-manager.h',
14 | 'timestamp-label.h',
15 | )
16 |
17 | phosh_notifications_sources = files(
18 | 'dbus-notification.c',
19 | 'mount-notification.c',
20 | 'notification-banner.c',
21 | 'notification-content.c',
22 | 'notification-frame.c',
23 | 'notification-list.c',
24 | 'notification-source.c',
25 | 'notification.c',
26 | 'notify-feedback.c',
27 | 'notify-manager.c',
28 | 'timestamp-label.c',
29 | )
30 |
--------------------------------------------------------------------------------
/data/icons/network-cellular-no-data-signal-ok-symbolic.svg:
--------------------------------------------------------------------------------
1 |
2 |
7 |
--------------------------------------------------------------------------------
/.gitlab-ci/g-style:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Copyright (C) 2025 Phosh.mobi e.V.
4 | #
5 | # SPDX-License-Identifier: GPL-3.0-or-later
6 | #
7 | # Author: Gotam Gorabh
8 | #
9 | # Scans specified source directories for 'gchar' usage.
10 | #
11 | # Usage:
12 | # ./g-style src tests plugins
13 | # If no directories are provided, the whole repository is scanned.
14 |
15 | set -e
16 |
17 | # Use command-line arguments if given; if none, scan the whole tree
18 | SOURCE_DIRS=("$@")
19 |
20 | status=0
21 |
22 | # Search for gchar
23 | if git grep -q "\bgchar\b" -- "${SOURCE_DIRS[@]}"; then
24 | echo "Found 'gchar' in these files:"
25 | git grep -nH "\bgchar\b" -- "${SOURCE_DIRS[@]}"
26 |
27 | echo
28 | echo "gchar usage detected. Please use 'char' over 'gchar'."
29 | status=1
30 | fi
31 |
32 | exit $status
33 |
--------------------------------------------------------------------------------
/data/icons/app-close-symbolic.svg:
--------------------------------------------------------------------------------
1 |
2 |
5 |
--------------------------------------------------------------------------------
/data/icons/network-cellular-no-data-signal-good-symbolic.svg:
--------------------------------------------------------------------------------
1 |
2 |
7 |
--------------------------------------------------------------------------------
/data/icons/network-cellular-no-data-signal-weak-symbolic.svg:
--------------------------------------------------------------------------------
1 |
2 |
7 |
--------------------------------------------------------------------------------
/plugins/wifi-hotspot-quick-setting/icons/network-wireless-hotspot-disabled-symbolic.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/data/icons/mobile-data-disabled-symbolic.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/docked-manager.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2020 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 |
11 | #include
12 |
13 | G_BEGIN_DECLS
14 |
15 | #define PHOSH_TYPE_DOCKED_MANAGER (phosh_docked_manager_get_type ())
16 |
17 | G_DECLARE_FINAL_TYPE (PhoshDockedManager, phosh_docked_manager, PHOSH, DOCKED_MANAGER, GObject)
18 |
19 | PhoshDockedManager *phosh_docked_manager_new (PhoshModeManager *mode_manager);
20 | const char *phosh_docked_manager_get_icon_name (PhoshDockedManager *self);
21 | gboolean phosh_docked_manager_get_enabled (PhoshDockedManager *self);
22 | gboolean phosh_docked_manager_get_can_dock (PhoshDockedManager *self);
23 | void phosh_docked_manager_set_enabled (PhoshDockedManager *self, gboolean enabled);
24 |
25 | G_END_DECLS
26 |
--------------------------------------------------------------------------------
/src/emergency-calls-manager.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2022 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Thomas Booker
7 | */
8 |
9 | #pragma once
10 |
11 | #include "call.h"
12 | #include "manager.h"
13 |
14 | #include
15 |
16 | G_BEGIN_DECLS
17 |
18 |
19 | #define PHOSH_TYPE_EMERGENCY_CALLS_MANAGER (phosh_emergency_calls_manager_get_type ())
20 |
21 | G_DECLARE_FINAL_TYPE (PhoshEmergencyCallsManager, phosh_emergency_calls_manager, PHOSH, EMERGENCY_CALLS_MANAGER, PhoshManager)
22 |
23 | PhoshEmergencyCallsManager *phosh_emergency_calls_manager_new (void);
24 | GListStore *phosh_emergency_calls_manager_get_list_store (PhoshEmergencyCallsManager *self);
25 | void phosh_emergency_calls_manager_call (PhoshEmergencyCallsManager *self, const char *id);
26 |
27 | G_END_DECLS
28 |
--------------------------------------------------------------------------------
/plugins/location-quick-setting/icons/location-quick-setting-symbolic.svg:
--------------------------------------------------------------------------------
1 |
2 |
5 |
--------------------------------------------------------------------------------
/plugins/ticket-box/prefs/meson.build:
--------------------------------------------------------------------------------
1 | ticket_box_prefs_resources = gnome.compile_resources(
2 | 'phosh-plugin-prefs-ticket-box-resources',
3 | 'phosh-plugin-prefs-ticket-box.gresources.xml',
4 | c_name: 'phosh_plugin_prefs_ticket_box',
5 | )
6 |
7 | ticket_box_plugin_prefs_sources = files(
8 | 'phosh-plugin-prefs-ticket-box.c',
9 | 'ticket-box-prefs.c',
10 | 'ticket-box-prefs.h',
11 | )
12 |
13 | phosh_ticket_box_plugin_prefs = shared_module(
14 | 'phosh-plugin-prefs-ticket-box',
15 | ticket_box_plugin_prefs_sources,
16 | ticket_box_prefs_resources,
17 | c_args: [
18 | '-DG_LOG_DOMAIN="phosh-plugin-prefs-ticket-box"',
19 | '-DPLUGIN_PREFS_NAME="@0@-prefs"'.format(name),
20 | '-DADW_VERSION_MIN_REQUIRED=@0@'.format(adw_ver_str),
21 | ],
22 | dependencies: plugin_prefs_dep,
23 | install: true,
24 | install_dir: plugin_prefs_dir,
25 | )
26 |
--------------------------------------------------------------------------------
/src/overview.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2018 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include "app-grid.h"
10 |
11 | #include
12 |
13 | G_BEGIN_DECLS
14 |
15 | #define PHOSH_TYPE_OVERVIEW (phosh_overview_get_type())
16 |
17 | G_DECLARE_FINAL_TYPE (PhoshOverview, phosh_overview, PHOSH, OVERVIEW, GtkBox)
18 |
19 |
20 | GtkWidget *phosh_overview_new (void);
21 | void phosh_overview_refresh (PhoshOverview *self);
22 | void phosh_overview_reset (PhoshOverview *self);
23 | void phosh_overview_focus_app_search (PhoshOverview *self);
24 | gboolean phosh_overview_has_running_activities (PhoshOverview *self);
25 | gboolean phosh_overview_handle_search (PhoshOverview *self, GdkEvent *event);
26 | PhoshAppGrid *phosh_overview_get_app_grid (PhoshOverview *self);
27 |
28 | G_END_DECLS
29 |
--------------------------------------------------------------------------------
/src/contrib/gnome-bluetooth/gnome-bluetooth-enum-types.h:
--------------------------------------------------------------------------------
1 |
2 | /* This file is generated by glib-mkenums, do not modify it. This code is licensed under the same license as the containing project. Note that it links to GLib, so must comply with the LGPL linking clauses. */
3 |
4 | #pragma once
5 |
6 | #include
7 |
8 |
9 | G_BEGIN_DECLS
10 |
11 | /* enumerations from "bluetooth-enums.h" */
12 |
13 |
14 | GType bluetooth_type_get_type (void);
15 | #define BLUETOOTH_TYPE_TYPE (bluetooth_type_get_type())
16 |
17 |
18 | GType bluetooth_battery_type_get_type (void);
19 | #define BLUETOOTH_TYPE_BATTERY_TYPE (bluetooth_battery_type_get_type())
20 |
21 |
22 | GType bluetooth_adapter_state_get_type (void);
23 | #define BLUETOOTH_TYPE_ADAPTER_STATE (bluetooth_adapter_state_get_type())
24 |
25 | G_END_DECLS
26 |
27 | /* Generated data ends here */
28 |
29 |
--------------------------------------------------------------------------------
/src/portal-request.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2022 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Florian Loers
7 | */
8 |
9 | #pragma once
10 |
11 | #include "dbus/portal-dbus.h"
12 |
13 | #define PHOSH_TYPE_PORTAL_REQUEST (phosh_portal_request_get_type ())
14 | G_DECLARE_FINAL_TYPE (PhoshPortalRequest, phosh_portal_request,
15 | PHOSH, PORTAL_REQUEST,
16 | PhoshDBusImplPortalRequestSkeleton);
17 |
18 | PhoshPortalRequest *phosh_portal_request_new (const char *sender, const char *app_id, const char *id);
19 | gboolean phosh_portal_request_exported (PhoshPortalRequest *self);
20 | void phosh_portal_request_export (PhoshPortalRequest *self, GDBusConnection *connection);
21 | void phosh_portal_request_unexport (PhoshPortalRequest *self);
22 |
--------------------------------------------------------------------------------
/tests/services/meson.build:
--------------------------------------------------------------------------------
1 | service_data = configuration_data()
2 | service_data.set('ABS_BUILDDIR', meson.project_build_root())
3 |
4 | dbus_interface = meson.project_source_root() / 'src' / 'dbus' / 'org.gnome.Shell.SearchProvider2.xml'
5 | service = 'org.gnome.Phosh.MockSearchProvider.service'
6 |
7 | configure_file(
8 | input: service + '.in',
9 | output: service,
10 | configuration: service_data,
11 | )
12 |
13 | sources = files('testlib-search-provider-app.c'
14 | , 'testlib-search-provider.c')
15 |
16 | sources += gnome.gdbus_codegen(
17 | 'phosh-search-provider-mock-generated',
18 | sources: dbus_interface,
19 | interface_prefix: 'org.gnome.',
20 | namespace: 'Phosh',
21 | )
22 |
23 | mock_search_provider_exec = executable(
24 | 'mock-search-provider',
25 | sources,
26 | include_directories: root_inc,
27 | dependencies: [gio_dep, glib_dep, gtk_dep],
28 | )
29 |
--------------------------------------------------------------------------------
/src/lockscreen-bg.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2025 The Phosh Developers
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include "layersurface-priv.h"
10 | #include "background-image.h"
11 |
12 | #include
13 |
14 | G_BEGIN_DECLS
15 |
16 | #define PHOSH_TYPE_LOCKSCREEN_BG (phosh_lockscreen_bg_get_type ())
17 |
18 | G_DECLARE_FINAL_TYPE (PhoshLockscreenBg, phosh_lockscreen_bg, PHOSH, LOCKSCREEN_BG,
19 | PhoshLayerSurface)
20 |
21 | PhoshLockscreenBg * phosh_lockscreen_bg_new (struct zwlr_layer_shell_v1 *layer_shell,
22 | struct wl_output *wl_output);
23 | void phosh_lockscreen_bg_set_image (PhoshLockscreenBg *self,
24 | PhoshBackgroundImage *image);
25 |
26 | G_END_DECLS
27 |
--------------------------------------------------------------------------------
/data/leak-suppress.txt:
--------------------------------------------------------------------------------
1 | # Use via environment variable LSAN_OPTIONS=suppressions=data/leak-suppress.txt
2 |
3 | # Ignore fontconfig reported leaks. It's caches cause false positives.
4 | leak:libfontconfig.so.1
5 |
6 | #
7 | # Glib
8 | #
9 | # Quarks stay around
10 | leak:g_quark_init
11 |
12 | #
13 | # Gvfs:
14 | #
15 | # https://gitlab.gnome.org/GNOME/gvfs/-/issues/577
16 | leak:g_daemon_vfs_init
17 |
18 | #
19 | # GTK3/GDK
20 | #
21 | # gtk's gdk_set_allowed_backend uses g_strdup()
22 | leak:gdk_set_allowed_backends
23 | # Displays from gtk's gdk_display_manager_open_display are never free'd
24 | leak:gdk_display_manager_open_display
25 | # See gtk-style-context suppressions in gtk's gtk.supp:
26 | leak:gtk_css_node_declaration_make_writable
27 | leak:gtk_css_widget_node_new
28 | # GDK leaks here. Needs investigation.
29 | leak:gdk_window_init
30 | leak:_gdk_wayland_display_create_window_impl
31 |
--------------------------------------------------------------------------------
/docs/phosh-dbus-sm.puri.OSK0.md:
--------------------------------------------------------------------------------
1 | Title: sm.puri.OSK0 DBus Interface
2 | Slug: sm.puri.OSK0
3 |
4 | # sm.puri.OSK0
5 |
6 | ## Description
7 |
8 | This interface is exported by on screen keyboards (OSK) to
9 | indicate and set state like visibility.
10 |
11 | ### Properties
12 |
13 | #### sm.puri.OSK0:Visible
14 |
15 | ```
16 | Visible readable b
17 | ```
18 |
19 | Indicates whether the on screen keyboard is currently
20 | unfolded. `TRUE` if the OSK is currently visible to the user,
21 | `FALSE` otherwise.
22 |
23 | ### Methods
24 |
25 | #### sm.puri.OSK0.SetVisible
26 |
27 | ```
28 | SetVisible (
29 | IN visible b
30 | )
31 | ```
32 |
33 | Toggle keyboard visibility.
34 |
35 | * visible: `TRUE` if the OSK should be shown to the user, `FALSE` otherwise
36 |
37 | # See also
38 |
39 | * [Phosh's On Screen Keyboard Interface](https://phosh.mobi/posts/phosh-osk-interface/)
40 |
--------------------------------------------------------------------------------
/.gitlab-ci/screenshot.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.gnome.org/world/phosh/phosh/debian:v0.0.2025-11-06
2 |
3 | RUN export DEBIAN_FRONTEND=noninteractive \
4 | && apt-get -y update \
5 | && eatmydata apt-get -y update \
6 | && cd /home/user/app \
7 | && eatmydata apt-get -y -f install \
8 | && eatmydata apt-get -y install imagemagick-7.q16 fonts-lato fonts-vlgothic gnome-shell-common gsettings-desktop-schemas feedbackd fonts-cantarell librsvg2-common \
9 | && eatmydata apt-get -y install python3 python3-junit.xml python3-coloredlogs \
10 | && eatmydata apt-get clean
11 |
12 | # Allow translation files so GTK 3 can set widget direction (not needed in GTK 4)
13 | RUN sed -i "s@path-exclude /usr/share/locale/\*@# path-exclude /usr/share/locale/\*@" /etc/dpkg/dpkg.cfg.d/docker
14 | # Reinstall GTK 3 so translation files are setup
15 | RUN eatmydata apt-get reinstall -y libgtk-3-common
16 |
--------------------------------------------------------------------------------
/plugins/emergency-info/prefs/emergency-info-prefs-row.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | center
8 |
9 |
10 |
11 | edit-delete-symbolic
12 |
13 |
14 |
15 |
16 |
17 |
18 | right
19 | end
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/src/vpn-manager.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2021 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 |
11 | G_BEGIN_DECLS
12 |
13 | #define PHOSH_TYPE_VPN_MANAGER (phosh_vpn_manager_get_type())
14 |
15 | G_DECLARE_FINAL_TYPE (PhoshVpnManager, phosh_vpn_manager, PHOSH, VPN_MANAGER, GObject)
16 |
17 | PhoshVpnManager *phosh_vpn_manager_new (void);
18 | const char *phosh_vpn_manager_get_icon_name (PhoshVpnManager *self);
19 | gboolean phosh_vpn_manager_get_enabled (PhoshVpnManager *self);
20 | gboolean phosh_vpn_manager_get_present (PhoshVpnManager *self);
21 | const char * phosh_vpn_manager_get_last_connection (PhoshVpnManager *self);
22 | void phosh_vpn_manager_toggle_last_connection (PhoshVpnManager *self);
23 |
24 | G_END_DECLS
25 |
--------------------------------------------------------------------------------
/src/wwan/wwan-manager.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2021 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 |
11 | G_BEGIN_DECLS
12 |
13 | #define PHOSH_TYPE_WWAN_MANAGER (phosh_wwan_manager_get_type())
14 |
15 | G_DECLARE_DERIVABLE_TYPE (PhoshWWanManager, phosh_wwan_manager, PHOSH, WWAN_MANAGER, GObject)
16 |
17 | struct _PhoshWWanManagerClass {
18 | GObjectClass parent_class;
19 | };
20 |
21 | PhoshWWanManager *phosh_wwan_manager_new (void);
22 | void phosh_wwan_manager_set_enabled (PhoshWWanManager *self, gboolean enabled);
23 | gboolean phosh_wwan_manager_get_data_enabled (PhoshWWanManager *self);
24 | void phosh_wwan_manager_set_data_enabled (PhoshWWanManager *self, gboolean enabled);
25 | gboolean phosh_wwan_manager_has_data (PhoshWWanManager *self);
26 |
27 | G_END_DECLS
28 |
--------------------------------------------------------------------------------
/src/polkit-auth-agent.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2019 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Guido Günther
7 | */
8 |
9 | #pragma once
10 |
11 | #include "phosh-config.h"
12 |
13 | #define POLKIT_AGENT_I_KNOW_API_IS_SUBJECT_TO_CHANGE
14 | #include
15 |
16 | #include
17 |
18 | G_BEGIN_DECLS
19 |
20 | #define PHOSH_TYPE_POLKIT_AUTH_AGENT (phosh_polkit_auth_agent_get_type())
21 |
22 | G_DECLARE_FINAL_TYPE (PhoshPolkitAuthAgent, phosh_polkit_auth_agent, PHOSH, POLKIT_AUTH_AGENT, PolkitAgentListener)
23 |
24 | PhoshPolkitAuthAgent * phosh_polkit_auth_agent_new (void);
25 | void phosh_polkit_authentication_agent_register (PhoshPolkitAuthAgent *agent,
26 | GError **error);
27 |
28 | G_END_DECLS
29 |
--------------------------------------------------------------------------------
/src/top-panel-bg.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2024 Phosh.mobi e.V.
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include "layersurface.h"
10 | #include "monitor/monitor.h"
11 |
12 | G_BEGIN_DECLS
13 |
14 | #define PHOSH_TYPE_TOP_PANEL_BG (phosh_top_panel_bg_get_type ())
15 |
16 | G_DECLARE_FINAL_TYPE (PhoshTopPanelBg, phosh_top_panel_bg, PHOSH, TOP_PANEL_BG, PhoshLayerSurface)
17 |
18 | PhoshTopPanelBg *phosh_top_panel_bg_new (struct zwlr_layer_shell_v1 *layer_shell,
19 | PhoshMonitor *monitor,
20 | guint32 layer);
21 | void phosh_top_panel_bg_set_transparency (PhoshTopPanelBg *self,
22 | double transparency);
23 |
24 | G_END_DECLS
25 |
--------------------------------------------------------------------------------
/tests/test-media-player.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2019 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Guido Günther
7 | */
8 |
9 | #include "media-player.h"
10 |
11 | static void
12 | test_phosh_media_player_new (void)
13 | {
14 | PhoshMediaPlayer *player;
15 |
16 | player = PHOSH_MEDIA_PLAYER (g_object_ref_sink (phosh_media_player_new ()));
17 | g_assert_true (PHOSH_IS_MEDIA_PLAYER (player));
18 |
19 | g_assert_false (phosh_media_player_get_is_playable (player));
20 | g_assert_cmpint (phosh_media_player_get_status (player), ==, PHOSH_MEDIA_PLAYER_STATUS_STOPPED);
21 |
22 | g_assert_finalize_object (player);
23 | }
24 |
25 | int
26 | main (int argc, char *argv[])
27 | {
28 | gtk_test_init (&argc, &argv, NULL);
29 |
30 | g_test_add_func ("/phosh/media-player/new", test_phosh_media_player_new);
31 |
32 | return g_test_run ();
33 | }
34 |
--------------------------------------------------------------------------------
/tools/check-deprecated-ui-props:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -e
4 |
5 | ROOT="${1:-$PWD}"
6 | ret=0
7 |
8 | for tag in expand margin margin-left margin-right; do
9 | echo "Checking '$tag'"
10 | if git grep "=\"${tag}\"" -- "$ROOT/*.ui" >& /dev/null; then
11 | echo "Found deprecated UI property ${tag}" 1>&2
12 | git --no-pager grep "=\"${tag}\"" -- "$ROOT/*.ui" 1>&2
13 | ret=1
14 | fi
15 | done
16 |
17 | printf "\nChecking for deprecated attributes\n"
18 | DEPRECATED_PACKING_ATTRIBUTES="expand fill halign hexpand valign vexpand position"
19 | XPATH="count(//packing/property[contains('$DEPRECATED_PACKING_ATTRIBUTES', @name)])"
20 | for file in "$ROOT"/src/ui/*.ui "$ROOT"/plugins/**/*.ui; do
21 | count=$(xmlstarlet sel -t -v "$XPATH" "$file")
22 | if [[ $count != "0" ]]; then
23 | echo "${file} uses deprecated attributes"
24 | ret=1
25 | fi
26 | done
27 |
28 | exit $ret
29 |
--------------------------------------------------------------------------------
/calendar-server/calendar-debug.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2004 Free Software Foundation, Inc.
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 |
6 | * Authors:
7 | * Mark McLoughlin
8 | */
9 |
10 | #ifndef __CALENDAR_DEBUG_H__
11 | #define __CALENDAR_DEBUG_H__
12 |
13 | #include
14 |
15 | G_BEGIN_DECLS
16 |
17 | #ifdef CALENDAR_ENABLE_DEBUG
18 |
19 | #include
20 |
21 | #ifdef G_HAVE_ISO_VARARGS
22 | # define dprintf(...) fprintf (stderr, __VA_ARGS__);
23 | #elif defined(G_HAVE_GNUC_VARARGS)
24 | # define dprintf(args...) fprintf (stderr, args);
25 | #endif
26 |
27 | #else /* if !defined (CALENDAR_DEBUG) */
28 |
29 | #ifdef G_HAVE_ISO_VARARGS
30 | # define dprintf(...)
31 | #elif defined(G_HAVE_GNUC_VARARGS)
32 | # define dprintf(args...)
33 | #endif
34 |
35 | #endif /* CALENDAR_ENABLE_DEBUG */
36 |
37 | G_END_DECLS
38 |
39 | #endif /* __CALENDAR_DEBUG_H__ */
40 |
--------------------------------------------------------------------------------
/src/emergency-contact-row.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2022 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Thomas Booker
7 | */
8 |
9 | #pragma once
10 |
11 | #include "emergency-contact.h"
12 | #include "emergency-calls-manager.h"
13 |
14 | #include
15 | #include
16 |
17 | G_BEGIN_DECLS
18 |
19 | #define PHOSH_TYPE_EMERGENCY_CONTACT_ROW (phosh_emergency_contact_row_get_type ())
20 |
21 | G_DECLARE_FINAL_TYPE (PhoshEmergencyContactRow, phosh_emergency_contact_row, PHOSH, EMERGENCY_CONTACT_ROW, HdyActionRow)
22 |
23 | PhoshEmergencyContactRow *phosh_emergency_contact_row_new (PhoshEmergencyContact *contact);
24 | void phosh_emergency_contact_row_call (PhoshEmergencyContactRow *self,
25 | PhoshEmergencyCallsManager *manager);
26 |
27 | G_END_DECLS
28 |
--------------------------------------------------------------------------------
/src/udev-manager.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2025 Phosh.mobi e.V.
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #pragma once
8 |
9 | #include "dbus/login1-session-dbus.h"
10 |
11 | #include
12 |
13 | #include
14 |
15 | G_BEGIN_DECLS
16 |
17 | #define PHOSH_TYPE_UDEV_MANAGER (phosh_udev_manager_get_type ())
18 |
19 | G_DECLARE_FINAL_TYPE (PhoshUdevManager, phosh_udev_manager, PHOSH, UDEV_MANAGER, GObject)
20 |
21 | PhoshUdevManager * phosh_udev_manager_get_default (void);
22 | GUdevDevice * phosh_udev_manager_find_backlight (PhoshUdevManager *self,
23 | const char *connector_name);
24 | GList * phosh_udev_manager_find_torches (PhoshUdevManager *self, GError **err);
25 | PhoshDBusLoginSession *phosh_udev_manager_get_session_proxy (PhoshUdevManager *self);
26 |
27 | G_END_DECLS
28 |
--------------------------------------------------------------------------------
/tests/testlib-emergency-calls.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2020 Purism SPC
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | *
6 | * Author: Thomas Booker
7 | */
8 |
9 | #include "calls-emergency-dbus.h"
10 |
11 | #include "testlib.h"
12 |
13 | G_BEGIN_DECLS
14 |
15 | typedef struct _PhoshTestEmergencyCallsMock {
16 | PhoshDBusEmergencyCalls *skel;
17 | gboolean bus_acquired;
18 | guint bus_id;
19 | } PhoshTestEmergencyCallsMock;
20 |
21 | PhoshTestEmergencyCallsMock *phosh_test_emergency_calls_mock_new (void);
22 | void phosh_test_emergency_calls_mock_dispose (PhoshTestEmergencyCallsMock *self);
23 | void phosh_test_emergency_calls_mock_export (PhoshTestEmergencyCallsMock *mock);
24 |
25 | G_DEFINE_AUTOPTR_CLEANUP_FUNC (PhoshTestEmergencyCallsMock, phosh_test_emergency_calls_mock_dispose)
26 |
27 | G_END_DECLS
28 |
--------------------------------------------------------------------------------
/.gitlab-ci/debian.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM debian:forky-slim
2 |
3 | RUN export DEBIAN_FRONTEND=noninteractive \
4 | && apt-get -y update \
5 | && apt-get -y install --no-install-recommends eatmydata \
6 | && eatmydata apt-get -y dist-upgrade \
7 | && apt-get -y install --no-install-recommends wget ca-certificates gnupg \
8 | && eatmydata apt-get --no-install-recommends -y install build-essential git wget gcovr locales uncrustify abi-compliance-checker abi-dumper universal-ctags \
9 | && eatmydata apt-get -y install clang clang-tools lld \
10 | && cd /home/user/app \
11 | && eatmydata apt-get --no-install-recommends -y build-dep . \
12 | && eatmydata apt-get clean
13 |
14 | # Configure locales for tests
15 | RUN export DEBIAN_FRONTEND=noninteractive && \
16 | echo 'ar_AE.UTF-8 UTF-8\nde_DE.UTF-8 UTF-8\nen_US.UTF-8 UTF-8\nja_JP.UTF-8 UTF-8\nuk_UA.UTF-8 UTF-8' > /etc/locale.gen && \
17 | dpkg-reconfigure locales
18 |
--------------------------------------------------------------------------------
/src/app-grid.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright © 2019 Zander Brown
3 | *
4 | * SPDX-License-Identifier: GPL-3.0-or-later
5 | */
6 |
7 | #include
8 | #include
9 |
10 | #include
11 |
12 | #include "phosh-settings-enums.h"
13 |
14 | #pragma once
15 |
16 | G_BEGIN_DECLS
17 |
18 |
19 | #define PHOSH_TYPE_APP_GRID phosh_app_grid_get_type()
20 | G_DECLARE_DERIVABLE_TYPE (PhoshAppGrid, phosh_app_grid, PHOSH, APP_GRID, GtkBox)
21 |
22 | struct _PhoshAppGridClass
23 | {
24 | GtkBoxClass parent_class;
25 | };
26 |
27 | GtkWidget *phosh_app_grid_new (void);
28 | void phosh_app_grid_reset (PhoshAppGrid *self);
29 | void phosh_app_grid_focus_search (PhoshAppGrid *self);
30 | gboolean phosh_app_grid_handle_search (PhoshAppGrid *self, GdkEvent *event);
31 | void phosh_app_grid_set_filter_adaptive (PhoshAppGrid *self, gboolean enable);
32 |
33 |
34 | G_END_DECLS
35 |
--------------------------------------------------------------------------------
/src/search/meson.build:
--------------------------------------------------------------------------------
1 | phosh_search_sources = []
2 |
3 | phoshsearch_sources = [
4 | 'search-client.c',
5 | 'search-client.h',
6 | 'search-result-meta.c',
7 | 'search-result-meta.h',
8 | 'search-source.c',
9 | 'search-source.h',
10 | generated_dbus_sources,
11 | generated_dbus_headers,
12 | ]
13 |
14 | phosh_search_deps = [gio_dep, gio_unix_dep, dependency('gdk-pixbuf-2.0')]
15 |
16 | phosh_search_lib = static_library(
17 | 'phoshsearch',
18 | phoshsearch_sources,
19 | include_directories: [root_inc, dbus_inc],
20 | dependencies: phosh_search_deps,
21 | install_dir: pkglibdir,
22 | install: false,
23 | )
24 | phosh_search_inc = include_directories('.')
25 |
26 | phosh_search_dep = declare_dependency(
27 | sources: generated_dbus_sources + generated_dbus_headers,
28 | include_directories: [dbus_inc, phosh_search_inc],
29 | link_with: phosh_search_lib,
30 | dependencies: phosh_search_deps,
31 | )
32 |
--------------------------------------------------------------------------------
/data/icons/audio-handsfree-symbolic.svg:
--------------------------------------------------------------------------------
1 |
2 |
5 |
--------------------------------------------------------------------------------
/plugins/upcoming-events/prefs/meson.build:
--------------------------------------------------------------------------------
1 | upcoming_events_prefs_resources = gnome.compile_resources(
2 | 'phosh-plugin-prefs-upcoming-events-resources',
3 | 'phosh-plugin-prefs-upcoming-events.gresources.xml',
4 | c_name: 'phosh_plugin_prefs_upcoming_events',
5 | )
6 |
7 | upcoming_events_plugin_prefs_sources = files(
8 | 'phosh-plugin-prefs-upcoming-events.c',
9 | 'upcoming-events-prefs.c',
10 | 'upcoming-events-prefs.h',
11 | )
12 |
13 | phosh_upcoming_events_plugin_prefs = shared_module(
14 | 'phosh-plugin-prefs-upcoming-events',
15 | upcoming_events_plugin_prefs_sources,
16 | upcoming_events_prefs_resources,
17 | c_args: [
18 | '-DG_LOG_DOMAIN="phosh-plugin-prefs-upcoming-events"',
19 | '-DPLUGIN_PREFS_NAME="@0@-prefs"'.format(name),
20 | '-DADW_VERSION_MIN_REQUIRED=@0@'.format(adw_ver_str),
21 | ],
22 | dependencies: plugin_prefs_dep,
23 | install: true,
24 | install_dir: plugin_prefs_dir,
25 | )
26 |
--------------------------------------------------------------------------------
/plugins/wifi-hotspot-quick-setting/icons/wifi-hotspot-quick-setting-symbolic.svg:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/src/stylesheet/adwaita-dark.css:
--------------------------------------------------------------------------------
1 | /* Adwaita dark theme variant */
2 |
3 | @define-color phosh_fg_color white;
4 | @define-color phosh_bg_color black;
5 |
6 | @define-color phosh_borders_color alpha(@phosh_fg_color,.1);
7 |
8 | @define-color phosh_notification_bg_color #282828;
9 | @define-color phosh_action_bg_color #474747;
10 | @define-color phosh_activity_bg_color alpha(@phosh_notification_bg_color,.7);
11 | @define-color phosh_splash_bg_color #f6f5f4;
12 | @define-color phosh_splash_fg_color #282828;
13 |
14 | /* Button colors */
15 | @define-color phosh_button_bg_color #282828;
16 | @define-color phosh_button_hover_bg_color shade(@phosh_button_bg_color, 1.14);
17 | @define-color phosh_button_active_bg_color shade(@phosh_button_bg_color, 1.5);
18 |
19 | @define-color phosh_emergency_button_bg_color #e01b24;
20 | @define-color phosh_emergency_button_fg_color #ffffff;
21 |
22 | @import url("resource:///mobi/phosh/stylesheet/common.css");
23 |
--------------------------------------------------------------------------------