summaryrefslogtreecommitdiff
path: root/emacs
diff options
context:
space:
mode:
authorTCCQ <thomasmulmer02@gmail.com>2025-03-29 17:27:40 -0700
committerTCCQ <thomasmulmer02@gmail.com>2025-03-29 17:27:40 -0700
commitddb6e57e50eb4c83050695d98c05aeb21df5fc1f (patch)
tree520aacfc73d0a0a68fc944df3c4a853142f709f0 /emacs
parentcc601aa470397e05f51464e9a66bef8c6469181a (diff)
parentf2e7dfcf2e9c606e47511701a8cff37c913b8b96 (diff)
Merge remote-tracking branch 'desktop/master'
Diffstat (limited to 'emacs')
-rw-r--r--emacs/init.el293
-rwxr-xr-xemacs/site-lisp/coding-config.el33
-rw-r--r--emacs/site-lisp/evil-config.el3
-rw-r--r--emacs/site-lisp/exwm-pref.el107
-rw-r--r--emacs/site-lisp/general-text.el2
-rw-r--r--emacs/site-lisp/irc-config.el24
-rw-r--r--emacs/site-lisp/modeline-config.el4
-rw-r--r--emacs/site-lisp/my-binds.el8
-rw-r--r--emacs/site-lisp/my-funcs.el28
9 files changed, 313 insertions, 189 deletions
diff --git a/emacs/init.el b/emacs/init.el
index 0d23217..93a4552 100644
--- a/emacs/init.el
+++ b/emacs/init.el
@@ -7,21 +7,31 @@
;; If there is more than one, they won't work right.
'(comment-style 'extra-line)
'(connection-local-criteria-alist
- '(((:application vc-git)
- vc-git-connection-default-profile)
+ '(((:application vc-git :protocol "ssh" :user "tmu" :machine
+ "cnoserver")
+ autogenerated-connection-local-profile/\(:application\ vc-git\ :protocol\ \"ssh\"\ :user\ \"tmu\"\ :machine\ \"cnoserver\"\))
+ ((:application vc-git) vc-git-connection-default-profile)
((:application tramp :protocol "kubernetes")
tramp-kubernetes-connection-local-default-profile)
((:application tramp :protocol "flatpak")
- tramp-container-connection-local-default-flatpak-profile tramp-flatpak-connection-local-default-profile)
+ tramp-container-connection-local-default-flatpak-profile
+ tramp-flatpak-connection-local-default-profile)
((:application tramp)
- tramp-connection-local-default-system-profile tramp-connection-local-default-shell-profile)
- ((:application eshell)
- eshell-connection-default-profile)))
+ tramp-connection-local-default-system-profile
+ tramp-connection-local-default-shell-profile)
+ ((:application eshell) eshell-connection-default-profile)))
'(connection-local-profile-alist
- '((vc-git-connection-default-profile
- (vc-git--program-version))
+ '((autogenerated-connection-local-profile/\(:application\ vc-git\ :protocol\ \"ssh\"\ :user\ \"tmu\"\ :machine\ \"cnoserver\"\)
+ (vc-git--program-version . "2.48.1"))
+ (vc-git-connection-default-profile (vc-git--program-version))
(tramp-flatpak-connection-local-default-profile
- (tramp-remote-path "/app/bin" tramp-default-remote-path "/bin" "/usr/bin" "/sbin" "/usr/sbin" "/usr/local/bin" "/usr/local/sbin" "/local/bin" "/local/freeware/bin" "/local/gnu/bin" "/usr/freeware/bin" "/usr/pkg/bin" "/usr/contrib/bin" "/opt/bin" "/opt/sbin" "/opt/local/bin"))
+ (tramp-remote-path "/app/bin" tramp-default-remote-path "/bin"
+ "/usr/bin" "/sbin" "/usr/sbin"
+ "/usr/local/bin" "/usr/local/sbin"
+ "/local/bin" "/local/freeware/bin"
+ "/local/gnu/bin" "/usr/freeware/bin"
+ "/usr/pkg/bin" "/usr/contrib/bin" "/opt/bin"
+ "/opt/sbin" "/opt/local/bin"))
(tramp-kubernetes-connection-local-default-profile
(tramp-config-check . tramp-kubernetes--current-context-data)
(tramp-extra-expand-args 97
@@ -34,91 +44,127 @@
(tramp-kubernetes--context-namespace
(car tramp-current-connection))))
(tramp-container-connection-local-default-flatpak-profile
- (tramp-remote-path "/app/bin" tramp-default-remote-path "/bin" "/usr/bin" "/sbin" "/usr/sbin" "/usr/local/bin" "/usr/local/sbin" "/local/bin" "/local/freeware/bin" "/local/gnu/bin" "/usr/freeware/bin" "/usr/pkg/bin" "/usr/contrib/bin" "/opt/bin" "/opt/sbin" "/opt/local/bin"))
+ (tramp-remote-path "/app/bin" tramp-default-remote-path "/bin"
+ "/usr/bin" "/sbin" "/usr/sbin"
+ "/usr/local/bin" "/usr/local/sbin"
+ "/local/bin" "/local/freeware/bin"
+ "/local/gnu/bin" "/usr/freeware/bin"
+ "/usr/pkg/bin" "/usr/contrib/bin" "/opt/bin"
+ "/opt/sbin" "/opt/local/bin"))
(tramp-connection-local-darwin-ps-profile
- (tramp-process-attributes-ps-args "-acxww" "-o" "pid,uid,user,gid,comm=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" "-o" "state=abcde" "-o" "ppid,pgid,sess,tty,tpgid,minflt,majflt,time,pri,nice,vsz,rss,etime,pcpu,pmem,args")
- (tramp-process-attributes-ps-format
- (pid . number)
- (euid . number)
- (user . string)
- (egid . number)
- (comm . 52)
- (state . 5)
- (ppid . number)
- (pgrp . number)
- (sess . number)
- (ttname . string)
- (tpgid . number)
- (minflt . number)
- (majflt . number)
- (time . tramp-ps-time)
- (pri . number)
- (nice . number)
- (vsize . number)
- (rss . number)
- (etime . tramp-ps-time)
- (pcpu . number)
- (pmem . number)
- (args)))
+ (tramp-process-attributes-ps-args "-acxww" "-o"
+ "pid,uid,user,gid,comm=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ "-o" "state=abcde" "-o"
+ "ppid,pgid,sess,tty,tpgid,minflt,majflt,time,pri,nice,vsz,rss,etime,pcpu,pmem,args")
+ (tramp-process-attributes-ps-format (pid . number)
+ (euid . number)
+ (user . string)
+ (egid . number) (comm . 52)
+ (state . 5) (ppid . number)
+ (pgrp . number)
+ (sess . number)
+ (ttname . string)
+ (tpgid . number)
+ (minflt . number)
+ (majflt . number)
+ (time . tramp-ps-time)
+ (pri . number)
+ (nice . number)
+ (vsize . number)
+ (rss . number)
+ (etime . tramp-ps-time)
+ (pcpu . number)
+ (pmem . number) (args)))
(tramp-connection-local-busybox-ps-profile
- (tramp-process-attributes-ps-args "-o" "pid,user,group,comm=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" "-o" "stat=abcde" "-o" "ppid,pgid,tty,time,nice,etime,args")
- (tramp-process-attributes-ps-format
- (pid . number)
- (user . string)
- (group . string)
- (comm . 52)
- (state . 5)
- (ppid . number)
- (pgrp . number)
- (ttname . string)
- (time . tramp-ps-time)
- (nice . number)
- (etime . tramp-ps-time)
- (args)))
+ (tramp-process-attributes-ps-args "-o"
+ "pid,user,group,comm=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ "-o" "stat=abcde" "-o"
+ "ppid,pgid,tty,time,nice,etime,args")
+ (tramp-process-attributes-ps-format (pid . number)
+ (user . string)
+ (group . string) (comm . 52)
+ (state . 5) (ppid . number)
+ (pgrp . number)
+ (ttname . string)
+ (time . tramp-ps-time)
+ (nice . number)
+ (etime . tramp-ps-time)
+ (args)))
(tramp-connection-local-bsd-ps-profile
- (tramp-process-attributes-ps-args "-acxww" "-o" "pid,euid,user,egid,egroup,comm=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" "-o" "state,ppid,pgid,sid,tty,tpgid,minflt,majflt,time,pri,nice,vsz,rss,etimes,pcpu,pmem,args")
- (tramp-process-attributes-ps-format
- (pid . number)
- (euid . number)
- (user . string)
- (egid . number)
- (group . string)
- (comm . 52)
- (state . string)
- (ppid . number)
- (pgrp . number)
- (sess . number)
- (ttname . string)
- (tpgid . number)
- (minflt . number)
- (majflt . number)
- (time . tramp-ps-time)
- (pri . number)
- (nice . number)
- (vsize . number)
- (rss . number)
- (etime . number)
- (pcpu . number)
- (pmem . number)
- (args)))
+ (tramp-process-attributes-ps-args "-acxww" "-o"
+ "pid,euid,user,egid,egroup,comm=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ "-o"
+ "state,ppid,pgid,sid,tty,tpgid,minflt,majflt,time,pri,nice,vsz,rss,etimes,pcpu,pmem,args")
+ (tramp-process-attributes-ps-format (pid . number)
+ (euid . number)
+ (user . string)
+ (egid . number)
+ (group . string) (comm . 52)
+ (state . string)
+ (ppid . number)
+ (pgrp . number)
+ (sess . number)
+ (ttname . string)
+ (tpgid . number)
+ (minflt . number)
+ (majflt . number)
+ (time . tramp-ps-time)
+ (pri . number)
+ (nice . number)
+ (vsize . number)
+ (rss . number)
+ (etime . number)
+ (pcpu . number)
+ (pmem . number) (args)))
(tramp-connection-local-default-shell-profile
- (shell-file-name . "/bin/sh")
- (shell-command-switch . "-c"))
+ (shell-file-name . "/bin/sh") (shell-command-switch . "-c"))
(tramp-connection-local-default-system-profile
- (path-separator . ":")
- (null-device . "/dev/null"))
- (eshell-connection-default-profile
- (eshell-path-env-list))))
+ (path-separator . ":") (null-device . "/dev/null"))
+ (eshell-connection-default-profile (eshell-path-env-list))))
'(custom-safe-themes
- '("6f5e3fd2b4245ffe660da69ea5c13ab392337e94776dfb23cc1d8d0f80e3baa2" "1b8c2fd98bf6777d8b95f8cf98fdaede88feee3419ec3e5008f94b56618ac6ca" "0cc5046b7981609166c28b64f6185fa5f73bcb00d21e037f304794c6aaa1f340" "9f2e4e8b2ddbfdd392eedbc123649d94654278dee5a53b899557224416413d35" "6dafb31ade9ff07229faaf05c41c2ae475c44731362b792f65f3930b1a2c9cfd" "dc77e008092a5a4aa6b6ed8e4826bebf8f2fb930a8de073bf7f458efd884cca8" "d1ff3e66028f9c527298580d2a64f9e3280f07f9e94d4dada72b67ef15069441" "3d4e3644e237a95683daa73e397c4c0d1ae06bbaaf8040104232591a28bc1315" "12a07bc38295e4b06a8965db261f51ea7ea61fbf91b3ef41298bbb549d1d9403" default))
+ '("6f5e3fd2b4245ffe660da69ea5c13ab392337e94776dfb23cc1d8d0f80e3baa2"
+ "1b8c2fd98bf6777d8b95f8cf98fdaede88feee3419ec3e5008f94b56618ac6ca"
+ "0cc5046b7981609166c28b64f6185fa5f73bcb00d21e037f304794c6aaa1f340"
+ "9f2e4e8b2ddbfdd392eedbc123649d94654278dee5a53b899557224416413d35"
+ "6dafb31ade9ff07229faaf05c41c2ae475c44731362b792f65f3930b1a2c9cfd"
+ "dc77e008092a5a4aa6b6ed8e4826bebf8f2fb930a8de073bf7f458efd884cca8"
+ "d1ff3e66028f9c527298580d2a64f9e3280f07f9e94d4dada72b67ef15069441"
+ "3d4e3644e237a95683daa73e397c4c0d1ae06bbaaf8040104232591a28bc1315"
+ "12a07bc38295e4b06a8965db261f51ea7ea61fbf91b3ef41298bbb549d1d9403"
+ default))
'(ede-project-directories
- '("/home/tmu/Desktop/eway/sway" "/home/tmu/Desktop/eway/cage" "/home/tmu/Desktop/eway/wlroots" "/home/tmu/Desktop/eway/comp" "/home/tmu/Desktop/eway"))
+ '("/home/tmu/Desktop/eway/sway" "/home/tmu/Desktop/eway/cage"
+ "/home/tmu/Desktop/eway/wlroots" "/home/tmu/Desktop/eway/comp"
+ "/home/tmu/Desktop/eway"))
'(eglot-events-buffer-config '(:size 0 :format full))
'(gdb-non-stop-setting nil)
'(helm-minibuffer-history-key "M-p")
'(menu-bar-mode nil)
'(package-selected-packages
- '(em-term em-hist embark-consult embark eat em-smart all-the-icons-completion all-the-icons marginalia visible-mark benchmark-init sideline-lsp sideline-flymake sideline-flycheck sideline lsp-haskell lsp-sourcekit emacs-lsp elisp-sandbox elsa lsp-mode corfu evil-config which-key orderless vertico evil))
+ '(2048-game all-the-icons-completion amsreftex auctex avy-flycheck
+ balanced-windows benchmark-init bongo buffer-move cape
+ chinese-conv cmake-mode company-go corfu corfu-terminal
+ counsel-projectile cuda-mode dockerfile-mode
+ doom-modeline dumb-jump eat edit-indirect eglot
+ embark-consult ement emms-player-simple-mpv emms-state
+ esh-help eshell-fringe-status eshell-vterm esup
+ evil-collection evil-easymotion evil-snipe
+ evil-surround exwm-firefox-evil exwm-modeline eyebrowse
+ fish-mode flycheck flycheck-aspell flymake-aspell
+ flymake-diagnostic-at-point fold-this folding free-keys
+ frog-jump-buffer gdscript-mode gxref haskell-mode
+ helm-exwm helm-hoogle highlight hindent hl-todo
+ ibuffer-project ibuffer-projectile imenu-anywhere
+ ivy-hydra ivy-prescient lsp-haskell magit marginalia
+ markdown-preview-mode minions nginx-mode oauth2
+ orderless pass password-store
+ persp-mode-projectile-bridge popwin pyim-basedict
+ pyim-cangjiedict pyvenv racket-mode rainbow-delimiters
+ rustic sdcv sideline-flycheck sideline-flymake
+ sideline-lsp simple-httpd spell-fu telephone-line
+ tempel tree-sitter-langs treemacs treemacs-evil
+ vertico-prescient vimgolf visible-mark volume which-key
+ winum workgroups yaml-mode))
'(pyim-assistant-scheme 'cangjie)
'(safe-local-variable-values '((LEXICAL-binding . t)))
'(scroll-bar-mode nil)
@@ -126,7 +172,8 @@
'(tool-bar-mode nil)
'(transient-mark-mode nil)
'(whitespace-style
- '(face trailing tabs lines-tail missing-newline-at-eof indentation space-after-tab space-before-tab tab-mark) t))
+ '(face trailing tabs lines-tail missing-newline-at-eof indentation
+ space-after-tab space-before-tab tab-mark) t))
;; ---------------------------------------------------------------------
;; non-package specific config
@@ -153,8 +200,13 @@
(setq async-shell-command-buffer 'new-buffer)
;; start additional async shell commands in new buffers without asking
(setq-default proced-auto-update-flag t)
+(setq-default proced-auto-update-interval 1)
;; always auto update proced
+;; this is to avoid loading evil entirely, and ease some of the
+;; internconnection complexity of the config
+(setq want-evil nil)
+
;; --------------------------------------------------------------------
;; external packages
@@ -194,7 +246,7 @@
("C-h B" . embark-bindings) ;; alternative for `describe-bindings'
)
:init
- (add-hook 'eldoc-documentation-functions #'embark-eldoc-first-target)
+ ;; (add-hook 'eldoc-documentation-functions #'embark-eldoc-first-target)
:config
;; Hide the mode line of the Embark live/completions buffers
(add-to-list 'display-buffer-alist
@@ -202,12 +254,6 @@
nil
(window-parameters (mode-line-format . none)))))
-(use-package all-the-icons)
-(use-package all-the-icons-completion
- :after (marginalia all-the-icons)
- :hook (marginalia-mode . all-the-icons-completion-marginalia-setup)
- :init (all-the-icons-completion-mode))
-
(use-package orderless
;; ordering (minibuffer) completions
:custom
@@ -231,23 +277,27 @@
(corfu-quit-no-match t)
:bind (("M-/" . completion-at-point)))
+(use-package corfu-terminal
+ :init
+ (corfu-terminal-mode 1)
+ :custom
+ (corfu-terminal-disable-on-gui nil))
+
(use-package cape
;; extend completion frameworks
:bind ("C-c p" . cape-prefix-map)
:config
(advice-add 'pcomplete-completions-at-point :around 'cape-wrap-silent)
(advice-add 'pcomplete-completions-at-point :around 'cape-wrap-purify)
- :custom
- (completion-at-point-functions . '(cape-dict
- tags-completion-at-point-function
- cape-keyword
- cape-dabbrev
- cape-symbol)))
+ :init
+ (setq completion-at-point-functions '(tags-completion-at-point-function
+ cape-keyword
+ cape-dabbrev
+ cape-symbol
+ cape-dict)))
(use-package dabbrev
- ;; Swap M-/ and C-M-/
- :bind ( ;; ("M-/" . completion-at-point)
- ("C-M-/" . dabbrev-expand))
+ :bind (("C-M-/" . dabbrev-expand))
:config
(add-to-list 'dabbrev-ignored-buffer-regexps "\\` ")
;; Since 29.1, use `dabbrev-ignored-buffer-regexps' on older.
@@ -307,14 +357,24 @@
" " filename-and-process)
(mark " "
(name 16 -1)
- " " filename))))
+ " " filename)))
+ :bind
+ ("C-x C-b" . ibuffer)
+ :hook
+ (ibuffer . (lambda ()
+ (unless (eq ibuffer-sorting-mode 'alphabetic)
+ (ibuffer-do-sort-by-alphabetic)))))
(use-package buffer-move
:bind ("C-x -" . buf-move-right))
+(use-package winum
+ :init
+ (winum-mode 1))
+
(use-package consult
- :custom (consult-preview-excluded-buffers '(major-mode . exwm-mode))
- :bind ("C-x b" . consult-buffer))
+ :custom (consult-preview-excluded-buffers t)
+ :bind (("C-x b" . consult-buffer)))
;; (use-package beacon
;; :init
@@ -334,6 +394,12 @@
(visible-mark-max 1)
)
+(use-package avy
+ :bind (("C-'" . avy-goto-char-2)))
+
+(use-package balanced-windows
+ :bind ("C-x w b" . balanced-windows-mode))
+
;; eshell stuff
(use-package eshell
:init
@@ -346,13 +412,27 @@
(keymap-set eshell-hist-mode-map "C-c C-n" 'next-line)
(keymap-set eshell-hist-mode-map "C-c C-p" 'previous-line)
(keymap-set eshell-mode-map "C-l" 'eshell/clear)
- (add-hook 'eshell-mode-hook 'eldoc-mode))
+ (add-hook 'eshell-mode-hook 'eldoc-mode)
+ (if want-evil
+ (add-hook 'eshell-mode-hook (lambda () (evil-local-mode -1)))))
(use-package eat
:init
(add-hook 'eshell-load-hook #'eat-eshell-mode)
- (add-hook 'eshell-load-hook #'eat-eshell-visual-command-mode)
- (push "pass" eshell-visual-commands))
+ (add-hook 'eshell-load-hook #'eat-eshell-visual-command-mode))
+
+;; file browser
+(use-package treemacs
+ :bind (("C-c t" . treemacs)))
+
+;; password integration
+(use-package password-store)
+(use-package auth-source-pass
+ :init (auth-source-pass-enable))
+(use-package pass
+ :custom
+ (pass-supress-confirmations t))
+(setq epg-pinentry-mode 'loopback)
;; make tramp not prompt for autosaving root owned files
(setq tramp-allow-unsafe-temporary-files t)
@@ -360,13 +440,14 @@
;; ----------------------------------------------------------------------
;; my custom stuff
-;; (require 'evil-config)
+(if want-evil (require 'evil-config))
(require 'my-funcs)
(require 'my-binds)
(require 'coding-config)
(require 'modeline-config)
(require 'general-text)
(require 'exwm-pref)
+(require 'irc-config)
;; ----------------------------------------------------------------------
;; theme stuff
diff --git a/emacs/site-lisp/coding-config.el b/emacs/site-lisp/coding-config.el
index 9d228f0..25dd372 100755
--- a/emacs/site-lisp/coding-config.el
+++ b/emacs/site-lisp/coding-config.el
@@ -24,6 +24,8 @@
(use-package lsp-haskell)
+(use-package pyvenv)
+
(use-package sideline
:init
(setq sideline-backends-right '()))
@@ -51,16 +53,7 @@
(global-set-key (kbd "M-I") 'xref-find-definitions)
(setq imenu-auto-rescan t)
-
-;; make ibuffer play with projectile
-(use-package ibuffer
- :bind
- ("C-x C-b" . ibuffer)
- :hook
- (ibuffer . (lambda ()
- (ibuffer-projectile-set-filter-groups)
- (unless (eq ibuffer-sorting-mode 'alphabetic)
- (ibuffer-do-sort-by-alphabetic)))))
+(setq imenu-flatten t)
;; make shells and whatnot slightly better
(require 'comint)
@@ -94,13 +87,15 @@
(require 'my-funcs)
(add-hook 'prog-mode-hook (lambda ()
(hs-minor-mode 1)
+ (hl-todo-mode 1)
(superword-mode 1)
- (modify-syntax-entry ?_ "w") )
- (display-fill-column-indicator-mode 1)
- (add-hook 'before-save-hook
- (lambda ()
- (if (not (eq major-mode 'makefile-gmake-mode))
- (clean-prog-file (current-buffer))))))
+ (modify-syntax-entry ?_ "w")
+
+ (display-fill-column-indicator-mode 1)
+ (add-hook 'before-save-hook
+ (lambda ()
+ (if (not (eq major-mode 'makefile-gmake-mode))
+ (clean-prog-file (current-buffer)))))))
;; haskell flavor and tags
(use-package haskell-mode
@@ -125,3 +120,9 @@
"rg -i -M 120 --no-heading --line-number --color never '%s' %s")
(global-set-key (kbd "C-s") 'counsel-grep-or-swiper)
(global-set-key (kbd "C-S-s") 'isearch-forward)
+
+;; racket
+(use-package racket-mode)
+
+;; rust
+(use-package rustic)
diff --git a/emacs/site-lisp/evil-config.el b/emacs/site-lisp/evil-config.el
index b019146..38db735 100644
--- a/emacs/site-lisp/evil-config.el
+++ b/emacs/site-lisp/evil-config.el
@@ -30,8 +30,11 @@
(define-key evil-normal-state-map (kbd "M-.") 'xref-find-definitions)
(define-key evil-normal-state-map (kbd "M-Z") 'suspend-frame)
+(use-package treemacs-evil)
+
(define-key evil-motion-state-map (kbd "TAB") 'indent-for-tab-command)
(evil-set-initial-state 'vterm-mode 'emacs)
+(evil-set-initial-state 'eshell-mode 'emacs)
;;; sasha bindings
(defun evil-window-split-and-switch ()
diff --git a/emacs/site-lisp/exwm-pref.el b/emacs/site-lisp/exwm-pref.el
index fee729f..f03711c 100644
--- a/emacs/site-lisp/exwm-pref.el
+++ b/emacs/site-lisp/exwm-pref.el
@@ -6,9 +6,10 @@
(require 'exwm-randr)
(require 'exwm-xim)
(require 'exwm-systemtray)
+(require 'exwm-manage)
-(setq exwm-workspace-number 1)
-;; (setq exwm-randr-workspace-monitor-plist '(0 "DP-0" 1 "HDMI-0" 2 "DVI-I-1"))
+(setq exwm-workspace-number 2)
+(setq exwm-randr-workspace-monitor-plist '(0 "DP-0" 1 "HDMI-0"))
(setq exwm-workspace-show-all-buffers t)
(setq exwm-layout-show-all-buffers t)
@@ -22,9 +23,9 @@
;; (require 'exwm-firefox)
;; (exwm-firefox-mode)
-(setq persp-auto-resume-time 0)
+(setq exwm-title-length 50)
-(setq exwm-title-length 70)
+(setq exwm-manage-force-tiling t)
(defun b3n-exwm-set-buffer-name ()
(if (and exwm-title (string-match "\\`http[^ ]+" exwm-title))
@@ -33,6 +34,10 @@
(setq-local exwm-title (replace-regexp-in-string
(concat (regexp-quote url) " - ")
""
+ exwm-title))
+ (setq-local exwm-title (replace-regexp-in-string
+ " - Mozilla Firefox"
+ ""
exwm-title))))
(setq-local exwm-title
@@ -41,7 +46,7 @@
"<"
;; (if (<= (length exwm-title) exwm-title-length)
exwm-title
- ;; (concat (substring exwm-title 0 exwm-title-length) "…"))
+ ;; (concat (substring exwm-title 0 exwm-title-length) "…"))
">"))
(exwm-workspace-rename-buffer exwm-title))
@@ -75,7 +80,7 @@
;; super hacky, assumes that there are only two active workspaces
(exwm-workspace-switch-create (exwm-workspace--workspace-from-frame-or-index
(let* ((workspace-list (seq-filter 'exwm-workspace--active-p exwm-workspace--list))
- (active-workspaces workspace-list))
+ (active-workspaces workspace-list))
(while (not (eq (car active-workspaces) (selected-frame)))
(setq active-workspaces (cdr active-workspaces)))
(setq active-workspaces (cdr active-workspaces))
@@ -98,6 +103,7 @@
;;(exwm-config-default)
(exwm-systemtray-mode)
(push ?\C-\\ exwm-input-prefix-keys) ;;C-\ to switch input method
+(push ?\C-u exwm-input-prefix-keys) ;; send C-u to all windows too
;; All buffers created in EXWM mode are named "*EXWM*". You may want to
;; change it in `exwm-update-class-hook' and `exwm-update-title-hook', which
@@ -147,7 +153,7 @@
;;fast workspace switch
([?\s-O] . exwm-other-assigned-workspace)
- ;; ([?\M-O] . exwm-other-assigned-workspace)
+ ([?\M-O] . exwm-other-assigned-workspace)
;;quick calc switching
;; ([?\s-c] . switch-to-calc)
@@ -179,42 +185,44 @@
(interactive (list (read-shell-command "$ ")))
(start-process-shell-command command nil command)))
;; ([?\M-d] . (lambda (command)
- ;; (interactive (list (read-shell-command "$ ")))
- ;; (start-process-shell-command command nil command)))
+ ;; (interactive (list (read-shell-command "$ ")))
+ ;; (start-process-shell-command command nil command)))
;; browser
([?\s-e] . (lambda ()
(interactive)
- (start-process-shell-command "vimb" nil "vimb")))
+ (start-process-shell-command "firefox" nil "firefox")))
;; ([?\M-e] . (lambda ()
- ;; (interactive)
- ;; (start-process-shell-command "vimb" nil "vimb")))
+ ;; (interactive)
+ ;; (start-process-shell-command "vimb" nil "vimb")))
;;terminal
- ([s-return] . 'eshell)
- ;; ([M-return] . (lambda ()
- ;; (interactive)
- ;;if we are already there, switch back
- ;; (if (string= (buffer-name (current-buffer)) "*vterm*")
- ;; (exwm-workspace-switch-to-buffer exwm-last-buffer)
- ;; (progn
- ;; (setq exwm-last-buffer (current-buffer))
- ;; (vterm)))))
+ ([s-return] . eshell)
+ ;; ((kbd "M-<return>") . eshell)
+ ;; ([?\M-return] . (lambda ()
+ ;; (interactive)
+ ;;if we are already there, switch back
+ ;; (if (string= (buffer-name (current-buffer)) "*vterm*")
+ ;; (exwm-workspace-switch-to-buffer exwm-last-buffer)
+ ;; (progn
+ ;; (setq exwm-last-buffer (current-buffer))
+ ;; (vterm)))))
;; return to the last window
- ;; ([s-tab] . (lambda ()
+ ;; ([?\s-tab] . (lambda ()
;; (interactive)
;; (exwm-workspace-switch-to-buffer (other-buffer))))
;; kill the current window and close the buffer if possible
([?\s-Q] . kill-buffer-and-window)
+ ([?\M-Q] . kill-buffer-and-window)
;; kill current buffer but leave window
([?\s-q] . (lambda () (interactive) (kill-buffer nil)))
;; suspend
- ([?\s-`] . (lambda ()
- (interactive)
- (start-process "" nil "loginctl" "suspend")))
+ ;; ([?\s-`] . (lambda ()
+ ;; (interactive)
+ ;; (start-process "" nil "loginctl" "suspend")))
))
;; requires some custom shell scripts not included in my emacs config
@@ -250,32 +258,39 @@
;; list of cons cells (SRC . DEST), where SRC is the key sequence you press
;; and DEST is what EXWM actually sends to application. Note that both SRC
;; and DEST should be key sequences (vector or string).
-;; (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/paste.
-;; ;; ([?\C-w] . [?\C-x])
-;; ;; ([?\M-w] . [?\C-c])
-;; ;; ([?\C-y] . [?\C-v])
-;; ;; search
-;; ([?\C-s] . [?\C-f])))
+(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/paste.
+ ;; ([?\C-w] . [?\C-x])
+ ([?\M-w] . [?\C-c])
+ ([?\C-y] . [?\C-v])
+ ;; search
+ ([?\C-s] . [?\C-f])))
;; You can hide the minibuffer and echo area when they're not used, by
;; uncommenting the following line.
;; (setq exwm-workspace-minibuffer-position 'bottom)
+
+;; specifically disable S-return in the minibuffer so you don't hit it on accident
+;; This is here cause cause the other s-* bindings are here
+(if vertico-mode
+ (define-key vertico-map (kbd "s-<return>") 'vertico-exit)
+ (define-key minibuffer-mode-map (kbd "s-<return>") 'minibuffer-complete-and-exit))
+
;; Do not forget to enable EXWM. It will start by itself when things are
;; ready. You can put it _anywhere_ in your configuration.
(exwm-enable)
diff --git a/emacs/site-lisp/general-text.el b/emacs/site-lisp/general-text.el
index d03171a..e593487 100644
--- a/emacs/site-lisp/general-text.el
+++ b/emacs/site-lisp/general-text.el
@@ -20,7 +20,7 @@
(setq ispell-personal-dictionary "/home/tmu/.aspell.en.pws")
(add-hook 'text-mode-hook (lambda ()
- (ispell-mode 1)
+ (ispell-minor-mode 1)
(local-set-key (kbd "M-l") 'dict-map)))
(electric-pair-mode 1)
diff --git a/emacs/site-lisp/irc-config.el b/emacs/site-lisp/irc-config.el
new file mode 100644
index 0000000..d9213ef
--- /dev/null
+++ b/emacs/site-lisp/irc-config.el
@@ -0,0 +1,24 @@
+
+;; erc stuff
+(require 'erc)
+(setq erc-modules '(services autojoin button completion fill imenu irccontrols list match menu
+ move-to-prompt netsplit networks readonly ring stamp track)
+ erc-nick "tccq"
+ erc-use-auth-source-for-nickserv-password t
+ erc-autojoin-channels-alist '(("libera.chat"
+ "#emacs" "#emacs-social" "#linux" "#archlinux" "#haskell" "#invidious"))
+
+ erc-hide-list '("JOIN" "PART" "QUIT")
+ erc-current-nick-highlight-type 'nick
+ erc-keywords nil
+ erc-track-exclude-types '("JOIN" "PART" "QUIT" "NICK" "MODE")
+ erc-track-use-faces t
+ erc-track-faces-priority-list '(erc-current-nick-face erc-keyword-face)
+ erc-track-priority-faces-only 'all)
+
+(defun start-erc ()
+ "Start erc and autojoin various channels"
+ (interactive)
+ (erc :server "irc.libera.chat" :port 6667))
+
+(provide 'irc-config)
diff --git a/emacs/site-lisp/modeline-config.el b/emacs/site-lisp/modeline-config.el
index 873f855..b74a15d 100644
--- a/emacs/site-lisp/modeline-config.el
+++ b/emacs/site-lisp/modeline-config.el
@@ -2,8 +2,8 @@
(provide 'modeline-config)
-(require 'battery)
-(display-battery-mode 1)
+;; (require 'battery)
+;; (display-battery-mode 1)
(use-package doom-modeline
:init
diff --git a/emacs/site-lisp/my-binds.el b/emacs/site-lisp/my-binds.el
index d3455e4..bb80e62 100644
--- a/emacs/site-lisp/my-binds.el
+++ b/emacs/site-lisp/my-binds.el
@@ -17,8 +17,6 @@
(keymap-set dired-mode-map "C-o" 'dired-display-file)
(keymap-set dired-mode-map "F" 'dired-do-find-marked-files)
-
-(global-set-key (kbd "M-l") 'forward-char)
-(global-set-key (kbd "M-j") 'next-line)
-(global-set-key (kbd "M-k") 'previous-line)
-(global-set-key (kbd "M-h") 'backward-char)
+;; searching
+(global-set-key (kbd "M-s g") 'rgrep)
+(global-set-key (kbd "M-s r") 'counsel-rg)
diff --git a/emacs/site-lisp/my-funcs.el b/emacs/site-lisp/my-funcs.el
index b1cfdec..8bed290 100644
--- a/emacs/site-lisp/my-funcs.el
+++ b/emacs/site-lisp/my-funcs.el
@@ -91,19 +91,21 @@ BEG and END define the region."
(let ((transient-mark-mode nil))
(yank-advised-indent-function (region-beginning) (region-end)))))
-(defadvice evil-paste-before (after yank-indent activate)
- "If current mode is one of 'yank-indent-modes, indent yanked text (with prefix arg don't indent)."
- (if (and (not (ad-get-arg 0))
- (member major-mode yank-indent-modes))
- (let ((transient-mark-mode nil))
- (yank-advised-indent-function (region-beginning) (region-end)))))
-
-(defadvice evil-paste-after (after yank-indent activate)
- "If current mode is one of 'yank-indent-modes, indent yanked text (with prefix arg don't indent)."
- (if (and (not (ad-get-arg 0))
- (member major-mode yank-indent-modes))
- (let ((transient-mark-mode nil))
- (yank-advised-indent-function (region-beginning) (region-end)))))
+(if want-evil
+ (progn
+ (defadvice evil-paste-before (after yank-indent activate)
+ "If current mode is one of 'yank-indent-modes, indent yanked text (with prefix arg don't indent)."
+ (if (and (not (ad-get-arg 0))
+ (member major-mode yank-indent-modes))
+ (let ((transient-mark-mode nil))
+ (yank-advised-indent-function (region-beginning) (region-end)))))
+
+ (defadvice evil-paste-after (after yank-indent activate)
+ "If current mode is one of 'yank-indent-modes, indent yanked text (with prefix arg don't indent)."
+ (if (and (not (ad-get-arg 0))
+ (member major-mode yank-indent-modes))
+ (let ((transient-mark-mode nil))
+ (yank-advised-indent-function (region-beginning) (region-end)))))))
(defun fold-this-fold-forward (&optional arg)
"Fold forward ARG number of sexps, defaulting to one."