Compare commits

..

No commits in common. "714e8f254b8a903929224b9cb2a97459b10b0daf" and "2d7feede1a832166870e7efe82641888f2a5ee55" have entirely different histories.

39 changed files with 361 additions and 1558 deletions

View File

@ -42,9 +42,3 @@ export LC_ALL=en_US.UTF-8
eval "$(direnv hook bash)" eval "$(direnv hook bash)"
eval "$(starship init bash)" eval "$(starship init bash)"
export PATH="/home/minhradz/.cargo/bin;/home/minhradz/.local/bin;/home/minhradz/go/bin;/home/minhradz/.cabal/bin:$PATH" 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)

View File

@ -5,338 +5,72 @@
;; Some functionality uses this to identify you, e.g. GPG configuration, email ;; Some functionality uses this to identify you, e.g. GPG configuration, email
;; clients, file templates and snippets. ;; clients, file templates and snippets. It is optional.
(setq user-full-name "minhtrannhat" (setq user-full-name "John Doe"
user-mail-address "minh@minhtrannhat.com") user-mail-address "john@doe.com")
;; Doom exposes five (optional) variables for controlling fonts in Doom. Here ;; Doom exposes five (optional) variables for controlling fonts in Doom:
;; are the three important ones:
;; ;;
;; + `doom-font' ;; - `doom-font' -- the primary font to use
;; + `doom-variable-pitch-font' ;; - `doom-variable-pitch-font' -- a non-monospace font (where applicable)
;; + `doom-big-font' -- used for `doom-big-font-mode'; use this for ;; - `doom-big-font' -- used for `doom-big-font-mode'; use this for
;; presentations or streaming. ;; presentations or streaming.
(setq doom-font (font-spec :family "JetBrainsMono Nerd Font" :size 18)) ;; - `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-emoji-fallback-font-families nil) ;; There are two ways to load a theme. Both assume the theme is installed and
(setq doom-symbol-fallback-font-families nil) ;; 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)
(add-hook 'prog-mode-hook #'pixel-scroll-mode) ;; This determines the style of line numbers in effect. If set to `nil', line
(add-hook 'text-mode-hook #'pixel-scroll-mode) ;; numbers are disabled. For relative line numbers, set this to `relative'.
(setq display-line-numbers-type t)
(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
(with-eval-after-load 'doom-themes
(doom-themes-treemacs-config))
(setq doom-themes-treemacs-theme "doom-colors")
;; 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 org-directory "~/org/")
(setq display-line-numbers-type 'relative)
(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)
;; 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))
;; 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.
;; ;;
;; tree-sitter syntax highlighting ;; (after! PACKAGE
;; (require 'treesit) ;; (setq x y))
;; (treesit-available-p) ;;
;; (setq major-mode-remap-alist ;; The exceptions to this rule:
;; '((yaml-mode . yaml-ts-mode) ;;
;; (bash-mode . bash-ts-mode) ;; - Setting file/directory variables (like `org-directory')
;; (js2-mode . js-ts-mode) ;; - Setting variables which explicitly tell you to set them before their
;; (typescript-mode . typescript-ts-mode) ;; package is loaded (see 'C-h v VARIABLE' to look up their documentation).
;; (json-mode . json-ts-mode) ;; - Setting doom variables (which start with 'doom-' or '+').
;; (css-mode . css-ts-mode) ;;
;; (python-mode . python-ts-mode))) ;; Here are some additional functions/macros that will help you configure Doom.
;;
(use-package! tree-sitter ;; - `load!' for loading external *.el files relative to this one
:config ;; - `use-package!' for configuring packages
(require 'tree-sitter-langs) ;; - `after!' for running code after a package has loaded
(global-tree-sitter-mode) ;; - `add-load-path!' for adding directories to the `load-path', relative to
(add-hook 'tree-sitter-after-on-hook #'tree-sitter-hl-mode)) ;; this file. Emacs searches the `load-path' when you load packages with
;; `require' or `use-package'.
(require 'elcord) ;; - `map!' for binding new keys
(elcord-mode) ;;
(setq elcord-use-major-mode-as-main-icon 't) ;; 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').
;; gpg ;; This will open documentation for it, including demos of how they are used.
(setq epg-pinentry-mode 'loopback) ;; Alternatively, use `C-h o' to look up a symbol (functions, variables, faces,
;; etc).
;; both jk and kj now works ;;
(setq evil-escape-unordered-key-sequence 't) ;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how
;; they are implemented.
;; 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)
;; 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)
;; We do a little bit of finger pointing
(use-package blamer
:bind (("s-i" . blamer-show-commit-info))
:defer 20
:custom
(blamer-idle-time 0.3)
(blamer-min-offset 40)
:custom-face
(blamer-face ((t :foreground "#7a88cf"
:background nil
:height 110
:italic t))))
;; elfeed the rss reader
(after! elfeed
(setq elfeed-search-filter "@1-month-ago"))
(add-hook! 'elfeed-search-mode-hook #'elfeed-update)
(map! :map elfeed-search-mode-map
:after elfeed-search
[remap kill-this-buffer] "q"
[remap kill-buffer] "q"
:n doom-leader-key nil
:n "q" #'+rss/quit
:n "e" #'elfeed-update
:n "r" #'elfeed-search-untag-all-unread
:n "u" #'elfeed-search-tag-all-unread
:n "s" #'elfeed-search-live-filter
:n "l" #'elfeed-search-show-entry
:n "p" #'elfeed-show-pdf
:n "+" #'elfeed-search-tag-all
:n "-" #'elfeed-search-untag-all
:n "S" #'elfeed-search-set-filter
:n "b" #'elfeed-search-browse-url
:n "y" #'elfeed-search-yank)
(map! :map elfeed-show-mode-map
:after elfeed-show
[remap kill-this-buffer] "q"
[remap kill-buffer] "q"
:n doom-leader-key nil
:nm "h" #'+rss/delete-pane
:nm "o" #'elfeed-goodies/show-ace-link
:nm "RET" #'org-ref-elfeed-add
:nm "n" #'elfeed-show-next
:nm "N" #'elfeed-show-prev
:nm "p" #'elfeed-show-pdf
:nm "+" #'elfeed-show-tag
:nm "-" #'elfeed-show-untag
:nm "s" #'elfeed-show-new-live-search
:nm "y" #'elfeed-show-yank)
(after! elfeed-search
(set-evil-initial-state! 'elfeed-search-mode 'normal))
(after! elfeed-show-mode
(set-evil-initial-state! 'elfeed-show-mode 'normal))
(after! evil-snipe
(push 'elfeed-show-mode evil-snipe-disabled-modes)
(push 'elfeed-search-mode evil-snipe-disabled-modes))
(setq org-agenda-time-grid
(quote
((daily today remove-match)
(800 1200 1600 2000)
"......" "----------------")))
;; 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)
;; (eval-after-load 'cider
;; #'emidje-setup)
(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!"))))
(use-package org-recur
:hook ((org-mode . org-recur-mode)
(org-agenda-mode . org-recur-agenda-mode))
:demand t
:config
(define-key org-recur-mode-map (kbd "C-c d") 'org-recur-finish)
;; Rebind the 'd' key in org-agenda (default: `org-agenda-day-view').
(define-key org-recur-agenda-mode-map (kbd "d") 'org-recur-finish)
(define-key org-recur-agenda-mode-map (kbd "C-c d") 'org-recur-finish)
(setq org-recur-finish-done t
org-recur-finish-archive t))
;; Refresh org-agenda after rescheduling a task.
(defun org-agenda-refresh ()
"Refresh all `org-agenda' buffers."
(dolist (buffer (buffer-list))
(with-current-buffer buffer
(when (derived-mode-p 'org-agenda-mode)
(org-agenda-maybe-redo)))))
(defadvice org-schedule (after refresh-agenda activate)
"Refresh org-agenda."
(org-agenda-refresh))
(setq org-read-date-prefer-future 'time)

View File

@ -1,17 +0,0 @@
(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)
'(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)))))

View File

@ -1,9 +1,12 @@
;;; init.el -*- lexical-binding: t; -*- ;;; init.el -*- lexical-binding: t; -*-
;; This file controls what Doom modules are enabled and what order they load ;; This file controls what Doom modules are enabled and what order they load
;; in. Remember to run 'doom sync' after modifying it! ;; 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 ;; 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 "Module Index" link where you'll find ;; documentation. There you'll find a link to Doom's Module Index where all
;; a comprehensive list of Doom's modules and what flags they support. ;; of our modules are listed, including what flags they support.
;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or ;; 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 ;; '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). ;; flags as well (those symbols that start with a plus).
@ -11,175 +14,178 @@
;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its ;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its
;; directory (for easy access to its source code). ;; 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 (doom! :input
;;chinese ;;chinese
;;japanese ;;japanese
;;layout ; auie,ctsrnm is the superior home row ;;layout ; auie,ctsrnm is the superior home row
:completion :completion
(company +tng) ; the ultimate code completion backend company ; the ultimate code completion backend
;;helm ; the *other* search engine for love and life ;;helm ; the *other* search engine for love and life
;;ido ; the other *other* search engine... ;;ido ; the other *other* search engine...
(ivy +fuzzy +icons) ; a search engine for love and life ;;ivy ; a search engine for love and life
;;vertico ; the search engine of the future vertico ; the search engine of the future
:ui :ui
;;deft ; notational velocity for Emacs ;;deft ; notational velocity for Emacs
doom ; what makes DOOM look the way it does doom ; what makes DOOM look the way it does
doom-dashboard ; a nifty splash screen for Emacs doom-dashboard ; a nifty splash screen for Emacs
doom-quit ; DOOM quit-message prompts when you quit Emacs doom-quit ; DOOM quit-message prompts when you quit Emacs
(emoji +unicode) ; 🙂 ;;(emoji +unicode) ; 🙂
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
;;hydra ;;hydra
;;indent-guides ; highlighted indent columns ;;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 ;;minimap ; show a map of the code on the side
(modeline +light) ; snazzy, Atom-inspired modeline, plus API modeline ; snazzy, Atom-inspired modeline, plus API
;;nav-flash ; blink cursor line after big motions ;;nav-flash ; blink cursor line after big motions
;;neotree ; a project drawer, like NERDTree for vim ;;neotree ; a project drawer, like NERDTree for vim
ophints ; highlight the region an operation acts on ophints ; highlight the region an operation acts on
(popup +all +defaults) ; tame sudden yet inevitable temporary windows (popup +defaults) ; tame sudden yet inevitable temporary windows
;;tabs ; a tab bar for Emacs ;;tabs ; a tab bar for Emacs
(treemacs +lsp) ; a project drawer, like neotree but cooler ;;treemacs ; a project drawer, like neotree but cooler
unicode ; extended unicode support for various languages ;;unicode ; extended unicode support for various languages
(vc-gutter +pretty) ; vcs diff in the fringe vc-gutter ; vcs diff in the fringe
vi-tilde-fringe ; fringe tildes to mark beyond EOB vi-tilde-fringe ; fringe tildes to mark beyond EOB
(window-select +numbers) ; visually switch windows ;;window-select ; visually switch windows
workspaces ; tab emulation, persistence & separate workspaces workspaces ; tab emulation, persistence & separate workspaces
zen ; distraction-free coding or writing ;;zen ; distraction-free coding or writing
:editor :editor
(evil +everywhere); come to the dark side, we have cookies (evil +everywhere); come to the dark side, we have cookies
file-templates ; auto-snippets for empty files file-templates ; auto-snippets for empty files
fold ; (nigh) universal code folding fold ; (nigh) universal code folding
(format +onsave) ; automated prettiness ;;(format +onsave) ; automated prettiness
;;god ; run Emacs commands without modifier keys ;;god ; run Emacs commands without modifier keys
;; lispy ; vim for lisp, for people who don't like vim ;;lispy ; vim for lisp, for people who don't like vim
multiple-cursors ; editing in many places at once ;;multiple-cursors ; editing in many places at once
;;objed ; text object editing for the innocent ;;objed ; text object editing for the innocent
;;parinfer ; turn lisp into python, sort of ;;parinfer ; turn lisp into python, sort of
;;rotate-text ; cycle region at point between text candidates ;;rotate-text ; cycle region at point between text candidates
snippets ; my elves. They type so I don't have to snippets ; my elves. They type so I don't have to
;;word-wrap ; soft wrapping with language-aware indent ;;word-wrap ; soft wrapping with language-aware indent
:emacs :emacs
(dired +icons +ranger) ; making dired pretty [functional] dired ; making dired pretty [functional]
electric ; smarter, keyword-based electric-indent electric ; smarter, keyword-based electric-indent
(ibuffer +icons) ; interactive buffer management ;;ibuffer ; interactive buffer management
undo ; persistent, smarter undo for your inevitable mistakes undo ; persistent, smarter undo for your inevitable mistakes
vc ; version-control and Emacs, sitting in a tree vc ; version-control and Emacs, sitting in a tree
:term :term
eshell ; the elisp shell that works everywhere ;;eshell ; the elisp shell that works everywhere
;;shell ; simple shell REPL for Emacs ;;shell ; simple shell REPL for Emacs
;;term ; basic terminal emulator for Emacs ;;term ; basic terminal emulator for Emacs
vterm ; the best terminal emulation in Emacs ;;vterm ; the best terminal emulation in Emacs
:checkers :checkers
syntax ; tasing you for every semicolon you forget syntax ; tasing you for every semicolon you forget
(spell +everywhere +aspell); tasing you for misspelling mispelling ;;(spell +flyspell) ; tasing you for misspelling mispelling
;;grammar ; tasing grammar mistake every you make ;;grammar ; tasing grammar mistake every you make
:tools :tools
;;ansible ;;ansible
;;biblio ; Writes a PhD for you (citation needed)
;;debugger ; FIXME stepping through code, to help you add bugs ;;debugger ; FIXME stepping through code, to help you add bugs
tree-sitter ;;direnv
direnv ;;docker
(docker +lsp) ;;editorconfig ; let someone else argue about tabs vs spaces
editorconfig ; let someone else argue about tabs vs spaces ;;ein ; tame Jupyter notebooks with emacs
ein ; tame Jupyter notebooks with emacs
(eval +overlay) ; run code, run (also, repls) (eval +overlay) ; run code, run (also, repls)
gist ; interacting with github gists ;;gist ; interacting with github gists
(lookup +dictionary + docsets +offline) ; navigate your code and its documentation lookup ; navigate your code and its documentation
lsp ; M-x vscode ;;lsp ; M-x vscode
(magit +forge) ; a git porcelain for Emacs magit ; a git porcelain for Emacs
make ; run make tasks from Emacs ;;make ; run make tasks from Emacs
(pass +auth) ; password manager for nerds ;;pass ; password manager for nerds
pdf ; pdf enhancements ;;pdf ; pdf enhancements
;;prodigy ; FIXME managing external services & code builders ;;prodigy ; FIXME managing external services & code builders
;;rgb ; creating color strings ;;rgb ; creating color strings
taskrunner ; taskrunner for all your projects ;;taskrunner ; taskrunner for all your projects
;;terraform ; infrastructure as code ;;terraform ; infrastructure as code
tmux ; an API for interacting with tmux ;;tmux ; an API for interacting with tmux
;;upload ; map local to remote projects via ssh/ftp ;;upload ; map local to remote projects via ssh/ftp
:os :os
;;(:if IS-MAC macos) ; improve compatibility with macOS (:if IS-MAC macos) ; improve compatibility with macOS
tty ; improve the terminal Emacs experience ;;tty ; improve the terminal Emacs experience
:lang :lang
;;agda ; types of types of types of types... ;;agda ; types of types of types of types...
;;beancount ; mind the GAAP ;;beancount ; mind the GAAP
(cc +lsp) ; C > C++ == 1 ;;(cc +lsp) ; C > C++ == 1
(clojure +lsp) ; java with a lisp ;;clojure ; java with a lisp
common-lisp ; if you've seen one lisp, you've seen them all ;;common-lisp ; if you've seen one lisp, you've seen them all
;;coq ; proofs-as-programs ;;coq ; proofs-as-programs
;;crystal ; ruby at the speed of c ;;crystal ; ruby at the speed of c
csharp ; unity, .NET, and mono shenanigans ;;csharp ; unity, .NET, and mono shenanigans
;;data ; config/data formats ;;data ; config/data formats
;;(dart +flutter) ; paint ui and not much else ;;(dart +flutter) ; paint ui and not much else
;;dhall ;;dhall
elixir ; erlang done right ;;elixir ; erlang done right
;;elm ; care for a cup of TEA? ;;elm ; care for a cup of TEA?
emacs-lisp ; drown in parentheses emacs-lisp ; drown in parentheses
(erlang +lsp) ; an elegant language for a more civilized age ;;erlang ; an elegant language for a more civilized age
;;ess ; emacs speaks statistics ;;ess ; emacs speaks statistics
;;factor ;;factor
;;faust ; dsp, but you get to keep your soul ;;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 ;;fsharp ; ML stands for Microsoft's Language
;;fstar ; (dependent) types and (monadic) effects and Z3 ;;fstar ; (dependent) types and (monadic) effects and Z3
;;gdscript ; the language you waited for ;;gdscript ; the language you waited for
(go +lsp) ; the hipster dialect ;;(go +lsp) ; the hipster dialect
(graphql +lsp) ; Give queries a REST ;;(haskell +lsp) ; a language that's lazier than I am
(haskell +lsp) ; a language that's lazier than I am
;;hy ; readability of scheme w/ speed of python ;;hy ; readability of scheme w/ speed of python
;;idris ; a language you can depend on ;;idris ; a language you can depend on
(json +lsp) ; At least it ain't XML ;;json ; At least it ain't XML
(java +lsp) ; the poster child for carpal tunnel syndrome ;;(java +lsp) ; the poster child for carpal tunnel syndrome
(javascript +lsp +tree-sitter) ; all(hope(abandon(ye(who(enter(here)))))) ;;javascript ; all(hope(abandon(ye(who(enter(here))))))
;;(julia +lsp) ; a better, faster MATLAB ;;julia ; a better, faster MATLAB
;;kotlin ; a better, slicker Java(Script) ;;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 ;;lean ; for folks with too much to prove
ledger ; be audit you can be ;;ledger ; be audit you can be
lua ; one-based indices? one-based indices ;;lua ; one-based indices? one-based indices
markdown ; writing docs for people to ignore markdown ; writing docs for people to ignore
;;nim ; python + lisp at the speed of c ;;nim ; python + lisp at the speed of c
;;nix ; I hereby declare "nix geht mehr!" ;;nix ; I hereby declare "nix geht mehr!"
;;ocaml ; an objective camel ;;ocaml ; an objective camel
;;(org +roam2 +pretty) ; organize your plain life in plain text org ; organize your plain life in plain text
(org +roam2) ; organize your plain life in plain text
;;php ; perl's insecure younger brother ;;php ; perl's insecure younger brother
;;plantuml ; diagrams for confusing people more ;;plantuml ; diagrams for confusing people more
;;purescript ; javascript, but functional ;;purescript ; javascript, but functional
(python +lsp +pyright +pyenv +poetry +treesitter) ;;python ; beautiful is better than ugly
;;qt ; the 'cutest' gui framework ever ;;qt ; the 'cutest' gui framework ever
;;racket ; a DSL for DSLs ;;racket ; a DSL for DSLs
;;raku ; the artist formerly known as perl6 ;;raku ; the artist formerly known as perl6
rest ; Emacs as a REST client ;;rest ; Emacs as a REST client
;;rst ; ReST in peace ;;rst ; ReST in peace
;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"} ;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
(rust +lsp +treesitter) ; Fe2O3.unwrap().unwrap().unwrap().unwrap() ;;rust ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
scala ; java, but good ;;scala ; java, but good
;;(scheme +guile +mit +racket) ; a fully conniving family of lisps ;;(scheme +guile) ; a fully conniving family of lisps
(sh +fish) ; she sells {ba,z,fi}sh shells on the C xor sh ; she sells {ba,z,fi}sh shells on the C xor
;;sml ;;sml
;;solidity ; do you need a blockchain? No. ;;solidity ; do you need a blockchain? No.
;;swift ; who asked for emoji variables? ;;swift ; who asked for emoji variables?
;;terra ; Earth and Moon in alignment for performance. ;;terra ; Earth and Moon in alignment for performance.
(web +lsp) ; the tubes ;;web ; the tubes
yaml ; JSON, but readable ;;yaml ; JSON, but readable
zig ; C, but simpler ;;zig ; C, but simpler
:email :email
;; (mu4e) ;;(mu4e +org +gmail)
;;notmuch ;;notmuch
;;(wanderlust +gmail) ;;(wanderlust +gmail)
:app :app
;;calendar ;;calendar
;;emms ;;emms
;;everywhere ; *leave* Emacs!? You must be joking ;;everywhere ; *leave* Emacs!? You must be joking
;;irc ; how neckbeards socialize ;;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 ;;twitter ; twitter client https://twitter.com/vnought
:config :config
;;literate ;;literate
(default +bindings +smartparens) (default +bindings +smartparens))
)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

View File

@ -48,14 +48,3 @@
;(unpin! pinned-package another-pinned-package) ;(unpin! pinned-package another-pinned-package)
;; ...Or *all* packages (NOT RECOMMENDED; will likely break things) ;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
;(unpin! t) ;(unpin! t)
(unpin! org-roam)
(package! websocket)
(package! org-roam-ui :recipe (:host github :repo "org-roam/org-roam-ui" :files ("*.el" "out")))
(package! magit-delta)
(package! blamer :recipe (:host github :repo "artawower/blamer.el"))
(package! org-fragtog)
(package! org-recur)
(package! evil-cleverparens)
(package! elcord)
(unpin! rustic)
(package! org :pin "5890ac")

View File

@ -1,163 +0,0 @@
# 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

View File

@ -1,24 +0,0 @@
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"

View File

@ -2,6 +2,8 @@ set fish_greeting
fish_vi_key_bindings fish_vi_key_bindings
set fish_bind_mode insert set fish_bind_mode insert
theme_gruvbox dark hard
alias rm 'rm -i' alias rm 'rm -i'
alias nnn 'nnn -e' alias nnn 'nnn -e'
alias icat 'kitty +kitten icat' alias icat 'kitty +kitten icat'
@ -13,7 +15,8 @@ export GPG_TTY=(tty)
gpgconf --launch gpg-agent gpgconf --launch gpg-agent
if test -z (pgrep ssh-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_AGENT_PID $SSH_AGENT_PID
set -Ux SSH_AUTH_SOCK $SSH_AUTH_SOCK set -Ux SSH_AUTH_SOCK $SSH_AUTH_SOCK
end end
@ -27,8 +30,6 @@ set -gx QT_AUTO_SCREEN_SCALE_FACTOR 1
set -Ux GTK_IM_MODULE ibus set -Ux GTK_IM_MODULE ibus
set -Ux QT_IM_MODULE ibus set -Ux QT_IM_MODULE ibus
set -Ux XMODIFIERS @im=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 EDITOR lvim
set -gx NVIM_LISTEN_ADDRESS /tmp/nvimsocket set -gx NVIM_LISTEN_ADDRESS /tmp/nvimsocket
@ -36,9 +37,8 @@ set -gx MANPAGER "lvim +Man!"
set -gx LC_ALL en_US.UTF-8 set -gx LC_ALL en_US.UTF-8
set -gx _JAVA_AWT_WM_NONREPARENTING 1 set -gx _JAVA_AWT_WM_NONREPARENTING 1
set --export BUN_INSTALL "$HOME/.bun"
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 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
starship init fish | source starship init fish | source

View File

@ -1,22 +1,19 @@
# This file contains fish universal variable definitions. # This file contains fish universal variable definitions.
# VERSION: 3.0 # VERSION: 3.0
SETUVAR --export GTK_IM_MODULE:ibus SETUVAR --export GTK_IM_MODULE:ibus
SETUVAR --export PYTHON_KEYRING_BACKEND:keyring\x2ebackends\x2enull\x2eKeyring
SETUVAR --export QT_IM_MODULE:ibus SETUVAR --export QT_IM_MODULE:ibus
SETUVAR --export SSH_AGENT_PID:1219 SETUVAR --export SSH_AGENT_PID:1235
SETUVAR --export SSH_AUTH_SOCK:/tmp/ssh\x2dXXXXXXqVfRCj/agent\x2e1218 SETUVAR --export SSH_AUTH_SOCK:/tmp/ssh\x2dXXXXXXRu0Qxq/agent\x2e1234
SETUVAR --export SYSTEMD_TIMEDATED_NTP_SERVICES:chronyd\x2eservice\x3asystemd\x2dtimesyncd\x2eservice
SETUVAR --export XMODIFIERS:\x40im\x3dibus SETUVAR --export XMODIFIERS:\x40im\x3dibus
SETUVAR __fish_initialized:3400 SETUVAR __fish_initialized:3100
SETUVAR _fish_abbr_mux:tmuxinator SETUVAR fish_color_autosuggestion:93a1a1
SETUVAR fish_color_autosuggestion:4c566a SETUVAR fish_color_cancel:\x2dr
SETUVAR fish_color_cancel:\x2d\x2dreverse SETUVAR fish_color_command:586e75
SETUVAR fish_color_command:81a1c1 SETUVAR fish_color_comment:93a1a1
SETUVAR fish_color_comment:434c5e
SETUVAR fish_color_cwd:green SETUVAR fish_color_cwd:green
SETUVAR fish_color_cwd_root:red SETUVAR fish_color_cwd_root:red
SETUVAR fish_color_end:88c0d0 SETUVAR fish_color_end:268bd2
SETUVAR fish_color_error:ebcb8b SETUVAR fish_color_error:dc322f
SETUVAR fish_color_escape:00a6b2 SETUVAR fish_color_escape:00a6b2
SETUVAR fish_color_history_current:\x2d\x2dbold SETUVAR fish_color_history_current:\x2d\x2dbold
SETUVAR fish_color_host:normal SETUVAR fish_color_host:normal
@ -24,17 +21,16 @@ SETUVAR fish_color_host_remote:yellow
SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue
SETUVAR fish_color_normal:normal SETUVAR fish_color_normal:normal
SETUVAR fish_color_operator:00a6b2 SETUVAR fish_color_operator:00a6b2
SETUVAR fish_color_param:eceff4 SETUVAR fish_color_param:657b83
SETUVAR fish_color_quote:a3be8c SETUVAR fish_color_quote:839496
SETUVAR fish_color_redirection:b48ead SETUVAR fish_color_redirection:6c71c4
SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dwhite
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
SETUVAR fish_color_status:red SETUVAR fish_color_status:red
SETUVAR fish_color_user:brgreen SETUVAR fish_color_user:brgreen
SETUVAR fish_color_valid_path:\x2d\x2dunderline SETUVAR fish_color_valid_path:\x2d\x2dunderline
SETUVAR fish_key_bindings:fish_vi_key_bindings SETUVAR fish_key_bindings:fish_vi_key_bindings
SETUVAR fish_pager_color_completion:normal SETUVAR fish_pager_color_completion:green
SETUVAR fish_pager_color_description:B3A06D SETUVAR fish_pager_color_description:B3A06D
SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline SETUVAR fish_pager_color_prefix:cyan\x1e\x2d\x2dunderline
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
SETUVAR fish_pager_color_selected_background:\x2d\x2dbackground\x3dbrblack

View File

@ -1,138 +0,0 @@
"""
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)

View File

@ -1,29 +0,0 @@
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

View File

@ -1,16 +0,0 @@
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

View File

@ -1,3 +0,0 @@
function nvm
bass source ~/.nvm/nvm.sh --no-use ';' nvm $argv
end

View File

@ -1,3 +0,0 @@
function nvm_find_nvmrc
bass source ~/.nvm/nvm.sh --no-use ';' nvm_find_nvmrc
end

View File

@ -1,23 +1,17 @@
[pull] [pull]
rebase = true rebase = false
[user] [user]
email = minh@minhtrannhat.com email = minhtrannhat@tutanota.com
name = minhtrannhat name = minhtrannhat
signingkey = E13CFA85C53F8062 signingkey = 894C6A5801E01CA9
[commit] [commit]
gpgsign = true gpgsign = true
[init] [init]
defaultBranch = master defaultBranch = master
[gpg] [gpg]
program = /usr/bin/gpg program = /usr/bin/gpg
[pager] [pager]
diff = delta diff = delta
blame = delta
log = delta log = delta
reflog = delta reflog = delta
show = delta show = delta
@ -25,7 +19,7 @@
[delta] [delta]
side-by-side = true side-by-side = true
line-numbers = true line-numbers = true
syntax-theme = Nord syntax-theme = gruvbox-dark
navigate = true navigate = true
[interactive] [interactive]

View File

@ -1,6 +1,6 @@
term xterm-kitty term xterm-kitty
shell zsh shell fish
font_family JetBrainsMono Nerd Font font_family JetBrainsMono Nerd Font
bold_font auto bold_font auto
@ -46,4 +46,4 @@ map ctrl+right neighboring_window right
map ctrl+up neighboring_window up map ctrl+up neighboring_window up
map ctrl+down neighboring_window down map ctrl+down neighboring_window down
include nord.conf include gruvbox_light.conf

View File

@ -1,34 +0,0 @@
# 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

View File

@ -1,44 +1,28 @@
-- general -- general
lvim.format_on_save = true lvim.format_on_save = true
lvim.lint_on_save = true lvim.lint_on_save = true
lvim.shell = "/bin/zsh" lvim.shell = "/bin/fish"
lvim.leader = "space" lvim.leader = "space"
vim.opt.relativenumber = true vim.opt.relativenumber = true
vim.opt.wrap = true
lvim.builtin.alpha.active = true lvim.builtin.alpha.active = true
lvim.builtin.terminal.active = true lvim.builtin.terminal.active = true
lvim.builtin.autopairs.active = true lvim.builtin.autopairs.active = true
lvim.builtin.gitsigns.active = true lvim.builtin.gitsigns.active = true
lvim.builtin.dap.active = true lvim.builtin.dap.active = true
lvim.builtin.treesitter.rainbow.enable = true
lvim.builtin.cmp.cmdline.enable = true
lvim.builtin.nvimtree.side = "left" lvim.builtin.nvimtree.side = "left"
lvim.builtin.terminal.shell = "/bin/zsh" lvim.builtin.nvimtree.show_icons.git = 1
lvim.builtin.terminal.shell = "/bin/fish"
vim.termguicolors = true vim.termguicolors = true
vim.background = "dark" vim.background = "light"
vim.g.nord_contrast = true lvim.colorscheme = "gruvbox"
vim.g.nord_borders = true
vim.g.nord_disable_background = false
vim.g.nord_italic = true
vim.termguicolors = true
lvim.colorscheme = "nord"
lvim.builtin.treesitter.ensure_installed = {} lvim.builtin.treesitter.ensure_installed = {}
lvim.builtin.treesitter.ignore_install = { "" } lvim.builtin.treesitter.ignore_install = { "" }
lvim.builtin.treesitter.highlight.enabled = true lvim.builtin.treesitter.highlight.enabled = true
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 formatters = require("lvim.lsp.null-ls.formatters")
local linters = require("lvim.lsp.null-ls.linters") local linters = require("lvim.lsp.null-ls.linters")
@ -64,18 +48,18 @@ formatters.setup({
}) })
linters.setup({ linters.setup({
{ exe = "ruff", filetype = { "python" } }, { exe = "flake8" },
}) })
-- Additional Plugins -- Additional Plugins
lvim.plugins = { lvim.plugins = {
{ "shaunsingh/nord.nvim" }, { "ellisonleao/gruvbox.nvim" },
{ {
"ray-x/lsp_signature.nvim", "ray-x/lsp_signature.nvim",
event = "BufRead",
config = function() config = function()
require("lsp_signature").on_attach() require("lsp_signature").on_attach()
end, end,
event = "InsertEnter",
}, },
{ "machakann/vim-sandwich" }, { "machakann/vim-sandwich" },
{ "tpope/vim-fugitive" }, { "tpope/vim-fugitive" },
@ -85,91 +69,43 @@ lvim.plugins = {
require("spellsitter").setup() require("spellsitter").setup()
end, end,
}, },
{ "ggandor/lightspeed.nvim", requires = { "tpope/vim-repeat" }, event = "InsertEnter" },
{ "ellisonleao/glow.nvim" }, { "ellisonleao/glow.nvim" },
{ "TakenMC/presence.nvim", branch = "other" },
{
"m-demare/hlargs.nvim",
config = function()
require("hlargs").setup()
end,
},
{
"windwp/nvim-ts-autotag",
config = function()
require("nvim-ts-autotag").setup()
end,
},
{
"p00f/nvim-ts-rainbow",
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",
} }
require("colorizer").setup() -- Changes to clangd
vim.list_extend(lvim.lsp.override, { "clangd" })
require("better_escape").setup({ -- some settings can only passed as commandline flags `clangd --help`
mapping = { "jk", "kj" }, -- a table with mappings to use local clangd_flags = {
timeout = vim.o.timeoutlen, -- the time in which the keys must be hit in ms. Use option timeoutlen by default "--all-scopes-completion",
clear_empty_lines = false, -- clear line after escaping if there is only whitespace "--suggest-missing-includes",
keys = "<Esc>", -- keys used for escaping, if it is a function will use the result everytime "--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",
}
-- The setup config table shows all available config options with their default values: local clangd_bin = "clangd"
require("presence"):setup({
-- General options
auto_update = true, -- Update activity based on autocmd events (if `false`, map or manually execute `:lua package.loaded.presence:update()`)
neovim_image_text = "The One True Text Editor", -- Text displayed when hovered over the Neovim image
main_image = "file", -- Main image display (either "neovim" or "file")
client_id = "793271441293967371", -- 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)`)
enable_line_number = false, -- Displays the current line number instead of the current project
blacklist = {}, -- A list of strings or Lua patterns that disable Rich Presence if the current file name, path, or workspace matches
buttons = true, -- Configure Rich Presence button(s), either a boolean to enable/disable, a static table (`{{ label = "<label>", url = "<url>" }, ...}`, or a function(buffer: string, repo_url: string|nil): table)
file_assets = {}, -- Custom file asset definitions keyed by file names and extensions (see default config at `lua/presence/file_assets.lua` for reference)
-- Rich Presence text options local custom_on_attach = function(client, bufnr)
editing_text = "Editing %s", -- Format string rendered when an editable file is loaded in the buffer (either string or function(filename: string): string) require("lvim.lsp").common_on_attach(client, bufnr)
file_explorer_text = "Browsing %s", -- Format string rendered when browsing a file explorer (either string or function(file_explorer_name: string): string) local opts = { noremap = true, silent = true }
git_commit_text = "Committing changes", -- Format string rendered when committing changes in git (either string or function(filename: string): string) vim.api.nvim_buf_set_keymap(bufnr, "n", "<leader>lh", "<Cmd>ClangdSwitchSourceHeader<CR>", opts)
plugin_manager_text = "Managing plugins", -- Format string rendered when managing plugins (either string or function(plugin_manager_name: string): string) end
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) local opts = {
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) 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")

View File

@ -1,60 +0,0 @@
{
"Comment.nvim": { "branch": "master", "commit": "176e85eeb63f1a5970d6b88f1725039d85ca0055" },
"LuaSnip": { "branch": "master", "commit": "1f72e43a446961a1372c54038882c1d36e105cab" },
"alpha-nvim": { "branch": "main", "commit": "e4fc5e29b731bdf55d204c5c6a11dc3be70f3b65" },
"better-escape.nvim": { "branch": "master", "commit": "7031dc734add47bb71c010e0551829fa5799375f" },
"bigfile.nvim": { "branch": "main", "commit": "9616b73670ffeb92679677554ded88854ae42cf8" },
"bufferline.nvim": { "branch": "main", "commit": "d24378edc14a675c820a303b4512af3bbc5761e9" },
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
"cmp-cmdline": { "branch": "main", "commit": "8ee981b4a91f536f52add291594e89fb6645e451" },
"cmp-nvim-lsp": { "branch": "main", "commit": "44b16d11215dce86f253ce0c30949813c0a90765" },
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"cmp_luasnip": { "branch": "master", "commit": "18095520391186d634a0045dacaa346291096566" },
"friendly-snippets": { "branch": "main", "commit": "ea84a710262cb2c286d439070bad37d36fd3db25" },
"gitsigns.nvim": { "branch": "main", "commit": "1e01b2958aebb79f1c33e7427a1bac131a678e0d" },
"glow.nvim": { "branch": "main", "commit": "bbd0473d72a45094495ee5600b5577823543eefe" },
"hlargs.nvim": { "branch": "main", "commit": "cfc9beab4e176a13311efe03e38e6b6fed5df4f6" },
"hop.nvim": { "branch": "v2", "commit": "90db1b2c61b820e230599a04fedcd2679e64bd07" },
"indent-blankline.nvim": { "branch": "master", "commit": "4541d690816cb99a7fc248f1486aa87f3abce91c" },
"is.vim": { "branch": "master", "commit": "d393cb346dcdf733fecd7bbfc45b70b8c05e9eb4" },
"lazy.nvim": { "branch": "main", "commit": "14d76aac4bd3ff07c1fca074c210f28f766a931e" },
"lir.nvim": { "branch": "master", "commit": "969e95bd07ec315b5efc53af69c881278c2b74fa" },
"lsp_signature.nvim": { "branch": "master", "commit": "58d4e810801da74c29313da86075d6aea537501f" },
"lualine.nvim": { "branch": "master", "commit": "05d78e9fd0cdfb4545974a5aa14b1be95a86e9c9" },
"lunar.nvim": { "branch": "master", "commit": "08bbc93b96ad698d22fc2aa01805786bcedc34b9" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "828a538ac8419f586c010996aefa5df6eb7c250b" },
"mason.nvim": { "branch": "main", "commit": "5ad3e113b0c3fde3caba8630599373046f6197e8" },
"neodev.nvim": { "branch": "main", "commit": "62515f64dfb196e8abe1263e17e2546559e41292" },
"nlsp-settings.nvim": { "branch": "main", "commit": "64976a5ac70a9a43f3b1b42c5b1564f7f0e4077e" },
"nord.nvim": { "branch": "master", "commit": "fab04b2dd4b64f4b1763b9250a8824d0b5194b8f" },
"null-ls.nvim": { "branch": "main", "commit": "db09b6c691def0038c456551e4e2772186449f35" },
"nvim-autopairs": { "branch": "master", "commit": "ae5b41ce880a6d850055e262d6dfebd362bb276e" },
"nvim-cmp": { "branch": "main", "commit": "c4e491a87eeacf0408902c32f031d802c7eafce8" },
"nvim-colorizer.lua": { "branch": "master", "commit": "36c610a9717cc9ec426a07c8e6bf3b3abcb139d6" },
"nvim-dap": { "branch": "master", "commit": "d17d1bba23ec72a157bd183c57840c39e323f515" },
"nvim-dap-ui": { "branch": "master", "commit": "85b16ac2309d85c88577cd8ee1733ce52be8227e" },
"nvim-lspconfig": { "branch": "master", "commit": "447443a2404adc323ad2efc7c0a346a904ce694c" },
"nvim-navic": { "branch": "master", "commit": "e6da6f74d89de65258ea7e98e22103ff5de6dcf5" },
"nvim-tree.lua": { "branch": "master", "commit": "3b62c6bf2c3f2973036aed609d02fd0ca9c3af35" },
"nvim-treesitter": { "branch": "master", "commit": "19b29f7cb046317b74e60fc7bff2f86ece4dc118" },
"nvim-ts-autotag": { "branch": "main", "commit": "6be1192965df35f94b8ea6d323354f7dc7a557e4" },
"nvim-ts-context-commentstring": { "branch": "main", "commit": "7f625207f225eea97ef7a6abe7611e556c396d2f" },
"nvim-ts-rainbow": { "branch": "master", "commit": "ef95c15a935f97c65a80e48e12fe72d49aacf9b9" },
"nvim-web-devicons": { "branch": "master", "commit": "efbfed0567ef4bfac3ce630524a0f6c8451c5534" },
"onedarker.nvim": { "branch": "freeze", "commit": "b00dd2189f264c5aeb4cf04c59439655ecd573ec" },
"plenary.nvim": { "branch": "master", "commit": "267282a9ce242bbb0c5dc31445b6d353bed978bb" },
"presence.nvim": { "branch": "other", "commit": "3c22ea345ae716589356cb225bf348ec4d518fef" },
"project.nvim": { "branch": "main", "commit": "8c6bad7d22eef1b71144b401c9f74ed01526a4fb" },
"schemastore.nvim": { "branch": "main", "commit": "0682f56392ddc86cf5e6b2af76a63bc48ad4ed84" },
"spellsitter.nvim": { "branch": "master", "commit": "4af8640d9d706447e78c13150ef7475ea2c16b30" },
"structlog.nvim": { "branch": "main", "commit": "45b26a2b1036bb93c0e83f4225e85ab3cee8f476" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "9bc8237565ded606e6c366a71c64c0af25cd7a50" },
"telescope.nvim": { "branch": "0.1.x", "commit": "776b509f80dd49d8205b9b0d94485568236d1192" },
"tmux.nvim": { "branch": "main", "commit": "03e28fdaa2ef54b975ba1930f1e69b5e231dedc9" },
"toggleterm.nvim": { "branch": "main", "commit": "00c13dccc78c09fa5da4c5edda990a363e75035e" },
"tokyonight.nvim": { "branch": "main", "commit": "1ee11019f8a81dac989ae1db1a013e3d582e2033" },
"vim-fugitive": { "branch": "master", "commit": "b3b838d690f315a503ec4af8c634bdff3b200aaf" },
"vim-illuminate": { "branch": "master", "commit": "a2907275a6899c570d16e95b9db5fd921c167502" },
"vim-sandwich": { "branch": "master", "commit": "c5a2cc438ce6ea2005c556dc833732aa53cae21a" },
"which-key.nvim": { "branch": "main", "commit": "38b990f6eabf62014018b4aae70a97d7a6c2eb88" }
}

View File

@ -1,24 +0,0 @@
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: '

View File

@ -0,0 +1 @@
114070

View File

@ -1,6 +1,6 @@
auto-reload yes auto-reload yes
browser "firefox --new-tab %u" browser "firefox --new-tab %u"
max-items 999999 max-items 50
# unbind keys # unbind keys
unbind-key ENTER unbind-key ENTER

View File

@ -5,4 +5,3 @@ https://medium.com/feed/better-programming "Technology"
https://protesilaos.com/codelog.xml "Technology" https://protesilaos.com/codelog.xml "Technology"
https:///notrelated.xyz/rss.xml "Politics" https:///notrelated.xyz/rss.xml "Politics"
https://hnrss.org/frontpage "Technology" https://hnrss.org/frontpage "Technology"
https://drewdevault.com/blog/index.xml "Technology"

View File

@ -1,13 +0,0 @@
[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

View File

@ -1,13 +0,0 @@
[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

View File

@ -1,149 +0,0 @@
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

View File

@ -15,10 +15,10 @@ exec mako
exec udiskie exec udiskie
# night light and some gamma decrease # night light and some gamma decrease
exec wlsunset -l 45.6 -L -73.5 -g 0.7 exec wlsunset -l 45.6 -L -73.5 -g 0.8
# bspwm throw back # bspwm throw back
exec /usr/bin/autotiling exec autotiling
# window manager # window manager
exec env RUST_BACKTRACE=1 swayrd > /tmp/swayrd.log 2>&1 exec env RUST_BACKTRACE=1 swayrd > /tmp/swayrd.log 2>&1
@ -49,46 +49,42 @@ default_border pixel 5
font pango:FiraCodeNerdFontMono Regular 11 font pango:FiraCodeNerdFontMono Regular 11
# Window decoration # # class border bground text indicator child_border
# class border backgr. text indicator child_border client.focused #F3722C #EBDBB2 #3C3836 #D65D0E #FE8019
client.focused #5e81ac #5e81ac #eceff4 #434c5e #5e81ac client.unfocused #3C3836 #3C3836 #EBDBB2 #CC241D #504945
client.focused_inactive #4c566a #4c566a #d8dee9 #3b4252 #434c5e client.focused_inactive #3C3836 #EBDBB2 #3C3836 #000000 #00000000
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. # Additionally, you can issue commands with the following syntax. This is useful to bind keys to changing the gap size.
gaps inner 6 gaps inner 6
gaps outer 3 gaps outer 3
# Key repeat rate
input type:keyboard {
repeat_delay 300
repeat_rate 30
}
### Output configuration ### Output configuration
#
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
output * bg /home/minhradz/Downloads/lantern.jpg fill
#
# Example configuration:
#
output * bg /home/minhradz/Downloads/wall.png fill 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 HDMI-A-1 res 1920x1080 position 0,0 adaptive_sync on ### Idle configuration
## Idle configuration
exec swayidle -w \ exec swayidle -w \
timeout 1800 'swaylock --ignore-empty-password --show-failed-attempts -f -c 000000' \ timeout 300 'swaylock -f -c 000000' \
timeout 1800 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \ timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \
before-sleep 'swaylock --ignore-empty-password --show-failed-attempts -f -c 000000' before-sleep 'swaylock -f -c 000000'
for_window [title="Firefox — Sharing Indicator"] floating enable for_window [title="Firefox — Sharing Indicator"] floating enable
for_window [title="Firefox — Sharing Indicator"] nofocus 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="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 [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="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="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 ### Input configuration
# #
@ -123,7 +119,7 @@ for_window [app_id="emacs"] inhibit_idle visible; max_render_time off
bindsym $mod+Shift+c reload bindsym $mod+Shift+c reload
# Exit sway (logs you out of your Wayland session) # Exit sway (logs you out of your Wayland session)
bindsym $mod+Shift+e exec wlogout bindsym $mod+Shift+e exec exec wlogout
# clipboard manager # clipboard manager
bindsym $mod+p exec clipman pick -t wofi bindsym $mod+p exec clipman pick -t wofi
@ -154,9 +150,6 @@ for_window [app_id="emacs"] inhibit_idle visible; max_render_time off
# #
# Workspaces: # Workspaces:
# #
# Switch to last workspace
bindsym $mod+Tab workspace back_and_forth
# Switch to workspace # Switch to workspace
bindsym $mod+1 workspace number 1 bindsym $mod+1 workspace number 1
bindsym $mod+2 workspace number 2 bindsym $mod+2 workspace number 2
@ -168,19 +161,6 @@ for_window [app_id="emacs"] inhibit_idle visible; max_render_time off
bindsym $mod+8 workspace number 8 bindsym $mod+8 workspace number 8
bindsym $mod+9 workspace number 9 bindsym $mod+9 workspace number 9
bindsym $mod+0 workspace number 10 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
# Move focused container to workspace # Move focused container to workspace
bindsym $mod+Shift+1 move container to workspace number 1 bindsym $mod+Shift+1 move container to workspace number 1
bindsym $mod+Shift+2 move container to workspace number 2 bindsym $mod+Shift+2 move container to workspace number 2
@ -192,16 +172,6 @@ for_window [app_id="emacs"] inhibit_idle visible; max_render_time off
bindsym $mod+Shift+8 move container to workspace number 8 bindsym $mod+Shift+8 move container to workspace number 8
bindsym $mod+Shift+9 move container to workspace number 9 bindsym $mod+Shift+9 move container to workspace number 9
bindsym $mod+Shift+0 move container to workspace number 10 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
# Note: workspaces can have any name you want, not just numbers. # Note: workspaces can have any name you want, not just numbers.
# We just use 1-10 as the default. # We just use 1-10 as the default.
# #
@ -257,13 +227,14 @@ mode "resize" {
bindsym Return mode "default" bindsym Return mode "default"
bindsym Escape mode "default" bindsym Escape mode "default"
} }
bindsym $mod+r mode "resize" bindsym $mod+r mode "resize"
bindsym $mod+e exec emacsclient -nc bindsym $mod+e exec emacsclient -nc
bindsym $mod+Right workspace next bindsym $mod+Right workspace next
bindsym $mod+Left workspace prev bindsym $mod+Left workspace prev
bindsym $mod+Tab exec swayr next-window current-workspace
# #
# Status Bar: # Status Bar:
# #
@ -274,8 +245,8 @@ bar {
include /etc/sway/config.d/* include /etc/sway/config.d/*
bindsym XF86AudioRaiseVolume exec pactl -- set-sink-volume 0 +5% > $SWAYSOCK.wob bindsym XF86AudioRaiseVolume exec pulsemixer --change-volume +2 && pulsemixer --get-volume > $SWAYSOCK.wob
bindsym XF86AudioLowerVolume exec pactl -- set-sink-volume 0 -5% > $SWAYSOCK.wob bindsym XF86AudioLowerVolume exec pulsemixer --change-volume -2 && pulsemixer --get-volume > $SWAYSOCK.wob
bindsym XF86AudioMute exec pulsemixer --toggle-mute && ( pulsemixer --get-mute && echo 0 > $SWAYSOCK.wob ) || pamixer --get-volume > $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 XF86MonBrightnessUp exec light -A 10
bindsym XF86MonBrightnessDown exec light -U 10 bindsym XF86MonBrightnessDown exec light -U 10

View File

@ -1,5 +1,3 @@
set-environment -g PATH "/usr/local/bin:/bin:/usr/bin"
# remap prefix from 'C-b' to 'C-a' # remap prefix from 'C-b' to 'C-a'
unbind C-b unbind C-b
set-option -g prefix C-a set-option -g prefix C-a
@ -14,9 +12,8 @@ unbind %
set-option -g default-shell /usr/bin/fish set-option -g default-shell /usr/bin/fish
# window and pane index number starts at 1 # index number starts at 1
set -g base-index 1 set -g base-index 1
setw -g pane-base-index 1
# vi-mode # vi-mode
set-window-option -g mode-keys vi set-window-option -g mode-keys vi
@ -26,38 +23,17 @@ 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) # reload config file (change file location to your the tmux.conf you want to use)
bind r source-file /home/minhradz/.tmux.conf bind r source-file /home/minhradz/.tmux.conf
# is_vim="children=(); i=0; pids=( $(ps -o pid= -t '#{pane_tty}') ); \ # switch panes using Alt-arrow without prefix
# while read -r c p; do [[ -n c && c -ne p && p -ne 0 ]] && children[p]+=\" $\{c\}\"; done <<< \"$(ps -Ao pid=,ppid=)\"; \ bind -n M-Left select-pane -L
# while (( $\{#pids[@]\} > i )); do pid=$\{pids[i++]\}; pids+=( $\{children[pid]-\} ); done; \ bind -n M-Right select-pane -R
# ps -o state=,comm= -p \"$\{pids[@]\}\" | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|l?vim?x?)(diff)?$'" bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
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) # Enable mouse mode (tmux 2.1 and above)
set -g mouse on set -g mouse on
# Neovim escape time # Neovim escape time
set-option -sg escape-time 1 set-option -sg escape-time 10
set-option -g focus-events on set-option -g focus-events on
###################### ######################
@ -73,9 +49,11 @@ set -g bell-action none
# List of plugins # List of plugins
set -g @plugin 'tmux-plugins/tpm' set -g @plugin 'tmux-plugins/tpm'
set -g @plugin "arcticicestudio/nord-tmux" set -g @plugin 'egel/tmux-gruvbox'
set -g @plugin 'tmux-plugins/tmux-resurrect' set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum' 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) # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run -b '~/.tmux/plugins/tpm/tpm' run -b '~/.tmux/plugins/tpm/tpm'

View File

@ -1,24 +1,15 @@
// Nord theme // Gruvbox Material theme
$nord0: #2e3440;
$nord1: #3b4252;
$nord2: #434c5e;
$nord3: #4c566a;
$nord4: #d8dee9;
$nord5: #e5e9f0;
$nord6: #eceff4;
$nord8: #88c0d0;
$nord9: #81a1c1;
$blue: #5e81ac; $red: #ea6962;
$red: #bf616a; $orange: #e78a4e;
$cyan: #8fbcbb; $yellow: #d8a657;
$orange: #d08770; $green: #a9b665;
$yellow: #ebcb8b; $cyan: #89b482;
$green: #a3be8c; $blue: #7daea3;
$magenta: #b48ead; $magenta: #d3869b;
$bg: $nord1; $bg: #464646;
$fg: $magenta; $fg: $orange;
$fg-opposite: scale-color($fg, $lightness: -25%, $saturation: -15%); $fg-opposite: scale-color($fg, $lightness: -25%, $saturation: -15%);

View File

@ -29,16 +29,8 @@
"8": "八", "8": "八",
"9": "九", "9": "九",
"10": "十", "10": "十",
"11": "十一", "focused": "",
"12": "十二", "default": ""
"13": "十三",
"14": "十四",
"15": "十五",
"16": "十六",
"17": "十七",
"18": "十八",
"19": "十九",
"20": "二十"
} }
}, },
"cpu": { "cpu": {
@ -48,8 +40,7 @@
"states": { "states": {
"warning": 70, "warning": 70,
"critical": 90 "critical": 90
}, }
"on-click": ""
}, },
"memory": { "memory": {
"interval": 5, "interval": 5,
@ -58,7 +49,6 @@
"warning": 70, "warning": 70,
"critical": 90 "critical": 90
}, },
"on-click": ""
}, },
"battery": { "battery": {
@ -74,8 +64,7 @@
"", "",
"", "",
"" ""
], ]
"on-click": ""
}, },
"tray": { "tray": {
@ -86,13 +75,11 @@
"clock": { "clock": {
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>", "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format": "{:%I:%M %p}", "format": "{:%I:%M %p}",
"on-click": ""
}, },
"clock#date": { "clock#date": {
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>", "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format": "{:%B %d, %A}", "format": "{:%B %d, %A}",
"on-click": ""
}, },
"pulseaudio": { "pulseaudio": {

View File

@ -2,14 +2,14 @@
#pulseaudio, #clock, #tags, #language, #memory, #network, #sndio, #pulseaudio, #clock, #tags, #language, #memory, #network, #sndio,
#mode, #window, #workspaces, #temperature, #taskbar, #workspaces, #mode, #window, #workspaces, #temperature, #taskbar, #workspaces,
#custom-treefetch-downloads, #custom-update-count { #custom-treefetch-downloads, #custom-update-count {
box-shadow: 4px 4px 0 #292c34; box-shadow: 4px 4px 0 #2e2e2e;
margin-bottom: 4px; margin-bottom: 4px;
margin-right: 4px; margin-right: 4px;
margin-left: 3px; margin-left: 3px;
margin-right: 7px; margin-right: 7px;
padding-left: 10px; padding-left: 10px;
padding-right: 10px; padding-right: 10px;
background: #3b4252; background: #464646;
border-radius: 0px; border-radius: 0px;
} }
@ -18,18 +18,18 @@
} }
#workspaces button { #workspaces button {
color: #ebcb8b; color: #d8a657;
margin: 0; margin: 0;
padding: 1px 1px 0px 1px; padding: 1px 1px 0px 1px;
} }
#workspaces button.focused { #workspaces button.focused {
border: 1px solid #b48ead; border: 1px solid #e78a4e;
} }
window#waybar { window#waybar {
background: transparent; background: transparent;
color: #b48ead; color: #e78a4e;
} }
.modules-left, .modules-center, .modules-right { .modules-left, .modules-center, .modules-right {
@ -57,17 +57,17 @@ window#waybar {
} }
#mpd { #mpd {
color: #3b4252; color: #464646;
margin-left: 5px; margin-left: 5px;
} }
#custom-mpd-song-scroll { #custom-mpd-song-scroll {
color: #8d6486; color: #bf6429;
margin-right: 50px; margin-right: 50px;
} }
#tags button { #tags button {
color: #65718c; color: #787878;
font-family: "Source Han Sans JP Heavy"; font-family: "Source Han Sans JP Heavy";
font-weight: 700; font-weight: 700;
padding: 0 3px; padding: 0 3px;
@ -84,20 +84,20 @@ window#waybar {
} }
#tags button:hover { #tags button:hover {
color: #3b4252; color: #464646;
background: #65718c; background: #787878;
box-shadow: none; box-shadow: none;
text-shadow: none; text-shadow: none;
transition: 0; transition: 0;
} }
#tags button.focused { #tags button.focused {
color: #3b4252; color: #464646;
background: #b48ead; background: #e78a4e;
} }
#tags button.urgent { #tags button.urgent {
color: #bf616a; color: #ea6962;
} }
@keyframes fadein { @keyframes fadein {
@ -109,7 +109,7 @@ window#waybar {
} }
} }
tooltip { tooltip {
background: #3b4252; background: #464646;
border-radius: 7px; border-radius: 7px;
font-family: "JetBrains Mono Nerd Font", monospace; font-family: "JetBrains Mono Nerd Font", monospace;
font-weight: 500; font-weight: 500;
@ -117,18 +117,18 @@ tooltip {
padding: 10px; padding: 10px;
animation-name: fadein; animation-name: fadein;
animation-duration: 0.2s; animation-duration: 0.2s;
border: 2px solid #65718c; border: 2px solid #787878;
text-shadow: none; text-shadow: none;
color: #b48ead; color: #e78a4e;
} }
tooltip label { tooltip label {
color: #b48ead; color: #e78a4e;
} }
#tray menu { #tray menu {
background: #3b4252; background: #464646;
color: #b48ead; color: #e78a4e;
border-radius: 5px; border-radius: 5px;
border: 2px solid #65718c; border: 2px solid #787878;
} }

View File

@ -1,23 +1,24 @@
{ {
"label" : "lock", "label" : "lock",
"action" : "swaylock --ignore-empty-password --show-failed-attempts -f -c 000000", "action" : "swaylock -c ~/.config/swaylock/config",
"text" : "Lock", "text" : "Lock",
"keybind" : "l" "keybind" : "l"
} }
{ {
"label" : "hibernate", "label" : "hibernate",
"action" : "systemctl suspend", "action" : "systemctl hibernate",
"text" : "Hibernate", "text" : "Hibernate",
"keybind" : "h"
} }
{ {
"label" : "logout", "label" : "logout",
"action" : "swaymsg exit", "action" : "loginctl terminate-user $USER",
"text" : "Logout", "text" : "Logout",
"keybind" : "e" "keybind" : "e"
} }
{ {
"label" : "shutdown", "label" : "shutdown",
"action" : "shutdown now", "action" : "systemctl poweroff",
"text" : "Shutdown", "text" : "Shutdown",
"keybind" : "s" "keybind" : "s"
} }

View File

@ -1,52 +1,51 @@
* { * {
background-image: none; background-image: none;
} }
@keyframes fadeIn {
from {opacity: 0;}
to {opacity: 1;}
}
window { window {
background-color: rgba(46,52,64, 0.9); background-image: image(url("/home/minhradz/Downloads/lantern.jpg"), url("/home/minhradz/Downloads/lantern.jpg"));
font-size: 26px;
font-family: Product Sans;
animation: fadeIn;
animation-duration: 0.5s;
} }
button { button {
color: #eceff4; background-color: #2e3440;
background-color: #4c566a; border-width: 0px;
border-style: solid; border-radius: 0;
margin: 20px;
border: 3px solid #3b4252;
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: center; background-position: center;
background-size: 25%;
color: #5e81ac;
} }
button:focus, button:active, button:hover { button:active, button:hover {
background-color: #5e81ac; background-color: #4c566a;
color: #81a1c1;
outline-style: none; outline-style: none;
} }
#lock { #lock {
background-image: image(url("/home/minhradz/.config/wlogout/icons/lock.png"), url("/usr/local/share/wlogout/icons/lock.png")); opacity: 0.9;
background-image: image(url("/usr/share/wlogout/icons/logout.png"), url("/usr/share/wlogout/icons/logout.png"));
} }
#logout { #logout {
background-image: image(url("/home/minhradz/.config/wlogout/icons/logout.png"), url("/usr/local/share/wlogout/icons/logout.png")); opacity: 0.9;
background-image: image(url("/usr/share/wlogout/icons/logout.png"), url("/usr/local/share/wlogout/icons/logout.png"));
} }
#suspend { #suspend {
background-image: image(url("/home/minhradz/.config/wlogout/icons/suspend.png"), url("/usr/local/share/wlogout/icons/suspend.png")); opacity: 0.9;
background-image: image(url("/usr/share/wlogout/icons/suspend.png"), url("/usr/local/share/wlogout/icons/suspend.png"));
} }
#hibernate { #hibernate {
background-image: image(url("/home/minhradz/.config/wlogout/icons/hibernate.png"), url("/usr/local/share/wlogout/icons/hibernate.png")); opacity: 0.9;
background-image: image(url("/usr/share/wlogout/icons/hibernate.png"), url("/usr/local/share/wlogout/icons/hibernate.png"));
} }
#shutdown { #shutdown {
background-image: image(url("/home/minhradz/.config/wlogout/icons/shutdown.png"), url("/usr/local/share/wlogout/icons/shutdown.png")); opacity: 0.9;
background-image: image(url("/usr/share/wlogout/icons/shutdown.png"), url("/usr/local/share/wlogout/icons/shutdown.png"));
} }
#reboot { #reboot {
background-image: image(url("/home/minhradz/.config/wlogout/icons/reboot.png"), url("/usr/local/share/wlogout/icons/reboot.png")); opacity: 0.9;
background-image: image(url("/usr/share/wlogout/icons/reboot.png"), url("/usr/local/share/wlogout/icons/reboot.png"));
} }

View File

@ -1,20 +1,5 @@
stylesheet=/home/minhradz/.config/wofi/style.css term=kitty -1
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 allow-images=true
insensitive=true
prompt=
image_size=25 image_size=25
display_generic=true
key_expand=Tab key_expand=Tab
show=drun

View File

@ -1,70 +1,64 @@
#entry { #window {
border-radius: 5px; padding: 2px;
padding: 7px; background-color: transparent;
margin: 0px 5px 0px 5px; font-family: JetBrainsMonoMedium Nerd Font Mono;
} }
@keyframes fadeIn { #entry {
from { border-radius: 5px;
opacity: 0; padding: 5px;
} margin-bottom: 5px;
to {
opacity: 1;
}
} }
#entry:selected { #entry:selected {
background-color: #5e81ac; background-color: #665C54;
}
#text:selected {
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 #5e81ac;
background-color: #4c566a;
padding: 6px;
margin: 15px;
margin-bottom: 0px;
font-size: 16px;
border-radius: 5px;
}
#inner-box {
color: #d8dee9;
padding: 10px;
padding-top: 5px;
}
#outer-box {
margin: 15px;
border-radius: 15px;
background-color: rgba(53, 59, 73, 1);
box-shadow: 0px 0px 5px 0 #0f0f0f;
}
#scroll {
margin-top: 10px;
margin-bottom: 10px;
} }
#text { #text {
font-size: 16px; padding: 5px;
padding: 7px; font-size: 13px;
color: #d8dee9; color:#FBF1C7;
background-color: transparent; background-color: transparent;
} }
#text:selected {
font-size:14px;
font-weight:400;
color: #ffffff;
}
#input {
border: 2px solid #3C3836;
background-color: #EBDBB2;
padding: 5px;
font-size: 13px;
border-radius: 8px;
color: #1D2021;
box-shadow: 0 0 5px black;
}
#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;
}
#outer-box {
margin: 15px;
background-color: transparent;
}
#scroll {
margin-top: 10px;
}
#img { #img {
background-color: transparent; background-color: transparent;
padding: 5px; padding: 5px;

View File

@ -1 +0,0 @@
eval $(keychain --eval --agents "gpg,ssh" --quiet id_ed25519 E13CFA85C53F8062)

View File

@ -1,9 +0,0 @@
export EDITOR=lvim
export MANPAGER="lvim +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"

View File

@ -1,56 +0,0 @@
# 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)"