X-Git-Url: https://git.shemshak.org/gitweb.cgi/~bandali/configs/blobdiff_plain/cce35acae705899028777fe3e3e0cafe89c13451..6493829267a8bad985faaa661770a1d324dfabb5:/.emacs.d/init.el diff --git a/.emacs.d/init.el b/.emacs.d/init.el index deb88ba..8802071 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -395,16 +395,18 @@ For disabling the behaviour for certain buffers and/or modes." (global-auto-revert-non-file-buffers nil)) ;; time and battery in mode-line -(comment - (use-feature time - :init - (setq display-time-default-load-average nil) - :config - (display-time-mode)) +(use-feature time + :config + (display-time-mode) + :custom + (display-time-default-load-average nil) + (display-time-format "%a %b %-e, %-l:%M%P")) - (use-feature battery - :config - (display-battery-mode))) +(use-feature battery + :config + (display-battery-mode) + :custom + (battery-mode-line-format " %b%p%% %t")) (use-feature fringe :demand @@ -559,13 +561,13 @@ For disabling the behaviour for certain buffers and/or modes." ;;; Essential packages (use-package exwm - :disabled :demand :config (require 'exwm-config) - ;; Set the initial workspace number. - (setq exwm-workspace-number 4) + (setq + 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 (defun exwm-rename-buffer () @@ -577,6 +579,21 @@ For disabling the behaviour for certain buffers and/or modes." (add-hook 'exwm-update-class-hook 'exwm-rename-buffer) (add-hook 'exwm-update-title-hook 'exwm-rename-buffer) + (defun b/exwm-ws-prev-index () + "Return the index for the previous EXWM workspace, wrapping +around if needed." + (if (= exwm-workspace-current-index 0) + (1- exwm-workspace-number) + (1- exwm-workspace-current-index))) + + (defun b/exwm-ws-next-index () + "Return the index for the next EXWM workspace, wrapping +around if needed." + (if (= exwm-workspace-current-index + (1- exwm-workspace-number)) + 0 + (1+ exwm-workspace-current-index))) + ;; 's-R': Reset (exwm-input-set-key (kbd "s-R") #'exwm-reset) ;; 's-\': Switch workspace @@ -587,7 +604,33 @@ For disabling the behaviour for certain buffers and/or modes." (kbd (format "s-%d" i)) (lambda () (interactive) - (exwm-workspace-switch-create i)))) + (exwm-workspace-switch-create (1- i))))) + ;; 's-[': Switch to previous workspace + (defun b/exwm-ws-prev () + "Switch to previous EXWM workspace, wrapping around if needed." + (interactive) + (exwm-workspace-switch-create (b/exwm-ws-prev-index))) + (exwm-input-set-key (kbd "s-[") #'b/exwm-ws-prev) + ;; 's-]': Switch to next workspace + (defun b/exwm-ws-next () + "Switch to next EXWM workspace, wrapping around if needed." + (interactive) + (exwm-workspace-switch-create (b/exwm-ws-next-index))) + (exwm-input-set-key (kbd "s-]") #'b/exwm-ws-next) + ;; 's-{': Move window to previous workspace + (defun b/exwm-move-window-to-prev-ws () + "Move window to previous EXWM workspace, wrapping around if +needed." + (interactive) + (exwm-workspace-move-window (b/exwm-ws-prev-index))) + (exwm-input-set-key (kbd "s-{") #'b/exwm-move-window-to-prev-ws) + ;; 's-}': Move window to next workspace + (defun b/exwm-move-window-to-next-ws () + "Move window to next EXWM workspace, wrapping around if +needed." + (interactive) + (exwm-workspace-move-window (b/exwm-ws-next-index))) + (exwm-input-set-key (kbd "s-}") #'b/exwm-move-window-to-next-ws) ;; 's-SPC': Launch application ;; (exwm-input-set-key ;; (kbd "s-SPC") @@ -602,25 +645,25 @@ For disabling the behaviour for certain buffers and/or modes." ;; 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]))) + '(;; 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) @@ -693,16 +736,26 @@ For disabling the behaviour for certain buffers and/or modes." ;; (interactive) ;; (start-process-shell-command "mpc" nil "mpv next"))) - (defun b/exwm-pasystray () - "A command used to start pasystray." + (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 "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) + (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 "s-t") @@ -849,7 +902,9 @@ For disabling the behaviour for certain buffers and/or modes." (nconc magit-section-initial-visibility-alist '(([unpulled status] . show) ([unpushed status] . show))) - :custom (magit-display-buffer-function #'magit-display-buffer-fullframe-status-v1) + :custom + (magit-diff-refine-hunk t) + (magit-display-buffer-function #'magit-display-buffer-fullframe-status-v1) :custom-face (magit-diff-file-heading ((t (:weight normal))))) ;; recently opened files @@ -1389,8 +1444,8 @@ This function is intended for use with `ivy-ignore-buffers'." (use-package lsp-java :config (add-hook 'java-mode-hook - (lambda () - (setq-local company-backends (list 'company-lsp)))) + (lambda () + (setq-local company-backends (list 'company-lsp)))) (add-hook 'java-mode-hook 'lsp-java-enable) (add-hook 'java-mode-hook 'flycheck-mode) @@ -2255,7 +2310,7 @@ https://csclub.uwaterloo.ca/~abandali") "Return the In-Reply-To header for this message." (when message-reply-headers (let ((from (mail-header-from message-reply-headers)) - (msg-id (mail-header-id message-reply-headers))) + (msg-id (mail-header-id message-reply-headers))) (when from msg-id))))