From 2aab479968f17caea184cf0cb4aa7a62905a0ff3 Mon Sep 17 00:00:00 2001 From: Petr Nyc Date: Thu, 22 Aug 2024 09:54:07 +0200 Subject: [PATCH] zsh plugins, tmux tweaks --- .config/alacritty/alacritty.toml | 28 ++-- .config/mc/ini | 3 +- .p10k.zsh | 2 +- .spacemacs | 230 ++++++++++++++++++++----------- .tmux.conf | 27 ++-- .zshenv | 3 + .zshrc | 51 ++++++- 7 files changed, 232 insertions(+), 112 deletions(-) diff --git a/.config/alacritty/alacritty.toml b/.config/alacritty/alacritty.toml index 936b4e8..3d2f578 100644 --- a/.config/alacritty/alacritty.toml +++ b/.config/alacritty/alacritty.toml @@ -8,21 +8,22 @@ import = ["~/.config/alacritty/themes/themes/solarized_dark.toml"] [font] ## MesloLGS font -# normal.family = "MesloLGS Nerd Font Mono" -# bold.family = "MesloLGS Nerd Font Mono" -# italic.family = "MesloLGS Nerd Font Mono" -# bold_italic.family = "MesloLGS Nerd Font Mono" -# size = 18 -# offset.x = 1 - -# JetBrains Nerd font -normal.family = "JetBrainsMono NF" -bold.family = "JetBrainsMono NF SemiBold" -italic.family = "JetBrainsMono NFM Thin" -bold_italic.family = "JetBrainsMono NFM" +normal.family = "MesloLGS Nerd Font Mono" +bold.family = "MesloLGS Nerd Font Mono" +italic.family = "MesloLGS Nerd Font Mono" +bold_italic.family = "MesloLGS Nerd Font Mono" size = 18 offset.x = 1 +# JetBrains Nerd font +# normal.family = "JetBrainsMono NF" +# bold.family = "JetBrainsMono NF SemiBold" +# italic.family = "JetBrainsMono NFM Thin" +# bold_italic.family = "JetBrainsMono NFM" +# size = 18 +# offset.x = 1 +# offset.y = 0 + [window] dynamic_padding = true padding.x = 5 @@ -49,7 +50,8 @@ history = 20000 # key bidnings -# use xxd to find codes of key presses +# use xxd to find unicode codes of key presses +# use cat -v to find escape codes of various key combos [keyboard] bindings = [ diff --git a/.config/mc/ini b/.config/mc/ini index a19623b..8d9060d 100644 --- a/.config/mc/ini +++ b/.config/mc/ini @@ -87,7 +87,7 @@ skin=solarized-dark-256color [Layout] output_lines=0 -left_panel_size=75 +left_panel_size=64 top_panel_size=0 message_visible=true keybar_visible=true @@ -114,6 +114,7 @@ clipboard_paste= base_color= xterm-256color= color_terminals= +alacritty= [Panels] show_mini_info=true diff --git a/.p10k.zsh b/.p10k.zsh index c1e0e17..0d46681 100644 --- a/.p10k.zsh +++ b/.p10k.zsh @@ -990,7 +990,7 @@ # Nvm color. typeset -g POWERLEVEL9K_NVM_FOREGROUND=70 # Custom icon. - # typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL10K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐' ############[ nodeenv: node.js environment (https://github.com/ekalinin/nodeenv) ]############ # Nodeenv color. diff --git a/.spacemacs b/.spacemacs index e5412e2..9b82730 100644 --- a/.spacemacs +++ b/.spacemacs @@ -32,7 +32,8 @@ This function should only modify configuration layer settings." ;; List of configuration layers to load. dotspacemacs-configuration-layers - '(html + '(toml + html python javascript ;; ---------------------------------------------------------------- @@ -52,6 +53,11 @@ This function should only modify configuration layer settings." (org :variables org-enable-bootstrap-support t org-enable-jira-support t + org-enable-roam-support t + org-enable-roam-ui t + org-roam-completion-everywhere t + ;; this does not work weel with my current font + ;; org-enable-modern-support t ) shell-scripts dap ;; debugging @@ -75,9 +81,9 @@ This function should only modify configuration layer settings." dotspacemacs-additional-packages '(grab-mac-link) ;; dotspacemacs-additional-packages '(org-mac-link :location "/Users/jetpac/org-mac-link.el") dotspacemacs-additional-packages '( - org-mac-link - org-alert - ) + org-mac-link + org-alert + ) ;; A list of packages that cannot be updated. dotspacemacs-frozen-packages '() @@ -558,7 +564,7 @@ default it calls `spacemacs/load-spacemacs-env' which loads the environment variables declared in `~/.spacemacs.env' or `~/.spacemacs.d/.spacemacs.env'. See the header of this file for more information." (spacemacs/load-spacemacs-env) -) + ) (defun dotspacemacs/user-init () "Initialization for user code: @@ -566,9 +572,9 @@ This function is called immediately after `dotspacemacs/init', before layer configuration. It is mostly for variables that should be set before packages are loaded. If you are unsure, try setting them in `dotspacemacs/user-config' first." - (add-to-list 'tramp-connection-properties - (list ".*" "remote-shell" "/bin/ksh")) -) + ;; (add-to-list 'tramp-connection-properties + ;; (list ".*" "remote-shell" "/bin/ksh")) + ) (defun dotspacemacs/user-load () @@ -576,7 +582,7 @@ If you are unsure, try setting them in `dotspacemacs/user-config' first." This function is called only while dumping Spacemacs configuration. You can `require' or `load' the libraries of your choice that will be included in the dump." -) + ) (defun dotspacemacs/user-config () @@ -600,6 +606,48 @@ before packages are loaded." ;; (global-set-key (kbd "TAB") 'yas-expand) ;; (global-set-key (kbd "TAB") 'hippie-expand) + + ;; ;; Org-roam v2 configuration + ;; (use-package org-roam + ;; :ensure t + ;; :custom + ;; (org-roam-directory (file-truename "~/Documents/org/roam")) + ;; (org-roam-completion-everywhere t) + ;; :bind (("C-c n l" . org-roam-buffer-toggle) + ;; ("C-c n f" . org-roam-node-find) + ;; ("C-c n g" . org-roam-graph) + ;; ("C-c n i" . org-roam-node-insert) + ;; ("C-c n c" . org-roam-capture) + ;; ;; Daylies + ;; ("C-c n j" . org-roam-dailies-capture-today) + ;; :map org-mode-map + ;; ("C-M-i" . completion-at-point ) + + ;; ) + ;; :config + ;; (org-roam-db-autosync-mode)) + + + ;; Proxy toggle function + (setq http_proxy "http://www-proxy.uk.oracle.com:80") + (defun toggle-proxy () + "Toggle proxy settings for Emacs." + (interactive) + (if (and (boundp 'url-proxy-services) url-proxy-services) + (progn + (setq url-proxy-services nil) + (message "Proxy disabled")) + (setq url-proxy-services + `(("no_proxy" . "localhost") + ("http" . ,http_proxy) + ("https" . ,http_proxy))) + (message ( concat "Proxy enabled: " http_proxy))) + ) + + ;; Bind proxy toggle function to a key + (spacemacs/set-leader-keys "ot" 'toggle-proxy) + + ;; idea from chatgpt (defun set-dotfiles-environment () "Set environment variables for the dotfiles repository." @@ -623,23 +671,38 @@ before packages are loaded." (magit-status) (unset-dotfiles-environment))) -(require 'org-protocol) + (require 'org-protocol) -(with-eval-after-load 'org + (with-eval-after-load 'org ;; org mode config (add-to-list 'org-modules 'org-protocol) + (setq org-roam-directory (file-truename "~/Documents/org/roam")) + + ;; test from https://superuser.com/questions/452649/org-mode-to-markdown-converter (require 'ox-md nil t) + ;; trick to be able to search by tags when using SPC a o r f + ;; from https://github.com/org-roam/org-roam/pull/2054 + ;; Original value was "${title}" + (setq org-roam-node-display-template + (concat "${title:} " (propertize "${tags:10}" 'face 'org-tag))) + + ;; org-modern customization + ;; look into https://github.com/minad/org-modern/blob/main/org-modern.el for possible values + (setq org-modern-progress nil) + + (setq org-enable-roam-ui t) + (setq org-directory "~/Documents/org") (setq org-default-notes-file "~/Documents/org/inbox.org") ;; Define the custum capture templates (setq org-capture-templates '(("t" "Todo [inbox] clock_in clock_resume " entry (file+headline org-default-notes-file "Tasks") - "* TODO %?\n%u\n%a\n" :clock-in t :clock-resume t) + "* TODO %?\n%u\n%a\n" :clock-in t :clock-resume t) ("m" "Meeting [diary] " entry (file+headline org-default-notes-file "Meetings") - "* MEETING with %? :Meeting:\n%t" :clock-in t :clock-resume t) + "* MEETING %? :Meeting:\n%t" :clock-in t :clock-resume t) ("d" "Diary [diary] " entry (file+datetree "~/org/diary.org") "* %?\n%U\n" :clock-in t :clock-resume t) ("i" "Idea [inbox] " entry (file org-default-notes-file) @@ -654,9 +717,9 @@ before packages are loaded." - ;(define-key global-map "\C-cc" 'org-capture) - ;(define-key global-map "\C-cl" 'org-store-link) - ;(define-key global-map "\C-ca" 'org-agenda) + ;(define-key global-map "\C-cc" 'org-capture) + ;(define-key global-map "\C-cl" 'org-store-link) + ;(define-key global-map "\C-ca" 'org-agenda) (define-key org-mode-map (kbd "C-c g") 'org-mac-link-get-link) ;; (setq org-refile-targets '(("~/Documents/org/inbox.org" :maxlevel . 3))) @@ -684,65 +747,65 @@ before packages are loaded." (quote (:link t :maxlevel 7 :fileskip0 t :compact t :narrow 80 :formula %))) (setq org-agenda-custom-commands - '( - ("g" "Get Things Done (GTD)" - ((agenda "" - ( - ;; (org-agenda-skip-function - ;; '(org-agenda-skip-entry-if 'deadline)) - (org-deadline-warning-days 0) - (org-agenda-time-grid) - ) - ) - (todo "NEXT" - ( - ;; (org-agenda-skip-function - ;; '(org-agenda-skip-entry-if 'deadline)) - (org-agenda-prefix-format " %i %-12:c [%-4e] ") - (org-agenda-overriding-header "Tasks\n"))) - (agenda "dead" - ((org-agenda-entry-types '(:deadline)) - ;;(org-agenda-format-date "") - (org-deadline-warning-days 7) - (org-agenda-skip-function - '(org-agenda-skip-entry-if 'notregexp "\\* NEXT")) - (org-agenda-overriding-header "Deadlines\n"))) - (tags-todo "inbox" - ((org-agenda-prefix-format " %?-12t% s") - (org-agenda-overriding-header "Inbox\n"))) - (tags "CLOSED>=\"\"" - ((org-agenda-overriding-header "Completed today\n"))))) - - - ("T" "Weekly review with tasks for team meetings" - ( - (agenda "" + '( + ("g" "Get Things Done (GTD)" + ((agenda "" + ( + ;; (org-agenda-skip-function + ;; '(org-agenda-skip-entry-if 'deadline)) + (org-deadline-warning-days 0) + (org-agenda-time-grid) + ) + ) + (todo "NEXT" ( - (org-deadline-warning-days 0) - (org-agenda-overriding-header "Agenda since last Thursday\n") + ;; (org-agenda-skip-function + ;; '(org-agenda-skip-entry-if 'deadline)) + (org-agenda-prefix-format " %i %-12:c [%-4e] ") + (org-agenda-overriding-header "Tasks\n"))) + (agenda "dead" + ((org-agenda-entry-types '(:deadline)) + ;;(org-agenda-format-date "") + (org-deadline-warning-days 7) + (org-agenda-skip-function + '(org-agenda-skip-entry-if 'notregexp "\\* NEXT")) + (org-agenda-overriding-header "Deadlines\n"))) + (tags-todo "inbox" + ((org-agenda-prefix-format " %?-12t% s") + (org-agenda-overriding-header "Inbox\n"))) + (tags "CLOSED>=\"\"" + ((org-agenda-overriding-header "Completed today\n"))))) + + + ("T" "Weekly review with tasks for team meetings" + ( + (agenda "" + ( + (org-deadline-warning-days 0) + (org-agenda-overriding-header "Agenda since last Thursday\n") + (org-agenda-start-on-weekday 4) + ) + ) + (todo "DONE" + ( + (org-agenda-prefix-format " %i ") (org-agenda-start-on-weekday 4) - ) - ) - (todo "DONE" - ( - (org-agenda-prefix-format " %i ") - (org-agenda-start-on-weekday 4) - (org-agenda-overriding-header "Tasks done since last Thursday\n") - )) + (org-agenda-overriding-header "Tasks done since last Thursday\n") + )) + ) + ) ) - ) - ) - ) + ) (setq org-todo-keywords - '((sequence "TODO(t)" "NEXT(n)" "WAIT(w)" "RUNNING(r)" "|" "DONE(d)" "CANCELLED(c)" ))) + '((sequence "TODO(t)" "NEXT(n)" "WAIT(w)" "RUNNING(r)" "|" "DONE(d)" "CANCELLED(c)" ))) (setq org-clock-out-remove-zero-time-clocks t) ;; (setq org-agenda-hide-tags-regexp ".") - ) ;; with eval after load + ) ;; with eval after load (setq calendar-week-start-day 1) ;; calendar start on Monday (defadvice projectile-project-root (around ignore-remote first activate) @@ -757,11 +820,11 @@ before packages are loaded." (setq alert-default-style 'osx-notifier) ;; Use terminal-notifier for macOS notifications (setq org-alert-notify-cutoff 10 ;; Notify 10 minutes before the deadline org-alert-notification-title "Org Alert Reminder!" - ) + ) (org-alert-enable)) -) ;; user-config + ) ;; user-config ;; Do not write anything past this comment. This is where Emacs will @@ -771,20 +834,21 @@ before packages are loaded." This is an auto-generated function, do not modify its content directly, use Emacs customize menu instead. This function is called at the very end of Spacemacs initialization." -(custom-set-variables - ;; custom-set-variables was added by Custom. - ;; 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. - '(desktop-save-mode t) - '(org-safe-remote-resources - '("\\`https://fniessen\\.github\\.io/org-html-themes/org/theme-Bigblow\\.setup\\'")) - '(package-selected-packages - '(org-alert web-mode git-link git-messenger git-modes git-timemachine gitignore-templates helm-git-grep helm-ls-git orgit-forge orgit forge ghub closql emacsql treepy smeargle treemacs-magit magit magit-section git-commit with-editor dash blacken code-cells company-anaconda anaconda-mode cython-mode helm-cscope helm-pydoc importmagic epc ctable concurrent deferred live-py-mode lsp-pyright lsp-python-ms nose pip-requirements pipenv load-env-vars pippel transient seq compat py-isort pydoc pyenv-mode pythonic pylookup pytest pyvenv sphinx-doc stickyfunc-enhance xcscope yapfify add-node-modules-path counsel-gtags counsel swiper ivy ggtags helm-gtags wfnames impatient-mode import-js grizzl js-doc js2-refactor multiple-cursors livid-mode nodejs-repl npm-mode prettier-js skewer-mode js2-mode simple-httpd tern web-beautify grab-mac-link org-mac-link ac-ispell auto-complete auto-yasnippet company-shell dap-mode lsp-docker bui yaml evil-org fish-mode flycheck-bashate flycheck-pos-tip pos-tip fuzzy gh-md gnuplot helm-c-yasnippet helm-company company helm-lsp helm-org-rifle htmlize insert-shebang lsp-origami origami lsp-treemacs lsp-ui lsp-mode markdown-toc markdown-mode mmm-mode org org-cliplink org-contrib org-download org-jira org-mime org-pomodoro alert log4e gntp org-present org-projectile org-category-capture org-rich-yank ox-jira ox-twbs shfmt reformatter yasnippet-snippets yasnippet ws-butler writeroom-mode winum which-key volatile-highlights vim-powerline vi-tilde-fringe uuidgen use-package undo-tree treemacs-projectile treemacs-persp treemacs-icons-dired treemacs-evil toc-org term-cursor symon symbol-overlay string-inflection string-edit-at-point spacemacs-whitespace-cleanup spacemacs-purpose-popwin spaceline-all-the-icons space-doc restart-emacs request rainbow-delimiters quickrun popwin pcre2el password-generator paradox overseer org-superstar open-junk-file nameless multi-line macrostep lorem-ipsum link-hint inspector info+ indent-guide hybrid-mode hungry-delete holy-mode hl-todo highlight-parentheses highlight-numbers highlight-indentation hide-comnt help-fns+ helm-xref helm-themes helm-swoop helm-purpose helm-projectile helm-org helm-mode-manager helm-make helm-descbinds helm-ag google-translate golden-ratio font-lock+ flycheck-package flycheck-elsa flx-ido fancy-battery eyebrowse expand-region evil-visualstar evil-visual-mark-mode evil-unimpaired evil-tutor evil-textobj-line evil-surround evil-numbers evil-nerd-commenter evil-mc evil-matchit evil-lisp-state evil-lion evil-indent-plus evil-iedit-state evil-goggles evil-exchange evil-evilified-state evil-escape evil-easymotion evil-collection evil-cleverparens evil-args evil-anzu eval-sexp-fu emr elisp-slime-nav elisp-def editorconfig dumb-jump drag-stuff dotenv-mode dired-quick-sort diminish devdocs define-word column-enforce-mode clean-aindent-mode centered-cursor-mode auto-highlight-symbol auto-compile aggressive-indent ace-link ace-jump-helm-line))) -(custom-set-faces - ;; custom-set-faces was added by Custom. - ;; 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. - ) -) + (custom-set-variables + ;; custom-set-variables was added by Custom. + ;; 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. + '(desktop-save-mode t) + '(org-download-screenshot-method "screencapture -i %s") + '(org-safe-remote-resources + '("\\`https://fniessen\\.github\\.io/org-html-themes/org/theme-Bigblow\\.setup\\'")) + '(package-selected-packages + '(toml-mode org-modern org-roam-ui websocket org-roam org-alert web-mode git-link git-messenger git-modes git-timemachine gitignore-templates helm-git-grep helm-ls-git orgit-forge orgit forge ghub closql emacsql treepy smeargle treemacs-magit magit magit-section git-commit with-editor dash blacken code-cells company-anaconda anaconda-mode cython-mode helm-cscope helm-pydoc importmagic epc ctable concurrent deferred live-py-mode lsp-pyright lsp-python-ms nose pip-requirements pipenv load-env-vars pippel transient seq compat py-isort pydoc pyenv-mode pythonic pylookup pytest pyvenv sphinx-doc stickyfunc-enhance xcscope yapfify add-node-modules-path counsel-gtags counsel swiper ivy ggtags helm-gtags wfnames impatient-mode import-js grizzl js-doc js2-refactor multiple-cursors livid-mode nodejs-repl npm-mode prettier-js skewer-mode js2-mode simple-httpd tern web-beautify grab-mac-link org-mac-link ac-ispell auto-complete auto-yasnippet company-shell dap-mode lsp-docker bui yaml evil-org fish-mode flycheck-bashate flycheck-pos-tip pos-tip fuzzy gh-md gnuplot helm-c-yasnippet helm-company company helm-lsp helm-org-rifle htmlize insert-shebang lsp-origami origami lsp-treemacs lsp-ui lsp-mode markdown-toc markdown-mode mmm-mode org org-cliplink org-contrib org-download org-jira org-mime org-pomodoro alert log4e gntp org-present org-projectile org-category-capture org-rich-yank ox-jira ox-twbs shfmt reformatter yasnippet-snippets yasnippet ws-butler writeroom-mode winum which-key volatile-highlights vim-powerline vi-tilde-fringe uuidgen use-package undo-tree treemacs-projectile treemacs-persp treemacs-icons-dired treemacs-evil toc-org term-cursor symon symbol-overlay string-inflection string-edit-at-point spacemacs-whitespace-cleanup spacemacs-purpose-popwin spaceline-all-the-icons space-doc restart-emacs request rainbow-delimiters quickrun popwin pcre2el password-generator paradox overseer org-superstar open-junk-file nameless multi-line macrostep lorem-ipsum link-hint inspector info+ indent-guide hybrid-mode hungry-delete holy-mode hl-todo highlight-parentheses highlight-numbers highlight-indentation hide-comnt help-fns+ helm-xref helm-themes helm-swoop helm-purpose helm-projectile helm-org helm-mode-manager helm-make helm-descbinds helm-ag google-translate golden-ratio font-lock+ flycheck-package flycheck-elsa flx-ido fancy-battery eyebrowse expand-region evil-visualstar evil-visual-mark-mode evil-unimpaired evil-tutor evil-textobj-line evil-surround evil-numbers evil-nerd-commenter evil-mc evil-matchit evil-lisp-state evil-lion evil-indent-plus evil-iedit-state evil-goggles evil-exchange evil-evilified-state evil-escape evil-easymotion evil-collection evil-cleverparens evil-args evil-anzu eval-sexp-fu emr elisp-slime-nav elisp-def editorconfig dumb-jump drag-stuff dotenv-mode dired-quick-sort diminish devdocs define-word column-enforce-mode clean-aindent-mode centered-cursor-mode auto-highlight-symbol auto-compile aggressive-indent ace-link ace-jump-helm-line))) + (custom-set-faces + ;; custom-set-faces was added by Custom. + ;; 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. + ) + ) diff --git a/.tmux.conf b/.tmux.conf index 860c0fe..8d6edbd 100644 --- a/.tmux.conf +++ b/.tmux.conf @@ -4,21 +4,19 @@ set -g @plugin 'tmux-plugins/tpm' set -g @plugin 'tmux-plugins/tmux-sensible' set -g @plugin 'tmux-plugins/tmux-sidebar' set -g @plugin 'tmux-plugins/tmux-pain-control' - set -g @plugin 'tmux-plugins/tmux-logging' +set -g @plugin 'tmux-plugins/tmux-copycat' # not needed for tmux 3.1+ -set -g @plugin 'tmux-plugins/tmux-copycat' - - -# https://github.com/tmux-plugins/tmux-resurrect -set -g @plugin 'tmux-plugins/tmux-resurrect' +set -g @plugin 'tmux-plugins/tmux-resurrect' # https://github.com/tmux-plugins/tmux-resurrect set -g @resurrect-capture-pane-contents 'on' -set -g @resurrect-processes 'ssh neomutt mbsync' -# https://github.com/tmux-plugins/tmux-continuum -set -g @plugin 'tmux-plugins/tmux-continuum' +set -g @resurrect-processes 'ssh neomutt mbsync vim' +set -g @plugin 'tmux-plugins/tmux-continuum' # https://github.com/tmux-plugins/tmux-continuum set -g @plugin 'seebi/tmux-colors-solarized' +# inspiration from https://gist.github.com/andersevenrud/015e61af2fd264371032763d4ed965b6 +set -sg terminal-overrides ",*:RGB" + # too wild, some shortcuts like meta-tab/meta-number are nice though # set -g @plugin 'ek9/tmux-vim-bindings' @@ -26,6 +24,10 @@ set -g @plugin 'seebi/tmux-colors-solarized' # set -g @colors-solarized 'light' set -g @colors-solarized 'dark' +# this causes tmux to crash +# set-option -g mouse on +# set -g @plugin 'jaclu/tmux-menus' + # Change prefix to C-a # C-a hex value: 0x01 @@ -70,9 +72,14 @@ set -g pane-base-index 1 set -ag terminal-overrides ",xterm-256color:Tc" # synchronize panes -bind e setw synchronize-panes ; display "Sync #{?pane_synchronized,ON,OFF}" +bind e setw synchronize-panes # ; tmux display "Sync #{?pane_synchronized,ON,OFF}" # tpm install: git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) run '~/.tmux/plugins/tpm/tpm' + + +# test for https://unix.stackexchange.com/questions/480437/can-i-ask-tmux-to-immediately-exit-copy-mode-and-paste-the-content-when-i-yank +bind-key -T copy-mode-vi Y send-keys -X copy-pipe-and-cancel "tmux paste-buffer" + diff --git a/.zshenv b/.zshenv index d083de0..74ea090 100644 --- a/.zshenv +++ b/.zshenv @@ -69,3 +69,6 @@ export OPENAI_API_KEY='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' # for flutter export PATH=$PATH:/Users/jetpac/Documents/flutter-dev-env/bin +export NVM_DIR="$HOME/.nvm" +# nvm initialization is commented out; it significantly slows down shell startup +# [ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh" diff --git a/.zshrc b/.zshrc index 166be50..0c9ad3a 100644 --- a/.zshrc +++ b/.zshrc @@ -9,6 +9,30 @@ if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]] source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" fi +# if not present, install zsh-syntax-highlighting plugin +if [ ! -d "${HOME}/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting" ]; +then + cd "${HOME}/.oh-my-zsh/custom/plugins/" + git clone https://github.com/zsh-users/zsh-syntax-highlighting.git &> /dev/null +fi + +# if not present, install zsh-completions plugin +if [ ! -d "${HOME}/.oh-my-zsh/custom/plugins/zsh-completions" ]; +then + cd "${HOME}/.oh-my-zsh/custom/plugins/" + git clone https://github.com/zsh-users/zsh-completions.git &> /dev/null +fi + +# if not present, install zsh-autosuggestions plugin +if [ ! -d "${HOME}/.oh-my-zsh/custom/plugins/zsh-autosuggestions" ]; +then + cd "${HOME}/.oh-my-zsh/custom/plugins/" + git clone https://github.com/zsh-users/zsh-autosuggestions.git &> /dev/null +fi + + + + # doesn't work well on remote hosts # [[ -f .iterm2_shell_integration.zsh ]] && source .iterm2_shell_integration.zsh @@ -53,7 +77,7 @@ ZSH_THEME="powerlevel10k/powerlevel10k" # DISABLE_LS_COLORS="true" # Uncomment the following line to disable auto-setting terminal title. -# DISABLE_AUTO_TITLE="true" +DISABLE_AUTO_TITLE="true" # Uncomment the following line to enable command auto-correction. # ENABLE_CORRECTION="true" @@ -62,7 +86,7 @@ ZSH_THEME="powerlevel10k/powerlevel10k" # You can also set it to another string to have that shown instead of the default red dots. # e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f" # Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765) -# COMPLETION_WAITING_DOTS="true" +COMPLETION_WAITING_DOTS="true" # Uncomment the following line if you want to disable marking untracked files # under VCS as dirty. This makes repository status check for large repositories @@ -85,7 +109,10 @@ ZSH_THEME="powerlevel10k/powerlevel10k" # Custom plugins may be added to $ZSH_CUSTOM/plugins/ # Example format: plugins=(rails git textmate ruby lighthouse) # Add wisely, as too many plugins slow down shell startup. -plugins=(git rsync colorize colored-man-pages vi-mode common-aliases macos themes dircycle iterm2 docker docker-compose zsh-navigation-tools urltools history mercurial tmux ) +plugins=(git rsync colorize colored-man-pages vi-mode common-aliases macos themes dircycle iterm2 docker docker-compose zsh-navigation-tools urltools history mercurial tmux zsh-syntax-highlighting zsh-autosuggestions) + +# consider plugin fzf - only available for Mac/Linux + # colorize - adds ccat and cless # common-aliases: https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/common-aliases # themes: https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/themes @@ -164,9 +191,25 @@ fi # zsh history is too short # - https://unix.stackexchange.com/questions/273861/unlimited-history-in-zsh -HISTFILE=~/.zsh_history + +# inspiration taken from yt video: +# https://youtu.be/ud7YxC33Z3w HISTSIZE=999999999 +HISTFILE=~/.zsh_history SAVEHIST=$HISTSIZE +HISTDUP=erase +setopt appendhistory +setopt sharehistory +setopt hist_ignore_space +setopt hist_ignore_all_dups +setopt hist_save_no_dups +setopt hist_ignore_dups +setopt hist_find_no_dups +bindkey '^p' history-search-backward +bindkey '^n' history-search-forward +# bindkey '^f' autosuggest-accept +ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=10" + ### MANAGED BY RANCHER DESKTOP START (DO NOT EDIT)