From 423850fe8315acb050afeeaf6594a090571e23da Mon Sep 17 00:00:00 2001 From: Daniel Mendler Date: Sun, 18 Aug 2024 21:04:47 +0200 Subject: [PATCH] Drop obsolete exwm-config.el Instead of using the obsolete exwm-config in your init.el, we recommend to create a custom configuration tailored to your needs. The old exwm-config file and the EXWM wiki serve as starting points. The minimal configuration to get EXWM working is as follows: (require 'exwm) (setq exwm-input-global-keys `(([?\s-r] . exwm-reset))) (exwm-enable) In addition you may want to customize `exwm-workspace-number', `exwm-input-global-keys' and `exwm-input-simulation-keys'. In order to rename EXWM buffers, such that they match the window class or window title, add custom hooks to `exwm-update-title-hook' and `exwm-update-class-hook', for example: (add-hook 'exwm-update-class-hook (lambda () (exwm-workspace-rename-buffer exwm-class-name))) * exwm-config.el: Drop obsolete file. --- exwm-config.el | 145 ------------------------------------------------- 1 file changed, 145 deletions(-) delete mode 100644 exwm-config.el diff --git a/exwm-config.el b/exwm-config.el deleted file mode 100644 index a0dd994..0000000 --- a/exwm-config.el +++ /dev/null @@ -1,145 +0,0 @@ -;;; exwm-config.el --- Predefined configurations -*- lexical-binding: t -*- - -;; Copyright (C) 2015-2024 Free Software Foundation, Inc. - -;; Author: Chris Feng - -;; This file is part of GNU Emacs. - -;; GNU Emacs is free software: you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. - -;; GNU Emacs is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs. If not, see . - -;;; Commentary: - -;; This module contains an example configuration of EXWM. Do not require this -;; file directly in your user configuration. Instead take it as inspiration and -;; copy the relevant settings to your user configuration. - -;;; Code: - -(require 'exwm) - -(defun exwm-config--warn () - "Print obsoletion warning." - (fset #'exwm-config--warn #'ignore) - (warn "The `exwm-config' file has been deprecated. We do not recommend requiring -`exwm-config' directly in your Emacs configuration. Instead copy the relevant -settings to your configuration and modify them as needed. The code from here -will be moved out of the source repository to the manual after the next -release. See https://github.com/emacs-exwm/exwm/issues/57.")) - -(defun exwm-config-example () - "Default configuration of EXWM." - (exwm-config--warn) - ;; Set the initial workspace number. - (unless (get 'exwm-workspace-number 'saved-value) - (setq exwm-workspace-number 4)) - ;; 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-&] . (lambda (command) - (interactive (list (read-shell-command "$ "))) - (start-process-shell-command command nil command))) - ;; '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])))) - ;; Enable EXWM - (exwm-enable) - ;; Configure Ido - (with-no-warnings (exwm-config-ido)) - ;; Other configurations - (with-no-warnings (exwm-config-misc))) -(make-obsolete 'exwm-config-example "Copy the relevant settings to your configuration." "0.30") - -(defun exwm-config--fix/ido-buffer-window-other-frame () - "Fix `ido-buffer-window-other-frame'." - (defalias 'exwm-config-ido-buffer-window-other-frame - (symbol-function 'ido-buffer-window-other-frame)) - (defun ido-buffer-window-other-frame (buffer) - "This is a version redefined by EXWM. - -You can find the original one at `exwm-config-ido-buffer-window-other-frame'." - (with-current-buffer (window-buffer (selected-window)) - (if (and (derived-mode-p 'exwm-mode) - exwm--floating-frame) - ;; Switch from a floating frame. - (with-current-buffer buffer - (if (and (derived-mode-p 'exwm-mode) - exwm--floating-frame - (eq exwm--frame exwm-workspace--current)) - ;; Switch to another floating frame. - (frame-root-window exwm--floating-frame) - ;; Do not switch if the buffer is not on the current workspace. - (or (get-buffer-window buffer exwm-workspace--current) - (selected-window)))) - (with-current-buffer buffer - (when (derived-mode-p 'exwm-mode) - (if (eq exwm--frame exwm-workspace--current) - (when exwm--floating-frame - ;; Switch to a floating frame on the current workspace. - (frame-selected-window exwm--floating-frame)) - ;; Do not switch to exwm-mode buffers on other workspace (which - ;; won't work unless `exwm-layout-show-all-buffers' is set) - (unless exwm-layout-show-all-buffers - (selected-window))))))))) - -(defun exwm-config-ido () - "Configure Ido to work with EXWM." - (exwm-config--warn) - (declare-function ido-mode "ido") - (ido-mode 1) - (add-hook 'exwm-init-hook #'exwm-config--fix/ido-buffer-window-other-frame)) -(make-obsolete 'exwm-config-ido "Copy the relevant settings to your configuration." "0.30") - -(defun exwm-config-misc () - "Other configurations." - (exwm-config--warn) - ;; Make more room - (menu-bar-mode -1) - (tool-bar-mode -1) - (scroll-bar-mode -1) - (fringe-mode 1)) -(make-obsolete 'exwm-config-misc "Copy the relevant settings to your configuration." "0.30") - - - -(provide 'exwm-config) - -;;; exwm-config.el ends here