Compare commits
17 Commits
2d7feede1a
...
desktop
Author | SHA1 | Date | |
---|---|---|---|
5fd99a723d
|
|||
79aeda56be
|
|||
8f3c5505ad
|
|||
1dec31d23c
|
|||
d53cbaac6d
|
|||
3c1f4e2b0e
|
|||
573bc93834
|
|||
714e8f254b
|
|||
25387e22a8
|
|||
d1288eaa7d
|
|||
|
a1ad7fffc0 | ||
|
a7acccc49b | ||
|
fbfeefd849 | ||
|
9d9fdee9cb | ||
|
993adb372d | ||
|
becb29373d | ||
|
acb7ab379d |
@@ -42,3 +42,9 @@ export LC_ALL=en_US.UTF-8
|
||||
eval "$(direnv hook bash)"
|
||||
eval "$(starship init bash)"
|
||||
export PATH="/home/minhradz/.cargo/bin;/home/minhradz/.local/bin;/home/minhradz/go/bin;/home/minhradz/.cabal/bin:$PATH"
|
||||
|
||||
[ -f "/home/minhradz/.ghcup/env" ] && source "/home/minhradz/.ghcup/env"
|
||||
|
||||
|
||||
# Load Angular CLI autocompletion.
|
||||
source <(ng completion script)
|
||||
|
@@ -121,12 +121,12 @@ foreground = green
|
||||
# Gradient mode, only hex defined colors (and thereby ncurses mode) are supported,
|
||||
# background must also be defined in hex or remain commented out. 1 = on, 0 = off.
|
||||
# You can define as many as 8 different colors. They range from bottom to top of screen
|
||||
gradient = 1
|
||||
gradient_count = 4
|
||||
gradient_color_4 = '#a9b665'
|
||||
gradient_color_3 = '#d8a657'
|
||||
gradient_color_2 = '#e78a4e'
|
||||
gradient_color_1 = '#ea6962'
|
||||
# gradient = 1
|
||||
# gradient_count = 4
|
||||
# gradient_color_4 = '#a9b665'
|
||||
# gradient_color_3 = '#d8a657'
|
||||
# gradient_color_2 = '#e78a4e'
|
||||
# gradient_color_1 = '#ea6962'
|
||||
|
||||
|
||||
|
||||
|
79
cava/.config/cava/shaders/bar_spectrum.frag
Normal file
79
cava/.config/cava/shaders/bar_spectrum.frag
Normal file
@@ -0,0 +1,79 @@
|
||||
#version 330
|
||||
|
||||
in vec2 fragCoord;
|
||||
out vec4 fragColor;
|
||||
|
||||
// bar values. defaults to left channels first (low to high), then right (high to low).
|
||||
uniform float bars[512];
|
||||
|
||||
uniform int bars_count; // number of bars (left + right) (configurable)
|
||||
uniform int bar_width; // bar width (configurable), not used here
|
||||
uniform int bar_spacing; // space bewteen bars (configurable)
|
||||
|
||||
uniform vec3 u_resolution; // window resolution
|
||||
|
||||
//colors, configurable in cava config file (r,g,b) (0.0 - 1.0)
|
||||
uniform vec3 bg_color; // background color
|
||||
uniform vec3 fg_color; // foreground color
|
||||
|
||||
uniform int gradient_count;
|
||||
uniform vec3 gradient_colors[8]; // gradient colors
|
||||
|
||||
vec3 normalize_C(float y,vec3 col_1, vec3 col_2, float y_min, float y_max)
|
||||
{
|
||||
//create color based on fraction of this color and next color
|
||||
float yr = (y - y_min) / (y_max - y_min);
|
||||
return col_1 * (1.0 - yr) + col_2 * yr;
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
// find which bar to use based on where we are on the x axis
|
||||
float x = u_resolution.x * fragCoord.x;
|
||||
int bar = int(bars_count * fragCoord.x);
|
||||
|
||||
//calculate a bar size
|
||||
float bar_size = u_resolution.x / bars_count;
|
||||
|
||||
//the y coordinate and bar values are the same
|
||||
float y = bars[bar];
|
||||
|
||||
// make sure there is a thin line at bottom
|
||||
if (y * u_resolution.y < 1.0)
|
||||
{
|
||||
y = 1.0 / u_resolution.y;
|
||||
}
|
||||
|
||||
//draw the bar up to current height
|
||||
if (y > fragCoord.y)
|
||||
{
|
||||
//make some space between bars basen on settings
|
||||
if (x > (bar + 1) * (bar_size) - bar_spacing)
|
||||
{
|
||||
fragColor = vec4(bg_color,1.0);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gradient_count == 0)
|
||||
{
|
||||
fragColor = vec4(fg_color,1.0);
|
||||
}
|
||||
else
|
||||
{
|
||||
//find which color in the configured gradient we are at
|
||||
int color = int((gradient_count - 1) * fragCoord.y);
|
||||
|
||||
//find where on y this and next color is supposed to be
|
||||
float y_min = color / (gradient_count - 1.0);
|
||||
float y_max = (color + 1.0) / (gradient_count - 1.0);
|
||||
|
||||
//make color
|
||||
fragColor = vec4(normalize_C(fragCoord.y, gradient_colors[color], gradient_colors[color + 1], y_min, y_max), 1.0);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
fragColor = vec4(bg_color,1.0);
|
||||
}
|
||||
}
|
34
cava/.config/cava/shaders/northern_lights.frag
Normal file
34
cava/.config/cava/shaders/northern_lights.frag
Normal file
@@ -0,0 +1,34 @@
|
||||
#version 330
|
||||
|
||||
in vec2 fragCoord;
|
||||
out vec4 fragColor;
|
||||
|
||||
// bar values. defaults to left channels first (low to high), then right (high to low).
|
||||
uniform float bars[512];
|
||||
|
||||
uniform int bars_count; // number of bars (left + right) (configurable)
|
||||
|
||||
uniform vec3 u_resolution; // window resolution, not used here
|
||||
|
||||
//colors, configurable in cava config file
|
||||
uniform vec3 bg_color; // background color(r,g,b) (0.0 - 1.0), not used here
|
||||
uniform vec3 fg_color; // foreground color, not used here
|
||||
|
||||
void main()
|
||||
{
|
||||
// find which bar to use based on where we are on the x axis
|
||||
int bar = int(bars_count * fragCoord.x);
|
||||
|
||||
float bar_y = 1.0 - abs((fragCoord.y - 0.5)) * 2.0;
|
||||
float y = (bars[bar]) * bar_y;
|
||||
|
||||
float bar_x = (fragCoord.x - float(bar) / float(bars_count)) * bars_count;
|
||||
float bar_r = 1.0 - abs((bar_x - 0.5)) * 2;
|
||||
|
||||
bar_r = bar_r * bar_r * 2;
|
||||
|
||||
// set color
|
||||
fragColor.r = fg_color.x * y * bar_r;
|
||||
fragColor.g = fg_color.y * y * bar_r;
|
||||
fragColor.b = fg_color.z * y * bar_r;
|
||||
}
|
14
cava/.config/cava/shaders/pass_through.vert
Normal file
14
cava/.config/cava/shaders/pass_through.vert
Normal file
@@ -0,0 +1,14 @@
|
||||
#version 330
|
||||
|
||||
|
||||
// Input vertex data, different for all executions of this shader.
|
||||
layout(location = 0) in vec3 vertexPosition_modelspace;
|
||||
|
||||
// Output data ; will be interpolated for each fragment.
|
||||
out vec2 fragCoord;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = vec4(vertexPosition_modelspace,1);
|
||||
fragCoord = (vertexPosition_modelspace.xy+vec2(1,1))/2.0;
|
||||
}
|
@@ -5,72 +5,255 @@
|
||||
|
||||
|
||||
;; Some functionality uses this to identify you, e.g. GPG configuration, email
|
||||
;; clients, file templates and snippets. It is optional.
|
||||
(setq user-full-name "John Doe"
|
||||
user-mail-address "john@doe.com")
|
||||
;; clients, file templates and snippets.
|
||||
(setq user-full-name "minhtrannhat"
|
||||
user-mail-address "minh@minhtrannhat.com")
|
||||
|
||||
;; Doom exposes five (optional) variables for controlling fonts in Doom:
|
||||
;; Doom exposes five (optional) variables for controlling fonts in Doom. Here
|
||||
;; are the three important ones:
|
||||
;;
|
||||
;; - `doom-font' -- the primary font to use
|
||||
;; - `doom-variable-pitch-font' -- a non-monospace font (where applicable)
|
||||
;; - `doom-big-font' -- used for `doom-big-font-mode'; use this for
|
||||
;; + `doom-font'
|
||||
;; + `doom-variable-pitch-font'
|
||||
;; + `doom-big-font' -- used for `doom-big-font-mode'; use this for
|
||||
;; presentations or streaming.
|
||||
;; - `doom-unicode-font' -- for unicode glyphs
|
||||
;; - `doom-serif-font' -- for the `fixed-pitch-serif' face
|
||||
;;
|
||||
;; See 'C-h v doom-font' for documentation and more examples of what they
|
||||
;; accept. For example:
|
||||
;;
|
||||
;;(setq doom-font (font-spec :family "Fira Code" :size 12 :weight 'semi-light)
|
||||
;; doom-variable-pitch-font (font-spec :family "Fira Sans" :size 13))
|
||||
;;
|
||||
;; If you or Emacs can't find your font, use 'M-x describe-font' to look them
|
||||
;; up, `M-x eval-region' to execute elisp code, and 'M-x doom/reload-font' to
|
||||
;; refresh your font settings. If Emacs still can't find your font, it likely
|
||||
;; wasn't installed correctly. Font issues are rarely Doom issues!
|
||||
(setq doom-font (font-spec :family "JetBrainsMono Nerd Font" :size 18))
|
||||
|
||||
;; There are two ways to load a theme. Both assume the theme is installed and
|
||||
;; available. You can either set `doom-theme' or manually load a theme with the
|
||||
;; `load-theme' function. This is the default:
|
||||
(setq doom-theme 'doom-one)
|
||||
(setq doom-emoji-fallback-font-families nil)
|
||||
(setq doom-symbol-fallback-font-families nil)
|
||||
|
||||
;; This determines the style of line numbers in effect. If set to `nil', line
|
||||
;; numbers are disabled. For relative line numbers, set this to `relative'.
|
||||
(setq display-line-numbers-type t)
|
||||
(add-hook 'prog-mode-hook #'pixel-scroll-mode)
|
||||
(add-hook 'text-mode-hook #'pixel-scroll-mode)
|
||||
|
||||
(add-hook 'prog-mode-hook #'pixel-scroll-precision-mode)
|
||||
(add-hook 'text-mode-hook #'pixel-scroll-precision-mode)
|
||||
|
||||
(setq fancy-splash-image "/home/minhradz/.doom.d/marivector.png")
|
||||
|
||||
(defun synchronize-theme ()
|
||||
(let* ((light-theme 'doom-nord-light)
|
||||
(dark-theme 'doom-nord)
|
||||
(start-time-light-theme 6)
|
||||
(end-time-light-theme 16)
|
||||
(hour (string-to-number (substring (current-time-string) 11 13)))
|
||||
(next-theme (if (member hour (number-sequence start-time-light-theme end-time-light-theme))
|
||||
light-theme dark-theme)))
|
||||
(when (not (equal doom-theme next-theme))
|
||||
(setq doom-theme next-theme)
|
||||
(load-theme next-theme t))))
|
||||
|
||||
(run-with-timer 0 900 'synchronize-theme)
|
||||
|
||||
(setq doom-themes-enable-bold t ; if nil, bold is universally disabled
|
||||
doom-themes-enable-italic t) ; if nil, italics is universally disabled
|
||||
|
||||
;; If you use `org' and don't want your org files in the default location below,
|
||||
;; change `org-directory'. It must be set before org loads!
|
||||
(setq org-directory "~/org/")
|
||||
|
||||
(setq display-line-numbers-type 'relative)
|
||||
|
||||
;; Whenever you reconfigure a package, make sure to wrap your config in an
|
||||
;; `after!' block, otherwise Doom's defaults may override your settings. E.g.
|
||||
;;
|
||||
;; (after! PACKAGE
|
||||
;; (setq x y))
|
||||
;;
|
||||
;; The exceptions to this rule:
|
||||
;;
|
||||
;; - Setting file/directory variables (like `org-directory')
|
||||
;; - Setting variables which explicitly tell you to set them before their
|
||||
;; package is loaded (see 'C-h v VARIABLE' to look up their documentation).
|
||||
;; - Setting doom variables (which start with 'doom-' or '+').
|
||||
;;
|
||||
;; Here are some additional functions/macros that will help you configure Doom.
|
||||
;;
|
||||
;; - `load!' for loading external *.el files relative to this one
|
||||
;; - `use-package!' for configuring packages
|
||||
;; - `after!' for running code after a package has loaded
|
||||
;; - `add-load-path!' for adding directories to the `load-path', relative to
|
||||
;; this file. Emacs searches the `load-path' when you load packages with
|
||||
;; `require' or `use-package'.
|
||||
;; - `map!' for binding new keys
|
||||
;;
|
||||
;; To get information about any of these functions/macros, move the cursor over
|
||||
;; the highlighted symbol at press 'K' (non-evil users must press 'C-c c k').
|
||||
;; This will open documentation for it, including demos of how they are used.
|
||||
;; Alternatively, use `C-h o' to look up a symbol (functions, variables, faces,
|
||||
;; etc).
|
||||
;;
|
||||
;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how
|
||||
;; they are implemented.
|
||||
(setq ispell-alternate-dictionary "/home/minhradz/.english.dict.txt")
|
||||
|
||||
(add-hook 'spell-fu-mode-hook
|
||||
(lambda ()
|
||||
(spell-fu-dictionary-add (spell-fu-get-ispell-dictionary "en"))
|
||||
(spell-fu-dictionary-add
|
||||
(spell-fu-get-personal-dictionary "en-personal" "/home/minhradz/.aspell.en.pws"))))
|
||||
|
||||
;; Clangd lsp for C/C++ dev
|
||||
(setq lsp-clients-clangd-args '("-j=3"
|
||||
"--background-index"
|
||||
"--clang-tidy"
|
||||
"--completion-style=detailed"
|
||||
"--header-insertion=never"
|
||||
"--header-insertion-decorators=0"))
|
||||
(after! lsp-clangd (set-lsp-priority! 'clangd 2))
|
||||
|
||||
(setq lsp-auto-guess-root nil)
|
||||
|
||||
(setq projectile-enable-caching nil)
|
||||
|
||||
;; I mindlessly press ESC, so stop me from wreaking havoc
|
||||
(global-set-key (kbd "<escape>") 'keyboard-escape-quit)
|
||||
|
||||
;; update the git gutter
|
||||
(custom-set-variables
|
||||
'(git-gutter:update-interval 0.02))
|
||||
|
||||
(defun smerge-repeatedly ()
|
||||
"Perform smerge actions again and again"
|
||||
(interactive)
|
||||
(smerge-mode 1)
|
||||
(smerge-transient))
|
||||
(after! transient
|
||||
(transient-define-prefix smerge-transient ()
|
||||
[["Move"
|
||||
("n" "next" (lambda () (interactive) (ignore-errors (smerge-next)) (smerge-repeatedly)))
|
||||
("p" "previous" (lambda () (interactive) (ignore-errors (smerge-prev)) (smerge-repeatedly)))]
|
||||
["Keep"
|
||||
("b" "base" (lambda () (interactive) (ignore-errors (smerge-keep-base)) (smerge-repeatedly)))
|
||||
("u" "upper" (lambda () (interactive) (ignore-errors (smerge-keep-upper)) (smerge-repeatedly)))
|
||||
("l" "lower" (lambda () (interactive) (ignore-errors (smerge-keep-lower)) (smerge-repeatedly)))
|
||||
("a" "all" (lambda () (interactive) (ignore-errors (smerge-keep-all)) (smerge-repeatedly)))
|
||||
("RET" "current" (lambda () (interactive) (ignore-errors (smerge-keep-current)) (smerge-repeatedly)))]
|
||||
["Diff"
|
||||
("<" "upper/base" (lambda () (interactive) (ignore-errors (smerge-diff-base-upper)) (smerge-repeatedly)))
|
||||
("=" "upper/lower" (lambda () (interactive) (ignore-errors (smerge-diff-upper-lower)) (smerge-repeatedly)))
|
||||
(">" "base/lower" (lambda () (interactive) (ignore-errors (smerge-diff-base-lower)) (smerge-repeatedly)))
|
||||
("R" "refine" (lambda () (interactive) (ignore-errors (smerge-refine)) (smerge-repeatedly)))
|
||||
("E" "ediff" (lambda () (interactive) (ignore-errors (smerge-ediff)) (smerge-repeatedly)))]
|
||||
["Other"
|
||||
("c" "combine" (lambda () (interactive) (ignore-errors (smerge-combine-with-next)) (smerge-repeatedly)))
|
||||
("r" "resolve" (lambda () (interactive) (ignore-errors (smerge-resolve)) (smerge-repeatedly)))
|
||||
("k" "kill current" (lambda () (interactive) (ignore-errors (smerge-kill-current)) (smerge-repeatedly)))
|
||||
("q" "quit" (lambda () (interactive) (smerge-auto-leave)))]]))
|
||||
|
||||
;; (use-package rust-mode
|
||||
;; :init
|
||||
;; (setq rust-mode-treesitter-derive t))
|
||||
|
||||
;; (use-package treesit-auto
|
||||
;; :config
|
||||
;; (global-treesit-auto-mode))
|
||||
|
||||
(setq elcord-use-major-mode-as-main-icon t)
|
||||
|
||||
;; gpg
|
||||
(setq epg-pinentry-mode 'loopback)
|
||||
|
||||
;; both jk and kj now works
|
||||
(setq evil-escape-unordered-key-sequence 't)
|
||||
|
||||
;; org org
|
||||
(setq +latex-viewers '(zathura))
|
||||
|
||||
;; auto render latex in org mode
|
||||
;;(add-hook 'org-mode-hook 'org-fragtog-mode)
|
||||
|
||||
;; zsh zsh
|
||||
(setq vterm-shell 'zsh)
|
||||
|
||||
(defun doom-modeline-conditional-buffer-encoding ()
|
||||
"We expect the encoding to be LF UTF-8, so only show the modeline when this is not the case"
|
||||
(setq-local doom-modeline-buffer-encoding
|
||||
(unless (and (memq (plist-get (coding-system-plist buffer-file-coding-system) :category)
|
||||
'(coding-category-undecided coding-category-utf-8))
|
||||
(not (memq (coding-system-eol-type buffer-file-coding-system) '(1 2))))
|
||||
t)))
|
||||
|
||||
(add-hook 'after-change-major-mode-hook #'doom-modeline-conditional-buffer-encoding)
|
||||
|
||||
(after! company
|
||||
(setq company-idle-delay 1)
|
||||
(add-hook 'evil-normal-state-entry-hook #'company-abort)) ;; make aborting less annoying.
|
||||
|
||||
(setq-default history-length 1000)
|
||||
(setq-default prescient-history-length 1000)
|
||||
|
||||
;; Whether display the icon for `major-mode'. It respects `doom-modeline-icon'.
|
||||
(setq doom-modeline-major-mode-icon t)
|
||||
|
||||
;; Whether display the colorful icon for `major-mode'.
|
||||
;; It respects `all-the-icons-color-icons'.
|
||||
(setq doom-modeline-major-mode-color-icon t)
|
||||
|
||||
;; Whether display the icon for the buffer state. It respects `doom-modeline-icon'.
|
||||
(setq doom-modeline-buffer-state-icon t)
|
||||
|
||||
;; Whether display the modification icon for the buffer.
|
||||
;; It respects `doom-modeline-icon' and `doom-modeline-buffer-state-icon'.
|
||||
(setq doom-modeline-buffer-modification-icon t)
|
||||
|
||||
;; Whether to use unicode as a fallback (instead of ASCII) when not using icons.
|
||||
(setq doom-modeline-unicode-fallback nil)
|
||||
|
||||
;; Whether display the minor modes in the mode-line.
|
||||
(setq doom-modeline-minor-modes nil)
|
||||
|
||||
(use-package! websocket
|
||||
:after org-roam)
|
||||
|
||||
(use-package! org-roam-ui
|
||||
:after org-roam ;; or :after org
|
||||
;; normally we'd recommend hooking orui after org-roam, but since org-roam does not have
|
||||
;; a hookable mode anymore, you're advised to pick something yourself
|
||||
;; if you don't care about startup time, use
|
||||
;; :hook (after-init . org-roam-ui-mode)
|
||||
:config
|
||||
(setq org-roam-ui-sync-theme t
|
||||
org-roam-ui-follow t
|
||||
org-roam-ui-update-on-save t
|
||||
org-roam-ui-open-on-start t))
|
||||
|
||||
(setq org-roam-dailies-directory "daily/")
|
||||
|
||||
(setq org-roam-dailies-capture-templates
|
||||
'(("d" "default" entry
|
||||
"* %?"
|
||||
:target (file+head "%<%Y-%m-%d>.org"
|
||||
"#+title: %<%Y-%m-%d>\n* What I did today\n* What was on my mind"))))
|
||||
|
||||
(defun org-roam-rg-search ()
|
||||
"Search org-roam directory using consult-ripgrep. With live-preview."
|
||||
(interactive)
|
||||
(let ((consult-ripgrep-command "rg --null --ignore-case --type org --line-buffered --color=always --max-columns=500 --no-heading --line-number . -e ARG OPTS"))
|
||||
(consult-ripgrep org-roam-directory)))
|
||||
|
||||
(map! :leader
|
||||
:desc "Search org-roam with consult-ripgrep"
|
||||
"n r F" #'org-roam-rg-search)
|
||||
|
||||
;; (setq org-roam-node-display-template
|
||||
;; #("${doom-hierarchy:20} ${doom-type:12} ${doom-tags:42}" 20 35
|
||||
;; (face font-lock-keyword-face)
|
||||
;; 36 51
|
||||
;; (face org-tag))
|
||||
;; )
|
||||
(set-file-template! "/roam/.+\\.org$" 'org-mode :ignore t)
|
||||
|
||||
(setq avy-all-windows 't)
|
||||
|
||||
;; Disables lsp-signature-auto-activate
|
||||
;; Looking at you, rustic mode
|
||||
(after! lsp-mode
|
||||
(setq lsp-signature-auto-activate nil))
|
||||
|
||||
;; this never worked lol
|
||||
(setq lsp-treemacs-sync-mode 1)
|
||||
(setq treemacs-project-follow-mode 1)
|
||||
|
||||
;; bitmap very funni
|
||||
(setq highlight-indent-guides-method 'bitmap)
|
||||
|
||||
;; magit delta looks so good
|
||||
;; (add-hook 'magit-mode-hook (lambda () (magit-delta-mode +1)))
|
||||
|
||||
;; keybind to disable search highlighting (like :set noh)
|
||||
(map! :leader
|
||||
:desc "Clear search highlight"
|
||||
"s c"
|
||||
#'evil-ex-nohighlight)
|
||||
|
||||
;; Lispys stuffs
|
||||
(setq clojure-indent-style :always-align)
|
||||
(add-hook 'lisp-mode-hook #'evil-cleverparens-mode)
|
||||
(add-hook 'clojure-mode-hook #'evil-cleverparens-mode)
|
||||
|
||||
(autoload 'enable-paredit-mode "paredit"
|
||||
"Turn on pseudo-structural editing of Lisp code."
|
||||
t)
|
||||
(add-hook 'emacs-lisp-mode-hook 'enable-paredit-mode)
|
||||
(add-hook 'lisp-mode-hook 'enable-paredit-mode)
|
||||
(add-hook 'lisp-interaction-mode-hook 'enable-paredit-mode)
|
||||
(add-hook 'clojure-mode-hook 'enable-paredit-mode)
|
||||
(add-hook 'scheme-mode-hook 'enable-paredit-mode)
|
||||
|
||||
(defun delete-file-and-buffer ()
|
||||
"Kill the current buffer and deletes the file it is visiting."
|
||||
(interactive)
|
||||
(let ((filename (buffer-file-name)))
|
||||
(if filename
|
||||
(if (y-or-n-p (concat "Do you really want to delete file " filename " ?"))
|
||||
(progn
|
||||
(delete-file filename)
|
||||
(message "Deleted file %s." filename)
|
||||
(kill-buffer)))
|
||||
(message "Not a file visiting buffer!"))))
|
||||
|
19
doom-emacs/.doom.d/custom.el
Normal file
19
doom-emacs/.doom.d/custom.el
Normal file
@@ -0,0 +1,19 @@
|
||||
(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.
|
||||
'(elcord-display-buffer-details t)
|
||||
'(git-gutter:update-interval 0.02)
|
||||
'(magit-todos-insert-after '(bottom) nil nil "Changed by setter of obsolete option `magit-todos-insert-at'")
|
||||
'(smtpmail-smtp-server "mail.minhtrannhat.com")
|
||||
'(smtpmail-smtp-service 587)
|
||||
'(warning-suppress-types '(((yasnippet zombie)) (defvaralias) (org-element-cache))))
|
||||
(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.
|
||||
'(blamer-face ((t :foreground "#7a88cf" :background nil :height 110 :italic t)))
|
||||
'(ts-fold-replacement-face ((t (:foreground nil :box nil :inherit font-lock-comment-face :weight light)))))
|
||||
(put 'customize-save-customized 'disabled nil)
|
@@ -1,12 +1,9 @@
|
||||
;;; init.el -*- lexical-binding: t; -*-
|
||||
|
||||
;; This file controls what Doom modules are enabled and what order they load
|
||||
;; in. Remember to run 'doom sync' after modifying it!
|
||||
|
||||
;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's
|
||||
;; documentation. There you'll find a link to Doom's Module Index where all
|
||||
;; of our modules are listed, including what flags they support.
|
||||
|
||||
;; documentation. There you'll find a "Module Index" link where you'll find
|
||||
;; a comprehensive list of Doom's modules and what flags they support.
|
||||
;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or
|
||||
;; 'C-c c k' for non-vim users) to view its documentation. This works on
|
||||
;; flags as well (those symbols that start with a plus).
|
||||
@@ -14,178 +11,176 @@
|
||||
;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its
|
||||
;; directory (for easy access to its source code).
|
||||
|
||||
;; Doom no longer native compile ahead of time so we have to hack around this smh
|
||||
(setq native-comp-jit-compilation nil)
|
||||
(after! (doom-packages straight)
|
||||
(setq straight--native-comp-available t))
|
||||
|
||||
(doom! :input
|
||||
;;chinese
|
||||
;;japanese
|
||||
;;layout ; auie,ctsrnm is the superior home row
|
||||
|
||||
:completion
|
||||
company ; the ultimate code completion backend
|
||||
;;(company +tng) ; the ultimate code completion backend
|
||||
(corfu +orderless)
|
||||
;;helm ; the *other* search engine for love and life
|
||||
;;ido ; the other *other* search engine...
|
||||
;;ivy ; a search engine for love and life
|
||||
vertico ; the search engine of the future
|
||||
|
||||
(ivy +fuzzy +icons) ; a search engine for love and life
|
||||
;;vertico ; the search engine of the future
|
||||
:ui
|
||||
;;deft ; notational velocity for Emacs
|
||||
doom ; what makes DOOM look the way it does
|
||||
doom-dashboard ; a nifty splash screen for Emacs
|
||||
doom-quit ; DOOM quit-message prompts when you quit Emacs
|
||||
;;(emoji +unicode) ; 🙂
|
||||
(emoji +unicode) ; 🙂
|
||||
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
|
||||
;;hydra
|
||||
;;indent-guides ; highlighted indent columns
|
||||
;;ligatures ; ligatures and symbols to make your code pretty again
|
||||
ligatures ; ligatures and symbols to make your code pretty again
|
||||
;;minimap ; show a map of the code on the side
|
||||
modeline ; snazzy, Atom-inspired modeline, plus API
|
||||
(modeline +light) ; snazzy, Atom-inspired modeline, plus API
|
||||
;;nav-flash ; blink cursor line after big motions
|
||||
;;neotree ; a project drawer, like NERDTree for vim
|
||||
ophints ; highlight the region an operation acts on
|
||||
(popup +defaults) ; tame sudden yet inevitable temporary windows
|
||||
(popup +all +defaults) ; tame sudden yet inevitable temporary windows
|
||||
;;tabs ; a tab bar for Emacs
|
||||
;;treemacs ; a project drawer, like neotree but cooler
|
||||
;;unicode ; extended unicode support for various languages
|
||||
vc-gutter ; vcs diff in the fringe
|
||||
(treemacs +lsp) ; a project drawer, like neotree but cooler
|
||||
unicode ; extended unicode support for various languages
|
||||
(vc-gutter +pretty) ; vcs diff in the fringe
|
||||
vi-tilde-fringe ; fringe tildes to mark beyond EOB
|
||||
;;window-select ; visually switch windows
|
||||
(window-select +numbers) ; visually switch windows
|
||||
workspaces ; tab emulation, persistence & separate workspaces
|
||||
;;zen ; distraction-free coding or writing
|
||||
|
||||
zen ; distraction-free coding or writing
|
||||
:editor
|
||||
(evil +everywhere); come to the dark side, we have cookies
|
||||
file-templates ; auto-snippets for empty files
|
||||
fold ; (nigh) universal code folding
|
||||
;;(format +onsave) ; automated prettiness
|
||||
(format +onsave) ; automated prettiness
|
||||
;;god ; run Emacs commands without modifier keys
|
||||
;;lispy ; vim for lisp, for people who don't like vim
|
||||
;;multiple-cursors ; editing in many places at once
|
||||
;; lispy ; vim for lisp, for people who don't like vim
|
||||
multiple-cursors ; editing in many places at once
|
||||
;;objed ; text object editing for the innocent
|
||||
;;parinfer ; turn lisp into python, sort of
|
||||
;;rotate-text ; cycle region at point between text candidates
|
||||
snippets ; my elves. They type so I don't have to
|
||||
;;word-wrap ; soft wrapping with language-aware indent
|
||||
|
||||
:emacs
|
||||
dired ; making dired pretty [functional]
|
||||
(dired +icons +ranger) ; making dired pretty [functional]
|
||||
electric ; smarter, keyword-based electric-indent
|
||||
;;ibuffer ; interactive buffer management
|
||||
(ibuffer +icons) ; interactive buffer management
|
||||
undo ; persistent, smarter undo for your inevitable mistakes
|
||||
vc ; version-control and Emacs, sitting in a tree
|
||||
|
||||
:term
|
||||
;;eshell ; the elisp shell that works everywhere
|
||||
eshell ; the elisp shell that works everywhere
|
||||
;;shell ; simple shell REPL for Emacs
|
||||
;;term ; basic terminal emulator for Emacs
|
||||
;;vterm ; the best terminal emulation in Emacs
|
||||
|
||||
vterm ; the best terminal emulation in Emacs
|
||||
:checkers
|
||||
syntax ; tasing you for every semicolon you forget
|
||||
;;(spell +flyspell) ; tasing you for misspelling mispelling
|
||||
(spell +everywhere +aspell); tasing you for misspelling mispelling
|
||||
;;grammar ; tasing grammar mistake every you make
|
||||
|
||||
:tools
|
||||
;;ansible
|
||||
;;biblio ; Writes a PhD for you (citation needed)
|
||||
;;debugger ; FIXME stepping through code, to help you add bugs
|
||||
;;direnv
|
||||
;;docker
|
||||
;;editorconfig ; let someone else argue about tabs vs spaces
|
||||
;;ein ; tame Jupyter notebooks with emacs
|
||||
tree-sitter
|
||||
direnv
|
||||
(docker +lsp)
|
||||
editorconfig ; let someone else argue about tabs vs spaces
|
||||
ein ; tame Jupyter notebooks with emacs
|
||||
(eval +overlay) ; run code, run (also, repls)
|
||||
;;gist ; interacting with github gists
|
||||
lookup ; navigate your code and its documentation
|
||||
;;lsp ; M-x vscode
|
||||
magit ; a git porcelain for Emacs
|
||||
;;make ; run make tasks from Emacs
|
||||
;;pass ; password manager for nerds
|
||||
;;pdf ; pdf enhancements
|
||||
(lookup +dictionary + docsets +offline) ; navigate your code and its documentation
|
||||
lsp ; M-x vscode
|
||||
(magit +forge) ; a git porcelain for Emacs
|
||||
make ; run make tasks from Emacs
|
||||
(pass +auth) ; password manager for nerds
|
||||
pdf ; pdf enhancements
|
||||
;;prodigy ; FIXME managing external services & code builders
|
||||
;;rgb ; creating color strings
|
||||
;;taskrunner ; taskrunner for all your projects
|
||||
;;terraform ; infrastructure as code
|
||||
;;tmux ; an API for interacting with tmux
|
||||
;; taskrunner ; taskrunner for all your projects
|
||||
terraform ; infrastructure as code
|
||||
tmux ; an API for interacting with tmux
|
||||
;;upload ; map local to remote projects via ssh/ftp
|
||||
|
||||
:os
|
||||
(:if IS-MAC macos) ; improve compatibility with macOS
|
||||
;;tty ; improve the terminal Emacs experience
|
||||
|
||||
;;(:if IS-MAC macos) ; improve compatibility with macOS
|
||||
tty ; improve the terminal Emacs experience
|
||||
:lang
|
||||
;;agda ; types of types of types of types...
|
||||
;;beancount ; mind the GAAP
|
||||
;;(cc +lsp) ; C > C++ == 1
|
||||
;;clojure ; java with a lisp
|
||||
;;common-lisp ; if you've seen one lisp, you've seen them all
|
||||
(cc +lsp) ; C > C++ == 1
|
||||
(clojure +lsp +tree-sitter) ; java with a lisp
|
||||
common-lisp ; if you've seen one lisp, you've seen them all
|
||||
;;coq ; proofs-as-programs
|
||||
;;crystal ; ruby at the speed of c
|
||||
;;csharp ; unity, .NET, and mono shenanigans
|
||||
csharp ; unity, .NET, and mono shenanigans
|
||||
;;data ; config/data formats
|
||||
;;(dart +flutter) ; paint ui and not much else
|
||||
;;dhall
|
||||
;;elixir ; erlang done right
|
||||
(elixir +lsp +tree-sitter) ; erlang done right
|
||||
;;elm ; care for a cup of TEA?
|
||||
emacs-lisp ; drown in parentheses
|
||||
;;erlang ; an elegant language for a more civilized age
|
||||
(erlang +lsp) ; an elegant language for a more civilized age
|
||||
;;ess ; emacs speaks statistics
|
||||
;;factor
|
||||
;;faust ; dsp, but you get to keep your soul
|
||||
;;fortran ; in FORTRAN, GOD is REAL (unless declared INTEGER)
|
||||
;;fsharp ; ML stands for Microsoft's Language
|
||||
;;fstar ; (dependent) types and (monadic) effects and Z3
|
||||
;;gdscript ; the language you waited for
|
||||
;;(go +lsp) ; the hipster dialect
|
||||
;;(haskell +lsp) ; a language that's lazier than I am
|
||||
(go +lsp) ; the hipster dialect
|
||||
(graphql +lsp) ; Give queries a REST
|
||||
(haskell +lsp) ; a language that's lazier than I am
|
||||
;;hy ; readability of scheme w/ speed of python
|
||||
;;idris ; a language you can depend on
|
||||
;;json ; At least it ain't XML
|
||||
;;(java +lsp) ; the poster child for carpal tunnel syndrome
|
||||
;;javascript ; all(hope(abandon(ye(who(enter(here))))))
|
||||
;;julia ; a better, faster MATLAB
|
||||
(json +lsp) ; At least it ain't XML
|
||||
(java +lsp) ; the poster child for carpal tunnel syndrome
|
||||
(javascript +lsp +tree-sitter) ; all(hope(abandon(ye(who(enter(here))))))
|
||||
;;(julia +lsp) ; a better, faster MATLAB
|
||||
;;kotlin ; a better, slicker Java(Script)
|
||||
;;latex ; writing papers in Emacs has never been so fun
|
||||
latex ; writing papers in Emacs has never been so fun
|
||||
;;lean ; for folks with too much to prove
|
||||
;;ledger ; be audit you can be
|
||||
;;lua ; one-based indices? one-based indices
|
||||
ledger ; be audit you can be
|
||||
lua ; one-based indices? one-based indices
|
||||
markdown ; writing docs for people to ignore
|
||||
;;nim ; python + lisp at the speed of c
|
||||
;;nix ; I hereby declare "nix geht mehr!"
|
||||
;;ocaml ; an objective camel
|
||||
org ; organize your plain life in plain text
|
||||
;;(org +roam2 +pretty) ; organize your plain life in plain text
|
||||
(org +roam2) ; organize your plain life in plain text
|
||||
;;php ; perl's insecure younger brother
|
||||
;;plantuml ; diagrams for confusing people more
|
||||
;;purescript ; javascript, but functional
|
||||
;;python ; beautiful is better than ugly
|
||||
(python +lsp +pyright +pyenv +poetry +treesitter)
|
||||
;;qt ; the 'cutest' gui framework ever
|
||||
;;racket ; a DSL for DSLs
|
||||
;;raku ; the artist formerly known as perl6
|
||||
;;rest ; Emacs as a REST client
|
||||
rest ; Emacs as a REST client
|
||||
;;rst ; ReST in peace
|
||||
;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
|
||||
;;rust ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
|
||||
;;scala ; java, but good
|
||||
;;(scheme +guile) ; a fully conniving family of lisps
|
||||
sh ; she sells {ba,z,fi}sh shells on the C xor
|
||||
(rust +lsp +treesitter) ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
|
||||
scala ; java, but good
|
||||
;;(scheme +guile +mit +racket) ; a fully conniving family of lisps
|
||||
(sh +fish) ; she sells {ba,z,fi}sh shells on the C xor
|
||||
;;sml
|
||||
;;solidity ; do you need a blockchain? No.
|
||||
;;swift ; who asked for emoji variables?
|
||||
;;terra ; Earth and Moon in alignment for performance.
|
||||
;;web ; the tubes
|
||||
;;yaml ; JSON, but readable
|
||||
;;zig ; C, but simpler
|
||||
|
||||
(web +lsp) ; the tubes
|
||||
yaml ; JSON, but readable
|
||||
zig ; C, but simpler
|
||||
:email
|
||||
;;(mu4e +org +gmail)
|
||||
;; (mu4e)
|
||||
;;notmuch
|
||||
;;(wanderlust +gmail)
|
||||
|
||||
:app
|
||||
;;calendar
|
||||
;;emms
|
||||
;;everywhere ; *leave* Emacs!? You must be joking
|
||||
;;irc ; how neckbeards socialize
|
||||
;;(rss +org) ; emacs as an RSS reader
|
||||
|
||||
(rss +org) ; emacs as an RSS reader
|
||||
;;twitter ; twitter client https://twitter.com/vnought
|
||||
|
||||
:config
|
||||
;;literate
|
||||
(default +bindings +smartparens))
|
||||
(default +bindings +smartparens)
|
||||
)
|
||||
|
BIN
doom-emacs/.doom.d/marivector.png
Normal file
BIN
doom-emacs/.doom.d/marivector.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 67 KiB |
@@ -7,44 +7,59 @@
|
||||
|
||||
|
||||
;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror:
|
||||
;(package! some-package)
|
||||
;(package! some-package)
|
||||
|
||||
;; To install a package directly from a remote git repo, you must specify a
|
||||
;; `:recipe'. You'll find documentation on what `:recipe' accepts here:
|
||||
;; https://github.com/raxod502/straight.el#the-recipe-format
|
||||
;(package! another-package
|
||||
; :recipe (:host github :repo "username/repo"))
|
||||
;(package! another-package
|
||||
; :recipe (:host github :repo "username/repo"))
|
||||
|
||||
;; If the package you are trying to install does not contain a PACKAGENAME.el
|
||||
;; file, or is located in a subdirectory of the repo, you'll need to specify
|
||||
;; `:files' in the `:recipe':
|
||||
;(package! this-package
|
||||
; :recipe (:host github :repo "username/repo"
|
||||
; :files ("some-file.el" "src/lisp/*.el")))
|
||||
;(package! this-package
|
||||
; :recipe (:host github :repo "username/repo"
|
||||
; :files ("some-file.el" "src/lisp/*.el")))
|
||||
|
||||
;; If you'd like to disable a package included with Doom, you can do so here
|
||||
;; with the `:disable' property:
|
||||
;(package! builtin-package :disable t)
|
||||
;(package! builtin-package :disable t)
|
||||
|
||||
;; You can override the recipe of a built in package without having to specify
|
||||
;; all the properties for `:recipe'. These will inherit the rest of its recipe
|
||||
;; from Doom or MELPA/ELPA/Emacsmirror:
|
||||
;(package! builtin-package :recipe (:nonrecursive t))
|
||||
;(package! builtin-package-2 :recipe (:repo "myfork/package"))
|
||||
;(package! builtin-package :recipe (:nonrecursive t))
|
||||
;(package! builtin-package-2 :recipe (:repo "myfork/package"))
|
||||
|
||||
;; Specify a `:branch' to install a package from a particular branch or tag.
|
||||
;; This is required for some packages whose default branch isn't 'master' (which
|
||||
;; our package manager can't deal with; see raxod502/straight.el#279)
|
||||
;(package! builtin-package :recipe (:branch "develop"))
|
||||
;(package! builtin-package :recipe (:branch "develop"))
|
||||
|
||||
;; Use `:pin' to specify a particular commit to install.
|
||||
;(package! builtin-package :pin "1a2b3c4d5e")
|
||||
;(package! builtin-package :pin "1a2b3c4d5e")
|
||||
|
||||
|
||||
;; Doom's packages are pinned to a specific commit and updated from release to
|
||||
;; release. The `unpin!' macro allows you to unpin single packages...
|
||||
;(unpin! pinned-package)
|
||||
;(unpin! pinned-package)
|
||||
;; ...or multiple packages
|
||||
;(unpin! pinned-package another-pinned-package)
|
||||
;(unpin! pinned-package another-pinned-package)
|
||||
;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
|
||||
;(unpin! t)
|
||||
;(unpin! t)
|
||||
|
||||
;; evil parens
|
||||
(package! evil-cleverparens)
|
||||
|
||||
;;discordo
|
||||
(package! elcord :recipe (:host github :repo "minhtrannhat/elcord"))
|
||||
|
||||
;; rusty
|
||||
(unpin! rust-mode)
|
||||
(unpin! rustic)
|
||||
|
||||
;; orgy
|
||||
(unpin! org-roam)
|
||||
(package! websocket)
|
||||
(package! org-roam-ui :recipe (:host github :repo "org-roam/org-roam-ui" :files ("*.el" "out")))
|
||||
|
163
fish/.config/fish/completions/bun.fish
Normal file
163
fish/.config/fish/completions/bun.fish
Normal file
@@ -0,0 +1,163 @@
|
||||
# This is terribly complicated
|
||||
# It's because:
|
||||
# 1. bun run has to have dynamic completions
|
||||
# 2. there are global options
|
||||
# 3. bun {install add remove} gets special options
|
||||
# 4. I don't know how to write fish completions well
|
||||
# Contributions very welcome!!
|
||||
|
||||
function __fish__get_bun_bins
|
||||
string split ' ' (bun getcompletes b)
|
||||
end
|
||||
|
||||
function __fish__get_bun_scripts
|
||||
set -lx SHELL bash
|
||||
set -lx MAX_DESCRIPTION_LEN 40
|
||||
string trim (string split '\n' (string split '\t' (bun getcompletes z)))
|
||||
end
|
||||
|
||||
function __fish__get_bun_packages
|
||||
if test (commandline -ct) != ""
|
||||
set -lx SHELL fish
|
||||
string split ' ' (bun getcompletes a (commandline -ct))
|
||||
end
|
||||
end
|
||||
|
||||
function __history_completions
|
||||
set -l tokens (commandline --current-process --tokenize)
|
||||
history --prefix (commandline) | string replace -r \^$tokens[1]\\s\* "" | string replace -r \^$tokens[2]\\s\* "" | string split ' '
|
||||
end
|
||||
|
||||
function __fish__get_bun_bun_js_files
|
||||
string split ' ' (bun getcompletes j)
|
||||
end
|
||||
|
||||
function bun_fish_is_nth_token --description 'Test if current token is on Nth place' --argument-names n
|
||||
set -l tokens (commandline -poc)
|
||||
set -l tokens (string replace -r --filter '^([^-].*)' '$1' -- $tokens)
|
||||
test (count $tokens) -eq "$n"
|
||||
end
|
||||
|
||||
function __bun_command_count --argument-names n
|
||||
set -l cmds (commandline -poc)
|
||||
|
||||
test (count cmds) -eq "$n"
|
||||
end
|
||||
|
||||
function __bun_last_cmd --argument-names n
|
||||
set -l cmds (commandline -poc)
|
||||
|
||||
test "(cmds[-1])" = "$n"
|
||||
end
|
||||
|
||||
set -l bun_install_boolean_flags yarn production optional development no-save dry-run force no-cache silent verbose global
|
||||
set -l bun_install_boolean_flags_descriptions "Write a yarn.lock file (yarn v1)" "Don't install devDependencies" "Add dependency to optionalDependencies" "Add dependency to devDependencies" "Don't install devDependencies" "Don't install anything" "Always request the latest versions from the registry & reinstall all dependenices" "Ignore manifest cache entirely" "Don't output anything" "Excessively verbose logging" "Use global folder"
|
||||
|
||||
set -l bun_builtin_cmds dev create help bun upgrade discord run install remove add init link unlink pm x
|
||||
set -l bun_builtin_cmds_without_run dev create help bun upgrade discord install remove add init pm x
|
||||
set -l bun_builtin_cmds_without_bun dev create help upgrade run discord install remove add init pm x
|
||||
set -l bun_builtin_cmds_without_create dev help bun upgrade discord run install remove add init pm x
|
||||
set -l bun_builtin_cmds_without_install create dev help bun upgrade discord run remove add init pm x
|
||||
set -l bun_builtin_cmds_without_remove create dev help bun upgrade discord run install add init pm x
|
||||
set -l bun_builtin_cmds_without_add create dev help bun upgrade discord run remove install init pm x
|
||||
set -l bun_builtin_cmds_without_pm create dev help bun upgrade discord run init pm x
|
||||
|
||||
# clear
|
||||
complete -e -c bun
|
||||
|
||||
complete -c bun \
|
||||
-n "not __fish_seen_subcommand_from $bun_builtin_cmds_without_run; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); and __fish_use_subcommand" -a '(__fish__get_bun_scripts)' -d 'script'
|
||||
complete -c bun \
|
||||
-n "not __fish_seen_subcommand_from $bun_builtin_cmds_without_run; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); and __fish_seen_subcommand_from run" -a '(__fish__get_bun_bins)' -d 'package bin'
|
||||
complete -c bun \
|
||||
-n "not __fish_seen_subcommand_from $bun_builtin_cmds_without_run; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); and __fish_seen_subcommand_from run" -a '(__fish__get_bun_scripts)' -d 'script'
|
||||
complete -c bun \
|
||||
-n "not __fish_seen_subcommand_from $bun_builtin_cmds_without_run; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); and __fish_seen_subcommand_from run" -a '(__fish__get_bun_bun_js_files)' -d 'Bun.js'
|
||||
complete -c bun \
|
||||
-n "bun_fish_is_nth_token 1; and not __fish_seen_subcommand_from $bun_builtin_cmds; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) and __fish_use_subcommand" -a 'run' -f -d 'Run a script or bin'
|
||||
complete -c bun \
|
||||
-n "not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) install remove add;" --no-files -s 'u' -l 'origin' -r -d 'Server URL. Rewrites import paths'
|
||||
complete -c bun \
|
||||
-n "not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) install remove add;" --no-files -s 'p' -l 'port' -r -d 'Port number to start server from'
|
||||
complete -c bun \
|
||||
-n "not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) install remove add;" --no-files -s 'd' -l 'define' -r -d 'Substitute K:V while parsing, e.g. --define process.env.NODE_ENV:\"development\"'
|
||||
complete -c bun \
|
||||
-n "not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) install remove add;" --no-files -s 'e' -l 'external' -r -d 'Exclude module from transpilation (can use * wildcards). ex: -e react'
|
||||
complete -c bun \
|
||||
-n "not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) install remove add;" --no-files -l 'use' -r -d 'Use a framework (ex: next)'
|
||||
complete -c bun \
|
||||
-n "not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) install remove add;" --no-files -l 'hot' -r -d 'Enable hot reloading in Bun\'s JavaScript runtime'
|
||||
|
||||
complete -c bun \
|
||||
-n "bun_fish_is_nth_token 1; and not __fish_seen_subcommand_from $bun_builtin_cmds; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) and __fish_use_subcommand" -a 'dev' -d 'Start dev server'
|
||||
complete -c bun \
|
||||
-n "bun_fish_is_nth_token 1; and not __fish_seen_subcommand_from $bun_builtin_cmds; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) and __bun_command_count 1 and __fish_use_subcommand" -a 'create' -f -d 'Create a new project from a template'
|
||||
|
||||
complete -c bun \
|
||||
-n "not __fish_seen_subcommand_from $bun_builtin_cmds_without_create next react; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); and __fish_seen_subcommand_from create;" -a 'next' -d 'new Next.js project'
|
||||
|
||||
complete -c bun \
|
||||
-n "not __fish_seen_subcommand_from $bun_builtin_cmds_without_create next react; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); and __fish_seen_subcommand_from create;" -a 'react' -d 'new React project'
|
||||
|
||||
complete -c bun \
|
||||
-n "not __fish_seen_subcommand_from $bun_builtin_cmds; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); and __fish_use_subcommand" -a 'upgrade' -d 'Upgrade bun to the latest version' -x
|
||||
complete -c bun \
|
||||
-n "not __fish_seen_subcommand_from $bun_builtin_cmds; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); and __fish_use_subcommand" -a '--help' -d 'See all commands and flags' -x
|
||||
|
||||
complete -c bun \
|
||||
-n "not __fish_seen_subcommand_from $bun_builtin_cmds; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); and __fish_use_subcommand" -l "version" -s "v" -a '--version' -d 'Bun\'s version' -x
|
||||
complete -c bun \
|
||||
-n "not __fish_seen_subcommand_from $bun_builtin_cmds; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); and __fish_use_subcommand" -a 'discord' -d 'Open bun\'s Discord server' -x
|
||||
|
||||
|
||||
complete -c bun \
|
||||
-n "not __fish_seen_subcommand_from $bun_builtin_cmds_without_bun; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); __fish_use_subcommand" -a 'bun' -d 'Generate a new bundle'
|
||||
|
||||
|
||||
complete -c bun \
|
||||
-n "not __fish_seen_subcommand_from $bun_builtin_cmds_without_bun; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); and __fish_seen_subcommand_from bun" -F -d 'Bundle this'
|
||||
|
||||
complete -c bun \
|
||||
-n "not __fish_seen_subcommand_from $bun_builtin_cmds_without_create; and not __fish_seen_subcommand_from (__fish__get_bun_bins); and not __fish_seen_subcommand_from (__fish__get_bun_scripts); and __fish_seen_subcommand_from react; or __fish_seen_subcommand_from next" -F -d "Create in directory"
|
||||
|
||||
|
||||
complete -c bun \
|
||||
-n "bun_fish_is_nth_token 1; and not __fish_seen_subcommand_from $bun_builtin_cmds; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) and __bun_command_count 1 and __fish_use_subcommand" -a 'init' -F -d 'Start an empty Bun project'
|
||||
|
||||
complete -c bun \
|
||||
-n "bun_fish_is_nth_token 1; and not __fish_seen_subcommand_from $bun_builtin_cmds; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) and __bun_command_count 1 and __fish_use_subcommand" -a 'install' -f -d 'Install packages from package.json'
|
||||
|
||||
complete -c bun \
|
||||
-n "bun_fish_is_nth_token 1; and not __fish_seen_subcommand_from $bun_builtin_cmds; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) and __bun_command_count 1 and __fish_use_subcommand" -a 'add' -F -d 'Add a package to package.json'
|
||||
|
||||
complete -c bun \
|
||||
-n "bun_fish_is_nth_token 1; and not __fish_seen_subcommand_from $bun_builtin_cmds; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) and __bun_command_count 1 and __fish_use_subcommand" -a 'remove' -F -d 'Remove a package from package.json'
|
||||
|
||||
complete -c bun \
|
||||
-n "bun_fish_is_nth_token 1; and not __fish_seen_subcommand_from $bun_builtin_cmds; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) and __bun_command_count 1 and __fish_use_subcommand add remove" -F
|
||||
|
||||
|
||||
for i in (seq (count $bun_install_boolean_flags))
|
||||
complete -c bun \
|
||||
-n "not __fish_seen_subcommand_from $bun_builtin_cmds_without_pm; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); and __fish_seen_subcommand_from install add remove;" -l "$bun_install_boolean_flags[$i]" -d "$bun_install_boolean_flags_descriptions[$i]"
|
||||
end
|
||||
|
||||
complete -c bun \
|
||||
-n "not __fish_seen_subcommand_from $bun_builtin_cmds_without_pm; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); and __fish_seen_subcommand_from install add remove;" -l 'cwd' -d 'Change working directory'
|
||||
|
||||
complete -c bun \
|
||||
-n "not __fish_seen_subcommand_from $bun_builtin_cmds_without_pm; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); and __fish_seen_subcommand_from install add remove;" -l 'cache-dir' -d 'Choose a cache directory (default: $HOME/.bun/install/cache)'
|
||||
|
||||
complete -c bun \
|
||||
-n "not __fish_seen_subcommand_from $bun_builtin_cmds_without_pm; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); and __fish_seen_subcommand_from add;" -d 'Popular' -a '(__fish__get_bun_packages)'
|
||||
|
||||
complete -c bun \
|
||||
-n "not __fish_seen_subcommand_from $bun_builtin_cmds_without_pm; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); and __fish_seen_subcommand_from add;" -d 'History' -a '(__history_completions)'
|
||||
|
||||
complete -c bun \
|
||||
-n "__fish_seen_subcommand_from pm; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) cache;" -a 'bin ls cache hash hash-print hash-string' -f
|
||||
|
||||
complete -c bun \
|
||||
-n "__fish_seen_subcommand_from pm; and __fish_seen_subcommand_from cache; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts);" -a 'rm' -f
|
||||
|
||||
complete -c bun -n "not __fish_seen_subcommand_from $bun_builtin_cmds (__fish__get_bun_bins) (__fish__get_bun_scripts)" -a "$bun_builtin_cmds" -f
|
24
fish/.config/fish/completions/tmuxinator.fish
Normal file
24
fish/.config/fish/completions/tmuxinator.fish
Normal file
@@ -0,0 +1,24 @@
|
||||
function __fish_tmuxinator_using_command
|
||||
set cmd (commandline -opc)
|
||||
if [ (count $cmd) -gt 1 ]
|
||||
if [ $argv[1] = $cmd[2] ]
|
||||
return 0
|
||||
end
|
||||
end
|
||||
return 1
|
||||
end
|
||||
|
||||
set __fish_tmuxinator_program_cmd (commandline -o)[1]
|
||||
|
||||
function __fish_tmuxinator_program
|
||||
eval "$__fish_tmuxinator_program_cmd $argv"
|
||||
end
|
||||
|
||||
complete -f -c $__fish_tmuxinator_program_cmd -a '(__fish_tmuxinator_program completions start)'
|
||||
complete -f -c $__fish_tmuxinator_program_cmd -n '__fish_use_subcommand' -x -a "(__fish_tmuxinator_program commands)"
|
||||
complete -f -c $__fish_tmuxinator_program_cmd -n '__fish_tmuxinator_using_command start' -a "(__fish_tmuxinator_program completions start)"
|
||||
complete -f -c $__fish_tmuxinator_program_cmd -n '__fish_tmuxinator_using_command open' -a "(__fish_tmuxinator_program completions open)"
|
||||
complete -f -c $__fish_tmuxinator_program_cmd -n '__fish_tmuxinator_using_command copy' -a "(__fish_tmuxinator_program completions copy)"
|
||||
complete -f -c $__fish_tmuxinator_program_cmd -n '__fish_tmuxinator_using_command delete' -a "(__fish_tmuxinator_program completions delete)"
|
||||
|
||||
abbr --add mux "tmuxinator"
|
@@ -2,8 +2,6 @@ set fish_greeting
|
||||
fish_vi_key_bindings
|
||||
set fish_bind_mode insert
|
||||
|
||||
theme_gruvbox dark hard
|
||||
|
||||
alias rm 'rm -i'
|
||||
alias nnn 'nnn -e'
|
||||
alias icat 'kitty +kitten icat'
|
||||
@@ -15,8 +13,7 @@ export GPG_TTY=(tty)
|
||||
gpgconf --launch gpg-agent
|
||||
|
||||
if test -z (pgrep ssh-agent)
|
||||
eval (ssh-agent -c)
|
||||
set -Ux SSH_AUTH_SOCK $SSH_AUTH_SOCK
|
||||
eval (ssh-agent -c) set -Ux SSH_AUTH_SOCK $SSH_AUTH_SOCK
|
||||
set -Ux SSH_AGENT_PID $SSH_AGENT_PID
|
||||
set -Ux SSH_AUTH_SOCK $SSH_AUTH_SOCK
|
||||
end
|
||||
@@ -30,6 +27,8 @@ set -gx QT_AUTO_SCREEN_SCALE_FACTOR 1
|
||||
set -Ux GTK_IM_MODULE ibus
|
||||
set -Ux QT_IM_MODULE ibus
|
||||
set -Ux XMODIFIERS @im=ibus
|
||||
set -Ux PYTHON_KEYRING_BACKEND keyring.backends.null.Keyring
|
||||
set -Ux SYSTEMD_TIMEDATED_NTP_SERVICES chronyd.service:systemd-timesyncd.service
|
||||
|
||||
set -gx EDITOR lvim
|
||||
set -gx NVIM_LISTEN_ADDRESS /tmp/nvimsocket
|
||||
@@ -37,8 +36,9 @@ set -gx MANPAGER "lvim +Man!"
|
||||
set -gx LC_ALL en_US.UTF-8
|
||||
|
||||
set -gx _JAVA_AWT_WM_NONREPARENTING 1
|
||||
set --export BUN_INSTALL "$HOME/.bun"
|
||||
|
||||
set -x PATH /usr/libexec /usr/local/bin /home/minhradz/.cargo/bin /home/minhradz/.local/bin /home/minhradz/go/bin /home/minhradz/.cabal/bin $PATH
|
||||
set -x PATH /home/minhradz/.ghcup/bin/ /usr/libexec /usr/local/bin /home/minhradz/.cargo/bin /home/minhradz/.local/bin /home/minhradz/go/bin /home/minhradz/.cabal/bin /home/minhradz/.local/share/gem/ruby/3.0.0/bin $BUN_INSTALL/bin $PATH
|
||||
|
||||
starship init fish | source
|
||||
|
||||
|
@@ -1,19 +1,22 @@
|
||||
# This file contains fish universal variable definitions.
|
||||
# VERSION: 3.0
|
||||
SETUVAR --export GTK_IM_MODULE:ibus
|
||||
SETUVAR --export PYTHON_KEYRING_BACKEND:keyring\x2ebackends\x2enull\x2eKeyring
|
||||
SETUVAR --export QT_IM_MODULE:ibus
|
||||
SETUVAR --export SSH_AGENT_PID:1235
|
||||
SETUVAR --export SSH_AUTH_SOCK:/tmp/ssh\x2dXXXXXXRu0Qxq/agent\x2e1234
|
||||
SETUVAR --export SSH_AGENT_PID:1219
|
||||
SETUVAR --export SSH_AUTH_SOCK:/tmp/ssh\x2dXXXXXXqVfRCj/agent\x2e1218
|
||||
SETUVAR --export SYSTEMD_TIMEDATED_NTP_SERVICES:chronyd\x2eservice\x3asystemd\x2dtimesyncd\x2eservice
|
||||
SETUVAR --export XMODIFIERS:\x40im\x3dibus
|
||||
SETUVAR __fish_initialized:3100
|
||||
SETUVAR fish_color_autosuggestion:93a1a1
|
||||
SETUVAR fish_color_cancel:\x2dr
|
||||
SETUVAR fish_color_command:586e75
|
||||
SETUVAR fish_color_comment:93a1a1
|
||||
SETUVAR __fish_initialized:3400
|
||||
SETUVAR _fish_abbr_mux:tmuxinator
|
||||
SETUVAR fish_color_autosuggestion:4c566a
|
||||
SETUVAR fish_color_cancel:\x2d\x2dreverse
|
||||
SETUVAR fish_color_command:81a1c1
|
||||
SETUVAR fish_color_comment:434c5e
|
||||
SETUVAR fish_color_cwd:green
|
||||
SETUVAR fish_color_cwd_root:red
|
||||
SETUVAR fish_color_end:268bd2
|
||||
SETUVAR fish_color_error:dc322f
|
||||
SETUVAR fish_color_end:88c0d0
|
||||
SETUVAR fish_color_error:ebcb8b
|
||||
SETUVAR fish_color_escape:00a6b2
|
||||
SETUVAR fish_color_history_current:\x2d\x2dbold
|
||||
SETUVAR fish_color_host:normal
|
||||
@@ -21,16 +24,17 @@ SETUVAR fish_color_host_remote:yellow
|
||||
SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue
|
||||
SETUVAR fish_color_normal:normal
|
||||
SETUVAR fish_color_operator:00a6b2
|
||||
SETUVAR fish_color_param:657b83
|
||||
SETUVAR fish_color_quote:839496
|
||||
SETUVAR fish_color_redirection:6c71c4
|
||||
SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dwhite
|
||||
SETUVAR fish_color_param:eceff4
|
||||
SETUVAR fish_color_quote:a3be8c
|
||||
SETUVAR fish_color_redirection:b48ead
|
||||
SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack
|
||||
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
|
||||
SETUVAR fish_color_status:red
|
||||
SETUVAR fish_color_user:brgreen
|
||||
SETUVAR fish_color_valid_path:\x2d\x2dunderline
|
||||
SETUVAR fish_key_bindings:fish_vi_key_bindings
|
||||
SETUVAR fish_pager_color_completion:green
|
||||
SETUVAR fish_pager_color_completion:normal
|
||||
SETUVAR fish_pager_color_description:B3A06D
|
||||
SETUVAR fish_pager_color_prefix:cyan\x1e\x2d\x2dunderline
|
||||
SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
|
||||
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
|
||||
SETUVAR fish_pager_color_selected_background:\x2d\x2dbackground\x3dbrblack
|
||||
|
138
fish/.config/fish/functions/__bass.py
Executable file
138
fish/.config/fish/functions/__bass.py
Executable file
@@ -0,0 +1,138 @@
|
||||
"""
|
||||
To be used with a companion fish function like this:
|
||||
|
||||
function refish
|
||||
set -l _x (python /tmp/bass.py source ~/.nvm/nvim.sh ';' nvm use iojs); source $_x; and rm -f $_x
|
||||
end
|
||||
|
||||
"""
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
import json
|
||||
import os
|
||||
import signal
|
||||
import subprocess
|
||||
import sys
|
||||
import traceback
|
||||
|
||||
|
||||
BASH = 'bash'
|
||||
|
||||
FISH_READONLY = [
|
||||
'PWD', 'SHLVL', 'history', 'pipestatus', 'status', 'version',
|
||||
'FISH_VERSION', 'fish_pid', 'hostname', '_', 'fish_private_mode'
|
||||
]
|
||||
|
||||
IGNORED = [
|
||||
'PS1', 'XPC_SERVICE_NAME'
|
||||
]
|
||||
|
||||
def ignored(name):
|
||||
if name == 'PWD': # this is read only, but has special handling
|
||||
return False
|
||||
# ignore other read only variables
|
||||
if name in FISH_READONLY:
|
||||
return True
|
||||
if name in IGNORED or name.startswith("BASH_FUNC"):
|
||||
return True
|
||||
return False
|
||||
|
||||
def escape(string):
|
||||
# use json.dumps to reliably escape quotes and backslashes
|
||||
return json.dumps(string).replace(r'$', r'\$')
|
||||
|
||||
def escape_identifier(word):
|
||||
return escape(word.replace('?', '\\?'))
|
||||
|
||||
def comment(string):
|
||||
return '\n'.join(['# ' + line for line in string.split('\n')])
|
||||
|
||||
def gen_script():
|
||||
# Use the following instead of /usr/bin/env to read environment so we can
|
||||
# deal with multi-line environment variables (and other odd cases).
|
||||
env_reader = "%s -c 'import os,json; print(json.dumps({k:v for k,v in os.environ.items()}))'" % (sys.executable)
|
||||
args = [BASH, '-c', env_reader]
|
||||
output = subprocess.check_output(args, universal_newlines=True)
|
||||
old_env = output.strip()
|
||||
|
||||
pipe_r, pipe_w = os.pipe()
|
||||
if sys.version_info >= (3, 4):
|
||||
os.set_inheritable(pipe_w, True)
|
||||
command = 'eval $1 && ({}; alias) >&{}'.format(
|
||||
env_reader,
|
||||
pipe_w
|
||||
)
|
||||
args = [BASH, '-c', command, 'bass', ' '.join(sys.argv[1:])]
|
||||
p = subprocess.Popen(args, universal_newlines=True, close_fds=False)
|
||||
os.close(pipe_w)
|
||||
with os.fdopen(pipe_r) as f:
|
||||
new_env = f.readline()
|
||||
alias_str = f.read()
|
||||
if p.wait() != 0:
|
||||
raise subprocess.CalledProcessError(
|
||||
returncode=p.returncode,
|
||||
cmd=' '.join(sys.argv[1:]),
|
||||
output=new_env + alias_str
|
||||
)
|
||||
new_env = new_env.strip()
|
||||
|
||||
old_env = json.loads(old_env)
|
||||
new_env = json.loads(new_env)
|
||||
|
||||
script_lines = []
|
||||
|
||||
for k, v in new_env.items():
|
||||
if ignored(k):
|
||||
continue
|
||||
v1 = old_env.get(k)
|
||||
if not v1:
|
||||
script_lines.append(comment('adding %s=%s' % (k, v)))
|
||||
elif v1 != v:
|
||||
script_lines.append(comment('updating %s=%s -> %s' % (k, v1, v)))
|
||||
# process special variables
|
||||
if k == 'PWD':
|
||||
script_lines.append('cd %s' % escape(v))
|
||||
continue
|
||||
else:
|
||||
continue
|
||||
if k == 'PATH':
|
||||
value = ' '.join([escape(directory)
|
||||
for directory in v.split(':')])
|
||||
else:
|
||||
value = escape(v)
|
||||
script_lines.append('set -g -x %s %s' % (k, value))
|
||||
|
||||
for var in set(old_env.keys()) - set(new_env.keys()):
|
||||
script_lines.append(comment('removing %s' % var))
|
||||
script_lines.append('set -e %s' % var)
|
||||
|
||||
script = '\n'.join(script_lines)
|
||||
|
||||
alias_lines = []
|
||||
for line in alias_str.splitlines():
|
||||
_, rest = line.split(None, 1)
|
||||
k, v = rest.split("=", 1)
|
||||
alias_lines.append("alias " + escape_identifier(k) + "=" + v)
|
||||
alias = '\n'.join(alias_lines)
|
||||
|
||||
return script + '\n' + alias
|
||||
|
||||
script_file = os.fdopen(3, 'w')
|
||||
|
||||
if not sys.argv[1:]:
|
||||
print('__bass_usage', file=script_file, end='')
|
||||
sys.exit(0)
|
||||
|
||||
try:
|
||||
script = gen_script()
|
||||
except subprocess.CalledProcessError as e:
|
||||
sys.exit(e.returncode)
|
||||
except Exception:
|
||||
print('Bass internal error!', file=sys.stderr)
|
||||
raise # traceback will output to stderr
|
||||
except KeyboardInterrupt:
|
||||
signal.signal(signal.SIGINT, signal.SIG_DFL)
|
||||
os.kill(os.getpid(), signal.SIGINT)
|
||||
else:
|
||||
script_file.write(script)
|
29
fish/.config/fish/functions/bass.fish
Executable file
29
fish/.config/fish/functions/bass.fish
Executable file
@@ -0,0 +1,29 @@
|
||||
function bass
|
||||
set -l bash_args $argv
|
||||
set -l bass_debug
|
||||
if test "$bash_args[1]_" = '-d_'
|
||||
set bass_debug true
|
||||
set -e bash_args[1]
|
||||
end
|
||||
|
||||
set -l script_file (mktemp)
|
||||
if command -v python3 >/dev/null 2>&1
|
||||
command python3 -sS (dirname (status -f))/__bass.py $bash_args 3>$script_file
|
||||
else
|
||||
command python -sS (dirname (status -f))/__bass.py $bash_args 3>$script_file
|
||||
end
|
||||
set -l bass_status $status
|
||||
if test $bass_status -ne 0
|
||||
return $bass_status
|
||||
end
|
||||
|
||||
if test -n "$bass_debug"
|
||||
cat $script_file
|
||||
end
|
||||
source $script_file
|
||||
command rm $script_file
|
||||
end
|
||||
|
||||
function __bass_usage
|
||||
echo "Usage: bass [-d] <bash-command>"
|
||||
end
|
16
fish/.config/fish/functions/load_nvm.fish
Normal file
16
fish/.config/fish/functions/load_nvm.fish
Normal file
@@ -0,0 +1,16 @@
|
||||
function load_nvm --on-variable="PWD"
|
||||
set -l default_node_version (nvm version default)
|
||||
set -l node_version (nvm version)
|
||||
set -l nvmrc_path (nvm_find_nvmrc)
|
||||
if test -n "$nvmrc_path"
|
||||
set -l nvmrc_node_version (nvm version (cat $nvmrc_path))
|
||||
if test "$nvmrc_node_version" = "N/A"
|
||||
nvm install (cat $nvmrc_path)
|
||||
else if test "$nvmrc_node_version" != "$node_version"
|
||||
nvm use $nvmrc_node_version
|
||||
end
|
||||
else if test "$node_version" != "$default_node_version"
|
||||
echo "Reverting to default Node version"
|
||||
nvm use default
|
||||
end
|
||||
end
|
3
fish/.config/fish/functions/nvm.fish
Normal file
3
fish/.config/fish/functions/nvm.fish
Normal file
@@ -0,0 +1,3 @@
|
||||
function nvm
|
||||
bass source ~/.nvm/nvm.sh --no-use ';' nvm $argv
|
||||
end
|
3
fish/.config/fish/functions/nvm_find_nvmrc.fish
Normal file
3
fish/.config/fish/functions/nvm_find_nvmrc.fish
Normal file
@@ -0,0 +1,3 @@
|
||||
function nvm_find_nvmrc
|
||||
bass source ~/.nvm/nvm.sh --no-use ';' nvm_find_nvmrc
|
||||
end
|
@@ -1,17 +1,23 @@
|
||||
[pull]
|
||||
rebase = false
|
||||
rebase = true
|
||||
|
||||
[user]
|
||||
email = minhtrannhat@tutanota.com
|
||||
email = minh@minhtrannhat.com
|
||||
name = minhtrannhat
|
||||
signingkey = 894C6A5801E01CA9
|
||||
signingkey = E13CFA85C53F8062
|
||||
|
||||
[commit]
|
||||
gpgsign = true
|
||||
|
||||
[init]
|
||||
defaultBranch = master
|
||||
|
||||
[gpg]
|
||||
program = /usr/bin/gpg
|
||||
|
||||
[pager]
|
||||
diff = delta
|
||||
blame = delta
|
||||
log = delta
|
||||
reflog = delta
|
||||
show = delta
|
||||
@@ -19,7 +25,7 @@
|
||||
[delta]
|
||||
side-by-side = true
|
||||
line-numbers = true
|
||||
syntax-theme = gruvbox-dark
|
||||
syntax-theme = Nord
|
||||
navigate = true
|
||||
|
||||
[interactive]
|
||||
@@ -33,3 +39,15 @@
|
||||
|
||||
[diff]
|
||||
colorMoved = default
|
||||
|
||||
[filter "lfs"]
|
||||
required = true
|
||||
clean = git-lfs clean -- %f
|
||||
smudge = git-lfs smudge -- %f
|
||||
process = git-lfs filter-process
|
||||
|
||||
[rebase]
|
||||
autostash = true
|
||||
|
||||
[core]
|
||||
autocrlf = input
|
||||
|
@@ -1,6 +1,6 @@
|
||||
term xterm-kitty
|
||||
|
||||
shell fish
|
||||
shell zsh
|
||||
|
||||
font_family JetBrainsMono Nerd Font
|
||||
bold_font auto
|
||||
@@ -17,33 +17,4 @@ enable_audio_bell no
|
||||
|
||||
enabled_layouts splits:split_axis=horizontal
|
||||
|
||||
# Create a new window splitting the space used by the existing one so that
|
||||
# the two windows are placed one above the other
|
||||
map F5 launch --location=hsplit
|
||||
|
||||
# Create a new window splitting the space used by the existing one so that
|
||||
# the two windows are placed side by side
|
||||
map F6 launch --location=vsplit
|
||||
|
||||
# Create a new window splitting the space used by the existing one so that
|
||||
# the two windows are placed side by side if the existing window is wide or
|
||||
# one above the other if the existing window is tall.
|
||||
map F4 launch --location=split
|
||||
|
||||
# Rotate the current split, chaging its split axis from vertical to
|
||||
# horizontal or vice versa
|
||||
map F7 layout_action rotate
|
||||
|
||||
# Move the active window in the indicated direction
|
||||
map shift+up move_window up
|
||||
map shift+left move_window left
|
||||
map shift+right move_window right
|
||||
map shift+down move_window down
|
||||
|
||||
# Switch focus to the neighboring window in the indicated direction
|
||||
map ctrl+left neighboring_window left
|
||||
map ctrl+right neighboring_window right
|
||||
map ctrl+up neighboring_window up
|
||||
map ctrl+down neighboring_window down
|
||||
|
||||
include gruvbox_light.conf
|
||||
include nord.conf
|
||||
|
34
kitty/.config/kitty/nord.conf
Normal file
34
kitty/.config/kitty/nord.conf
Normal file
@@ -0,0 +1,34 @@
|
||||
# Nord Colorscheme for Kitty
|
||||
# Based on:
|
||||
# - https://gist.github.com/marcusramberg/64010234c95a93d953e8c79fdaf94192
|
||||
# - https://github.com/arcticicestudio/nord-hyper
|
||||
foreground #D8DEE9
|
||||
background #2E3440
|
||||
selection_foreground #000000
|
||||
selection_background #FFFACD
|
||||
url_color #0087BD
|
||||
cursor #81A1C1
|
||||
# black
|
||||
color0 #3B4252
|
||||
color8 #4C566A
|
||||
# red
|
||||
color1 #BF616A
|
||||
color9 #BF616A
|
||||
# green
|
||||
color2 #A3BE8C
|
||||
color10 #A3BE8C
|
||||
# yellow
|
||||
color3 #EBCB8B
|
||||
color11 #EBCB8B
|
||||
# blue
|
||||
color4 #81A1C1
|
||||
color12 #81A1C1
|
||||
# magenta
|
||||
color5 #B48EAD
|
||||
color13 #B48EAD
|
||||
# cyan
|
||||
color6 #88C0D0
|
||||
color14 #8FBCBB
|
||||
# white
|
||||
color7 #E5E9F0
|
||||
color15 #ECEFF4
|
@@ -1,28 +1,47 @@
|
||||
-- general
|
||||
lvim.format_on_save = true
|
||||
lvim.lint_on_save = true
|
||||
lvim.shell = "/bin/fish"
|
||||
lvim.shell = "/bin/zsh"
|
||||
lvim.leader = "space"
|
||||
vim.opt.relativenumber = true
|
||||
vim.opt.wrap = true
|
||||
|
||||
lvim.builtin.alpha.active = true
|
||||
lvim.builtin.terminal.active = true
|
||||
lvim.builtin.autopairs.active = true
|
||||
lvim.builtin.gitsigns.active = true
|
||||
lvim.builtin.dap.active = true
|
||||
|
||||
lvim.reload_config_on_save = true
|
||||
lvim.builtin.cmp.cmdline.enable = true
|
||||
lvim.builtin.breadcrumbs = { active = false }
|
||||
lvim.builtin.nvimtree.side = "left"
|
||||
lvim.builtin.nvimtree.show_icons.git = 1
|
||||
lvim.builtin.terminal.shell = "/bin/fish"
|
||||
lvim.builtin.terminal.shell = "/bin/zsh"
|
||||
lvim.lsp.installer.setup.automatic_installation = false
|
||||
vim.diagnostic.config({ virtual_text = false })
|
||||
|
||||
vim.termguicolors = true
|
||||
vim.background = "light"
|
||||
lvim.colorscheme = "gruvbox"
|
||||
vim.background = "dark"
|
||||
|
||||
lvim.keys.normal_mode["gt"] = ":BufferLineCycleNext<CR>"
|
||||
lvim.keys.normal_mode["gT"] = ":BufferLineCyclePrev<CR>"
|
||||
|
||||
lvim.builtin.treesitter.ensure_installed = {}
|
||||
lvim.builtin.treesitter.ignore_install = { "" }
|
||||
lvim.builtin.treesitter.highlight.enabled = true
|
||||
|
||||
require("mason-lspconfig").setup_handlers({
|
||||
["rust_analyzer"] = function() end,
|
||||
})
|
||||
|
||||
local null_ls = require("null-ls")
|
||||
|
||||
null_ls.setup({
|
||||
sources = {
|
||||
null_ls.builtins.formatting.ruff,
|
||||
null_ls.builtins.diagnostics.ruff,
|
||||
},
|
||||
})
|
||||
|
||||
local formatters = require("lvim.lsp.null-ls.formatters")
|
||||
local linters = require("lvim.lsp.null-ls.linters")
|
||||
|
||||
@@ -36,30 +55,43 @@ formatters.setup({
|
||||
exe = "clang_format",
|
||||
filetypes = { "c", "cpp" },
|
||||
},
|
||||
{
|
||||
exe = "rustfmt",
|
||||
filetype = { "rust" },
|
||||
},
|
||||
{ exe = "prettier" },
|
||||
{ exe = "gofmt", filetypes = { "go" } },
|
||||
{ exe = "eslint_d" },
|
||||
{ exe = "stylua", filetypes = { "lua" } },
|
||||
{ exe = "brittany", filetypes = { "haskell" } },
|
||||
})
|
||||
|
||||
linters.setup({
|
||||
{ exe = "flake8" },
|
||||
{ exe = "ruff", filetype = { "python" } },
|
||||
})
|
||||
|
||||
-- Additional Plugins
|
||||
lvim.plugins = {
|
||||
{ "ellisonleao/gruvbox.nvim" },
|
||||
-- { "shaunsingh/nord.nvim" },
|
||||
{
|
||||
"gbprod/nord.nvim",
|
||||
},
|
||||
{
|
||||
"folke/trouble.nvim",
|
||||
cmd = "TroubleToggle",
|
||||
},
|
||||
{
|
||||
"mrcjkb/rustaceanvim",
|
||||
version = "^4",
|
||||
ft = { "rust" },
|
||||
config = function()
|
||||
vim.g.rustaceanvim = {
|
||||
server = {
|
||||
on_attach = require("lvim.lsp").common_on_attach,
|
||||
},
|
||||
}
|
||||
end,
|
||||
},
|
||||
{
|
||||
"ray-x/lsp_signature.nvim",
|
||||
event = "BufRead",
|
||||
config = function()
|
||||
require("lsp_signature").on_attach()
|
||||
end,
|
||||
event = "InsertEnter",
|
||||
},
|
||||
{ "machakann/vim-sandwich" },
|
||||
{ "tpope/vim-fugitive" },
|
||||
@@ -69,43 +101,131 @@ lvim.plugins = {
|
||||
require("spellsitter").setup()
|
||||
end,
|
||||
},
|
||||
{ "ggandor/lightspeed.nvim", requires = { "tpope/vim-repeat" }, event = "InsertEnter" },
|
||||
{ "ellisonleao/glow.nvim" },
|
||||
{ "IogaMaster/neocord" },
|
||||
{
|
||||
"m-demare/hlargs.nvim",
|
||||
config = function()
|
||||
require("hlargs").setup()
|
||||
end,
|
||||
},
|
||||
{
|
||||
"windwp/nvim-ts-autotag",
|
||||
config = function()
|
||||
require("nvim-ts-autotag").setup()
|
||||
end,
|
||||
},
|
||||
{
|
||||
"HiPhish/rainbow-delimiters.nvim",
|
||||
event = "InsertEnter",
|
||||
},
|
||||
{
|
||||
"aserowy/tmux.nvim",
|
||||
config = function()
|
||||
require("tmux").setup({
|
||||
copy_sync = {
|
||||
enable = false,
|
||||
},
|
||||
navigation = {
|
||||
enable_default_keybindings = true,
|
||||
},
|
||||
resize = {
|
||||
enable_default_keybindings = true,
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
"haya14busa/is.vim",
|
||||
{
|
||||
"max397574/better-escape.nvim",
|
||||
config = function()
|
||||
require("better_escape").setup()
|
||||
end,
|
||||
},
|
||||
{
|
||||
"phaazon/hop.nvim",
|
||||
branch = "v2", -- optional but strongly recommended
|
||||
config = function()
|
||||
-- you can configure Hop the way you like here; see :h hop-config
|
||||
require("hop").setup(
|
||||
{ keys = "etovxqpdygfblzhckisuran" },
|
||||
vim.api.nvim_set_keymap("n", "t", ":HopChar2<cr>", { silent = true }),
|
||||
vim.api.nvim_set_keymap("n", "T", ":HopPattern<cr>", { silent = true })
|
||||
)
|
||||
end,
|
||||
},
|
||||
"norcalli/nvim-colorizer.lua",
|
||||
}
|
||||
|
||||
-- Changes to clangd
|
||||
vim.list_extend(lvim.lsp.override, { "clangd" })
|
||||
require("colorizer").setup()
|
||||
|
||||
-- some settings can only passed as commandline flags `clangd --help`
|
||||
local clangd_flags = {
|
||||
"--all-scopes-completion",
|
||||
"--suggest-missing-includes",
|
||||
"--background-index",
|
||||
"--pch-storage=disk",
|
||||
"--cross-file-rename",
|
||||
"--log=info",
|
||||
"--completion-style=detailed",
|
||||
"--enable-config", -- clangd 11+ supports reading from .clangd configuration file
|
||||
"--clang-tidy",
|
||||
"--offset-encoding=utf-16",
|
||||
"--clang-tidy-checks=-*,llvm-*,clang-analyzer-*,modernize-*,-modernize-use-trailing-return-type",
|
||||
"--fallback-style=Google",
|
||||
vim.list_extend(lvim.lsp.automatic_configuration.skipped_servers, { "rust_analyzer" })
|
||||
|
||||
require("nord").setup({
|
||||
transparent = true, -- Enable this to disable setting the background color
|
||||
terminal_colors = true, -- Configure the colors used when opening a `:terminal` in Neovim
|
||||
diff = { mode = "bg" }, -- enables/disables colorful backgrounds when used in diff mode. values : [bg|fg]
|
||||
borders = true, -- Enable the border between verticaly split windows visible
|
||||
errors = { mode = "bg" }, -- Display mode for errors and diagnostics
|
||||
-- values : [bg|fg|none]
|
||||
search = { theme = "vscode" }, -- theme for highlighting search results
|
||||
-- values : [vim|vscode]
|
||||
styles = {
|
||||
-- Style to be applied to different syntax groups
|
||||
-- Value is any valid attr-list value for `:help nvim_set_hl`
|
||||
comments = { italic = true },
|
||||
keywords = { bold = true },
|
||||
functions = { bold = true },
|
||||
variables = { bold = true },
|
||||
|
||||
-- To customize lualine/bufferline
|
||||
bufferline = {
|
||||
current = {},
|
||||
modified = { italic = true },
|
||||
},
|
||||
},
|
||||
|
||||
on_highlights = function(highlights, colors)
|
||||
highlights["@lsp.type.parameter"] = { fg = require("nord.utils").darken(colors.aurora.yellow, 0.90) }
|
||||
end,
|
||||
})
|
||||
|
||||
lvim.colorscheme = "nord"
|
||||
lvim.builtin.lualine.options = { theme = "nord" }
|
||||
lvim.builtin.bufferline.options = { separator_style = "thin" }
|
||||
lvim.builtin.bufferline.highlights = require("nord.plugins.bufferline").akinsho()
|
||||
|
||||
-- The setup config table shows all available config options with their default values:
|
||||
require("neocord").setup({
|
||||
-- General options
|
||||
logo = "auto", -- "auto" or url
|
||||
logo_tooltip = nil, -- nil or string
|
||||
main_image = "language", -- "language" or "logo"
|
||||
client_id = "1157438221865717891", -- Use your own Discord application client id (not recommended)
|
||||
log_level = nil, -- Log messages at or above this level (one of the following: "debug", "info", "warn", "error")
|
||||
debounce_timeout = 10, -- Number of seconds to debounce events (or calls to `:lua package.loaded.presence:update(<filename>, true)`)
|
||||
blacklist = {}, -- A list of strings or Lua patterns that disable Rich Presence if the current file name, path, or workspace matches
|
||||
file_assets = {}, -- Custom file asset definitions keyed by file names and extensions (see default config at `lua/presence/file_assets.lua` for reference)
|
||||
show_time = true, -- Show the timer
|
||||
global_timer = false, -- if set true, timer won't update when any event are triggered
|
||||
|
||||
-- Rich Presence text options
|
||||
editing_text = "Editing %s", -- Format string rendered when an editable file is loaded in the buffer (either string or function(filename: string): string)
|
||||
file_explorer_text = "Browsing %s", -- Format string rendered when browsing a file explorer (either string or function(file_explorer_name: string): string)
|
||||
git_commit_text = "Committing changes", -- Format string rendered when committing changes in git (either string or function(filename: string): string)
|
||||
plugin_manager_text = "Managing plugins", -- Format string rendered when managing plugins (either string or function(plugin_manager_name: string): string)
|
||||
reading_text = "Reading %s", -- Format string rendered when a read-only or unmodifiable file is loaded in the buffer (either string or function(filename: string): string)
|
||||
workspace_text = "Working on %s", -- Format string rendered when in a git repository (either string or function(project_name: string|nil, filename: string): string)
|
||||
line_number_text = "Line %s out of %s", -- Format string rendered when `enable_line_number` is set to true (either string or function(line_number: number, line_count: number): string)
|
||||
terminal_text = "Using Terminal", -- Format string rendered when in terminal mode.
|
||||
})
|
||||
|
||||
lvim.builtin.which_key.mappings["t"] = {
|
||||
name = "Diagnostics",
|
||||
t = { "<cmd>TroubleToggle<cr>", "trouble" },
|
||||
w = { "<cmd>TroubleToggle workspace_diagnostics<cr>", "workspace" },
|
||||
d = { "<cmd>TroubleToggle document_diagnostics<cr>", "document" },
|
||||
q = { "<cmd>TroubleToggle quickfix<cr>", "quickfix" },
|
||||
l = { "<cmd>TroubleToggle loclist<cr>", "loclist" },
|
||||
r = { "<cmd>TroubleToggle lsp_references<cr>", "references" },
|
||||
}
|
||||
|
||||
local clangd_bin = "clangd"
|
||||
|
||||
local custom_on_attach = function(client, bufnr)
|
||||
require("lvim.lsp").common_on_attach(client, bufnr)
|
||||
local opts = { noremap = true, silent = true }
|
||||
vim.api.nvim_buf_set_keymap(bufnr, "n", "<leader>lh", "<Cmd>ClangdSwitchSourceHeader<CR>", opts)
|
||||
end
|
||||
|
||||
local opts = {
|
||||
cmd = { clangd_bin, unpack(clangd_flags) },
|
||||
on_attach = custom_on_attach,
|
||||
}
|
||||
|
||||
require("lvim.lsp.manager").setup("clangd", opts)
|
||||
|
||||
-- vim sandwhich with vim surround keybindings
|
||||
vim.cmd("runtime macros/sandwich/keymap/surround.vim")
|
||||
|
61
lvim/.config/lvim/lazy-lock.json
Normal file
61
lvim/.config/lvim/lazy-lock.json
Normal file
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" },
|
||||
"LuaSnip": { "branch": "master", "commit": "1def35377854535bb3b0f4cc7a33c083cdb12571" },
|
||||
"alpha-nvim": { "branch": "main", "commit": "29074eeb869a6cbac9ce1fbbd04f5f5940311b32" },
|
||||
"better-escape.nvim": { "branch": "master", "commit": "199dcc2643dec5d8dbdab4ec672cf405224dcb3b" },
|
||||
"bigfile.nvim": { "branch": "main", "commit": "33eb067e3d7029ac77e081cfe7c45361887a311a" },
|
||||
"bufferline.nvim": { "branch": "main", "commit": "73edc1f2732678e7a681e3d3be49782610914f6b" },
|
||||
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
||||
"cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" },
|
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
|
||||
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
||||
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "dd2fd1281d4b22e7b4a5bfafa3e142d958e251f2" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "805610a9393fa231f2c2b49cb521bfa413fadb3d" },
|
||||
"glow.nvim": { "branch": "main", "commit": "238070a686c1da3bccccf1079700eb4b5e19aea4" },
|
||||
"hlargs.nvim": { "branch": "main", "commit": "a5a7fdacc0ac2f7ca9d241e0e059cb85f0e733bc" },
|
||||
"hop.nvim": { "branch": "v2", "commit": "90db1b2c61b820e230599a04fedcd2679e64bd07" },
|
||||
"indent-blankline.nvim": { "branch": "master", "commit": "9637670896b68805430e2f72cf5d16be5b97a22a" },
|
||||
"is.vim": { "branch": "master", "commit": "d393cb346dcdf733fecd7bbfc45b70b8c05e9eb4" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "8f19915175395680808de529e4220da8dafc0759" },
|
||||
"lir.nvim": { "branch": "master", "commit": "7a9d45de08fecd23a04aca1f96688d744830029e" },
|
||||
"lsp_signature.nvim": { "branch": "master", "commit": "5b64964ed02098c85613ee3d20f96bed1dfb64cc" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "0a5a66803c7407767b799067986b4dc3036e1983" },
|
||||
"lunar.nvim": { "branch": "master", "commit": "08bbc93b96ad698d22fc2aa01805786bcedc34b9" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "a4caa0d083aab56f6cd5acf2d42331b74614a585" },
|
||||
"mason.nvim": { "branch": "main", "commit": "49ff59aded1047a773670651cfa40e76e63c6377" },
|
||||
"neocord": { "branch": "main", "commit": "4d55d8dab2d5f2f272192add7a2c21982039c699" },
|
||||
"neodev.nvim": { "branch": "main", "commit": "ce9a2e8eaba5649b553529c5498acb43a6c317cd" },
|
||||
"nlsp-settings.nvim": { "branch": "main", "commit": "d92035e6c05cded5f1a7458b57506adbf29a5c9c" },
|
||||
"none-ls.nvim": { "branch": "main", "commit": "3a4826687da4310af379515086d71faca4d21288" },
|
||||
"nord.nvim": { "branch": "main", "commit": "57fb474a1d628bdf9d1e7964719464ed5675d7c7" },
|
||||
"nvim-autopairs": { "branch": "master", "commit": "c15de7e7981f1111642e7e53799e1211d4606cb9" },
|
||||
"nvim-cmp": { "branch": "main", "commit": "5260e5e8ecadaf13e6b82cf867a909f54e15fd07" },
|
||||
"nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" },
|
||||
"nvim-dap": { "branch": "master", "commit": "5a2f7121869394502521c52b2bc581ab22c69447" },
|
||||
"nvim-dap-ui": { "branch": "master", "commit": "34160a7ce6072ef332f350ae1d4a6a501daf0159" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "eadcee1573ca9d0e0cd36a49f620186a8dfdc607" },
|
||||
"nvim-tree.lua": { "branch": "master", "commit": "2bc725a3ebc23f0172fb0ab4d1134b81bcc13812" },
|
||||
"nvim-treesitter": { "branch": "master", "commit": "30de5e7e9486fb1b1b8c2a1e71052b13f94f1cb0" },
|
||||
"nvim-ts-autotag": { "branch": "main", "commit": "4c00b86bd1246ba9c4cd50a823d8296cd2eb9663" },
|
||||
"nvim-ts-context-commentstring": { "branch": "main", "commit": "cb064386e667def1d241317deed9fd1b38f0dc2e" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "e37bb1feee9e7320c76050a55443fa843b4b6f83" },
|
||||
"onedarker.nvim": { "branch": "freeze", "commit": "b00dd2189f264c5aeb4cf04c59439655ecd573ec" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" },
|
||||
"project.nvim": { "branch": "main", "commit": "8c6bad7d22eef1b71144b401c9f74ed01526a4fb" },
|
||||
"rainbow-delimiters.nvim": { "branch": "master", "commit": "011d98eaa3a73b5a51d82ce5bc6b1397dde95562" },
|
||||
"rustaceanvim": { "branch": "master", "commit": "047f9c9d8cd2861745eb9de6c1570ee0875aa795" },
|
||||
"schemastore.nvim": { "branch": "main", "commit": "9a5992a881583d886bfbb46631a09f736f0fae50" },
|
||||
"spellsitter.nvim": { "branch": "master", "commit": "4af8640d9d706447e78c13150ef7475ea2c16b30" },
|
||||
"structlog.nvim": { "branch": "main", "commit": "45b26a2b1036bb93c0e83f4225e85ab3cee8f476" },
|
||||
"telescope-fzf-native.nvim": { "branch": "main", "commit": "9ef21b2e6bb6ebeaf349a0781745549bbb870d27" },
|
||||
"telescope.nvim": { "branch": "0.1.x", "commit": "d829aa64059001ee7b2c8c8aa9c4e6df0b17d893" },
|
||||
"tmux.nvim": { "branch": "main", "commit": "4368d280ba294e33b2ad1d8d7a36d8226451bb21" },
|
||||
"toggleterm.nvim": { "branch": "main", "commit": "fee58a0473fd92b28c34f8f724e4918b15ba30a3" },
|
||||
"tokyonight.nvim": { "branch": "main", "commit": "b9b494fa7f7bbf2fe0747b47fa290fb7a4eddcc7" },
|
||||
"trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" },
|
||||
"vim-fugitive": { "branch": "master", "commit": "b068eaf1e6cbe35d1ac100d435cd7f7b74a5c87d" },
|
||||
"vim-illuminate": { "branch": "master", "commit": "5eeb7951fc630682c322e88a9bbdae5c224ff0aa" },
|
||||
"vim-sandwich": { "branch": "master", "commit": "74cf93d58ccc567d8e2310a69860f1b93af19403" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "4433e5ec9a507e5097571ed55c02ea9658fb268a" }
|
||||
}
|
3
lvim/.config/lvim/lsp-settings/rust_analyzer.json
Normal file
3
lvim/.config/lvim/lsp-settings/rust_analyzer.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"rust-analyzer.semanticHighlighting.strings.enable": true
|
||||
}
|
24
mako/.config/mako/config
Normal file
24
mako/.config/mako/config
Normal file
@@ -0,0 +1,24 @@
|
||||
background-color=#282828
|
||||
progress-color=source #81a1c1
|
||||
text-color=#eceff4
|
||||
padding=15
|
||||
outer-margin=9
|
||||
default-timeout=5000
|
||||
margin=5
|
||||
|
||||
border-size=2
|
||||
border-radius=5
|
||||
border-color=#a3be8c
|
||||
|
||||
[urgency=low]
|
||||
border-color=#434c5e
|
||||
|
||||
[urgency=normal]
|
||||
border-color=#a3be8c
|
||||
|
||||
[urgency=high]
|
||||
border-color=#bf616a
|
||||
default-timeout=0
|
||||
|
||||
layer=overlay
|
||||
on-button-middle=exec makoctl menu -n "$id" wofi -d -p 'Select action: '
|
@@ -1 +0,0 @@
|
||||
114070
|
@@ -1,6 +1,6 @@
|
||||
auto-reload yes
|
||||
browser "firefox --new-tab %u"
|
||||
max-items 50
|
||||
max-items 999999
|
||||
|
||||
# unbind keys
|
||||
unbind-key ENTER
|
||||
|
@@ -5,3 +5,4 @@ https://medium.com/feed/better-programming "Technology"
|
||||
https://protesilaos.com/codelog.xml "Technology"
|
||||
https:///notrelated.xyz/rss.xml "Politics"
|
||||
https://hnrss.org/frontpage "Technology"
|
||||
https://drewdevault.com/blog/index.xml "Technology"
|
||||
|
8
nvim/.config/nvim/.gitignore
vendored
Normal file
8
nvim/.config/nvim/.gitignore
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
tt.*
|
||||
.tests
|
||||
doc/tags
|
||||
debug
|
||||
.repro
|
||||
foo.*
|
||||
*.log
|
||||
data
|
15
nvim/.config/nvim/.neoconf.json
Normal file
15
nvim/.config/nvim/.neoconf.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"neodev": {
|
||||
"library": {
|
||||
"enabled": true,
|
||||
"plugins": true
|
||||
}
|
||||
},
|
||||
"neoconf": {
|
||||
"plugins": {
|
||||
"lua_ls": {
|
||||
"enabled": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
201
nvim/.config/nvim/LICENSE
Normal file
201
nvim/.config/nvim/LICENSE
Normal file
@@ -0,0 +1,201 @@
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
4
nvim/.config/nvim/README.md
Normal file
4
nvim/.config/nvim/README.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# 💤 LazyVim
|
||||
|
||||
A starter template for [LazyVim](https://github.com/LazyVim/LazyVim).
|
||||
Refer to the [documentation](https://lazyvim.github.io/installation) to get started.
|
2
nvim/.config/nvim/init.lua
Normal file
2
nvim/.config/nvim/init.lua
Normal file
@@ -0,0 +1,2 @@
|
||||
-- bootstrap lazy.nvim, LazyVim and your plugins
|
||||
require("config.lazy")
|
79
nvim/.config/nvim/lazy-lock.json
Normal file
79
nvim/.config/nvim/lazy-lock.json
Normal file
@@ -0,0 +1,79 @@
|
||||
{
|
||||
"LazyVim": { "branch": "main", "commit": "3a743f7f853bd90894259cd93432d77c688774b4" },
|
||||
"LuaSnip": { "branch": "master", "commit": "b3104910bb5ebf40492aadffae18f2528fa757d9" },
|
||||
"SchemaStore.nvim": { "branch": "main", "commit": "68f3e590cabe4f07a1f64fa73dab0bd244b13cf5" },
|
||||
"baleia.nvim": { "branch": "main", "commit": "1b25eac3ac03659c3d3af75c7455e179e5f197f7" },
|
||||
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
|
||||
"catppuccin": { "branch": "main", "commit": "d72341852556e2dfe19f779cc682c16dd58548fc" },
|
||||
"clangd_extensions.nvim": { "branch": "main", "commit": "b67cc417d9020fb4b83d46662351b4d16894905e" },
|
||||
"cmake-tools.nvim": { "branch": "master", "commit": "88e07c6bff838a5bda2f461e9c1122b79ff0829f" },
|
||||
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
|
||||
"cmp-conjure": { "branch": "master", "commit": "8c9a88efedc0e5bf3165baa6af8a407afe29daf6" },
|
||||
"cmp-git": { "branch": "main", "commit": "b24309c386c9666c549a1abaedd4956541676d06" },
|
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "bd5a7d6db125d4654b50eeae9f5217f24bb22fd3" },
|
||||
"cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" },
|
||||
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
|
||||
"conform.nvim": { "branch": "master", "commit": "b4aab989db276993ea5dcb78872be494ce546521" },
|
||||
"conjure": { "branch": "main", "commit": "95b067e1356fb5b0143c9487ffc9950ddaa7df3a" },
|
||||
"crates.nvim": { "branch": "main", "commit": "ac9fa498a9edb96dc3056724ff69d5f40b898453" },
|
||||
"flash.nvim": { "branch": "main", "commit": "b68bda044d68e4026c4e1ec6df3c5afd7eb8e341" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
|
||||
"fzf-lua": { "branch": "main", "commit": "52b8199b9bf185720389d5ca99350ae26a724a2d" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "f780609807eca1f783a36a8a31c30a48fbe150c5" },
|
||||
"grug-far.nvim": { "branch": "main", "commit": "50d9ee2b5a19634670441948e7e4afaa042f1059" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
|
||||
"lazydev.nvim": { "branch": "main", "commit": "258d2a5ef4a3e3d6d9ba9da72c9725c53e9afcbd" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "b8c23159c0161f4b89196f74ee3a6d02cdc3a955" },
|
||||
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "7f9a39fcd2ac6e979001f857727d606888f5909c" },
|
||||
"mason-nvim-dap.nvim": { "branch": "main", "commit": "86389a3dd687cfaa647b6f44731e492970034baa" },
|
||||
"mason.nvim": { "branch": "main", "commit": "7dc4facca9702f95353d5a1f87daf23d78e31c2a" },
|
||||
"mini.ai": { "branch": "main", "commit": "dcd346a3eda9121e917950680e5eb59f59f78aae" },
|
||||
"mini.comment": { "branch": "main", "commit": "a9474da9175b27a5c32ee712433c23b9b0f7f139" },
|
||||
"mini.hipatterns": { "branch": "main", "commit": "96d07d32a0db0d8d8a10c83a964ec557cca005e7" },
|
||||
"mini.icons": { "branch": "main", "commit": "f9a177c11daa7829389b7b6eaaec8b8a5c47052d" },
|
||||
"mini.pairs": { "branch": "main", "commit": "3738ea30ff33e0cbf2983dc67319a5468d25b0a9" },
|
||||
"mini.surround": { "branch": "main", "commit": "4b92d30fb5e021cced6cbb68698c73018211fbfa" },
|
||||
"neo-tree.nvim": { "branch": "main", "commit": "b561a7c1f938f07e894e30129fa0a50a7b3a2e46" },
|
||||
"neocord": { "branch": "main", "commit": "2ebf3792a8100376bb65fd66d5dbf60f50af7529" },
|
||||
"noice.nvim": { "branch": "main", "commit": "0427460c2d7f673ad60eb02b35f5e9926cf67c59" },
|
||||
"none-ls.nvim": { "branch": "main", "commit": "78111a97cebed3dfda8157af8141bf1915cfc327" },
|
||||
"nord.nvim": { "branch": "main", "commit": "266b7ce0d0b4a876568c1e23ba2eca63ebe97cfb" },
|
||||
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
|
||||
"nvim-ansible": { "branch": "main", "commit": "bba61168b7aef735e7f950fdfece5ef6c388eacf" },
|
||||
"nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" },
|
||||
"nvim-dap": { "branch": "master", "commit": "11b97cbeef18d136f5a9897baacad5fc60367110" },
|
||||
"nvim-dap-go": { "branch": "main", "commit": "b4421153ead5d726603b02743ea40cf26a51ed5f" },
|
||||
"nvim-dap-python": { "branch": "master", "commit": "bfe572e4458e0ac876b9539a1e9f301c72db8ea0" },
|
||||
"nvim-dap-ruby": { "branch": "main", "commit": "ba36f9905ca9c6d89e5af5467a52fceeb2bbbf6d" },
|
||||
"nvim-dap-ui": { "branch": "master", "commit": "cf91d5e2d07c72903d052f5207511bf7ecdb7122" },
|
||||
"nvim-dap-virtual-text": { "branch": "master", "commit": "fbdb48c2ed45f4a8293d0d483f7730d24467ccb6" },
|
||||
"nvim-jdtls": { "branch": "master", "commit": "b69924ca90014fef485ee153571bdcbc1ece8c2e" },
|
||||
"nvim-lint": { "branch": "master", "commit": "0864f81c681e15d9bdc1156fe3a17bd07db5a3ed" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "107c2458cdc780c4ed2c2b5e1b7800cd019010bd" },
|
||||
"nvim-metals": { "branch": "main", "commit": "db6c9ffb32ec698b96d11cba1317dccc26f5c16d" },
|
||||
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
|
||||
"nvim-treesitter": { "branch": "main", "commit": "20fc6b1270dddff7e16220e0a51d17614d41fd43" },
|
||||
"nvim-treesitter-sexp": { "branch": "master", "commit": "32509f4071f9c8ba5655bf2e1ccf1f1cd8447da0" },
|
||||
"nvim-treesitter-textobjects": { "branch": "main", "commit": "1b2d85d3de6114c4bcea89ffb2cd1ce9e3a19931" },
|
||||
"nvim-ts-autotag": { "branch": "main", "commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc" },
|
||||
"nvim-ts-context-commentstring": { "branch": "main", "commit": "1b212c2eee76d787bbea6aa5e92a2b534e7b4f8f" },
|
||||
"persistence.nvim": { "branch": "main", "commit": "166a79a55bfa7a4db3e26fc031b4d92af71d0b51" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
|
||||
"project.nvim": { "branch": "main", "commit": "8c6bad7d22eef1b71144b401c9f74ed01526a4fb" },
|
||||
"render-markdown.nvim": { "branch": "main", "commit": "67f2c7c8850bb11eefa6b22054a6f4cef1146de2" },
|
||||
"rustaceanvim": { "branch": "master", "commit": "370b85298e5afdfd8b5d3da0c60c04e3873499a4" },
|
||||
"snacks.nvim": { "branch": "main", "commit": "d67a47739dfc652cfcf66c59e929c704a854b37a" },
|
||||
"tailwindcss-colorizer-cmp.nvim": { "branch": "main", "commit": "3d3cd95e4a4135c250faf83dd5ed61b8e5502b86" },
|
||||
"tmux.nvim": { "branch": "main", "commit": "2c1c3be0ef287073cef963f2aefa31a15c8b9cd8" },
|
||||
"todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" },
|
||||
"tokyonight.nvim": { "branch": "main", "commit": "dca4adba7dc5f09302a00b0e76078d54d82d2658" },
|
||||
"trouble.nvim": { "branch": "main", "commit": "f176232e7759c4f8abd923c21e3e5a5c76cd6837" },
|
||||
"ts-comments.nvim": { "branch": "main", "commit": "1bd9d0ba1d8b336c3db50692ffd0955fe1bb9f0c" },
|
||||
"venv-selector.nvim": { "branch": "main", "commit": "2b49d1f8b8fcf5cfbd0913136f48f118225cca5d" },
|
||||
"vim-dadbod": { "branch": "master", "commit": "e95afed23712f969f83b4857a24cf9d59114c2e6" },
|
||||
"vim-dadbod-completion": { "branch": "master", "commit": "a8dac0b3cf6132c80dc9b18bef36d4cf7a9e1fe6" },
|
||||
"vim-dadbod-ui": { "branch": "master", "commit": "e8b53c0f3aa6e6127ac2a2d2071d9aade6c6e373" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" },
|
||||
"yanky.nvim": { "branch": "main", "commit": "04775cc6e10ef038c397c407bc17f00a2f52b378" }
|
||||
}
|
39
nvim/.config/nvim/lazyvim.json
Normal file
39
nvim/.config/nvim/lazyvim.json
Normal file
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"extras": [
|
||||
"lazyvim.plugins.extras.coding.luasnip",
|
||||
"lazyvim.plugins.extras.coding.mini-comment",
|
||||
"lazyvim.plugins.extras.coding.mini-surround",
|
||||
"lazyvim.plugins.extras.coding.nvim-cmp",
|
||||
"lazyvim.plugins.extras.coding.yanky",
|
||||
"lazyvim.plugins.extras.dap.core",
|
||||
"lazyvim.plugins.extras.formatting.biome",
|
||||
"lazyvim.plugins.extras.lang.ansible",
|
||||
"lazyvim.plugins.extras.lang.clangd",
|
||||
"lazyvim.plugins.extras.lang.clojure",
|
||||
"lazyvim.plugins.extras.lang.cmake",
|
||||
"lazyvim.plugins.extras.lang.docker",
|
||||
"lazyvim.plugins.extras.lang.elixir",
|
||||
"lazyvim.plugins.extras.lang.git",
|
||||
"lazyvim.plugins.extras.lang.gleam",
|
||||
"lazyvim.plugins.extras.lang.go",
|
||||
"lazyvim.plugins.extras.lang.java",
|
||||
"lazyvim.plugins.extras.lang.json",
|
||||
"lazyvim.plugins.extras.lang.markdown",
|
||||
"lazyvim.plugins.extras.lang.python",
|
||||
"lazyvim.plugins.extras.lang.ruby",
|
||||
"lazyvim.plugins.extras.lang.rust",
|
||||
"lazyvim.plugins.extras.lang.scala",
|
||||
"lazyvim.plugins.extras.lang.sql",
|
||||
"lazyvim.plugins.extras.lang.tailwind",
|
||||
"lazyvim.plugins.extras.lang.terraform",
|
||||
"lazyvim.plugins.extras.lang.typescript",
|
||||
"lazyvim.plugins.extras.lsp.none-ls",
|
||||
"lazyvim.plugins.extras.util.mini-hipatterns",
|
||||
"lazyvim.plugins.extras.util.project"
|
||||
],
|
||||
"install_version": 7,
|
||||
"news": {
|
||||
"NEWS.md": "11866"
|
||||
},
|
||||
"version": 8
|
||||
}
|
8
nvim/.config/nvim/lua/config/autocmds.lua
Normal file
8
nvim/.config/nvim/lua/config/autocmds.lua
Normal file
@@ -0,0 +1,8 @@
|
||||
-- Autocmds are automatically loaded on the VeryLazy event
|
||||
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
|
||||
--
|
||||
-- Add any additional autocmds here
|
||||
-- with `vim.api.nvim_create_autocmd`
|
||||
--
|
||||
-- Or remove existing autocmds by their group name (which is prefixed with `lazyvim_` for the defaults)
|
||||
-- e.g. vim.api.nvim_del_augroup_by_name("lazyvim_wrap_spell")
|
19
nvim/.config/nvim/lua/config/keymaps.lua
Normal file
19
nvim/.config/nvim/lua/config/keymaps.lua
Normal file
@@ -0,0 +1,19 @@
|
||||
-- Keymaps are automatically loaded on the VeryLazy event
|
||||
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
|
||||
-- Add any additional keymaps here
|
||||
local Util = require("lazyvim.util")
|
||||
local function map(mode, lhs, rhs, opts)
|
||||
local keys = require("lazy.core.handler").handlers.keys
|
||||
---@cast keys LazyKeysHandler
|
||||
-- do not create the keymap if a lazy keys handler exists
|
||||
if not keys.active[keys.parse({ lhs, mode = mode }).id] then
|
||||
opts = opts or {}
|
||||
opts.silent = opts.silent ~= false
|
||||
vim.keymap.set(mode, lhs, rhs, opts)
|
||||
end
|
||||
end
|
||||
|
||||
map("n", "<C-h>", "<cmd>lua require'tmux'.move_left()<cr>", { desc = "Go to left window" })
|
||||
map("n", "<C-j>", "<cmd>lua require'tmux'.move_bottom()<cr>", { desc = "Go to lower window" })
|
||||
map("n", "<C-k>", "<cmd>lua require'tmux'.move_top()<cr>", { desc = "Go to upper window" })
|
||||
map("n", "<C-l>", "<cmd>lua require'tmux'.move_right()<cr>", { desc = "Go to right window" })
|
53
nvim/.config/nvim/lua/config/lazy.lua
Normal file
53
nvim/.config/nvim/lua/config/lazy.lua
Normal file
@@ -0,0 +1,53 @@
|
||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
|
||||
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
|
||||
if vim.v.shell_error ~= 0 then
|
||||
vim.api.nvim_echo({
|
||||
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
|
||||
{ out, "WarningMsg" },
|
||||
{ "\nPress any key to exit..." },
|
||||
}, true, {})
|
||||
vim.fn.getchar()
|
||||
os.exit(1)
|
||||
end
|
||||
end
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
require("lazy").setup({
|
||||
spec = {
|
||||
-- add LazyVim and import its plugins
|
||||
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
|
||||
-- import/override with your plugins
|
||||
{ import = "plugins" },
|
||||
},
|
||||
defaults = {
|
||||
-- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
|
||||
-- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
|
||||
lazy = false,
|
||||
-- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
|
||||
-- have outdated releases, which may break your Neovim install.
|
||||
version = false, -- always use the latest git commit
|
||||
-- version = "*", -- try installing the latest stable version for plugins that support semver
|
||||
},
|
||||
install = { colorscheme = {} },
|
||||
checker = {
|
||||
enabled = true, -- check for plugin updates periodically
|
||||
notify = false, -- notify on update
|
||||
}, -- automatically check for plugin updates
|
||||
performance = {
|
||||
rtp = {
|
||||
-- disable some rtp plugins
|
||||
disabled_plugins = {
|
||||
"gzip",
|
||||
-- "matchit",
|
||||
-- "matchparen",
|
||||
-- "netrwPlugin",
|
||||
"tarPlugin",
|
||||
"tohtml",
|
||||
"tutor",
|
||||
"zipPlugin",
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
21
nvim/.config/nvim/lua/config/options.lua
Normal file
21
nvim/.config/nvim/lua/config/options.lua
Normal file
@@ -0,0 +1,21 @@
|
||||
-- Options are automatically loaded before lazy.nvim startup
|
||||
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
|
||||
-- Add any additional options here
|
||||
vim.opt.wrap = true
|
||||
vim.opt.swapfile = false
|
||||
|
||||
require("noice").setup({
|
||||
routes = {
|
||||
{
|
||||
filter = {
|
||||
event = "lsp",
|
||||
kind = "progress",
|
||||
cond = function(message)
|
||||
local client = vim.tbl_get(message.opts, "progress", "client")
|
||||
return client == "jdtls"
|
||||
end,
|
||||
},
|
||||
opts = { skip = true },
|
||||
},
|
||||
},
|
||||
})
|
28
nvim/.config/nvim/lua/plugins/cmp.lua
Normal file
28
nvim/.config/nvim/lua/plugins/cmp.lua
Normal file
@@ -0,0 +1,28 @@
|
||||
return {
|
||||
"hrsh7th/nvim-cmp",
|
||||
init = function()
|
||||
vim.g.cmp_disabled = false -- Set the default state to enabled
|
||||
end,
|
||||
keys = {
|
||||
{
|
||||
"<leader>uA", -- Keybinding to toggle nvim-cmp
|
||||
function()
|
||||
vim.g.cmp_disabled = not vim.g.cmp_disabled -- Toggle the state
|
||||
|
||||
-- Update the nvim-cmp configuration dynamically
|
||||
require("cmp").setup({
|
||||
enabled = function()
|
||||
return not vim.g.cmp_disabled
|
||||
end,
|
||||
})
|
||||
|
||||
-- Notify the user of the current state
|
||||
local msg = vim.g.cmp_disabled and "Autocompletion (cmp) disabled" or "Autocompletion (cmp) enabled"
|
||||
vim.notify(msg, vim.log.levels.INFO)
|
||||
end,
|
||||
noremap = true,
|
||||
silent = true,
|
||||
desc = "Toggle autocompletion",
|
||||
},
|
||||
},
|
||||
}
|
12
nvim/.config/nvim/lua/plugins/colorscheme.lua
Normal file
12
nvim/.config/nvim/lua/plugins/colorscheme.lua
Normal file
@@ -0,0 +1,12 @@
|
||||
return {
|
||||
-- add gruvbox
|
||||
{ "gbprod/nord.nvim" },
|
||||
|
||||
-- Configure LazyVim to load gruvbox
|
||||
{
|
||||
"LazyVim/LazyVim",
|
||||
opts = {
|
||||
colorscheme = "nord",
|
||||
},
|
||||
},
|
||||
}
|
6
nvim/.config/nvim/lua/plugins/disabled.lua
Normal file
6
nvim/.config/nvim/lua/plugins/disabled.lua
Normal file
@@ -0,0 +1,6 @@
|
||||
return {
|
||||
{ "olical/conjure", enabled = false },
|
||||
{ "PaterJason/cmp-conjure", enabled = false },
|
||||
{ "folke/tokyonight.nvim", enabled = false },
|
||||
{ "catppuccin/nvim", enabled = false },
|
||||
}
|
9
nvim/.config/nvim/lua/plugins/discord.lua
Normal file
9
nvim/.config/nvim/lua/plugins/discord.lua
Normal file
@@ -0,0 +1,9 @@
|
||||
return {
|
||||
"IogaMaster/neocord",
|
||||
event = "VeryLazy",
|
||||
opts = function()
|
||||
return {
|
||||
require("neocord").setup({}),
|
||||
}
|
||||
end,
|
||||
}
|
19
nvim/.config/nvim/lua/plugins/lspconfig.lua
Normal file
19
nvim/.config/nvim/lua/plugins/lspconfig.lua
Normal file
@@ -0,0 +1,19 @@
|
||||
return {
|
||||
"nvim-lspconfig",
|
||||
opts = {
|
||||
inlay_hints = { enabled = false },
|
||||
servers = {
|
||||
rust_analyzer = {
|
||||
mason = false,
|
||||
},
|
||||
clangd = {
|
||||
mason = false,
|
||||
},
|
||||
setup = {
|
||||
clangd = function(_, opts)
|
||||
opts.capabilities.offsetEncoding = { "utf-16" }
|
||||
end,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
123
nvim/.config/nvim/lua/plugins/lualine.lua
Normal file
123
nvim/.config/nvim/lua/plugins/lualine.lua
Normal file
@@ -0,0 +1,123 @@
|
||||
return {
|
||||
"nvim-lualine/lualine.nvim",
|
||||
event = "VeryLazy",
|
||||
init = function()
|
||||
vim.g.lualine_laststatus = vim.o.laststatus
|
||||
if vim.fn.argc(-1) > 0 then
|
||||
-- set an empty statusline till lualine loads
|
||||
vim.o.statusline = " "
|
||||
else
|
||||
-- hide the statusline on the starter page
|
||||
vim.o.laststatus = 0
|
||||
end
|
||||
end,
|
||||
opts = function()
|
||||
-- PERF: we don't need this lualine require madness 🤷
|
||||
local lualine_require = require("lualine_require")
|
||||
lualine_require.require = require
|
||||
|
||||
local icons = LazyVim.config.icons
|
||||
|
||||
vim.o.laststatus = vim.g.lualine_laststatus
|
||||
|
||||
local opts = {
|
||||
options = {
|
||||
theme = "auto",
|
||||
globalstatus = vim.o.laststatus == 3,
|
||||
disabled_filetypes = { statusline = { "dashboard", "alpha", "ministarter", "snacks_dashboard" } },
|
||||
},
|
||||
sections = {
|
||||
lualine_a = { "mode" },
|
||||
lualine_b = { "branch" },
|
||||
|
||||
lualine_c = {
|
||||
LazyVim.lualine.root_dir(),
|
||||
{
|
||||
"diagnostics",
|
||||
symbols = {
|
||||
error = icons.diagnostics.Error,
|
||||
warn = icons.diagnostics.Warn,
|
||||
info = icons.diagnostics.Info,
|
||||
hint = icons.diagnostics.Hint,
|
||||
},
|
||||
},
|
||||
{ "filetype", icon_only = true, separator = "", padding = { left = 1, right = 0 } },
|
||||
{ LazyVim.lualine.pretty_path() },
|
||||
},
|
||||
lualine_x = {
|
||||
Snacks.profiler.status(),
|
||||
-- stylua: ignore
|
||||
{
|
||||
function() return require("noice").api.status.command.get() end,
|
||||
cond = function() return package.loaded["noice"] and require("noice").api.status.command.has() end,
|
||||
color = function() return { fg = Snacks.util.color("Statement") } end,
|
||||
},
|
||||
-- stylua: ignore
|
||||
{
|
||||
function() return require("noice").api.status.mode.get() end,
|
||||
cond = function() return package.loaded["noice"] and require("noice").api.status.mode.has() end,
|
||||
color = function() return { fg = Snacks.util.color("Constant") } end,
|
||||
},
|
||||
-- stylua: ignore
|
||||
{
|
||||
function() return " " .. require("dap").status() end,
|
||||
cond = function() return package.loaded["dap"] and require("dap").status() ~= "" end,
|
||||
color = function() return { fg = Snacks.util.color("Debug") } end,
|
||||
},
|
||||
-- stylua: ignore
|
||||
{
|
||||
require("lazy.status").updates,
|
||||
cond = require("lazy.status").has_updates,
|
||||
color = function() return { fg = Snacks.util.color("Special") } end,
|
||||
},
|
||||
{
|
||||
"diff",
|
||||
symbols = {
|
||||
added = icons.git.added,
|
||||
modified = icons.git.modified,
|
||||
removed = icons.git.removed,
|
||||
},
|
||||
source = function()
|
||||
local gitsigns = vim.b.gitsigns_status_dict
|
||||
if gitsigns then
|
||||
return {
|
||||
added = gitsigns.added,
|
||||
modified = gitsigns.changed,
|
||||
removed = gitsigns.removed,
|
||||
}
|
||||
end
|
||||
end,
|
||||
},
|
||||
},
|
||||
lualine_y = {
|
||||
{ "progress", separator = " ", padding = { left = 1, right = 0 } },
|
||||
{ "location", padding = { left = 0, right = 1 } },
|
||||
},
|
||||
lualine_z = {},
|
||||
},
|
||||
extensions = { "neo-tree", "lazy", "fzf" },
|
||||
}
|
||||
|
||||
-- do not add trouble symbols if aerial is enabled
|
||||
-- And allow it to be overriden for some buffer types (see autocmds)
|
||||
if vim.g.trouble_lualine and LazyVim.has("trouble.nvim") then
|
||||
local trouble = require("trouble")
|
||||
local symbols = trouble.statusline({
|
||||
mode = "symbols",
|
||||
groups = {},
|
||||
title = false,
|
||||
filter = { range = true },
|
||||
format = "{kind_icon}{symbol.name:Normal}",
|
||||
hl_group = "lualine_c_normal",
|
||||
})
|
||||
table.insert(opts.sections.lualine_c, {
|
||||
symbols and symbols.get,
|
||||
cond = function()
|
||||
return vim.b.trouble_lualine ~= false and symbols.has()
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
return opts
|
||||
end,
|
||||
}
|
41
nvim/.config/nvim/lua/plugins/supertab.lua
Normal file
41
nvim/.config/nvim/lua/plugins/supertab.lua
Normal file
@@ -0,0 +1,41 @@
|
||||
return {
|
||||
"hrsh7th/nvim-cmp",
|
||||
---@param opts cmp.ConfigSchema
|
||||
opts = function(_, opts)
|
||||
local has_words_before = function()
|
||||
unpack = unpack or table.unpack
|
||||
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
|
||||
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
|
||||
end
|
||||
|
||||
local cmp = require("cmp")
|
||||
|
||||
opts.mapping = vim.tbl_extend("force", opts.mapping, {
|
||||
["<Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
-- You could replace select_next_item() with confirm({ select = true }) to get VS Code autocompletion behavior
|
||||
cmp.select_next_item()
|
||||
elseif vim.snippet.active({ direction = 1 }) then
|
||||
vim.schedule(function()
|
||||
vim.snippet.jump(1)
|
||||
end)
|
||||
elseif has_words_before() then
|
||||
cmp.complete()
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
["<S-Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_prev_item()
|
||||
elseif vim.snippet.active({ direction = -1 }) then
|
||||
vim.schedule(function()
|
||||
vim.snippet.jump(-1)
|
||||
end)
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
})
|
||||
end,
|
||||
}
|
14
nvim/.config/nvim/lua/plugins/surround.lua
Normal file
14
nvim/.config/nvim/lua/plugins/surround.lua
Normal file
@@ -0,0 +1,14 @@
|
||||
return {
|
||||
"nvim-mini/mini.surround",
|
||||
opts = {
|
||||
mappings = {
|
||||
add = "gsa",
|
||||
delete = "gsd",
|
||||
find = "gsf",
|
||||
find_left = "gsF",
|
||||
highlight = "gsh",
|
||||
replace = "gsr",
|
||||
update_n_lines = "gsn",
|
||||
},
|
||||
},
|
||||
}
|
18
nvim/.config/nvim/lua/plugins/tmux.lua
Normal file
18
nvim/.config/nvim/lua/plugins/tmux.lua
Normal file
@@ -0,0 +1,18 @@
|
||||
return {
|
||||
{
|
||||
"aserowy/tmux.nvim",
|
||||
config = function()
|
||||
require("tmux").setup({
|
||||
copy_sync = {
|
||||
enable = false,
|
||||
},
|
||||
navigation = {
|
||||
enable_default_keybindings = true,
|
||||
},
|
||||
resize = {
|
||||
enable_default_keybindings = true,
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
}
|
3
nvim/.config/nvim/stylua.toml
Normal file
3
nvim/.config/nvim/stylua.toml
Normal file
@@ -0,0 +1,3 @@
|
||||
indent_type = "Spaces"
|
||||
indent_width = 2
|
||||
column_width = 120
|
13
pacman-hooks/Desktop/98-secureboot-grub.hook
Normal file
13
pacman-hooks/Desktop/98-secureboot-grub.hook
Normal file
@@ -0,0 +1,13 @@
|
||||
[Trigger]
|
||||
Operation = Install
|
||||
Operation = Upgrade
|
||||
Type = Package
|
||||
Target = grub
|
||||
|
||||
[Action]
|
||||
Description = Signing GRUB for SecureBoot
|
||||
When = PostTransaction
|
||||
Exec = /usr/bin/find /efi/ -name 'grubx64' -exec /usr/bin/sh -c 'if ! /usr/bin/sbverify --list {} 2>/dev/null | /usr/bin/grep -q "signature certificates"; then /usr/bin/sbsign --key /db.key --cert /db.crt --output {} {}; fi' \ ;
|
||||
Depends = sbsigntools
|
||||
Depends = findutils
|
||||
Depends = grep
|
13
pacman-hooks/Desktop/99-secureboot-linux.hook
Normal file
13
pacman-hooks/Desktop/99-secureboot-linux.hook
Normal file
@@ -0,0 +1,13 @@
|
||||
[Trigger]
|
||||
Operation = Install
|
||||
Operation = Upgrade
|
||||
Type = Package
|
||||
Target = linux
|
||||
|
||||
[Action]
|
||||
Description = Signing Kernel for SecureBoot
|
||||
When = PostTransaction
|
||||
Exec = /usr/bin/find /boot/ -maxdepth 1 -name 'vmlinuz-*' -exec /usr/bin/sh -c 'if ! /usr/bin/sbverify --list {} 2>/dev/null | /usr/bin/grep -q "signature certificates"; then /usr/bin/sbsign --key /db.key --cert /db.crt --output {} {}; fi' \ ;
|
||||
Depends = sbsigntools
|
||||
Depends = findutils
|
||||
Depends = grep
|
149
pacman-pkg-list/pkglist
Normal file
149
pacman-pkg-list/pkglist
Normal file
@@ -0,0 +1,149 @@
|
||||
adobe-source-han-sans-jp-fonts
|
||||
adobe-source-han-serif-jp-fonts
|
||||
aspell
|
||||
aspell-en
|
||||
autoconf
|
||||
automake
|
||||
base
|
||||
bash-completion
|
||||
bat
|
||||
bear
|
||||
biber
|
||||
bison
|
||||
bpytop
|
||||
clang
|
||||
clojure
|
||||
cmake
|
||||
cronie
|
||||
dart-sass
|
||||
dhcpcd
|
||||
direnv
|
||||
discount
|
||||
docker
|
||||
efibootmgr
|
||||
efitools
|
||||
exa
|
||||
fakeroot
|
||||
fd
|
||||
ffmpegthumbnailer
|
||||
firefox
|
||||
fish
|
||||
flex
|
||||
fvextra
|
||||
fzf
|
||||
gcc
|
||||
ghc
|
||||
git
|
||||
git-delta
|
||||
glow
|
||||
go
|
||||
go-tools
|
||||
gopls
|
||||
grim
|
||||
grub
|
||||
hdparm
|
||||
imv
|
||||
inetutils
|
||||
intel-ucode
|
||||
isync
|
||||
kitty
|
||||
kubectl
|
||||
leiningen
|
||||
libgccjit
|
||||
libreoffice-fresh
|
||||
libva-intel-driver
|
||||
libva-utils
|
||||
light
|
||||
linux
|
||||
linux-firmware
|
||||
llvm
|
||||
lnav
|
||||
lvm2
|
||||
lxappearance
|
||||
m4
|
||||
make
|
||||
mako
|
||||
man-db
|
||||
minikube
|
||||
mkinitcpio
|
||||
mosh
|
||||
mpv
|
||||
msmtp
|
||||
neofetch
|
||||
neomutt
|
||||
neovim
|
||||
networkmanager
|
||||
newsboat
|
||||
nnn
|
||||
noto-fonts-cjk
|
||||
noto-fonts-emoji
|
||||
noto-fonts-extra
|
||||
npm
|
||||
openresolv
|
||||
openssh
|
||||
os-prober
|
||||
pass
|
||||
patch
|
||||
pavucontrol
|
||||
pcmanfm-gtk3
|
||||
picard
|
||||
pipewire-pulse
|
||||
pkgconf
|
||||
poppler-glib
|
||||
postgresql
|
||||
pulsemixer
|
||||
pyright
|
||||
python-packaging
|
||||
python-pip
|
||||
python-poetry
|
||||
qt5-wayland
|
||||
qt6-wayland
|
||||
ranger
|
||||
redis
|
||||
rsync
|
||||
rust-analyzer
|
||||
sbsigntools
|
||||
seatd
|
||||
slurp
|
||||
stow
|
||||
sudo
|
||||
sway
|
||||
swayidle
|
||||
swaylock
|
||||
syncthing
|
||||
texlive-bibtexextra
|
||||
texlive-core
|
||||
texlive-fontsextra
|
||||
texlive-formatsextra
|
||||
texlive-games
|
||||
texlive-humanities
|
||||
texlive-latexextra
|
||||
texlive-music
|
||||
texlive-pictures
|
||||
texlive-pstricks
|
||||
texlive-publishers
|
||||
texlive-science
|
||||
tmux
|
||||
trash-cli
|
||||
ttf-font-awesome
|
||||
ttf-ibm-plex
|
||||
ttf-liberation
|
||||
ttf-overpass
|
||||
udiskie
|
||||
ufw
|
||||
unzip
|
||||
vim
|
||||
waybar
|
||||
wget
|
||||
which
|
||||
wireguard-tools
|
||||
wl-clipboard
|
||||
wofi
|
||||
wpa_supplicant
|
||||
xdg-desktop-portal-wlr
|
||||
yt-dlp
|
||||
zathura
|
||||
zathura-djvu
|
||||
zathura-pdf-mupdf
|
||||
zip
|
||||
zsh
|
@@ -5,9 +5,6 @@
|
||||
# Read `man 5 sway` for a complete reference.
|
||||
#
|
||||
|
||||
# dbus stuffs that idc
|
||||
exec dbus-daemon --session --address=unix:path=$XDG_RUNTIME_DIR/bus
|
||||
|
||||
# notification
|
||||
exec mako
|
||||
|
||||
@@ -15,13 +12,10 @@ exec mako
|
||||
exec udiskie
|
||||
|
||||
# night light and some gamma decrease
|
||||
exec wlsunset -l 45.6 -L -73.5 -g 0.8
|
||||
exec wlsunset -l 45.6 -L -73.5 -g 0.7
|
||||
|
||||
# bspwm throw back
|
||||
exec autotiling
|
||||
|
||||
# window manager
|
||||
exec env RUST_BACKTRACE=1 swayrd > /tmp/swayrd.log 2>&1
|
||||
exec /usr/bin/autotiling
|
||||
|
||||
#============================clipman=====================================================
|
||||
exec wl-paste -p -t text --watch clipman store -P --histpath="~/.local/share/clipman/clipman-primary.json"
|
||||
@@ -49,42 +43,46 @@ default_border pixel 5
|
||||
|
||||
font pango:FiraCodeNerdFontMono Regular 11
|
||||
|
||||
# # class border bground text indicator child_border
|
||||
client.focused #F3722C #EBDBB2 #3C3836 #D65D0E #FE8019
|
||||
client.unfocused #3C3836 #3C3836 #EBDBB2 #CC241D #504945
|
||||
client.focused_inactive #3C3836 #EBDBB2 #3C3836 #000000 #00000000
|
||||
# Window decoration
|
||||
# class border backgr. text indicator child_border
|
||||
client.focused #5e81ac #5e81ac #eceff4 #434c5e #5e81ac
|
||||
client.focused_inactive #4c566a #4c566a #d8dee9 #3b4252 #434c5e
|
||||
client.unfocused #4c566a #4c566a #d8dee9 #3b4252 #434c5e
|
||||
client.urgent #bf616a #bf616a #eceff4 #900000 #bf616a
|
||||
client.placeholder #000000 #0c0c0c #eceff4 #000000 #0c0c0c
|
||||
|
||||
# Additionally, you can issue commands with the following syntax. This is useful to bind keys to changing the gap size.
|
||||
gaps inner 6
|
||||
gaps outer 3
|
||||
|
||||
# Key repeat rate
|
||||
input type:keyboard {
|
||||
repeat_delay 300
|
||||
repeat_rate 30
|
||||
}
|
||||
|
||||
### Output configuration
|
||||
#
|
||||
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
|
||||
output * bg /home/minhradz/Downloads/lantern.jpg fill
|
||||
#
|
||||
# Example configuration:
|
||||
#
|
||||
|
||||
output LVDS-1 pos 0 0 res 1366x768
|
||||
output DP-1 res 1920x1080 position 1366,0
|
||||
#
|
||||
# You can get the names of your outputs by running: swaymsg -t get_outputs
|
||||
#
|
||||
output * bg /home/minhradz/Downloads/wall.png fill
|
||||
|
||||
### Idle configuration
|
||||
output HDMI-A-1 res 1920x1080 position 0,0
|
||||
|
||||
## Idle configuration
|
||||
exec swayidle -w \
|
||||
timeout 300 'swaylock -f -c 000000' \
|
||||
timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \
|
||||
before-sleep 'swaylock -f -c 000000'
|
||||
timeout 1800 'swaylock --ignore-empty-password --show-failed-attempts -f -c 000000' \
|
||||
timeout 1800 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \
|
||||
before-sleep 'swaylock --ignore-empty-password --show-failed-attempts -f -c 000000'
|
||||
|
||||
for_window [title="Firefox — Sharing Indicator"] floating enable
|
||||
for_window [title="Firefox — Sharing Indicator"] nofocus
|
||||
for_window [app_id="mpv"] inhibit_idle visible; border none; max_render_time off
|
||||
for_window [app_id="soffice.bin"] inhibit_idle visible; border none; max_render_time off
|
||||
for_window [class="firefox"] inhibit_idle fullscreen; max_render_time off
|
||||
for_window [app_id="firefox"] inhibit_idle fullscreen; max_render_time off
|
||||
for_window [app_id="librewolf"] inhibit_idle fullscreen; max_render_time off
|
||||
for_window [app_id="jellyfinmediaplayer"] inhibit_idle fullscreen; max_render_time off
|
||||
for_window [app_id="zathura"] inhibit_idle visible; max_render_time off
|
||||
for_window [app_id="kitty"] inhibit_idle visible; max_render_time off
|
||||
for_window [app_id="emacs"] inhibit_idle visible; max_render_time off
|
||||
|
||||
### Input configuration
|
||||
#
|
||||
@@ -119,12 +117,16 @@ for_window [app_id="jellyfinmediaplayer"] inhibit_idle fullscreen; max_render_ti
|
||||
bindsym $mod+Shift+c reload
|
||||
|
||||
# Exit sway (logs you out of your Wayland session)
|
||||
bindsym $mod+Shift+e exec exec wlogout
|
||||
bindsym $mod+Shift+e exec wlogout
|
||||
|
||||
# clipboard manager
|
||||
bindsym $mod+p exec clipman pick -t wofi
|
||||
|
||||
bindsym $mod+t exec firefox
|
||||
|
||||
bindsym $mod+y exec youtube-watch
|
||||
|
||||
bindsym $mod+o exec slurp | grim -g - $(xdg-user-dir PICTURES)/$(date +'screenshot_%Y-%m-%d-%H%M%S.png')
|
||||
#
|
||||
# Moving around:
|
||||
#
|
||||
@@ -150,6 +152,9 @@ for_window [app_id="jellyfinmediaplayer"] inhibit_idle fullscreen; max_render_ti
|
||||
#
|
||||
# Workspaces:
|
||||
#
|
||||
# Switch to last workspace
|
||||
bindsym $mod+Tab workspace back_and_forth
|
||||
|
||||
# Switch to workspace
|
||||
bindsym $mod+1 workspace number 1
|
||||
bindsym $mod+2 workspace number 2
|
||||
@@ -161,6 +166,30 @@ for_window [app_id="jellyfinmediaplayer"] inhibit_idle fullscreen; max_render_ti
|
||||
bindsym $mod+8 workspace number 8
|
||||
bindsym $mod+9 workspace number 9
|
||||
bindsym $mod+0 workspace number 10
|
||||
|
||||
# workspaces from 11-20
|
||||
bindsym $mod+Control+1 workspace 11
|
||||
bindsym $mod+Control+2 workspace 12
|
||||
bindsym $mod+Control+3 workspace 13
|
||||
bindsym $mod+Control+4 workspace 14
|
||||
bindsym $mod+Control+5 workspace 15
|
||||
bindsym $mod+Control+6 workspace 16
|
||||
bindsym $mod+Control+7 workspace 17
|
||||
bindsym $mod+Control+8 workspace 18
|
||||
bindsym $mod+Control+9 workspace 19
|
||||
bindsym $mod+Control+0 workspace 20
|
||||
|
||||
bindsym $mod+Alt+1 workspace 21
|
||||
bindsym $mod+Alt+2 workspace 22
|
||||
bindsym $mod+Alt+3 workspace 23
|
||||
bindsym $mod+Alt+4 workspace 24
|
||||
bindsym $mod+Alt+5 workspace 25
|
||||
bindsym $mod+Alt+6 workspace 26
|
||||
bindsym $mod+Alt+7 workspace 27
|
||||
bindsym $mod+Alt+8 workspace 28
|
||||
bindsym $mod+Alt+9 workspace 29
|
||||
bindsym $mod+Alt+0 workspace 30
|
||||
|
||||
# Move focused container to workspace
|
||||
bindsym $mod+Shift+1 move container to workspace number 1
|
||||
bindsym $mod+Shift+2 move container to workspace number 2
|
||||
@@ -172,6 +201,29 @@ for_window [app_id="jellyfinmediaplayer"] inhibit_idle fullscreen; max_render_ti
|
||||
bindsym $mod+Shift+8 move container to workspace number 8
|
||||
bindsym $mod+Shift+9 move container to workspace number 9
|
||||
bindsym $mod+Shift+0 move container to workspace number 10
|
||||
|
||||
bindsym $mod+Control+Shift+1 move container to workspace 11
|
||||
bindsym $mod+Control+Shift+2 move container to workspace 12
|
||||
bindsym $mod+Control+Shift+3 move container to workspace 13
|
||||
bindsym $mod+Control+Shift+4 move container to workspace 14
|
||||
bindsym $mod+Control+Shift+5 move container to workspace 15
|
||||
bindsym $mod+Control+Shift+6 move container to workspace 16
|
||||
bindsym $mod+Control+Shift+7 move container to workspace 17
|
||||
bindsym $mod+Control+Shift+8 move container to workspace 18
|
||||
bindsym $mod+Control+Shift+9 move container to workspace 19
|
||||
bindsym $mod+Control+Shift+0 move container to workspace 20
|
||||
|
||||
bindsym $mod+Alt+Shift+1 move container to workspace 21
|
||||
bindsym $mod+Alt+Shift+2 move container to workspace 22
|
||||
bindsym $mod+Alt+Shift+3 move container to workspace 23
|
||||
bindsym $mod+Alt+Shift+4 move container to workspace 24
|
||||
bindsym $mod+Alt+Shift+5 move container to workspace 25
|
||||
bindsym $mod+Alt+Shift+6 move container to workspace 26
|
||||
bindsym $mod+Alt+Shift+7 move container to workspace 27
|
||||
bindsym $mod+Alt+Shift+8 move container to workspace 28
|
||||
bindsym $mod+Alt+Shift+9 move container to workspace 29
|
||||
bindsym $mod+Alt+Shift+0 move container to workspace 30
|
||||
|
||||
# Note: workspaces can have any name you want, not just numbers.
|
||||
# We just use 1-10 as the default.
|
||||
#
|
||||
@@ -227,14 +279,13 @@ mode "resize" {
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
|
||||
bindsym $mod+r mode "resize"
|
||||
bindsym $mod+e exec emacsclient -nc
|
||||
|
||||
bindsym $mod+Right workspace next
|
||||
bindsym $mod+Left workspace prev
|
||||
|
||||
bindsym $mod+Tab exec swayr next-window current-workspace
|
||||
|
||||
#
|
||||
# Status Bar:
|
||||
#
|
||||
@@ -245,8 +296,8 @@ bar {
|
||||
|
||||
include /etc/sway/config.d/*
|
||||
|
||||
bindsym XF86AudioRaiseVolume exec pulsemixer --change-volume +2 && pulsemixer --get-volume > $SWAYSOCK.wob
|
||||
bindsym XF86AudioLowerVolume exec pulsemixer --change-volume -2 && pulsemixer --get-volume > $SWAYSOCK.wob
|
||||
bindsym XF86AudioRaiseVolume exec pactl -- set-sink-volume 0 +5% > $SWAYSOCK.wob
|
||||
bindsym XF86AudioLowerVolume exec pactl -- set-sink-volume 0 -5% > $SWAYSOCK.wob
|
||||
bindsym XF86AudioMute exec pulsemixer --toggle-mute && ( pulsemixer --get-mute && echo 0 > $SWAYSOCK.wob ) || pamixer --get-volume > $SWAYSOCK.wob
|
||||
bindsym XF86MonBrightnessUp exec light -A 10
|
||||
bindsym XF86MonBrightnessDown exec light -U 10
|
||||
|
@@ -1,3 +1,5 @@
|
||||
set-environment -g PATH "/usr/local/bin:/bin:/usr/bin"
|
||||
|
||||
# remap prefix from 'C-b' to 'C-a'
|
||||
unbind C-b
|
||||
set-option -g prefix C-a
|
||||
@@ -12,8 +14,9 @@ unbind %
|
||||
|
||||
set-option -g default-shell /usr/bin/fish
|
||||
|
||||
# index number starts at 1
|
||||
# window and pane index number starts at 1
|
||||
set -g base-index 1
|
||||
setw -g pane-base-index 1
|
||||
|
||||
# vi-mode
|
||||
set-window-option -g mode-keys vi
|
||||
@@ -23,17 +26,38 @@ bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'wl-copy'
|
||||
# reload config file (change file location to your the tmux.conf you want to use)
|
||||
bind r source-file /home/minhradz/.tmux.conf
|
||||
|
||||
# switch panes using Alt-arrow without prefix
|
||||
bind -n M-Left select-pane -L
|
||||
bind -n M-Right select-pane -R
|
||||
bind -n M-Up select-pane -U
|
||||
bind -n M-Down select-pane -D
|
||||
# is_vim="children=(); i=0; pids=( $(ps -o pid= -t '#{pane_tty}') ); \
|
||||
# while read -r c p; do [[ -n c && c -ne p && p -ne 0 ]] && children[p]+=\" $\{c\}\"; done <<< \"$(ps -Ao pid=,ppid=)\"; \
|
||||
# while (( $\{#pids[@]\} > i )); do pid=$\{pids[i++]\}; pids+=( $\{children[pid]-\} ); done; \
|
||||
# ps -o state=,comm= -p \"$\{pids[@]\}\" | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|l?vim?x?)(diff)?$'"
|
||||
|
||||
is_vim="ps -o state= -o comm= -t '#{pane_tty}' | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
|
||||
|
||||
bind-key -n 'C-h' if-shell "$is_vim" 'send-keys C-h' { if -F '#{pane_at_left}' '' 'select-pane -L' }
|
||||
bind-key -n 'C-j' if-shell "$is_vim" 'send-keys C-j' { if -F '#{pane_at_bottom}' '' 'select-pane -D' }
|
||||
bind-key -n 'C-k' if-shell "$is_vim" 'send-keys C-k' { if -F '#{pane_at_top}' '' 'select-pane -U' }
|
||||
bind-key -n 'C-l' if-shell "$is_vim" 'send-keys C-l' { if -F '#{pane_at_right}' '' 'select-pane -R' }
|
||||
|
||||
bind-key -T copy-mode-vi 'C-h' if -F '#{pane_at_left}' '' 'select-pane -L'
|
||||
bind-key -T copy-mode-vi 'C-j' if -F '#{pane_at_bottom}' '' 'select-pane -D'
|
||||
bind-key -T copy-mode-vi 'C-k' if -F '#{pane_at_top}' '' 'select-pane -U'
|
||||
bind-key -T copy-mode-vi 'C-l' if -F '#{pane_at_right}' '' 'select-pane -R'
|
||||
|
||||
bind -n 'M-h' if-shell "$is_vim" 'send-keys M-h' 'resize-pane -L 1'
|
||||
bind -n 'M-j' if-shell "$is_vim" 'send-keys M-j' 'resize-pane -D 1'
|
||||
bind -n 'M-k' if-shell "$is_vim" 'send-keys M-k' 'resize-pane -U 1'
|
||||
bind -n 'M-l' if-shell "$is_vim" 'send-keys M-l' 'resize-pane -R 1'
|
||||
|
||||
bind-key -T copy-mode-vi M-h resize-pane -L 1
|
||||
bind-key -T copy-mode-vi M-j resize-pane -D 1
|
||||
bind-key -T copy-mode-vi M-k resize-pane -U 1
|
||||
bind-key -T copy-mode-vi M-l resize-pane -R 1
|
||||
|
||||
# Enable mouse mode (tmux 2.1 and above)
|
||||
set -g mouse on
|
||||
|
||||
# Neovim escape time
|
||||
set-option -sg escape-time 10
|
||||
set-option -sg escape-time 1
|
||||
set-option -g focus-events on
|
||||
|
||||
######################
|
||||
@@ -49,11 +73,9 @@ set -g bell-action none
|
||||
|
||||
# List of plugins
|
||||
set -g @plugin 'tmux-plugins/tpm'
|
||||
set -g @plugin 'egel/tmux-gruvbox'
|
||||
set -g @plugin "arcticicestudio/nord-tmux"
|
||||
set -g @plugin 'tmux-plugins/tmux-resurrect'
|
||||
set -g @plugin 'tmux-plugins/tmux-continuum'
|
||||
|
||||
set -g @tmux-gruvbox 'dark' # or 'light'
|
||||
|
||||
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
|
||||
run -b '~/.tmux/plugins/tpm/tpm'
|
||||
|
@@ -1,37 +1,46 @@
|
||||
// Gruvbox Material theme
|
||||
// Nord theme
|
||||
$nord0: #2e3440;
|
||||
$nord1: #3b4252;
|
||||
$nord2: #434c5e;
|
||||
$nord3: #4c566a;
|
||||
$nord4: #d8dee9;
|
||||
$nord5: #e5e9f0;
|
||||
$nord6: #eceff4;
|
||||
$nord8: #88c0d0;
|
||||
$nord9: #81a1c1;
|
||||
|
||||
$red: #ea6962;
|
||||
$orange: #e78a4e;
|
||||
$yellow: #d8a657;
|
||||
$green: #a9b665;
|
||||
$cyan: #89b482;
|
||||
$blue: #7daea3;
|
||||
$magenta: #d3869b;
|
||||
$blue: #5e81ac;
|
||||
$red: #bf616a;
|
||||
$cyan: #8fbcbb;
|
||||
$orange: #d08770;
|
||||
$yellow: #ebcb8b;
|
||||
$green: #a3be8c;
|
||||
$magenta: #b48ead;
|
||||
|
||||
$bg: #464646;
|
||||
$fg: $orange;
|
||||
$bg: $nord1;
|
||||
$fg: $magenta;
|
||||
|
||||
$fg-opposite: scale-color($fg, $lightness: -25%, $saturation: -15%);
|
||||
$fg-opposite: scale-color($fg, $lightness: -25%, $saturation: -15%);
|
||||
|
||||
// Box shadow of modules automatically calculated from the background color
|
||||
$shadow: scale-color($bg, $lightness: -34%, $saturation: -28%);
|
||||
$shadow: scale-color($bg, $lightness: -34%, $saturation: -28%);
|
||||
|
||||
$fg-alt: $shadow;
|
||||
$fg-alt: $shadow;
|
||||
@if lightness($bg) < 50% {
|
||||
$fg-alt: scale-color($bg, $lightness: 27%);
|
||||
$fg-alt: scale-color($bg, $lightness: 27%);
|
||||
}
|
||||
|
||||
// Accent color used by the River active tags
|
||||
$accent-color: $fg;
|
||||
$accent-color: $fg;
|
||||
|
||||
// Foreground + accent color for modules w/o backgrounds
|
||||
$fg-no-bg: $fg;
|
||||
$accent-color-no-bg: $shadow;
|
||||
$fg-no-bg: $fg;
|
||||
$accent-color-no-bg: $shadow;
|
||||
|
||||
// Set this to true or false depending if the mpd module is readable
|
||||
$dark-theme: true;
|
||||
$dark-theme: true;
|
||||
|
||||
@if $dark-theme {
|
||||
$fg-no-bg: $fg-opposite;
|
||||
$accent-color-no-bg: $bg;
|
||||
$fg-no-bg: $fg-opposite;
|
||||
$accent-color-no-bg: $bg;
|
||||
}
|
||||
|
@@ -29,8 +29,26 @@
|
||||
"8": "八",
|
||||
"9": "九",
|
||||
"10": "十",
|
||||
"focused": "",
|
||||
"default": ""
|
||||
"11": "十一",
|
||||
"12": "十二",
|
||||
"13": "十三",
|
||||
"14": "十四",
|
||||
"15": "十五",
|
||||
"16": "十六",
|
||||
"17": "十七",
|
||||
"18": "十八",
|
||||
"19": "十九",
|
||||
"20": "二十",
|
||||
"21": "二十一",
|
||||
"22": "二十二",
|
||||
"23": "二十三",
|
||||
"24": "二十四",
|
||||
"25": "二十五",
|
||||
"26": "二十六",
|
||||
"27": "二十七",
|
||||
"28": "二十八",
|
||||
"29": "二十九",
|
||||
"30": "三十"
|
||||
}
|
||||
},
|
||||
"cpu": {
|
||||
@@ -40,7 +58,8 @@
|
||||
"states": {
|
||||
"warning": 70,
|
||||
"critical": 90
|
||||
}
|
||||
},
|
||||
"on-click": ""
|
||||
},
|
||||
"memory": {
|
||||
"interval": 5,
|
||||
@@ -49,6 +68,7 @@
|
||||
"warning": 70,
|
||||
"critical": 90
|
||||
},
|
||||
"on-click": ""
|
||||
},
|
||||
|
||||
"battery": {
|
||||
@@ -64,7 +84,8 @@
|
||||
"",
|
||||
"",
|
||||
""
|
||||
]
|
||||
],
|
||||
"on-click": ""
|
||||
},
|
||||
|
||||
"tray": {
|
||||
@@ -75,11 +96,15 @@
|
||||
"clock": {
|
||||
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
|
||||
"format": "{:%I:%M %p}",
|
||||
"timezone": "America/Toronto",
|
||||
"on-click": ""
|
||||
},
|
||||
|
||||
"clock#date": {
|
||||
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
|
||||
"format": "{:%B %d, %A}",
|
||||
"timezone": "America/Toronto",
|
||||
"on-click": ""
|
||||
},
|
||||
|
||||
"pulseaudio": {
|
||||
|
@@ -2,14 +2,14 @@
|
||||
#pulseaudio, #clock, #tags, #language, #memory, #network, #sndio,
|
||||
#mode, #window, #workspaces, #temperature, #taskbar, #workspaces,
|
||||
#custom-treefetch-downloads, #custom-update-count {
|
||||
box-shadow: 4px 4px 0 #2e2e2e;
|
||||
box-shadow: 4px 4px 0 #292c34;
|
||||
margin-bottom: 4px;
|
||||
margin-right: 4px;
|
||||
margin-left: 3px;
|
||||
margin-right: 7px;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
background: #464646;
|
||||
background: #3b4252;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
@@ -18,18 +18,18 @@
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
color: #d8a657;
|
||||
color: #ebcb8b;
|
||||
margin: 0;
|
||||
padding: 1px 1px 0px 1px;
|
||||
}
|
||||
|
||||
#workspaces button.focused {
|
||||
border: 1px solid #e78a4e;
|
||||
border: 1px solid #b48ead;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background: transparent;
|
||||
color: #e78a4e;
|
||||
color: #b48ead;
|
||||
}
|
||||
|
||||
.modules-left, .modules-center, .modules-right {
|
||||
@@ -57,17 +57,17 @@ window#waybar {
|
||||
}
|
||||
|
||||
#mpd {
|
||||
color: #464646;
|
||||
color: #3b4252;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
#custom-mpd-song-scroll {
|
||||
color: #bf6429;
|
||||
color: #8d6486;
|
||||
margin-right: 50px;
|
||||
}
|
||||
|
||||
#tags button {
|
||||
color: #787878;
|
||||
color: #65718c;
|
||||
font-family: "Source Han Sans JP Heavy";
|
||||
font-weight: 700;
|
||||
padding: 0 3px;
|
||||
@@ -84,20 +84,20 @@ window#waybar {
|
||||
}
|
||||
|
||||
#tags button:hover {
|
||||
color: #464646;
|
||||
background: #787878;
|
||||
color: #3b4252;
|
||||
background: #65718c;
|
||||
box-shadow: none;
|
||||
text-shadow: none;
|
||||
transition: 0;
|
||||
}
|
||||
|
||||
#tags button.focused {
|
||||
color: #464646;
|
||||
background: #e78a4e;
|
||||
color: #3b4252;
|
||||
background: #b48ead;
|
||||
}
|
||||
|
||||
#tags button.urgent {
|
||||
color: #ea6962;
|
||||
color: #bf616a;
|
||||
}
|
||||
|
||||
@keyframes fadein {
|
||||
@@ -109,7 +109,7 @@ window#waybar {
|
||||
}
|
||||
}
|
||||
tooltip {
|
||||
background: #464646;
|
||||
background: #3b4252;
|
||||
border-radius: 7px;
|
||||
font-family: "JetBrains Mono Nerd Font", monospace;
|
||||
font-weight: 500;
|
||||
@@ -117,18 +117,18 @@ tooltip {
|
||||
padding: 10px;
|
||||
animation-name: fadein;
|
||||
animation-duration: 0.2s;
|
||||
border: 2px solid #787878;
|
||||
border: 2px solid #65718c;
|
||||
text-shadow: none;
|
||||
color: #e78a4e;
|
||||
color: #b48ead;
|
||||
}
|
||||
|
||||
tooltip label {
|
||||
color: #e78a4e;
|
||||
color: #b48ead;
|
||||
}
|
||||
|
||||
#tray menu {
|
||||
background: #464646;
|
||||
color: #e78a4e;
|
||||
background: #3b4252;
|
||||
color: #b48ead;
|
||||
border-radius: 5px;
|
||||
border: 2px solid #787878;
|
||||
border: 2px solid #65718c;
|
||||
}
|
||||
|
@@ -1,30 +1,29 @@
|
||||
{
|
||||
"label" : "lock",
|
||||
"action" : "swaylock -c ~/.config/swaylock/config",
|
||||
"action" : "swaylock --ignore-empty-password --show-failed-attempts -f -c 000000",
|
||||
"text" : "Lock",
|
||||
"keybind" : "l"
|
||||
}
|
||||
{
|
||||
"label" : "hibernate",
|
||||
"action" : "systemctl hibernate",
|
||||
"action" : "systemctl suspend",
|
||||
"text" : "Hibernate",
|
||||
"keybind" : "h"
|
||||
}
|
||||
{
|
||||
"label" : "logout",
|
||||
"action" : "loginctl terminate-user $USER",
|
||||
"action" : "swaymsg exit",
|
||||
"text" : "Logout",
|
||||
"keybind" : "e"
|
||||
}
|
||||
{
|
||||
"label" : "shutdown",
|
||||
"action" : "systemctl poweroff",
|
||||
"action" : "shutdown now",
|
||||
"text" : "Shutdown",
|
||||
"keybind" : "s"
|
||||
}
|
||||
{
|
||||
"label" : "suspend",
|
||||
"action" : "systemctl suspend",
|
||||
"action" : "sudo systemctl suspend",
|
||||
"text" : "Suspend",
|
||||
"keybind" : "u"
|
||||
}
|
||||
|
@@ -1,51 +1,52 @@
|
||||
* {
|
||||
background-image: none;
|
||||
background-image: none;
|
||||
}
|
||||
@keyframes fadeIn {
|
||||
from {opacity: 0;}
|
||||
to {opacity: 1;}
|
||||
}
|
||||
window {
|
||||
background-image: image(url("/home/minhradz/Downloads/lantern.jpg"), url("/home/minhradz/Downloads/lantern.jpg"));
|
||||
background-color: rgba(46,52,64, 0.9);
|
||||
font-size: 26px;
|
||||
font-family: Product Sans;
|
||||
animation: fadeIn;
|
||||
animation-duration: 0.5s;
|
||||
}
|
||||
button {
|
||||
background-color: #2e3440;
|
||||
border-width: 0px;
|
||||
border-radius: 0;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
background-size: 25%;
|
||||
color: #5e81ac;
|
||||
color: #eceff4;
|
||||
background-color: #4c566a;
|
||||
border-style: solid;
|
||||
margin: 20px;
|
||||
border: 3px solid #3b4252;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
}
|
||||
|
||||
button:active, button:hover {
|
||||
background-color: #4c566a;
|
||||
color: #81a1c1;
|
||||
outline-style: none;
|
||||
button:focus, button:active, button:hover {
|
||||
background-color: #5e81ac;
|
||||
outline-style: none;
|
||||
}
|
||||
|
||||
#lock {
|
||||
opacity: 0.9;
|
||||
background-image: image(url("/usr/share/wlogout/icons/logout.png"), url("/usr/share/wlogout/icons/logout.png"));
|
||||
background-image: image(url("/home/minhradz/.config/wlogout/icons/lock.png"), url("/usr/local/share/wlogout/icons/lock.png"));
|
||||
}
|
||||
|
||||
#logout {
|
||||
opacity: 0.9;
|
||||
background-image: image(url("/usr/share/wlogout/icons/logout.png"), url("/usr/local/share/wlogout/icons/logout.png"));
|
||||
background-image: image(url("/home/minhradz/.config/wlogout/icons/logout.png"), url("/usr/local/share/wlogout/icons/logout.png"));
|
||||
}
|
||||
|
||||
#suspend {
|
||||
opacity: 0.9;
|
||||
background-image: image(url("/usr/share/wlogout/icons/suspend.png"), url("/usr/local/share/wlogout/icons/suspend.png"));
|
||||
background-image: image(url("/home/minhradz/.config/wlogout/icons/suspend.png"), url("/usr/local/share/wlogout/icons/suspend.png"));
|
||||
}
|
||||
|
||||
#hibernate {
|
||||
opacity: 0.9;
|
||||
background-image: image(url("/usr/share/wlogout/icons/hibernate.png"), url("/usr/local/share/wlogout/icons/hibernate.png"));
|
||||
background-image: image(url("/home/minhradz/.config/wlogout/icons/hibernate.png"), url("/usr/local/share/wlogout/icons/hibernate.png"));
|
||||
}
|
||||
|
||||
#shutdown {
|
||||
opacity: 0.9;
|
||||
background-image: image(url("/usr/share/wlogout/icons/shutdown.png"), url("/usr/local/share/wlogout/icons/shutdown.png"));
|
||||
background-image: image(url("/home/minhradz/.config/wlogout/icons/shutdown.png"), url("/usr/local/share/wlogout/icons/shutdown.png"));
|
||||
}
|
||||
|
||||
#reboot {
|
||||
opacity: 0.9;
|
||||
background-image: image(url("/usr/share/wlogout/icons/reboot.png"), url("/usr/local/share/wlogout/icons/reboot.png"));
|
||||
background-image: image(url("/home/minhradz/.config/wlogout/icons/reboot.png"), url("/usr/local/share/wlogout/icons/reboot.png"));
|
||||
}
|
||||
|
@@ -1,5 +1,20 @@
|
||||
term=kitty -1
|
||||
allow-images=true
|
||||
image_size=25
|
||||
key_expand=Tab
|
||||
stylesheet=/home/minhradz/.config/wofi/style.css
|
||||
xoffset=0%
|
||||
yoffset=0%
|
||||
hide_scroll=true
|
||||
show=drun
|
||||
width=15%
|
||||
lines=10
|
||||
line_wrap=word
|
||||
term=kitty
|
||||
allow_markup=true
|
||||
always_parse_args=true
|
||||
show_all=true
|
||||
print_command=true
|
||||
layer=overlay
|
||||
allow-images=true
|
||||
insensitive=true
|
||||
prompt=
|
||||
image_size=25
|
||||
display_generic=true
|
||||
key_expand=Tab
|
||||
|
@@ -1,63 +1,69 @@
|
||||
#window {
|
||||
padding: 2px;
|
||||
background-color: transparent;
|
||||
font-family: JetBrainsMonoMedium Nerd Font Mono;
|
||||
#entry {
|
||||
border-radius: 5px;
|
||||
padding: 7px;
|
||||
margin: 0px 5px 0px 5px;
|
||||
}
|
||||
|
||||
#entry {
|
||||
border-radius: 5px;
|
||||
padding: 5px;
|
||||
margin-bottom: 5px;
|
||||
@keyframes fadeIn {
|
||||
from {
|
||||
opacity: 0;
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
#entry:selected {
|
||||
background-color: #665C54;
|
||||
background-color: #5e81ac;
|
||||
}
|
||||
|
||||
#text {
|
||||
padding: 5px;
|
||||
font-size: 13px;
|
||||
color:#FBF1C7;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
#text:selected {
|
||||
font-size:14px;
|
||||
font-weight:400;
|
||||
color: #ffffff;
|
||||
color: #d8dee9;
|
||||
}
|
||||
|
||||
#window {
|
||||
background-color: #3b4252;
|
||||
background-color: transparent;
|
||||
border-radius: 15px;
|
||||
font-family: Product Sans;
|
||||
animation: fadeIn;
|
||||
animation-duration: 0.3s;
|
||||
}
|
||||
|
||||
|
||||
#input {
|
||||
border: 2px solid #3C3836;
|
||||
background-color: #EBDBB2;
|
||||
padding: 5px;
|
||||
font-size: 13px;
|
||||
border-radius: 8px;
|
||||
color: #1D2021;
|
||||
box-shadow: 0 0 5px black;
|
||||
border: 2px solid #5e81ac;
|
||||
background-color: #4c566a;
|
||||
padding: 6px;
|
||||
margin: 15px;
|
||||
margin-bottom: 0px;
|
||||
font-size: 16px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#inner-box {
|
||||
margin-top: 10px;
|
||||
color: #d8dee9;
|
||||
padding: 8px;
|
||||
border-radius:8px;
|
||||
border-width: 2px;
|
||||
border:2px solid #BDAE93;
|
||||
background-color: #282828;
|
||||
box-shadow: 0 0 5px black;
|
||||
color: #d8dee9;
|
||||
padding: 10px;
|
||||
padding-top: 5px;
|
||||
}
|
||||
|
||||
#outer-box {
|
||||
margin: 15px;
|
||||
background-color: transparent;
|
||||
margin: 15px;
|
||||
border-radius: 15px;
|
||||
background-color: rgba(53, 59, 73, 1);
|
||||
box-shadow: 0px 0px 5px 0 #0f0f0f;
|
||||
}
|
||||
|
||||
#scroll {
|
||||
margin-top: 10px;
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
#text {
|
||||
font-size: 16px;
|
||||
padding: 7px;
|
||||
color: #d8dee9;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
#img {
|
||||
background-color: transparent;
|
||||
|
1
zsh/.zprofile
Normal file
1
zsh/.zprofile
Normal file
@@ -0,0 +1 @@
|
||||
eval $(keychain --eval --quiet id_ed25518 E13CFA85C53F8062)
|
9
zsh/.zshenv
Normal file
9
zsh/.zshenv
Normal file
@@ -0,0 +1,9 @@
|
||||
export EDITOR=nvim
|
||||
export MANPAGER="nvim +Man!"
|
||||
export MOZ_ENABLE_WAYLAND=1
|
||||
|
||||
path+=('/home/minhradz/.cargo/bin')
|
||||
path+=('/home/minhradz/.local/bin')
|
||||
|
||||
export BUN_INSTALL="$HOME/.bun"
|
||||
export PATH="$BUN_INSTALL/bin:$PATH"
|
56
zsh/.zshrc
Normal file
56
zsh/.zshrc
Normal file
@@ -0,0 +1,56 @@
|
||||
|
||||
# The following lines were added by compinstall
|
||||
|
||||
zstyle ':completion:*' completer _expand _complete _ignored _correct _approximate
|
||||
zstyle ':completion:*' list-colors ''
|
||||
zstyle :compinstall filename '/home/minhradz/.zshrc'
|
||||
|
||||
autoload -Uz compinit
|
||||
compinit
|
||||
# End of lines added by compinstall
|
||||
# Lines configured by zsh-newuser-install
|
||||
HISTFILE=~/.histfile
|
||||
HISTSIZE=1000
|
||||
SAVEHIST=1000
|
||||
# End of lines configured by zsh-newuser-install
|
||||
|
||||
export GPG_TTY=$(tty)
|
||||
|
||||
test -s ~/.alias && . ~/.alias || true
|
||||
|
||||
### Added by Zinit's installer
|
||||
if [[ ! -f $HOME/.local/share/zinit/zinit.git/zinit.zsh ]]; then
|
||||
print -P "%F{33} %F{220}Installing %F{33}ZDHARMA-CONTINUUM%F{220} Initiative Plugin Manager (%F{33}zdharma-continuum/zinit%F{220})…%f"
|
||||
command mkdir -p "$HOME/.local/share/zinit" && command chmod g-rwX "$HOME/.local/share/zinit"
|
||||
command git clone https://github.com/zdharma-continuum/zinit "$HOME/.local/share/zinit/zinit.git" && \
|
||||
print -P "%F{33} %F{34}Installation successful.%f%b" || \
|
||||
print -P "%F{160} The clone has failed.%f%b"
|
||||
fi
|
||||
|
||||
source "$HOME/.local/share/zinit/zinit.git/zinit.zsh"
|
||||
autoload -Uz _zinit
|
||||
(( ${+_comps} )) && _comps[zinit]=_zinit
|
||||
|
||||
# Load a few important annexes, without Turbo
|
||||
# (this is currently required for annexes)
|
||||
zinit light-mode for \
|
||||
zdharma-continuum/zinit-annex-as-monitor \
|
||||
zdharma-continuum/zinit-annex-bin-gem-node \
|
||||
zdharma-continuum/zinit-annex-patch-dl \
|
||||
zdharma-continuum/zinit-annex-rust
|
||||
|
||||
### End of Zinit's installer chunk
|
||||
|
||||
# zsh-fzf-history-search
|
||||
zinit ice lucid wait'0'
|
||||
zinit light joshskidmore/zsh-fzf-history-search
|
||||
|
||||
# Two regular plugins loaded without investigating.
|
||||
zinit light zsh-users/zsh-autosuggestions
|
||||
zinit light zdharma-continuum/fast-syntax-highlighting
|
||||
zinit light chitoku-k/fzf-zsh-completions
|
||||
zinit light greymd/docker-zsh-completion
|
||||
|
||||
eval "$(fnm env --use-on-cd)"
|
||||
|
||||
eval "$(starship init zsh)"
|
Reference in New Issue
Block a user