All six picture options, lock screen fit and wallpaper folder rotation - #5
Open
wayne-tbl wants to merge 50 commits into
Open
All six picture options, lock screen fit and wallpaper folder rotation#5wayne-tbl wants to merge 50 commits into
wayne-tbl wants to merge 50 commits into
Conversation
We need newer ashpd in Debian for that This reverts commit 0b9b65a.
These architectures have too many exported symbols
This is can be used to get the pixel format of the image, as returned by the compositor. Signed-off-by: Eugenio Paolantonio (g7) <me@medesimo.eu>
This function can be used to ensure an eventual BGR format can be converted to RGB so that cairo is happy. Signed-off-by: Eugenio Paolantonio (g7) <me@medesimo.eu>
Signed-off-by: Bardia Moshiri <bardia@furilabs.com>
… it's in ARGB format Signed-off-by: Eugenio Paolantonio (g7) <me@medesimo.eu>
Signed-off-by: Bardia Moshiri <bardia@furilabs.com>
for night light, we use PQ which is not the standard way gnome expects, this works either way. let this one slide Signed-off-by: Bardia Moshiri <fakeshell@bardia.tech>
Signed-off-by: Eugenio Paolantonio (g7) <me@medesimo.eu>
…dw-gtk3 as well Signed-off-by: Bardia Moshiri <bardia@furilabs.com>
This reverts commit a719833.
on our device the frame is captured too quickly while the power menu is still open. wait a bit and try again Signed-off-by: Bardia Moshiri <bardia@furilabs.com>
we run phoc 0.44.0 with a few patches to run with wlroots 0.17.4 before we rebase to 0.18.x and this option doesn't exist on that version. let it slide for now Signed-off-by: Bardia Moshiri <bardia@furilabs.com>
Signed-off-by: Bardia Moshiri <bardia@furilabs.com>
Signed-off-by: Bardia Moshiri <bardia@furilabs.com>
Signed-off-by: Bardia Moshiri <bardia@furilabs.com>
Signed-off-by: Bardia Moshiri <bardia@furilabs.com>
Disables lock screen and non-app panels. Meant for first time setup
set default HWCOMPOSER-1 scale to the value used by g-c-c's "275%"
…se fails
it is very sad that we are resorting to this and i really dislike this piece of code.
lomiri apps (and potentially builds from e.g chum or open repos) are built against a set of toolkits we do not control. for the most part this is fine since most the dependencies are already packaged (or to be packaged) but we don't fork certain things like upstream maintainers do (such as qt)
this leads us down a very dark road. since upstream has essentially custom everything, we have to hack in support for certain things to work [1][2] and this change is yet another hack to make things compatible.
the issue we have here is that appid detection is not exactly standard in any toolkit and system. while gtk and lately qt6 are unifying this, for the most part old qt5 apps either never set the appid or set something that does not represent the app itself.
qmlscene in lomiri is a good example, any app using morph will spawn a process for webapp-container inside qmlscene which then sets its own title and appid, that is besides qmlscene also adding a .qmlscene to the end of appid
then we have cases where the desktop file has the format {developer}.{appname} but the appid says {appname}.{developer} and some even have extra prefixes. in general nothing in consistent
this change will allow the script we generate for each app to set a appid as the fallback for the spawning process using gsettings and phosh will respect that as a last resort if everything else fails (gsettings set io.furios.phosh.shell appid 'org.example.App.desktop').
this key is the reset by phosh itself to not conflict with future apps if they do not set any appid and they also reach a fallback state. this is the cleanest solution i can come up with, with other solutions involving us forking the toolkit and forcing some ugly behaviour that might break apps that are do not come from the open store
[1] https://github.com/FuriLabs/furios-lomiri-app-support
[2] https://github.com/FuriLabs/store-provider/blob/503cfe3850620d9788c833eb07f5525c849b6c85/open_store/click.py#L201
Signed-off-by: Bardia Moshiri <bardia@furilabs.com>
…-ids key Signed-off-by: Bardia Moshiri <bardia@furilabs.com>
Signed-off-by: Bardia Moshiri <bardia@furilabs.com>
required for setting backlight brightness after DPM change Signed-off-by: Bardia Moshiri <bardia@furilabs.com>
…anager required for setting backlight brightness after DPM change Signed-off-by: Bardia Moshiri <bardia@furilabs.com>
…mode changed on some kernel drivers the screen does not turn off by setting DPM and it has to be done manually through sysfs. set brightness to 0 on DPM off and restore to previously known good state on DPM on Signed-off-by: Bardia Moshiri <bardia@furilabs.com>
Signed-off-by: Bardia Moshiri <bardia@furilabs.com>
Signed-off-by: Bardia Moshiri <bardia@furilabs.com>
Signed-off-by: Bardia Moshiri <bardia@furilabs.com>
Signed-off-by: Bardia Moshiri <bardia@furilabs.com>
initialize the output stream binding during widget setup instead of waiting for the next active-output-update signal. this keeps the volume slider synchronized with external volume changes even when no output device change happen after startup Signed-off-by: Bardia Moshiri <bardia@furilabs.com>
some audio routes are exposed as ports on the current sink/source rather than separate audio devices. when selecting such routes, change the stream port in addition to the selected device, allowing switching between ports on the same sink/source Signed-off-by: Bardia Moshiri <bardia@furilabs.com>
audio routes exposed as ports on the same sink/source do not emit active-input-update or active-output-update when switching between ports. store the port associated with each audio device and listen for notify::port on the current stream. update the active device state based on the stream's active port so the selected audio route is reflected correctly in the UI. Signed-off-by: Bardia Moshiri <bardia@furilabs.com>
in case user does not upgrade phosh and gnome session together, this saves the device from getting in an unbootable state Signed-off-by: Bardia Moshiri <bardia@furilabs.com>
Signed-off-by: Bardia Moshiri <bardia@furilabs.com>
tests do not work nicely with our CI machines (or maybe wlroots?) so lets drop that for now Signed-off-by: Bardia Moshiri <fakeshell@bardia.tech>
not the most nuclear option, but definitely up there next to `exec 2>/dev/null; command >/dev/null 2>&1; exec 2>&2` =) Signed-off-by: Bardia Moshiri <bardia@furilabs.com>
Signed-off-by: Bardia Moshiri <bardia@furilabs.com>
Signed-off-by: Bardia Moshiri <bardia@furilabs.com>
Signed-off-by: Bardia Moshiri <bardia@furilabs.com>
as discussed: "its a stupid notification, its not actionable and if you start an app and it doesnt start well you know that cause it ain't there." Signed-off-by: Bardia Moshiri <bardia@furilabs.com>
Signed-off-by: Bardia Moshiri <bardia@furilabs.com>
Signed-off-by: Bardia Moshiri <bardia@furilabs.com>
Signed-off-by: Bardia Moshiri <bardia@furilabs.com>
wayne-tbl
force-pushed
the
wallpaper
branch
2 times, most recently
from
August 17, 2026 14:36
5ee99a7 to
be52cbb
Compare
Fits an image to a target size by GDesktopBackgroundStyle, always returning a pixbuf of exactly that size so callers can draw it at the origin without knowing which style was used. Signed-off-by: wayne <wayne@furilabs.com>
Only zoom, and to a degree scaled, were implemented; wallpaper, centered, spanned and none fell through to zoom behind a warning, so choosing them in Settings quietly did nothing. Signed-off-by: wayne <wayne@furilabs.com>
The lock screen has a wallpaper of its own, and was scaling it to fill whatever the picture option said. Signed-off-by: wayne <wayne@furilabs.com>
Signed-off-by: wayne <wayne@furilabs.com>
Advance when the phone locks, and when the screen is woken while it is still locked -- deliberately not on unlock, so what you unlock into is the wallpaper you were just looking at. The wake trigger watches both the primary monitor's power mode and the shell's blanked state. The shell's flag survives the primary monitor being replaced, which happens on output changes; the monitor's own power-mode is the more direct signal when it is there. Watching one and not the other has failed in both directions, and a duplicate costs nothing. Signed-off-by: wayne <wayne@furilabs.com>
FakeShell
force-pushed
the
forky
branch
2 times, most recently
from
September 10, 2026 01:53
fadf47d to
2a5f394
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
All six picture options actually implemented, the lock screen fitted the same way as the home screen, and rotation through a folder of wallpapers.
Updated at review request (18 Aug): this no longer sits on
glass-theme. It is now 5 commits straight offforky, so the diff is only the wallpaper work. The.gschema.overridethat was here has moved to FuriLabs/furios-default-settings#2.util: add a picture-options aware pixbuf helper— fits an image to a target size byGDesktopBackgroundStyle, always returning a pixbuf of exactly that size, so callers can draw it at the origin without knowing which style was used.background: implement all six picture options— only zoom, and to a degree scaled, were implemented; wallpaper, centered, spanned and none fell through to zoom behind a warning, so choosing them in Settings quietly did nothing.lockscreen: fit the lock screen wallpaper the same way— it has a wallpaper of its own and was scaling it to fill whatever the picture option said.data: add the wallpaper folder keylockscreen-manager: rotate through a wallpaper folder— advance when the phone locks, and when the screen is woken while it is still locked; deliberately not on unlock, so what you unlock into is the wallpaper you were just looking at. The wake trigger watches both the primary monitor's power mode and the shell's blanked state: the shell's flag survives the primary monitor being replaced on output changes, the monitor's own power mode is the more direct signal when it is there, watching one and not the other has failed in both directions, and the duplicate costs nothing.How it decoupled from the theme
There was less coupling than the stacking suggested.
io.furios.phosh.shellalready exists inforky— it carriesappidandfiltered-app-ids— so this branch simply adds itswallpaper-folderkey to it and needs nothing fromglass-theme.The two schema defines it needs now live in
lockscreen-manager.c, the one file that uses them, rather than inutil.h. So this PR and #4 touch no common lines of any shared header and can merge in either order. All this one adds toutil.his the pixbuf helper it introduces.IS_FURIOSUpdated at review request.
src/background.cno longer rewrites upstream'spicture handling.
#define IS_FURIOS 1sits by the includes, following the samepattern already used in
src/wifi-manager.c:pb_scale_to_fit()and upstream'simage_background()stay in the file byte-identical toforky, built under#else; ours builds under#if IS_FURIOS. Setting it to 0 restores upstream'sbehaviour exactly.
That took
src/background.cfrom +5/-61 to +27/-0 — it now touches noupstream hunk at all.
Pairs with FuriLabs/gnome-control-center#7, the rows that set source and fit.
5 commits, off
forky. Builds clean on an FLX1.