1. 20 Nov, 2020 1 commit
  2. 27 Oct, 2020 1 commit
    • Benjamin Berg's avatar
      power: Never register sleep timeout for logout in GDM · c1f14103
      Benjamin Berg authored
      We already suppress logout actions in GDM (10aa1714, power: Avoid
      automatic logout in GDM/greeter). However, while this prevents the
      action, we may still warn.
      
      Change it so that the corresponding timeouts will never be registered.
      Leave the guard in gnome_session_logout but add a warning as we should
      never be hitting that code path.
      c1f14103
  3. 15 Oct, 2020 1 commit
    • Benjamin Berg's avatar
      power: Avoid automatic logout in GDM/greeter · 10aa1714
      Benjamin Berg authored
      In GDM sessions (greeter, initial-setup), it does not make sense to
      automatically logout. This can happen if the system wide default is
      changed to default to the "logout" action.
      
      Note that we already use the RUNNING_UNDER_GDM environment variable in
      the keyboard plugin currently. So doing this is likely sane, even if we
      probably want a more elegant strategy to detect whether we are in a
      "login" session.
      10aa1714
  4. 10 Oct, 2020 1 commit
    • Jing Wang's avatar
      Fix crashing when atime is not present · 647c0af7
      Jing Wang authored
      Recent changes to gio omit the atime instead of setting it to an out of range value.
      
      Fixes #556, but note this doesn't fix the fact that gio omitted atime on a system where atime should have been available.
      647c0af7
  5. 30 Sep, 2020 1 commit
  6. 15 Sep, 2020 1 commit
  7. 03 Sep, 2020 2 commits
    • Thibault Martin's avatar
      9324d46f
    • Ludovico de Nittis's avatar
      usb-protection: Relax the whitelist to all HIDs and HUBs · c9749af9
      Ludovico de Nittis authored
      We discriminate keyboards when the screen is locked, i.e. we allow them
      so that the user can input their password.
      But when the keyboard is behind a hub, e.g. the laptop on a docking
      station, then the keyboard does not work.
      
      The mouse is probably also commonly used to unlock the screen before
      typing the password.
      
      Because this protection is enabled by default, and we don't want to get
      in the way of the user and their session, with this commit we expand the
      class of allowed devices to all HIDs and HUBs.
      
      Stricter protection features might be evaluated in the future.
      c9749af9
  8. 20 Aug, 2020 1 commit
  9. 18 Aug, 2020 4 commits
  10. 10 Aug, 2020 2 commits
    • Carlos Garnacho's avatar
      wacom: Drop LED helper · 2ff2edeb
      Carlos Garnacho authored
      LED switching on Wacom devices is implemented by the kernel driver since
      v4.9. It is already about 4 years old, it's late enough that we may drop
      this code.
      2ff2edeb
    • Mohammed Sadiq's avatar
      Re-write wwan plugin · 00a872ca
      Mohammed Sadiq authored
      This uses cc-wwan-device.c copied from gnome-control-center without
      any modification.
      
      The following features/fixes are also implemented:
      
      * Handle multiple devices
      * Handle PUK unlocking
      * Close prompt if the device got removed
      * Fix showing the wrong unlock count
      00a872ca
  11. 03 Aug, 2020 1 commit
    • Benjamin Berg's avatar
      meson: Fix masking symlink location and detection of jhbuild · ef7a954c
      Benjamin Berg authored
      The symlinks need to be installed into DESTDIR, use a shell to do this
      correctly. Also, doing this on debug builds is not very helpful,
      instead, do it by testing whether we are installing into the same prefix
      that systemd is coming from.
      
      This assumes that we will run using the same systemd instance as we are
      picking up the pkgconfig file from, but that seems like a reasonable
      assumption (i.e. it is unlikely anyone has systemd in their prefix and
      doesn't bother to set things up correctly).
      ef7a954c
  12. 31 Jul, 2020 19 commits
    • Abderrahim Kitouni's avatar
      plugins: only mask old target names on debug builds · 0d93fef0
      Abderrahim Kitouni authored
      This shouldn't be enabled on distro builds which should use plain buildtype
      0d93fef0
    • Benjamin Berg's avatar
      data: Place g-s-d services into session.slice · 4432493f
      Benjamin Berg authored
      Try to conform to the systemd convention as defined in
      https://systemd.io/DESKTOP_ENVIRONMENTS
      4432493f
    • Benjamin Berg's avatar
      xsettings: Order after x11 services and before X11 services ready flag · c2bc1915
      Benjamin Berg authored
      We need to both reliably shutdown and notify gnome-shell that we are
      ready. The gnome-session-x11-services.target does the first (we order
      ourselves After= to ensure this works) and the -ready.target is our flag
      to tell gnome-shell it may release the X11 socket for clients.
      c2bc1915
    • Benjamin Berg's avatar
      plugins: Mask old target names on non-release builds · e53f0f65
      Benjamin Berg authored
      This means we cannot accidentally start the old targets in case they
      exist on the host system. It is solely useful when using jhbuild to run
      a test session and is disabled on release builds for that reason.
      e53f0f65
    • Benjamin Berg's avatar
      meson: Use reverse domain name for unit names · 6c540d5d
      Benjamin Berg authored
      This means the .desktop and the systemd unit files are named
      consistently.
      6c540d5d
    • Benjamin Berg's avatar
    • Benjamin Berg's avatar
      plugins: Remove old systemd templates · e0dbfa27
      Benjamin Berg authored
      We are now generate all of these from one template, rather than having a
      per-plugin template.
      e0dbfa27
    • Benjamin Berg's avatar
      plugins: Update systemd unit design and generate them · 3acdc124
      Benjamin Berg authored
      Rather than having per-plugin units, generate them from the meson build
      file using a common template.
      
      The unit layout is changed somewhat. The .target file now is solely a
      flag on whether the service is requested for the session type. The
      variosu requirements are all moved into the .service file.
      
      Instead of using an OnFailure and trying to contain the dependency
      errors in a separate unit, we now use ExecStopPost. It seems that the
      current approach has never worked anyway.
      
      The Conflict entries on certain session types are gone now. This is
      instead handled outside of gnome-settings-daemon.
      3acdc124
    • Benjamin Berg's avatar
      meson: Rename plugin_install_wants to plugin_gate_units · f1a08810
      Benjamin Berg authored
      The idea is to generate a gsd-X-gate.target intermediate unit which
      has a requisite on all units listed in plugin_gate_units.
      
      i.e. for most services we are going to have:
       * gsd-X.target: marker on whether services should run in the session
       * gsd-X.service: actual service that is started
      
      This changes for units that should only run under certain conditions
      (e.g. X11 or smartcard). In that case we add
       + gsd-X-gate.target
      which has a proper requisite on all required units and ensures that the
      servie will only start if all dependencies are met. This gate unit is
      primarily needed so that we can still have an OnFailure target in the
      .service file without issues.
      f1a08810
    • Benjamin Berg's avatar
      meson: Re-indent plugins meson file · 478f4fd1
      Benjamin Berg authored
      Some indentation was wrong, and 4 space indentation is overall more
      readable.
      478f4fd1
    • Benjamin Berg's avatar
      plugins: Put description into .desktop file · 2927595d
      Benjamin Berg authored
      It seems sensible to use a more human readable description for the
      .desktop file rather than just the plugin name. Hopefully this is more
      useful to anyone expecting the file.
      2927595d
    • Benjamin Berg's avatar
      meson: Add human readable descriptions for plugins · edadc817
      Benjamin Berg authored
      These can be consumed by the build system to generate nicer
      .desktop/.service/.target files.
      edadc817
    • Benjamin Berg's avatar
      plugins: Use a common templates .desktop files · 8d6f4140
      Benjamin Berg authored
      Currently we have no plugin that uses special flags or similar to start
      only under certain conditions. So just generate all of them from two
      template files rather than shipping seperate templates for each plugin.
      
      The idea here is to handle any possible future difference also during
      generation. This might e.g. be that we again start certain services only
      if a GSettings key is set, which would likely need to be mirrored e.g.
      in the systemd path.
      8d6f4140
    • Benjamin Berg's avatar
      meson: Move stub desktop file generation into plugins loop · b3ef4d0b
      Benjamin Berg authored
      There is no need to have two places for desktop file generation for
      services that can be disabled. Instead, integrate the logic into the
      main plugin loop and simply use a different template file as the input.
      
      To implement this, create a list of disabled modules that can be tested
      to skip the generation of the systemd units and inclusion of the plugin
      directory.
      b3ef4d0b
    • Benjamin Berg's avatar
      dummy: Remove unused systemd service/target file · 7ffe3c65
      Benjamin Berg authored
      These files were never actually used. They purely existed as an example,
      but even that use case is questionable.
      7ffe3c65
    • Benjamin Berg's avatar
      dummy: Remove gsd-dummy binary · 991b70b3
      Benjamin Berg authored
      The binary was only needed for the stub gsd daemons that may not be
      installed. The generated autostart files are not referencing gsd-dummy
      anymore. As such, we can remove the binary completely.
      991b70b3
    • Benjamin Berg's avatar
      dummy: Do not start gsd-dummy for stub desktop files · af8a9583
      Benjamin Berg authored
      We install stub desktop files so that session can pull these in as
      required components. However, for gnome-session to be happy, we do not
      actually need to start a process. It is sufficient to install the
      .desktop file and then disable the service using Hidden=true.
      
      This means we can replace the Exec line with e.g. /bin/false, removing
      the need for the gsd-dummy binary.
      af8a9583
    • Benjamin Berg's avatar
      meson: Handle common directory separately · 4ae4f104
      Benjamin Berg authored
      It is not really worth it to use a loop just to set the log domain using
      the cflags. Explicitly name the common subdirectory rather than
      including it in the plugin loop.
      4ae4f104
    • Benjamin Berg's avatar
      plugins: Stop installing wants symlinks for GNOME session targets · bf4d3934
      Benjamin Berg authored
      With GNOME 3.36 we are going to move the definition about the systemd
      services that should be running to be per-session type. This means we
      need to stop installing those wants entries in g-s-d.
      bf4d3934
  13. 22 Jul, 2020 1 commit
    • Diego Escalante Urrelo's avatar
      power: Clear sleep warning notification · 856d6e5f
      Diego Escalante Urrelo authored
      The sleep warning notification was never dismissed, even when the user
      became active.
      
      A callback to clear the notification was being installed only when
      transitioning away from "normal" (for example, just before going to
      sleep).
      
      This commit also installs said callback right after showing the sleep
      warning notification. Now, if the user becomes active before sleep takes
      effect, the notification will be dismissed automatically.
      856d6e5f
  14. 14 Jul, 2020 2 commits
    • Kyle Hofmann's avatar
      power: Ambient light moving average now time-aware · bbdef3f8
      Kyle Hofmann authored
      The readings from the ambient light sensor were being filtered using an
      exponential moving average (equivalently, a first-order low pass
      filter), but the average did not account for the time since the previous
      reading.  Now the power manager records the time of the last reading,
      making the brightness adjustments more even.
      bbdef3f8
    • Kyle Hofmann's avatar
      power: Only install callback once · d6bb63fd
      Kyle Hofmann authored
      A mode change to normal causes iio_proxy_claim_light() to be called with
      active set to TRUE.  This connects iio_proxy_changed_cb() even if the
      previous mode was dim and the callback was already connected.  This
      caused the callback to be triggered multiple times on each change of the
      ambient light sensor.  With this patch, calls to iio_proxy_claim_light()
      always remove the callback first, and if active is TRUE they add it
      back.
      d6bb63fd
  15. 13 Jul, 2020 2 commits
    • Benjamin Berg's avatar
      media-keys: Avoid use of g_clear_slist · c3b841fb
      Benjamin Berg authored
      It is only available with GLib 2.64 and newer. That is quite recent, so
      simply avoid it.
      c3b841fb
    • Hans de Goede's avatar
      xsettings: Fix build error due to missing gnome-settings-bus.h include · a2e1f284
      Hans de Goede authored
      The gsd-xsettings-manager.c code uses gnome_settings_is_wayland() which
      is declared in gnome-settings-bus.h, add this to the includes.
      
      This fixes the following build-error for me:
      
      ../plugins/xsettings/gsd-xsettings-manager.c: In function ‘gsd_xsettings_manager_start’:
      ../plugins/xsettings/gsd-xsettings-manager.c:1396:13: error: implicit declaration of function ‘gnome_settings_is_wayland’ [-Werror=implicit-function-declaratio]
       1396 |         if (gnome_settings_is_wayland ())
            |             ^~~~~~~~~~~~~~~~~~~~~~~~~
      cc1: some warnings being treated as errors
      a2e1f284