2021-04-19 21:04:38 +00:00
#+TITLE : EXWM layer
2021-04-19 20:53:59 +00:00
2021-04-19 21:04:38 +00:00
#+TAGS : layer|tool
2021-06-05 15:02:57 +00:00
[[file:img/exwm.jpg ]]
2021-04-19 21:04:38 +00:00
2021-04-23 14:03:32 +00:00
* Table of Contents :TOC_5_gh:noexport:
- [[#description ][Description ]]
2021-06-05 15:02:57 +00:00
- [[#features ][Features: ]]
2021-04-23 14:03:32 +00:00
- [[#install ][Install ]]
2021-04-30 18:29:17 +00:00
- [[#system-tray-integratios ][System Tray Integratios ]]
- [[#xdg-autostart ][XDG Autostart ]]
2021-04-23 14:03:32 +00:00
- [[#key-bindings ][Key bindings ]]
2021-04-19 20:53:59 +00:00
2021-04-23 13:52:28 +00:00
* Description
2021-04-19 20:53:59 +00:00
Thanks to @ch11ng and his [[https://github.com/ch11ng/exwm ][EXWM ]] project we can now use Emacs as our window
2021-06-05 15:02:57 +00:00
manager, that means that you can spawn a Browser Window, or your music player,
or anything.
2021-04-19 20:53:59 +00:00
2021-07-05 20:22:18 +00:00
** Features:
2021-06-05 15:02:57 +00:00
- Support for using Emacs as window manager
2021-04-19 20:53:59 +00:00
2021-04-23 13:59:07 +00:00
* Install
2021-06-05 15:02:57 +00:00
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.
2021-04-19 20:53:59 +00:00
2021-04-30 18:29:17 +00:00
** 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
2021-06-05 15:02:57 +00:00
startup. (See [[https://specifications.freedesktop.org/autostart-spec/autostart-spec-latest.html ][Desktop Application Autostart Specification ]] for details).
2021-04-30 18:29:17 +00:00
2021-06-05 15:02:57 +00:00
For the purpose of controlling whether an entry should be run under Emacs,
2021-04-30 18:29:17 +00:00
the =OnlyShowIn= and =NotShotIn= keys are checked for the string =EXWM= .
This is disabled per default.
2021-04-23 13:59:07 +00:00
* Key bindings
2021-04-19 20:53:59 +00:00
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~ .
2021-06-05 15:02:57 +00:00
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 |