Updated Readme and Dep
This commit is contained in:
		@@ -28,7 +28,7 @@ RDEPEND="
 | 
			
		||||
 | 
			
		||||
DEPEND="
 | 
			
		||||
	${RDEPEND}
 | 
			
		||||
	dev-util/gtk-doc-am
 | 
			
		||||
	dev-build/gtk-doc-am
 | 
			
		||||
	virtual/pkgconfig
 | 
			
		||||
"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										103
									
								
								gui-wm/phosh-meta/phosh-meta-1.9.ebuild
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										103
									
								
								gui-wm/phosh-meta/phosh-meta-1.9.ebuild
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,103 @@
 | 
			
		||||
# Copyright 2020 Gentoo Authors
 | 
			
		||||
# Distributed under the terms of the GNU General Public License v2
 | 
			
		||||
 | 
			
		||||
EAPI=7
 | 
			
		||||
 | 
			
		||||
DESCRIPTION="Meta package for Phosh without squeekboard"
 | 
			
		||||
HOMEPAGE="https://github.com/dreemurrs-embedded/Pine64-Arch"
 | 
			
		||||
SRC_URI=""
 | 
			
		||||
 | 
			
		||||
LICENSE="MIT"
 | 
			
		||||
SLOT="0"
 | 
			
		||||
KEYWORDS="~amd64 ~x86 ~arm64 ~arm"
 | 
			
		||||
IUSE="squeekboard chromium firefox geary lollypop owncloud nextcloud voicemail tuba"
 | 
			
		||||
 | 
			
		||||
DEPEND="
 | 
			
		||||
		gui-wm/phosh
 | 
			
		||||
		gnome-extra/phosh-antispam
 | 
			
		||||
		net-voip/gnome-calls
 | 
			
		||||
		net-im/chatty
 | 
			
		||||
		net-dns/dnsmasq
 | 
			
		||||
		app-editors/gedit
 | 
			
		||||
		app-misc/gnote
 | 
			
		||||
		media-video/megapixels
 | 
			
		||||
		gnome-base/gnome-control-center
 | 
			
		||||
		gnome-base/gnome-keyring
 | 
			
		||||
		gnome-extra/gnome-contacts
 | 
			
		||||
		gnome-extra/gnome-calculator
 | 
			
		||||
		gnome-extra/gnome-calendar
 | 
			
		||||
		gnome-extra/gnome-clocks
 | 
			
		||||
		gnome-extra/gnome-weather
 | 
			
		||||
		gnome-base/gnome-session
 | 
			
		||||
		gnome-extra/gnome-system-monitor
 | 
			
		||||
		media-gfx/gnome-screenshot
 | 
			
		||||
		gnome-extra/gnome-tweaks
 | 
			
		||||
		app-arch/file-roller
 | 
			
		||||
		sys-apps/gnome-disk-utility
 | 
			
		||||
		media-sound/gnome-sound-recorder
 | 
			
		||||
		www-client/epiphany
 | 
			
		||||
		sci-geosciences/gnome-maps
 | 
			
		||||
		x11-terms/gnome-terminal
 | 
			
		||||
		x11-themes/sound-theme-librem5
 | 
			
		||||
		app-text/evince
 | 
			
		||||
		sys-power/gtherm
 | 
			
		||||
		sys-auth/rtkit
 | 
			
		||||
		gnome-extra/sushi
 | 
			
		||||
		media-gfx/eog
 | 
			
		||||
		x11-misc/phosh-mobile-settings
 | 
			
		||||
		media-video/totem
 | 
			
		||||
		>=media-video/pipewire-0.3.65[libcamera]
 | 
			
		||||
		tuba? (
 | 
			
		||||
			net-im/tuba
 | 
			
		||||
		)
 | 
			
		||||
			
 | 
			
		||||
		squeekboard? (
 | 
			
		||||
			x11-misc/squeekboard
 | 
			
		||||
		)
 | 
			
		||||
		
 | 
			
		||||
		chromium? (
 | 
			
		||||
			www-client/chromium
 | 
			
		||||
		)
 | 
			
		||||
		
 | 
			
		||||
		firefox? (
 | 
			
		||||
			www-client/firefox
 | 
			
		||||
		)
 | 
			
		||||
		
 | 
			
		||||
		
 | 
			
		||||
		geary? (	
 | 
			
		||||
			mail-client/geary
 | 
			
		||||
		)		
 | 
			
		||||
		
 | 
			
		||||
		lollypop? (	
 | 
			
		||||
			media-sound/lollypop
 | 
			
		||||
		)
 | 
			
		||||
					
 | 
			
		||||
		owncloud? (
 | 
			
		||||
			net-misc/owncloud-client
 | 
			
		||||
		)
 | 
			
		||||
		
 | 
			
		||||
		nextcloud? (
 | 
			
		||||
			net-misc/nextcloud-client
 | 
			
		||||
		)
 | 
			
		||||
		
 | 
			
		||||
		voicemail? (
 | 
			
		||||
			gnome-extra/vvmplayer
 | 
			
		||||
		)
 | 
			
		||||
"
 | 
			
		||||
 | 
			
		||||
RDEPEND="${DEPEND}"
 | 
			
		||||
BDEPEND=""
 | 
			
		||||
 | 
			
		||||
S="${WORKDIR}"
 | 
			
		||||
 | 
			
		||||
