Shared package for shared gnome and phosh ui configurations
Additionally, added missing dependencies:
Both Phosh and GNOME need elogind to do sleep inhibition and to
provide pam modules. gnome-bluetooth has some small udev rule
that helps marking devices for rfkill. Given that most devices
in pmOS have a bluetooth, this should be useful as a dependency.
These were most likely copied from phosh, but not necessary in
GNOME. They safe space in the interface, but GNOME Shell is really
not that useful in very narrow devices, so adding a configuration
for such cases should be unnecessary.
The dconf configuration and installation file was needed because the
schemas `sm.puri.phoc.application.org-gnome-maps` and
`sm.puri.phoc.application.firefox` are not schemas that can be overriden.
The actual schema is `sm.puri.phoc.application`, which is a relocatable
schema. Therefore, we could use an override to specify the default,
but with a simple configuration file, gsettings cannot relocate the
schema. Therefore, the dconf configuration makes sense for these kind
of schemas. For regular schemas that can be overriden with an override
file, it is simpler to just use it.
Phosh takes care of it in a smarter way[1]. The custom override also has the
consequence of never showing closing buttons in docked mode, which can be
an inconvenience.
[1] https://gitlab.gnome.org/World/Phosh/phosh/-/blob/main/src/docked-manager.c#L292-L295
Or in case the lines change with time:
```C
phosh_docked_manager_set_enabled (PhoshDockedManager *self, gboolean enable)
if (enable)
g_settings_reset (self->wm_settings, WM_KEY_LAYOUT);
else
g_settings_set_string (self->wm_settings, WM_KEY_LAYOUT, "appmenu:");
```
Phosh already installs these schemas by default[1] and makes them specific
to the Phosh desktop. Originally these might have been needed because
either Phosh didn't ship the overrides or/and tinydm wasn't setting the
environment variable XDG_CURRENT_DESKTOP properly[2]. To verify that the
behavior of the Phosh override is working as expected one can do the following
from an ssh session (so that the full DE envvars are not set):
```bash
$ export DISPLAY=:0 # so that gsettings reset works
$ gsettings reset org.gnome.desktop.interface clock-show-date
$ gsettings get org.gnome.desktop.interface clock-show-date # false
$ sudo rm /usr/share/glib-2.0/schemas/000-postmarketos.gschema.override
$ sudo glib-compile-schemas --strict /usr/share/glib-2.0/schemas/
$ gsettings get org.gnome.desktop.interface clock-show-date # true (which is the default)
$ export XDG_CURRENT_DESKTOP=GNOME:Phosh
$ gsettings get org.gnome.desktop.interface clock-show-date # false (from phosh override)
```
[1] https://gitlab.gnome.org/World/Phosh/phosh/-/blob/main/data/00_sm.puri.Phosh.gschema.override
[2] https://gitlab.com/postmarketOS/tinydm/-/merge_requests/12
firefox scaling was set to true before `mobile-config-firefox` existed.
In new installations false is the default, so explicitly stating false is
only necessary for upgrades. Since the default was changed in one and a half
years ago in fef3af0d75 when the
package was still in version 4, removing it should not have any impact. If
anybody had an edge installation not upgrade for more than 1.5 years, it would
definitely be wiser to reinstall than to upgrade.
Glade can be useful if you're building GTK apps on your phone when
making use of convergence, so let's unhide it. The reason it was
hidden was that it gets pulled in when building Phosh, but this
might be solvable in a better way.
Hiding of org.gnome.Extensions can probably be dropped when
https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/31086
has been merged.
Enable screen locking and embed virtual keyboard. For devices with a
hardware keyboard, this is unfavorable. For touch devices, however,
that's needed for unlocking the screen.
Additionally enable single-click behavior in file manager. This applies
also to the desktop icons. Again this is unfavorable for conventional
devices but advantageous for touch devices.
unclutter-xfixes version 1.6 introduced new options --hide-on-touch
and --start-hidden. That seems appropriate enough to cover the use
cases touchscreen usage (hide cursor) and mouse/touchpad usage (show
cursor).
The main change is to move the postmarketOS-specific Xfce4 configs
from /etc/skel to /etc/xdg. This improves the config handling because
the location in /etc/xdg can be defined as the default fallback
configs.
Moving the gtk-3.0 folder to /etc/xdg did not work. Therefore this
one remains in /etc/skel.
Beyond this, there are some minor changes from the xfce4-phone
repository:
- Change icon path of whiskermenu button to new location
- Apply pmOS wallpaper to more monitors
- Several clean-ups in the config files
- Project naming scheme is changed to "lk2nd-msmXXXX"
- lk1st-msm8916: Experimental support for running as the "first" lk
- Secondary core bringup on non-psci firmware is now done by lk2nd
- rproc selection is now handled by lk2nd
- Some display information improvements
- New devices and various improvements for existing ones
[ci:skip-build]: already built successfully in CI
Fixes error: postmarketos-base-18-r0: trying to overwrite etc/fstab owned by alpine-baselayout-data-3.2.0-r20.
caused by 9ecba8a514
[ci:skip-build] already built successfully in CI
This installs/starts udiskie, a udisk2 helper, that facilitates
auto-mounting of removable drives.
Note support for umounting is broken in the current Portfolio release,
so disks have to be umounted manually:
udiskie-umount /run/media/<user>/*
I decided to add this to the `depends` and not `pmb_recommends`, because
I felt like 1) this is a feature that folks would expect to work, 2) by
having it in depends, it'll 'fix' existing installs where mounting
removable disks automatically is not implemented
MMS support (via mmsd-tng) involves sending/receiving network
requests/responses over the wwan interface. If it's ipv4-only and the
device is connected to some other ipv4 network on another iface (like
wifi), this can cause the rp_filter to reject responses on wwan iface
because it incorrectly thinks they are martian packets.
This does theoretically disable some "security" feature in the kernel,
but it's worth noting that:
1) rp_filter isn't implemented at all in the kernel for ipv6
2) other distros (mobian, pureos at least) are also disabling rp_filter
3) this seems to be a relatively common problem with folks using mms on
pmOS, since many carriers' data networks are ipv4-only
also see:
https://gitlab.com/kop316/mmsd/-/merge_requests/55/diffs?commit_id=b22c253fb939ff1eb949ea4e628706e6a28c851a
[ci:skip-build] already built successfully in CI
ondev-boot-mount.sh expects the 'real' losetup (it uses --show), instead
of the busybox version (which doesn't support that parameter).
Alpine broke this in 31372fab76 when they split out losetup from
util-linux
[ci:skip-build]: already built successfully in CI
Allow calling the script with:
SPLASH_CONFIG=$srcdir/splash.ini devicepkg_build $startdir $pkgname
In order to pass a custom splash config, as it will be used with the
PineNote (MR 2910).
The postmarketOS icon was moved to a new location (see issue
pmaports#1418). Therefore the button of whiskermenu in the panel
becomes empty. This commit creates a symlink at the old location
to restore the icon on existing Xfce4 installations.
[ci:skip-build] already built successfully in CI
This copies rules from /etc/udev/rules.d as well which ensures that
device-specific udev rules (e.g. for Nokia N900) are available in the
initfs.
Relates to: #1411
Prevent apk from pulling in pipewire-pulse instead of pulseaudio, as
this leads to various audio issues with Phosh in postmarketOS (volume
buttons not working, no sound in various applications).
Pipewire will be a great replacement for pulseaudio, but let's rather
enable it intentionally for Phosh once we fixed everything that's
currently breaking with it. Without this patch it may get installed when
installing or upgrading other packages (not entirely sure how it gets
triggered yet, but I have seen it myself multiple times and we've gotten
reports about it).
[ci:skip-build] already built successfully in CI