From 9b2843d225d01c732af428ae02c267bdb3eba027 Mon Sep 17 00:00:00 2001 From: Igor Pecovnik Date: Tue, 18 Nov 2025 15:32:05 +0100 Subject: [PATCH] Desktop (mainly Gnome ) - add additional packages, small fixes and improvements --- config/desktop/common/appgroups/chat/packages | 3 -- .../common/appgroups/desktop_tools/packages | 1 + .../common/appgroups/multimedia/packages | 4 +++ .../desktop/common/appgroups/office/packages | 3 ++ .../environments/gnome/config_base/packages | 14 ++++++++ .../desktop/common/appgroups/chat/packages | 1 + .../common/usr/lib/armbian/armbian-firstlogin | 30 +++++++++++++++++- .../usr/share/armbian/armbian-user-icon.png | Bin 0 -> 12460 bytes 8 files changed, 52 insertions(+), 4 deletions(-) create mode 100644 config/optional/architectures/amd64/_config/desktop/common/appgroups/chat/packages create mode 100644 packages/bsp/common/usr/share/armbian/armbian-user-icon.png diff --git a/config/desktop/common/appgroups/chat/packages b/config/desktop/common/appgroups/chat/packages index 197c98ab0..750362098 100644 --- a/config/desktop/common/appgroups/chat/packages +++ b/config/desktop/common/appgroups/chat/packages @@ -1,4 +1 @@ hexchat -#pidgin -#purple-discord -#purple-rocketchat diff --git a/config/desktop/common/appgroups/desktop_tools/packages b/config/desktop/common/appgroups/desktop_tools/packages index 9accdd497..8f7985c31 100644 --- a/config/desktop/common/appgroups/desktop_tools/packages +++ b/config/desktop/common/appgroups/desktop_tools/packages @@ -1,2 +1,3 @@ bleachbit +baobab gparted diff --git a/config/desktop/common/appgroups/multimedia/packages b/config/desktop/common/appgroups/multimedia/packages index b7d6f3555..5c359ce3f 100644 --- a/config/desktop/common/appgroups/multimedia/packages +++ b/config/desktop/common/appgroups/multimedia/packages @@ -2,4 +2,8 @@ celluloid eog gimp pithos +shotwell +rhythmbox +rhythmbox-data mpv +totem diff --git a/config/desktop/common/appgroups/office/packages b/config/desktop/common/appgroups/office/packages index bb3cf6350..bfba716c9 100644 --- a/config/desktop/common/appgroups/office/packages +++ b/config/desktop/common/appgroups/office/packages @@ -1,4 +1,7 @@ +evince +evince-common libreoffice libreoffice-gtk3 libreoffice-style-elementary simple-scan +sane-utils diff --git a/config/desktop/common/environments/gnome/config_base/packages b/config/desktop/common/environments/gnome/config_base/packages index 346a7495d..3ba8aac51 100644 --- a/config/desktop/common/environments/gnome/config_base/packages +++ b/config/desktop/common/environments/gnome/config_base/packages @@ -2,18 +2,32 @@ anacron at-spi2-core colord cups +cups-browsed +cups-bsd +cups-pk-helper +bolt +bluez-cups +cifs-utils +fprintd dbus-x11 dmz-cursor-theme dconf-cli eject foomatic-db-compressed-ppds fonts-noto-cjk +fonts-arphic-ukai +fonts-arphic-uming +fonts-droid-fallback +fonts-liberation-sans-narrow +fonts-noto-core +fonts-noto-mono fonts-ubuntu fonts-ubuntu-console gdebi gnome-control-center gnome-disk-utility gnome-desktop3-data +gnome-online-accounts gnome-keyring gnome-menus gnome-screenshot diff --git a/config/optional/architectures/amd64/_config/desktop/common/appgroups/chat/packages b/config/optional/architectures/amd64/_config/desktop/common/appgroups/chat/packages new file mode 100644 index 000000000..e46fba20a --- /dev/null +++ b/config/optional/architectures/amd64/_config/desktop/common/appgroups/chat/packages @@ -0,0 +1 @@ +discord diff --git a/packages/bsp/common/usr/lib/armbian/armbian-firstlogin b/packages/bsp/common/usr/lib/armbian/armbian-firstlogin index 1613cc462..6f520334b 100755 --- a/packages/bsp/common/usr/lib/armbian/armbian-firstlogin +++ b/packages/bsp/common/usr/lib/armbian/armbian-firstlogin @@ -552,6 +552,9 @@ add_user() { if ! id "$RealUserName" > /dev/null 2>&1; then break; else echo -e "Username \e[0;31m$RealUserName\x1B[0m already exists on the system."; fi done + # Set default user login icon + set_user_icon "$RealUserName" + while [ -f "/root/.not_logged_in_yet" ]; do if [ -z "$PRESET_USER_PASSWORD" ];then read_password "Create user ($username)" @@ -605,7 +608,7 @@ add_user() { # (docker-ce package creates this group automatically during postinst, but we create it early # to guarantee group membership is ready immediately after user creation.) if ! getent group docker >/dev/null; then - if ! addgroup --system docker 2>/dev/null; then + if ! addgroup --system --quiet docker 2>/dev/null; then echo "Warning: Failed to create docker group" >&2 fi fi @@ -637,6 +640,31 @@ add_user() { } +set_user_icon() { + local U="$1" + local ICON_SRC="/usr/share/armbian/armbian-user-icon.png" + local ICON_DST="/var/lib/AccountsService/icons/$U" + local META="/var/lib/AccountsService/users/$U" + + # If the icon doesn't exist, do nothing. + [ -f "$ICON_SRC" ] || return 0 + + mkdir -p /var/lib/AccountsService/icons /var/lib/AccountsService/users + + # Copy icon + install -m 0644 "$ICON_SRC" "$ICON_DST" + + # Write AccountsService metadata + cat <<- EOF > "$META" + [User] + Icon=$ICON_DST + SystemAccount=false + EOF + chown root:root "$ICON_DST" "$META" + chmod 0644 "$ICON_DST" "$META" +} + + if [[ -f /root/.not_logged_in_yet && -n $(tty) ]]; then . /root/.not_logged_in_yet diff --git a/packages/bsp/common/usr/share/armbian/armbian-user-icon.png b/packages/bsp/common/usr/share/armbian/armbian-user-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..9935af29938157cbdce5f905d8a8e636c9ee1dc2 GIT binary patch literal 12460 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