Skip to content

All six picture options, lock screen fit and wallpaper folder rotation - #5

Open
wayne-tbl wants to merge 5 commits into
FuriLabs:forkyfrom
wayne-tbl:wallpaper
Open

All six picture options, lock screen fit and wallpaper folder rotation#5
wayne-tbl wants to merge 5 commits into
FuriLabs:forkyfrom
wayne-tbl:wallpaper

Conversation

@wayne-tbl

@wayne-tbl wayne-tbl commented Aug 16, 2026

Copy link
Copy Markdown

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 off forky, so the diff is only the wallpaper work. The .gschema.override that 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 by GDesktopBackgroundStyle, 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 key
  • lockscreen-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.shell already exists in forky — it carries appid and filtered-app-ids — so this branch simply adds its wallpaper-folder key to it and needs nothing from glass-theme.

The two schema defines it needs now live in lockscreen-manager.c, the one file that uses them, rather than in util.h. So this PR and #4 touch no common lines of any shared header and can merge in either order. All this one adds to util.h is the pixbuf helper it introduces.

Pairs with FuriLabs/gnome-control-center#7, the rows that set source and fit.

5 commits, off forky. Builds clean on an FLX1.

@wayne-tbl
wayne-tbl force-pushed the wallpaper branch 2 times, most recently from 5ee99a7 to be52cbb Compare August 17, 2026 14:36
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant