Tmux config, kitty theme

Joe Bellus 5 months ago
parent 7be7a8d9b4
commit adf892a865

@ -265,8 +265,6 @@ Turn on spell checking with hunspell and enable it for specific modes
(use-package flyspell-correct
:after flyspell)
(use-package flyspell-correct-ivy
:after flyspell-correct)
#+end_src
* Functions
@ -307,53 +305,45 @@ This sets up the environment path from the shell configuration. Useful for detec
(when (memq window-system '(mac ns x))
(exec-path-from-shell-initialize))
#+end_src
** Terminals
#+begin_src emacs-lisp
(use-package multi-vterm
:after (evil)
:config
(add-hook 'vterm-mode-hook
(lambda ()
(setq-local evil-insert-state-cursor 'box)
(evil-insert-state)))
;; (define-key vterm-mode-map [return] #'vterm-send-return)
;; (setq vterm-keymap-exceptions nil)
;; (evil-define-key 'insert vterm-mode-map (kbd "C-e") #'vterm--self-insert)
;; (evil-define-key 'insert vterm-mode-map (kbd "C-f") #'vterm--self-insert)
;; (evil-define-key 'insert vterm-mode-map (kbd "C-a") #'vterm--self-insert)
;; (evil-define-key 'insert vterm-mode-map (kbd "C-v") #'vterm--self-insert)
;; (evil-define-key 'insert vterm-mode-map (kbd "C-b") #'vterm--self-insert)
;; (evil-define-key 'insert vterm-mode-map (kbd "C-w") #'vterm--self-insert)
;; (evil-define-key 'insert vterm-mode-map (kbd "C-u") #'vterm--self-insert)
;; (evil-define-key 'insert vterm-mode-map (kbd "C-d") #'vterm--self-insert)
;; (evil-define-key 'insert vterm-mode-map (kbd "C-n") #'vterm--self-insert)
;; (evil-define-key 'insert vterm-mode-map (kbd "C-m") #'vterm--self-insert)
;; (evil-define-key 'insert vterm-mode-map (kbd "C-p") #'vterm--self-insert)
;; (evil-define-key 'insert vterm-mode-map (kbd "C-j") #'vterm--self-insert)
;; (evil-define-key 'insert vterm-mode-map (kbd "C-k") #'vterm--self-insert)
;; (evil-define-key 'insert vterm-mode-map (kbd "C-r") #'vterm--self-insert)
;; (evil-define-key 'insert vterm-mode-map (kbd "C-t") #'vterm--self-insert)
;; (evil-define-key 'insert vterm-mode-map (kbd "C-g") #'vterm--self-insert)
;; (evil-define-key 'insert vterm-mode-map (kbd "C-c") #'vterm--self-insert)
;; (evil-define-key 'insert vterm-mode-map (kbd "C-SPC") #'vterm--self-insert)
;; (evil-define-key 'normal vterm-mode-map (kbd "C-d") #'vterm--self-insert)
;; (evil-define-key 'normal vterm-mode-map (kbd ",c") #'multi-vterm)
;; (evil-define-key 'normal vterm-mode-map (kbd ",n") #'multi-vterm-next)
;; (evil-define-key 'normal vterm-mode-map (kbd ",p") #'multi-vterm-prev)
;; (evil-define-key 'normal vterm-mode-map (kbd "i") #'evil-insert-resume)
;; (evil-define-key 'normal vterm-mode-map (kbd "o") #'evil-insert-resume)
;; (evil-define-key 'normal vterm-mode-map (kbd "<return>") #'evil-insert-resume)
)
** Counsel
Better completion for various selection lists
#+begin_src emacs-lisp
(use-package counsel
:init
:bind (("M-x" . counsel-M-x)
:map minibuffer-local-map
("C-r" . 'counsel-minibuffer-history))
:custom
(counsel-linux-app-format-function #'counsel-linux-app-format-function-name-only)
:config
(counsel-mode 1)
(setq ivy-initial-inputs-alist nil)) ;; Don't start searches with ^
#+end_src
** Ivy
Ivy completion, Swiper and ivy rich for nice completion and buffer searching.
#+begin_src emacs-lisp
(use-package ivy
:diminish
:bind (("C-s" . swiper)
:map ivy-minibuffer-map
("TAB" . ivy-alt-done)
("C-l" . ivy-alt-done)
("C-j" . ivy-next-line)
("C-k" . ivy-previous-line)
:map ivy-switch-buffer-map
("C-k" . ivy-previous-line)
("C-l" . ivy-done)
("C-d" . ivy-switch-buffer-kill)
:map ivy-reverse-i-search-map
("C-k" . ivy-previous-line)
("C-d" . ivy-reverse-i-search-kill))
:init
(setq enable-recursive-minibuffers t)
:custom
(ivy-height 10)
:config
(ivy-mode 1))
(use-package ivy-rich
:custom
(setcdr (assq t ivy-format-functions-alist) #'ivy-format-function-line)
(ivy-rich-mode 1))
#+end_src
** Doom Mode line
#+begin_src emacs-lisp
(use-package doom-modeline
@ -389,12 +379,12 @@ Improves the help buffer inside Emacs
#+begin_src emacs-lisp
(use-package helpful
:custom
(counsel-describe-function-function #'helpful-callable)
(counsel-describe-variable-function #'helpful-variable)
(describe-function-function #'helpful-callable)
(describe-variable-function #'helpful-variable)
:bind
([remap describe-function] . counsel-describe-function)
([remap describe-function] . describe-function)
([remap describe-command] . helpful-command)
([remap describe-variable] . counsel-describe-variable)
([remap describe-variable] . describe-variable)
([remap describe-key] . helpful-key))
#+end_src
@ -437,7 +427,6 @@ Projectile gives Emacs project management features.
(use-package projectile
:diminish projectile-mode
:config (projectile-mode)
:custom ((projectile-completion-system 'ivy))
:bind-keymap
("C-c p" . projectile-command-map)
:init
@ -446,10 +435,6 @@ Projectile gives Emacs project management features.
(setq projectile-enable-caching t))
(setq projectile-switch-project-action #'projectile-dired))
(use-package counsel-projectile
:config
(counsel-projectile-mode))
(use-package flycheck-projectile)
#+end_src
@ -506,7 +491,6 @@ This function sets up the basic org functionality and is called when org is init
"mtcr" '(org-clock-report :which-key "generate report")
"mn" '(org-toggle-narrow-to-subtree :which-key "toggle narrow")
"mf" '(counsel-org-goto :which-key "find section")
"mp" '(fs/publish-html :which-key "publish file")
"mr" '(org-refile :which-key "refile")
"me" '(org-export-dispatch t :which-key "export"))
@ -985,24 +969,144 @@ Tweaks to kill old DIRED buffers, use tab to open subtrees, and make file sizes
(add-hook 'dired-mode-hook 'all-the-icons-dired-mode))
#+end_src
** Mastodon
#+begin_src emacs-lisp
(when config/mastodon-username (use-package mastodon
** Completion
#+begin_src elisp
(use-package vertico
:init
(vertico-mode))
(use-package vertico-directory
:after vertico
:ensure nil
;; More convenient directory navigation commands
:bind (:map vertico-map
("RET" . vertico-directory-enter)
("DEL" . vertico-directory-delete-word)
("M-DEL" . vertico-directory-delete-char))
;; Tidy shadowed file names
:hook (rfn-eshadow-update-overlay . vertico-directory-tidy))
(use-package orderless
:init
;; Configure a custom style dispatcher (see the Consult wiki)
;; (setq orderless-style-dispatchers '(+orderless-consult-dispatch orderless-affix-dispatch)
;; orderless-component-separator #'orderless-escapable-split-on-space)
(setq completion-styles '(orderless basic)
completion-category-defaults nil
completion-category-overrides '((file (styles partial-completion)))))
;; Example configuration for Consult
(use-package consult
;; Enable automatic preview at point in the *Completions* buffer. This is
;; relevant when you use the default completion UI.
:hook (completion-list-mode . consult-preview-at-point-mode)
;; The :init configuration is always executed (Not lazy)
:init
;; Optionally configure the register formatting. This improves the register
;; preview for `consult-register', `consult-register-load',
;; `consult-register-store' and the Emacs built-ins.
(setq register-preview-delay 0.5
register-preview-function #'consult-register-format)
;; Optionally tweak the register preview window.
;; This adds thin lines, sorting and hides the mode line of the window.
(advice-add #'register-preview :override #'consult-register-window)
;; Use Consult to select xref locations with preview
(setq xref-show-xrefs-function #'consult-xref
xref-show-definitions-function #'consult-xref)
;; Configure other variables and modes in the :config section,
;; after lazily loading the package.
:config
;; Optionally configure preview. The default value
;; is 'any, such that any key triggers the preview.
;; (setq consult-preview-key 'any)
;; (setq consult-preview-key "M-.")
;; (setq consult-preview-key '("S-<down>" "S-<up>"))
;; For some commands and buffer sources it is useful to configure the
;; :preview-key on a per-command basis using the `consult-customize' macro.
(consult-customize
consult-theme :preview-key '(:debounce 0.2 any)
consult-ripgrep consult-git-grep consult-grep
consult-bookmark consult-recent-file consult-xref
consult--source-bookmark consult--source-file-register
consult--source-recent-file consult--source-project-recent-file
;; :preview-key "M-."
:preview-key '(:debounce 0.4 any))
;; Optionally configure the narrowing key.
;; Both < and C-+ work reasonably well.
(setq consult-narrow-key "<") ;; "C-+"
;; Optionally make narrowing help available in the minibuffer.
;; You may want to use `embark-prefix-help-command' or which-key instead.
;; (define-key consult-narrow-map (vconcat consult-narrow-key "?") #'consult-narrow-help)
;; By default `consult-project-function' uses `project-root' from project.el.
;; Optionally configure a different project root function.
;;;; 1. project.el (the default)
;; (setq consult-project-function #'consult--default-project--function)
;;;; 2. vc.el (vc-root-dir)
;; (setq consult-project-function (lambda (_) (vc-root-dir)))
;;;; 3. locate-dominating-file
;; (setq consult-project-function (lambda (_) (locate-dominating-file "." ".git")))
;;;; 4. projectile.el (projectile-project-root)
;; (autoload 'projectile-project-root "projectile")
;; (setq consult-project-function (lambda (_) (projectile-project-root)))
;;;; 5. No project support
;; (setq consult-project-function nil)
)
(use-package marginalia
:ensure t
:config
(setq mastodon-instance-url "https://mastodon.5sigma.io")
(setq mastodon-active-user config/mastodon-username)
(add-hook 'mastodon-mode-hook 'turn-off-evil-mode)))
(marginalia-mode))
(use-package embark
:ensure t
:bind
(("C-." . embark-act) ;; pick some comfortable binding
("C-;" . embark-dwim) ;; good alternative: M-.
("C-h B" . embark-bindings)) ;; alternative for `describe-bindings'
:init
;; Optionally replace the key help with a completing-read interface
(setq prefix-help-command #'embark-prefix-help-command)
;; Show the Embark target at point via Eldoc. You may adjust the Eldoc
;; strategy, if you want to see the documentation from multiple providers.
(add-hook 'eldoc-documentation-functions #'embark-eldoc-first-target)
;; (setq eldoc-documentation-strategy #'eldoc-documentation-compose-eagerly)
:config
;; Hide the mode line of the Embark live/completions buffers
(add-to-list 'display-buffer-alist
'("\\`\\*Embark Collect \\(Live\\|Completions\\)\\*"
nil
(window-parameters (mode-line-format . none)))))
;; Consult users will also want the embark-consult package.
(use-package embark-consult
:ensure t ; only need to install it, embark loads it after consult if found
:hook
(embark-collect-mode . consult-preview-at-point-mode))
#+end_src
* Keybindings
General keybindings. Mode specific key binds are generally defined in the initialization of the modes package. These are more global key binds.
** Root
Root level actions bound directly on space.
Root level actions bound directly on space.
#+begin_src emacs-lisp
(fs/leader "SPC" '(counsel-find-file :which-key "find file"))
(fs/leader "SPC" '(find-file :which-key "find file"))
(fs/leader
"`" '(fs/swap-buffer :which-key "swap buffers"))
"`" '(multi-vterm-dedicated-toggle :which-key "swap buffers"))
#+end_src
**ch i Buffers
@ -1013,9 +1117,8 @@ Key binds for interacting with buffers
"b[" '(previous-buffer :which-key "previous buffer")
"b]" '(next-buffer :which-key "next buffer")
"bk" '(kill-current-buffer :which-key "kill buffer")
"bb" '(counsel-switch-buffer :which-key "list buffers"))
"bb" '(consult-buffer :which-key "list buffers"))
#+end_src
** Tools
Various tools and neat things that are useful on a key bind
#+begin_src emacs-lisp
@ -1051,9 +1154,9 @@ Key binds for easy access to various help information
(fs/leader
"h"
'(:ignore t :which-key "help")
"hv" '(counsel-describe-variable :which-key "variable")
"ha" '((lambda () (interactive) (counsel-describe-face)) :which-key "face")
"hf" '((lambda () (interactive) (counsel-describe-function)) :which-key "function")
"hv" '(describe-variable :which-key "variable")
"ha" '((lambda () (interactive) (describe-face)) :which-key "face")
"hf" '((lambda () (interactive) (describe-function)) :which-key "function")
"hc" '((lambda ()
(interactive)
(find-file
@ -1068,14 +1171,14 @@ Org mode specific key binds that are nice to have no matter what mode we are in
#+begin_src emacs-lisp
(fs/leader
"o" '(:ignore t :which-key "ORG")
"oo" '((lambda () (interactive) (counsel-find-file config/org-path)) :which-key "browse files")
"oo" '((lambda () (interactive) (find-file config/org-path)) :which-key "browse files")
"oi" '((lambda () (interactive) (find-file (expand-file-name "inbox.org" (car config/org-agenda-path))))
:which-key "task inbox")
"oa" '(org-agenda :which-key "agenda")
"ot" '(org-clock-goto :which-key "current/last task")
"oO" '(org-clock-out :which-key "clock out")
"ou" '(org-update-all-dblocks :which-key "update all blocks")
"oc" '(counsel-org-capture t :which-key "capture"))
"oc" '(org-capture t :which-key "capture"))
#+end_src
** Projects
@ -1099,6 +1202,7 @@ Key binds for performing actions on code buffers
"ca" '(lsp-execute-code-action :which-key "code actions")
"co" '(lsp-ui-imenu :which-key "outline")
"cf" '(lsp-format-buffer :which-key "format buffer")
"cs" '(lsp-treemacs-symbols :which-key "format buffer")
"ci" '(indent-region :which-key "indent region")
;; "ce" '(flycheck-projectile-list-errors :which-key "errors")
"ce" '(lsp-treemacs-errors-list :which-key "errors")
@ -1125,9 +1229,9 @@ Key binds for interacting with the file system
#+begin_src emacs-lisp
(fs/leader
"f" '(:ignore t :which-key "files")
"fc" '((lambda () (interactive) (counsel-find-file config/dotfiles-path)) :which-key "edit dotfiles")
"fc" '((lambda () (interactive) (find-file config/dotfiles-path)) :which-key "edit dotfiles")
"fs" '(yas-new-snippet :which-key "new snippet file")
"fr" '(counsel-recentf :which-key "Recent"))
"fr" '(consult-recent-file :which-key "Recent"))
#+end_src
** Execute
@ -1181,7 +1285,7 @@ This creates a hydra for inserting the current date. So we can select the format
(fs/leader
"pb" '(:ignore t :which-key "Blog")
"pbb" '((lambda () (interactive
) (counsel-find-file (expand-file-name "blog" config/projects-path))) :which-key "open blog")
) (find-file (expand-file-name "blog" config/projects-path))) :which-key "open blog")
"pbu" '(org-publish-upload-files :which-key "publish")
"pbp" '(org-publish-all :which-key "publish"))
#+end_src
@ -1206,7 +1310,7 @@ There are also some LSP specific key binds that are enabled when in a LSP enable
:commands (lsp lsp-deferred)
:init
:custom
(lsp-rust-analyzer-cargo-watch-command "check")
(lsp-rust-analyzer-cargo-watch-command "clippy")
(lsp-eldoc-render-all nil)
(lsp-idle-delay 0.6)
(lsp-rust-analyzer-server-display-inlay-hints t)
@ -1228,7 +1332,7 @@ There are also some LSP specific key binds that are enabled when in a LSP enable
"cl" '(:ignore t :which-key "LSP")
"cr" '(lsp-ui-peek-find-references :which-key "lookup reference")
"cd" '(lsp-find-definition :which-key "lookup definition")
"cs" '(lsp-ivy-workspace-symbol :which-key "find symbol")
;; "cs" '(lsp-ivy-workspace-symbol :which-key "find symbol")
"clx" '(lsp-workspace-restart :which-key "restart")
"cld" '(lsp-ui-doc-show :which-key "show docs")
"ca" '(lsp-execute-code-action :which-key "code actions"))
@ -1249,7 +1353,6 @@ There are also some LSP specific key binds that are enabled when in a LSP enable
(lsp-ui-sideline-enable nil)
(lsp-ui-doc-enable t))
(use-package lsp-ivy :commands lsp-ivy-workspace-symbol)
#+end_src

@ -5,7 +5,7 @@
* Fonts
#+begin_src conf
font_size 14.0
font_family PragmataPro Mono Liga
font_family IosevkaTerm Nerd Font Mono
bold_font auto
italic_font auto
bold_italic_font auto
@ -18,6 +18,84 @@ cursor_shape beam
* Color
#+begin_src conf
background #222222
background_opacity 0.8
background #292D3E
#background_opacity 0.95
#+end_src
* Catppuccin
#+begin_src conf
# vim:ft=kitty
# The basic colors
foreground #CAD3F5
background #1E1E2E
selection_foreground #24273A
selection_background #F4DBD6
# Cursor colors
cursor #F4DBD6
cursor_text_color #24273A
# URL underline color when hovering with mouse
url_color #F4DBD6
# Kitty window border colors
active_border_color #B7BDF8
inactive_border_color #6E738D
bell_border_color #EED49F
# OS Window titlebar colors
wayland_titlebar_color system
macos_titlebar_color system
# Tab bar colors
active_tab_foreground #181926
active_tab_background #C6A0F6
inactive_tab_foreground #CAD3F5
inactive_tab_background #1E2030
tab_bar_background #181926
# Colors for marks (marked text in the terminal)
mark1_foreground #24273A
mark1_background #B7BDF8
mark2_foreground #24273A
mark2_background #C6A0F6
mark3_foreground #24273A
mark3_background #7DC4E4
# The 16 terminal colors
# black
color0 #494D64
color8 #5B6078
# red
color1 #ED8796
color9 #ED8796
# green
color2 #A6DA95
color10 #A6DA95
# yellow
color3 #EED49F
color11 #EED49F
# blue
color4 #8AADF4
color12 #8AADF4
# magenta
color5 #F5BDE6
color13 #F5BDE6
# cyan
color6 #8BD5CA
color14 #8BD5CA
# white
color7 #B8C0E0
color15 #A5ADCB
#+end_src

@ -0,0 +1,40 @@
#+TITLE: Emacs Configuration
#+PROPERTY: header-args+ :tangle ~/.config/tmux/tmux.conf :mkdirp yes :comments no
* Plugin Setup
#+begin_src conf
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'christoomey/vim-tmux-navigator'
run '~/.tmux/plugins/tpm/tpm'
#+end_src
* Start windows at 1
#+begin_src conf
set -g base-index 1
#+end_src
* Starting CWD
#+begin_src conf
bind '"' split-window -v -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
#+end_src
* Colors
#+begin_src conf
set-option -sa terminal-overrides ",xterm*:Tc"
#+end_src
* Prefix
#+begin_src conf
unbind C-b
set -g prefix C-Space
bind C-Space send-prefix
#+end_src
* Theme
#+begin_src conf
set -g @plugin 'catppuccin/tmux'
set -g @catppuccin_flavour 'Frappe'
#+end_src

@ -41,6 +41,13 @@ function sizecheck() {
du -s -BM * | sort -n -r | head -n 10
fi
}
#+end_src
*** Tmux Session
#+begin_src sh
function tat() {
tmux new-session -A -s $1
}
#+end_src
*** Test docker files
@ -59,7 +66,7 @@ function docker_test() {
** Zoxide
#+begin_src sh
eval "$(zoxide init zsh)"
export EDITOR="emacsclient -nw"
export EDITOR="nvim"
#+end_src
** History
#+begin_src sh

Loading…
Cancel
Save