Speed up emacs startup (mostly) and a bunch of smaller changes
This commit is contained in:
parent
45186dacb4
commit
4c800a96d7
8 changed files with 806 additions and 665 deletions
|
@ -11,11 +11,17 @@ let
|
||||||
config = ./emacs.el;
|
config = ./emacs.el;
|
||||||
defaultInitFile = true;
|
defaultInitFile = true;
|
||||||
package = pkgs.emacs29-pgtk.overrideAttrs (old: { withTreeSitter = true; });
|
package = pkgs.emacs29-pgtk.overrideAttrs (old: { withTreeSitter = true; });
|
||||||
alwaysEnsure = true;
|
#alwaysEnsure = true;
|
||||||
extraEmacsPackages = epkgs: [
|
extraEmacsPackages = epkgs: [
|
||||||
pkgs.mu
|
pkgs.mu
|
||||||
|
pkgs.mu.mu4e
|
||||||
epkgs.treesit-grammars.with-all-grammars
|
epkgs.treesit-grammars.with-all-grammars
|
||||||
|
epkgs.evil-collection
|
||||||
];
|
];
|
||||||
|
override = final: prev: {
|
||||||
|
evil-collection = prev.melpaPackages.evil-collection.overrideAttrs
|
||||||
|
(old: { patches = [ ./evil-collection.patch ]; });
|
||||||
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
in {
|
in {
|
||||||
|
@ -175,6 +181,7 @@ in {
|
||||||
neovim
|
neovim
|
||||||
go
|
go
|
||||||
gopls
|
gopls
|
||||||
|
lazygit
|
||||||
#network-manager-applet
|
#network-manager-applet
|
||||||
(clang-tools.override {
|
(clang-tools.override {
|
||||||
llvmPackages = llvmPackages_17;
|
llvmPackages = llvmPackages_17;
|
||||||
|
@ -388,7 +395,18 @@ in {
|
||||||
|
|
||||||
home-manager.users.knazarov = {
|
home-manager.users.knazarov = {
|
||||||
# The home.stateVersion option does not have a default and must be set
|
# The home.stateVersion option does not have a default and must be set
|
||||||
home.stateVersion = "23.05";
|
home.stateVersion = "23.11";
|
||||||
|
|
||||||
|
home.sessionVariables = { EDITOR = "emacs -nw --no-splash"; };
|
||||||
|
|
||||||
|
programs.lf = {
|
||||||
|
enable = true;
|
||||||
|
extraConfig = ''
|
||||||
|
set sixel true
|
||||||
|
set previewer ${pkgs.chafa}/bin/chafa
|
||||||
|
'';
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
programs.bash = {
|
programs.bash = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -398,11 +416,23 @@ in {
|
||||||
&& [[ -f ''${EMACS_VTERM_PATH}/etc/emacs-vterm-bash.sh ]]; then
|
&& [[ -f ''${EMACS_VTERM_PATH}/etc/emacs-vterm-bash.sh ]]; then
|
||||||
source ''${EMACS_VTERM_PATH}/etc/emacs-vterm-bash.sh
|
source ''${EMACS_VTERM_PATH}/etc/emacs-vterm-bash.sh
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
lfcd () {
|
||||||
|
tmp="$(mktemp -uq)"
|
||||||
|
trap 'rm -f $tmp >/dev/null 2>&1 && trap - HUP INT QUIT TERM PWR EXIT' HUP INT QUIT TERM PWR EXIT
|
||||||
|
lf -last-dir-path="$tmp" "$@"
|
||||||
|
if [ -f "$tmp" ]; then
|
||||||
|
dir="$(cat "$tmp")"
|
||||||
|
[ -d "$dir" ] && [ "$dir" != "$(pwd)" ] && cd "$dir"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
bind '"\C-o":"lfcd\n"'
|
||||||
'';
|
'';
|
||||||
shellAliases = {
|
shellAliases = {
|
||||||
nn = "notes.sh -n";
|
nn = "notes.sh -n";
|
||||||
ne =
|
ne =
|
||||||
''notes.sh -l | fzf --tac --with-nth="2..-1" | xargs -o notes.sh -e'';
|
''notes.sh -l | fzf --tac --with-nth="2..-1" | xargs -o notes.sh -e'';
|
||||||
|
vim = "emacs -nw --no-splash";
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -471,10 +501,12 @@ in {
|
||||||
create = "maildir";
|
create = "maildir";
|
||||||
|
|
||||||
};
|
};
|
||||||
|
neomutt = { enable = true; };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
programs.neomutt = { enable = true; };
|
||||||
programs.mu = { enable = true; };
|
programs.mu = { enable = true; };
|
||||||
programs.msmtp.enable = true;
|
programs.msmtp.enable = true;
|
||||||
|
|
||||||
|
@ -510,54 +542,6 @@ in {
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.neovim = let
|
|
||||||
modus-themes = pkgs.vimUtils.buildVimPlugin {
|
|
||||||
pname = "modus-themes.nvim";
|
|
||||||
version = "2024-05-06";
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "miikanissi";
|
|
||||||
repo = "modus-themes.nvim";
|
|
||||||
rev = "705ea8debb9d9afe4e631166fcc6121782dd0b32";
|
|
||||||
sha256 = "0hs2ylf1rj0655kpwr4blh399r8k7lg0r2a4nbnymy1pbkx1gh1i";
|
|
||||||
};
|
|
||||||
meta.homepage = "https://github.com/miikanissi/modus-themes.nvim/";
|
|
||||||
};
|
|
||||||
|
|
||||||
in {
|
|
||||||
enable = true;
|
|
||||||
plugins = with pkgs; [
|
|
||||||
vimPlugins.nvim-treesitter
|
|
||||||
vimPlugins.nvim-treesitter.withAllGrammars
|
|
||||||
pkgs.vimPlugins.nvim-treesitter-textobjects
|
|
||||||
vimPlugins.nvim-lspconfig
|
|
||||||
|
|
||||||
vimPlugins.lualine-nvim
|
|
||||||
vimPlugins.telescope-nvim
|
|
||||||
vimPlugins.telescope-fzf-native-nvim
|
|
||||||
vimPlugins.nvim-web-devicons
|
|
||||||
|
|
||||||
vimPlugins.nvim-cmp
|
|
||||||
vimPlugins.cmp-nvim-lsp
|
|
||||||
vimPlugins.cmp-buffer
|
|
||||||
vimPlugins.cmp-cmdline
|
|
||||||
vimPlugins.luasnip
|
|
||||||
|
|
||||||
modus-themes
|
|
||||||
];
|
|
||||||
extraConfig = ''
|
|
||||||
lua << EOF
|
|
||||||
${builtins.readFile nvim/basics.lua}
|
|
||||||
${builtins.readFile nvim/treesitter.lua}
|
|
||||||
${builtins.readFile nvim/lualine.lua}
|
|
||||||
${builtins.readFile nvim/telescope.lua}
|
|
||||||
${builtins.readFile nvim/completion.lua}
|
|
||||||
${builtins.readFile nvim/luasnip.lua}
|
|
||||||
${builtins.readFile nvim/lspconfig.lua}
|
|
||||||
'';
|
|
||||||
viAlias = true;
|
|
||||||
vimAlias = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
wayland.windowManager.sway = {
|
wayland.windowManager.sway = {
|
||||||
enable = true;
|
enable = true;
|
||||||
xwayland = true;
|
xwayland = true;
|
||||||
|
@ -577,7 +561,8 @@ in {
|
||||||
"XF86MonBrightnessDown" = "exec brightnessctl s 5%-";
|
"XF86MonBrightnessDown" = "exec brightnessctl s 5%-";
|
||||||
#"Mod4+Return" =
|
#"Mod4+Return" =
|
||||||
#"exec emacs --eval '(progn (setq confirm-kill-processes nil) (vterm))'";
|
#"exec emacs --eval '(progn (setq confirm-kill-processes nil) (vterm))'";
|
||||||
"Mod4+Return" = "exec emacsclient -c";
|
#"Mod4+Return" = "exec emacsclient -c";
|
||||||
|
"Mod4+Return" = "exec foot";
|
||||||
"Mod4+space" =
|
"Mod4+space" =
|
||||||
"exec ${pkgs.foot}/bin/foot -T mylauncher -a mylauncher ${pkgs.q-sh}/bin/q";
|
"exec ${pkgs.foot}/bin/foot -T mylauncher -a mylauncher ${pkgs.q-sh}/bin/q";
|
||||||
"Mod4+p" =
|
"Mod4+p" =
|
||||||
|
|
440
emacs.el
440
emacs.el
|
@ -1,4 +1,5 @@
|
||||||
;; -------- Speed up load time -------
|
;; -------- Speed up load time -------
|
||||||
|
;; (package-initialize)
|
||||||
|
|
||||||
;; I don't use emacs-server, so startup times are very important to me.
|
;; I don't use emacs-server, so startup times are very important to me.
|
||||||
|
|
||||||
|
@ -23,10 +24,25 @@
|
||||||
gc-cons-percentage 0.1)
|
gc-cons-percentage 0.1)
|
||||||
(setq file-name-handler-alist saved--file-name-handler-alist)))
|
(setq file-name-handler-alist saved--file-name-handler-alist)))
|
||||||
|
|
||||||
|
|
||||||
|
;; Required by use-package :bind in compiled mode
|
||||||
|
(require 'bind-key)
|
||||||
|
|
||||||
|
(setq package-enable-at-startup nil)
|
||||||
|
(setq package-archives nil)
|
||||||
|
(add-to-list 'package-archives
|
||||||
|
'("melpa" . "https://melpa.org/packages/") t)
|
||||||
|
(add-to-list 'package-archives
|
||||||
|
'("gnu" . "http://elpa.gnu.org/packages/") t)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;;(setq initial-major-mode 'text-mode)
|
||||||
|
|
||||||
;; -------- Default directories --------
|
;; -------- Default directories --------
|
||||||
|
|
||||||
(setq default-directory "~/")
|
(setq default-directory "~/")
|
||||||
(setq command-line-default-directory "~/")
|
;;(setq command-line-default-directory "~/")
|
||||||
|
|
||||||
;; -------- State files --------
|
;; -------- State files --------
|
||||||
|
|
||||||
|
@ -46,18 +62,28 @@
|
||||||
;; is preserved.
|
;; is preserved.
|
||||||
|
|
||||||
(setq savehist-file "~/.emacs.d/savehist")
|
(setq savehist-file "~/.emacs.d/savehist")
|
||||||
(savehist-mode +1)
|
|
||||||
|
(use-package savehist-mode
|
||||||
|
:defer 1
|
||||||
|
:config
|
||||||
(setq savehist-save-minibuffer-history +1)
|
(setq savehist-save-minibuffer-history +1)
|
||||||
(setq savehist-additional-variables
|
(setq savehist-additional-variables
|
||||||
'(kill-ring
|
'(kill-ring
|
||||||
search-ring
|
search-ring
|
||||||
regexp-search-ring))
|
regexp-search-ring))
|
||||||
|
(savehist-mode +1)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
;; -------- Recent files --------
|
;; -------- Recent files --------
|
||||||
|
|
||||||
;; Recent files are convenient to record because you can use them to
|
;; Recent files are convenient to record because you can use them to
|
||||||
;; quickly jump to what you've been editing recently.
|
;; quickly jump to what you've been editing recently.
|
||||||
|
|
||||||
|
|
||||||
|
(use-package recentf-mode
|
||||||
|
:defer 1
|
||||||
|
:config
|
||||||
(setq recentf-save-file "~/.emacs.d/recentf"
|
(setq recentf-save-file "~/.emacs.d/recentf"
|
||||||
recentf-max-menu-items 0
|
recentf-max-menu-items 0
|
||||||
recentf-max-saved-items 300
|
recentf-max-saved-items 300
|
||||||
|
@ -66,8 +92,8 @@
|
||||||
(list "^/tmp/" "^/ssh:" "\\.?ido\\.last$" "\\.revive$" "/TAGS$"
|
(list "^/tmp/" "^/ssh:" "\\.?ido\\.last$" "\\.revive$" "/TAGS$"
|
||||||
"^/var/folders/.+$"
|
"^/var/folders/.+$"
|
||||||
))
|
))
|
||||||
|
|
||||||
(recentf-mode 1)
|
(recentf-mode 1)
|
||||||
|
)
|
||||||
|
|
||||||
;; -------- De-clutter --------
|
;; -------- De-clutter --------
|
||||||
|
|
||||||
|
@ -76,7 +102,9 @@
|
||||||
|
|
||||||
(tool-bar-mode -1)
|
(tool-bar-mode -1)
|
||||||
(scroll-bar-mode -1)
|
(scroll-bar-mode -1)
|
||||||
|
(setq inhibit-start-screen 1)
|
||||||
(setq inhibit-startup-screen t)
|
(setq inhibit-startup-screen t)
|
||||||
|
(setq inhibit-splash-screen t)
|
||||||
|
|
||||||
(if (not (eq window-system 'mac))
|
(if (not (eq window-system 'mac))
|
||||||
(menu-bar-mode -1))
|
(menu-bar-mode -1))
|
||||||
|
@ -88,7 +116,12 @@
|
||||||
(setq-default window-divider-default-places t
|
(setq-default window-divider-default-places t
|
||||||
window-divider-default-bottom-width 0
|
window-divider-default-bottom-width 0
|
||||||
window-divider-default-right-width 1)
|
window-divider-default-right-width 1)
|
||||||
|
|
||||||
|
(use-package window-divider-mode
|
||||||
|
:defer 1
|
||||||
|
:config
|
||||||
(window-divider-mode +1)
|
(window-divider-mode +1)
|
||||||
|
)
|
||||||
|
|
||||||
;; Remove continuation arrow on right fringe
|
;; Remove continuation arrow on right fringe
|
||||||
|
|
||||||
|
@ -102,8 +135,11 @@
|
||||||
(setq initial-scratch-message "")
|
(setq initial-scratch-message "")
|
||||||
|
|
||||||
;; Hide modeline in the vterm mode
|
;; Hide modeline in the vterm mode
|
||||||
(use-package hide-mode-line)
|
(use-package hide-mode-line
|
||||||
(add-hook 'vterm-mode-hook #'hide-mode-line-mode)
|
:ensure t
|
||||||
|
:defer t
|
||||||
|
:hook (vterm-mode . hide-mode-line-mode)
|
||||||
|
)
|
||||||
|
|
||||||
;; Disable "when done with this frame..." message when running
|
;; Disable "when done with this frame..." message when running
|
||||||
;; emacsclient
|
;; emacsclient
|
||||||
|
@ -143,15 +179,7 @@
|
||||||
|
|
||||||
;; Hide some miror modes from sight to not clutter the modeline
|
;; Hide some miror modes from sight to not clutter the modeline
|
||||||
|
|
||||||
(use-package diminish)
|
(use-package diminish :ensure t)
|
||||||
(require 'diminish)
|
|
||||||
|
|
||||||
(diminish 'company-mode)
|
|
||||||
(diminish 'projectile-mode)
|
|
||||||
(diminish 'editorconfig-mode)
|
|
||||||
(diminish 'eldoc-mode)
|
|
||||||
(diminish 'flycheck-mode)
|
|
||||||
(diminish 'which-key-mode)
|
|
||||||
|
|
||||||
;; -------- Theme --------
|
;; -------- Theme --------
|
||||||
|
|
||||||
|
@ -159,8 +187,11 @@
|
||||||
;; background color
|
;; background color
|
||||||
;; - Panels look better without outset/inset shadows
|
;; - Panels look better without outset/inset shadows
|
||||||
|
|
||||||
(use-package modus-themes)
|
(use-package modus-themes
|
||||||
|
:ensure t
|
||||||
|
:config
|
||||||
(load-theme 'modus-operandi t)
|
(load-theme 'modus-operandi t)
|
||||||
|
)
|
||||||
|
|
||||||
(set-face-attribute 'fringe nil
|
(set-face-attribute 'fringe nil
|
||||||
:foreground (face-foreground 'default)
|
:foreground (face-foreground 'default)
|
||||||
|
@ -201,13 +232,6 @@ Intended for `after-make-frame-functions'."
|
||||||
|
|
||||||
;; -------- Packages --------
|
;; -------- Packages --------
|
||||||
|
|
||||||
(diminish 'company-mode)
|
|
||||||
(diminish 'projectile-mode)
|
|
||||||
(diminish 'editorconfig-mode)
|
|
||||||
(diminish 'eldoc-mode)
|
|
||||||
(diminish 'flycheck-mode)
|
|
||||||
(diminish 'which-key-mode)
|
|
||||||
|
|
||||||
;; -------- Navigation --------
|
;; -------- Navigation --------
|
||||||
|
|
||||||
;; Quickly find my way around emacs
|
;; Quickly find my way around emacs
|
||||||
|
@ -215,7 +239,7 @@ Intended for `after-make-frame-functions'."
|
||||||
;; Default scheme for uniquifying buffer names is not convenient.
|
;; Default scheme for uniquifying buffer names is not convenient.
|
||||||
;; It's better to have a regular path-like structure.
|
;; It's better to have a regular path-like structure.
|
||||||
|
|
||||||
;;(require 'uniquify)
|
;;(use-package 'uniquify)
|
||||||
(setq uniquify-buffer-name-style 'forward)
|
(setq uniquify-buffer-name-style 'forward)
|
||||||
(setq uniquify-separator "/")
|
(setq uniquify-separator "/")
|
||||||
(setq uniquify-after-kill-buffer-p t) ; rename after killing uniquified
|
(setq uniquify-after-kill-buffer-p t) ; rename after killing uniquified
|
||||||
|
@ -226,35 +250,55 @@ Intended for `after-make-frame-functions'."
|
||||||
;; options in minibuffer.
|
;; options in minibuffer.
|
||||||
|
|
||||||
|
|
||||||
(use-package which-key)
|
(use-package which-key
|
||||||
(add-hook 'after-init-hook 'which-key-mode)
|
:defer 2
|
||||||
(with-eval-after-load 'which-key
|
:config
|
||||||
(which-key-setup-side-window-bottom))
|
(which-key-mode)
|
||||||
|
(which-key-setup-side-window-bottom)
|
||||||
|
)
|
||||||
|
|
||||||
;; persp-mode allows you to have tagged workspaces akin to
|
;; persp-mode allows you to have tagged workspaces akin to
|
||||||
;; Linux tiled-window managers.
|
;; Linux tiled-window managers.
|
||||||
|
|
||||||
(use-package persp-mode)
|
;;(use-package persp-mode
|
||||||
;; persp-mode clashes with corfu
|
;;:ensure t
|
||||||
(setq persp-auto-resume-time 0)
|
;;:bind
|
||||||
(add-hook 'after-init-hook 'persp-mode)
|
;;("C-x x s" . persp-switch)
|
||||||
(global-set-key (kbd "C-x x s") 'persp-switch)
|
;;:init
|
||||||
|
;;;; persp-mode clashes with corfu
|
||||||
|
;;(setq persp-auto-resume-time 0)
|
||||||
|
;;:config
|
||||||
|
;;(persp-mode)
|
||||||
|
;;)
|
||||||
|
|
||||||
;; vertico-mode allows for easy navigation between buffers and files
|
;; vertico-mode allows for easy navigation between buffers and files
|
||||||
|
|
||||||
(use-package vertico)
|
(use-package vertico
|
||||||
(add-hook 'after-init-hook 'vertico-mode)
|
:ensure t
|
||||||
|
:defer 0.1
|
||||||
|
:config
|
||||||
|
(require 'bind-key)
|
||||||
(setq completion-ignore-case t)
|
(setq completion-ignore-case t)
|
||||||
(setq completion-styles '(basic substring partial-completion flex))
|
(setq completion-styles '(basic substring partial-completion flex))
|
||||||
|
(vertico-mode)
|
||||||
|
)
|
||||||
|
|
||||||
(use-package marginalia)
|
(use-package marginalia
|
||||||
(add-hook 'after-init-hook 'marginalia-mode)
|
:ensure t
|
||||||
|
:defer 0.1
|
||||||
|
:config
|
||||||
|
(marginalia-mode)
|
||||||
|
)
|
||||||
|
|
||||||
;; ripgrep search with consult
|
;; ripgrep search with consult
|
||||||
|
|
||||||
(use-package consult)
|
(use-package consult
|
||||||
|
:ensure t
|
||||||
|
:defer 0.1
|
||||||
|
:config
|
||||||
(global-set-key (kbd "M-s r") 'consult-ripgrep)
|
(global-set-key (kbd "M-s r") 'consult-ripgrep)
|
||||||
(setq completion-in-region-function 'consult-completion-in-region)
|
(setq completion-in-region-function 'consult-completion-in-region)
|
||||||
|
)
|
||||||
|
|
||||||
;; Navigation when in russian layout
|
;; Navigation when in russian layout
|
||||||
|
|
||||||
|
@ -279,9 +323,12 @@ Intended for `after-make-frame-functions'."
|
||||||
|
|
||||||
;; But use editorconfig to guess proper project-wide indentation rules
|
;; But use editorconfig to guess proper project-wide indentation rules
|
||||||
|
|
||||||
(use-package editorconfig)
|
(use-package editorconfig
|
||||||
(add-hook 'prog-mode-hook #'editorconfig-mode)
|
:ensure t
|
||||||
|
:defer t
|
||||||
|
:diminish editorconfig-mode
|
||||||
|
:hook (prog-mode . editorconfig-mode)
|
||||||
|
)
|
||||||
|
|
||||||
;; Speed up comint buffers by disabling bidirectional language support
|
;; Speed up comint buffers by disabling bidirectional language support
|
||||||
|
|
||||||
|
@ -292,16 +339,21 @@ Intended for `after-make-frame-functions'."
|
||||||
;; Evil mode is a vi/vim compatibility layer for Emacs that provides roughly
|
;; Evil mode is a vi/vim compatibility layer for Emacs that provides roughly
|
||||||
;; equivalent keybindings for editing.
|
;; equivalent keybindings for editing.
|
||||||
|
|
||||||
|
(use-package evil
|
||||||
|
:ensure t
|
||||||
|
:defer .1 ;; don't block emacs when starting, load evil immediately after startup
|
||||||
|
|
||||||
|
:init
|
||||||
|
;;(setq evil-want-integration nil) ;; required by evil-collection
|
||||||
(setq evil-want-keybinding nil)
|
(setq evil-want-keybinding nil)
|
||||||
(setq evil-want-C-u-scroll t)
|
(setq evil-want-C-u-scroll t)
|
||||||
(use-package evil)
|
|
||||||
(use-package evil-collection)
|
|
||||||
(add-hook 'after-init-hook #'(lambda ()
|
|
||||||
(evil-mode 1)
|
|
||||||
(evil-set-undo-system 'undo-redo)
|
|
||||||
(evil-collection-init)))
|
|
||||||
|
|
||||||
|
:config
|
||||||
|
|
||||||
|
(evil-mode)
|
||||||
(evil-set-leader 'normal " ")
|
(evil-set-leader 'normal " ")
|
||||||
|
(evil-set-undo-system 'undo-redo)
|
||||||
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>f") 'find-file)
|
(evil-define-key 'normal 'global (kbd "<leader>f") 'find-file)
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>b") 'switch-to-buffer)
|
(evil-define-key 'normal 'global (kbd "<leader>b") 'switch-to-buffer)
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>r") 'consult-ripgrep)
|
(evil-define-key 'normal 'global (kbd "<leader>r") 'consult-ripgrep)
|
||||||
|
@ -309,43 +361,57 @@ Intended for `after-make-frame-functions'."
|
||||||
;; Make :q close the current buffer, and not the whole emacs process
|
;; Make :q close the current buffer, and not the whole emacs process
|
||||||
(global-set-key [remap evil-quit] 'kill-buffer-and-window)
|
(global-set-key [remap evil-quit] 'kill-buffer-and-window)
|
||||||
|
|
||||||
|
(use-package evil-collection
|
||||||
|
:after evil
|
||||||
|
:diminish evil-collection-unimpaired-mode
|
||||||
|
:config
|
||||||
|
(evil-collection-init))
|
||||||
|
)
|
||||||
|
|
||||||
|
(use-package evil-terminal-cursor-changer
|
||||||
|
:ensure t
|
||||||
|
:if (not (display-graphic-p))
|
||||||
|
:after evil
|
||||||
|
:defer t
|
||||||
|
:init (evil-terminal-cursor-changer-activate))
|
||||||
|
|
||||||
;; -------- Tools and environment --------
|
;; -------- Tools and environment --------
|
||||||
|
|
||||||
;; By default, Emacs doesn't add system path to its search places
|
;; By default, Emacs doesn't add system path to its search places
|
||||||
|
|
||||||
(use-package exec-path-from-shell)
|
(use-package exec-path-from-shell
|
||||||
(require 'exec-path-from-shell)
|
:ensure t
|
||||||
|
:defer 1
|
||||||
|
:config
|
||||||
(setenv "PATH" (concat "/usr/local/bin:" (getenv "PATH")))
|
(setenv "PATH" (concat "/usr/local/bin:" (getenv "PATH")))
|
||||||
|
|
||||||
;; On a mac, this will set up PATH and MANPATH from your environment
|
;; On a mac, this will set up PATH and MANPATH from your environment
|
||||||
(when (memq window-system '(mac ns x pgtk))
|
(when (memq window-system '(mac ns x pgtk))
|
||||||
(exec-path-from-shell-initialize))
|
(exec-path-from-shell-initialize))
|
||||||
|
)
|
||||||
|
|
||||||
;; -------- Org roam --------
|
;; -------- Org roam --------
|
||||||
|
|
||||||
(use-package org)
|
(use-package org-roam
|
||||||
(use-package org-contrib)
|
:ensure t
|
||||||
(use-package org-roam)
|
:defer t
|
||||||
(use-package consult-org-roam)
|
:bind
|
||||||
|
("C-c n l" . org-roam-buffer-toggle)
|
||||||
|
("C-c n i" . org-roam-node-insert)
|
||||||
|
("C-c n f" . org-roam-node-find)
|
||||||
|
("C-c n r" . consult-org-roam-search)
|
||||||
|
("C-c n d" . org-roam-dailies-goto-today)
|
||||||
|
("C-c n w" . org-roam-week)
|
||||||
|
|
||||||
|
:config
|
||||||
|
(use-package consult-org-roam
|
||||||
|
:ensure t
|
||||||
|
)
|
||||||
|
|
||||||
(setq org-roam-completion-everywhere t)
|
|
||||||
(setq org-roam-directory "~/notes")
|
(setq org-roam-directory "~/notes")
|
||||||
(setq org-roam-node-default-sort 'file-mtime)
|
(setq org-roam-node-default-sort 'file-mtime)
|
||||||
(setq consult-org-roam-grep-func #'consult-ripgrep)
|
(setq consult-org-roam-grep-func #'consult-ripgrep)
|
||||||
|
|
||||||
(global-set-key (kbd "C-c n l") 'org-roam-buffer-toggle)
|
|
||||||
(global-set-key (kbd "C-c n i") 'org-roam-node-insert)
|
|
||||||
(global-set-key (kbd "C-c n f") 'org-roam-node-find)
|
|
||||||
(global-set-key (kbd "C-c n r") 'consult-org-roam-search)
|
|
||||||
(global-set-key (kbd "C-c n d") 'org-roam-dailies-goto-today)
|
|
||||||
|
|
||||||
(autoload 'org-roam-buffer-toggle "org-roam" "\
|
|
||||||
Enable org-roam
|
|
||||||
" t nil)
|
|
||||||
(autoload 'org-roam-setup "org-roam" "\
|
|
||||||
Enable org-roam
|
|
||||||
" t nil)
|
|
||||||
|
|
||||||
(setq org-roam-capture-templates
|
(setq org-roam-capture-templates
|
||||||
`(
|
`(
|
||||||
("d" "default" plain "%?"
|
("d" "default" plain "%?"
|
||||||
|
@ -374,8 +440,6 @@ Enable org-roam
|
||||||
org-roam-node-annotation-function
|
org-roam-node-annotation-function
|
||||||
(lambda (node) (marginalia--time (org-roam-node-file-mtime node))))
|
(lambda (node) (marginalia--time (org-roam-node-file-mtime node))))
|
||||||
|
|
||||||
(add-hook 'after-init-hook 'org-roam-setup)
|
|
||||||
|
|
||||||
(defun roam-extra:get-filetags ()
|
(defun roam-extra:get-filetags ()
|
||||||
(split-string (or (org-roam-get-keyword "filetags") "")))
|
(split-string (or (org-roam-get-keyword "filetags") "")))
|
||||||
|
|
||||||
|
@ -451,12 +515,23 @@ Enable org-roam
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
(global-set-key (kbd "C-c n w") 'org-roam-week)
|
(org-roam-setup)
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
;; -------- Org mode ---------
|
;; -------- Org mode ---------
|
||||||
|
|
||||||
(use-package org-modern)
|
(use-package org
|
||||||
(with-eval-after-load 'org (global-org-modern-mode))
|
:ensure t
|
||||||
|
:mode (("\\.org$" . org-mode))
|
||||||
|
:config
|
||||||
|
(use-package org-contrib
|
||||||
|
:ensure t)
|
||||||
|
(use-package org-modern
|
||||||
|
:ensure t
|
||||||
|
:config
|
||||||
|
(global-org-modern-mode)
|
||||||
|
)
|
||||||
|
|
||||||
(setq org-modules '(org-w3m org-bbdb org-bibtex org-docview
|
(setq org-modules '(org-w3m org-bbdb org-bibtex org-docview
|
||||||
org-gnus org-info org-irc org-mhe
|
org-gnus org-info org-irc org-mhe
|
||||||
|
@ -636,13 +711,13 @@ Enable org-roam
|
||||||
(setq org-tags-exclude-from-inheritance '("PROJECT")
|
(setq org-tags-exclude-from-inheritance '("PROJECT")
|
||||||
org-stuck-projects '("+PROJECT/-MAYBE-DONE-SOMEDAY"
|
org-stuck-projects '("+PROJECT/-MAYBE-DONE-SOMEDAY"
|
||||||
("TODO" "ERRAND" "WAITING") () ()))
|
("TODO" "ERRAND" "WAITING") () ()))
|
||||||
|
)
|
||||||
;; -------- Email --------
|
;; -------- Email --------
|
||||||
|
|
||||||
;;(use-package mu4e)
|
(use-package mu4e
|
||||||
|
:defer t
|
||||||
;;(add-to-list 'load-path "/usr/share/emacs/site-lisp/mu4e")
|
:commands (mu4e)
|
||||||
|
:config
|
||||||
(setq sendmail-program (executable-find "msmtp"))
|
(setq sendmail-program (executable-find "msmtp"))
|
||||||
|
|
||||||
(autoload 'mu4e "mu4e" "\
|
(autoload 'mu4e "mu4e" "\
|
||||||
|
@ -791,22 +866,36 @@ window, unless BACKGROUND (prefix-argument) is non-nil.
|
||||||
|
|
||||||
(setq mu4e-bookmarks
|
(setq mu4e-bookmarks
|
||||||
'(("maildir:/personal/INBOX OR maildir:/work/INBOX" "inbox" ?i)))
|
'(("maildir:/personal/INBOX OR maildir:/work/INBOX" "inbox" ?i)))
|
||||||
|
)
|
||||||
|
|
||||||
|
;;(add-to-list 'load-path "/usr/share/emacs/site-lisp/mu4e")
|
||||||
|
|
||||||
|
|
||||||
;; -------- Programming --------
|
;; -------- Programming --------
|
||||||
|
|
||||||
;; Enable direnv-mode to automatically load Nix flake dependencies for projects
|
(use-package eldoc
|
||||||
(use-package direnv
|
:defer t
|
||||||
:config
|
:diminish eldoc-mode
|
||||||
(direnv-mode))
|
:hook (prog-mode . eldoc-mode)
|
||||||
|
:init
|
||||||
|
;;(setq eldoc-idle-delay 0.1)
|
||||||
|
)
|
||||||
|
|
||||||
;; Rainbow delimeters highlight matching pairs of braces in different colors
|
;; Rainbow delimeters highlight matching pairs of braces in different colors
|
||||||
|
|
||||||
(use-package rainbow-delimiters)
|
(use-package rainbow-delimiters
|
||||||
(add-hook 'prog-mode-hook #'rainbow-delimiters-mode)
|
:ensure t
|
||||||
|
:hook (prog-mode . rainbow-delimiters-mode)
|
||||||
|
)
|
||||||
|
|
||||||
;; Flycheck is an on-the-fly syntax checker for emacs with pluggable backengs.
|
;; Flycheck is an on-the-fly syntax checker for emacs with pluggable backengs.
|
||||||
|
|
||||||
(use-package flycheck)
|
(use-package flycheck
|
||||||
|
:ensure t
|
||||||
|
:hook (prog-mode . rainbow-delimiters-mode)
|
||||||
|
:diminish flycheck-mode
|
||||||
|
)
|
||||||
|
|
||||||
;; Not usable for every single mode, so need to be selective
|
;; Not usable for every single mode, so need to be selective
|
||||||
;;(add-hook 'prog-mode-hook #'flycheck-mode)
|
;;(add-hook 'prog-mode-hook #'flycheck-mode)
|
||||||
|
|
||||||
|
@ -816,10 +905,15 @@ window, unless BACKGROUND (prefix-argument) is non-nil.
|
||||||
|
|
||||||
;; Projectile auto-detects projects and allows to run project-wide commands
|
;; Projectile auto-detects projects and allows to run project-wide commands
|
||||||
|
|
||||||
(use-package projectile)
|
(use-package projectile
|
||||||
|
:ensure t
|
||||||
|
:defer 0.1
|
||||||
|
:diminish projectile-mode
|
||||||
|
:config
|
||||||
(setq projectile-cache-file "~/.emacs.d/projectile.cache")
|
(setq projectile-cache-file "~/.emacs.d/projectile.cache")
|
||||||
(projectile-mode +1)
|
(projectile-mode +1)
|
||||||
(define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map)
|
(define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map)
|
||||||
|
)
|
||||||
|
|
||||||
;; Corfu mode is a simple auto completion framework with
|
;; Corfu mode is a simple auto completion framework with
|
||||||
;; pluggable backends
|
;; pluggable backends
|
||||||
|
@ -827,30 +921,51 @@ window, unless BACKGROUND (prefix-argument) is non-nil.
|
||||||
;;(setq company-backends '(company-capf (company-dabbrev-code) company-dabbrev))
|
;;(setq company-backends '(company-capf (company-dabbrev-code) company-dabbrev))
|
||||||
;;(add-hook 'prog-mode-hook #'company-mode)
|
;;(add-hook 'prog-mode-hook #'company-mode)
|
||||||
;;(add-hook 'mu4e-compose-mode-hook #'company-mode)
|
;;(add-hook 'mu4e-compose-mode-hook #'company-mode)
|
||||||
(use-package corfu)
|
(use-package corfu
|
||||||
(add-hook 'after-init-hook 'global-corfu-mode)
|
:ensure t
|
||||||
(add-hook 'after-init-hook 'corfu-popupinfo-mode)
|
:defer 1
|
||||||
|
:init
|
||||||
(setq corfu-auto t)
|
(setq corfu-auto t)
|
||||||
(setq tab-always-indent 'complete)
|
(setq tab-always-indent 'complete)
|
||||||
(setq corfu-quit-no-match 'separator)
|
(setq corfu-quit-no-match 'separator)
|
||||||
|
:config
|
||||||
|
(global-corfu-mode)
|
||||||
|
(corfu-popupinfo-mode)
|
||||||
|
)
|
||||||
|
|
||||||
(use-package cape)
|
(use-package corfu-terminal
|
||||||
|
:ensure t
|
||||||
|
:after corfu
|
||||||
|
:config
|
||||||
|
(unless (display-graphic-p)
|
||||||
|
(corfu-terminal-mode +1))
|
||||||
|
)
|
||||||
|
|
||||||
|
;; (setq corfu-auto t)
|
||||||
|
;;(setq tab-always-indent 'complete)
|
||||||
|
;;(setq corfu-quit-no-match 'separator)
|
||||||
|
;;(global-corfu-mode)
|
||||||
|
;;(corfu-popupinfo-mode)
|
||||||
|
|
||||||
|
(use-package cape
|
||||||
|
:ensure t
|
||||||
|
:defer 0.1
|
||||||
|
:config
|
||||||
(add-to-list 'completion-at-point-functions #'cape-dabbrev)
|
(add-to-list 'completion-at-point-functions #'cape-dabbrev)
|
||||||
(add-to-list 'completion-at-point-functions #'cape-file)
|
(add-to-list 'completion-at-point-functions #'cape-file)
|
||||||
|
)
|
||||||
|
|
||||||
;; Can't live without magit. It makes working with git sooo much easie
|
;; Can't live without magit. It makes working with git sooo much easie
|
||||||
|
|
||||||
(use-package magit)
|
(use-package magit
|
||||||
(global-set-key (kbd "C-x g") 'magit-status)
|
:ensure t
|
||||||
|
:bind
|
||||||
|
("C-x g" . magit-status)
|
||||||
|
)
|
||||||
|
|
||||||
;;(setq magit-completing-read-function 'magit-ido-completing-read)
|
;;(setq magit-completing-read-function 'magit-ido-completing-read)
|
||||||
|
|
||||||
|
|
||||||
;; LSP
|
|
||||||
|
|
||||||
;; Maybe switch to EGLOT, which is shipped in Emacs 29
|
|
||||||
(add-hook 'lua-mode-hook #'lsp)
|
|
||||||
|
|
||||||
;; Tree-sitter
|
;; Tree-sitter
|
||||||
|
|
||||||
(setq major-mode-remap-alist
|
(setq major-mode-remap-alist
|
||||||
|
@ -874,10 +989,12 @@ window, unless BACKGROUND (prefix-argument) is non-nil.
|
||||||
;; speed and features.
|
;; speed and features.
|
||||||
|
|
||||||
(setq vterm-always-compile-module t)
|
(setq vterm-always-compile-module t)
|
||||||
(use-package vterm)
|
(use-package vterm
|
||||||
|
:ensure t
|
||||||
;;(add-to-list 'load-path (expand-file-name "~/dev/emacs-libvterm/"))
|
:defer t
|
||||||
|
:commands
|
||||||
|
vterm
|
||||||
|
:config
|
||||||
(defun vterm-less (content)
|
(defun vterm-less (content)
|
||||||
(let ((less-buffer (get-buffer-create (make-temp-name "vterm-less-"))))
|
(let ((less-buffer (get-buffer-create (make-temp-name "vterm-less-"))))
|
||||||
(with-current-buffer less-buffer
|
(with-current-buffer less-buffer
|
||||||
|
@ -887,8 +1004,6 @@ window, unless BACKGROUND (prefix-argument) is non-nil.
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
(use-package with-editor)
|
|
||||||
(defun my-vterm-mode-hook ()
|
(defun my-vterm-mode-hook ()
|
||||||
(add-to-list 'vterm-eval-cmds (list "less" #'vterm-less))
|
(add-to-list 'vterm-eval-cmds (list "less" #'vterm-less))
|
||||||
(with-editor-export-editor)
|
(with-editor-export-editor)
|
||||||
|
@ -896,66 +1011,84 @@ window, unless BACKGROUND (prefix-argument) is non-nil.
|
||||||
|
|
||||||
(add-hook 'vterm-mode-hook #'my-vterm-mode-hook)
|
(add-hook 'vterm-mode-hook #'my-vterm-mode-hook)
|
||||||
|
|
||||||
(put 'upcase-region 'disabled nil)
|
|
||||||
|
|
||||||
(autoload 'vterm "vterm" "\
|
|
||||||
If vterm is not running yet, start it. Then, show the main
|
|
||||||
window, unless BACKGROUND (prefix-argument) is non-nil.
|
|
||||||
" t nil)
|
|
||||||
|
|
||||||
(defun vterm-new ()
|
(defun vterm-new ()
|
||||||
(interactive)
|
(interactive)
|
||||||
(setq current-prefix-arg '(4)) ; C-u
|
(setq current-prefix-arg '(4)) ; C-u
|
||||||
(call-interactively 'vterm))
|
(call-interactively 'vterm))
|
||||||
|
)
|
||||||
|
|
||||||
;; EAT terminal
|
;;(add-to-list 'load-path (expand-file-name "~/dev/emacs-libvterm/"))
|
||||||
|
|
||||||
|
|
||||||
|
(use-package with-editor
|
||||||
|
:ensure t
|
||||||
|
:defer 1
|
||||||
|
)
|
||||||
|
|
||||||
|
(put 'upcase-region 'disabled nil)
|
||||||
|
|
||||||
(use-package eat)
|
|
||||||
|
|
||||||
;; lua
|
;; lua
|
||||||
|
|
||||||
(use-package lua-mode)
|
(use-package lua-mode
|
||||||
|
:ensure t
|
||||||
|
:mode "\\.lua$"
|
||||||
|
:config
|
||||||
(setq lua-indent-level 4)
|
(setq lua-indent-level 4)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
;; common lisp
|
;; common lisp
|
||||||
|
|
||||||
(use-package sly)
|
;;(use-package sly)
|
||||||
(use-package sly-asdf)
|
;;(use-package sly-asdf)
|
||||||
(use-package aggressive-indent)
|
;;(use-package aggressive-indent)
|
||||||
|
|
||||||
(add-to-list 'sly-contribs 'sly-asdf 'append)
|
;;(add-to-list 'sly-contribs 'sly-asdf 'append)
|
||||||
(autoload 'sly "sly"
|
;;(autoload 'sly "sly"
|
||||||
"Start an inferior^_superior Lisp and connect to its Swank server."
|
;;"Start an inferior^_superior Lisp and connect to its Swank server."
|
||||||
t nil)
|
;;t nil)
|
||||||
|
|
||||||
(define-key lisp-mode-map (kbd "C-c v")
|
;;(define-key lisp-mode-map (kbd "C-c v")
|
||||||
'sly-asdf-test-system)
|
;;'sly-asdf-test-system)
|
||||||
|
|
||||||
;autoload 'sly-lisp-mode-hook "sly"
|
;autoload 'sly-lisp-mode-hook "sly"
|
||||||
; "Set up sly for a lisp buffer."
|
; "Set up sly for a lisp buffer."
|
||||||
; t nil)
|
; t nil)
|
||||||
|
|
||||||
(add-hook 'lisp-mode-hook #'aggressive-indent-mode)
|
;;(add-hook 'lisp-mode-hook #'aggressive-indent-mode)
|
||||||
;(add-hook 'lisp-mode-hook 'sly-lisp-mode-hook)
|
;(add-hook 'lisp-mode-hook 'sly-lisp-mode-hook)
|
||||||
;(setq slime-contribs '(slime-fancy slime-company))
|
;(setq slime-contribs '(slime-fancy slime-company))
|
||||||
(setq inferior-lisp-program "sbcl")
|
;;(setq inferior-lisp-program "sbcl")
|
||||||
|
|
||||||
|
|
||||||
;; Markdown
|
;; Markdown
|
||||||
|
|
||||||
(use-package markdown-mode)
|
(use-package markdown-mode
|
||||||
|
:ensure t
|
||||||
|
:mode "\\.md$"
|
||||||
|
)
|
||||||
|
|
||||||
;; Dockerfiles
|
;; Dockerfiles
|
||||||
|
|
||||||
(use-package dockerfile-mode)
|
(use-package dockerfile-mode
|
||||||
|
:ensure t
|
||||||
|
:mode "Dockerfile$"
|
||||||
|
)
|
||||||
|
|
||||||
;; Yaml
|
;; Yaml
|
||||||
|
|
||||||
(use-package yaml-mode)
|
(use-package yaml-mode
|
||||||
|
:ensure t
|
||||||
|
:mode "\\.(yaml|yml)$"
|
||||||
|
)
|
||||||
|
|
||||||
;; CMake
|
;; CMake
|
||||||
|
|
||||||
(use-package cmake-mode)
|
(use-package cmake-mode
|
||||||
|
:ensure t
|
||||||
|
:mode "CMakeLists.txt$"
|
||||||
|
)
|
||||||
|
|
||||||
;; C/C++
|
;; C/C++
|
||||||
|
|
||||||
|
@ -1014,40 +1147,45 @@ window, unless BACKGROUND (prefix-argument) is non-nil.
|
||||||
(add-hook 'go-ts-mode-hook 'eglot-ensure)
|
(add-hook 'go-ts-mode-hook 'eglot-ensure)
|
||||||
(add-hook 'go-mode-hook 'eglot-ensure)
|
(add-hook 'go-mode-hook 'eglot-ensure)
|
||||||
|
|
||||||
(use-package clang-format)
|
(use-package clang-format
|
||||||
(use-package clang-format+)
|
:ensure t
|
||||||
|
:defer 2
|
||||||
|
:config
|
||||||
|
)
|
||||||
|
(use-package clang-format+
|
||||||
|
:ensure t
|
||||||
|
:defer 2
|
||||||
|
:config
|
||||||
(add-hook 'c-mode-hook 'clang-format+-mode)
|
(add-hook 'c-mode-hook 'clang-format+-mode)
|
||||||
(add-hook 'c-ts-mode-hook 'clang-format+-mode)
|
(add-hook 'c-ts-mode-hook 'clang-format+-mode)
|
||||||
(add-hook 'c++-mode-hook 'clang-format+-mode)
|
(add-hook 'c++-mode-hook 'clang-format+-mode)
|
||||||
(add-hook 'c++-ts-mode-hook 'clang-format+-mode)
|
(add-hook 'c++-ts-mode-hook 'clang-format+-mode)
|
||||||
(setq clang-format+-context 'buffer)
|
(setq clang-format+-context 'buffer)
|
||||||
|
)
|
||||||
;; for viewing C/C++ coverage reports
|
|
||||||
(use-package cov)
|
|
||||||
(setq cov-coverage-mode t)
|
|
||||||
|
|
||||||
;; Make lcov.info file in the root of the project discoverable
|
|
||||||
;; as the source of coverage
|
|
||||||
(setq cov-coverage-file-paths
|
|
||||||
(list #'(lambda (file-dir file-name)
|
|
||||||
(let ((try (format "%s/lcov.info"
|
|
||||||
(project-root (project-current t)))))
|
|
||||||
(and (file-exists-p try)
|
|
||||||
(cons (file-truename try) 'lcov))))))
|
|
||||||
|
|
||||||
;; Go
|
;; Go
|
||||||
|
|
||||||
(add-hook 'before-save-hook #'gofmt-before-save)
|
|
||||||
|
|
||||||
(use-package go-mode)
|
(use-package go-mode
|
||||||
|
:ensure t
|
||||||
|
:mode "\\.go$"
|
||||||
|
:config
|
||||||
|
(add-hook 'before-save-hook #'gofmt-before-save)
|
||||||
|
)
|
||||||
|
|
||||||
;; Zig
|
;; Zig
|
||||||
|
|
||||||
(use-package zig-mode)
|
(use-package zig-mode
|
||||||
|
:ensure t
|
||||||
|
:mode "\\.zig$"
|
||||||
|
)
|
||||||
|
|
||||||
;; Terraform
|
;; Terraform
|
||||||
|
|
||||||
(use-package terraform-mode)
|
(use-package terraform-mode
|
||||||
|
:ensure t
|
||||||
|
:mode "\\.tf$"
|
||||||
|
)
|
||||||
|
|
||||||
;; Bash
|
;; Bash
|
||||||
|
|
||||||
|
@ -1055,10 +1193,16 @@ window, unless BACKGROUND (prefix-argument) is non-nil.
|
||||||
|
|
||||||
;; Nix
|
;; Nix
|
||||||
|
|
||||||
(use-package nix-mode)
|
(use-package nix-mode
|
||||||
|
:ensure t
|
||||||
|
:mode "\\.nix$"
|
||||||
|
)
|
||||||
|
|
||||||
(use-package sudo-edit)
|
(use-package sudo-edit
|
||||||
(global-set-key (kbd "C-c C-r") 'sudo-edit)
|
:ensure t
|
||||||
|
:bind
|
||||||
|
("C-c C-r" . sudo-edit)
|
||||||
|
)
|
||||||
|
|
||||||
(provide 'init)
|
(provide 'init)
|
||||||
;;; init.el ends here
|
;;; init.el ends here
|
||||||
|
|
3
evil-collection.patch
Normal file
3
evil-collection.patch
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
diff --git a/modes/.nosearch b/modes/.nosearch
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..e69de29
|
36
flake.lock
36
flake.lock
|
@ -11,11 +11,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1714669473,
|
"lastModified": 1715533419,
|
||||||
"narHash": "sha256-LuwvRYxFw8bE3b75oun2HjdbnwGArYEDzRdhtxkx95o=",
|
"narHash": "sha256-PDlWxvgHqWEJdfAxMYLmoof+ohJrOHx9IZIxvHKE24U=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "emacs-overlay",
|
"repo": "emacs-overlay",
|
||||||
"rev": "8f77253911c7dc3ac829781ac7f37d1d35447c5a",
|
"rev": "dc94f94b49abb487f80e91978a1392e3e2b19fae",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -49,11 +49,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1708027330,
|
"lastModified": 1715696748,
|
||||||
"narHash": "sha256-7jqtoikxzTgy68P+yRg5lGWnJit6S9LdkVM1wCDVlGc=",
|
"narHash": "sha256-e/xBDyInmuMSiDoXWEJCmxudjPiuyvRKpVupDYr76do=",
|
||||||
"owner": "~knazarov",
|
"owner": "~knazarov",
|
||||||
"repo": "git-plan",
|
"repo": "git-plan",
|
||||||
"rev": "e94eee1acefbabfb8b0e9e64a6cf14f0730c5954",
|
"rev": "1d8f6f0c7c3146ec627a7e811723fc7f68eb7c6d",
|
||||||
"type": "sourcehut"
|
"type": "sourcehut"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -69,11 +69,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1714043624,
|
"lastModified": 1715381426,
|
||||||
"narHash": "sha256-Xn2r0Jv95TswvPlvamCC46wwNo8ALjRCMBJbGykdhcM=",
|
"narHash": "sha256-wPuqrAQGdv3ISs74nJfGb+Yprm23U/rFpcHFFNWgM94=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "86853e31dc1b62c6eeed11c667e8cdd0285d4411",
|
"rev": "ab5542e9dbd13d0100f8baae2bc2d68af901f4b4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -105,11 +105,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1714679241,
|
"lastModified": 1715539458,
|
||||||
"narHash": "sha256-Ufz2WBGCcqeXkVgD7bdc+JCrnyPt6G28Xpq2ussqygs=",
|
"narHash": "sha256-lJm3R3EeBBBWnFmt7ZoDjuiGPCPzi7ruaN44R3V6Xqo=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "a6f8947d5a77b88ff43625408e2685c0be100a9b",
|
"rev": "6cd6e4db4279039918efc1dd8e28f55abeb0acaa",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -120,11 +120,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1714531828,
|
"lastModified": 1715395895,
|
||||||
"narHash": "sha256-ILsf3bdY/hNNI/Hu5bSt2/KbmHaAVhBbNUOdGztTHEg=",
|
"narHash": "sha256-DreMqi6+qa21ffLQqhMQL2XRUkAGt3N7iVB5FhJKie4=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "0638fe2715d998fa81d173aad264eb671ce2ebc1",
|
"rev": "71bae31b7dbc335528ca7e96f479ec93462323ff",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -198,11 +198,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1713892811,
|
"lastModified": 1715482972,
|
||||||
"narHash": "sha256-uIGmA2xq41vVFETCF1WW4fFWFT2tqBln+aXnWrvjGRE=",
|
"narHash": "sha256-y1uMzXNlrVOWYj1YNcsGYLm4TOC2aJrwoUY1NjQs9fM=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "f1b0adc27265274e3b0c9b872a8f476a098679bd",
|
"rev": "b6cb5de2ce57acb10ecdaaf9bbd62a5ff24fa02e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
@ -15,3 +15,6 @@ vim.g.mapleader = ' '
|
||||||
|
|
||||||
|
|
||||||
vim.opt.shortmess :append("I")
|
vim.opt.shortmess :append("I")
|
||||||
|
|
||||||
|
require('leap').set_default_keymaps()
|
||||||
|
require('neogit').setup()
|
||||||
|
|
7
nvim/diagnostic.lua
Normal file
7
nvim/diagnostic.lua
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
vim.diagnostic.config({
|
||||||
|
virtual_text = false,
|
||||||
|
signs = true,
|
||||||
|
float = { border = "single" },
|
||||||
|
})
|
||||||
|
vim.o.updatetime = 250
|
||||||
|
vim.cmd [[autocmd CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focus=false})]]
|
|
@ -1,4 +1,3 @@
|
||||||
local capabilities = require('cmp_nvim_lsp').default_capabilities(vim.lsp.protocol.make_client_capabilities())
|
local capabilities = require('cmp_nvim_lsp').default_capabilities(vim.lsp.protocol.make_client_capabilities())
|
||||||
|
|
||||||
require'lspconfig'.gopls.setup{capabilities=capabilities}
|
require'lspconfig'.gopls.setup{capabilities=capabilities}
|
||||||
require'lspconfig'.rnix.setup{capabilities=capabilities}
|
|
||||||
|
|
|
@ -2,7 +2,7 @@ hello: ENC[AES256_GCM,data:+LPt8J+Ks1m10+zZ2Q96r3K2W6Yeng7M7+c2TYDQ+/4AJl6Xc6hVn
|
||||||
fastmail_password: ENC[AES256_GCM,data:tHr8PqIg9DigRBu2bgjUeg==,iv:NI9bENFPuKcOt1cd2kg2DKU22J1dJ+3mK7UoceZagR4=,tag:oEgeQb1iLKisOqHi9Ds7xg==,type:str]
|
fastmail_password: ENC[AES256_GCM,data:tHr8PqIg9DigRBu2bgjUeg==,iv:NI9bENFPuKcOt1cd2kg2DKU22J1dJ+3mK7UoceZagR4=,tag:oEgeQb1iLKisOqHi9Ds7xg==,type:str]
|
||||||
github_token: ENC[AES256_GCM,data:ET4zFSe1dyFum/HMlzT/0bEP/Kzr3vdp16eKZb63hBYcz0+bKmJ/NZGk4KyojPKgRfgHR3XrrJbVdFdP2QTjfX3XtVq6N7RoU4wOwjrdOgm+4JCKRqO6pWa5ieX0m1DB5NuU7hN6X6Yqwcu38dpGzBUinpcyQDmMHSby6epL,iv:IoFHQ6sC9ZxvOIckkoF5Wnn4+VvCHapwNduCBlELzrU=,tag:gfF24P2JUWUhEIxt3Np3MQ==,type:str]
|
github_token: ENC[AES256_GCM,data:ET4zFSe1dyFum/HMlzT/0bEP/Kzr3vdp16eKZb63hBYcz0+bKmJ/NZGk4KyojPKgRfgHR3XrrJbVdFdP2QTjfX3XtVq6N7RoU4wOwjrdOgm+4JCKRqO6pWa5ieX0m1DB5NuU7hN6X6Yqwcu38dpGzBUinpcyQDmMHSby6epL,iv:IoFHQ6sC9ZxvOIckkoF5Wnn4+VvCHapwNduCBlELzrU=,tag:gfF24P2JUWUhEIxt3Np3MQ==,type:str]
|
||||||
mullvad_account: ENC[AES256_GCM,data:CO4wl2vNAMEC9oy37nIrpw==,iv:a3w64u8XQ/tihIDxIPPtdZ6F7dldLPvRzGUs1MpVe4M=,tag:HQxJVuGEvI0fVj8yGptbdA==,type:str]
|
mullvad_account: ENC[AES256_GCM,data:CO4wl2vNAMEC9oy37nIrpw==,iv:a3w64u8XQ/tihIDxIPPtdZ6F7dldLPvRzGUs1MpVe4M=,tag:HQxJVuGEvI0fVj8yGptbdA==,type:str]
|
||||||
git_plan_config: ENC[AES256_GCM,data:N+CCMXP4JUCbhrIhddPXyB/we4ZmE8FYL0ms/MxSOdizInsuIOhfkJR5DlIFh2d45Pw/2e2b2lZNBYKU1r+tHwCJRrp/YuB39ee7E8ygq6uBXgL9KirNjGCQxttXvbulz27cJDQy0n5GVp9176nOwaxWtieG7VsE8PdyaszhkWt3fnFwefPZm5F0WCTxgd0rC7oamZE83FOdIW4rJupgcVYGQox/kLWyvbDxGL5KfQQ6x1Ho6v94rW4W6lXPCGwSSbW4i05vR94/Nv0atYPFB2WUBERCEIbUGJ4seawxfld464wtV5xSlSlkDDEHRGDCtzBdRkVOrLDCT0wDq+AfQQFViChiQoATAaHyK8zZqJgnEU0araOUdlxKQOEEj7Lm/HGwHvIxLGtZPlyfhybYcMfwTcb10nw61D+UqqbKjIvHZ+Q80DK0y0NnrVsehYMEcCqz1h0hfgh5v9Ygk6eiu7yDEk7GkbkWXkPCR0PHO/NOGwyQIHa0fVWnVCdkQDFHyWW77de4IcxnUhUwYsRWtULPuFYvcfog/9W6prgfluDW51y1K9vJK9yCaIPvpvOsmRK98zfgeET/vJYvTvmPw5kKOfeYMxXu8+3YQmeN7EePTBGRSalLxaS22tUXUB30WJEmhhFTnNCrkWugkC1zsvcUvY5/SKq5eKMbj54Mh7D7dm2hDveEIdgRIQtV9UJA6PDbrqqZj4GQrQLTp+1qrZl/i/kg3HYb2HA6ENMbGttJoAyv0YGj+YmlcvsC/rf5/lsiiPuFSSBHsir/uPtLeEg7JkiFBBE5Tm/QaTw08XMWB2YKQm7glq6cY9gHf/uH14LGuF0COc/Cbrc1O0+XqFoSvQ7LXJuB4Dr+4lfr49KzgId1wuMsFkxEsfpUC0aZtV7gVrA0bzlHHNfVpwk3TbwpmSmbjefImCswzXnzS/MJUUL2niY0RzguAwcDedbz+l/z83qNn0fWYpxpjVyhwhMOp/bvogYu6R6fVlz67NHvD52CTlKawEJw+O+cbX3UjcbX2WnDc59vsbDJRANDDrC6hmmj,iv:NXOlkzSW/LaSQxN11jY1qzQ4gOVaEJcmT4I9NkcfbXY=,tag:VoAIom2UF99XtCu+YXaS5A==,type:str]
|
git_plan_config: ENC[AES256_GCM,data:+mLBXtXEzqKrbLJkwZlW5veUaPEkgQ2TuT2gt237Nw/O6zqrAyl9ezKM5kFFHQ3yOkQyIiDRLpy0t9UiBFs+x43qkzVopjNniehwYcgYlAIcSTOrd3pcLWW3YVz1jYIrIdHMTF408rTrcSWHpO9DrKCs+/QJHLEmROelzaFUOmr9Q36CRzWCZ2xjNFbXKg3+00Hhc7UK7UbOnOPrIVNFLWcJ1ipmYPlqK2a5BCBWamGBddwhCypzh9TVjXDyARgBSQvnTpmwb3QAYmdpniDtRHiRHwyUDPGqoZXdPiguDb6QVjiPpRKrwtNGwEGlapCrqfltPi8yoIfJV88SBDKDfoYFgQODRWGMm0X1XL57voJB+G6SsoEbm8elrMbJx7LiIpQH1Tv1gXzbgl8tIB38vHsPhXHbGvavUJBcZ12q7vL/Whw0XWl8x1wrZQe92NeyjN8sjF9QUsfsg6NK6Dziiye6iIVzW4wXezjUSc/A3maeXcEZX2649FubCMV7rZ+Kqu3QVQH1agm5IgqY3UQ88Bc/i+gwISJvzP43/65JSOcxl0yp8tSrx7l/AYyRJjuoA5OwlcaTMECUNagUbFft9qb+7X0O6pz6L9h2z9hnNdWmTght7NDHaziMCsY0BzytdazgCWvRnWYDPEA9DCZTjjpVPQIxoB7wpUv/7nDCIT7faT0x3+hG8wTDyFAqV/N+/JgwSQSX,iv:o5Yc8Qa2eR5OaQYzVgjrBLUfQEMxKj11URuiS9fLNbY=,tag:bpfTTu03ip/NcYFe11PScA==,type:str]
|
||||||
git_plan_credentials: ENC[AES256_GCM,data:d4egK2w4TGIDNaI2Wc3ViOBnH7/WpdeS1EoYe4/oaM4iayBXOEQMvT9qIgu/Hml34gvbBN9lRmlNkESVh7YpwO5wACkkRcO/0ZTyP8XzFUUo0IfUh1iHPjEQOF7vygW/woqBiQgFPRws9F+g6BW8aSQrBgvBF5IeNLhFBvSJUvTft1xEsNwFnkWnfZ2JWmYqLjEggoUEqtXMRw9KKcqm4DNXIzxmA8wSzDriIzeCVuSEV8sJD21saFPPaLw/jupLTLdWp5F8rAxLGa6e9coCNu8vSuqUgfv0jFET71bNw28xPrN38A/PIlUcR9MXe1SGqKAFxEv134ZkJr78g1PIWNoVDrmIlMpV6dYRLKM1FOcpAhJorIXooIl6quCdg2/U5onP8cQ7lt2LsEG5APKj7pz7huatdwM/CgxrcqPVb0E2Lk5c+wi3Rf9/Jz3BqcWQm3bwkHwivWyCD1Nw+qRXLFSfXGTovSBsxX0j4LbdP0o4iPuj068DGawpYC/AfcKfOCmh8aInQhGCQtIq14QGffU9GbW37gHu,iv:ZzOUYu3s+kfwbKajA+6fdu2EysipjoKD49muLNFBZ58=,tag:e0RI7rA8eLQI8h5L4pvS1A==,type:str]
|
git_plan_credentials: ENC[AES256_GCM,data:d4egK2w4TGIDNaI2Wc3ViOBnH7/WpdeS1EoYe4/oaM4iayBXOEQMvT9qIgu/Hml34gvbBN9lRmlNkESVh7YpwO5wACkkRcO/0ZTyP8XzFUUo0IfUh1iHPjEQOF7vygW/woqBiQgFPRws9F+g6BW8aSQrBgvBF5IeNLhFBvSJUvTft1xEsNwFnkWnfZ2JWmYqLjEggoUEqtXMRw9KKcqm4DNXIzxmA8wSzDriIzeCVuSEV8sJD21saFPPaLw/jupLTLdWp5F8rAxLGa6e9coCNu8vSuqUgfv0jFET71bNw28xPrN38A/PIlUcR9MXe1SGqKAFxEv134ZkJr78g1PIWNoVDrmIlMpV6dYRLKM1FOcpAhJorIXooIl6quCdg2/U5onP8cQ7lt2LsEG5APKj7pz7huatdwM/CgxrcqPVb0E2Lk5c+wi3Rf9/Jz3BqcWQm3bwkHwivWyCD1Nw+qRXLFSfXGTovSBsxX0j4LbdP0o4iPuj068DGawpYC/AfcKfOCmh8aInQhGCQtIq14QGffU9GbW37gHu,iv:ZzOUYu3s+kfwbKajA+6fdu2EysipjoKD49muLNFBZ58=,tag:e0RI7rA8eLQI8h5L4pvS1A==,type:str]
|
||||||
sops:
|
sops:
|
||||||
kms: []
|
kms: []
|
||||||
|
@ -28,8 +28,8 @@ sops:
|
||||||
U3loV2xDMkM5SWNXRDJobDloL0FVUUkK3OP7KvcKkE8mJ880dm6LMFZUxELjl8/P
|
U3loV2xDMkM5SWNXRDJobDloL0FVUUkK3OP7KvcKkE8mJ880dm6LMFZUxELjl8/P
|
||||||
6+q8qAYiAvl0Cbd4GzkNpUuBbLlFFWfFmC0vbgg8gyZ6xI5AFhHAPw==
|
6+q8qAYiAvl0Cbd4GzkNpUuBbLlFFWfFmC0vbgg8gyZ6xI5AFhHAPw==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2024-01-10T11:00:59Z"
|
lastmodified: "2024-05-14T14:42:26Z"
|
||||||
mac: ENC[AES256_GCM,data:Y5AeyLjTDWIG4ZgB5dfOAJsyttZ3//B1Y7zFOgRwCPDSYTzNAJaOayI2d9iLFbKRT4lMDd3/u8esBrFyM50IhCQkuY7yWfjvuvyfEFE/3nF3X+Fgao4T9RlTF5YqH1JZg3MC785MLYo8jZteQ2l1iuXXZI94A+bMg9dctliCySs=,iv:nYk2AJVBA1eB1/2isklkQOcg1eQbWtSxS1kg7fVBPBY=,tag:1wNpL33fvVvQh0UKTDmUWg==,type:str]
|
mac: ENC[AES256_GCM,data:dDv0TvWEioUn3w9RYqd9tPC9hNy0EDsA2sRhoDDC5nnNp55ZbjfqgVF5Kh91E8j1rd+8xjsqY/93i4PdRwGFYIb3gOsAhUmqx8LiI1DwQT9mUgv9anT/KcST5TfRU9/C1Vnz0SBhksl1yK+4mF2orubI5HMirg/l7Zqvvv7OnMU=,iv:ZXdryqFcaNNXqPDWIzACG5v+QRxRtWhxUHc/hCVaDQY=,tag:CIEkhxiHHhdUu7Z0CsNsng==,type:str]
|
||||||
pgp:
|
pgp:
|
||||||
- created_at: "2023-06-10T01:03:11Z"
|
- created_at: "2023-06-10T01:03:11Z"
|
||||||
enc: |-
|
enc: |-
|
||||||
|
@ -52,4 +52,4 @@ sops:
|
||||||
-----END PGP MESSAGE-----
|
-----END PGP MESSAGE-----
|
||||||
fp: DDB4423999505236CF585F9B0560020C9C577C1B
|
fp: DDB4423999505236CF585F9B0560020C9C577C1B
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.7.3
|
version: 3.8.1
|
||||||
|
|
Loading…
Reference in a new issue