spacemacs/layers/+window-management/exwm/config.el

21 lines
619 B
EmacsLisp
Raw Normal View History

Add Emacs Window Manager (EXWM) Layer AKA SpacemacsOS (#3321) * Add Emacs Window Manager (EXWM) Layer The time has come of SpacemacsOS * set window manager name to EXWM * update copyright notice * start server when EXWM is active When using EXWM, Emacs should be ready to receive clients but the final choice should be the user's in their shell configuration. * respect Spacemacs naming conventions and layer organization * leave keyboard remapping to users * add EXWM states for Evil * add support for helm-exwm when helm is in use * use both exwm-randr and exwm-systemtray * set up workspaces to match displays by default * use ido-config instead of the deprecated workaround When using helm-exwm, its sources distinguish title and class automatically. It is only necessary to keep the buffer name updated when the window title changes. When using ido, rename differently for different applications. * add bindings for common X keys * use standard prefix commands where available Spacemacs already has prefix commands for controlling windows. These are directly available in exwm-state as well as in exwm-insert-state through leader * remove most keybindings as they are available directly in exwm-state * enable exwm directly in the layer configuration It is safe to enable it here as an existing window manager will simply fail with a warning. * add user-configurable variables for RandR and workspaces By default, create as many workspaces as there are displays and assign them in RandR order. * fix naming convention for variables * use helm for launching applications when possible * fix conditional helm-exwm leader keys * remove redundant function EXWM provides the equivalent * conform to naming convention for Spacemacs * separate prefix commands into those for major mode and global * remove all default bindings * improve readability * clean up bindings * remove obsolete comments Co-authored-by: M. Domenzain <luis.domenzain@parrot.com>
2021-04-19 20:53:59 +00:00
(defvar exwm-terminal-command "xterm"
"Terminal command to run.")
(defvar exwm-locking-command "slock"
"Command to run when locking session")
(defvar exwm-hide-tiling-modeline nil
"Whether to hide modeline.")
(defvar exwm-leader-key nil
"Key to use for EXWM global commands")
(defvar exwm-workspace-switch-wrap t
"Whether `exwm/exwm-workspace-next' and `exwm/exwm-workspace-prev' should wrap.")
(defvar exwm-workspace-number nil
"Number of workspaces. Defaults to the number of connected displays if `nil'.")
(defvar exwm-randr-command nil
"`xrandr' command to set up displays prior to EXWM init.")