1. 11 Dec, 2020 1 commit
    • Aleix Pol Gonzalez's avatar
      --warning · 2c6bfdf0
      Aleix Pol Gonzalez authored
      Set -DLIBINPUT_HAS_TOTEM per file rather than per target so that all
      targets that build it have the define.
      This particular file is also used by some tests and this fixes the
      warning that this ifdef resolves at once for all targets.
  2. 10 Dec, 2020 1 commit
    • Vlad Zahorodnii's avatar
      Prevent EGL headers from including Xlib headers · 6b2e6cfd
      Vlad Zahorodnii authored
      One of the annoying things about EGL headers is that they include
      platform headers by default, e.g. on X11, it's Xlib.h, etc.
      The problem with Xlib.h is that it uses the define compiler directive to
      declare constants and those constants have very generic names, e.g.
      'None', which typically conflict with enums, etc.
      In order to work around bad things coming from Xlib.h, we include
      fixx11.h file that contains some workarounds to redefine some Xlib's
      There's a flag or rather two flags (EGL_NO_PLATFORM_SPECIFIC_TYPES and
      EGL_NO_X11) that are cross-vendor and they can be used to prevent EGL
      headers from including platform specific headers, such as Xlib.h [1]
      The benefit of setting those two flags is that you can simply include
      EGL/egl.h or epoxy/egl.h and the world won't explode due to Xlib.h
      MESA_EGL_NO_X11_HEADERS is set to support older versions of Mesa.
      [1] https://github.com/KhronosGroup/EGL-Registry/pull/111
  3. 27 Nov, 2020 1 commit
    • Vlad Zahorodnii's avatar
      Convert Night Color into a plugin · bdfb9462
      Vlad Zahorodnii authored
      Night Color adjusts the color temperature based on the current time in
      your location. It's not a generic color correction module per se.
      We need a central component that can be used by both night color and
      colord integration to tweak gamma ramps and which will be able to
      resolve conflicts between the two. The Night Color manager cannot be
      such a thing because of its very specific usecase.
      This change converts Night Color into a plugin to prepare some space for
      such a component.
      The tricky part is that the dbus api of Night Color has "ColorCorrect"
      in its name. I'm afraid we cannot do that much about it without breaking
      API compatibility.
  4. 25 Nov, 2020 1 commit
    • Vlad Zahorodnii's avatar
      Turn krunner integration into a plugin · 8f6edea5
      Vlad Zahorodnii authored
      krunner stuff doesn't really belong in kwin, it has nothing to do with
      compositing or any other things that are the domain of compositors.
      Given that, being as a plugin suits the krunner integration stuff best.
  5. 24 Nov, 2020 2 commits
    • Vlad Zahorodnii's avatar
      Introduce colord integration · f037a69f
      Vlad Zahorodnii authored
      This change introduces basic colord integration in wayland session. It
      is implemented as a binary plugin.
      If an output is connected, the plugin will create the corresponding
      colord device using the D-Bus API and start monitoring the device for
      When a colord devices changes, the plugin will read the VCGT tag of the
      current ICC color profile and apply it.
    • Vlad Zahorodnii's avatar
      Introduce infrastructure for compositor extensions · c766e5da
      Vlad Zahorodnii authored
      The scripting api is not suitable for implementing all features that
      should not be implemented in libkwin. For example, the krunner
      integration or screencasting are the things that don't belong to be
      compiled right into kwin and yet we don't have any other choice.
      This change introduces a quick and dirty plugin infrastructure that
      can be used to implement things such as colord integration, krunner
      integration, etc.
  6. 23 Nov, 2020 4 commits
  7. 22 Nov, 2020 1 commit
    • David Edmundson's avatar
      Bundle QPA plugin directly · 5e60e64a
      David Edmundson authored
      On wayland, we know we're always going to load our internal QPA. Instead
      of shipping a plugin and loading it dynamically we can use Qt static
      This should result in slightly faster load times, but also reduce the
      number of moving pieces for kwin.
      This also prevents anyone outside kwin loading our QPA which wouldn't
      have made any sense and just crashed.
  8. 30 Oct, 2020 1 commit
    • Benjamin Port's avatar
      Add windows runner · cf4335ca
      Benjamin Port authored
      Move windows runner from plasma-workspace to kwin (convert it to dbus runner)
      This will allow to interract with windows on wayland too
  9. 19 Oct, 2020 1 commit
    • Vlad Zahorodnii's avatar
      screencast: Use fences to avoid stalling the graphics pipeline · 9c20df50
      Vlad Zahorodnii authored
      Currently, we use glFinish() to ensure that stream consumers don't see
      corrupted or rather incomplete buffers. This is a serious issue because
      glFinish() not only prevents the gpu from processing new GL commands,
      but it also blocks the compositor.
      This change addresses the blocking issue by using native fences. With
      the proposed change, after finishing recording a frame, a fence is
      inserted in the command stream. When the native fence is signaled, the
      pending pipewire buffer will be enqueued.
      If the EGL_ANDROID_native_fence_sync extension is not supported, we'll
      fall back to using glFinish().
  10. 15 Oct, 2020 1 commit
  11. 07 Oct, 2020 1 commit
  12. 30 Sep, 2020 1 commit
  13. 29 Sep, 2020 1 commit
    • Bhushan Shah's avatar
      virtualkeyboard: rename class to InputMethod · 222b558b
      Bhushan Shah authored
      VirtualKeyboard class does not implement the relevant VirtualKeyboard
      protocol but rather implements the InputMethod protcol and can in theory
      be used by other input method like e.g. ibus.
      Make class name consistent with what it does to avoid confusion in
      For now only rename of main class is done and dbus service is kept as-is
      to provide retro-compatibility, when input method protocol is
      implemented fully, we can think of what to do wrt the dbus interface
      later when we fully implement zwp_input_method_unstable_v1 protocol.
  14. 28 Sep, 2020 1 commit
  15. 21 Sep, 2020 1 commit
  16. 17 Sep, 2020 3 commits
  17. 16 Sep, 2020 1 commit
  18. 04 Sep, 2020 2 commits
  19. 03 Sep, 2020 1 commit
    • Vlad Zahorodnii's avatar
      Implement the layer-shell v1 protocol · d3cca65d
      Vlad Zahorodnii authored
      The layer-shell protocol allows wayland clients to create surfaces that
      can be used for building desktop environment components such as panels,
      notifications, etc.
      The support for the plasma-shell protocol will be dropped once plasma in
      all its entirety is ported to the layer-shell protocol.
  20. 02 Sep, 2020 3 commits
  21. 01 Sep, 2020 1 commit
    • Marco Martin's avatar
      Fix size restore upon keyboard close in XdgSurfaceClient · 97f4712f
      Marco Martin authored
      in XdgSurfaceClient setFrameGeometry is async,
      so we can't rely on it having the final value immediately.
      make setVirtualKeyboardGeometry a virtual.
      in the implementation on setVirtualKeyboardGeometry
      use requestedFrameGeometry() instead of frameGeometry()
  22. 18 Aug, 2020 1 commit
  23. 05 Aug, 2020 1 commit
    • Vlad Zahorodnii's avatar
      Lower message severity for KWIN_XWL · 5aef9da8
      Vlad Zahorodnii authored
      When the Xwayland process crashes, we will print a warning message, but
      that warning message won't show up anywhere in the terminal because the
      current message severity for KWIN_XWL is way too high.
      This patch lowers the message severity for the KWIN_XWL logging category
      so warning messages can be seen from the terminal.
  24. 30 Jul, 2020 1 commit
  25. 28 Jul, 2020 1 commit
  26. 23 Jul, 2020 2 commits
  27. 23 Jun, 2020 1 commit
  28. 18 Jun, 2020 1 commit
    • Vlad Zahorodnii's avatar
      [wayland] Rework Xcursor theme loading code · cb7a9456
      Vlad Zahorodnii authored
      Currently in order to load an Xcursor theme, kwin uses libwayland api,
      which looks really awkward because of the way how the compositor talks
      to itself via the internal connection.
      The main motivation behind this change is to limit the usage of kwayland
      client api in kwin.
  29. 16 Jun, 2020 1 commit
  30. 05 Jun, 2020 1 commit
    • Adriaan de Groot's avatar
      Handle differences in paths for Linux vs FreeBSD · fcba2780
      Adriaan de Groot authored
      - The name of tty devices is different; put detection into
        the CMakeLists and pass that as a define when building
        virtual_terminal.cpp -- this means no ifdeffery for the path.
      - The name of dri devices is different; FreeBSD just has one.