pkg_postinst() {
 | 
			
		||||
	[ -e /usr/share/applications-bak ] || mkdir /usr/share/applications-bak
 | 
			
		||||
	for i in vim org.gnupg.pinentry-qt org.gnome.Extensions mupdf \
 | 
			
		||||
	gnome-printers-panel gnome-wifi-pannel pidgin wpa_gui cups \
 | 
			
		||||
	Gentoo-system-config-printer
 | 
			
		||||
	do
 | 
			
		||||
		if [ -e /usr/share/applications/$i.desktop ]; then
 | 
			
		||||
			mv /usr/share/applications/$i.desktop /usr/share/applications-bak
 | 
			
		||||
		fi
 | 
			
		||||
	done
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										4
									
								
								gui-wm/phosh/Manifest
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								gui-wm/phosh/Manifest
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
			
		||||
DIST gmobile-f1b50f0f90604e0f125412932dae9b1e08d57ddc.tar.gz 24027 BLAKE2B 55e3ac1452e2a788e7e4a8c39103d729a47ce32328f22c2f8684683731c9a157665a38850b2530d953813c597904813447517c6c4b46a5ef16bf21e94c1a5d9b SHA512 cdde81747792e69f5b80e85a78730986ec9e4da70ff36f965f9c2ea6ba58260c9e01e806fb145538e4d9a1eddd88479ebf255fff737a662af99874855d21cec8
 | 
			
		||||
DIST libcall-ui-6798b38d4d66d069751151b3e9a202c6de8d7f3c.tar.gz 168424 BLAKE2B 3e1d9bada93132f10165afce6ca54c3f1a2c8a21b1fdb856ad671a72f53ea910bdf8c49e4ccdffd60aaad29d0f4b68a875e5c666ed1bc568a109eb39fc750667 SHA512 02a45f88a0c79bb5b34ebb7de909d1028e245f0700c5afae81f39b74f4ca2da9ef1a4a82b45a296a2e93dee8b2bbf6a5b572175a8eff16c25ceb05254ff28a4d
 | 
			
		||||
DIST libgnome-volume-control-a1ae68ff11dc6156f9c80069194ea39679700f3f.tar.gz 46611 BLAKE2B 5888c374d7d92c6bdb1abf692ac12c0e6d93cfd6e606776b1c4af06483f41c46cdd5eca7e4bcb36d37efe377f7b8f2aad6a539d84563beb846c51ac80fa485c2 SHA512 8109c2fc8c0c0158ecdbad690902a8e3021e16b8c2b68d237215e1242c19ec60e78f006b02f9a2f824026eb4129be07a27ab045ad941252572db517da1cf769e
 | 
			
		||||
DIST phosh-v0.30.0.tar.gz 936377 BLAKE2B a1acdfec831aade7a14f400634e391ca2abd191ed6b5c68563104f886e5fbefbf6c673e83b7885c757ffd9e5436a292011314cff2282b7df1c98fa7c39ba70f6 SHA512 df227dfee98f5f312af9b9ea7f07b27eef58ea8c76943974e1cc0f4f3692a9a65b2ee703b847809a88ba6e340b79e5f866039c500047bd9d9747cb87e7f2acf8
 | 
			
		||||
							
								
								
									
										29
									
								
								gui-wm/phosh/files/0001-Fix-for-polkit-120-and-higher.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								gui-wm/phosh/files/0001-Fix-for-polkit-120-and-higher.patch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
			
		||||
From 19e3a56e02646308b2b78512308119811af96896 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Gerben Jan Dijkman <gjdijkman@gjdwebserver.nl>
 | 
			
		||||
Date: Wed, 15 Jun 2022 18:13:55 +0200
 | 
			
		||||
Subject: [PATCH] Fix for polkit 120 and higher
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/polkit-auth-agent.h | 6 +++++-
 | 
			
		||||
 1 file changed, 5 insertions(+), 1 deletion(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/polkit-auth-agent.h b/src/polkit-auth-agent.h
 | 
			
		||||
index fe7e808..bd79a20 100644
 | 
			
		||||
--- a/src/polkit-auth-agent.h
 | 
			
		||||
+++ b/src/polkit-auth-agent.h
 | 
			
		||||
@@ -19,7 +19,11 @@ G_BEGIN_DECLS
 | 
			
		||||
 #if POLKIT_AGENT_MAJOR_VERSION == 0 && POLKIT_AGENT_MINOR_VERSION < 114
 | 
			
		||||
 G_DEFINE_AUTOPTR_CLEANUP_FUNC(PolkitSubject, g_object_unref)
 | 
			
		||||
 #endif
 | 
			
		||||
-G_DEFINE_AUTOPTR_CLEANUP_FUNC(PolkitAgentListener, g_object_unref)
 | 
			
		||||
+
 | 
			
		||||
+/* libpolkit lacks these */
 | 
			
		||||
+#if POLKIT_AGENT_MAJOR_VERSION == 0 && POLKIT_AGENT_MINOR_VERSION < 120
 | 
			
		||||
+ G_DEFINE_AUTOPTR_CLEANUP_FUNC(PolkitAgentListener, g_object_unref)
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 #define PHOSH_TYPE_POLKIT_AUTH_AGENT (phosh_polkit_auth_agent_get_type())
 | 
			
		||||
 
 | 
			
		||||
-- 
 | 
			
		||||
2.35.1
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										23
									
								
								gui-wm/phosh/files/0001-Gentoo-patch-for-polkit-120.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								gui-wm/phosh/files/0001-Gentoo-patch-for-polkit-120.patch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
From 4cb433819d0e39b85a9e8785b32c65deae8a36db Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Gerben Jan Dijkman <gjdijkman@gjdwebserver.nl>
 | 
			
		||||
Date: Fri, 15 Jul 2022 16:19:57 +0200
 | 
			
		||||
Subject: [PATCH] Gentoo patch for polkit 120
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/polkit-auth-agent.h | 2 +-
 | 
			
		||||
 1 file changed, 1 insertion(+), 1 deletion(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/polkit-auth-agent.h b/src/polkit-auth-agent.h
 | 
			
		||||
index 426adc8..cf46441 100644
 | 
			
		||||
--- a/src/polkit-auth-agent.h
 | 
			
		||||
+++ b/src/polkit-auth-agent.h
 | 
			
		||||
@@ -21,7 +21,7 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC(PolkitSubject, g_object_unref)
 | 
			
		||||
 #endif
 | 
			
		||||
 
 | 
			
		||||
 /* libpolkit lacks these */
 | 
			
		||||
-#if POLKIT_AGENT_MAJOR_VERSION == 0 && POLKIT_AGENT_MINOR_VERSION < 121
 | 
			
		||||
+#if POLKIT_AGENT_MAJOR_VERSION == 0 && POLKIT_AGENT_MINOR_VERSION < 120
 | 
			
		||||
 G_DEFINE_AUTOPTR_CLEANUP_FUNC(PolkitAgentListener, g_object_unref)
 | 
			
		||||
 #endif
 | 
			
		||||
 
 | 
			
		||||
-- 
 | 
			
		||||
@@ -0,0 +1,49 @@
 | 
			
		||||
From e88f5dee0cbb7fa0851b43a5ded5d94256c756d2 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Arnaud Ferraris <arnaud.ferraris@gmail.com>
 | 
			
		||||
Date: Sat, 21 Mar 2020 03:00:34 +0100
 | 
			
		||||
Subject: [PATCH] system-prompt: allow blank passwords
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/system-prompt.c | 5 -----
 | 
			
		||||
 1 file changed, 5 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/system-prompt.c b/src/system-prompt.c
 | 
			
		||||
index 30aa3f1..bd06ee0 100644
 | 
			
		||||
--- a/src/system-prompt.c
 | 
			
		||||
+++ b/src/system-prompt.c
 | 
			
		||||
@@ -256,8 +256,6 @@ phosh_system_prompt_password_async (GcrPrompt *prompt,
 | 
			
		||||
   priv->task = g_task_new (self, NULL, callback, user_data);
 | 
			
		||||
   g_task_set_source_tag (priv->task, phosh_system_prompt_password_async);
 | 
			
		||||
 
 | 
			
		||||
-  if (!gtk_entry_get_text_length (GTK_ENTRY (priv->entry_password)))
 | 
			
		||||
-    gtk_widget_set_sensitive (priv->btn_continue, FALSE);
 | 
			
		||||
   gtk_widget_set_sensitive (priv->grid, TRUE);
 | 
			
		||||
 
 | 
			
		||||
   obj = G_OBJECT (self);
 | 
			
		||||
@@ -315,7 +313,6 @@ phosh_system_prompt_confirm_async (GcrPrompt *prompt,
 | 
			
		||||
   priv->task = g_task_new (self, NULL, callback, user_data);
 | 
			
		||||
   g_task_set_source_tag (priv->task, phosh_system_prompt_confirm_async);
 | 
			
		||||
 
 | 
			
		||||
-  gtk_widget_set_sensitive (priv->btn_continue, TRUE);
 | 
			
		||||
   gtk_widget_set_sensitive (priv->grid, TRUE);
 | 
			
		||||
 
 | 
			
		||||
   obj = G_OBJECT (self);
 | 
			
		||||
@@ -392,7 +389,6 @@ prompt_complete (PhoshSystemPrompt *self)
 | 
			
		||||
     g_task_return_pointer (res, (gpointer)password, NULL);
 | 
			
		||||
   g_object_unref (res);
 | 
			
		||||
 
 | 
			
		||||
-  gtk_widget_set_sensitive (priv->btn_continue, FALSE);
 | 
			
		||||
   gtk_widget_set_sensitive (priv->grid, FALSE);
 | 
			
		||||
 
 | 
			
		||||
   return TRUE;
 | 
			
		||||
@@ -451,7 +447,6 @@ on_password_changed (PhoshSystemPrompt *self,
 | 
			
		||||
   if (!gtk_entry_get_text_length (GTK_ENTRY (editable)))
 | 
			
		||||
     return;
 | 
			
		||||
 
 | 
			
		||||
-  gtk_widget_set_sensitive (priv->btn_continue, TRUE);
 | 
			
		||||
   password = gtk_entry_get_text (GTK_ENTRY (editable));
 | 
			
		||||
 
 | 
			
		||||
   /*
 | 
			
		||||
-- 
 | 
			
		||||
2.24.1
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,45 @@
 | 
			
		||||
From 16b46e295b86cbf1beaccf8218cf65ebb4b7a6f1 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
 | 
			
		||||
Date: Wed, 13 Jul 2022 17:33:05 +0200
 | 
			
		||||
Subject: [PATCH] build: Adjust to polkit version changes
 | 
			
		||||
MIME-Version: 1.0
 | 
			
		||||
Content-Type: text/plain; charset=UTF-8
 | 
			
		||||
Content-Transfer-Encoding: 8bit
 | 
			
		||||
 | 
			
		||||
So far it was `0.x` now it's `y` so don't fail if there's
 | 
			
		||||
no `.` in the version number. Otherwise we fail like
 | 
			
		||||
 | 
			
		||||
  src/meson.build:295:0: ERROR: Index 1 out of bounds of array of size 1.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Guido Günther <guido.gunther@puri.sm>
 | 
			
		||||
Part-of: <https://gitlab.gnome.org/World/Phosh/phosh/-/merge_requests/1105>
 | 
			
		||||
---
 | 
			
		||||
 src/meson.build | 12 ++++++++++--
 | 
			
		||||
 1 file changed, 10 insertions(+), 2 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/meson.build b/src/meson.build
 | 
			
		||||
index 6f00e2d..c41207a 100644
 | 
			
		||||
--- a/src/meson.build
 | 
			
		||||
+++ b/src/meson.build
 | 
			
		||||
@@ -292,9 +292,17 @@ phosh_deps = [
 | 
			
		||||
   cc.find_library('rt', required: false),
 | 
			
		||||
 ]
 | 
			
		||||
 
 | 
			
		||||
+polkit_version = libpolkit_agent_dep.version().split('.')
 | 
			
		||||
+if polkit_version.length() == 1
 | 
			
		||||
+  polkit_major = polkit_version[0]
 | 
			
		||||
+  polkit_minor = '0'
 | 
			
		||||
+else
 | 
			
		||||
+  polkit_major = polkit_version[0]
 | 
			
		||||
+  polkit_minor = polkit_version[1]
 | 
			
		||||
+endif
 | 
			
		||||
 add_project_arguments([
 | 
			
		||||
-  '-DPOLKIT_AGENT_MAJOR_VERSION=' + libpolkit_agent_dep.version().split('.')[0],
 | 
			
		||||
-  '-DPOLKIT_AGENT_MINOR_VERSION=' + libpolkit_agent_dep.version().split('.')[1]
 | 
			
		||||
+  '-DPOLKIT_AGENT_MAJOR_VERSION=' + polkit_major,
 | 
			
		||||
+  '-DPOLKIT_AGENT_MINOR_VERSION=' + polkit_minor,
 | 
			
		||||
 ], language: 'c')
 | 
			
		||||
 
 | 
			
		||||
 phosh_inc = include_directories('.')
 | 
			
		||||
-- 
 | 
			
		||||
2.35.1
 | 
			
		||||
							
								
								
									
										14
									
								
								gui-wm/phosh/files/0002-fix-locale-issue.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								gui-wm/phosh/files/0002-fix-locale-issue.patch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
diff -Npur a/data/phosh.in b/data/phosh.in
 | 
			
		||||
--- a/data/phosh.in	2021-03-20 13:53:32.367786000 +0100
 | 
			
		||||
+++ b/data/phosh.in	2021-03-20 13:55:19.327789721 +0100
 | 
			
		||||
@@ -56,6 +56,10 @@ elif  [ -f /etc/phosh/rootston.ini ]; th
 | 
			
		||||
   PHOC_INI=/etc/phosh/rootston.ini
 | 
			
		||||
 fi
 | 
			
		||||
 
 | 
			
		||||
+# Set proper locale according to /etc/locale.conf
 | 
			
		||||
+source /etc/locale.conf
 | 
			
		||||
+export LANG=$LANG
 | 
			
		||||
+
 | 
			
		||||
 # Run gnome-session through a login shell so it picks
 | 
			
		||||
 # variables from /etc/profile.d (XDG_*)
 | 
			
		||||
 [ -n "$WLR_BACKENDS" ] || WLR_BACKENDS=drm,libinput
 | 
			
		||||
@@ -0,0 +1,22 @@
 | 
			
		||||
From: Daniel Dehennin <daniel.dehennin@baby-gnu.org>
 | 
			
		||||
Date: Wed, 17 Mar 2021 17:38:58 +0100
 | 
			
		||||
Subject: Fix locale issue in Service file
 | 
			
		||||
 | 
			
		||||
* data/phosh.service (Environment): do not override user language
 | 
			
		||||
  setting.
 | 
			
		||||
---
 | 
			
		||||
 data/phosh.service | 1 -
 | 
			
		||||
 1 file changed, 1 deletion(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/data/phosh.service b/data/phosh.service
 | 
			
		||||
index fa18137..a585696 100644
 | 
			
		||||
--- a/data/phosh.service
 | 
			
		||||
+++ b/data/phosh.service
 | 
			
		||||
@@ -25,7 +25,6 @@ Before=graphical.target
 | 
			
		||||
 ConditionPathExists=/dev/tty0
 | 
			
		||||
 
 | 
			
		||||
 [Service]
 | 
			
		||||
-Environment=LANG=C.UTF-8
 | 
			
		||||
 Environment=XDG_CURRENT_DESKTOP=Phosh:GNOME
 | 
			
		||||
 Environment=XDG_SESSION_DESKTOP=phosh
 | 
			
		||||
 Environment=XDG_SESSION_TYPE=wayland
 | 
			
		||||
							
								
								
									
										375
									
								
								gui-wm/phosh/files/1008.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										375
									
								
								gui-wm/phosh/files/1008.patch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,375 @@
 | 
			
		||||
 | 
			
		||||
From 91637428127909ebabf3ea3ce7f6e251fd9e0382 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Adrien Plazas <kekun.plazas@laposte.net>
 | 
			
		||||
Date: Tue, 18 Jan 2022 11:24:10 +0100
 | 
			
		||||
Subject: [PATCH 1/2] app-grid-button: Add the adaptive property
 | 
			
		||||
 | 
			
		||||
If false, the button will show an icon denoting desktop support only.
 | 
			
		||||
---
 | 
			
		||||
 data/icons/desktop-thin-small-symbolic.svg |  4 ++
 | 
			
		||||
 src/app-grid-button.c                      | 63 +++++++++++++++++++++-
 | 
			
		||||
 src/app-grid-button.h                      |  3 ++
 | 
			
		||||
 src/phosh.gresources.xml                   |  1 +
 | 
			
		||||
 src/ui/app-grid-button.ui                  | 25 +++++++--
 | 
			
		||||
 5 files changed, 89 insertions(+), 7 deletions(-)
 | 
			
		||||
 create mode 100644 data/icons/desktop-thin-small-symbolic.svg
 | 
			
		||||
 | 
			
		||||
diff --git a/data/icons/desktop-thin-small-symbolic.svg b/data/icons/desktop-thin-small-symbolic.svg
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 000000000..46111bd10
 | 
			
		||||
--- /dev/null
 | 
			
		||||
+++ b/data/icons/desktop-thin-small-symbolic.svg
 | 
			
		||||
@@ -0,0 +1,4 @@
 | 
			
		||||
+<svg width="8" height="8" version="1.1" viewBox="0 0 8 8" xmlns="http://www.w3.org/2000/svg">
 | 
			
		||||
+  <rect x="2" y="7" width="4" height="1" fill="#241f31"/>
 | 
			
		||||
+  <path d="m1.5 1c-0.82235 0-1.5 0.67765-1.5 1.5v2c0 0.82235 0.67765 1.5 1.5 1.5h5c0.82235 0 1.5-0.67765 1.5-1.5v-2c0-0.82235-0.67765-1.5-1.5-1.5zm0 1h5c0.28565 0 0.5 0.21435 0.5 0.5v2c0 0.28565-0.21435 0.5-0.5 0.5h-5c-0.28565 0-0.5-0.21435-0.5-0.5v-2c0-0.28565 0.21435-0.5 0.5-0.5z" color="#000000" fill="#241f31" stroke-dashoffset="26.4" stroke-linecap="square" stroke-linejoin="round"/>
 | 
			
		||||
+</svg>
 | 
			
		||||
diff --git a/src/app-grid-button.c b/src/app-grid-button.c
 | 
			
		||||
index f65c00b87..e66401772 100644
 | 
			
		||||
--- a/src/app-grid-button.c
 | 
			
		||||
+++ b/src/app-grid-button.c
 | 
			
		||||
@@ -22,12 +22,15 @@ struct _PhoshAppGridButtonPrivate {
 | 
			
		||||
   GAppInfo *info;
 | 
			
		||||
   gboolean is_favorite;
 | 
			
		||||
   PhoshAppGridButtonMode mode;
 | 
			
		||||
+  gboolean adaptive;
 | 
			
		||||
 
 | 
			
		||||
   gulong favorite_changed_watcher;
 | 
			
		||||
 
 | 
			
		||||
+  GtkWidget  *form_factor_desktop;
 | 
			
		||||
   GtkWidget  *icon;
 | 
			
		||||
   GtkWidget  *label;
 | 
			
		||||
   GtkWidget  *popover;
 | 
			
		||||
+  GtkWidget  *title_box;
 | 
			
		||||
   GtkGesture *gesture;
 | 
			
		||||
 
 | 
			
		||||
   GMenu *menu;
 | 
			
		||||
@@ -43,6 +46,7 @@ enum {
 | 
			
		||||
   PROP_APP_INFO,
 | 
			
		||||
   PROP_IS_FAVORITE,
 | 
			
		||||
   PROP_MODE,
 | 
			
		||||
+  PROP_ADAPTIVE,
 | 
			
		||||
   LAST_PROP
 | 
			
		||||
 };
 | 
			
		||||
 static GParamSpec *props[LAST_PROP];
 | 
			
		||||
@@ -68,6 +72,9 @@ phosh_app_grid_button_set_property (GObject      *object,
 | 
			
		||||
     case PROP_MODE:
 | 
			
		||||
       phosh_app_grid_button_set_mode (self, g_value_get_enum (value));
 | 
			
		||||
       break;
 | 
			
		||||
+    case PROP_ADAPTIVE:
 | 
			
		||||
+      phosh_app_grid_button_set_adaptive (self, g_value_get_boolean (value));
 | 
			
		||||
+      break;
 | 
			
		||||
     default:
 | 
			
		||||
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
 | 
			
		||||
       break;
 | 
			
		||||
@@ -93,6 +100,9 @@ phosh_app_grid_button_get_property (GObject    *object,
 | 
			
		||||
     case PROP_MODE:
 | 
			
		||||
       g_value_set_enum (value, phosh_app_grid_button_get_mode (self));
 | 
			
		||||
       break;
 | 
			
		||||
+    case PROP_ADAPTIVE:
 | 
			
		||||
+      g_value_set_boolean (value, phosh_app_grid_button_get_adaptive (self));
 | 
			
		||||
+      break;
 | 
			
		||||
     default:
 | 
			
		||||
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
 | 
			
		||||
       break;
 | 
			
		||||
@@ -229,14 +239,31 @@ phosh_app_grid_button_class_init (PhoshAppGridButtonClass *klass)
 | 
			
		||||
                        G_PARAM_READWRITE |
 | 
			
		||||
                        G_PARAM_EXPLICIT_NOTIFY);
 | 
			
		||||
 
 | 
			
		||||
+  /**
 | 
			
		||||
+   * PhoshAppGridButton:adaptive:
 | 
			
		||||
+   *
 | 
			
		||||
+   * Whether to set the button in adaptive mode.
 | 
			
		||||
+   *
 | 
			
		||||
+   * An icon will be shown when the app is expected to not adjust to a phone's
 | 
			
		||||
+   * screen size.
 | 
			
		||||
+   */
 | 
			
		||||
+  props[PROP_ADAPTIVE] =
 | 
			
		||||
+    g_param_spec_boolean ("adaptive", "", "",
 | 
			
		||||
+                          FALSE,
 | 
			
		||||
+                          G_PARAM_STATIC_STRINGS |
 | 
			
		||||
+                          G_PARAM_READWRITE |
 | 
			
		||||
+                          G_PARAM_EXPLICIT_NOTIFY);
 | 
			
		||||
+
 | 
			
		||||
 
 | 
			
		||||
   g_object_class_install_properties (object_class, LAST_PROP, props);
 | 
			
		||||
 
 | 
			
		||||
   gtk_widget_class_set_template_from_resource (widget_class, "/sm/puri/phosh/ui/app-grid-button.ui");
 | 
			
		||||
 
 | 
			
		||||
+  gtk_widget_class_bind_template_child_private (widget_class, PhoshAppGridButton, form_factor_desktop);
 | 
			
		||||
   gtk_widget_class_bind_template_child_private (widget_class, PhoshAppGridButton, icon);
 | 
			
		||||
   gtk_widget_class_bind_template_child_private (widget_class, PhoshAppGridButton, label);
 | 
			
		||||
   gtk_widget_class_bind_template_child_private (widget_class, PhoshAppGridButton, popover);
 | 
			
		||||
+  gtk_widget_class_bind_template_child_private (widget_class, PhoshAppGridButton, title_box);
 | 
			
		||||
 
 | 
			
		||||
   gtk_widget_class_bind_template_child_private (widget_class, PhoshAppGridButton, menu);
 | 
			
		||||
   gtk_widget_class_bind_template_child_private (widget_class, PhoshAppGridButton, actions);
 | 
			
		||||
@@ -555,10 +582,10 @@ phosh_app_grid_button_set_mode (PhoshAppGridButton     *self,
 | 
			
		||||
 
 | 
			
		||||
   switch (mode) {
 | 
			
		||||
     case PHOSH_APP_GRID_BUTTON_LAUNCHER:
 | 
			
		||||
-      gtk_widget_set_visible (priv->label, TRUE);
 | 
			
		||||
+      gtk_widget_set_visible (priv->title_box, TRUE);
 | 
			
		||||
       break;
 | 
			
		||||
     case PHOSH_APP_GRID_BUTTON_FAVORITES:
 | 
			
		||||
-      gtk_widget_set_visible (priv->label, FALSE);
 | 
			
		||||
+      gtk_widget_set_visible (priv->title_box, FALSE);
 | 
			
		||||
       break;
 | 
			
		||||
     default:
 | 
			
		||||
       g_critical ("Invalid mode %i", mode);
 | 
			
		||||
@@ -581,3 +608,35 @@ phosh_app_grid_button_get_mode (PhoshAppGridButton *self)
 | 
			
		||||
 
 | 
			
		||||
   return priv->mode;
 | 
			
		||||
 }
 | 
			
		||||
+
 | 
			
		||||
+
 | 
			
		||||
+void
 | 
			
		||||
+phosh_app_grid_button_set_adaptive (PhoshAppGridButton *self,
 | 
			
		||||
+                                        gboolean            adaptive)
 | 
			
		||||
+{
 | 
			
		||||
+  PhoshAppGridButtonPrivate *priv;
 | 
			
		||||
+
 | 
			
		||||
+  g_return_if_fail (PHOSH_IS_APP_GRID_BUTTON (self));
 | 
			
		||||
+  priv = phosh_app_grid_button_get_instance_private (self);
 | 
			
		||||
+
 | 
			
		||||
+  adaptive = !!adaptive;
 | 
			
		||||
+
 | 
			
		||||
+  if (priv->adaptive == adaptive)
 | 
			
		||||
+    return;
 | 
			
		||||
+
 | 
			
		||||
+  priv->adaptive = adaptive;
 | 
			
		||||
+
 | 
			
		||||
+  g_object_notify_by_pspec (G_OBJECT (self), props[PROP_ADAPTIVE]);
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
+
 | 
			
		||||
+gboolean
 | 
			
		||||
+phosh_app_grid_button_get_adaptive (PhoshAppGridButton *self)
 | 
			
		||||
+{
 | 
			
		||||
+  PhoshAppGridButtonPrivate *priv;
 | 
			
		||||
+
 | 
			
		||||
+  g_return_val_if_fail (PHOSH_IS_APP_GRID_BUTTON (self), FALSE);
 | 
			
		||||
+  priv = phosh_app_grid_button_get_instance_private (self);
 | 
			
		||||
+
 | 
			
		||||
+  return priv->adaptive;
 | 
			
		||||
+}
 | 
			
		||||
diff --git a/src/app-grid-button.h b/src/app-grid-button.h
 | 
			
		||||
index 3e409f75c..7db4c3f51 100644
 | 
			
		||||
--- a/src/app-grid-button.h
 | 
			
		||||
+++ b/src/app-grid-button.h
 | 
			
		||||
@@ -51,5 +51,8 @@ gboolean               phosh_app_grid_button_is_favorite   (PhoshAppGridButton
 | 
			
		||||
 void                   phosh_app_grid_button_set_mode      (PhoshAppGridButton     *self,
 | 
			
		||||
                                                             PhoshAppGridButtonMode  mode);
 | 
			
		||||
 PhoshAppGridButtonMode phosh_app_grid_button_get_mode      (PhoshAppGridButton     *self);
 | 
			
		||||
+void                   phosh_app_grid_button_set_adaptive  (PhoshAppGridButton     *self,
 | 
			
		||||
+                                                            gboolean                adaptive);
 | 
			
		||||
+gboolean               phosh_app_grid_button_get_adaptive  (PhoshAppGridButton     *self);
 | 
			
		||||
 
 | 
			
		||||
 G_END_DECLS
 | 
			
		||||
diff --git a/src/phosh.gresources.xml b/src/phosh.gresources.xml
 | 
			
		||||
index 692f5e09d..7e53285f4 100644
 | 
			
		||||
--- a/src/phosh.gresources.xml
 | 
			
		||||
+++ b/src/phosh.gresources.xml
 | 
			
		||||
@@ -37,6 +37,7 @@
 | 
			
		||||
     <file alias="auth-sim-locked-symbolic.svg">../data/icons/auth-sim-locked-symbolic.svg</file>
 | 
			
		||||
     <file alias="auth-sim-missing-symbolic.svg">../data/icons/auth-sim-missing-symbolic.svg</file>
 | 
			
		||||
     <file alias="camera-hardware-disabled-symbolic.svg">../data/icons/camera-hardware-disabled-symbolic.svg</file>
 | 
			
		||||
+    <file alias="desktop-thin-small-symbolic.svg">../data/icons/desktop-thin-small-symbolic.svg</file>
 | 
			
		||||
     <file alias="eye-not-looking-symbolic.svg">../data/icons/eye-not-looking-symbolic.svg</file>
 | 
			
		||||
     <file alias="eye-open-negative-filled-symbolic.svg">../data/icons/eye-open-negative-filled-symbolic.svg</file>
 | 
			
		||||
     <file alias="feedback-quiet-symbolic.svg">../data/icons/feedback-quiet-symbolic.svg</file>
 | 
			
		||||
diff --git a/src/ui/app-grid-button.ui b/src/ui/app-grid-button.ui
 | 
			
		||||
index 98a017086..08fc0bdbc 100644
 | 
			
		||||
--- a/src/ui/app-grid-button.ui
 | 
			
		||||
+++ b/src/ui/app-grid-button.ui
 | 
			
		||||
@@ -48,12 +48,27 @@
 | 
			
		||||
                   </packing>
 | 
			
		||||
                 </child>
 | 
			
		||||
                 <child>
 | 
			
		||||
-                  <object class="PhoshFadingLabel" id="label">
 | 
			
		||||
-                    <property name="visible">True</property>
 | 
			
		||||
-                    <property name="can_focus">False</property>
 | 
			
		||||
-                    <property name="no_show_all">True</property>
 | 
			
		||||
-                    <property name="label" translatable="yes">App</property>
 | 
			
		||||
+                  <object class="GtkBox" id="title_box">
 | 
			
		||||
                     <property name="halign">center</property>
 | 
			
		||||
+                    <property name="no-show-all">True</property>
 | 
			
		||||
+                    <property name="spacing">4</property>
 | 
			
		||||
+                    <property name="visible">True</property>
 | 
			
		||||
+                    <child>
 | 
			
		||||
+                      <object class="GtkImage" id="form_factor_desktop">
 | 
			
		||||
+                        <property name="icon-name">desktop-thin-small-symbolic</property>
 | 
			
		||||
+                        <property name="pixel-size">8</property>
 | 
			
		||||
+                        <property name="visible" bind-source="PhoshAppGridButton" bind-property="adaptive" bind-flags="sync-create|invert-boolean"/>
 | 
			
		||||
+                      </object>
 | 
			
		||||
+                    </child>
 | 
			
		||||
+                    <child>
 | 
			
		||||
+                      <object class="PhoshFadingLabel" id="label">
 | 
			
		||||
+                        <property name="visible">True</property>
 | 
			
		||||
+                        <property name="can_focus">False</property>
 | 
			
		||||
+                        <property name="no_show_all">True</property>
 | 
			
		||||
+                        <property name="label" translatable="yes">App</property>
 | 
			
		||||
+                        <property name="halign">center</property>
 | 
			
		||||
+                      </object>
 | 
			
		||||
+                    </child>
 | 
			
		||||
                   </object>
 | 
			
		||||
                   <packing>
 | 
			
		||||
                     <property name="expand">False</property>
 | 
			
		||||
-- 
 | 
			
		||||
GitLab
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
From b10f431e139e8c258aa93eff010be6847d90c333 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Adrien Plazas <kekun.plazas@laposte.net>
 | 
			
		||||
Date: Wed, 26 Jan 2022 13:46:41 +0100
 | 
			
		||||
Subject: [PATCH 2/2] app-grid: Show a desktop icon on non-adaptive apps
 | 
			
		||||
 | 
			
		||||
This helps knowing which apps work everywhere and which ones only work
 | 
			
		||||
on desktops.
 | 
			
		||||
---
 | 
			
		||||
 src/app-grid.c | 68 +++++++++++++++++++++++++++++++++++---------------
 | 
			
		||||
 1 file changed, 48 insertions(+), 20 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/app-grid.c b/src/app-grid.c
 | 
			
		||||
index 276f08485..a6dd1a9a5 100644
 | 
			
		||||
--- a/src/app-grid.c
 | 
			
		||||
+++ b/src/app-grid.c
 | 
			
		||||
@@ -146,6 +146,45 @@ update_filter_adaptive_button (PhoshAppGrid *self)
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
+static gboolean
 | 
			
		||||
+app_is_adaptive (PhoshAppGrid *self, GDesktopAppInfo *info)
 | 
			
		||||
+{
 | 
			
		||||
+  PhoshAppGridPrivate *priv = phosh_app_grid_get_instance_private (self);
 | 
			
		||||
+  g_autofree char *mobile = NULL;
 | 
			
		||||
+  const char *id;
 | 
			
		||||
+
 | 
			
		||||
+  mobile = g_desktop_app_info_get_string (G_DESKTOP_APP_INFO (info),
 | 
			
		||||
+                                          "X-Purism-FormFactor");
 | 
			
		||||
+  if (mobile && strcasestr (mobile, "mobile;"))
 | 
			
		||||
+    return TRUE;
 | 
			
		||||
+
 | 
			
		||||
+  g_free (mobile);
 | 
			
		||||
+  mobile = g_desktop_app_info_get_string (G_DESKTOP_APP_INFO (info),
 | 
			
		||||
+                                          "X-KDE-FormFactor");
 | 
			
		||||
+  if (mobile && strcasestr (mobile, "handset;"))
 | 
			
		||||
+    return TRUE;
 | 
			
		||||
+
 | 
			
		||||
+  id = g_app_info_get_id (G_APP_INFO (info));
 | 
			
		||||
+  if (id && priv->force_adaptive && g_strv_contains ((const char * const*)priv->force_adaptive, id))
 | 
			
		||||
+    return TRUE;
 | 
			
		||||
+
 | 
			
		||||
+  return FALSE;
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
+
 | 
			
		||||
+static void
 | 
			
		||||
+update_app_button_adaptive (GtkWidget *widget,
 | 
			
		||||
+                            gpointer   data)
 | 
			
		||||
+{
 | 
			
		||||
+  PhoshAppGridButton *button = PHOSH_APP_GRID_BUTTON (widget);
 | 
			
		||||
+  PhoshAppGrid *self = PHOSH_APP_GRID (data);
 | 
			
		||||
+  GAppInfo *info = phosh_app_grid_button_get_app_info (button);
 | 
			
		||||
+  gboolean adaptive = app_is_adaptive (self, G_DESKTOP_APP_INFO (info));
 | 
			
		||||
+
 | 
			
		||||
+  phosh_app_grid_button_set_adaptive (button, adaptive);
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
+
 | 
			
		||||
 static void
 | 
			
		||||
 on_filter_setting_changed (PhoshAppGrid *self,
 | 
			
		||||
                            GParamSpec   *pspec,
 | 
			
		||||
@@ -158,7 +197,7 @@ on_filter_setting_changed (PhoshAppGrid *self,
 | 
			
		||||
 
 | 
			
		||||
   priv = phosh_app_grid_get_instance_private (self);
 | 
			
		||||
 
 | 
			
		||||
-  g_strfreev (priv->force_adaptive);
 | 
			
		||||
+  g_clear_pointer (&priv->force_adaptive, g_strfreev);
 | 
			
		||||
   priv->force_adaptive = g_settings_get_strv (priv->settings,
 | 
			
		||||
                                               "force-adaptive");
 | 
			
		||||
   priv->filter_mode = g_settings_get_flags (priv->settings,
 | 
			
		||||
@@ -168,6 +207,8 @@ on_filter_setting_changed (PhoshAppGrid *self,
 | 
			
		||||
   gtk_widget_set_visible (priv->btn_adaptive, show);
 | 
			
		||||
 
 | 
			
		||||
   gtk_filter_list_model_refilter (priv->model);
 | 
			
		||||
+
 | 
			
		||||
+  gtk_container_foreach (GTK_CONTAINER (priv->apps), update_app_button_adaptive, self);
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
@@ -175,8 +216,6 @@ static gboolean
 | 
			
		||||
 filter_adaptive (PhoshAppGrid *self, GDesktopAppInfo *info)
 | 
			
		||||
 {
 | 
			
		||||
   PhoshAppGridPrivate *priv = phosh_app_grid_get_instance_private (self);
 | 
			
		||||
-  g_autofree char *mobile = NULL;
 | 
			
		||||
-  const char *id;
 | 
			
		||||
 
 | 
			
		||||
   if (!(priv->filter_mode & PHOSH_APP_FILTER_MODE_FLAGS_ADAPTIVE))
 | 
			
		||||
     return TRUE;
 | 
			
		||||
@@ -184,22 +223,7 @@ filter_adaptive (PhoshAppGrid *self, GDesktopAppInfo *info)
 | 
			
		||||
   if (!priv->filter_adaptive)
 | 
			
		||||
     return TRUE;
 | 
			
		||||
 
 | 
			
		||||
-  mobile = g_desktop_app_info_get_string (G_DESKTOP_APP_INFO (info),
 | 
			
		||||
-                                          "X-Purism-FormFactor");
 | 
			
		||||
-  if (mobile && strcasestr (mobile, "mobile;"))
 | 
			
		||||
-    return TRUE;
 | 
			
		||||
-
 | 
			
		||||
-  g_free (mobile);
 | 
			
		||||
-  mobile = g_desktop_app_info_get_string (G_DESKTOP_APP_INFO (info),
 | 
			
		||||
-                                          "X-KDE-FormFactor");
 | 
			
		||||
-  if (mobile && strcasestr (mobile, "handset;"))
 | 
			
		||||
-    return TRUE;
 | 
			
		||||
-
 | 
			
		||||
-  id = g_app_info_get_id (G_APP_INFO (info));
 | 
			
		||||
-  if (id && g_strv_contains ((const char * const*)priv->force_adaptive, id))
 | 
			
		||||
-    return TRUE;
 | 
			
		||||
-
 | 
			
		||||
-  return FALSE;
 | 
			
		||||
+  return app_is_adaptive (self, info);
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
@@ -319,6 +343,7 @@ favorites_changed (GListModel   *list,
 | 
			
		||||
 
 | 
			
		||||
   /* We don't show favorites in the main list, filter them out */
 | 
			
		||||
   gtk_filter_list_model_refilter (priv->model);
 | 
			
		||||
+  gtk_container_foreach (GTK_CONTAINER (priv->apps), update_app_button_adaptive, self);
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
@@ -332,6 +357,7 @@ create_launcher (gpointer item,
 | 
			
		||||
                     G_CALLBACK (app_launched_cb), self);
 | 
			
		||||
 
 | 
			
		||||
   gtk_widget_show (btn);
 | 
			
		||||
+  update_app_button_adaptive (btn, self);
 | 
			
		||||
 
 | 
			
		||||
   return btn;
 | 
			
		||||
 }
 | 
			
		||||
@@ -410,7 +436,7 @@ phosh_app_grid_finalize (GObject *object)
 | 
			
		||||
   PhoshAppGridPrivate *priv = phosh_app_grid_get_instance_private (self);
 | 
			
		||||
 
 | 
			
		||||
   g_clear_pointer (&priv->search_string, g_free);
 | 
			
		||||
-  g_strfreev (priv->force_adaptive);
 | 
			
		||||
+  g_clear_pointer (&priv->force_adaptive, g_strfreev);
 | 
			
		||||
 
 | 
			
		||||
   G_OBJECT_CLASS (phosh_app_grid_parent_class)->finalize (object);
 | 
			
		||||
 }
 | 
			
		||||
@@ -447,6 +473,7 @@ do_search (PhoshAppGrid *self)
 | 
			
		||||
   }
 | 
			
		||||
 
 | 
			
		||||
   gtk_filter_list_model_refilter (priv->model);
 | 
			
		||||
+  gtk_container_foreach (GTK_CONTAINER (priv->apps), update_app_button_adaptive, self);
 | 
			
		||||
 
 | 
			
		||||
   priv->debounce = 0;
 | 
			
		||||
   return G_SOURCE_REMOVE;
 | 
			
		||||
@@ -682,5 +709,6 @@ phosh_app_grid_set_filter_adaptive (PhoshAppGrid *self, gboolean enable)
 | 
			
		||||
   update_filter_adaptive_button (self);
 | 
			
		||||
 
 | 
			
		||||
   gtk_filter_list_model_refilter (priv->model);
 | 
			
		||||
+  gtk_container_foreach (GTK_CONTAINER (priv->apps), update_app_button_adaptive, self);
 | 
			
		||||
   g_object_notify_by_pspec (G_OBJECT (self), props[PROP_FILTER_ADAPTIVE]);
 | 
			
		||||
 }
 | 
			
		||||
-- 
 | 
			
		||||
GitLab
 | 
			
		||||
							
								
								
									
										50
									
								
								gui-wm/phosh/files/977.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								gui-wm/phosh/files/977.patch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,50 @@
 | 
			
		||||
From 8aee7788de2cfead530a175a162ea37ab55f2b16 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
 | 
			
		||||
Date: Fri, 7 Jan 2022 20:10:26 +0100
 | 
			
		||||
Subject: [PATCH] network-auth-prompt: Allow for WPA{,2} enterprise
 | 
			
		||||
MIME-Version: 1.0
 | 
			
		||||
Content-Type: text/plain; charset=UTF-8
 | 
			
		||||
Content-Transfer-Encoding: 8bit
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Guido Günther <guido.gunther@puri.sm>
 | 
			
		||||
---
 | 
			
		||||
 src/network-auth-prompt.c | 9 +++++++++
 | 
			
		||||
 1 file changed, 9 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/network-auth-prompt.c b/src/network-auth-prompt.c
 | 
			
		||||
index 9005bc0d3..bf6925b2a 100644
 | 
			
		||||
--- a/src/network-auth-prompt.c
 | 
			
		||||
+++ b/src/network-auth-prompt.c
 | 
			
		||||
@@ -154,6 +154,10 @@ network_connection_get_key_type (NMConnection *connection)
 | 
			
		||||
 
 | 
			
		||||
   if (g_str_equal (key_mgmt, "none"))
 | 
			
		||||
     return "wep-key0";
 | 
			
		||||
+  else if (g_str_equal (key_mgmt, "wpa-eap")) {
 | 
			
		||||
+    /* TODO: This is too simplistic as we have a cert password too */
 | 
			
		||||
+    return "password";
 | 
			
		||||
+  }
 | 
			
		||||
 
 | 
			
		||||
   /* Assume WPA/WPA2 Personal */
 | 
			
		||||
   return "psk";
 | 
			
		||||
@@ -179,7 +183,9 @@ network_prompt_setup_dialog (PhoshNetworkAuthPrompt *self)
 | 
			
		||||
                                 g_bytes_get_size (bytes));
 | 
			
		||||
 
 | 
			
		||||
   if (self->security_type != NMU_SEC_WPA_PSK &&
 | 
			
		||||
+      self->security_type != NMU_SEC_WPA_ENTERPRISE &&
 | 
			
		||||
       self->security_type != NMU_SEC_WPA2_PSK &&
 | 
			
		||||
+      self->security_type != NMU_SEC_WPA2_ENTERPRISE &&
 | 
			
		||||
       self->security_type != NMU_SEC_STATIC_WEP) {
 | 
			
		||||
     g_debug ("Network security method %d of %s not supported",
 | 
			
		||||
              self->security_type, ssid);
 | 
			
		||||
@@ -294,6 +300,9 @@ network_prompt_wpa_password_changed_cb (PhoshNetworkAuthPrompt *self)
 | 
			
		||||
   } else if (self->security_type == NMU_SEC_STATIC_WEP) {
 | 
			
		||||
     valid = nm_utils_wep_key_valid (password, NM_WEP_KEY_TYPE_PASSPHRASE);
 | 
			
		||||
     valid |= nm_utils_wep_key_valid (password, NM_WEP_KEY_TYPE_KEY);
 | 
			
		||||
+  } else if (self->security_type == NMU_SEC_WPA_ENTERPRISE ||
 | 
			
		||||
+             self->security_type == NMU_SEC_WPA2_ENTERPRISE) {
 | 
			
		||||
+    valid = TRUE;
 | 
			
		||||
   }
 | 
			
		||||
 
 | 
			
		||||
   gtk_widget_set_sensitive (self->connect_button, valid);
 | 
			
		||||
-- 
 | 
			
		||||
GitLab
 | 
			
		||||
							
								
								
									
										8
									
								
								gui-wm/phosh/files/osk-wayland
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								gui-wm/phosh/files/osk-wayland
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
set -e
 | 
			
		||||
OSK=/usr/bin/virtboard
 | 
			
		||||
 | 
			
		||||
if [ -x /usr/bin/squeekboard ]; then
 | 
			
		||||
  OSK=/usr/bin/squeekboard
 | 
			
		||||
fi
 | 
			
		||||
exec $OSK
 | 
			
		||||
							
								
								
									
										5
									
								
								gui-wm/phosh/files/pam_phosh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								gui-wm/phosh/files/pam_phosh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
#%PAM-1.0
 | 
			
		||||
 | 
			
		||||
auth       include      system-local-login
 | 
			
		||||
account    include      system-local-login
 | 
			
		||||
session    include      system-local-login 
 | 
			
		||||
							
								
								
									
										62
									
								
								gui-wm/phosh/files/phosh.service
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										62
									
								
								gui-wm/phosh/files/phosh.service
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,62 @@
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=Phosh, a shell for mobile phones
 | 
			
		||||
Documentation=https://gitlab.gnome.org/World/Phosh/phosh
 | 
			
		||||
 | 
			
		||||
# replaces the getty
 | 
			
		||||
Conflicts=getty@tty1.service
 | 
			
		||||
After=getty@tty1.service
 | 
			
		||||
 | 
			
		||||
# Needs all the dependencies of the services it's replacing
 | 
			
		||||
# (currently getty@tty1.service):
 | 
			
		||||
After=rc-local.service plymouth-quit-wait.service systemd-user-sessions.service
 | 
			
		||||
 | 
			
		||||
OnFailure=getty@tty1.service
 | 
			
		||||
 | 
			
		||||
# D-Bus is necessary for contacting logind. Logind is required.
 | 
			
		||||
Wants=dbus.socket
 | 
			
		||||
After=dbus.socket
 | 
			
		||||
 | 
			
		||||
# This scope is created by pam_systemd when logging in as the user.
 | 
			
		||||
# This directive is a workaround to a systemd bug, where the setup of the
 | 
			
		||||
# user session by PAM has some race condition, possibly leading to a failure.
 | 
			
		||||
# See README for more details.
 | 
			
		||||
After=session-c1.scope
 | 
			
		||||
 | 
			
		||||
# Since we are part of the graphical session, make sure we are started before
 | 
			
		||||
# it is complete.
 | 
			
		||||
Before=graphical.target
 | 
			
		||||
 | 
			
		||||
# Prevent starting on systems without virtual consoles
 | 
			
		||||
ConditionPathExists=/dev/tty0
 | 
			
		||||
 | 
			
		||||
[Service]
 | 
			
		||||
Environment=LANG=C.UTF-8
 | 
			
		||||
Environment=XDG_CURRENT_DESKTOP=Phosh:GNOME
 | 
			
		||||
Environment=XDG_SESSION_DESKTOP=phosh
 | 
			
		||||
Environment=XDG_SESSION_TYPE=wayland
 | 
			
		||||
ExecStart=/usr/bin/phosh-session
 | 
			
		||||
TimeoutStartSec=30
 | 
			
		||||
User=1000
 | 
			
		||||
PAMName=login
 | 
			
		||||
WorkingDirectory=~
 | 
			
		||||
Restart=always
 | 
			
		||||
RestartSec=5s
 | 
			
		||||
 | 
			
		||||
# A virtual terminal is needed.
 | 
			
		||||
TTYPath=/dev/tty7
 | 
			
		||||
TTYReset=yes
 | 
			
		||||
TTYVHangup=yes
 | 
			
		||||
TTYVTDisallocate=yes
 | 
			
		||||
 | 
			
		||||
# Fail to start if not controlling the tty.
 | 
			
		||||
StandardInput=tty-fail
 | 
			
		||||
StandardOutput=journal
 | 
			
		||||
StandardError=journal
 | 
			
		||||
 | 
			
		||||
# Log this user with utmp, letting it show up with commands 'w' and 'who'.
 | 
			
		||||
UtmpIdentifier=tty7
 | 
			
		||||
UtmpMode=user
 | 
			
		||||
 | 
			
		||||
[Install]
 | 
			
		||||
WantedBy=graphical.target
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										12
									
								
								gui-wm/phosh/files/sm.puri.OSK0.desktop
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								gui-wm/phosh/files/sm.puri.OSK0.desktop
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
[Desktop Entry]
 | 
			
		||||
Type=Application
 | 
			
		||||
Name=On-screen keyboard
 | 
			
		||||
Comment=Default on-screen keyboard
 | 
			
		||||
Exec=/usr/bin/osk-wayland
 | 
			
		||||
Categories=GNOME;Core;
 | 
			
		||||
OnlyShowIn=GNOME;
 | 
			
		||||
NoDisplay=true
 | 
			
		||||
X-GNOME-Autostart-Phase=Panel
 | 
			
		||||
X-GNOME-Provides=inputmethod
 | 
			
		||||
X-GNOME-Autostart-Notify=true
 | 
			
		||||
X-GNOME-AutoRestart=true 
 | 
			
		||||
							
								
								
									
										15
									
								
								gui-wm/phosh/metadata.xml
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										15
									
								
								gui-wm/phosh/metadata.xml
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
 | 
			
		||||
<pkgmetadata>
 | 
			
		||||
	<maintainer type="person">
 | 
			
		||||
		<email>gjdijkman@gjdwebserver.nl</email>
 | 
			
		||||
		<name>Gerben Jan Dijkman</name>
 | 
			
		||||
	</maintainer>
 | 
			
		||||
	<longdescription lang="en">
 | 
			
		||||
	A pure Wayland shell prototype for GNOME on mobile devices. For a matching compositor see x11-wm/phoc but others implementing wlr-layer-shell should work as well.
 | 
			
		||||
	</longdescription>
 | 
			
		||||
	<upstream>
 | 
			
		||||
		<doc>https://source.puri.sm/Librem5/phosh</doc>
 | 
			
		||||
		<bugs-to>https://source.puri.sm/Librem5/phosh/-/issues</bugs-to>
 | 
			
		||||
	</upstream>
 | 
			
		||||
</pkgmetadata>
 | 
			
		||||
							
								
								
									
										104
									
								
								gui-wm/phosh/phosh-0.30.0.ebuild
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										104
									
								
								gui-wm/phosh/phosh-0.30.0.ebuild
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,104 @@
 | 
			
		||||
# Copyright 1999-2022 Gentoo Authors
 | 
			
		||||
# Distributed under the terms of the GNU General Public License v2
 | 
			
		||||
 | 
			
		||||
EAPI=7
 | 
			
		||||
 | 
			
		||||
inherit desktop gnome2-utils meson pam readme.gentoo-r1 systemd xdg
 | 
			
		||||
 | 
			
		||||
MY_P="${PN}-v${PV}"
 | 
			
		||||
LVC_COMMIT="a1ae68ff11dc6156f9c80069194ea39679700f3f"
 | 
			
		||||
LCU_COMMIT="6798b38d4d66d069751151b3e9a202c6de8d7f3c"
 | 
			
		||||
GMO_COMMIT="f1b50f0f90604e0f125412932dae9b1e08d57ddc"
 | 
			
		||||
 | 
			
		||||
DESCRIPTION="A pure Wayland shell prototype for GNOME on mobile devices"
 | 
			
		||||
HOMEPAGE="https://gitlab.gnome.org/World/Phosh/phosh/"
 | 
			
		||||
SRC_URI="
 | 
			
		||||
	https://gitlab.gnome.org/World/Phosh/phosh/-/archive/v${PV}/${MY_P}.tar.gz
 | 
			
		||||
	https://gitlab.gnome.org/GNOME/libgnome-volume-control/-/archive/${LVC_COMMIT}/libgnome-volume-control-${LVC_COMMIT}.tar.gz
 | 
			
		||||
	https://gitlab.gnome.org/World/Phosh/libcall-ui/-/archive/${LCU_COMMIT}/libcall-ui-${LCU_COMMIT}.tar.gz
 | 
			
		||||
	https://gitlab.gnome.org/guidog/gmobile/-/archive/${GMO_COMMIT}/gmobile-${GMO_COMMIT}.tar.gz
 | 
			
		||||
"
 | 
			
		||||
S="${WORKDIR}/${MY_P}"
 | 
			
		||||
 | 
			
		||||
KEYWORDS="~amd64 ~arm64"
 | 
			
		||||
 | 
			
		||||
LICENSE="GPL-3"
 | 
			
		||||
SLOT="0"
 | 
			
		||||
IUSE="+systemd"
 | 
			
		||||
 | 
			
		||||
DEPEND="
 | 
			
		||||
	app-crypt/gcr
 | 
			
		||||
	dev-libs/feedbackd
 | 
			
		||||
	media-sound/pulseaudio
 | 
			
		||||
	>=gui-libs/libhandy-1.1.90
 | 
			
		||||
	net-misc/networkmanager
 | 
			
		||||
	gnome-base/gnome-control-center
 | 
			
		||||
	gnome-base/gnome-desktop
 | 
			
		||||
	gnome-base/gnome-session
 | 
			
		||||
	x11-themes/gnome-backgrounds
 | 
			
		||||
	gnome-base/gnome-keyring
 | 
			
		||||
	gnome-base/gnome-shell
 | 
			
		||||
	x11-wm/phoc
 | 
			
		||||
	sys-apps/systemd
 | 
			
		||||
	sys-power/upower
 | 
			
		||||
	app-misc/geoclue
 | 
			
		||||
        net-libs/libnma
 | 
			
		||||
        media-sound/callaudiod
 | 
			
		||||
"
 | 
			
		||||
RDEPEND="${DEPEND}"
 | 
			
		||||
BDEPEND="
 | 
			
		||||
	dev-util/ctags
 | 
			
		||||
	dev-util/meson
 | 
			
		||||
"
 | 
			
		||||
 | 
			
		||||
src_prepare() {
 | 
			
		||||
	default
 | 
			
		||||
	rm -r "${S}"/subprojects/gvc || die
 | 
			
		||||
	mv "${WORKDIR}"/libgnome-volume-control-"${LVC_COMMIT}" "${S}"/subprojects/gvc || die
 | 
			
		||||
	rm -r "${S}"/subprojects/libcall-ui || die
 | 
			
		||||
	mv "${WORKDIR}"/libcall-ui-"${LCU_COMMIT}" "${S}"/subprojects/libcall-ui || die
 | 
			
		||||
	rm -r "${S}"/subprojects/gmobile || die
 | 
			
		||||
	mv "${WORKDIR}"/gmobile-"${GMO_COMMIT}" "${S}"/subprojects/gmobile || die
 | 
			
		||||
	
 | 
			
		||||
	#Phosh patches
 | 
			
		||||
#	eapply "${FILESDIR}"/0001-system-prompt-allow-blank-passwords.patch
 | 
			
		||||
#	eapply "${FILESDIR}"/0003-fix-locale-issue-in-service-file.patch
 | 
			
		||||
#	eapply "${FILESDIR}"/977.patch
 | 
			
		||||
#	eapply "${FILESDIR}"/1008.patch
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
src_configure() {
 | 
			
		||||
	local emesonargs=(	
 | 
			
		||||
	-Dsystemd=true
 | 
			
		||||
	-Dtests=false
 | 
			
		||||
	-Dphoc_tests=disabled
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	meson_src_configure
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
src_install() {
 | 
			
		||||
	default
 | 
			
		||||
	meson_src_install
 | 
			
		||||
	newpamd "${FILESDIR}"/pam_phosh 'phosh'
 | 
			
		||||
	systemd_newunit "${FILESDIR}"/phosh.service 'phosh.service'
 | 
			
		||||
	domenu "${FILESDIR}"/sm.puri.OSK0.desktop
 | 
			
		||||
	dobin "${FILESDIR}"/osk-wayland
 | 
			
		||||
 | 
			
		||||
	DOC_CONTENTS="To amend the existing password policy please see the man 5 passwdqc.conf
 | 
			
		||||
				page and then edit the /etc/security/passwdqc.conf file to change enforce=none
 | 
			
		||||
				to allow use digit only password as phosh only support passcode for now"
 | 
			
		||||
	readme.gentoo_create_doc
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pkg_postinst() {
 | 
			
		||||
	xdg_pkg_postinst
 | 
			
		||||
	gnome2_schemas_update
 | 
			
		||||
	readme.gentoo_print_elog
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pkg_postrm() {
 | 
			
		||||
	xdg_pkg_postrm
 | 
			
		||||
	gnome2_schemas_update
 | 
			
		||||
}
 | 
			
		||||
@@ -1,6 +1,11 @@
 | 
			
		||||
Gentoo overlay: GJDWebserver
 | 
			
		||||
 | 
			
		||||
This is a personal overlay I use for my computers.
 | 
			
		||||
This is a personal overlay I use for my computers and Pine64 PinePhone Pro.
 | 
			
		||||
 | 
			
		||||
**Binaryhost**
 | 
			
		||||
For the PinePhone Pro I've created a binaryhost: https://distfiles.gjdwebserver.nl/
 | 
			
		||||
 | 
			
		||||
More information on this you can find on my blog: https://blog.gjdwebserver.nl/ords/f?p=107:HOME:::::ARTICLE:gjdwebserver-binaryhost-packages
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
**Setup**
 | 
			
		||||
@@ -14,3 +19,5 @@ sync-type = git
 | 
			
		||||
sync-uri = https://git.gjdwebserver.nl/gjdwebserver/gjdwebserver-overlay
 | 
			
		||||
auto-sync = yes
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Or run eselect repository add gjdwebserver git https://git.gjdwebserver.nl/gjdwebserver/gjdwebserver-overlay.git
 | 
			
		||||
 
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
DIST phosh-mobile-settings-0.30.0.tar.gz 175802 BLAKE2B 2d59e5c99c2c58d45a1c28ad32a7358746732bab3046ca653370d105562af8c89839608da124b223c977f2b145873532b1d3bd8bbcb07fc15c61532f0732f171 SHA512 337d228d3a8e8dce77e2a85fa13569c47598b6b42758631917f3c1a00a12f8c80770a82b7be6fea42b5fcd6625ba1c6759e2aed69a87915bc1362efed74e6e6e
 | 
			
		||||
							
								
								
									
										1
									
								
								x11-themes/sound-theme-librem5/Manifest
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1
									
								
								x11-themes/sound-theme-librem5/Manifest
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
DIST sound-theme-librem5-v0.1.0.tar.gz 478867 BLAKE2B 1621e0f9a2a7ba3e295edc199b0f64957f1d734f3edffd2878bc037e0e2fadfb5fe3b7d882349d06a3147af6165c68d0269b6b706742334295ef0b791627b982 SHA512 348031406e0393f9c67c1ea99e5b250ae985f736cc5b1ce79c959134605bfc79bf875ec10abfe324077d0129df09041e5b574273df7d142af8d8bc5604a12406
 | 
			
		||||
							
								
								
									
										15
									
								
								x11-themes/sound-theme-librem5/metadata.xml
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										15
									
								
								x11-themes/sound-theme-librem5/metadata.xml
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
 | 
			
		||||
<pkgmetadata>
 | 
			
		||||
	<maintainer type="person">
 | 
			
		||||
		<email>gjdijkman@gjdwebserver.nl</email>
 | 
			
		||||
		<name>Gerben Jan Dijkman</name>
 | 
			
		||||
	</maintainer>
 | 
			
		||||
	<longdescription lang="en">
 | 
			
		||||
	Sound theme for the librem 5.
 | 
			
		||||
	</longdescription>
 | 
			
		||||
	<upstream>
 | 
			
		||||
		<doc>https://source.puri.sm/Librem5/sound-theme-librem5</doc>
 | 
			
		||||
		<bugs-to>https://source.puri.sm/Librem5/sound-theme-librem5/-/issues</bugs-to>
 | 
			
		||||
	</upstream>
 | 
			
		||||
</pkgmetadata>
 | 
			
		||||
							
								
								
									
										25
									
								
								x11-themes/sound-theme-librem5/sound-theme-librem5-0.1.0.ebuild
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										25
									
								
								x11-themes/sound-theme-librem5/sound-theme-librem5-0.1.0.ebuild
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
# Copyright 1999-2021 Gentoo Authors
 | 
			
		||||
# Distributed under the terms of the GNU General Public License v2
 | 
			
		||||
 | 
			
		||||
EAPI=7
 | 
			
		||||
 | 
			
		||||
DESCRIPTION="Sound theme for the Librem 5/PinePhone"
 | 
			
		||||
HOMEPAGE="https://source.puri.sm/Librem5/sound-theme-librem5"
 | 
			
		||||
SRC_URI="https://source.puri.sm/Librem5/sound-theme-librem5/-/archive/v${PV}/${PN}-v${PV}.tar.gz"
 | 
			
		||||
 | 
			
		||||
LICENSE="GPL-2 LGPL-2 CC-BY-3.0 CC-BY-SA-2.0"
 | 
			
		||||
SLOT="0"
 | 
			
		||||
KEYWORDS="~amd64 ~arm64"
 | 
			
		||||
 | 
			
		||||
DEPEND="
 | 
			
		||||
	sys-devel/gettext
 | 
			
		||||
	dev-libs/glib:2
 | 
			
		||||
	>=dev-util/intltool-0.40
 | 
			
		||||
"
 | 
			
		||||
 | 
			
		||||
S="${WORKDIR}/${PN}-v${PV}"
 | 
			
		||||
 | 
			
		||||
src_install() {
 | 
			
		||||
	insinto /usr/share/sounds/
 | 
			
		||||
	doins -r librem5
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user