Git Product home page Git Product logo

exwm's People

Contributors

bryal avatar ch11ng avatar daviwil avatar djeis97 avatar eggert avatar fjl avatar ieure avatar kamikazow avatar kriyative avatar mattbeshara avatar medranocalvo avatar mgi avatar minad avatar monnier avatar nbarrientos avatar pipcet avatar rational-curiosity avatar stebalien avatar tumashu avatar uemurax avatar vedvyas avatar walseb avatar wgreenhouse avatar wjcferguson avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

exwm's Issues

display-time only appears on focused frame (Multi-monitor setup)

The title pretty much explains it all, I don't want to use polybar or what have you, so I wanted to make the mode-line display some more info. That led me to enabling display-time, which only applies to the currently focused monitor. Config below:

(defun exwm-config ()
  "Default momomacs configuration of EXWM."
  ;; Set the initial workspace number.
  (unless (get 'exwm-workspace-number 'saved-value)
    (setq exwm-workspace-number 10))
  ;; Make class name the buffer name
  (add-hook 'exwm-update-class-hook
            (lambda ()
              (exwm-workspace-rename-buffer exwm-class-name)))
  ;; Global keybindings.
  (unless (get 'exwm-input-global-keys 'saved-value)
    (setq exwm-input-global-keys
          `(
            ;; 's-r': Reset (to line-mode).
            ([?\s-r] . exwm-reset)
            ;; 's-w': Switch workspace.
            ([?\s-w] . exwm-workspace-switch)
            ;; 's-&': Launch application.
            ([?\s-&] . momo/run-application)
            ;; 's-N': Switch to certain workspace.
            ,@(mapcar (lambda (i)
                        `(,(kbd (format "s-%d" i)) .
                          (lambda ()
                            (interactive)
                            (exwm-workspace-switch-create ,i))))
                      (number-sequence 0 9)))))
  ;; Line-editing shortcuts
  ;; (unless (get 'exwm-input-simulation-keys 'saved-value)
  ;;   (setq exwm-input-simulation-keys
  ;;         '(([?\C-b] . [left])
  ;;           ([?\C-f] . [right])
  ;;           ([?\C-p] . [up])
  ;;           ([?\C-n] . [down])
  ;;           ([?\C-a] . [home])
  ;;           ([?\C-e] . [end])
  ;;           ([?\M-v] . [prior])
  ;;           ([?\C-v] . [next])
  ;;           ([?\C-d] . [delete])
  ;;           ([?\C-k] . [S-end delete]))))

  ;; Nice stuff
  (setq display-time-default-load-average nil)
  (display-time)

  (setq exwm-workspace-warp-cursor t)

  (setq mouse-autoselect-window t
      focus-follows-mouse t)
  
  ;; Enable EXWM
  (exwm-enable))

(exwm-config)

