Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Session: build GSD autostarts #824

Draft
wants to merge 15 commits into
base: main
Choose a base branch
from
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,12 @@ jobs:
- name: Install Dependencies
run: |
apt update
apt install -y desktop-file-utils gettext libadwaita-1-dev libdistinst-dev libgee-0.8-dev libgranite-7-dev libgtk-4-dev libxkbregistry-dev libjson-glib-dev libpwquality-dev meson valac
apt install -y desktop-file-utils gettext gnome-settings-daemon gnome-settings-daemon-dev libadwaita-1-dev libdistinst-dev libgee-0.8-dev libgranite-7-dev libgtk-4-dev libxkbregistry-dev libjson-glib-dev libpwquality-dev meson valac
- name: Build and Test
env:
DESTDIR: out
run: |
meson setup build
meson setup build --prefix=/usr
ninja -C build install
ninja -C build test

Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ You'll need the following dependencies:
- meson
- desktop-file-utils
- gettext
- gnome-settings-daemon
- gnome-settings-daemon-dev >= 3.36.0
- gparted
- libgnomekbd-dev
- libgranite-7-dev >=7.4.0
Expand Down
1 change: 1 addition & 0 deletions meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ gtk_dep = dependency('gtk4')
gee_dep = dependency('gee-0.8')
gio_dep = dependency('gio-2.0')
granite_dep = dependency('granite-7', version: '>=7.4.0')
gsd_dep = dependency('gnome-settings-daemon', version: '>= 3.36.0')
adw_dep = dependency('libadwaita-1', version: '>=1.4.0')
json_glib_dep = dependency('json-glib-1.0')
xkbregistry_dep = dependency('xkbregistry')
Expand Down
2 changes: 1 addition & 1 deletion session/autostart.desktop
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ X-GNOME-Autostart-Notify=false
X-GNOME-AutoRestart=true
X-GNOME-Autostart-enabled=true
X-GNOME-Autostart-Phase=Applications
OnlyShowIn=Installer;
OnlyShowIn=X-Installer;
2 changes: 1 addition & 1 deletion session/compositor-autostart.desktop
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@ X-GNOME-AutoRestart=true
X-GNOME-Autostart-enabled=true
X-GNOME-Autostart-Phase=WindowManager
X-GNOME-Provides=windowmanager
OnlyShowIn=Installer;
OnlyShowIn=X-Installer;

This file was deleted.

9 changes: 0 additions & 9 deletions session/gsd/org.gnome.SettingsDaemon.Power-installer.desktop

This file was deleted.

This file was deleted.

30 changes: 15 additions & 15 deletions session/installer-default-settings.gschema.override
Original file line number Diff line number Diff line change
@@ -1,59 +1,59 @@
[org.freedesktop.ibus.general.hotkey:Installer]
[org.freedesktop.ibus.general.hotkey:X-Installer]
triggers=['<Control>space']

[org.freedesktop.ibus.panel:Installer]
[org.freedesktop.ibus.panel:X-Installer]
show=1

[org.gnome.desktop.background:Installer]
[org.gnome.desktop.background:X-Installer]
picture-options='zoom'
picture-uri='file:///usr/share/backgrounds/elementaryos-default'
primary-color='#000000'

[org.gnome.desktop.datetime:Installer]
[org.gnome.desktop.datetime:X-Installer]
automatic-timezone=true

[org.gnome.desktop.input-sources:Installer]
[org.gnome.desktop.input-sources:X-Installer]
xkb-options=['grp:alt_shift_toggle']

[org.gnome.desktop.interface:Installer]
[org.gnome.desktop.interface:X-Installer]
cursor-theme='elementary'
document-font-name='Open Sans 10'
font-name='Inter 9'
gtk-theme='io.elementary.stylesheet.blueberry'
icon-theme='elementary'
monospace-font-name='Roboto Mono 10'

[org.gnome.desktop.peripherals.touchpad:Installer]
[org.gnome.desktop.peripherals.touchpad:X-Installer]
natural-scroll=true
tap-to-click=true

[org.gnome.desktop.sound:Installer]
[org.gnome.desktop.sound:X-Installer]
theme-name='elementary'

