Config: optimize exwm config.
This commit is contained in:
47
custom.el
47
custom.el
@@ -4,6 +4,53 @@
|
||||
;; If you edit it by hand, you could mess it up, so be careful.
|
||||
;; Your init file should contain only one such instance.
|
||||
;; If there is more than one, they won't work right.
|
||||
'(org-agenda-files
|
||||
'("/home/trogloxene/org/my-org-note/20260422-guile小本本.org"
|
||||
"/home/trogloxene/org/my-org-daily/2026-03-21.org"
|
||||
"/home/trogloxene/org/my-org-daily/2026-03-22.org"
|
||||
"/home/trogloxene/org/my-org-daily/2026-03-23.org"
|
||||
"/home/trogloxene/org/my-org-daily/2026-03-24.org"
|
||||
"/home/trogloxene/org/my-org-daily/2026-03-25.org"
|
||||
"/home/trogloxene/org/my-org-daily/2026-03-26.org"
|
||||
"/home/trogloxene/org/my-org-daily/2026-03-27.org"
|
||||
"/home/trogloxene/org/my-org-daily/2026-03-28.org"
|
||||
"/home/trogloxene/org/my-org-daily/2026-03-29.org"
|
||||
"/home/trogloxene/org/my-org-daily/2026-03-30.org"
|
||||
"/home/trogloxene/org/my-org-daily/2026-03-31.org"
|
||||
"/home/trogloxene/org/my-org-daily/2026-04-01.org"
|
||||
"/home/trogloxene/org/my-org-daily/2026-04-02.org"
|
||||
"/home/trogloxene/org/my-org-daily/2026-04-03.org"
|
||||
"/home/trogloxene/org/my-org-daily/2026-04-04.org"
|
||||
"/home/trogloxene/org/my-org-daily/2026-04-05.org"
|
||||
"/home/trogloxene/org/my-org-daily/2026-04-06.org"
|
||||
"/home/trogloxene/org/my-org-daily/2026-04-07.org"
|
||||
"/home/trogloxene/org/my-org-daily/2026-04-08.org"
|
||||
"/home/trogloxene/org/my-org-daily/2026-04-09.org"
|
||||
"/home/trogloxene/org/my-org-daily/2026-04-10.org"
|
||||
"/home/trogloxene/org/my-org-daily/2026-04-11.org"
|
||||
"/home/trogloxene/org/my-org-daily/2026-04-12.org"
|
||||
"/home/trogloxene/org/my-org-daily/2026-04-13.org"
|
||||
"/home/trogloxene/org/my-org-daily/2026-04-14.org"
|
||||
"/home/trogloxene/org/my-org-daily/2026-04-15.org"
|
||||
"/home/trogloxene/org/my-org-daily/2026-04-17.org"
|
||||
"/home/trogloxene/org/my-org-daily/2026-04-18.org"
|
||||
"/home/trogloxene/org/my-org-daily/2026-04-19.org"
|
||||
"/home/trogloxene/org/my-org-daily/2026-04-20.org"
|
||||
"/home/trogloxene/org/my-org-daily/2026-04-21.org"
|
||||
"/home/trogloxene/org/my-org-daily/2026-04-22.org"
|
||||
"/home/trogloxene/org/my-org-note/20260407-org-mode简明手册笔记.org"
|
||||
"/home/trogloxene/org/my-org-note/20260408-怎么管理org-mode笔记.org"
|
||||
"/home/trogloxene/org/my-org-note/20260408-成为emacs高手.org"
|
||||
"/home/trogloxene/org/my-org-note/20260408-成为guix高手的第一天.org"
|
||||
"/home/trogloxene/org/my-org-note/20260409-elisp小本本.org"
|
||||
"/home/trogloxene/org/my-org-note/20260409-精选emacs package.org"
|
||||
"/home/trogloxene/org/my-org-note/20260410-Interview with an Emacs Enthusiast excerpt.org"
|
||||
"/home/trogloxene/org/my-org-note/20260412-steam备用码_记得加密.org"
|
||||
"/home/trogloxene/org/my-org-note/20260414-怎样让git仓库使用ssh.org"
|
||||
"/home/trogloxene/org/my-org-note/20260415-learn scheme in 15 minutes.org"
|
||||
"/home/trogloxene/org/my-org-note/20260415-折腾guix干什么.org"
|
||||
"/home/trogloxene/org/my-org-note/20260416-配置一下gptel.org"
|
||||
"/home/trogloxene/org/my-org-note/20260421-成为exwm高手的第一天.org"))
|
||||
'(package-selected-packages
|
||||
'(ace-window benchmark-init cape cnfonts corfu crux drag-stuff eglot embark-consult everything
|
||||
exec-path-form-shell gcmh hungry-delete marginalia multiple-cursors orderless
|
||||
|
||||
@@ -107,14 +107,6 @@
|
||||
(advice-add 'eglot-completion-at-point :around #'cape-wrap-nonexclusive)
|
||||
(advice-add 'pcomplete-completions-at-point :around #'cape-wrap-nonexclusive))
|
||||
|
||||
;; lua
|
||||
(use-package lua-ts-mode
|
||||
:mode ("\\.lua\\'" . lua-ts-mode)
|
||||
:config
|
||||
(add-to-list 'auto-mode-alist '("\\.lua\\'" . lua-ts-mode)))
|
||||
|
||||
(use-package ahk-mode)
|
||||
|
||||
;; tree-sitter
|
||||
(use-package treesit-auto
|
||||
:demand t
|
||||
@@ -123,6 +115,16 @@
|
||||
(global-treesit-auto-mode)
|
||||
(setq treesit-font-lock-level 4))
|
||||
|
||||
;; lua
|
||||
(use-package lua-ts-mode
|
||||
:mode ("\\.lua\\'" . lua-ts-mode)
|
||||
:config
|
||||
(add-to-list 'auto-mode-alist '("\\.lua\\'" . lua-ts-mode)))
|
||||
|
||||
;; ahk
|
||||
(use-package ahk-mode)
|
||||
|
||||
;; scheme
|
||||
(use-package geiser
|
||||
:config
|
||||
(with-eval-after-load 'geiser
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
("s" "~/.config/guix/" "System config")
|
||||
("p" "~/Pictures/" "Pictures")
|
||||
("d" "~/downloads/" "Downloads")
|
||||
("v" "~/视频/" "Videos")
|
||||
("v" "~/Video/" "Videos")
|
||||
("n" "~/org/my-org-note/" "Notes")
|
||||
("g" "~/gptel/" "gptel sessions")))
|
||||
(t nil))))
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
;;; init-exwm.el --- exwm config -*- lexical-binding: t -*-
|
||||
;;; init-exwm.el --- exwm config -*- lexical-binding: t -*-
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
(when *is-linux*
|
||||
(use-package exwm
|
||||
:config
|
||||
(setq exwm-workspace-number 5)
|
||||
(setq exwm-workspace-number 1)
|
||||
(exwm-input-set-key (kbd "s-&")
|
||||
(lambda (command)
|
||||
(interactive (list (read-shell-command "$ ")))
|
||||
@@ -15,6 +15,32 @@
|
||||
'((".*" . (display-buffer-no-window . nil)))))
|
||||
(async-shell-command command))))
|
||||
|
||||
(defun my--exwm-switch-to-workspace (delta)
|
||||
(let ((target
|
||||
(mod (+ exwm-workspace-current-index delta)
|
||||
(length exwm-workspace--list))))
|
||||
(exwm-workspace-switch target)
|
||||
(if (= 1 (length exwm-workspace--list))
|
||||
(message "Single workspace active"))))
|
||||
|
||||
(defun my-exwm-next-workspace ()
|
||||
"Switch to next exwm workspace."
|
||||
(interactive)
|
||||
(my--exwm-switch-to-workspace 1))
|
||||
|
||||
(defun my-exwm-previous-workspace ()
|
||||
"Switch to previous exwm workspace."
|
||||
(interactive)
|
||||
(my--exwm-switch-to-workspace -1))
|
||||
|
||||
(global-set-key (kbd "s-]") 'my-exwm-next-workspace)
|
||||
(global-set-key (kbd "s-[") 'my-exwm-previous-workspace)
|
||||
|
||||
(add-to-list 'global-mode-string
|
||||
'(:eval (propertize (format " WS:%d " exwm-workspace-current-index)
|
||||
'face 'mode-line-emphasis))
|
||||
t)
|
||||
|
||||
(setq exwm-input-prefix-keys
|
||||
'(?\C-x
|
||||
?\C-u
|
||||
@@ -22,12 +48,14 @@
|
||||
?\C-h
|
||||
?\M-x
|
||||
?\M-o
|
||||
?\M-]
|
||||
?\M-[
|
||||
XF86AudioLowerVolume
|
||||
XF86AudioRaiseVolume
|
||||
XF86AudioMute
|
||||
))
|
||||
?\M-[
|
||||
?\M-]
|
||||
?\s-[
|
||||
?\s-]
|
||||
XF86AudioLowerVolume
|
||||
XF86AudioRaiseVolume
|
||||
XF86AudioMute
|
||||
))
|
||||
|
||||
(define-key exwm-mode-map [?\C-q] 'exwm-input-send-next-key)
|
||||
|
||||
@@ -40,6 +68,7 @@
|
||||
([?\s-S] . desktop-environment-screenshot)
|
||||
([?\s-s] . desktop-environment-screenshot-part)
|
||||
([?\s-w] . exwm-workspace-switch)
|
||||
([?\s-o] . other-window)
|
||||
([?\s-`] . (lambda () (interactive) (exwm-workspace-switch-create 0)))
|
||||
,@(mapcar (lambda (i)
|
||||
`(,(kbd(format "s-%d" i)) .
|
||||
@@ -59,25 +88,43 @@
|
||||
(exwm-wm-mode))
|
||||
|
||||
(use-package desktop-environment
|
||||
:config
|
||||
:init
|
||||
(desktop-environment-mode)
|
||||
:config
|
||||
(advice-add 'desktop-environment-screenshot :after
|
||||
(lambda (&rest _) (message "Saved fullscreen screenshot.")))
|
||||
(advice-add 'desktop-environment-screenshot-part :after
|
||||
(lambda (&rest _) (message "Saved partial screenshot.")))
|
||||
|
||||
:custom
|
||||
(desktop-environment-screenshot-command
|
||||
"import -window root ~/Pictures/screenshot-$(date +%Y%m%d-%H%M%S).png")
|
||||
(desktop-environment-screenshot-partial-command
|
||||
"import ~/Pictures/screenshot-$(date +%Y%m%d-%H%M%S).png"))
|
||||
|
||||
(defun vscodium ()
|
||||
"Run VSCodium via shell command asynchronously."
|
||||
(interactive)
|
||||
(start-process-shell-command "vscodium" nil "flatpak run com.vscodium.codium"))
|
||||
|
||||
(defun localsend ()
|
||||
"Run localsend via shell command asynchronously."
|
||||
(interactive)
|
||||
(start-process-shell-command "localsend" nil "flatpak run org.localsend.localsend_app"))
|
||||
|
||||
(defun steam ()
|
||||
"Run Steam via shell command asynchronously."
|
||||
(interactive)
|
||||
(start-process-shell-command "steam" nil "flatpak run com.valvesoftware.Steam"))
|
||||
|
||||
(add-hook 'exwm-init-hook
|
||||
(lambda ()
|
||||
(unless (zerop (shell-command "pgrep -x fcitx5"))
|
||||
(start-process-shell-command "fcitx5" nil "fcitx5 -d"))
|
||||
(unless (zerop (shell-command "pgrep -x mihomo"))
|
||||
(start-process-shell-command "mihomo" nil "mihomo -d ~/.config/mihomo/"))
|
||||
(message "fcitx5 enable.")))
|
||||
(start-process-shell-command "xrandr-refresh" nil "xrandr --output DP-4 --mode 2560x1440 --rate 165.00")
|
||||
(start-process-shell-command "xinput" nil "xinput set-prop 12 'libinput Accel Speed' -0.45")))
|
||||
)
|
||||
|
||||
(provide 'init-exwm)
|
||||
|
||||
@@ -94,11 +94,12 @@
|
||||
|
||||
;; scratch buffer
|
||||
(if *is-mac*
|
||||
(general-def "C-c <f12>" 'scratch-buffer)
|
||||
(general-def "C-c <delete>" 'scratch-buffer))
|
||||
(general-def "C-c <f12>" 'persp-switch-to-scratch-buffer)
|
||||
(general-def "C-c <delete>" 'persp-switch-to-scratch-buffer))
|
||||
|
||||
;; dired
|
||||
(general-def (dired-mode-map dirvish-mode-map)
|
||||
"s" 'dirvish-quicksort
|
||||
"h" 'dirvish-history-menu
|
||||
"M-," 'scroll-other-window-down
|
||||
"M-." 'scroll-other-window
|
||||
@@ -180,7 +181,6 @@
|
||||
"C-x C-b" 'ibuffer-other-window
|
||||
"C-x K" 'crux-kill-other-buffers
|
||||
"C-x b" 'consult-buffer
|
||||
"M-o" 'other-window
|
||||
|
||||
;; edit
|
||||
"M-c" 'capitalize-dwim
|
||||
@@ -189,7 +189,7 @@
|
||||
"C-," 'duplicate-and-move-to-next-line
|
||||
"C-k" 'crux-smart-kill-line
|
||||
"C-<backspace>" 'crux-kill-line-backwards
|
||||
"C-o" 'crux-smart-open-line
|
||||
"C-o" 'open-line
|
||||
"C-a" 'crux-move-beginning-of-line
|
||||
"M-y" 'consult-yank-from-kill-ring
|
||||
"C-c <backspace>" 'hungry-delete-backward
|
||||
@@ -216,9 +216,10 @@
|
||||
"M-<right>" 'enlarge-window-horizontally
|
||||
"M-<down>" 'shrink-window
|
||||
"M-<up>" 'enlarge-window
|
||||
"<f10>" 'esw/swap-two-windows
|
||||
"M-`" 'popper-toggle
|
||||
"C-M-=" 'popper-toggle-type-delete-other-window
|
||||
"M-o" 'other-window
|
||||
"<f10>" 'esw/swap-two-windows
|
||||
|
||||
;; other
|
||||
"C-x r b" 'consult-bookmark
|
||||
@@ -261,15 +262,19 @@
|
||||
------------------------------------------------------------------
|
||||
_p_ : prev line _P_ : previous _c_ : edit lines
|
||||
_n_ : next line _N_ : next _._ : pop
|
||||
_f_ : next symbol _q_ : quit
|
||||
_b_ : prev symbol
|
||||
_b_ : prev word _q_ : quit
|
||||
_f_ : next word
|
||||
_B_ : prev symbol
|
||||
_F_ : next symbol
|
||||
_s_ : in region
|
||||
_a_ : all dwim
|
||||
"
|
||||
("p" mc/mark-previous-like-this)
|
||||
("n" mc/mark-next-like-this)
|
||||
("b" mc/mark-previous-like-this-symbol)
|
||||
("f" mc/mark-next-like-this-symbol)
|
||||
("b" mc/mark-previous-like-this-word)
|
||||
("f" mc/mark-next-like-this-word)
|
||||
("B" mc/mark-previous-like-this-symbol)
|
||||
("F" mc/mark-next-like-this-symbol)
|
||||
("P" mc/unmark-previous-like-this)
|
||||
("N" mc/unmark-next-like-this)
|
||||
("a" mc/mark-all-dwim)
|
||||
|
||||
@@ -6,6 +6,15 @@
|
||||
|
||||
(use-package org)
|
||||
|
||||
;; org-babel scheme
|
||||
(use-package ob-scheme
|
||||
:straight (:type built-in)
|
||||
:config
|
||||
(add-to-list 'org-babel-load-languages '(scheme . t))
|
||||
(org-babel-do-load-languages
|
||||
'org-babel-load-languages
|
||||
org-babel-load-languages))
|
||||
|
||||
;; org-contrib 和 org-checklist
|
||||
(use-package org-contrib
|
||||
:straight (org-contrib :type git :host github :repo "emacsmirror/org-contrib"
|
||||
@@ -244,12 +253,14 @@
|
||||
(setq org-tag-alist '(
|
||||
("scheme" . ?s)
|
||||
("emacs" . ?e)
|
||||
("elisp" . ?E)
|
||||
("org" . ?o)
|
||||
("linux" . ?l)
|
||||
("computer-stuff" . ?c)
|
||||
("philosophy" . ?p)
|
||||
("game" . ?g)
|
||||
("gamestudies" . ?G)
|
||||
("masterpiece" . ?m)
|
||||
))
|
||||
|
||||
;; (setq org-tags-exclude-from-inheritance '())
|
||||
|
||||
@@ -286,9 +286,6 @@ targets."
|
||||
;; general
|
||||
(use-package general)
|
||||
|
||||
;; popup
|
||||
(use-package popup)
|
||||
|
||||
(provide 'init-package)
|
||||
|
||||
;;; init-package.el ends here
|
||||
|
||||
@@ -74,6 +74,8 @@
|
||||
|
||||
;; electirc-pair-mode
|
||||
(add-hook 'org-mode-hook 'electric-pair-local-mode)
|
||||
(with-eval-after-load 'elec-pair
|
||||
(add-to-list 'electric-pair-pairs '(?\~ . ?\~)))
|
||||
|
||||
;; ibuffer
|
||||
(setq ibuffer-default-sorting-mode 'filename)
|
||||
|
||||
@@ -102,6 +102,9 @@
|
||||
(delete-window window)))))
|
||||
(advice-add #'keyboard-quit :before #'popper-close-window-hack)))
|
||||
|
||||
;; ace-window
|
||||
;; (use-package ace-window)
|
||||
|
||||
;; es-windos,快速管理窗口
|
||||
(use-package es-windows)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user