`first` and `list-length` are aliases for `car` and `cl-list-length`
respectively. Using these aliases causes emacs to error with a `symbol's function
definition is void` error, but using their real names causes no error.
Replaced them with `car` and `length`.
* 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>
Update README.org and add spacemacs-purpose layer to spacemacs
distribution.
Move functions of the layer to funcs.el and prefix variables and
functions introduced by the layer with `spacemacs`.
- Proper integration with popwin
- Integrate with Helm via helm-purpose
- Integrate with Ivy via ivy-purpose
- Integrate with opening a new eyebrowse workspace
- Enable purpose-x-kill: purpose-aware replacement of a window's buffer
when a buffer is killed
This was asked for in the gitter chat. I thought at first it would be
great for when people wanted to open many perspectives at the same time,
but now I don't think the same. It'd be very hard to modify the macro
for adding custom layouts to make this argument optional, so I leave it
at @syl20bnr discretion.
we want to call workspaces-transient-state vs workspaces-micro-state.
this was probably just an oversight, but nonetheless keeps the fn from
working properly and needs to be updated.
- port helm-perspectives
- port persp switch buffer
- port persp-close[kill]-other to use ivy
- layouts-ts: Make help more consistent
- layouts-ts: Reorganize docstring
Instead of one big list, try to organize into sections to make it easier
to find the right key
Also:
- switch spacemacs layouts to the same.
- Add “wD” for ace-delete-window
- switch window dedication toggle to “wt”
- all documentation has been updated to reflect these changes
Closes#5031
Switching between layouts didn't save the tag of any (eyebrowse)
workspace, resulting in transient workspace tags. This fixes it so tags
are saved correctly.
Two specific issues have been addressed. In README.org there was no
mention of the workspaces micro-state.
The micro-state documentation erroneously stated that 'R' could be used
to create a new layout. 'l' was mentioned nowhere as the way to create a
new layout.
The rest of this commit only updates both docs to contain the same info.