X-Git-Url: https://git.shemshak.org/~bandali/configs/blobdiff_plain/9dcd3cfe2201f862348a643061ddb39ee0042ba9..d141ce1178b5a4728e31ca382e4323552d650df7:/.emacs.d/init.el diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 63d5902..e499e4b 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -181,8 +181,6 @@ (setq use-package-always-defer t) (require 'bind-key) -(use-package delight) - ;;; Initial setup @@ -396,6 +394,7 @@ For disabling the behaviour for certain buffers and/or modes." ;; time and battery in mode-line (use-feature time + :demand :config (display-time-mode) :custom @@ -403,6 +402,7 @@ For disabling the behaviour for certain buffers and/or modes." (display-time-format "%a %b %-e, %-l:%M%P")) (use-feature battery + :demand :config (display-battery-mode) :custom @@ -569,13 +569,13 @@ For disabling the behaviour for certain buffers and/or modes." exwm-workspace-number 4 exwm-workspace-index-map (lambda (i) (number-to-string (1+ i)))) - ;; Make class name the buffer name, truncating beyond 50 characters + ;; Make class name the buffer name, truncating beyond 60 characters (defun exwm-rename-buffer () (interactive) (exwm-workspace-rename-buffer (concat exwm-class-name ":" - (if (<= (length exwm-title) 50) exwm-title - (concat (substring exwm-title 0 49) "..."))))) + (if (<= (length exwm-title) 60) exwm-title + (concat (substring exwm-title 0 59) "..."))))) (add-hook 'exwm-update-class-hook 'exwm-rename-buffer) (add-hook 'exwm-update-title-hook 'exwm-rename-buffer) @@ -599,7 +599,7 @@ around if needed." ;; 's-\': Switch workspace (exwm-input-set-key (kbd "s-\\") #'exwm-workspace-switch) ;; 's-N': Switch to certain workspace - (dotimes (i 10) + (dotimes (i exwm-workspace-number) (exwm-input-set-key (kbd (format "s-%d" i)) (lambda () @@ -640,47 +640,34 @@ needed." (exwm-input-set-key (kbd "M-s-SPC") #'counsel-linux-app) - ;; Shorten 'C-c C-q' to 'C-q' - (define-key exwm-mode-map [?\C-q] #'exwm-input-send-next-key) - - ;; Line-editing shortcuts - (setq exwm-input-simulation-keys - '(;; movement - ([?\C-b] . [left]) - ([?\M-b] . [C-left]) - ([?\C-f] . [right]) - ([?\M-f] . [C-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]) - ;; cut/copy/paste - ;; ([?\C-w] . [?\C-x]) - ([?\M-w] . [?\C-c]) - ([?\C-y] . [?\C-v]) - ;; search - ([?\C-s] . [?\C-f]))) - - ;; Enable EXWM - (exwm-enable) + (exwm-input-set-key + (kbd "s-") (lambda () + (interactive) + (b/start-process "urxvt"))) - (add-hook 'exwm-init-hook #'exwm-config--fix/ido-buffer-window-other-frame) + (exwm-input-set-key + (kbd "s-t") + (lambda () + (interactive) + (exwm-floating-toggle-floating))) - (require 'exwm-systemtray) - (exwm-systemtray-enable) + (exwm-input-set-key + (kbd "s-f") + (lambda () + (interactive) + (exwm-layout-toggle-fullscreen))) - (require 'exwm-randr) - (exwm-randr-enable) + (exwm-input-set-key + (kbd "s-w") + (lambda () + (interactive) + (kill-buffer (current-buffer)))) - ;; (exwm-input-set-key - ;; (kbd "s-") - ;; (lambda () - ;; (interactive) - ;; (start-process "urxvt" nil "urxvt"))) + (exwm-input-set-key + (kbd "s-q") + (lambda () + (interactive) + (exwm-manage--kill-client))) ;; (exwm-input-set-key ;; (kbd "s-SPC") ;; rofi doesn't properly launch programs when started from emacs @@ -700,86 +687,81 @@ needed." ;; (interactive) ;; (start-process "rofi-pass" nil "rofi-pass"))) - ;; (exwm-input-set-key - ;; (kbd "") - ;; (lambda () - ;; (interactive) - ;; (start-process-shell-command "pamixer" nil "pamixer --toggle-mute"))) - - ;; (exwm-input-set-key - ;; (kbd "") - ;; (lambda () - ;; (interactive) - ;; (start-process-shell-command "pamixer" nil "pamixer --allow-boost --decrease 5"))) - - ;; (exwm-input-set-key - ;; (kbd "") - ;; (lambda () - ;; (interactive) - ;; (start-process-shell-command "pamixer" nil "pamixer --allow-boost --increase 5"))) - - ;; (exwm-input-set-key - ;; (kbd "") - ;; (lambda () - ;; (interactive) - ;; (start-process-shell-command "mpc" nil "mpc toggle"))) - - ;; (exwm-input-set-key - ;; (kbd "") - ;; (lambda () - ;; (interactive) - ;; (start-process-shell-command "mpc" nil "mpc prev"))) - - ;; (exwm-input-set-key - ;; (kbd "") - ;; (lambda () - ;; (interactive) - ;; (start-process-shell-command "mpc" nil "mpv next"))) + (exwm-input-set-key + (kbd "") + (lambda () + (interactive) + (start-process-shell-command "pamixer" nil "pamixer --toggle-mute"))) - (comment - (defun b/exwm-pasystray () - "A command used to start pasystray." - (interactive) - (if (executable-find "pasystray") - (progn - (message "EXWM: starting pasystray ...") - (start-process-shell-command "pasystray" nil "pasystray --notify=all")) - (message "EXWM: pasystray is not installed, abort!"))) - (add-hook 'exwm-init-hook #'b/exwm-pasystray)) - - (defun b/exwm-nm-applet () - "A command used to start nm-applet." - (interactive) - (if (executable-find "nm-applet") - (progn - (message "EXWM: starting nm-applet ...") - (start-process-shell-command "nm-applet" nil "nm-applet")) - (message "EXWM: nm-applet is not installed, abort!"))) - (add-hook 'exwm-init-hook #'b/exwm-nm-applet) + (exwm-input-set-key + (kbd "") + (lambda () + (interactive) + (start-process-shell-command "pamixer" nil "pamixer --allow-boost --decrease 5"))) (exwm-input-set-key - (kbd "s-t") + (kbd "") (lambda () (interactive) - (exwm-floating-toggle-floating))) + (start-process-shell-command "pamixer" nil "pamixer --allow-boost --increase 5"))) (exwm-input-set-key - (kbd "s-f") + (kbd "") (lambda () (interactive) - (exwm-layout-toggle-fullscreen))) + (start-process-shell-command "mpc" nil "mpc toggle"))) (exwm-input-set-key - (kbd "s-w") + (kbd "") (lambda () (interactive) - (kill-buffer (current-buffer)))) + (start-process-shell-command "mpc" nil "mpc prev"))) (exwm-input-set-key - (kbd "s-q") + (kbd "") (lambda () (interactive) - (exwm-manage--kill-client)))) + (start-process-shell-command "mpc" nil "mpc next"))) + + ;; Shorten 'C-c C-q' to 'C-q' + (define-key exwm-mode-map [?\C-q] #'exwm-input-send-next-key) + + ;; Line-editing shortcuts + (setq exwm-input-simulation-keys + '(;; movement + ([?\C-b] . [left]) + ([?\M-b] . [C-left]) + ([?\C-f] . [right]) + ([?\M-f] . [C-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 ?\C-x]) + ;; cut/copy/paste + ([?\C-w] . [?\C-x]) + ([?\M-w] . [?\C-c]) + ([?\C-y] . [?\C-v]) + ([?\M-d] . [C-S-right ?\C-x]) + ([?\M-\d] . [C-S-left ?\C-x]) + ;; search + ([?\C-s] . [?\C-f]) + ;; escape + ([?\C-g] . [escape]))) + + ;; Enable EXWM + (exwm-enable) + + (add-hook 'exwm-init-hook #'exwm-config--fix/ido-buffer-window-other-frame) + + (require 'exwm-systemtray) + (exwm-systemtray-enable) + + (require 'exwm-randr) + (exwm-randr-enable)) ;; use the org-plus-contrib package to get the whole deal (use-package org-plus-contrib) @@ -920,7 +902,6 @@ needed." (use-package ivy :defer 0.3 - :delight ;; " 🙒" :bind (:map ivy-minibuffer-map ([escape] . keyboard-escape-quit) @@ -961,7 +942,6 @@ This function is intended for use with `ivy-ignore-buffers'." (use-package counsel :after ivy - :delight :bind (([remap execute-extended-command] . counsel-M-x) ([remap find-file] . counsel-find-file) ("C-c b b" . ivy-switch-buffer) @@ -1084,10 +1064,11 @@ This function is intended for use with `ivy-ignore-buffers'." (or (name . "^\\*scratch\\*$") (name . "^\\*Messages\\*$"))) + ("exwm" (mode . exwm-mode)) ("erc" (mode . erc-mode))))) (ibuffer-formats '((mark modified read-only locked " " - (name 18 18 :left :elide) + (name 72 72 :left :elide) " " (size-h 9 -1 :right) " " @@ -1101,7 +1082,6 @@ This function is intended for use with `ivy-ignore-buffers'." (use-feature outline :disabled :hook (prog-mode . outline-minor-mode) - :delight (outline-minor-mode " outl") :bind (:map outline-minor-mode-map @@ -1202,7 +1182,6 @@ This function is intended for use with `ivy-ignore-buffers'." ;; display Lisp objects at point in the echo area (use-feature eldoc :when (version< "25" emacs-version) - :delight " eldoc" :config (global-eldoc-mode)) ;; highlight matching parens @@ -1215,7 +1194,6 @@ This function is intended for use with `ivy-ignore-buffers'." :config (electric-pair-mode)) (use-feature simple - :delight (auto-fill-function " fill") :config (column-number-mode) :custom ;; Save what I copy into clipboard from other applications into Emacs' @@ -1253,7 +1231,6 @@ This function is intended for use with `ivy-ignore-buffers'." (use-package company :defer 0.6 - :delight " comp" :bind (:map company-active-map ([tab] . company-complete-common-or-cycle) @@ -1282,8 +1259,7 @@ This function is intended for use with `ivy-ignore-buffers'." (setq flycheck-check-syntax-automatically '(mode-enabled save)) :custom (flycheck-mode-line-prefix "flyc")) -(use-feature flyspell - :delight " flysp") +(use-feature flyspell) ;; http://endlessparentheses.com/ispell-and-apostrophes.html (use-feature ispell @@ -1313,7 +1289,6 @@ This function is intended for use with `ivy-ignore-buffers'." #'endless/replace-quote)) (use-feature abbrev - :delight " abbr" :hook (text-mode . abbrev-mode)) @@ -1326,12 +1301,9 @@ This function is intended for use with `ivy-ignore-buffers'." (add-hook 'lisp-interaction-mode-hook #'indent-spaces-mode)) (use-feature reveal - :delight (reveal-mode " reveal") :hook (emacs-lisp-mode . reveal-mode)) -(use-feature elisp-mode - :delight (emacs-lisp-mode "Elisp" :major)) - +(use-feature elisp-mode) (use-package alloy-mode :straight (:host github :repo "dwwmmn/alloy-mode") @@ -1566,7 +1538,6 @@ This function is intended for use with `ivy-ignore-buffers'." (use-package which-key :defer 0.4 - :delight :config (which-key-add-key-based-replacements ;; prefixes for global prefixes and minor modes @@ -1720,7 +1691,6 @@ This function is intended for use with `ivy-ignore-buffers'." ;; easily type pretty quotes & other typography, like ‘’“”-–—«»‹› (use-package typo :defer 0.5 - :delight " typo" :config (typo-global-mode 1) :hook (((text-mode erc-mode) . typo-mode) @@ -1807,7 +1777,6 @@ This function is intended for use with `ivy-ignore-buffers'." (use-package page-break-lines :defer 0.5 - :delight " pgln" :custom (page-break-lines-max-width fill-column) :config @@ -1935,6 +1904,10 @@ This function is intended for use with `ivy-ignore-buffers'." (goto-char (cdr macro))) (reftex-this-word))))) +(use-package minions + :demand + :config (minions-mode)) + ;;; Email (with Gnus) @@ -2350,8 +2323,7 @@ https://csclub.uwaterloo.ca/~abandali") :custom (message-elide-ellipsis "[...]\n")) -(use-feature mml - :delight " mml") +(use-feature mml) (use-feature mml-sec :custom