[org.gnome.desktop.wm.preferences:Installer]
[org.gnome.desktop.wm.preferences:X-Installer]
button-layout='close:maximize'
mouse-button-modifier='<Super>'
resize-with-right-button=true

[org.gnome.nm-applet:Installer]
[org.gnome.nm-applet:X-Installer]
disable-connected-notifications=true
disable-disconnected-notifications=true
show-applet=false

[org.gnome.settings-daemon.peripherals.touchpad:Installer]
[org.gnome.settings-daemon.peripherals.touchpad:X-Installer]
horiz-scroll-enabled=true
natural-scroll=true
scroll-method='two-finger-scrolling'

[org.gnome.settings-daemon.plugins.screensaver-proxy:Installer]
[org.gnome.settings-daemon.plugins.screensaver-proxy:X-Installer]
# Allows light-locker to accept DBus
active=false

[org.gnome.settings-daemon.plugins.xsettings:Installer]
[org.gnome.settings-daemon.plugins.xsettings:X-Installer]
overrides={'Gtk/DialogsUseHeader': <0>, 'Gtk/EnablePrimaryPaste': <0>, 'Gtk/ShellShowsAppMenu': <0>, 'Gtk/DecorationLayout': <'close:menu,maximize'>}

[org.gtk.Settings.FileChooser:Installer]
[org.gtk.Settings.FileChooser:X-Installer]
sort-directories-first=true

[org.onboard:Installer]
[org.onboard:X-Installer]
theme='/usr/share/onboard/themes/Nightshade.theme'
3 changes: 2 additions & 1 deletion session/installer.desktop
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@
Name=Installer
Comment=This session provides elementary experience
Exec=gnome-session --session=installer
DesktopNames=Installer
TryExec=io.elementary.wingpanel
DesktopNames=X-Installer
Type=Application
4 changes: 0 additions & 4 deletions session/installer.session

This file was deleted.

4 changes: 4 additions & 0 deletions session/installer.session.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[GNOME Session]
Name=Installer
RequiredComponents=@SESSION_COMPONENTS@
DesktopName=X-Installer
62 changes: 52 additions & 10 deletions session/meson.build
Original file line number Diff line number Diff line change
@@ -1,6 +1,35 @@
autostartdir = get_option('sysconfdir') / 'xdg' / 'autostart'
desktop_file_install = find_program('desktop-file-install')
schemadir = get_option('datadir') / 'glib-2.0' / 'schemas'

gsd_components = [
'org.gnome.SettingsDaemon.A11ySettings',
'org.gnome.SettingsDaemon.Color',
'org.gnome.SettingsDaemon.Keyboard',
'org.gnome.SettingsDaemon.MediaKeys',
'org.gnome.SettingsDaemon.Power',
'org.gnome.SettingsDaemon.Rfkill',
'org.gnome.SettingsDaemon.ScreensaverProxy',
'org.gnome.SettingsDaemon.Sound',
'org.gnome.SettingsDaemon.XSettings',
]

session_components = [
'io.elementary.installer.compositor',
gsd_components,
'io.elementary.installer'
]

session_configuration = configuration_data()
session_configuration.set('SESSION_COMPONENTS', ';'.join(session_components))

configure_file(
input: 'installer.session.in',
output: '@BASENAME@',
configuration: session_configuration,
install_dir: get_option('datadir') / 'gnome-session' / 'sessions'
)

install_data(
'autostart.desktop',
install_dir: autostartdir,
Expand All @@ -18,18 +47,31 @@ install_data(
install_dir: get_option('datadir') / 'xsessions'
)

install_data(
'installer.session',
install_dir: get_option('datadir') / 'gnome-session' / 'sessions'
)

install_data(
'installer-default-settings.gschema.override',
install_dir: schemadir
)

install_subdir(
'gsd',
install_dir: autostartdir,
strip_directory: true
)
vendor_prefix = 'installer'

foreach component : gsd_components
original_filename = component + '.desktop'
original_autostart_file = autostartdir / original_filename

patched_filename = vendor_prefix + '-' + 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=X-Installer',
'--vendor=' + vendor_prefix,
'--dir=@OUTDIR@',
'@INPUT@',
],
install: true,
install_dir: autostartdir,
)
endforeach
Loading