;; No need to set window config, done in momo.el
(require 'exwm-randr)
(add-hook 'exwm-randr-screen-change-hook
          (lambda ()
            (start-process-shell-command
             "xrandr" nil "xrandr --output HDMI-A-4 --set TearFree on --left-of DisplayPort-2 --set TearFree on --auto")))
(exwm-randr-enable)

;; Advise packages that use posframe for a multi-head setup

(defun get-focused-monitor-geometry ()
  "Get the geometry of the monitor displaying the selected frame in EXWM."
  (let* ((monitor-attrs (frame-monitor-attributes))
         (workarea (assoc 'workarea monitor-attrs))
         (geometry (cdr workarea)))
    (list (nth 0 geometry) ; X
          (nth 1 geometry) ; Y
          (nth 2 geometry) ; Width
          (nth 3 geometry) ; Height
          )))

(defun advise-corfu-make-frame-with-monitor-awareness (orig-fun frame x y width height buffer)
  "Advise `corfu--make-frame` to be monitor-aware, adjusting X and Y according to the focused monitor."

  ;; Get the geometry of the currently focused monitor
  (let* ((monitor-geometry (get-focused-monitor-geometry))
         (monitor-x (nth 0 monitor-geometry))
         (monitor-y (nth 1 monitor-geometry))
         ;; You may want to adjust the logic below if you have specific preferences
         ;; on where on the monitor the posframe should appear.
         ;; Currently, it places the posframe at its intended X and Y, but ensures
         ;; it's within the bounds of the focused monitor.
         (new-x (+ monitor-x x))
         (new-y (+ monitor-y y)))

    ;; Call the original function with potentially adjusted coordinates
    (funcall orig-fun frame new-x new-y width height buffer)))


(advice-add 'corfu--make-frame :around #'advise-corfu-make-frame-with-monitor-awareness)

(defun advise-vertico-posframe-show-with-monitor-awareness (orig-fun buffer window-point &rest args)
  "Advise `vertico-posframe--show` to position the posframe according to the focused monitor."

  ;; Extract the focused monitor's geometry
  (let* ((monitor-geometry (get-focused-monitor-geometry))
         (monitor-x (nth 0 monitor-geometry))
         (monitor-y (nth 1 monitor-geometry)))

    ;; Override poshandler buffer-local variable to use monitor-aware positioning
    (let ((vertico-posframe-poshandler
           (lambda (info)
             (let* ((parent-frame-width (plist-get info :parent-frame-width))
                    (parent-frame-height (plist-get info :parent-frame-height))
                    (posframe-width (plist-get info :posframe-width))
                    (posframe-height (plist-get info :posframe-height))
                    ;; Calculate center position on the focused monitor
                    (x (+ monitor-x (/ (- parent-frame-width posframe-width) 2)))
                    (y (+ monitor-y (/ (- parent-frame-height posframe-height) 2))))
               (cons x y)))))

      ;; Call the original function with potentially adjusted poshandler
      (apply orig-fun buffer window-point args))))

(advice-add 'vertico-posframe--show :around #'advise-vertico-posframe-show-with-monitor-awareness)

Support pgtk?

There was a bug in the old repo about extending EXWM to support pgtk build. ch11ng/exwm#860. Does the plan still exist now? Personally I found the pgtk branch snappier, also it's the only one that --with-xwidget works currently (which is the reason why I'm using that branch).

From the discussion in the old bug looks like no technical limitation preventing EXWM to work with pgtk, so I'm looking forward to see it works on pgtk. Thanks.

Mini frame garbled

When I use mini frame inside EXWM, it appears garbled, I have attached a screenshot.

2024-03-02-001629_1920x1080_scrot

Split window X application windows

The issue I have currently is that when running my interactive function to split a window and then switch to the other window it seems to flip the buffers and keep the focus on the original X window.

The function doesn't do anything crazy, its just does what I would normally do with 2 keybindings but in one. The funny thing is if I run these two commands using M-x split-window-* RET and M-x other-window RET it works how you would expect it.

Also other function such as 'find-file-other-window' work fine when focused on an X Application.

(defun split-window-right-and-focus ()
  (interactive)
  (split-window-right)
  (other-window 1))

I've used other split window function in place but all seem to have the same issue.

(F) = user focus

+-------------------+                                      +-------------------+
|                   |                                      |        |          |
|         (F)       |                                      |        |    (F)   |
|     x window      | --> Split-window-right-and-focus --> | buffer | x window |
|                   |                                      |        |          |
|                   |                                      |        |          |
+-------------------+                                      +-------------------+

Understandably you cant have two windows of the same X application but the movement of the window should be the same as any other buffer?

Currently I've fixed this 'issue' my amending the function to check the major mode an act accordingly. Annoyingly I have to now switch to the other window myself, oh the horror!.

(defun split-window-right-and-focus ()
  (interactive)
    (if (string-equal major-mode "exwm-mode")
        (split-window-right)
      (split-window-right)
      (other-window 1)))

Keyboard problems with Libreoffice

Hi. I am using exwm from melpa unstable, and the latest Libreoffice version in Debian Sid.

Since a couple months ago, opening documents in Libreoffice's Writer ends up blocking the keyboard in EXWM, sometimes to the point only the mouse works on any Emacs window. In those situations, exiting LO and clicking a couple of times in different emacs windows seems to restore reception of keyboard events, but a couple of times it was actually impossible. Other times the keyboard is not stolen everywhere, but only in the Writer's window, where trying any key gives rise to an error saying that the buffer is read-only, as if keystrokes were not being relayed to the X app.

Usually, the quickest way of triggering the problem is launching LibreOffice's Writer and pressing C-o to open a document: the non-writeable error is thrown and the keyboard stops working. Other times that works, but moving around a document, switching windows in Emacs and possibly opening other dialogs in LO eventually leads to the same problems.

As mentioned, this started happening a couple of months ago, after a long time of using LO in EXWM without any issue and no significant changes to my emacs config that I can remember. It's a bit complicated to remove that config of the equation, but I'll eventually get there. In the meantime, I thought I'd ask here in case anyone else has noticed similar problems.

Thanks!

exwm-xim issues

I can't figure out what's wrong with exwm-xim: after enabling it doesn't work at all in qt apps, and causes random freezes on key press in GTK apps, I tried to collect a trace after pressing a key:

        9210  70% - xcb:-connection-filter
        9208  70%  - xcb:-process-events
        9208  70%   - apply
        9205  70%    - #<compiled -0x5404a03a9d5b3a3>
        9151  69%     - exwm-xim--on-ClientMessage
        6421  49%      - exwm-xim--on-request
        6036  46%       - exwm-xim--handle-forward-event-request
        4774  36%        - exwm-xim--make-request
        2298  17%         - exwm--intern-atom
        1727  13%          - xcb:-+reply
        1727  13%           - apply
        1711  13%            - #<compiled 0x19a7cc8d7ca81a95>
         513   3%             - xcb:-process-events
         511   3%              - apply
         495   3%               - #<compiled -0x5404a03a9d5b3a3>
         348   2%                + exwm--on-PropertyNotify
          45   0%                + slot-value
          21   0%                + eieio-oset
          18   0%                + #<compiled 0x1bfc343501b5b7d7>
           1   0%                + exwm-input--on-KeyPress
         219   1%             + accept-process-output
         214   1%             + xcb:flush
         202   1%             + xcb:unmarshal
          68   0%             + slot-value
          56   0%             + make-instance
          47   0%             + run-with-timer
          43   0%             + eieio-oref
          34   0%             + #<compiled 0x1bfc343501746c97>
           9   0%             + eieio-oset
           5   0%             + #<compiled 0x1e1cf2ecdf0e9d2>
         469   3%          + xcb:-+request-unchecked
          88   0%          + make-instance
           7   0%          + slot-value
        1136   8%         + xcb:-+request
         881   6%         + xcb:marshal
         443   3%         + make-instance
         527   4%        + xcb:unmarshal
         216   1%        + xcb:keysyms:keycode->keysym
         211   1%        + make-instance
         145   1%        + xcb:flush
         108   0%        + slot-value
          14   0%        + eieio-oset
           7   0%        + xcb:keysyms:keysym->event
         285   2%       + xcb:unmarshal
          64   0%       + make-instance
        1305   9%      + xcb:-+reply
         721   5%      + xcb:unmarshal
         391   2%      + xcb:-+request-unchecked
         203   1%      + make-instance
          87   0%      + slot-value
          21   0%     + slot-value
          11   0%     + eieio-oset
           8   0%     + exwm--on-PropertyNotify
           3   0%     + exwm-input--on-ButtonPress
           1   0%     + exwm-randr--on-ConfigureNotify
           1   0%       exwm--on-ClientMessage
           2   0%  + eieio-oset

So emacs freezes for several seconds after any key pressed, though the right character is printed in the end.
As for qt apps - input method just doesn't affect them.
Where should I look for the root cause?

Set default directory to match process

I've configured EXWM to set the default directory of an X window to the processes default directory and I'm wondering if others would find this behavior useful/desirable. Specifically:

(add-hook 'exwm-manage-finish (lambda ()
  (when-let* ((id (exwm--buffer->id (current-buffer)))
              (response (xcb:+request-unchecked+reply exwm--connection
                            (make-instance 'xcb:ewmh:get-_NET_WM_PID :window id)))
              (pid (slot-value response 'value))
              (cwd (file-chase-links (format "/proc/%d/cwd" pid) 1)))
    (setq default-directory (if (file-accessible-directory-p cwd)
                                (file-name-as-directory cwd)
                              user-home-directory)))))

Of course, this won't keep the default-directory in-sync with the X window, but that usually only matters for shells. I have another script to update the default directory as it changes (and intend to add this to either the wiki or some form of contrib directory).

Elisp:
(defun exwm-set-window-directory (wid dd)
  (when-let ((buf (exwm--id->buffer wid)))
    (with-current-buffer buf (setq default-directory dd))))

Zsh:

if [[ -n "$INSIDE_EMACS" ]] && [[ -n "$EXWM" ]] && [[ -n "$WINDOWID" ]]; then
    __exwm_chpwd() {
        # Only apply directory changes in the root shell.
        [[ "$ZSH_SUBSHELL" -eq 0 ]] || return
        # Emacsclient sets the 'default-directory' to the caller's CWD, so
        # this always works and saves us from having to pass it in (and escape
        # it).
        emacsclient -e "(exwm-set-window-directory $WINDOWID default-directory)" \
                    > /dev/null
    }
    __exwm_chpwd
    chpwd_functions+=(__exwm_chpwd)
fi

(where $WINDOWID is set by my terminal and I set $EXWM myself).

Black and inaccessible floating windows

It happens to me once in a while that EXWM starts to fail to properly show floating windows (e.g. file save dialog). These then appear as black boxes (in the size of the dialog that's supposed to be there).
There is no way to interact with these dialogs (so I can also not make them tiling again), but I can kill the buffer, which makes them disappear (and also unfreeze the associated X application).

Unfortunately, once this happens the first time, emacs is "locked" in a state, in which this always happens to floating windows, so I need to restart Emacs to fix it.

Can I provide any debug information to pinpoint the issue?

Using :hook or :requires with use-package causes EXWM to not load properly

I'm running the latest version of Emacs and EXWM on Arch Linux. I've tried two methods of adding hooks inside of a use-package form. The first is as follows:

(require 'exwm-floating)
(require 'exwm-manage)
(require 'exwm-randr)

(add-hook 'exwm-floating-setup-hook
          'exwm-layout-hide-mode-line)  
(add-hook 'exwm-manage-finish-hook
          'exwm-configure-window)  
(add-hook 'exwm-update-class-hook
          #'(lambda ()
              (exwm-workspace-rename-buffer exwm-class-name)))
(add-hook 'exwm-update-title-hook
          #'(lambda ()
              (exwm-workspace-rename-buffer exwm-title)))

This works as expected, but if I try to use use-package's :hook or :requires optionals then EXWM fails to load:

:requires
(exwm-floating exwm-manage exwm-randr)
:hook
(exwm-floating-setup . exwm-layout-hide-mode-line)
(exwm-manage-finish . exwm.configure-window)
(exwm-update-class . (lambda ()
                      (exwm-workspace-rename-buffer exwm-class-name)))
(exwm-update-title . (lambda ()
                      (exwm-workspace-rename-buffer exwm-title)))

Having read the documents on use-package, I expected the aforementioned to work. Is this an issue with EXWM or the way that I'm trying to implement the code?

Modifications to the wiki

As mentioned in the #20 I am keen to help by adding additional information to the wiki. As summer is coming up i will have some free time to spend contributing. I am however unable to make changes. Is there a mailing list for patches or is there a maintainer list? I have some changes I've done on a working copy of the wiki ready to go. Thanks in advance!

Function exwm-layout-unset-fullscreen cannot be used to unset a non-selected window

I have a use-case for wanting to ensure that a given window is not in fullscreen mode before running some code on it, and was hoping it would be as easy as getting the X window id and feeding it to exwm-layout-unset-fullscreen before running my code. However, the function exits early in this block of code:

(unless (and (or id (derived-mode-p 'exwm-mode))
               (exwm-layout--fullscreen-p))
    (cl-return-from exwm-layout-unset-fullscreen))

The second line, as far as I can tell, checks to see that specifically the current window is fullscreen, however this may not be the case when supplying an x-id to the function. Removing the line allows for the functionality I was looking for, however, I'm not sure if it introduces any unintended behaviour, so maybe another solution may be more preferable.
I'm curious about whether the condition in the second line is actually necessary. My assumption would be that running the rest of the code on a window which is not in fullscreen mode would simply have no effect, but I could easily be wrong about that.

Window losing focus with `evil-mode`

Hi. I haven't used EXWM for a few months, but when I used it, the biggest issue for me was EXWM windows randomly losing focus. This seemed to be much worse when using evil-mode with EXWM.

How to bind function key in exwm-input-global-keys

Hi, I am trying to bind f12 to an application in exwm-input-global-keys, the reason I am not just using keymap-set is because I need the key to also work in X windows, keymap-set did not work in X windows, but keys in exwm-input-global-keys still work in X windows.

I have tried [?<f12>] [f12] "f12" [\<f12\>] and none of those work.

Thanks

Update broke exwm-xim and windows focusing

I'm using arch, and while, exwm works, when exwm-xim is activated, I can't write anything, and windows (chomium browsers mainily) are not focusing when changing workspace.
I tried with emacs 29.2 and 29.3, but it fails in both.

[2024-03-30T14:08:47-0300] [ALPM] upgraded libsysprof-capture (45.2-1 -> 46.0-1)
[2024-03-30T14:08:47-0300] [ALPM] upgraded util-linux-libs (2.39.3-2 -> 2.40-1)
[2024-03-30T14:08:47-0300] [ALPM] upgraded glib2 (2.78.4-1 -> 2.80.0-2)
[2024-03-30T14:08:47-0300] [ALPM] upgraded adwaita-cursors (45.0-1 -> 46.0-1)
[2024-03-30T14:08:47-0300] [ALPM] upgraded harfbuzz (8.3.1-1 -> 8.4.0-1)
[2024-03-30T14:08:47-0300] [ALPM] upgraded xz (5.6.1-1 -> 5.6.1-2)
[2024-03-30T14:08:47-0300] [ALPM] upgraded xorgproto (2023.2-1 -> 2024.1-1)
[2024-03-30T14:08:47-0300] [ALPM] upgraded libx11 (1.8.7-1 -> 1.8.8-2)
[2024-03-30T14:08:47-0300] [ALPM] upgraded librsvg (2:2.57.3-1 -> 2:2.58.0-1)
[2024-03-30T14:08:47-0300] [ALPM] upgraded gtk-update-icon-cache (1:4.12.5-1 -> 1:4.14.1-1)
[2024-03-30T14:08:47-0300] [ALPM] upgraded adwaita-icon-theme (45.0-1 -> 46.0-1)
[2024-03-30T14:08:48-0300] [ALPM] upgraded libxkbcommon (1.6.0-1 -> 1.7.0-1)
[2024-03-30T14:08:48-0300] [ALPM] upgraded gsettings-desktop-schemas (45.0-1 -> 46.0-1)
[2024-03-30T14:08:48-0300] [ALPM] upgraded coreutils (9.4-3 -> 9.5-1)
[2024-03-30T14:08:48-0300] [ALPM] upgraded shadow (4.15.0-1 -> 4.15.1-1)
[2024-03-30T14:08:48-0300] [ALPM] upgraded util-linux (2.39.3-2 -> 2.40-1)
[2024-03-30T14:08:48-0300] [ALPM] upgraded curl (8.6.0-3 -> 8.7.1-3)
[2024-03-30T14:08:48-0300] [ALPM] upgraded at-spi2-core (2.50.2-1 -> 2.52.0-1)
[2024-03-30T14:08:48-0300] [ALPM] upgraded libcloudproviders (0.3.5-1 -> 0.3.6-1)
[2024-03-30T14:08:48-0300] [ALPM] upgraded glib-networking (1:2.78.1-1 -> 1:2.80.0-1)
[2024-03-30T14:08:48-0300] [ALPM] upgraded tracker3 (3.6.0-3 -> 3.7.1-1)
[2024-03-30T14:08:48-0300] [ALPM] upgraded libpciaccess (0.18-1 -> 0.18.1-1)
[2024-03-30T14:08:48-0300] [ALPM] upgraded mesa (1:24.0.3-1 -> 1:24.0.3-2)
[2024-03-30T14:08:49-0300] [ALPM] upgraded abseil-cpp (20230802.1-1 -> 20240116.1-1)
[2024-03-30T14:08:49-0300] [ALPM] upgraded libxkbcommon-x11 (1.6.0-1 -> 1.7.0-1)
[2024-03-30T14:08:49-0300] [ALPM] upgraded alacritty (0.13.1-1 -> 0.13.2-1)
[2024-03-30T14:08:49-0300] [ALPM] upgraded alsa-card-profiles (1:1.0.4-1 -> 1:1.0.4-3)
[2024-03-30T14:08:49-0300] [ALPM] upgraded libxmu (1.1.4-1 -> 1.2.0-1)
[2024-03-30T14:08:49-0300] [ALPM] upgraded dav1d (1.4.0-1 -> 1.4.1-1)
[2024-03-30T14:08:49-0300] [ALPM] upgraded libpipewire (1:1.0.4-1 -> 1:1.0.4-3)
[2024-03-30T14:08:49-0300] [ALPM] upgraded pipewire (1:1.0.4-1 -> 1:1.0.4-3)
[2024-03-30T14:08:49-0300] [ALPM] upgraded pipewire-audio (1:1.0.4-1 -> 1:1.0.4-3)
[2024-03-30T14:08:49-0300] [ALPM] upgraded libwireplumber (0.4.17-1 -> 0.5.0-2)
[2024-03-30T14:08:49-0300] [ALPM] upgraded wireplumber (0.4.17-1 -> 0.5.0-2)
[2024-03-30T14:08:49-0300] [ALPM] upgraded pipewire-jack (1:1.0.4-1 -> 1:1.0.4-3)
[2024-03-30T14:08:49-0300] [ALPM] upgraded libopenmpt (0.7.5-1 -> 0.7.6-1)
[2024-03-30T14:08:49-0300] [ALPM] upgraded svt-av1 (1.8.0-1 -> 2.0.0-1)
[2024-03-30T14:08:49-0300] [ALPM] upgraded libdeflate (1.19-1 -> 1.20-1)
[2024-03-30T14:08:49-0300] [ALPM] upgraded openexr (3.2.3-1 -> 3.2.4-1)
[2024-03-30T14:08:49-0300] [ALPM] upgraded libdovi (3.2.0-2 -> 3.3.0-1)
[2024-03-30T14:08:49-0300] [ALPM] upgraded ffmpeg (2:6.1.1-6 -> 2:6.1.1-7)
[2024-03-30T14:08:49-0300] [ALPM] upgraded exiv2 (0.28.2-1 -> 0.28.2-2)
[2024-03-30T14:08:49-0300] [ALPM] upgraded libassuan (2.5.6-1 -> 2.5.7-1)
[2024-03-30T14:08:49-0300] [ALPM] upgraded tdb (1.4.9-1 -> 1.4.10-1)
[2024-03-30T14:08:49-0300] [ALPM] upgraded baloo-widgets (24.02.0-1 -> 24.02.1-1)
[2024-03-30T14:08:50-0300] [ALPM] upgraded qt5-base (5.15.13+kde+r138-1 -> 5.15.13+kde+r142-1)
[2024-03-30T14:08:50-0300] [ALPM] upgraded python-trove-classifiers (2024.3.3-1 -> 2024.3.25-1)
[2024-03-30T14:08:50-0300] [ALPM] upgraded gstreamer (1.24.0-1 -> 1.24.1-2)
[2024-03-30T14:08:50-0300] [ALPM] upgraded gst-plugins-base-libs (1.24.0-1 -> 1.24.1-2)
[2024-03-30T14:08:50-0300] [ALPM] upgraded gst-plugins-bad-libs (1.24.0-1 -> 1.24.1-2)
[2024-03-30T14:08:50-0300] [ALPM] upgraded gtk4 (1:4.12.5-1 -> 1:4.14.1-1)
[2024-03-30T14:08:50-0300] [ALPM] upgraded libadwaita (1:1.4.4-1 -> 1:1.5.0-1)
[2024-03-30T14:08:50-0300] [ALPM] upgraded libheif (1.17.6-3 -> 1.17.6-5)
[2024-03-30T14:08:50-0300] [ALPM] upgraded pybind11 (2.11.1-2 -> 2.12.0-1)
[2024-03-30T14:08:50-0300] [ALPM] upgraded python-markupsafe (2.1.4-1 -> 2.1.5-1)
[2024-03-30T14:08:50-0300] [ALPM] upgraded usd (23.11-15 -> 24.03-1)
[2024-03-30T14:08:52-0300] [ALPM] upgraded blender (17:4.0.2-21 -> 17:4.1.0-2)
[2024-03-30T14:08:52-0300] [ALPM] upgraded btrfs-progs (6.7.1-1 -> 6.8-1)
[2024-03-30T14:08:52-0300] [ALPM] upgraded cmake (3.28.3-1 -> 3.29.0-1)
[2024-03-30T14:08:53-0300] [ALPM] upgraded discord (0.0.46-1 -> 0.0.47-1)
[2024-03-30T14:08:53-0300] [ALPM] upgraded docker (1:25.0.4-1 -> 1:26.0.0-1)
[2024-03-30T14:08:53-0300] [ALPM] upgraded libkexiv2 (24.02.0-1 -> 24.02.1-1)
[2024-03-30T14:08:53-0300] [ALPM] upgraded plasma-activities (6.0.2-3 -> 6.0.3-1)
[2024-03-30T14:08:53-0300] [ALPM] upgraded talloc (2.4.1-1 -> 2.4.2-1)
[2024-03-30T14:08:53-0300] [ALPM] upgraded tevent (1:0.15.0-1 -> 1:0.16.1-1)
[2024-03-30T14:08:53-0300] [ALPM] upgraded ldb (2:2.8.0-1 -> 2:2.9.0-1)
[2024-03-30T14:08:53-0300] [ALPM] upgraded libwbclient (4.19.5-1 -> 4.20.0-1)
[2024-03-30T14:08:53-0300] [ALPM] upgraded smbclient (4.19.5-1 -> 4.20.0-1)
[2024-03-30T14:08:53-0300] [ALPM] upgraded ffmpeg4.4 (4.4.4-4 -> 4.4.4-5)
[2024-03-30T14:08:53-0300] [ALPM] upgraded vlc (3.0.20-7 -> 3.0.20-8)
[2024-03-30T14:08:53-0300] [ALPM] upgraded kio-extras (24.02.0-1 -> 24.02.1-1)
[2024-03-30T14:08:53-0300] [ALPM] upgraded dolphin (24.02.0-3 -> 24.02.1-1)
[2024-03-30T14:08:53-0300] [ALPM] upgraded ell (0.63-1 -> 0.64-1)
[2024-03-30T14:08:53-0300] [ALPM] upgraded libavif (1.0.4-1 -> 1.0.4-2)
[2024-03-30T14:08:54-0300] [ALPM] upgraded emacs-nativecomp (29.2-1 -> 29.3-1)
[2024-03-30T14:08:54-0300] [ALPM] upgraded eza (0.18.7-1 -> 0.18.9-1)
[2024-03-30T14:08:55-0300] [ALPM] upgraded firefox (124.0-1 -> 124.0.1-1)
[2024-03-30T14:08:55-0300] [ALPM] upgraded fzf (0.48.0-1 -> 0.48.1-1)
[2024-03-30T14:08:55-0300] [ALPM] upgraded git-delta (0.17.0-1 -> 0.17.0-2)
[2024-03-30T14:08:55-0300] [ALPM] upgraded glibmm (2.66.6-1 -> 2.66.7-1)
[2024-03-30T14:08:55-0300] [ALPM] upgraded glibmm-2.68 (2.78.1-1 -> 2.80.0-1)
[2024-03-30T14:08:55-0300] [ALPM] upgraded lib32-util-linux (2.39.3-1 -> 2.40-1)
[2024-03-30T14:08:55-0300] [ALPM] upgraded lib32-glib2 (2.78.4-1 -> 2.80.0-1)
[2024-03-30T14:08:55-0300] [ALPM] upgraded libgirepository (1.78.1-1 -> 1.80.0-1)
[2024-03-30T14:08:55-0300] [ALPM] upgraded gobject-introspection-runtime (1.78.1-1 -> 1.80.0-1)
[2024-03-30T14:08:55-0300] [ALPM] upgraded graphicsmagick (1.3.42-3 -> 1.3.43-1)
[2024-03-30T14:08:55-0300] [ALPM] upgraded gst-plugin-pipewire (1:1.0.4-1 -> 1:1.0.4-3)
[2024-03-30T14:08:55-0300] [ALPM] upgraded gst-plugins-base (1.24.0-1 -> 1.24.1-2)
[2024-03-30T14:08:55-0300] [ALPM] upgraded gtkmm-4.0 (4.12.0-1 -> 4.14.0-1)
[2024-03-30T14:08:55-0300] [ALPM] upgraded harfbuzz-icu (8.3.1-1 -> 8.4.0-1)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-foldable1-classes-compat (0.1-67 -> 0.1-69)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-indexed-traversable (0.1.3-59 -> 0.1.3-61)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-unordered-containers (0.2.20-13 -> 0.2.20-14)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-indexed-traversable-instances (0.1.1.2-39 -> 0.1.1.2-40)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-comonad (5.0.8-251 -> 5.0.8-253)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-bifunctors (5.6-67 -> 5.6-69)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-semigroupoids (5.3.7-137 -> 5.3.7-138)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-assoc (1.0.2-256 -> 1.0.2-258)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-these (1.1.1.1-257 -> 1.1.1.1-259)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-semialign (1.2.0.1-155 -> 1.2.0.1-156)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-strict (0.4.0.1-230 -> 0.4.0.1-232)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-witherable (0.4.2-96 -> 0.4.2-97)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-aeson (2.1.2.1-42 -> 2.1.2.1-43)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-attoparsec-aeson (2.1.0.0-26 -> 2.1.0.0-27)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-aeson-pretty (0.8.10-2 -> 0.8.10-3)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-bitvec (1.1.3.0-89 -> 1.1.3.0-90)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-cassava (0.5.3.0-94 -> 0.5.3.0-95)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-pandoc-types (1.23.1-16 -> 1.23.1-17)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-uniplate (1.6.13-218 -> 1.6.13-219)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-vector-algorithms (0.9.0.1-89 -> 0.9.0.1-90)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-mono-traversable (1.0.17.0-1 -> 1.0.17.0-2)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-conduit (1.3.5-46 -> 1.3.5-47)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-conduit-extra (1.3.6-127 -> 1.3.6-128)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-xml-conduit (1.9.1.3-46 -> 1.9.1.3-47)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-citeproc (0.8.1-94 -> 0.8.1-95)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-th-compat (0.1.4-42 -> 0.1.5-1)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-network-uri (2.6.4.2-29 -> 2.6.4.2-30)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-commonmark-extensions (0.2.3.5-25 -> 0.2.3.5-26)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-commonmark-pandoc (0.2.1.3-71 -> 0.2.1.3-73)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-doctemplates (0.11-66 -> 0.11-67)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-unix-compat (0.7.1-11 -> 0.7.1-12)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-fast-logger (3.1.2-68 -> 3.1.2-69)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-haddock-library (1.11.0-10 -> 1.11.0-12)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-hslua-core (2.3.1-40 -> 2.3.1-41)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-hslua-marshalling (2.3.0-41 -> 2.3.0-42)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-hslua-aeson (2.3.0.1-27 -> 2.3.0.1-28)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-hslua-classes (2.3.0-46 -> 2.3.0-47)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-hslua-typing (0.1.0-41 -> 0.1.0-42)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-hslua-objectorientation (2.3.0-41 -> 2.3.0-42)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-hslua-packaging (2.3.1-6 -> 2.3.1-7)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-hslua (2.3.0-44 -> 2.3.0-45)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-hslua-list (1.1.1-53 -> 1.1.1-54)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-hslua-module-doclayout (1.1.0-50 -> 1.1.0-51)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-hslua-module-path (1.1.0-45 -> 1.1.0-46)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-hslua-module-system (1.1.0.1-19 -> 1.1.0.1-20)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-hslua-module-text (1.1.0.1-19 -> 1.1.0.1-20)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-hslua-module-version (1.1.0-45 -> 1.1.0-46)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-zip-archive (0.4.3-26 -> 0.4.3.1-1)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-hslua-module-zip (1.1.1-12 -> 1.1.1-14)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-hslua-repl (0.1.2-6 -> 0.1.2-7)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-http-types (0.12.3-341 -> 0.12.4-2)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-http-api-data (0.5.1-48 -> 0.5.1-50)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-http-client (0.7.15-16 -> 0.7.15-19)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-http-client-tls (0.3.6.3-50 -> 0.3.6.3-53)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-http2 (4.1.0-13 -> 4.1.0-15)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-ipynb (0.2-134 -> 0.2-135)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-libyaml (0.1.2-343 -> 0.1.2-344)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-skylighting-core (0.14-7 -> 0.14-8)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-skylighting-format-ansi (0.1-114 -> 0.1-115)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-skylighting-format-blaze-html (0.1.1.2-1 -> 0.1.1.2-2)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-skylighting-format-context (0.1.0.2-79 -> 0.1.0.2-80)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-skylighting-format-latex (0.1-114 -> 0.1-115)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-skylighting (0.14-8 -> 0.14-9)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-texmath (0.12.8.4-9 -> 0.12.8.4-11)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-regex-tdfa (1.3.2.2-39 -> 1.3.2.2-40)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-prettyprinter (1.7.1-160 -> 1.7.1-161)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-toml-parser (1.3.1.3-13 -> 1.3.1.3-14)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-yaml (0.11.11.2-41 -> 0.11.11.2-42)
[2024-03-30T14:08:55-0300] [ALPM] upgraded haskell-typst (0.3.2.1-23 -> 0.3.2.1-24)
[2024-03-30T14:08:56-0300] [ALPM] upgraded haskell-pandoc (3.1.8-10 -> 3.1.8-15)
[2024-03-30T14:08:56-0300] [ALPM] upgraded haskell-pandoc-lua-marshal (0.2.2-58 -> 0.2.3-2)
[2024-03-30T14:08:56-0300] [ALPM] upgraded haskell-pandoc-lua-engine (0.2.1-54 -> 0.2.1.1-4)
[2024-03-30T14:08:56-0300] [ALPM] upgraded haskell-vault (0.3.1.5-180 -> 0.3.1.5-181)
[2024-03-30T14:08:56-0300] [ALPM] upgraded haskell-servant (0.20.1-5 -> 0.20.1-8)
[2024-03-30T14:08:56-0300] [ALPM] upgraded haskell-wai (3.2.4-13 -> 3.2.4-15)
[2024-03-30T14:08:56-0300] [ALPM] upgraded haskell-wai-logger (2.4.0-417 -> 2.4.0-423)
[2024-03-30T14:08:56-0300] [ALPM] upgraded haskell-simple-sendfile (0.2.32-29 -> 0.2.32-30)
[2024-03-30T14:08:56-0300] [ALPM] upgraded haskell-warp (3.3.30-47 -> 3.3.30-50)
[2024-03-30T14:08:56-0300] [ALPM] upgraded haskell-wai-extra (3.1.14-24 -> 3.1.14-30)
[2024-03-30T14:08:56-0300] [ALPM] upgraded haskell-wai-app-static (3.1.9-1 -> 3.1.9-4)
[2024-03-30T14:08:56-0300] [ALPM] upgraded haskell-servant-server (0.20-10 -> 0.20-13)
[2024-03-30T14:08:56-0300] [ALPM] upgraded haskell-wai-cors (0.2.7-349 -> 0.2.7-351)
[2024-03-30T14:08:56-0300] [ALPM] upgraded haskell-pandoc-server (0.1.0.5-12 -> 0.1.0.5-17)
[2024-03-30T14:08:56-0300] [ALPM] upgraded hsa-rocr (6.0.0-3 -> 6.0.2-1)
[2024-03-30T14:08:56-0300] [ALPM] upgraded hslua-cli (1.4.1-42 -> 1.4.1-43)
[2024-03-30T14:08:56-0300] [ALPM] upgraded intel-gmmlib (22.3.17-1 -> 22.3.18-1)
[2024-03-30T14:08:56-0300] [ALPM] upgraded intel-media-driver (24.1.4-1 -> 24.2.0-1)
[2024-03-30T14:08:56-0300] [ALPM] upgraded iwd (2.16-1 -> 2.17-1)
[2024-03-30T14:08:59-0300] [ALPM] upgraded jdk-openjdk (21.0.2.u13-3 -> 22.u36-1)
[2024-03-30T14:08:59-0300] [ALPM] upgraded lib32-harfbuzz (8.3.1-1 -> 8.4.0-1)
[2024-03-30T14:08:59-0300] [ALPM] upgraded lib32-xz (5.6.1-1 -> 5.6.1-2)
[2024-03-30T14:08:59-0300] [ALPM] upgraded lib32-libxkbcommon (1.6.0-1 -> 1.7.0-1)
[2024-03-30T14:08:59-0300] [ALPM] upgraded libkdcraw5 (24.02.0-1 -> 24.02.1-1)
[2024-03-30T14:08:59-0300] [ALPM] upgraded libkscreen (6.0.2-3 -> 6.0.3-1)
[2024-03-30T14:08:59-0300] [ALPM] upgraded redland (1:1.0.17-8 -> 1:1.0.17-9)
[2024-03-30T14:09:02-0300] [ALPM] upgraded libreoffice-fresh (24.2.1-4 -> 24.2.2-1)
[2024-03-30T14:09:02-0300] [ALPM] upgraded libsynctex (2023.66984-19 -> 2024.0-1)
[2024-03-30T14:09:02-0300] [ALPM] upgraded libva-mesa-driver (1:24.0.3-1 -> 1:24.0.3-2)
[2024-03-30T14:09:02-0300] [ALPM] upgraded libvirt (1:10.1.0-1 -> 1:10.1.0-2)
[2024-03-30T14:09:03-0300] [ALPM] upgraded linux (6.8.1.arch1-1 -> 6.8.2.arch2-1)
[2024-03-30T14:09:03-0300] [ALPM] upgraded mbedtls (3.5.1-1 -> 3.5.2-1)
[2024-03-30T14:09:03-0300] [ALPM] upgraded nilfs-utils (2.2.9-2 -> 2.2.10-1)
[2024-03-30T14:09:03-0300] [ALPM] upgraded nodejs (21.7.0-1 -> 21.7.1-1)
[2024-03-30T14:09:04-0300] [ALPM] upgraded node-gyp (10.0.1-1 -> 10.1.0-1)
[2024-03-30T14:09:05-0300] [ALPM] upgraded vtk (9.3.0-10 -> 9.3.0-11)
[2024-03-30T14:09:05-0300] [ALPM] upgraded opencascade (1:7.7.2-5 -> 1:7.7.2-6)
[2024-03-30T14:09:05-0300] [ALPM] upgraded prrte (3.0.4-3 -> 3.0.5-1)
[2024-03-30T14:09:06-0300] [ALPM] upgraded openmpi (5.0.2-6 -> 5.0.2-7)
[2024-03-30T14:09:06-0300] [ALPM] upgraded pandoc-cli (0.1.1.1-79 -> 0.1.1.1-86)
[2024-03-30T14:09:06-0300] [ALPM] upgraded pipewire-alsa (1:1.0.4-1 -> 1:1.0.4-3)
[2024-03-30T14:09:06-0300] [ALPM] upgraded pipewire-pulse (1:1.0.4-1 -> 1:1.0.4-3)
[2024-03-30T14:09:06-0300] [ALPM] upgraded python-gobject (3.46.0-1 -> 3.48.1-2)
[2024-03-30T14:09:06-0300] [ALPM] upgraded python-nest-asyncio (1.6.0-1 -> 1.6.0-2)
[2024-03-30T14:09:06-0300] [ALPM] upgraded python-ipykernel (6.29.3-2 -> 6.29.4-1)
[2024-03-30T14:09:06-0300] [ALPM] upgraded python-pyzstd (0.15.9-2 -> 0.15.10-1)
[2024-03-30T14:09:06-0300] [ALPM] upgraded qemu-common (8.2.2-1 -> 8.2.2-2)
[2024-03-30T14:09:06-0300] [ALPM] upgraded qemu-img (8.2.2-1 -> 8.2.2-2)
[2024-03-30T14:09:06-0300] [ALPM] upgraded qemu-system-x86-firmware (8.2.2-1 -> 8.2.2-2)
[2024-03-30T14:09:06-0300] [ALPM] upgraded qemu-system-x86 (8.2.2-1 -> 8.2.2-2)
[2024-03-30T14:09:06-0300] [ALPM] upgraded qemu-base (8.2.2-1 -> 8.2.2-2)
[2024-03-30T14:09:06-0300] [ALPM] upgraded rust (1:1.76.0-2 -> 1:1.77.1-1)
[2024-03-30T14:09:06-0300] [ALPM] upgraded strace (6.7-1 -> 6.8-1)
[2024-03-30T14:09:07-0300] [ALPM] upgraded suitesparse (7.6.1-1 -> 7.7.0-1)
[2024-03-30T14:09:07-0300] [ALPM] upgraded texlive-bin (2023.66984-19 -> 2024.0-1)
[2024-03-30T14:09:07-0300] [ALPM] upgraded texlive-basic (2023.66594-20 -> 2024.0-3)
[2024-03-30T14:09:08-0300] [ALPM] upgraded texlive-binextra (2023.66594-20 -> 2024.0-3)
[2024-03-30T14:09:19-0300] [ALPM] upgraded texlive-fontsextra (2023.66594-20 -> 2024.0-3)
[2024-03-30T14:09:19-0300] [ALPM] upgraded texlive-fontsrecommended (2023.66594-20 -> 2024.0-3)
[2024-03-30T14:09:19-0300] [ALPM] upgraded texlive-fontutils (2023.66594-20 -> 2024.0-3)
[2024-03-30T14:09:20-0300] [ALPM] upgraded texlive-latex (2023.66594-20 -> 2024.0-3)
[2024-03-30T14:09:20-0300] [ALPM] upgraded texlive-plaingeneric (2023.66594-20 -> 2024.0-3)
[2024-03-30T14:09:20-0300] [ALPM] upgraded texlive-latexrecommended (2023.66594-20 -> 2024.0-3)
[2024-03-30T14:09:21-0300] [ALPM] upgraded texlive-formatsextra (2023.66594-20 -> 2024.0-3)
[2024-03-30T14:09:21-0300] [ALPM] upgraded texlive-langenglish (2023.66594-20 -> 2024.0-3)
[2024-03-30T14:09:21-0300] [ALPM] upgraded texlive-langspanish (2023.66594-20 -> 2024.0-3)
[2024-03-30T14:09:21-0300] [ALPM] upgraded texlive-pictures (2023.66594-20 -> 2024.0-3)
[2024-03-30T14:09:22-0300] [ALPM] upgraded texlive-latexextra (2023.66594-20 -> 2024.0-3)
[2024-03-30T14:09:22-0300] [ALPM] upgraded texlive-luatex (2023.66594-20 -> 2024.0-3)
[2024-03-30T14:09:22-0300] [ALPM] upgraded texlive-xetex (2023.66594-20 -> 2024.0-3)
[2024-03-30T14:09:22-0300] [ALPM] upgraded vulkan-radeon (1:24.0.3-1 -> 1:24.0.3-2)
[2024-03-30T14:09:22-0300] [ALPM] upgraded waybar (0.10.0-1 -> 0.10.0-3)
[2024-03-30T14:09:22-0300] [ALPM] upgraded wayland-protocols (1.33-1 -> 1.34-1)
[2024-03-30T14:09:25-0300] [ALPM] upgraded wine (9.4-1 -> 9.5-1)
[2024-03-30T14:09:25-0300] [ALPM] upgraded wlroots (0.17.1-1 -> 0.17.2-1)

For example vivaldi throws an error when launching:

Window ’Vivaldi-stable’ appeared!
error in process filter: custom-initialize-reset: Wrong type argument: window-live-p, nil
error in process filter: Wrong type argument: window-live-p, nil

Using emacs -Q and the example config nothing changes (even it throwed a segfault once).
Disabling exwm-xim or changing the env variable XMODIFIERS lets me write, but the focus problem still persist.
(Maybe the focus problem is older and unrelated, I can't remember if that worked before or not)

Attempts to select 'nil' window

I think I've finally tracked down the source of the (wrong-type-argument window-live-p nil) error I've been seeing (finally got a backtrace):

exwm/exwm.el

Line 512 in 1821027

(select-window window)))))

The cause seems pretty clear: the buffer here may not actually have a current window:

exwm/exwm.el

Lines 499 to 512 in 1821027

(with-current-buffer buffer
(when (eq exwm--frame exwm-workspace--current)
(if exwm--floating-frame
(select-frame exwm--floating-frame)
(setq iconic (exwm-layout--iconic-state-p))
(when iconic
;; State change: iconic => normal.
(set-window-buffer (frame-selected-window exwm--frame)
(current-buffer)))
;; Focus transfer.
(setq window (get-buffer-window nil t))
(when (or iconic
(not (eq window (selected-window))))
(select-window window)))))

get-buffer-window is probably returning nil.

Restricting applications to window they were launched in

Hello!

When launching an application that takes a while to start up, it will be placed in the currently selected window when it eventually launches.

Oftentimes, while it's launching I'm working on something else to fill out the time, and when it's done loading it interrupts my work elsewhere which is pretty annoying.

I think a superior solution would be to somehow restrict it to the window I had selected when it was launched. And if that window is gone, it would be great if it could just be placed at the top of the buffer list instead of switching the active window.

Does anyone know whether something like this is already implemented elsewhere? If not, any thoughts on how to implement it?

Thanks!

Apply shader selectively using picom

Hi,

picom allows one to apply a shader to a specific window using a matching pattern, including name, window type, window state, etc. I am having a hard time finding how to match things properly in EXWM and I probably need a lower level understanding of how EXWM works. Maybe you can help me ?

It seems like what appears as a window is made of different layers. First the proper X window, then appearing under it, an emacs frame. It looks like the X window is associated to a buffer of that frame. Now I more or less see how I can manipulate these things in emacs, though I am not sure how I can access them from picom.

How can I match the emacs frame that is behind a window ? How can I match all the X windows without matching the underneath emacs frame ? Is there some attribute that distinguishes them, like _NET_WM_WINDOW_TYPE, or is one the child of the other, or any other way I could distinguish them ?

For example if I do
picom --backend glx --window-shader-fg-rule invisible.glsl:'_NET_WM_WINDOW_TYPE@:a *= "NORMAL"' I can match all the X windows and the emacs frames, which seems to boil down to everything apart from polybar in my setting.

Cheers,

Théo

C-z (suspend-frame) crashes EXWM (solution provided)

accidently pressing C-z or C-x C-z (bound to suspend-frame) crashes EXWM

solution:
(global-unset-key (kbd "C-z"))
(global-unset-key (kbd "C-x C-z"))

what would be the status for this thread "resolved but still accepts better answers"? probable org-mode...

'C-x 4 4' doesn't work

other-window-prefix (C-x 4 4) isn’t programmed to work if the next command spawns a graphical window; this is sensible as most people don’t run EXWM. I was wondering if EXWM could detect when a command run with the other-window-prefix tries opening a graphical window, and spawns it in the other-window?

browse-url-firefox, which comes with Emacs, is one example of a command that always spawns graphical windows but isn’t designed to work with the other-window-prefix.

HOWTO: different setup for different machines

Since this took me ages to figure out, I'll document it here for the next person.

Full config segment

(use-package exwm
  :init
  (setq worklaptop (= 8 (string-to-number (shell-command-to-string "nproc"))))
  (require 'exwm-randr)
  (exwm-randr-enable)
  (if 'worklaptop (progn
                    (start-process-shell-command "xrandr" nil "xrandr --output DP-1-1 --right-of eDP --output DP-1-2 --right-of DP-1-1")
                    (start-process-shell-command "xrandr" nil "xrandr --output DP-1-1 --rotate left --output DP-1-2 --rotate right"))
    (start-process-shell-command "xrandr" nil "xrandr --output DisplayPort-0 --mode 3840x2160 --left-of eDP"))
  (exwm-enable)
  :config
  (add-to-list 'exwm-input-prefix-keys ?\M- )
  :custom
  (exwm-workspace-number 3)
  (exwm-randr-workspace-monitor-plist (if 'worklaptop '(0 "eDP" 1 "DP-1-1" 2 "DP-1-2") '(0 "DisplayPort-0")))
  :hook
  (exwm-update-class . (lambda () (exwm-workspace-rename-buffer exwm-class-name))))

Commentary

First set a variable to a boolean that detects some unique difference in your work setup.
(shell-command-to-string "<command>") will help.
Think hostname, distro, number of cores or sth.

Then, branch accordingly for both the :init xrandr call and the :custom workspace-monitor-plist setting

New release?

@Stebalien How do you feel about tagging a new release of Xelb and EXWM soon? I've switched from Emacs 29 to 30 about a week ago, and overall EXWM feels quite stable to me on both Emacs versions in its current state. After a release we could focus on larger restructurings, e.g., related to tab-bar or keymap handling.

Crashing in latest version of Emacs30

Hello. In the past few days, I have noticed EXWM has started crashing for me. I believe it might be caused by some recent change in Emacs 30. How do I diagnose and debug a crashing EXWM session?

Focus Retention when switching to (non-EXWM) buffers

When switching to another window (usually on a different workspace) with an emacs (not EXWM/X) buffer, it happens (50% of cases) that the 'focus' remains on the last window.

This is visible from the cursor color in switched-to window-buffer (a transparent box
image)

rather than the full-color active-cursor cursor
image

More importantly, when in this inactive state, it happens that typing on the keyboard, leads to input-actions on the previous buffer/window (no matter whether it is an EXWM/X buffer or an emacs buffer)! In consequence, the active workspace automatically "switches back" showing the previously active window/workspace/buffer.

Any ideas on how to debug this?

PS 1: For a long time, I suspected that this is the same error as described in #759, but it must be different, since it also happens when switching between emacs-buffers (although less often)

PS 2: Following old #942 I am opening this in this new repo. A big thank you to the maintainer(s) for moving this project forward!

Add an `exwm-input-modifiers` setting

Right now, it's possible to instruct EXWM to intercept specific keys and key-combo prefixes via exwm-input-prefix-keys. However, there's no way to instruct EXWM to intercept all key combos including a specific modifier (e.g., super). This could be useful as most applications avoid binding super, leaving it for the window manager (in this case, EXWM).

EXWM windows lose focus when switching persps with persp-mode

I'm having a lot of difficulty getting persp-mode working together with EXWM. For some reason, if I switch to a Persp containing Discord, Discord does not gain focus unless I was previously in a persp containing an EXWM buffer. Firefox seems to behave though.

Opening large (>1MB) images and PDFs makes EXWM/Emacs slow

When opening large PDFs and images, switch to and back from the image-containing workspace is horribly slow (every keystroke takes seconds, including opening of which-key). This seems to be cause by the image being visible as everything runs smooth, when the image/PDF is invisible. Furthermore, the slowdown seems to be proportional to the file size.

htop shows 100% CPU usage by emacs, which seems to be attributable to a high number of redisplay_internal calls. Can I somehow find out what exactly triggers the excessive number of redisplay calls?

The slow-down also leads to thes warning: ⛔ Warning (emacs): [XELB] Retrieve reply timeout, which is why I suspect it has to do with EXWM itself?

Profile

I profiled while switching back and forth between workspaces (one of them containing a large image or PDF)

CPU

       45439  59% - redisplay_internal (C function)
       45287  59%  + page-break-lines--update-display-tables
         140   0%  + eval
           6   0%  + exwm-layout--refresh
           2   0%  + window--adjust-process-windows
           2   0%  + mode-line-default-help-echo
           1   0%  + redisplay--pre-redisplay-functions
       17868  23% - command-execute
       17868  23%  - funcall-interactively
       17779  23%   - #<lambda 0x10a2e7b5>
       17779  23%    - exwm-workspace-switch
       17779  23%     - apply
       17779  23%      + ad-Advice-exwm-workspace-switch
          86   0%   + #<lambda 0x10a2e7b6>
           1   0%   + profiler-start
           1   0%   + file-notify-handle-event

Notably: page-break-lines-mode is inactive in the image/PDF. I suspect it gets called in a non-PDF buffer

Mem:

    419,499,943  92% - timer-event-handler
    419,323,335  92%  - apply
    310,811,551  68%   + which-key--update
    102,210,631  22%   + savehist-autosave
      5,063,016   1%   + auto-revert-buffers
        633,480   0%     posframe-hidehandler-daemon-function
        136,722   0%   + save-some-buffers
        135,168   0%   + #<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_9>
        130,280   0%   + exwm-input--update-focus-commit
         84,343   0%   + fancy-battery-update
         19,008   0%     exwm-layout--on-echo-area-change
         17,650   0%   + gac--after-save
          9,517   0%   + display-time-event-handler
          1,433   0%   + org-clock-update-mode-line
          1,056   0%   + show-paren-function
        147,840   0%  + timer-activate-when-idle
         18,352   0%  + timer-activate
          7,744   0%    timer-inc-time
     22,605,746   5% + redisplay_internal (C function)
      8,561,381   1% + command-execute
        694,114   0% + xcb:-connection-filter
         36,944   0%   exwm-layout--on-echo-area-change
         30,610   0% + ...

Any support would be highly appreciated (this is bugging me for years really).
If this is likely not to be EXWM-related, I'll move on to spacemacs support.

Workspaces, tabs, and multi-monitor support

EXWM currently supports "workspaces" by creating a new frame per workspace. Additionally, multiple monitors can be supported by assigning workspaces to monitors.

Unfortunately:

  1. Assignment of workspaces to monitors isn't automatic.
  2. With the introduction of the tab-bar, frame-based workspaces are mostly redundant.

So, my proposal is to:

  1. Remove or deprecate the current workspace feature.
  2. Associate floating windows with tabs, unless they're marked as sticky. We may have to advise tab-bar-select-tab, but I'm hoping that the window-configuration-change-hook is enough.
  3. Make the randr module automatically create/delete frames.

The tricky parts will be:

  1. Making this "just work", especially monitor configuration.
  2. Backwards compatibility. We can probably introduce some aliases for, e.g., exwm-workspace-next and friends, but we likely won't be able to replicate all features.

The upsides are:

  1. Better integration with Emacs packages by using the tab-bar.
  2. Visual indication of the current workspace (again, via the tab-bar).
  3. Automatic support for multiple monitors.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.