summaryrefslogtreecommitdiff
path: root/emacs
diff options
context:
space:
mode:
authortmu <t.man.atl.2012@gmail.com>2023-08-02 12:07:55 -0700
committertmu <t.man.atl.2012@gmail.com>2023-08-02 12:07:55 -0700
commit05d72eabc9e1f0daefe26be6f7c54f83f58d5f15 (patch)
tree229cbfa49468c011954242ca11b475b9d04cb362 /emacs
parentc2235d1850722932b7fb9dcf5907bbcc040bb29c (diff)
update. mostly emacs
Diffstat (limited to 'emacs')
-rw-r--r--emacs/init.el183
-rw-r--r--emacs/project-stuff.el81
2 files changed, 219 insertions, 45 deletions
diff --git a/emacs/init.el b/emacs/init.el
index c8955ab..5ded8b6 100644
--- a/emacs/init.el
+++ b/emacs/init.el
@@ -6,6 +6,90 @@
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(comment-style 'extra-line)
+ '(connection-local-criteria-alist
+ '(((:application tramp :protocol "flatpak")
+ tramp-container-connection-local-default-flatpak-profile)
+ ((:application tramp)
+ tramp-connection-local-default-system-profile tramp-connection-local-default-shell-profile)
+ ((:application eshell)
+ eshell-connection-default-profile)))
+ '(connection-local-profile-alist
+ '((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-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-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-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-connection-local-default-shell-profile
+ (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))))
'(custom-enabled-themes '(tmu-custom))
'(custom-safe-themes
'("6dafb31ade9ff07229faaf05c41c2ae475c44731362b792f65f3930b1a2c9cfd" "dc77e008092a5a4aa6b6ed8e4826bebf8f2fb930a8de073bf7f458efd884cca8" "d1ff3e66028f9c527298580d2a64f9e3280f07f9e94d4dada72b67ef15069441" "3d4e3644e237a95683daa73e397c4c0d1ae06bbaaf8040104232591a28bc1315" "12a07bc38295e4b06a8965db261f51ea7ea61fbf91b3ef41298bbb549d1d9403" default))
@@ -13,7 +97,7 @@
'("/home/tmu/Desktop/eway/sway" "/home/tmu/Desktop/eway/cage" "/home/tmu/Desktop/eway/wlroots" "/home/tmu/Desktop/eway/comp" "/home/tmu/Desktop/eway"))
'(menu-bar-mode nil)
'(package-selected-packages
- '(evil-snipe evil-surround markdown-preview-mode 2048-game evil ibuffer-project persp-mode-projectile-bridge persp-mode fish-mode spell-fu pyim chinese-conv esup buffer-move vertico flymake-diagnostic-at-point emms-state emms-player-simple-mpv eshell-fringe-status esh-help eshell-vterm vterm rustic benchmark-init ivy-prescient eat ivy-hydra ivy emms eyebrowse highlight dumb-jump volume workgroups async bongo hydra free-keys gxref fold-this simple-httpd xelb oauth2 imenu-anywhere popwin folding gdscript-mode))
+ '(evil-commentary frog-jump-buffer modus-themes which-key evil-collection hl-todo evil-easymotion sideline-flymake sideline-lsp zig-mode tree-sitter-langs tree-sitter company-go pyim-basedict evil-snipe evil-surround markdown-preview-mode 2048-game evil ibuffer-project persp-mode-projectile-bridge persp-mode fish-mode spell-fu pyim chinese-conv esup buffer-move vertico flymake-diagnostic-at-point emms-state emms-player-simple-mpv eshell-fringe-status esh-help eshell-vterm vterm rustic benchmark-init ivy-prescient eat ivy-hydra ivy emms eyebrowse highlight dumb-jump volume workgroups async bongo hydra free-keys gxref fold-this simple-httpd xelb oauth2 imenu-anywhere popwin folding gdscript-mode))
'(scroll-bar-mode nil)
'(tool-bar-mode nil)
'(transient-mark-mode nil)
@@ -189,6 +273,11 @@ mark. Does the same of ARG number sexps if given"
;; (selectrum-highlight-candidates-function #'orderless-highlight-matches)
)
+(use-package which-key
+ :ensure t
+ :init
+ (which-key-mode))
+
;; better in-buffer completion
;; (require 'company)
;; (add-hook 'prog-mode-hook (lambda ()
@@ -242,30 +331,20 @@ mark. Does the same of ARG number sexps if given"
(autoload 'async-eval "~/.emacs.d/async-eval.el" "evaluate in another emacs process" t)
-(load-file "~/.emacs.d/project-stuff.el")
-
-(load-file "~/.emacs.d/single-header.el")
-
-(put 'dired-find-alternate-file 'disabled nil)
-(put 'upcase-region 'disabled nil)
-(put 'list-timers 'disabled nil)
-(put 'narrow-to-region 'disabled nil)
-
-;; no tabs
-(setq-default indent-tabs-mode nil)
-
-;; input method stuff
-(setq rime-translate-keybindings
- '("C-f" "C-b" "C-n" "C-p" "C-g" "<left>" "<right>" "<up>" "<down>" "<prior>" "<next>" "<delete>"))
-(setq rime-share-data-dir "~/.local/share/fcitx5/rime")
-(setq rime-show-candidate 'popup)
-
;; evil mode stuff
+(setq
+ evil-want-keybinding nil
+ evil-want-integration t)
+;; evil-want-C-d-scroll nil
+;; evil-want-C-w-delete nil
+;; evil-disable-insert-state-bindings t
+;; evil-respect-visual-line-mode t
+(require 'evil)
+(when (require 'evil-collection nil t)
+ (evil-collection-init))
(evil-mode 1)
+(evilem-default-keybindings "SPC")
(define-key evil-motion-state-map (kbd "TAB") 'indent-for-tab-command)
-(setq evil-want-C-d-scroll nil
- evil-want-C-w-delete nil
- evil-disable-insert-state-bindings t)
(use-package evil-surround
:ensure t
:config
@@ -283,6 +362,66 @@ mark. Does the same of ARG number sexps if given"
(define-key evil-insert-state-map (kbd "C-a") 'move-beginning-of-line)
(define-key evil-normal-state-map (kbd "M-.") 'xref-find-definitions)
+(add-hook 'prog-mode-hook (lambda ()
+ (modify-syntax-entry ?_ "w") ))
+
+;;; sashka bindings
+;; movement
+(defun evil-window-split-and-switch ()
+ "Split the window vertically and switch to the new buffer."
+ (interactive)
+ (evil-window-split)
+ (other-window 1))
+
+(defun evil-window-vsplit-and-switch ()
+ "Split the window horizontally and switch to the new buffer."
+ (interactive)
+ (evil-window-vsplit)
+ (other-window 1))
+
+(evil-define-key 'normal global-map (kbd "SPC RET") 'vterm)
+(evil-define-key 'normal global-map (kbd "SPC !") 'abort-recursive-edit)
+(evil-define-key 'normal global-map (kbd "SPC f f") 'find-file)
+
+(evil-define-key 'normal global-map (kbd "SPC SPC SPC j") 'evil-window-split-and-switch)
+(evil-define-key 'normal global-map (kbd "SPC SPC SPC k") 'evil-window-split-and-switch)
+(evil-define-key 'normal global-map (kbd "SPC SPC SPC h") 'evil-window-vsplit-and-switch)
+(evil-define-key 'normal global-map (kbd "SPC SPC SPC l") 'evil-window-vsplit-and-switch)
+(evil-define-key 'normal global-map (kbd "SPC SPC h") 'evil-window-left)
+(evil-define-key 'normal global-map (kbd "SPC SPC j") 'evil-window-down)
+(evil-define-key 'normal global-map (kbd "SPC SPC k") 'evil-window-up)
+(evil-define-key 'normal global-map (kbd "SPC SPC l") 'evil-window-right)
+(evil-define-key 'normal global-map (kbd "SPC SPC w") 'delete-window)
+(evil-define-key 'normal global-map (kbd "SPC SPC q") 'delete-window)
+(evil-define-key 'normal global-map (kbd "SPC SPC b") 'balance-windows)
+(evil-define-key 'normal global-map (kbd "SPC s s") 'save-buffer)
+(evil-define-key 'normal global-map (kbd "SPC s f") 'counsel-find-file)
+(evil-define-key 'normal global-map (kbd "SPC s r") 'counsel-rg)
+(evil-define-key 'normal global-map (kbd "SPC ;") 'frog-jump-buffer)
+
+;; frog jump stuff
+(add-hook 'frog-menu-after-init-hook (lambda ()
+ (setq-local avy-background nil)))
+
+(load-file "~/.emacs.d/project-stuff.el")
+
+;; (load-file "~/.emacs.d/single-header.el")
+
+(put 'dired-find-alternate-file 'disabled nil)
+(put 'upcase-region 'disabled nil)
+(put 'list-timers 'disabled nil)
+(put 'narrow-to-region 'disabled nil)
+
+;; no tabs
+(setq-default indent-tabs-mode nil)
+
+;; input method stuff
+(setq rime-translate-keybindings
+ '("C-f" "C-b" "C-n" "C-p" "C-g" "<left>" "<right>" "<up>" "<down>" "<prior>" "<next>" "<delete>"))
+(setq rime-share-data-dir "~/.local/share/fcitx5/rime")
+(setq rime-show-candidate 'popup)
+
+
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
diff --git a/emacs/project-stuff.el b/emacs/project-stuff.el
index 03142b2..29b515e 100644
--- a/emacs/project-stuff.el
+++ b/emacs/project-stuff.el
@@ -7,6 +7,10 @@
(add-hook 'xref-backend-functions 'gxref-xref-backend)
+;; don't forget that eglot exists
+;; (global-company-mode 1)
+;; (setq company-idle-delay 0.1)
+
;; (require 'semantic/sb)
;; (setq semantic-default-submodes
;; '(global-semantic-idle-scheduler-mode
@@ -17,11 +21,9 @@
;; global-semantic-mru-bookmark-mode
;; global-semantic-idle-local-symbol-highlight-mode)
;; semantic-idle-scheduler-work-idle-time 5)
-;; (semantic-mode 1)
+;; (semantic-mode 1
;; (global-ede-mode t)
-;; don't forget that eglot exists
-
;; better commenting stuff
(global-set-key (kbd "C-x C-;") 'comment-or-uncomment-region)
(global-set-key (kbd "C-x ;") 'comment-line)
@@ -29,6 +31,9 @@
(setq asm-comment-char ?#)
+;; nice eglot binds
+(global-set-key (kbd "C-c f") 'eglot-code-action-quickfix)
+(global-set-key (kbd "C-c C-f") 'eglot-code-actions)
;; deal white whitespace better
(setq whitespace-style
@@ -38,6 +43,8 @@
(whitespace-mode 1)
(display-fill-column-indicator-mode 1)))
+(global-hl-todo-mode 1)
+
(require 'sr-speedbar "~/.emacs.d/sr-speedbar.el" nil)
(defun speedbar-switch-and-setup ()
@@ -59,6 +66,8 @@
(global-unset-key (kbd "M-i"))
(global-set-key (kbd "M-i") 'speedbar-switch-and-setup)
+(global-set-key (kbd "M-Z") 'suspend-frame)
+
;; indent code when pasting, from
;; https://trey-jackson.blogspot.com/2008/03/emacs-tip-15-indent-yanked-code.html
@@ -93,6 +102,19 @@ 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)))))
;; make ibuffer play with projectile
@@ -110,6 +132,12 @@ BEG and END define the region."
;; code folding
+(add-to-list 'load-path "~/.emacs.d/")
+;; (require 'ts-foldV)
+
+(autoload 'hide-lines "hide-lines" "Hide lines based on a regexp" t)
+(global-set-key (kbd "C-c /") 'hide-lines)
+
;; region folding
(autoload 'fold-this "fold-this" "arbitrary folding" t)
(autoload 'fold-this-unfold-at-point "fold-this" "arbitrary folding" t)
@@ -168,13 +196,28 @@ BEG and END define the region."
(hs-minor-mode 1)
;; (flymake-mode 1)
(spell-fu-mode 0)
+ (superword-mode 1)
(add-hook 'before-save-hook (lambda () (clean-prog-file (current-buffer))))))
-(use-package flymake-diagnostic-at-point
- :after flymake
- :config
- (setq flymake-diagnostic-at-point-timer-delay 1)
- (add-hook 'flymake-mode-hook #'flymake-diagnostic-at-point-mode))
+;; (use-package flymake-diagnostic-at-point
+;; :after flymake
+;; :config
+;; (setq flymake-diagnostic-at-point-timer-delay 1)
+;; (add-hook 'flymake-mode-hook #'flymake-diagnostic-at-point-mode))
+
+(use-package sideline
+ :init
+ (setq sideline-backends-skip-current-line t ; don't display on current line
+ sideline-order-left 'down ; or 'up
+ sideline-order-right 'up ; or 'down
+ sideline-format-left "%s " ; format for left aligment
+ sideline-format-right " %s" ; format for right aligment
+ sideline-priority 100 ; overlays' priority
+ sideline-display-backend-name t) ; display the backend name
+ :hook ((flycheck-mode . sideline-mode) ; for `sideline-flycheck`
+ (flymake-mode . sideline-mode)) ; for `sideline-flymake`
+ :init
+ (setq sideline-backends-right '(sideline-flymake)))
(setq rustic-lsp-setup-p nil)
@@ -205,6 +248,7 @@ BEG and END define the region."
(require 'evil)
(evil-set-initial-state 'vterm-mode 'emacs)
+(evil-define-key 'normal global-map (kbd "SPC i") 'imenu)
(define-key eshell-mode-map (kbd "M-o") 'other-window)
(define-key eshell-mode-map (kbd "M-W") 'switch-buffer)
@@ -213,8 +257,6 @@ BEG and END define the region."
(recenter-top-bottom 0)))
;; compilation stuff
-(global-unset-key (kbd "M-m"))
-(global-unset-key (kbd "M-M"))
(global-set-key (kbd "M-m") (lambda ()
(interactive)
(if flymake-mode
@@ -224,20 +266,12 @@ BEG and END define the region."
(setq compilation-always-kill t
compilation-scroll-output t)
-;; better finding things
-(global-set-key (kbd "C-s") 'swiper)
+;; better searching
+(setq counsel-grep-base-command
+ "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)
-(global-set-key (kbd "C-r") 'counsel-ag)
-
-;; perspective and friends
-;; (require 'perspective)
-;; (customize-set-variable 'persp-mode-prefix-key (kbd "M-p"))
-;; (global-set-key (kbd "C-x C-b") 'persp-ibuffer)
-;; (persp-mode)
-;; (global-set-key (kbd "C-x b") 'persp-switch-to-buffer*)
-;; (global-set-key (kbd "M-W") 'persp-switch-to-buffer*)
-;; (global-set-key (kbd "C-x k") 'persp-kill-buffer*)
-
+(define-key evil-normal-state-map (kbd "C-r") 'counsel-rg)
(require 'persp-mode)
(persp-mode 1)
@@ -267,6 +301,7 @@ BEG and END define the region."
persp-kill-foreign-buffer-behaviour 'dont-ask)
(global-set-key (kbd "M-p") 'persp-key-map)
(global-set-key (kbd "C-x b") #'persp-switch-to-buffer)
+ (global-set-key (kbd "C-x B") #'switch-to-buffer)
(global-set-key (kbd "C-x C-b") (lambda ()
(interactive)
(with-persp-buffer-list () (ibuffer))))