From 2de71293a977606d805f87a72954300b22aa87df Mon Sep 17 00:00:00 2001 From: bd Date: Wed, 25 Dec 2024 02:11:51 -0700 Subject: solve (most) warnings, shackle->display-buffer-alist --- .config/emacs/init.el | 6 +- .config/emacs/modules/bd--browse.el | 3 - .config/emacs/modules/bd--buffers.el | 71 --------------- .config/emacs/modules/bd--devel.el | 8 +- .config/emacs/modules/bd--emms.el | 23 +++-- .config/emacs/modules/bd--exwm-windowing.el | 107 ----------------------- .config/emacs/modules/bd--exwm.el | 107 +++++++++++++++++++++++ .config/emacs/modules/bd--files.el | 37 ++++---- .config/emacs/modules/bd--gpg.el | 2 - .config/emacs/modules/bd--irc.el | 26 +++--- .config/emacs/modules/bd--minibuffer.el | 129 ++++++---------------------- .config/emacs/modules/bd--window.el | 61 +++++++++++++ 12 files changed, 251 insertions(+), 329 deletions(-) delete mode 100644 .config/emacs/modules/bd--buffers.el delete mode 100644 .config/emacs/modules/bd--exwm-windowing.el create mode 100644 .config/emacs/modules/bd--exwm.el create mode 100644 .config/emacs/modules/bd--window.el (limited to '.config/emacs') diff --git a/.config/emacs/init.el b/.config/emacs/init.el index bf36a12..7e27b0e 100644 --- a/.config/emacs/init.el +++ b/.config/emacs/init.el @@ -102,14 +102,14 @@ (require 'bd--irc) (require 'bd--shells) (require 'bd--minibuffer) -(require 'bd--buffers) +(require 'bd--window) (require 'bd--devel) -(require 'bd--org) +;; (require 'bd--org) (require 'bd--notes) (require 'bd--emms) (require 'bd--modeline) (require 'bd--themes) -(require 'bd--exwm-windowing) +(require 'bd--exwm) ;;; init.el ends here diff --git a/.config/emacs/modules/bd--browse.el b/.config/emacs/modules/bd--browse.el index fceccc3..3ba024a 100644 --- a/.config/emacs/modules/bd--browse.el +++ b/.config/emacs/modules/bd--browse.el @@ -119,9 +119,6 @@ icecat, or eww." "youtube.com" "youtu.be")))) -(use-package apropos - :bind (("C-h a" . selector-apropos))) - (provide 'bd--browse) ;;; bd--browse.el ends here diff --git a/.config/emacs/modules/bd--buffers.el b/.config/emacs/modules/bd--buffers.el deleted file mode 100644 index a082dc8..0000000 --- a/.config/emacs/modules/bd--buffers.el +++ /dev/null @@ -1,71 +0,0 @@ -;;; -*- lexical-binding: t; -*- -;;; Commentary: -;;; Code: - - -(require 'transient) - -(use-package autorevert - :init - (global-auto-revert-mode) - :config - (setopt global-auto-revert-non-file-buffers t - auto-revert-interval 30)) - -(use-package shackle - :demand t - :config - (shackle-mode) - (setopt switch-to-buffer-obey-display-actions t - shackle-rules - '( - ;; native - (compilation-mode :select nil :align bottom :size 0.2) - (completion-list-mode :select nil :align bottom :size 0.1) - ("^\\*Async Shell Command\\*.*$" :regexp t :ignore t) - ;; emms - (emms-playlist-mode :select t :align left :size 0.2) - ))) - - -(defun bd/layout--do-with-haste (f) - (let* ((args (transient-args 'bd/layout-dispatcher)) - (haste (if (member "haste" args) 3 1))) - (funcall f haste))) -(transient-define-prefix bd/layout-dispatcher () - ["Dispatcher > Layout\n" - ["Infixes" - ("s" "haste" "haste")]] - [["Commands" - ("-" "text decrease" - (lambda () (interactive) (bd/layout--do-with-haste #'text-scale-decrease)) - :transient t) - ("=" "text increase" - (lambda () (interactive) (bd/layout--do-with-haste #'text-scale-increase)) - :transient t) - ("b" "narrow" - (lambda () (interactive) (bd/layout--do-with-haste #'shrink-window-horizontally)) - :transient t) - ("f" "widen" - (lambda () (interactive) (bd/layout--do-with-haste #'enlarge-window-horizontally)) - :transient t) - ("p" "shrink" - (lambda () (interactive) (bd/layout--do-with-haste #'shrink-window)) - :transient t) - ("n" "enlarge" - (lambda () (interactive) (bd/layout--do-with-haste #'enlarge-window)) - :transient t) - ("|" "balance" balance-windows)] - ["" - ("N" "shift down" windmove-swap-states-down :transient t) - ("P" "shift up" windmove-swap-states-up :transient t) - ("F" "shift right" windmove-swap-states-right :transient t) - ("B" "shift left" windmove-swap-states-left :transient t)] - ["" - ("a" "alpha" bd/set-frame-alpha) - ("w" "wallpaper" bd/set-bg)]]) -(keymap-global-set "C-c w" #'bd/layout-dispatcher) - - -(provide 'bd--buffers) -;;; bd--buffers.el ends here diff --git a/.config/emacs/modules/bd--devel.el b/.config/emacs/modules/bd--devel.el index 37762ea..78d8985 100644 --- a/.config/emacs/modules/bd--devel.el +++ b/.config/emacs/modules/bd--devel.el @@ -38,7 +38,7 @@ (use-package autoformat :config - (setopt autoformat-mode 1)) + (setopt autoformat-mode t)) (use-package hl-line :hook @@ -55,6 +55,12 @@ (defun bd/compile-dwim (f) (let ((default-directory (bd/get-directory-dwim))) (call-interactively f))) + (add-to-list 'display-buffer-alist + '((major-mode . compilation-mode) + (display-buffer-in-side-window) + (side . bottom) + (slot . -1) + (width . 0.2))) (keymap-set prog-mode-map "C-," #'(lambda () diff --git a/.config/emacs/modules/bd--emms.el b/.config/emacs/modules/bd--emms.el index 2ecb684..baa10fd 100644 --- a/.config/emacs/modules/bd--emms.el +++ b/.config/emacs/modules/bd--emms.el @@ -5,9 +5,9 @@ (use-package emms :bind (("C-z C-s" . #'emms-quickstart) - ("C-z C-m" . #'switch-to-emms) - :map emms-playlist-mode-map - ("q" . #'quit-window)) + ("C-z C-m" . #'switch-to-emms) + :map emms-playlist-mode-map + ("q" . #'quit-window)) :config (require 'emms-setup) (require 'emms-player-mpv) @@ -49,11 +49,18 @@ playback." (t (emms-track-simple-description track)))))) (setopt emms-source-file-default-directory (expand-file-name "~/ik/playlists/") - emms-info-report-each-num-tracks 2000 - emms-playlist-buffer-name "*Playlist*" - emms-mode-line-icon-enabled-p nil - emms-mode-line-format " [%s] " - emms-repeat-playlist t)) + emms-info-report-each-num-tracks 2000 + emms-playlist-buffer-name "*Playlist*" + emms-mode-line-icon-enabled-p nil + emms-mode-line-format " [%s] " + emms-repeat-playlist t) + (add-to-list 'display-buffer-alist + '((major-mode . emms-playlist-mode) + (display-buffer-in-side-window) + (side . left) + (slot . 0) + (width . 0.2) + (post-command-select-window t)))) (provide 'bd--emms) diff --git a/.config/emacs/modules/bd--exwm-windowing.el b/.config/emacs/modules/bd--exwm-windowing.el deleted file mode 100644 index aee83cf..0000000 --- a/.config/emacs/modules/bd--exwm-windowing.el +++ /dev/null @@ -1,107 +0,0 @@ -;;; -*- lexical-binding: t; -*- -;;; Commentary: -;;; Code: - - -(bd/set-bg) - -(use-package exwm - :demand t - :config - (defun bd/exwm-update-title () - "Changes the buffer name to reflect the class name for -that buffer." - (exwm-workspace-rename-buffer exwm-title)) - (add-hook 'exwm-update-title-hook #'bd/exwm-update-title) - - (define-key exwm-mode-map [?\C-q] 'exwm-input-send-next-key) - (exwm-enable) - (setopt exwm-replace nil - exwm-input-prefix-keys - `(?\C-x - ?\C-u - ?\C-g - ?\C-h - ?\C-z - ?\C-` - ?\M-x - ?\M-` - ?\M-& - ?\M-: - ,@(mapcar (lambda (i) - (kbd (concat "s-" (number-to-string i)))) - (number-sequence 0 9))) - - exwm-input-global-keys - '(([?\s-n] . other-window) - ([?\s-p] . (lambda () - (interactive) - (other-window -1))) - ([?\s-L] . bd/lock) - ([f2] . bd/toggle-mute) - ([f5] . bd/decrement-volume) - ([f6] . bd/increment-volume) - ([f7] . bd/decrement-brightness) - ([f8] . bd/increment-brightness) - ([f9] . emms-previous) - ([f10] . emms-next) - ([print] . bd/shoot-part) - ([S-print] . bd/shoot-full) - ([?\s-O] . bd/browse-dispatcher) - ([?\s-P] . bd/password) - ([?\s-r] . exwm-reset) - ([?\s-d] . toggle-window-dedicated) - ([?\s-q] . kill-current-buffer) - ([?\s-x] . (lambda (command) - (interactive (list (read-shell-command "s-x "))) - (start-process-shell-command command nil command)))) - - 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]) - ([?\M-w] . [C-c]) - ([?\C-y] . [C-v]) - ([?\C-s] . [C-g]) - ([?\C-r] . [C-S-g]) - ([?\M-d] . [C-delete]) - ([?\M-b] . [C-left]) - ([?\M-f] . [C-right]) - ([?\H-b] . [M-left]) - ([?\H-f] . [M-right])))) - -(use-package server - :defer 1 - :config - (setopt server-client-instructions nil) - (unless (server-running-p) - (server-start))) - -(setopt tab-bar-select-tab-modifiers '(super)) - -(defvar new-mode-line nil) -(defun set-new-mode-line () - "Return the current value of my-custom-variable for the mode line." - (setq new-mode-line - (replace-regexp-in-string - "%" "%%" - (format "[%s] [%s]" - (shell-command-to-string "/home/bdunahu/.local/bin/mail-string 2>/dev/null") - (shell-command-to-string "/home/bdunahu/.local/bin/t1-string 2>/dev/null"))))) - -(defvar-local bd/external-mode-line - '(:eval (when new-mode-line - new-mode-line))) - -(run-with-timer t 30 #'set-new-mode-line) -(add-to-list 'global-mode-string bd/external-mode-line) - -(provide 'bd--exwm-windowing) -;;; bd--exwm-windowing.el ends here diff --git a/.config/emacs/modules/bd--exwm.el b/.config/emacs/modules/bd--exwm.el new file mode 100644 index 0000000..1b48412 --- /dev/null +++ b/.config/emacs/modules/bd--exwm.el @@ -0,0 +1,107 @@ +;;; -*- lexical-binding: t; -*- +;;; Commentary: +;;; Code: + + +(bd/set-bg) + +(use-package exwm + :demand t + :config + (defun bd/exwm-update-title () + "Changes the buffer name to reflect the class name for +that buffer." + (exwm-workspace-rename-buffer exwm-title)) + (add-hook 'exwm-update-title-hook #'bd/exwm-update-title) + + (define-key exwm-mode-map [?\C-q] 'exwm-input-send-next-key) + (exwm-enable) + (setopt exwm-replace nil + exwm-input-prefix-keys + `([?\C-x] + [?\C-u] + [?\C-g] + [?\C-h] + [?\C-z] + [?\C-`] + [?\M-x] + [?\M-`] + [?\M-&] + [?\M-:] + ,@(mapcar (lambda (i) + (kbd (concat "s-" (number-to-string i)))) + (number-sequence 0 9))) + + exwm-input-global-keys + '(([?\s-n] . other-window) + ([?\s-p] . (lambda () + (interactive) + (other-window -1))) + ([?\s-L] . bd/lock) + ([f2] . bd/toggle-mute) + ([f5] . bd/decrement-volume) + ([f6] . bd/increment-volume) + ([f7] . bd/decrement-brightness) + ([f8] . bd/increment-brightness) + ([f9] . emms-previous) + ([f10] . emms-next) + ([print] . bd/shoot-part) + ([S-print] . bd/shoot-full) + ([?\s-O] . bd/browse-dispatcher) + ([?\s-P] . bd/password) + ([?\s-r] . exwm-reset) + ([?\s-d] . toggle-window-dedicated) + ([?\s-q] . kill-current-buffer) + ([?\s-x] . (lambda (command) + (interactive (list (read-shell-command "s-x "))) + (start-process-shell-command command nil command)))) + + 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]) + ([?\M-w] . [C-c]) + ([?\C-y] . [C-v]) + ([?\C-s] . [C-g]) + ([?\C-r] . [C-S-g]) + ([?\M-d] . [C-delete]) + ([?\M-b] . [C-left]) + ([?\M-f] . [C-right]) + ([?\H-b] . [M-left]) + ([?\H-f] . [M-right])))) + +(use-package server + :defer 1 + :config + (setopt server-client-instructions nil) + (unless (server-running-p) + (server-start))) + +(setopt tab-bar-select-tab-modifiers '(super)) + +(defvar new-mode-line nil) +(defun set-new-mode-line () + "Return the current value of my-custom-variable for the mode line." + (setq new-mode-line + (replace-regexp-in-string + "%" "%%" + (format "[%s] [%s]" + (shell-command-to-string "/home/bdunahu/.local/bin/mail-string 2>/dev/null") + (shell-command-to-string "/home/bdunahu/.local/bin/t1-string 2>/dev/null"))))) + +(defvar-local bd/external-mode-line + '(:eval (when new-mode-line + new-mode-line))) + +(run-with-timer t 30 #'set-new-mode-line) +(add-to-list 'global-mode-string bd/external-mode-line) + +(provide 'bd--exwm) +;;; bd--exwm.el ends here diff --git a/.config/emacs/modules/bd--files.el b/.config/emacs/modules/bd--files.el index 4e19c11..f29383d 100644 --- a/.config/emacs/modules/bd--files.el +++ b/.config/emacs/modules/bd--files.el @@ -5,12 +5,13 @@ (use-package recentf :demand t + :bind + (("C-x g" . recentf-open)) :init (recentf-mode 1) :config (setopt recentf-max-saved-items 3500 - recentf-keep '(recentf-keep-default-predicate remote-file-p) - recentf-auto-cleanup 300)) + recentf-auto-cleanup 300)) (defun bd/zathura (file) "Open FILE with zathura." @@ -24,11 +25,11 @@ (defun bd/rom (file) "Open FILE with an emulator." (let ((command - (cdr (assoc (file-name-extension file) - '(("gba" . "mgba") - ("z64" . "mupen64plus") - ("n64" . "mupen64plus") - ("sfc" . "bsnes")))))) + (cdr (assoc (file-name-extension file) + '(("gba" . "mgba") + ("z64" . "mupen64plus") + ("n64" . "mupen64plus") + ("sfc" . "bsnes")))))) (start-process command nil command (expand-file-name file)))) (defun bd/external-find-file-wrapper (f &rest args) @@ -36,17 +37,17 @@ (defun bd/open-with-function (f) (funcall f (car args)) (recentf-add-file (car args))) - + (let ((ext (or (file-name-extension (car args)) ""))) (cond ((string-match (regexp-opt '("epub" "pdf")) ext) (bd/open-with-function #'bd/zathura)) ((string-match (regexp-opt '("mkv" "mov" "mp4" "webm" "m4v" - "wav" "mp3" "opus" "ogv" "flac" - "m4a")) ext) + "wav" "mp3" "opus" "ogv" "flac" + "m4a")) ext) (bd/open-with-function #'bd/mpv)) ((string-match (regexp-opt '("jpg" "jpeg" "png" "webp" - "ico" "gif" "JPG" "PNG")) ext) + "ico" "gif" "JPG" "PNG")) ext) (bd/open-with-function #'bd/nsxiv)) ((string-match (regexp-opt '("gba" "z64" "n64" "sfc")) ext) (bd/open-with-function #'bd/rom)) @@ -59,13 +60,13 @@ (("C-c d" . dired-jump)) :config (setopt dired-listing-switches "-alhLG --time-style=long-iso --group-directories-first" - dired-recursive-copies 'always - dired-recursive-deletes 'always - dired-auto-revert-buffer t - dired-dwim-target t - dired-guess-shell-alist-user - `((,(regexp-opt '(".pdf")) "pdftotext -nopgbrk -enc UTF-8 -eol unix -layout") - (,(regexp-opt '(".html")) "icecat &")))) + dired-recursive-copies 'always + dired-recursive-deletes 'always + dired-auto-revert-buffer t + dired-dwim-target t + dired-guess-shell-alist-user + `((,(regexp-opt '(".pdf")) "pdftotext -nopgbrk -enc UTF-8 -eol unix -layout") + (,(regexp-opt '(".html")) "icecat &")))) (use-package transmission :bind diff --git a/.config/emacs/modules/bd--gpg.el b/.config/emacs/modules/bd--gpg.el index 827d0d0..5fb1ac8 100644 --- a/.config/emacs/modules/bd--gpg.el +++ b/.config/emacs/modules/bd--gpg.el @@ -4,8 +4,6 @@ (require 'f) -(require 'selector) - (defvar bd/password-store-kill-ring-pointer nil "The tail of the kill ring whose car is the password.") (defvar bd/password-store-time-before-clear 10 diff --git a/.config/emacs/modules/bd--irc.el b/.config/emacs/modules/bd--irc.el index 659e5d0..8c74096 100644 --- a/.config/emacs/modules/bd--irc.el +++ b/.config/emacs/modules/bd--irc.el @@ -7,21 +7,21 @@ (use-package rcirc :hook ((rcirc-mode . (lambda () - (setq-local fill-column-desired-width 80) - (fill-column-mode) - (rcirc-omit-mode)))) + (setq-local fill-column-desired-width 80) + (fill-column-mode) + (rcirc-omit-mode)))) :config (setopt rcirc-fill-column 80 - rcirc-omit-threshold 10 - rcirc-reconnect-delay 60 - rcirc-omit-responses '("JOIN" "PART" "QUIT" "NICK" "AWAY") - rcirc-track-minor-mode 1 - rcirc-server-alist - '(("operationnull.com" - :nick "Gondul" - :user-name "Gondul" - :port 6697 - :encryption tls)))) + rcirc-omit-threshold 10 + rcirc-reconnect-delay 60 + rcirc-omit-responses '("JOIN" "PART" "QUIT" "NICK" "AWAY") + rcirc-track-minor-mode t + rcirc-server-alist + '(("operationnull.com" + :nick "Gondul" + :user-name "Gondul" + :port 6697 + :encryption tls)))) (provide 'bd--irc) diff --git a/.config/emacs/modules/bd--minibuffer.el b/.config/emacs/modules/bd--minibuffer.el index fe2ed78..4a928e3 100644 --- a/.config/emacs/modules/bd--minibuffer.el +++ b/.config/emacs/modules/bd--minibuffer.el @@ -7,6 +7,7 @@ (use-package icomplete + :demand t :bind ((:map icomplete-minibuffer-map ("RET" . icomplete-force-complete-and-exit))) @@ -22,109 +23,31 @@ icomplete-show-matches-on-no-input t icomplete-separator " | " completions-max-height '30) - (icomplete-vertical-mode)) - -(use-package selector - :demand t - :bind (("M-x" . 'selector-M-x)) - :config - (defvar bd/navigate-recent-display-number 6 - "The number of recent buffers that show up in bd/navigate.") - (defvar bd/blacklisted-buffer-regexp-list - '( - "\\*Async Shell Command\\*" - "\\*http" - "\\magit-process" - "\\*Minibuf" - "\\*Echo Area" - "\\*newsticker" - "\\*Org Preview LaTeX Output\\*" - "\\*Shell Command Output\\*" - "\\*tramp" - "\\*eldoc" - "\\*server\\*" - ) - "Buffers that should not show up in buffer-related -selection commands.") - - (defun bd/buffer-blacklisted-p (buf) - "Return non-nil if BUF is blacklisted." - (cl-reduce (lambda (x y) (or x y)) (mapcar (lambda (r) (string-match r buf)) - bd/blacklisted-buffer-regexp-list))) - - (defun bd/buffer-list () - "Return a list of non-blacklisted buffers." - (cl-remove-if #'bd/buffer-blacklisted-p (mapcar 'buffer-name (buffer-list)))) - - (defun bd/selector-recent-buffers () - (selector-source-create - "Recent" - :candidates - (take bd/navigate-recent-display-number - (cl-remove-if (lambda (b) - (get-buffer-window b 'visible)) - (bd/buffer-list))) - :actions - selector-buffer-actions)) - - (defun bd/selector-project-files () - (selector-source-create - "Project Files" - :candidates - (let ((proj (project-current))) - (when proj - (project-files proj))) - :actions - selector-file-actions)) - - (defmacro bd/selector-buffer-type (name c) - `(selector-source-create - ,name - :candidates - (cl-remove-if-not ,c (bd/buffer-list)) - :actions - selector-buffer-actions)) - - (defun bd/navigate () - (interactive) - (selector - (list - (bd/selector-recent-buffers) - (bd/selector-buffer-type "EXWM" #'bd/buffer-exwm-p) - (bd/selector-buffer-type "Text" #'bd/buffer-text-p) - (bd/selector-buffer-type "Source" #'bd/buffer-prog-p) - (bd/selector-buffer-type "Scratch" #'bd/buffer-scratch-p) - (bd/selector-buffer-type "Directories" #'bd/buffer-dired-p) - (bd/selector-buffer-type "IRC" #'bd/buffer-irc-p) - (bd/selector-buffer-type "Ordinary" #'bd/buffer-ordinary-p) - (bd/selector-project-files) - (selector-recentf-source)))) - (keymap-global-set "C-x b" 'bd/navigate) - - (defun bd/selector-rg () - "Sources for lines found via grep (or a clone)." - (interactive) - (let ((query (read-string "rg: "))) - (defun conv (x) - (cons (car x) (cons (- (string-to-number (cadr x)) 1) (caddr x)))) - (defun all-in-file (key list) - (--map (to-candidate (cdr it)) (--filter (s-equals? key (car it)) list))) - (defun to-candidate (x) - (selector-candidate-create (cdr x) :value (car x))) - (let* ((dir (expand-file-name (bd/get-directory-dwim))) - (result (with-temp-buffer - (call-process "rg" nil t nil "-n" "-." query dir) - (buffer-string))) - (lines (--map (conv (s-split-up-to ":" it 2)) (--filter (not (s-blank? it)) (s-split "\n" result)))) - (files (-uniq (-map #'car lines))) - (sources (--map (selector-source-create - it - :candidates (all-in-file it lines) - :actions (selector-file-contents-actions it)) - files))) - (when (not (null sources)) - (selector sources))))) - (keymap-global-set "C-z s" 'bd/selector-rg)) + (icomplete-vertical-mode t)) + +(defun bd/selector-rg () + "Sources for lines found via grep (or a clone)." + (interactive) + (let ((query (read-string "rg: "))) + (defun conv (x) + (cons (car x) (cons (- (string-to-number (cadr x)) 1) (caddr x)))) + (defun all-in-file (key list) + (--map (to-candidate (cdr it)) (--filter (s-equals? key (car it)) list))) + (defun to-candidate (x) + (selector-candidate-create (cdr x) :value (car x))) + (let* ((dir (expand-file-name (bd/get-directory-dwim))) + (result (with-temp-buffer + (call-process "rg" nil t nil "-n" "-." query dir) + (buffer-string))) + (lines (--map (conv (s-split-up-to ":" it 2)) (--filter (not (s-blank? it)) (s-split "\n" result)))) + (files (-uniq (-map #'car lines))) + (sources (--map (selector-source-create + it + :candidates (all-in-file it lines) + :actions (selector-file-contents-actions it)) + files))) + (when (not (null sources)) + (selector sources))))) (provide 'bd--minibuffer) diff --git a/.config/emacs/modules/bd--window.el b/.config/emacs/modules/bd--window.el new file mode 100644 index 0000000..b0eecf0 --- /dev/null +++ b/.config/emacs/modules/bd--window.el @@ -0,0 +1,61 @@ +;;; -*- lexical-binding: t; -*- +;;; Commentary: +;;; Code: + + +(require 'transient) + +(use-package autorevert + :init + (global-auto-revert-mode) + :config + (setopt global-auto-revert-non-file-buffers t + auto-revert-interval 30)) + +(setopt switch-to-buffer-obey-display-actions t + switch-to-buffer-in-dedicated-window 'pop) +(add-to-list 'display-buffer-alist + '("^\\*Async Shell Command\\*.*$" + (display-buffer-no-window))) + +(defun bd/layout--do-with-haste (f) + (let* ((args (transient-args 'bd/layout-dispatcher)) + (haste (if (member "haste" args) 3 1))) + (funcall f haste))) +(transient-define-prefix bd/layout-dispatcher () + ["Dispatcher > Layout\n" + ["Infixes" + ("s" "haste" "haste")]] + [["Commands" + ("-" "text decrease" + (lambda () (interactive) (bd/layout--do-with-haste #'text-scale-decrease)) + :transient t) + ("=" "text increase" + (lambda () (interactive) (bd/layout--do-with-haste #'text-scale-increase)) + :transient t) + ("b" "narrow" + (lambda () (interactive) (bd/layout--do-with-haste #'shrink-window-horizontally)) + :transient t) + ("f" "widen" + (lambda () (interactive) (bd/layout--do-with-haste #'enlarge-window-horizontally)) + :transient t) + ("p" "shrink" + (lambda () (interactive) (bd/layout--do-with-haste #'shrink-window)) + :transient t) + ("n" "enlarge" + (lambda () (interactive) (bd/layout--do-with-haste #'enlarge-window)) + :transient t) + ("|" "balance" balance-windows)] + ["" + ("N" "shift down" windmove-swap-states-down :transient t) + ("P" "shift up" windmove-swap-states-up :transient t) + ("F" "shift right" windmove-swap-states-right :transient t) + ("B" "shift left" windmove-swap-states-left :transient t)] + ["" + ("a" "alpha" bd/set-frame-alpha) + ("w" "wallpaper" bd/set-bg)]]) +(keymap-global-set "C-c w" #'bd/layout-dispatcher) + + +(provide 'bd--window) +;;; bd--window.el ends here -- cgit v1.2.3