X-Git-Url: https://git.shemshak.org/~bandali/configs/blobdiff_plain/3ec6733512109d04258477905e36c6786faa23b3..16ea77c0ea4327085af83b8db4a18f8f9668fe48:/.emacs.d/init.el diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 28c1ba7..d9ec432 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -61,7 +61,7 @@ ;; (delight "1.7") ;; (emms "7.7") ;; (rt-liberation "2.4"))) -(package-initialize)) + (package-initialize)) (setq package-archive-upload-base "/ssh:caffeine:~/www/p/elpa") @@ -193,7 +193,7 @@ (with-eval-after-load 'time (setq display-time-default-load-average nil - display-time-format " %a %b %-e %-l:%M%P" + display-time-format " %a %Y-%m-%d %-l:%M%P" display-time-mail-icon '(image :type xpm :file "gnus/gnus-pointer.xpm" :ascent center) @@ -207,7 +207,7 @@ (run-with-idle-timer 0.1 nil #'require 'battery) (with-eval-after-load 'battery - (setq battery-mode-line-format " %p%% %t") + (setq battery-mode-line-format " [%p%% %t]") (display-battery-mode)) ;; (with-eval-after-load 'fringe @@ -216,7 +216,19 @@ (run-with-idle-timer 0.5 nil #'require 'winner) (with-eval-after-load 'winner - (winner-mode 1)) + (winner-mode 1) + (when (featurep 'exwm) + ;; prevent a bad interaction between EXWM and winner-mode, where + ;; sometimes closing a window (like closing a terminal after + ;; entering a GPG password via pinentry-gnome3's floating window) + ;; results in a dead frame somewhere and effectively freezes EXWM. + (advice-add + 'winner-insert-if-new + :around + (lambda (orig-fun &rest args) + ;; only add the frame if it's live + (when (frame-live-p (car args)) + (apply orig-fun args)))))) (run-with-idle-timer 0.5 nil #'require 'windmove) (with-eval-after-load 'windmove @@ -272,8 +284,7 @@ (with-eval-after-load 'ediff (setq ediff-window-setup-function 'ediff-setup-windows-plain - ediff-split-window-function 'split-window-horizontally) - (add-hook 'ediff-after-quit-hook-internal #'winner-undo)) + ediff-split-window-function 'split-window-horizontally)) (with-eval-after-load 'face-remap (setq @@ -418,12 +429,19 @@ Make N (default: 1) copies of the current line or region." (dotimes (_ (abs n1)) (insert text)))))) -(defun b/invert-default-face () - "Invert the `default' face (swap its background and foreground). -Effectively a very simple light/dark theme toggle switch." - (interactive) - (invert-face 'default (selected-frame)) - (invert-face 'mode-line (selected-frame))) +(defun b/invert-default-face (arg) + "Invert the `default' and `mode-line' faces for the current frame. +Swap the background and foreground for the two `default' and +`mode-line' faces, effectively acting like a simple light/dark +theme toggle. If prefix argument ARG is given, invert the faces +for all frames." + (interactive "P") + (let ((frame (unless arg + (selected-frame)))) + (invert-face 'default frame) + (invert-face 'mode-line frame)) + (when (fboundp #'exwm-systemtray--refresh-background-color) + (exwm-systemtray--refresh-background-color 'remap))) (defun b/export-frame () (interactive) @@ -484,7 +502,14 @@ Effectively a very simple light/dark theme toggle switch." (expand-file-name (convert-standard-filename "lisp") user-emacs-directory)) -;; (require 'bandali-exwm) +(when + (and + (display-graphic-p) + ;; we're not running in another WM/DE + (not (getenv "XDG_CURRENT_DESKTOP")) + (member (system-name) '("chaman" "langa"))) + (require 'bandali-exwm) + (global-set-key (kbd "C-x b") #'exwm-workspace-switch-to-buffer)) (require 'bandali-org) @@ -772,12 +797,6 @@ Effectively a very simple light/dark theme toggle switch." (define-key b/boxquote-prefix-map (kbd "M-q") #'boxquote-fill-paragraph) (define-key b/boxquote-prefix-map (kbd "M-w") #'boxquote-kill-ring-save)) -(add-to-list 'load-path (b/lisp "hl-todo")) -(run-with-idle-timer 0.5 nil #'require 'hl-todo) -(with-eval-after-load 'hl-todo - ;; Highlight TODO in buffers. - (global-hl-todo-mode)) - ;; `debbugs' (global-set-key (kbd "C-c D d") #'debbugs-gnu) (global-set-key (kbd "C-c D b") #'debbugs-gnu-bugs)