Edwina tiling

This commit is contained in:
Curt Spark 2021-03-03 03:32:16 +00:00
parent fbf01cba5d
commit 0f5a0e03b9
1 changed files with 62 additions and 3 deletions

View File

@ -117,6 +117,12 @@ Install and set the modeline, ensuring that it is always installed:
;; Display the current time on the modeline
(display-time-mode 1)
;; Display time in the 24hr format
(setq display-time-24hr-format t)
;; Display also the date on the modeline
(setq display-time-day-and-date t)
;; Display the battery (if has one) on the modeline
(display-battery-mode 1)
#+END_SRC
@ -631,6 +637,18 @@ on how to install the Programming Language Servers that you want.
;; (use-package dap-LANGUAGE) to load the dap adapter for your language
#+END_SRC
** Edwina Dynamic Tiling
Edwina is a dynamic window manager for Emacs. It automatically arranges your Emacs panes (called “windows” in Emacs parlance) into predefined layouts, dwm-style.
Install the package, enable it and ensure that it always is installed, and then configure:
#+BEGIN_SRC emacs-lisp
(use-package edwina
:ensure t
:config
(setq display-buffer-base-action '(display-buffer-below-selected))
;;(edwina-setup-dwm-keys)
(edwina-mode 1))
#+END_SRC
** EXWM
EXWM, The Emacs X Window Manager. As it says, it is an Emacs window
manager for the X display server. The benefits include using all your
@ -656,6 +674,11 @@ Install the package, enable it and ensure that it always is installed, and then
;; Mouse input/bindings
(require 'exwm-input)
;; EXWM Randr, makes sure that the screens automatically update with the proper resolutions
;; You may want to install a program such as arandr to graphically manage the screens and resolutions, you can export it into Xrandr commands
(require 'exwm-randr)
(exwm-randr-enable)
(defun exwm-switch-workspace-left ()
"Switch one workspace to the left"
(interactive)
@ -683,7 +706,9 @@ Install the package, enable it and ensure that it always is installed, and then
;; Keybindings
(setq exwm-input-global-keys
`(;; Reset EXWM
`(;; Standard EXWM Bindings
;; Reset EXWM
([?\s-r] . exwm-reset)
;; EXWM Workspace Switcher
@ -712,8 +737,42 @@ Install the package, enable it and ensure that it always is installed, and then
;; Swap current workspace with one workspace to the left
([?\s-L] . exwm-swap-workspace-right)
;; Application Launcher
([?\s-b] . counsel-linux-app)))
;; Bindings for Edwina
;; Select next window in stack
([?\s-n] . edwina-select-next-window)
;; Select previous window in stack
([?\s-p] . edwina-select-previous-window)
;; Swap current window with next window in stack
([?\s-N] . edwina-swap-next-window)
;; Swap current window with previous window in stack
([?\s-P] . edwina-swap-previous-window)
;; Make a new window in the stack
([?\s-b] . edwina-clone-window)
))
;; Could not integrate these into the exwm global keys variable
(exwm-input-set-key (kbd "s-SPC") 'counsel-linux-app)
;; Edwina bindings
;; Increase master column size
(exwm-input-set-key (kbd "s-=") 'edwina-inc-mfact)
;; Increase master column size
(exwm-input-set-key (kbd "s--") 'edwina-dec-mfact)
;; Increase number of windows in master stack
(exwm-input-set-key (kbd "s-+") 'edwina-inc-nmaster)
;; Decrease number of windows in master stack
(exwm-input-set-key (kbd "s-_") 'edwina-dec-nmaster)
;; Set all X windows to open in char mode by default, allowing to pass through all key combinations
(add-hook 'exwm-manage-finish-hook