diff --git a/elisp/exwm-setup.el b/elisp/exwm-setup.el index 2a08218..dcee605 100644 --- a/elisp/exwm-setup.el +++ b/elisp/exwm-setup.el @@ -1,6 +1,48 @@ (require 'exwm) -(require 'exwm-config) -(exwm-config-default) +;; Hide minibuffer (setq exwm-workspace-minibuffer-position 'bottom) (setq exwm-workspace-display-echo-area-timeout 5) + +;; Based on the default config +;; Set the initial workspace number. +(unless (get 'exwm-workspace-number 'saved-value) + (setq exwm-workspace-number 4)) +;; Make class name the buffer name +(add-hook 'exwm-update-class-hook + (lambda () + (exwm-workspace-rename-buffer exwm-class-name))) +;; Global keybindings. +(unless (get 'exwm-input-global-keys 'saved-value) + (setq exwm-input-global-keys + `( + ;; 's-r': Reset (to line-mode). + ([?\s-r] . exwm-reset) + ;; 's-w': Switch workspace. + ([?\s-w] . exwm-workspace-switch) + ;; 's-&': Launch application. + ([?\s-&] . (lambda (command) + (interactive (list (read-shell-command "$ "))) + (start-process-shell-command command nil command))) + ;; 's-N': Switch to certain workspace. + ,@(mapcar (lambda (i) + `(,(kbd (format "s-%d" i)) . + (lambda () + (interactive) + (exwm-workspace-switch-create ,i)))) + (number-sequence 0 9))))) +;; Line-editing shortcuts +(unless (get 'exwm-input-simulation-keys 'saved-value) + (setq exwm-input-simulation-keys + '(([?\C-b] . [left]) + ([?\C-f] . [right]) + ([?\C-p] . [up]) + ([?\C-n] . [down]) + ([?\C-a] . [home]) + ([?\C-e] . [end]) + ([?\M-v] . [prior]) + ([?\C-v] . [next]) + ([?\C-d] . [delete]) + ([?\C-k] . [S-end delete])))) +;; Enable EXWM +(exwm-enable) diff --git a/elisp/settings.el b/elisp/settings.el index 1e41f2b..38f6289 100644 --- a/elisp/settings.el +++ b/elisp/settings.el @@ -29,10 +29,12 @@ ;; remove trailing white spaces before saving (add-hook 'before-save-hook 'delete-trailing-whitespace) -;; disable bars by default +;; disable bars (tool-bar-mode -1) (menu-bar-mode -1) (scroll-bar-mode -1) +;; regain more space +(fringe-mode 1) ;; disable cursor blinking (setq blink-cursor-mode nil)