├── .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 | 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 | 3 | 4 | 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 |