aboutsummaryrefslogtreecommitdiff
path: root/backend/session
AgeCommit message (Collapse)Author
2019-03-05backend/session: open TTY with O_CLOEXEC for direct sessionemersion
2019-03-02backend/session: add noop sessionemersion
This is the first step towards being able to run via DRM leasing and on render nodes. Test with: export WLR_BACKENDS=drm export WLR_SESSION=noop export WLR_DRM_DEVICES=/dev/dri/renderD128
2019-03-01meson: enable more compiler warningsemersion
2019-02-03Allow compositors to run as systemd user unitsmnussbaum
When a wlroots compositor runs as a systemd user unit there is no session associated with the compositor process. Instead we need to attach to an active and graphical user session. This change first looks for an available session for the process, and if there isn't one falls back to display in the oldest available graphical session. This work was modeled after a similar change to mutter - https://gitlab.gnome.org/GNOME/mutter/merge_requests/150.
2019-01-31backend/session/logind: dup FD with CLOEXECemersion
2019-01-07Simplify evdev includes on FreeBSD by relying on up-to-date packageJan Beich
As evdev-proto is installed by CI some files have been missed: ../examples/pointer-constraints.c:2:10: fatal error: 'linux/input-event-codes.h' file not found #include <linux/input-event-codes.h> ^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../examples/relative-pointer-unstable-v1.c:5:10: fatal error: 'linux/input-event-codes.h' file not found #include <linux/input-event-codes.h> ^~~~~~~~~~~~~~~~~~~~~~~~~~~
2018-12-06backend/session/logind: improve loggingemersion
2018-11-12Use #if instead of #ifdef for wlroots config dataemersion
This prevents some annoying issues when e.g. not including wlr/config.h or making a typo in the guard name.
2018-10-04Use sd_bus_get_property_trivial & remove numberingnyorain
2018-09-24Rework session handlingnyorain
Sessions can now be retrieved from a backend in a more general manner. Multi-backend gets back its `session` field that contains the session if one was created, removing the interfacing from multi backend with the drm backend directly. This adds the possibility to use sessions even without the drm backend. It additionally fixes the bug that 2 session objects got created when WLR_BACKENDS were set to "libinput,drm". To allow vt switching without drm backend (and drm fd) on logind, start listening to PropertiesChanged signals from dbus and parse the session "Active" property when no master fd was created (this does not change current drm backend behaviour in any way).
2018-09-21Apply multiseat fixes to FreeBSD direct backendsghctoma
This commit applies the multiseat fixes that are part of PR #1063 ( commits 964e0a50 and 47895d2) to the FreeBSD direct backend.
2018-09-18backend/session: add assertionsemersion
2018-09-18Add support for WLR_SESSION env variablerandom human
Valid values are "logind"/"systemd" and "direct". If WLR_SESSION is set, only its value is potentially tried; it will not try any other option.
2018-09-07Fix build failure on non-FreeBSD systemssghctoma
Accidentally included the FreeBSD-specific dev/evdev/input.h file on other systems too. This commit fixes that.
2018-09-07Implement device type discovery using ioctl callssghctoma
This commit implements device type discovery by calling two ioctls (DRM_IOCTL_VERSION and EVIOCGVERSION) on the device. These iocts are specific to drm and input devices respectively, therefore we can determine the device type based on which one returns an error.
2018-09-02Activate last active VT after compositor exitsghctoma
The VT the compositor was started from was not activated after exiting the compositor, which resulted in arriving on a blank VT. This commit fixes that by introducing a new field in direct_session struct that stores the last active VT so that it can be activated in direct_session_destroy.
2018-08-30Fix that major(st_rdev) have no meaning on FreeBSDsghctoma
The major device number does not indicate the device type on FreeBSD, and AFAIK the only way to differentiate between DRM, input, and other devices is checking the fd path. This commit implements that. The drmDropmaster and drmSetmaster calls are necessary, because the implicit drop (that should occur when the DRM fd is closed) seems not to be working in some scenarios (e.g. if you have a tmux session running - maybe the fd is retained somehow by tmux?). This is a problem, because once you exit the compositor, you can't start it (or any other program that wants to be DRM master) again until you close all your tmux sessions.
2018-08-27Init the new destroy signals added by #1200Alexander Bakker
2018-08-26Add destroy signals to types that are destroyed by wl_display_destroyAlexander Bakker
2018-08-08session: load GPU devices even if they have zero crtcs/connectors/encodersIlia Bozhinov
On some systems (most notably laptops with two GPUs) there are GPUs that don't have attached outputs. However, we still want to load those GPUs because they could still be used by the compositor for rendering.
2018-07-21Revert "Merge pull request #1153 from emersion/include-config"Drew DeVault
This reverts commit ef0a6ea4d2934ec014d791150c42348061ec4f7f, reversing changes made to 8d03bc9178d8544cbcd24293ece6ac9f1698e602.
2018-07-21Always include config.hemersion
2018-07-09util: add wlr_ prefix to log symbolsemersion
2018-07-01Close fd's obtained from logindVincent Vanlaer
2018-06-30direct session backend: fix closing -1 on errorDominique Martinet
Found through static analysis
2018-06-20FIX: Suprocess loops endlessly when the control socket closes.Tobias Blass
recvmsg(3) returns 0 if the connection partner has shut down its socket. The communicate function considered 0 a successful message, though, and keeps calling recvmsg(3) again and again.
2018-06-14Check for seat0 properlyScott Anderson
2018-06-14Multiseat fixesScott Anderson
2018-02-19Revert "ELF Visibility"Drew DeVault
2018-02-19Explicitly export EFL symbolsScott Anderson
2018-02-12Reformat all #include directivesemersion
2018-02-12Make wlr_signal_emit_safe privateemersion
2018-02-12Add wlr_signal_emit_safeemersion
2018-01-21style: add comment to empty while loop in logind.cJohannes Schramm
2018-01-21style: include brackets for if/while/for, even if it's a single statementJohannes Schramm
2018-01-02fix build without systemdPoroCYon
2017-12-27config: Avoid clash with other config-headersBjörn Esser
2017-12-26config: Put all defines into config.hBjörn Esser
2017-12-08Listen to display destroy in sessionemersion
It's not the backend's responsibility to destroy the session anymore.
2017-12-02Fix style and string comparisonn3rdopolis
2017-12-02Attempt to fix #454n3rdopolis
With logind, only seat0 can use TTYs
2017-11-22Use SIGUSR2 for vt switching instead of SIGUSR1Greg V
Xwayland uses SIGUSR1 to signal readiness. With direct(-freebsd) session and Xwayland, wlroots was confusing the Xwayland readiness signal with a vt switch signal, freezing the desktop. Same problem was found in Weston in 2014: https://phabricator.freedesktop.org/T7080
2017-11-16Fix a bunch of mistakes detected with scan-buildemersion
2017-11-11Fix typosStefano Ragni
2017-11-10Remove VLA from session.hEric Molitor
VLAs are optional C11 features and not supported by C++.
2017-10-11Add FreeBSD compatibilityGreg V
2017-10-02Check for fd failure properlyScott Anderson
2017-10-02Add explicitly picking GPUs with environment varScott Anderson
2017-10-01Change wlr_session to open every GPUScott Anderson
2017-09-22Add elogind supportdudemanguy
Resolves SirCmpwn/wlroots#146