58 lines
1.5 KiB
EmacsLisp
58 lines
1.5 KiB
EmacsLisp
(require 'exwm)
|
|
(require 'exwm-systemtray)
|
|
(require 'edwina)
|
|
|
|
(exwm-systemtray-enable)
|
|
|
|
(display-battery-mode 1)
|
|
(display-time-mode 1)
|
|
|
|
(defun discord ()
|
|
(interactive)
|
|
(start-process "discord" nil "discord"))
|
|
|
|
;; TODO: if running, switch focus, otherwise start
|
|
(defun firefox ()
|
|
(interactive)
|
|
(start-process "firefox" nil "firefox"))
|
|
|
|
(setq exwm-input-global-keys
|
|
`((,(kbd "s-E") . exwm-exit)
|
|
(,(kbd "s-Q") . evil-quit)
|
|
(,(kbd "s-w") . exwm-workspace-switch)
|
|
;; Windowing
|
|
(,(kbd "s-h") . edwina-dec-mfact)
|
|
(,(kbd "s-j") . edwina-select-next-window)
|
|
(,(kbd "s-k") . edwina-select-previous-window)
|
|
(,(kbd "s-l") . edwina-inc-mfact)
|
|
|
|
(,(kbd "s-J") . edwina-swap-next-window)
|
|
(,(kbd "s-K") . edwina-swap-previous-window)
|
|
|
|
(,(kbd "s-r") . exwm-reset)
|
|
(,(kbd "s-f") . exwm-layout-set-fullscreen)
|
|
|
|
;; Applications
|
|
(,(kbd "s-<backspace>") . firefox)
|
|
(,(kbd "s-<return>") . vterm)
|
|
|
|
;; Workspaces
|
|
,@(mapcar (lambda (i)
|
|
`(,(kbd (format "s-%d" i)) .
|
|
(lambda ()
|
|
(interactive)
|
|
(exwm-workspace-switch-create ,i))))
|
|
(number-sequence 0 9))))
|
|
|
|
(add-hook 'exwm-update-class-hook
|
|
(lambda () (exwm-workspace-rename-buffer exwm-class-name)))
|
|
|
|
(edwina-mode)
|
|
|
|
(add-hook 'after-make-frame-functions 'edwina-arrange)
|
|
(add-hook 'delete-frame-functions 'edwina-arrange)
|
|
|
|
(setq exwm-manage-force-tiling 1)
|
|
|
|
(exwm-init)
|