From 1020390285d574241f6e34447da752fb51a47eae Mon Sep 17 00:00:00 2001 From: Denis Garaev Date: Tue, 24 Feb 2026 22:11:07 +0300 Subject: [PATCH 1/3] Remove autostarts --- session/meson.build | 131 ++++++++++++++++++++++---------------------- 1 file changed, 66 insertions(+), 65 deletions(-) diff --git a/session/meson.build b/session/meson.build index b32e46f..7dc1a99 100644 --- a/session/meson.build +++ b/session/meson.build @@ -34,74 +34,75 @@ configure_file( install_dir: datadir / 'gnome-session' / 'sessions' ) -autostartdir = join_paths(get_option('sysconfdir'), 'xdg', 'autostart') - -gsd_dir = gsd_dep.get_pkgconfig_variable('prefix') -desktop_file_install = find_program('desktop-file-install') - -foreach component : gsd_components - original_filename = component + '.desktop' +if (gsd_dep.version().version_compare('< 49')) + autostartdir = join_paths(get_option('sysconfdir'), 'xdg', 'autostart') + gsd_dir = gsd_dep.get_pkgconfig_variable('prefix') + desktop_file_install = find_program('desktop-file-install') + + foreach component : gsd_components + original_filename = component + '.desktop' + + if get_option('detect-program-prefixes') == true + original_autostart_file = join_paths(gsd_dir, 'etc/xdg/autostart', original_filename) + else + original_autostart_file = join_paths(autostartdir, original_filename) + endif + + patched_filename = 'pantheon-' + component + '.desktop' + + custom_target('create-gsd-autostart' + patched_filename, + input: original_autostart_file, + output: patched_filename, + command: [ + desktop_file_install, + '--set-key=OnlyShowIn', + '--set-value=Pantheon', + '--vendor=pantheon', + '--dir=@OUTDIR@', + '@INPUT@', + ], + install: true, + install_dir: autostartdir, + ) + endforeach + + gnome_keyring = find_program('gnome-keyring-daemon') + orca = find_program('orca') if get_option('detect-program-prefixes') == true - original_autostart_file = join_paths(gsd_dir, 'etc/xdg/autostart', original_filename) + # TODO: use fs module in meson 0.53.0 + gnome_keyring_prefix = gnome_keyring.path().split('/bin')[0] + orca_prefix = orca.path().split('/bin')[0] + + autostarts = { + 'gnome-keyring-pkcs11': join_paths(gnome_keyring_prefix, 'etc/xdg/autostart', 'gnome-keyring-pkcs11.desktop'), + 'gnome-keyring-secrets': join_paths(gnome_keyring_prefix, 'etc/xdg/autostart', 'gnome-keyring-secrets.desktop'), + 'gnome-keyring-ssh': join_paths(gnome_keyring_prefix, 'etc/xdg/autostart', 'gnome-keyring-ssh.desktop'), + 'orca-autostart': join_paths(orca_prefix, 'etc/xdg/autostart', 'orca-autostart.desktop'), + } else - original_autostart_file = join_paths(autostartdir, original_filename) + autostarts = { + 'gnome-keyring-pkcs11': join_paths(autostartdir, 'gnome-keyring-pkcs11.desktop'), + 'gnome-keyring-secrets': join_paths(autostartdir, 'gnome-keyring-secrets.desktop'), + 'gnome-keyring-ssh': join_paths(autostartdir, 'gnome-keyring-ssh.desktop'), + 'orca-autostart': join_paths(autostartdir, 'orca-autostart.desktop'), + } endif - patched_filename = 'pantheon-' + component + '.desktop' - - custom_target('create-gsd-autostart' + patched_filename, - input: original_autostart_file, - output: patched_filename, - command: [ - desktop_file_install, - '--set-key=OnlyShowIn', - '--set-value=Pantheon', - '--vendor=pantheon', - '--dir=@OUTDIR@', - '@INPUT@', - ], - install: true, - install_dir: autostartdir, - ) -endforeach - -gnome_keyring = find_program('gnome-keyring-daemon') -orca = find_program('orca') - -if get_option('detect-program-prefixes') == true - # TODO: use fs module in meson 0.53.0 - gnome_keyring_prefix = gnome_keyring.path().split('/bin')[0] - orca_prefix = orca.path().split('/bin')[0] - - autostarts = { - 'gnome-keyring-pkcs11': join_paths(gnome_keyring_prefix, 'etc/xdg/autostart', 'gnome-keyring-pkcs11.desktop'), - 'gnome-keyring-secrets': join_paths(gnome_keyring_prefix, 'etc/xdg/autostart', 'gnome-keyring-secrets.desktop'), - 'gnome-keyring-ssh': join_paths(gnome_keyring_prefix, 'etc/xdg/autostart', 'gnome-keyring-ssh.desktop'), - 'orca-autostart': join_paths(orca_prefix, 'etc/xdg/autostart', 'orca-autostart.desktop'), - } -else - autostarts = { - 'gnome-keyring-pkcs11': join_paths(autostartdir, 'gnome-keyring-pkcs11.desktop'), - 'gnome-keyring-secrets': join_paths(autostartdir, 'gnome-keyring-secrets.desktop'), - 'gnome-keyring-ssh': join_paths(autostartdir, 'gnome-keyring-ssh.desktop'), - 'orca-autostart': join_paths(autostartdir, 'orca-autostart.desktop'), - } + foreach name, autostart : autostarts + custom_target('create-autostart-' + name, + input: autostart, + output: 'pantheon-' + name + '.desktop', + command: [ + desktop_file_install, + '--set-key=OnlyShowIn', + '--set-value=Pantheon', + '--vendor=pantheon', + '--dir=@OUTDIR@', + '@INPUT@', + ], + install: true, + install_dir: autostartdir, + ) + endforeach endif - -foreach name, autostart : autostarts - custom_target('create-autostart-' + name, - input: autostart, - output: 'pantheon-' + name + '.desktop', - command: [ - desktop_file_install, - '--set-key=OnlyShowIn', - '--set-value=Pantheon', - '--vendor=pantheon', - '--dir=@OUTDIR@', - '@INPUT@', - ], - install: true, - install_dir: autostartdir, - ) -endforeach From 076046d5bd25ee87929606fd1519737570c16f6b Mon Sep 17 00:00:00 2001 From: Denis Garaev Date: Tue, 24 Feb 2026 22:15:41 +0300 Subject: [PATCH 2/3] Launch needed services via systemd --- meson.build | 10 ++++++++++ systemd/meson.build | 24 ++++++++++++++++++------ 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/meson.build b/meson.build index 437a8d0..6690262 100644 --- a/meson.build +++ b/meson.build @@ -27,6 +27,16 @@ gsd_components = [ 'org.gnome.SettingsDaemon.XSettings', ] +keyring_components = [ + 'gnome-keyring-daemon', + 'gcr-ssh-agent' +] + +desktop_components = [ + 'orca', + 'io.elementary.settings-daemon' +] + subdir('po') if get_option('mimeapps-list') diff --git a/systemd/meson.build b/systemd/meson.build index 53beb67..50d53ec 100644 --- a/systemd/meson.build +++ b/systemd/meson.build @@ -4,27 +4,39 @@ if systemd_userunitdir == '' systemd_userunitdir = dep_systemd.get_pkgconfig_variable('systemduserunitdir', define_variable: ['prefix', get_option('prefix')]) endif -desktop_plain = 'pantheon' +desktop_targets = 'targets' +desktop_sockets = 'sockets' +desktop_services = 'services' shell_component = { - desktop_plain: 'io.elementary.gala', + desktop_targets: 'io.elementary.gala', } required_components = { - desktop_plain: gsd_components, + desktop_targets: gsd_components, + desktop_sockets: keyring_components, + desktop_services: desktop_components } gnome_session_wanted_targets = [] -foreach component: required_components[desktop_plain] +gnome_session_wanted_sockets = [] +gnome_session_wanted_services = [] +foreach component: required_components[desktop_targets] gnome_session_wanted_targets += 'Wants=@0@.target'.format(component) endforeach +foreach component: required_components[desktop_sockets] + gnome_session_wanted_sockets += 'Wants=@0@.socket'.format(component) +endforeach +foreach component: required_components[desktop_services] + gnome_session_wanted_services += 'Wants=@0@.service'.format(component) +endforeach session_config = configure_file( input: 'gnome.session.conf.in', output: 'session.conf', configuration: { - 'requires_component': shell_component[desktop_plain], - 'wants_required_components': '\n'.join(gnome_session_wanted_targets), + 'requires_component': shell_component[desktop_targets], + 'wants_required_components': '\n'.join(gnome_session_wanted_targets, gnome_session_wanted_sockets, gnome_session_wanted_services), }, install_dir: systemd_userunitdir / 'gnome-session@pantheon.target.d', ) From 61254fc7a1b643876214eb12beab39a9c880ec58 Mon Sep 17 00:00:00 2001 From: Denis Garaev Date: Fri, 6 Mar 2026 00:19:10 +0300 Subject: [PATCH 3/3] CI: add systemd-dev --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 5a3aa2e..7341246 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -27,7 +27,7 @@ jobs: - name: Install Dependencies run: | apt update - apt install -y meson pkg-config gnome-settings-daemon gnome-settings-daemon-dev gnome-keyring orca + apt install -y meson pkg-config gnome-settings-daemon gnome-settings-daemon-dev gnome-keyring orca systemd-dev - name: Build run: |