Commit graph

30 commits

Author SHA1 Message Date
Urbano Ustero
31033da460 Allow filling workspace list by creating frames
Users can pre-fill the workspace list by creating frames in their
configuration.  For example, to start up with 4 workspaces:

    (dolist (i 3)
      (make-frame))
2015-08-27 22:21:57 +02:00
Urbano Ustero
483d77b60f Make `exwm-workspace--current-index' private
Users should not mess with this variable.
2015-08-27 22:21:57 +02:00
Urbano Ustero
405059c677 Don't limit number of workspaces
Rework the interactive workspace switcher to allow selecting by workspaces with
multiple digits.
2015-08-27 22:21:57 +02:00
Urbano Ustero
0995e90ed0 Update EWMH properties when workspaces change 2015-08-27 22:21:56 +02:00
Urbano Ustero
ce2ccc3f62 Move to another workspace before removing current 2015-08-27 22:21:56 +02:00
Urbano Ustero
a834eb5f41 Manage workspace list via helper functions
Avoid manipulating the workspace list except through the functions
`exwm-workspace--{add,remove}-frame-as-workspace'.
2015-08-27 22:21:56 +02:00
Urbano Ustero
99493190c6 Rename variable to better convey its effect 2015-08-27 22:21:56 +02:00
Urbano Ustero
22c7239f40 No longer need to fill initial workspace list
Users are free to create as many as they like by hitting 'C-x 5 2' or running
`make-frame'.
2015-08-27 22:21:56 +02:00
Urbano Ustero
731cd74fdb Add helper for counting number of workspaces 2015-08-27 22:21:56 +02:00
Urbano Ustero
0ec34061b9 Allow adding and removing workspaces
Making and deleting frames adds them as new workspaces.
2015-08-27 22:21:56 +02:00
Chris Feng
5222dc17d6 Avoid deleting the frame created by Emacs client by accident
When Emacs is invoked as `emacsclient -a '' -c`, it creates a frame that can
be deleted without any prompt. This commit removes the `client` parameter from
that frame to avoid such inconvenience.
2015-08-27 13:07:25 +08:00
Chris Feng
bb4ebde55b Fix exwm-workspace-rename-buffer
Ensure buffer names are unique.
2015-08-26 19:35:19 +08:00
Chris Feng
b50a6e6dd9 Correct several EWMH properties
The following EWMH properties on the root window are corrected in this commit:
_NET_VIRTUAL_ROOTS, _NET_WORKAREA and _NET_DESKTOP_VIEWPORT.
2015-08-26 17:40:39 +08:00
Philip
94bdbfc0da Avoid using the "no window manager" code in Emacs
* exwm.el (exwm--on-ClientMessage): Handle fullscreen requests
	for frames.
	(exwm-init): Initialize workspaces after unlocking events.

	* exwm-workspace.el (exwm-workspace--init): Create frames as
	invisible, then make them visible only once their OverrideRedirect
	property has been set.

	* exwm-randr.el (exwm-randr--refresh): New frame parameter
	`exwm-geometry'.

	* exwm-layout.el (exwm-layout--set-frame-fullscreen): New
        function.

The Emacs code is buggy, see https://github.com/ch11ng/exwm/issues/39

https://github.com/ch11ng/exwm/pull/42
2015-08-24 19:12:45 +00:00
Philip
43b00d2f0f fix buffer renaming
per https://github.com/ch11ng/exwm/pull/30
2015-08-17 06:40:43 +00:00
Philip
15ad591d97 Fix bug when moving a window to the current workspace
* exwm-workspace.el (exwm-workspace-move-window): Run
          reparenting code when moving a window to the current workspace.
2015-08-16 18:09:42 +00:00
Chris Feng
04e4269617 Improve input focus switch mechanism
This commit should fix most input focus bugs (especially those related to
floating windows). The actual settings of input focus are delayed to exclude
redundant event. Dead code since this commit is removed.

This commit also fixes a bug for non-floating windows converted form floating
state. The workaround for `ido-mode` is also improved to properly handle
`exwm-mode` buffers.
2015-08-12 18:09:35 +08:00
Chris Feng
b755296f54 Remove redundant code caused by the concurrency of events (contd, 2)
* Remove locks that are no longer required
* Also fix #20 (inactive workspace frame steals input focus)
2015-08-11 09:18:21 +08:00
Chris Feng
42f4ec6db5 Show moved window by default 2015-08-08 20:39:05 +08:00
Chris Feng
52984898ec Fix some input focus issues
* Fix input focus lost after moving window to another workspace
* Enhance `exwm-reset` to provide user a way to reset input focus when it's
  lost unexpectedly
2015-08-08 11:16:17 +08:00
Chris Feng
84f0f0328b Fix input focus lost after closing window
Also insert some debug messages.
2015-08-07 20:22:12 +08:00
Chris Feng
2ad1a89db0 Various input fixes
* Fix `exwm-reset`
* Make input mode buffer local
* Allow window to stay in `char-mode` while setting input focus to other window
  or switching to other workspace
2015-08-07 12:41:15 +08:00
Chris Feng
1e36a22b3f Check buffer mode in exwm-reset
This should prevent users from misoperation.
2015-08-06 14:41:28 +08:00
Chris Feng
3fb90b9eaa Fix fullscreen issues
* Correct ConfigureNotify events sent to fullscreen windows.
* Exit fullscreen mode before switching workspace.
* Temporarily treat `xcb:Atom:_NET_WM_STATE_ABOVE` as
  `xcb:Atom:_NET_WM_STATE_FULLSCREEN` since
  a) "plugin-container" (Flash Player) seems only set this, and
  b) it's not normally used by applications.
  This makes fullscreen videos working in e.g. iceweasel.
2015-08-06 12:32:14 +08:00
Chris Feng
3fc0cb2bf7 Various fixes
* Prevent marking the end of a key sequence with a single `C-u'.
* Enable `C-u' prefix for key simulation since it's not possible for users to
  define simulation keys starting with `C-u'.
* Make Emacs idle only after the visual parts are updated to prevent from
  disturbing users.
* Should use '?\s' instead of '? '.
2015-08-05 14:10:44 +08:00
Chris Feng
86764d27a3 Add basic RandR support
This implementation is analogous to that in i3-wm, which requires external
tools to properly configure RandR first.
2015-08-03 20:26:53 +08:00
Chris Feng
f4416a10e3 Fix potential naming conflicts
Buffers may share a same name (without the possible leading space) when created
in different workspaces.
2015-07-26 16:04:21 +08:00
Chris Feng
36e8361b9b Various fixes
Remove wrong shift modifiers.
Hide a Window when it's moved to another workspace.
2015-07-19 09:15:53 +08:00
Chris Feng
968d0b4882 Various fixes for workspace
Fixes for full screen, move window, etc.
2015-07-18 21:16:14 +08:00
Chris Feng
10a7fe8d65 First commit 2015-07-17 19:16:08 +08:00