#+TITLE: EXWM layer #+TAGS: layer|tool [[file:img/exwm.jpg]] * Table of Contents :TOC_5_gh:noexport: - [[#description][Description]] - [[#features][Features:]] - [[#install][Install]] - [[#system-tray-integratios][System Tray Integratios]] - [[#xdg-autostart][XDG Autostart]] - [[#key-bindings][Key bindings]] * Description Thanks to @ch11ng and his [[https://github.com/ch11ng/exwm][EXWM]] project we can now use Emacs as our window manager, that means that you can spawn a Browser Window, or your music player, or anything. * Features: - Support for using Emacs as window manager * Install To use =exwm= layer, add it to your =~/.spacemacs=. The default layer variables are: #+BEGIN_SRC emacs-lisp (setq-default dotspacemacs-configuration-layers '((exwm :variables exwm-enable-systray nil exwm-autostart-xdg-applications nil exwm-terminal-command "xterm" exwm-locking-command nil exwm-hide-tiling-modeline nil exwm-workspace-switch-wrap t exwm-randr-command nil))) #+END_SRC Please refer to [[https://github.com/ch11ng/exwm/wiki][EXWM Wiki]] for setting up display manager. ** System Tray Integratios To enable system tray integration, set =exwm-enable-systray= to =t=. ** XDG Autostart If =exwm-autostart-xdg-applications= is non-nil, =.desktop= files in =$XDG_CONFIG_HOME/autostart= and =XDG_CONFIG_DIRS= will be used to run applications at startup. (See [[https://specifications.freedesktop.org/autostart-spec/autostart-spec-latest.html][Desktop Application Autostart Specification]] for details). For the purpose of controlling whether an entry should be run under Emacs, the =OnlyShowIn= and =NotShotIn= keys are checked for the string =EXWM=. This is disabled per default. * Key bindings As other window managers the ~s~ or *Super* key (Windows Key) is the one that is the prefix to every action. We'll use a lot of ~s~. Some emacs keybindings are disabled in X Window, for example ~C-x~ and ~C-c~ are disabled so that they can be used for Cutting and Copying text. | Key binding | Description | |-----------------------+----------------------------------------| | ~M-m~ | Spacemacs Leader Key | | ~C-q~ | Send next key pressed to the X window | | ~s-i~ | Toggle between line mode and char mode | | ~s-l~ | Lock Screen | | ~s-r~ | Reset window state | | ~s-w~ | Workspace Switch Menu | | ~s-[1 2 3 ... 8 9 0]~ | Switch to workspace [1 2 3 ... 8 9 10] | | ~s-TAB~ | Switch to last workspace | | ~s-[~ / ~s-]~ | Switch to prev,next workspace | | ~s-SPC~ | App Launcher | | ~s-RET~ | Spawn terminal | | ~s-:~ and ~s-;~ | Helm M-x (same as ~SPC :~) | | ~s-u,U~ | Undo, Redo window configurations | | ~s-b~ | Show all opened buffers | | ~s-[h j k l]~ | Switch to window in the direction | | ~s-[H J K L]~ | Move window to the direction | | ~M-s-[h j k l]~ | Resize window toward the direction |