EXWM configuration
This commit is contained in:
parent
c0503de04c
commit
004b3f66d0
108
config.org
108
config.org
|
|
@ -19,6 +19,13 @@ Welcome to my Emacs configuration!
|
|||
#+BEGIN_SRC emacs-lisp
|
||||
(scroll-bar-mode -1)
|
||||
#+END_SRC
|
||||
*** Modern Fringes
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(use-package modern-fringes
|
||||
:ensure t
|
||||
:init
|
||||
(modern-fringes-invert-arrows))
|
||||
#+END_SRC
|
||||
*** Theming
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(use-package dracula-theme
|
||||
|
|
@ -40,31 +47,26 @@ All The Icons for Ivy/Counsel
|
|||
(all-the-icons-ivy-setup))
|
||||
#+END_SRC
|
||||
*** Mode Line
|
||||
Mode Line Configuration :
|
||||
**** Spaceline
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(setq telephone-line-lhs
|
||||
'((evil . (telephone-line-evil-tag-segment))
|
||||
(accent . (telephone-line-vc-segment
|
||||
telephone-line-erc-modified-channels-segment
|
||||
telephone-line-process-segment))
|
||||
(nil . (telephone-line-buffer-segment))))
|
||||
(setq telephone-line-rhs
|
||||
'((nil . (telephone-line-misc-info-segment))
|
||||
(accent . (telephone-line-major-mode-segment))
|
||||
(evil . (telephone-line-airline-position-segment))))
|
||||
|
||||
(setq telephone-line-primary-left-separator 'telephone-line-flat
|
||||
telephone-line-secondary-left-separator 'telephone-line-flat
|
||||
telephone-line-primary-right-separator 'telephone-line-flat
|
||||
telephone-line-secondary-right-separator 'telephone-line-flat)
|
||||
(setq telephone-line-height 20
|
||||
telephone-line-evil-use-short-tag t)
|
||||
#+END_SRC
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(use-package telephone-line
|
||||
(use-package spaceline
|
||||
:ensure t
|
||||
:init
|
||||
(telephone-line-mode))
|
||||
:config
|
||||
(require 'spaceline-config)
|
||||
(setq powerline-default-separator (quote arrow))
|
||||
(spaceline-spacemacs-theme))
|
||||
#+END_SRC
|
||||
|
||||
Display the time on the Mode Line, this is more useful for EXWM.
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(setq display-time-default-load-average nil)
|
||||
(display-time-mode t)
|
||||
#+END_SRC
|
||||
**** Diminish
|
||||
With Diminish you can optionally remove some of the names of the modes in the Mode Line.
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(use-package diminish
|
||||
:ensure t)
|
||||
#+END_SRC
|
||||
*** Emacs Dashboard
|
||||
Install the Emacs Dashboard :
|
||||
|
|
@ -134,28 +136,70 @@ Emacs Dashboard Config :
|
|||
#+END_SRC
|
||||
** EXWM
|
||||
Emacs X Window Manager
|
||||
Add hashtag before + to enable
|
||||
|
||||
+BEGIN_SRC emacs-lisp
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(use-package exwm
|
||||
:ensure t
|
||||
:config
|
||||
(require 'exwm-config)
|
||||
(exwm-config-default))
|
||||
+END_SRC
|
||||
#+END_SRC
|
||||
|
||||
Add hashtag before + to enable
|
||||
|
||||
EXWM System Try
|
||||
+BEGIN_SRC emacs-lisp
|
||||
EXWM System Tray
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(require 'exwm-systemtray)
|
||||
(exwm-systemtray-enable)
|
||||
+END_SRC
|
||||
#+END_SRC
|
||||
|
||||
If not using EXWM, it will ask to replace the Window Manager with EXWM, I do not like this prompt when using Emacs on other Window Managers.
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(setq exwm-replace 'nil)
|
||||
#+END_SRC
|
||||
|
||||
Ido gets automatically enabled in the default EXWM configuration, as we're using Ivy. Let's disable it.
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(ido-mode -1)
|
||||
#+END_SRC
|
||||
|
||||
Set Number of Workspaces initially created.
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(setq exwm-workspace-number 10)
|
||||
#+END_SRC
|
||||
|
||||
EXWM Specific Keybindings
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
|
||||
; Set whether workspaces wrap around or not.
|
||||
(defvar exwm-workspace-switch-wrap t)
|
||||
|
||||
(defun exwm/exwm-workspace-next ()
|
||||
"Switch to next exwm-workspace (to the right)."
|
||||
(interactive)
|
||||
(let* ((only-workspace? (equal exwm-workspace-number 1))
|
||||
(overflow? (= exwm-workspace-current-index (1- exwm-workspace-number))))
|
||||
(cond
|
||||
(only-workspace? nil)
|
||||
(overflow? (when exwm-workspace-switch-wrap
|
||||
(exwm-workspace-switch 0)))
|
||||
(t (exwm-workspace-switch (1+ exwm-workspace-current-index))))))
|
||||
|
||||
(defun exwm/exwm-workspace-prev ()
|
||||
"Switch to next exwm-workspace (to the left)."
|
||||
(interactive)
|
||||
(let* ((only-workspace? (equal exwm-workspace-number 1))
|
||||
(overflow? (= exwm-workspace-current-index 0)))
|
||||
(cond
|
||||
(only-workspace? nil)
|
||||
(overflow? (when exwm-workspace-switch-wrap
|
||||
(exwm-workspace-switch (1- exwm-workspace-number))))
|
||||
(t (exwm-workspace-switch (1- exwm-workspace-current-index))))))
|
||||
|
||||
(global-set-key (kbd "<s-right>") 'exwm/exwm-workspace-next)
|
||||
(global-set-key (kbd "<s-left>") 'exwm/exwm-workspace-prev)
|
||||
(global-set-key (kbd "s-e") 'evil-quit-all)
|
||||
(global-set-key (kbd "s-k") 'exwm-workspace-move)
|
||||
(global-set-key (kbd "s-w") 'exwm-workspace-swap)
|
||||
#+END_SRC
|
||||
** Dynamic Window Tiling
|
||||
*** Edwina
|
||||
Edwina is a dynamic window manager for Emacs.
|
||||
|
|
@ -214,7 +258,7 @@ A recreation of the iconic Suckless Dynamic Menu.
|
|||
(use-package dmenu
|
||||
:ensure t
|
||||
:bind
|
||||
("s-f" . 'dmenu))
|
||||
("s-d" . 'dmenu))
|
||||
#+END_SRC
|
||||
** Evil Mode
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
|
|
|
|||
Loading…
Reference in New Issue