Compare commits
43 Commits
wayland
...
4b1509acf7
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4b1509acf7 | ||
|
|
457fa93727 | ||
|
|
414317c19f | ||
|
|
2e14989a23 | ||
|
|
1839f9e875 | ||
|
|
c80216989c | ||
|
|
7c620dba19 | ||
|
|
d1ee31378d | ||
|
|
bf33a8bbd7 | ||
|
|
42deab7c3e | ||
|
|
ed2c9d2b6a | ||
|
|
3e4baa2b63 | ||
|
|
1d937b9316 | ||
|
|
75de8dcadb | ||
|
|
04bc54a80c | ||
|
|
754aa9d191 | ||
|
|
9acf200418 | ||
|
|
90fa090890 | ||
|
|
07785f0f99 | ||
|
|
e89bb2627c | ||
|
|
161dc09e25 | ||
|
|
846b5541f9 | ||
|
|
6a03bc9198 | ||
|
|
85d13e762f | ||
|
|
a575826bb6 | ||
|
|
8561e961eb | ||
|
|
c7126a86ef | ||
|
|
1ea23f4510 | ||
|
|
274ec45f75 | ||
|
|
04bd67e289 | ||
|
|
ad83e5a63a | ||
|
|
9e70682bd3 | ||
|
|
7d2ffb2fc9 | ||
|
|
56af90de63 | ||
|
|
c8566553cf | ||
|
|
37e092c031 | ||
|
|
ea7b586c3c | ||
|
|
b1a91911c8 | ||
|
|
a2645ca3e3 | ||
|
|
79deef489a | ||
|
|
909b6423e0 | ||
|
|
485841b483 | ||
|
|
1591397b9c |
32
README.md
32
README.md
@@ -11,8 +11,9 @@ Each directory in this repository corresponds to a specific application or tool,
|
||||
> Example usage (from the repository root):
|
||||
>
|
||||
> ```bash
|
||||
> stow nvim
|
||||
> stow zsh
|
||||
> stow bash
|
||||
> stow i3
|
||||
> stow doom
|
||||
> ```
|
||||
|
||||
### 🧩 Included Tools & Configurations
|
||||
@@ -20,34 +21,31 @@ Each directory in this repository corresponds to a specific application or tool,
|
||||
This repository contains my configuration files for the following tools:
|
||||
|
||||
- **Shells & Prompt**
|
||||
- `zsh` + `starship`
|
||||
- `bash` (Oh My Bash)
|
||||
- `starship`
|
||||
- **Terminal Emulators & Multiplexer**
|
||||
- `alacritty`
|
||||
- `foot`
|
||||
- `tmux`
|
||||
- **Editors & CLI Tools**
|
||||
- `neovim` (with LazyVim)
|
||||
- `doom emacs`
|
||||
- `doom` (Doom Emacs config)
|
||||
- `emacs` (Custom config)
|
||||
- `git`
|
||||
- `lazygit`
|
||||
- **X11 Environment**
|
||||
- `rofi` (launcher)
|
||||
- `polybar` (status bar)
|
||||
- `dunst` (notification daemon)
|
||||
- `i3` (window manager)
|
||||
- `i3` (Window Manager)
|
||||
- `picom` (X11 compositor)
|
||||
- **Wayland Environment**
|
||||
- `fuzzel` (launcher)
|
||||
- `waybar` (status bar)
|
||||
- `polybar` (status bar)
|
||||
- `rofi` (launcher)
|
||||
- `dunst` (notification daemon)
|
||||
- **Wayland Environment**
|
||||
- `sway` (Window Manager)
|
||||
- `waybar` (status bar)
|
||||
- `rofi` (launcher)
|
||||
- `dunst` (notification daemon)
|
||||
- `sway` (window manager)
|
||||
- **Utilities**
|
||||
- `fastfetch`
|
||||
- `zoxide`
|
||||
- `mpv`
|
||||
- `yt-dlp`
|
||||
- `flameshot`
|
||||
- `newsboat`
|
||||
|
||||
---
|
||||
|
||||
|
||||
26
bash/.bashrc
26
bash/.bashrc
@@ -9,7 +9,7 @@ export OSH='/home/fscotto/.oh-my-bash'
|
||||
|
||||
# Set name of the theme to load. Optionally, if you set this to "random"
|
||||
# it'll load a random theme each time that oh-my-bash is loaded.
|
||||
OSH_THEME="robbyrussell"
|
||||
# OSH_THEME="robbyrussell"
|
||||
|
||||
# If you set OSH_THEME to "random", you can ignore themes you don't like.
|
||||
# OMB_THEME_RANDOM_IGNORED=("powerbash10k" "wanelo")
|
||||
@@ -164,8 +164,22 @@ source "$OSH"/oh-my-bash.sh
|
||||
# Set personal aliases, overriding those provided by oh-my-bash libs,
|
||||
# plugins, and themes. Aliases can be placed here, though oh-my-bash
|
||||
# users are encouraged to define aliases within the OSH_CUSTOM folder.
|
||||
# For a full list of active aliases, run `alias`.
|
||||
#
|
||||
# Example aliases
|
||||
# alias bashconfig="mate ~/.bashrc"
|
||||
# alias ohmybash="mate ~/.oh-my-bash"
|
||||
# For a full list of active aliases, run `
|
||||
|
||||
alias ls='ls --color=auto --group-directories-first'
|
||||
|
||||
# Replace grep command tool
|
||||
alias grep='grep --color=auto'
|
||||
alias egrep='grep -E'
|
||||
alias fgrep='grep -F'
|
||||
|
||||
# Other aliases
|
||||
alias paths='echo -e ${PATH//:/\\n}' # path: Echo all executable Paths
|
||||
alias userlist="cut -d: -f1 /etc/passwd | sort"
|
||||
alias ip='ip -color'
|
||||
alias stow='stow -d $DOTFILES '
|
||||
|
||||
# Starship prompt
|
||||
if command -v starship > /dev/null 2>&1; then
|
||||
eval "$(starship init bash)"
|
||||
fi
|
||||
|
||||
@@ -1,15 +1,3 @@
|
||||
function appendpath() {
|
||||
local location="${1}"
|
||||
case ":$PATH:" in
|
||||
*":$location:"*) ;;
|
||||
*) export PATH="$PATH:$location" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
appendpath "$HOME/.local/bin"
|
||||
appendpath "$HOME/.config/emacs/bin"
|
||||
unset appendpath
|
||||
|
||||
# XDG variables
|
||||
export XDG_CONFIG_HOME=${HOME}/.config
|
||||
export XDG_DATA_HOME=${HOME}/.local/share
|
||||
@@ -21,33 +9,50 @@ export GTK2_RC_FILES=${XDG_CONFIG_HOME}/gtk-2.0/gtkrc-2.0
|
||||
|
||||
# Enable QT apps to have gtk theme
|
||||
export QT_QPA_PLATFORMTHEME=qt5ct
|
||||
export QT_STYLE_OVERRIDE=kvantum
|
||||
|
||||
# Make Qt apps honour DPI settings.
|
||||
export QT_AUTO_SCREEN_SCALE_FACTOR=1
|
||||
|
||||
export ZSH_HOME="$HOME/.zsh"
|
||||
export DOTFILES="$HOME/.dotfiles"
|
||||
export EDITOR=nvim
|
||||
export HELPDIR=/usr/share/zsh/"${ZSH_VERSION}"/help
|
||||
export EDITOR=nano
|
||||
|
||||
# SSH socket
|
||||
export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/gcr/ssh"
|
||||
|
||||
export FZF_DEFAULT_COMMAND="fd --hidden --type file --strip-cwd-prefix --exclude .git"
|
||||
export FZF_CTRL_T_COMMAND="fd --hidden --type file --strip-cwd-prefix --exclude .git"
|
||||
export FZF_ALT_C_COMMAND="fd --hidden --type directory --strip-cwd-prefix --exclude .git"
|
||||
# Export Catppuccin Mocha theme for FZF
|
||||
export FZF_DEFAULT_OPTS=" \
|
||||
--height 60% --layout=reverse --border \
|
||||
--color=bg+:#313244,bg:#1E1E2E,spinner:#F5E0DC,hl:#F38BA8 \
|
||||
--color=fg:#CDD6F4,header:#F38BA8,info:#CBA6F7,pointer:#F5E0DC \
|
||||
--color=marker:#B4BEFE,fg+:#CDD6F4,prompt:#CBA6F7,hl+:#F38BA8 \
|
||||
--color=selected-bg:#45475A \
|
||||
--color=border:#313244,label:#CDD6F4"
|
||||
export FZF_TMUX_OPTS=" -p90%,70%"
|
||||
# export FZF_DEFAULT_COMMAND="fdfind --hidden --type file --strip-cwd-prefix --exclude .git"
|
||||
# export FZF_CTRL_T_COMMAND="fdfind --hidden --type file --strip-cwd-prefix --exclude .git"
|
||||
# export FZF_ALT_C_COMMAND="fdfind --hidden --type directory --strip-cwd-prefix --exclude .git"
|
||||
# # Export Catppuccin Mocha theme for FZF
|
||||
# export FZF_DEFAULT_OPTS=" \
|
||||
# --height 60% --layout=reverse --border \
|
||||
# --color=bg+:#313244,bg:#1E1E2E,spinner:#F5E0DC,hl:#F38BA8 \
|
||||
# --color=fg:#CDD6F4,header:#F38BA8,info:#CBA6F7,pointer:#F5E0DC \
|
||||
# --color=marker:#B4BEFE,fg+:#CDD6F4,prompt:#CBA6F7,hl+:#F38BA8 \
|
||||
# --color=selected-bg:#45475A \
|
||||
# --color=border:#313244,label:#CDD6F4"
|
||||
# export FZF_TMUX_OPTS=" -p90%,70%"
|
||||
export VIRTUAL_ENV_DISABLE_PROMPT=1
|
||||
|
||||
source "$HOME/.profile.d/mise.sh"
|
||||
source "$HOME/.profile.d/golang.sh"
|
||||
source "$HOME/.profile.d/java.sh"
|
||||
# Export Golang enviroments
|
||||
export GOPATH="$HOME/.local/share/Go"
|
||||
export GOBIN="$GOPATH/bin"
|
||||
|
||||
appendpath() {
|
||||
local location="${1}"
|
||||
case ":$PATH:" in
|
||||
*":$location:"*) ;;
|
||||
*) export PATH="$PATH:$location" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
appendpath "$HOME/.local/bin"
|
||||
appendpath "$GOBIN"
|
||||
appendpath "$HOME/.cargo/bin"
|
||||
appendpath "/home/linuxbrew/.linuxbrew/bin"
|
||||
appendpath "$HOME/.config/emacs/bin"
|
||||
unset appendpath
|
||||
|
||||
source "$HOME/.profile.d/homebrew.sh"
|
||||
source "$HOME/.profile.d/mise.sh"
|
||||
source "$HOME/.profile.d/java.sh"
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if command -v go > /dev/null 2>&1; then
|
||||
export GOPATH="$HOME/.local/share/Go"
|
||||
export GOBIN="$GOPATH/bin"
|
||||
fi
|
||||
5
bash/.profile.d/homebrew.sh
Executable file
5
bash/.profile.d/homebrew.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if command -v brew > /dev/null 2>&1; then
|
||||
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
|
||||
fi
|
||||
@@ -1,5 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if command -v java > /dev/null 2>&1; then
|
||||
export JAVA_HOME="$(dirname $(mise bin-paths | grep -i java))"
|
||||
JAVA_HOME="$(dirname $(mise bin-paths | grep -i java))"
|
||||
export JAVA_HOME
|
||||
fi
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
#!/usr/bin/env sh
|
||||
|
||||
# Load Mise en dev
|
||||
if command -v mise > /dev/null 2>&1; then
|
||||
eval "$(mise activate zsh)"
|
||||
eval "$(mise activate bash)"
|
||||
fi
|
||||
|
||||
@@ -21,18 +21,21 @@
|
||||
;; See 'C-h v doom-font' for documentation and more examples of what they
|
||||
;; accept. For example:
|
||||
;;
|
||||
(setq doom-font (font-spec :family "0xProto Nerd Font" :size 18 :weight 'regular))
|
||||
|
||||
;;(setq doom-font (font-spec :family "Fira Code" :size 12 :weight 'semi-light)
|
||||
;; doom-variable-pitch-font (font-spec :family "Fira Sans" :size 13))
|
||||
;;
|
||||
;; If you or Emacs can't find your font, use 'M-x describe-font' to look them
|
||||
;; up, `M-x eval-region' to execute elisp code, and 'M-x doom/reload-font' to
|
||||
;; refresh your font settings. If Emacs still can't find your font, it likely
|
||||
;; wasn't installed correctly. Font issues are rarely Doom issues!
|
||||
(setq doom-font (font-spec :family "FiraCode Nerd Font" :size 16 :weight 'regular)
|
||||
doom-big-font (font-spec :family "FiraCode Nerd Font" :size 18 :weight 'bold)
|
||||
doom-variable-pitch-font (font-spec :family "Noto Sans" :size 16 :weight 'regular))
|
||||
|
||||
;; There are two ways to load a theme. Both assume the theme is installed and
|
||||
;; available. You can either set `doom-theme' or manually load a theme with the
|
||||
;; `load-theme' function. This is the default:
|
||||
(setq doom-theme 'catppuccin)
|
||||
(setq catppuccin-flavor 'mocha) ;; or 'latte, 'macchiato, or 'mocha
|
||||
|
||||
;; This determines the style of line numbers in effect. If set to `nil', line
|
||||
;; numbers are disabled. For relative line numbers, set this to `relative'.
|
||||
@@ -40,8 +43,7 @@
|
||||
|
||||
;; 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 "~/Documents")
|
||||
|
||||
(setq org-directory "~/Remotes/pCloud/Org")
|
||||
|
||||
;; 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.
|
||||
@@ -74,3 +76,81 @@
|
||||
;;
|
||||
;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how
|
||||
;; they are implemented.
|
||||
|
||||
;; Maximize each Emacs frames at startup
|
||||
(add-to-list 'default-frame-alist '(fullscreen . maximized))
|
||||
|
||||
(after! mu4e
|
||||
|
||||
;; This is set to 't' to avoid mail syncing issues when using mbsync
|
||||
(setq mu4e-change-filenames-when-moving t)
|
||||
|
||||
;; Refresh mail using isync every 10 minutes
|
||||
(setq mu4e-update-interval (* 10 60))
|
||||
(setq mu4e-get-mail-command "~/.config/doom/scripts/email_sync.sh")
|
||||
(setq mu4e-maildir "~/Maildir")
|
||||
|
||||
;; Configure email accounts
|
||||
(setq mu4e-contexts
|
||||
(list
|
||||
;; Protonmail Account
|
||||
(make-mu4e-context
|
||||
:name "Protonmail"
|
||||
:match-func
|
||||
(lambda (msg)
|
||||
(when msg
|
||||
(string-prefix-p "/ProtonMailAccount" (mu4e-message-field msg :maildir))))
|
||||
:vars '((user-mail-address . "fscottodisantolo@protonmail.com")
|
||||
(user-full-name . "Fabio Scotto di Santolo")
|
||||
(mu4e-drafts-folder . "/ProtonMailAccount/Drafts")
|
||||
(mu4e-sent-folder . "/ProtonMailAccount/Sent")
|
||||
(mu4e-refile-folder . "/ProtonMailAccount/All Mail")
|
||||
(mu4e-trash-folder . "/ProtonMailAccount/Trash")))
|
||||
|
||||
;; iCloud Account
|
||||
(make-mu4e-context
|
||||
:name "iCloud Mail"
|
||||
:match-func
|
||||
(lambda (msg)
|
||||
(when msg
|
||||
(string-prefix-p "/iCloudAccount" (mu4e-message-field msg :maildir))))
|
||||
:vars '((user-mail-address . "fscottodisantolo@icloud.com")
|
||||
(user-full-name . "Fabio Scotto di Santolo")
|
||||
(mu4e-drafts-folder . "/iCloudAccount/Drafts")
|
||||
(mu4e-sent-folder . "/iCloudAccount/Sent Messages")
|
||||
(mu4e-refile-folder . "/iCloudAccount/INBOX")
|
||||
(mu4e-trash-folder . "/iCloudAccount/Junk")))))
|
||||
|
||||
;; Configure SMTP client for send emails
|
||||
(setq sendmail-program "/usr/bin/msmtp"
|
||||
send-mail-function 'sendmail-send-it
|
||||
message-sendmail-f-is-evil t
|
||||
message-sendmail-extra-arguments '("--read-envelope-from")
|
||||
message-send-mail-function 'message-send-mail-with-sendmail))
|
||||
|
||||
;; Configure Elfeed
|
||||
(after! elfeed
|
||||
(setq rmh-elfeed-org-files '("~/.config/doom/elfeed.org"))
|
||||
(setq elfeed-db-directory "~/.elfeed")
|
||||
(setq elfeed-enclosure-default-dir "~/Downloads/")
|
||||
(setq elfeed-sort-order 'descending)
|
||||
(setq elfeed-search-filter "6-months-ago +unread")
|
||||
|
||||
;; Key bindings
|
||||
(map! :map elfeed-search-mode-map
|
||||
:n "d" #'elfeed-download-current-entry
|
||||
:n "O" #'elfeed-search-browse-url)
|
||||
|
||||
;; Update hourly
|
||||
(run-at-time nil (* 60 60) #'elfeed-update))
|
||||
|
||||
(after! elfeed-tube
|
||||
(elfeed-tube-setup))
|
||||
|
||||
;; PDF config
|
||||
(after! pdf-tools
|
||||
:defer t
|
||||
:commands (pdf-loader-install)
|
||||
:mode "\\.pdf\\'"
|
||||
:init (pdf-loader-install)
|
||||
:config (add-to-list 'revert-without-query ".pdf"))
|
||||
|
||||
21
doom/.config/doom/custom.el
Normal file
21
doom/.config/doom/custom.el
Normal file
@@ -0,0 +1,21 @@
|
||||
(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.
|
||||
'(elfeed-feeds
|
||||
'("https://www.youtube.com/feeds/videos.xml?channel_id=UCqZe2cxQNCvgkQxUuqsIaig" "https://www.youtube.com/feeds/videos.xml?channel_id=UCVls1GmFKf6WlTraIb_IaJg"
|
||||
("https://www.youtube.com/feeds/videos.xml?channel_id=UCrqM0Ym_NbK1fqeQG2VIohg" youtube programming)
|
||||
("https://www.youtube.com/feeds/videos.xml?channel_id=UCDDG9vOcmgwlslJJpCWjqOg" youtube programming)
|
||||
("https://www.youtube.com/feeds/videos.xml?channel_id=UCnDDucQDLncrauOCmanCIgw" youtube foss)
|
||||
("https://www.youtube.com/feeds/videos.xml?channel_id=UCqZe2cxQNCvgkQxUuqsIaig" youtube programming)
|
||||
("https://www.youtube.com/feeds/videos.xml?channel_id=UCABhVAlCkcEG9a2UVruq9vw" youtube fashion)
|
||||
("https://www.youtube.com/feeds/videos.xml?channel_id=UCVls1GmFKf6WlTraIb_IaJg" youtube linux)
|
||||
("https://blog.linuxmint.com/?feed=rss2" news linuxmint)
|
||||
("https://feeds.feedburner.com/TheHackersNews" programming security))))
|
||||
(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.
|
||||
)
|
||||
16
doom/.config/doom/elfeed.org
Normal file
16
doom/.config/doom/elfeed.org
Normal file
@@ -0,0 +1,16 @@
|
||||
#+TITLE: RSS Urls
|
||||
#+AUTHOR: Fabio Scotto di Santolo
|
||||
#+DATE: <2025-10-25 Sat>
|
||||
|
||||
* root :elfeed:
|
||||
** Programming :programming:
|
||||
*** [[https://feeds.feedburner.com/TheHackersNews][Hacker News]] :news: :security:
|
||||
** FOSS News :news:
|
||||
*** [[https://blog.linuxmint.com/?feed=rss2][Linux Mint Blog]] :blog: :linux: :linuxmint:
|
||||
** Youtube :youtube:
|
||||
*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCVls1GmFKf6WlTraIb_IaJg][DistroTube]] :emacs: :foss: :linux:
|
||||
*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCABhVAlCkcEG9a2UVruq9vw][Douglas Mortimer]] :fashion:
|
||||
*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCqZe2cxQNCvgkQxUuqsIaig][Esadecimale]] :emacs: :programming:
|
||||
*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCnDDucQDLncrauOCmanCIgw][MorroLinux]] :linux: :foss:
|
||||
*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCDDG9vOcmgwlslJJpCWjqOg][Salvatore Sanfilippo]] :programming:
|
||||
*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCrqM0Ym_NbK1fqeQG2VIohg][Tsoding Daily]] :emacs: :programming:
|
||||
@@ -22,18 +22,18 @@
|
||||
|
||||
:completion
|
||||
company ; the ultimate code completion backend
|
||||
(corfu +orderless) ; complete with cap(f), cape and a flying feather!
|
||||
;;(corfu +orderless) ; complete with cap(f), cape and a flying feather!
|
||||
;;helm ; the *other* search engine for love and life
|
||||
;;ido ; the other *other* search engine...
|
||||
;;ivy ; a search engine for love and life
|
||||
vertico ; the search engine of the future
|
||||
ivy ; a search engine for love and life
|
||||
;;vertico ; the search engine of the future
|
||||
|
||||
:ui
|
||||
;;deft ; notational velocity for Emacs
|
||||
doom ; what makes DOOM look the way it does
|
||||
doom-dashboard ; a nifty splash screen for Emacs
|
||||
;;doom-quit ; DOOM quit-message prompts when you quit Emacs
|
||||
;;(emoji +unicode) ; 🙂
|
||||
(emoji +unicode) ; 🙂
|
||||
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
|
||||
;;indent-guides ; highlighted indent columns
|
||||
ligatures ; ligatures and symbols to make your code pretty again
|
||||
@@ -54,37 +54,39 @@
|
||||
;;zen ; distraction-free coding or writing
|
||||
|
||||
: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
|
||||
fold ; (nigh) universal code folding
|
||||
;;(format +onsave) ; automated prettiness
|
||||
;;god ; run Emacs commands without modifier keys
|
||||
;;lispy ; vim for lisp, for people who don't like vim
|
||||
;;multiple-cursors ; editing in many places at once
|
||||
multiple-cursors ; editing in many places at once
|
||||
;;objed ; text object editing for the innocent
|
||||
;;parinfer ; turn lisp into python, sort of
|
||||
;;rotate-text ; cycle region at point between text candidates
|
||||
snippets ; my elves. They type so I don't have to
|
||||
(whitespace +guess +trim) ; a butler for your whitespace
|
||||
;;word-wrap ; soft wrapping with language-aware indent
|
||||
|
||||
:emacs
|
||||
dired ; making dired pretty [functional]
|
||||
electric ; smarter, keyword-based electric-indent
|
||||
;;eww ; the internet is gross
|
||||
;;ibuffer ; interactive buffer management
|
||||
eww ; the internet is gross
|
||||
ibuffer ; interactive buffer management
|
||||
tramp ; remote files at your arthritic fingertips
|
||||
undo ; persistent, smarter undo for your inevitable mistakes
|
||||
vc ; version-control and Emacs, sitting in a tree
|
||||
|
||||
:term
|
||||
;;eshell ; the elisp shell that works everywhere
|
||||
eshell ; the elisp shell that works everywhere
|
||||
;;shell ; simple shell REPL for Emacs
|
||||
;;term ; basic terminal emulator for Emacs
|
||||
vterm ; the best terminal emulation in Emacs
|
||||
|
||||
:checkers
|
||||
syntax ; tasing you for every semicolon you forget
|
||||
;;(spell +flyspell) ; tasing you for misspelling mispelling
|
||||
;;grammar ; tasing grammar mistake every you make
|
||||
(spell +flyspell) ; tasing you for misspelling mispelling
|
||||
grammar ; tasing grammar mistake every you make
|
||||
|
||||
:tools
|
||||
ansible
|
||||
@@ -98,10 +100,10 @@
|
||||
(eval +overlay) ; run code, run (also, repls)
|
||||
lookup ; navigate your code and its documentation
|
||||
;;llm ; when I said you needed friends, I didn't mean...
|
||||
lsp ; M-x vscode
|
||||
;;(lsp +eglot) ; M-x vscode
|
||||
magit ; a git porcelain for Emacs
|
||||
make ; run make tasks from Emacs
|
||||
;;pass ; password manager for nerds
|
||||
pass ; password manager for nerds
|
||||
pdf ; pdf enhancements
|
||||
;;terraform ; infrastructure as code
|
||||
;;tmux ; an API for interacting with tmux
|
||||
@@ -113,10 +115,11 @@
|
||||
;;tty ; improve the terminal Emacs experience
|
||||
|
||||
:lang
|
||||
;;ada ; In strong typing we (blindly) trust
|
||||
;;agda ; types of types of types of types...
|
||||
;;beancount ; mind the GAAP
|
||||
(cc +lsp) ; C > C++ == 1
|
||||
;;clojure ; java with a lisp
|
||||
clojure ; java with a lisp
|
||||
;;common-lisp ; if you've seen one lisp, you've seen them all
|
||||
;;coq ; proofs-as-programs
|
||||
;;crystal ; ruby at the speed of c
|
||||
@@ -146,10 +149,10 @@
|
||||
;;javascript ; all(hope(abandon(ye(who(enter(here))))))
|
||||
;;julia ; a better, faster MATLAB
|
||||
;;kotlin ; a better, slicker Java(Script)
|
||||
;;latex ; writing papers in Emacs has never been so fun
|
||||
latex ; writing papers in Emacs has never been so fun
|
||||
;;lean ; for folks with too much to prove
|
||||
;;ledger ; be audit you can be
|
||||
;;lua ; one-based indices? one-based indices
|
||||
lua ; one-based indices? one-based indices
|
||||
markdown ; writing docs for people to ignore
|
||||
;;nim ; python + lisp at the speed of c
|
||||
;;nix ; I hereby declare "nix geht mehr!"
|
||||
@@ -168,7 +171,7 @@
|
||||
;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
|
||||
;;(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
|
||||
;;scala ; java, but good
|
||||
;;(scheme +guile) ; a fully conniving family of lisps
|
||||
(scheme +guile) ; a fully conniving family of lisps
|
||||
sh ; she sells {ba,z,fi}sh shells on the C xor
|
||||
;;sml
|
||||
;;solidity ; do you need a blockchain? No.
|
||||
@@ -178,18 +181,21 @@
|
||||
yaml ; JSON, but readable
|
||||
zig ; C, but simpler
|
||||
|
||||
:tools
|
||||
lsp ; lsp mode
|
||||
|
||||
:email
|
||||
;;(mu4e +org +gmail)
|
||||
(mu4e +org +gmail)
|
||||
;;notmuch
|
||||
;;(wanderlust +gmail)
|
||||
|
||||
:app
|
||||
;;calendar
|
||||
;;emms
|
||||
;;everywhere ; *leave* Emacs!? You must be joking
|
||||
calendar
|
||||
emms
|
||||
everywhere ; *leave* Emacs!? You must be joking
|
||||
;;irc ; how neckbeards socialize
|
||||
;;(rss +org) ; emacs as an RSS reader
|
||||
(rss +org) ; emacs as an RSS reader
|
||||
|
||||
:config
|
||||
;; literate
|
||||
;;literate
|
||||
(default +bindings +smartparens))
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; $DOOMDIR/packages.el
|
||||
|
||||
;; To install a package with Doom you must declare them here and run 'doom sync'
|
||||
;; on the command line, then restart Emacs for the changes to take effect -- or
|
||||
;; To install a package:
|
||||
;;
|
||||
;; 1. Declare them here in a `package!' statement,
|
||||
;; 2. Run 'doom sync' in the shell,
|
||||
;; 3. Restart Emacs.
|
||||
;;
|
||||
;; Use 'C-h f package\!' to look up documentation for the `package!' macro.
|
||||
|
||||
|
||||
;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror:
|
||||
@@ -49,4 +54,6 @@
|
||||
;; (unpin! t)
|
||||
|
||||
(package! catppuccin-theme)
|
||||
(package! go-mode)
|
||||
(package! org-caldav)
|
||||
(package! elfeed-tube)
|
||||
(package! elfeed-tube-mpv)
|
||||
|
||||
7
doom/.config/doom/scripts/email_sync.sh
Executable file
7
doom/.config/doom/scripts/email_sync.sh
Executable file
@@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
mbsync -a & pid1=$!
|
||||
wait $pid1
|
||||
|
||||
mu index
|
||||
|
||||
1
emacs/.emacs.d/.dap-breakpoints
Normal file
1
emacs/.emacs.d/.dap-breakpoints
Normal file
@@ -0,0 +1 @@
|
||||
#s(hash-table test equal data ("/var/home/fscotto/Projects/toyforth/toyforth.c" ((:point 1061))))
|
||||
58
emacs/.emacs.d/.gitignore
vendored
Executable file
58
emacs/.emacs.d/.gitignore
vendored
Executable file
@@ -0,0 +1,58 @@
|
||||
# Created by https://www.toptal.com/developers/gitignore/api/emacs
|
||||
# Edit at https://www.toptal.com/developers/gitignore?templates=emacs
|
||||
|
||||
### Emacs ###
|
||||
# -*- mode: gitignore; -*-
|
||||
*~
|
||||
\#*\#
|
||||
/.emacs.desktop
|
||||
/.emacs.desktop.lock
|
||||
*.elc
|
||||
auto-save-list
|
||||
tramp
|
||||
.\#*
|
||||
eln-cache
|
||||
projects
|
||||
transient/
|
||||
|
||||
# Org-mode
|
||||
.org-id-locations
|
||||
*_archive
|
||||
|
||||
# flymake-mode
|
||||
*_flymake.*
|
||||
|
||||
# eshell files
|
||||
/eshell/history
|
||||
/eshell/lastdir
|
||||
|
||||
# elpa packages
|
||||
/elpa/
|
||||
|
||||
# reftex files
|
||||
*.rel
|
||||
|
||||
# AUCTeX auto folder
|
||||
/auto/
|
||||
|
||||
# cask packages
|
||||
.cask/
|
||||
dist/
|
||||
|
||||
# Flycheck
|
||||
flycheck_*.el
|
||||
|
||||
# server auth directory
|
||||
/server/
|
||||
|
||||
# projectiles files
|
||||
.projectile
|
||||
|
||||
# directory configuration
|
||||
.dir-locals.el
|
||||
|
||||
# network security
|
||||
/network-security.data
|
||||
|
||||
|
||||
# End of https://www.toptal.com/developers/gitignore/api/emacs
|
||||
1
emacs/.emacs.d/.lsp-session-v1
Normal file
1
emacs/.emacs.d/.lsp-session-v1
Normal file
@@ -0,0 +1 @@
|
||||
#s(lsp-session ("/var/home/fscotto/Projects/toyforth") nil #s(hash-table test equal) #s(hash-table test equal) #s(hash-table test equal))
|
||||
16
emacs/.emacs.d/elfeed.org
Normal file
16
emacs/.emacs.d/elfeed.org
Normal file
@@ -0,0 +1,16 @@
|
||||
#+TITLE: RSS Urls
|
||||
#+AUTHOR: Fabio Scotto di Santolo
|
||||
#+DATE: <2025-10-25 Sat>
|
||||
|
||||
* root :elfeed:
|
||||
** Programming :programming:
|
||||
*** [[https://feeds.feedburner.com/TheHackersNews][Hacker News]] :news: :security:
|
||||
** FOSS News :news:
|
||||
*** [[https://blog.linuxmint.com/?feed=rss2][Linux Mint Blog]] :blog: :linux: :linuxmint:
|
||||
** Youtube :youtube:
|
||||
*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCVls1GmFKf6WlTraIb_IaJg][DistroTube]] :emacs: :foss: :linux:
|
||||
*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCABhVAlCkcEG9a2UVruq9vw][Douglas Mortimer]] :fashion:
|
||||
*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCqZe2cxQNCvgkQxUuqsIaig][Esadecimale]] :emacs: :programming:
|
||||
*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCnDDucQDLncrauOCmanCIgw][MorroLinux]] :linux: :foss:
|
||||
*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCDDG9vOcmgwlslJJpCWjqOg][Salvatore Sanfilippo]] :programming:
|
||||
*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCrqM0Ym_NbK1fqeQG2VIohg][Tsoding Daily]] :emacs: :programming:
|
||||
670
emacs/.emacs.d/init.el
Normal file
670
emacs/.emacs.d/init.el
Normal file
@@ -0,0 +1,670 @@
|
||||
;; Initial greeting for debugging
|
||||
(message "Welcome to Emacs")
|
||||
(message "Loading user configuration...")
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; LOOK AND FEEL ;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
;; Load default theme
|
||||
(load-theme 'wombat)
|
||||
|
||||
;; Setting default font
|
||||
(set-frame-font "Iosevka Nerd Font 14" nil t)
|
||||
|
||||
;; Remove toolbar
|
||||
(tool-bar-mode -1)
|
||||
|
||||
;; Remove menu
|
||||
(menu-bar-mode -1)
|
||||
|
||||
;; Disable startup screen
|
||||
(setq inhibit-startup-screen t)
|
||||
|
||||
;; Disable splash screen
|
||||
(setq inhibit-splash-screen t)
|
||||
|
||||
;; Start all frames maximized
|
||||
(add-to-list 'default-frame-alist '(fullscreen . maximized))
|
||||
|
||||
;; Remove scrollbar
|
||||
(scroll-bar-mode -1)
|
||||
|
||||
;; Simple 'y' for 'yes' and 'n' for 'no'
|
||||
(defalias 'yes-or-no-p 'y-or-n-p)
|
||||
|
||||
;; Set global value for paragraph witdh
|
||||
(setq-default fill-column 120)
|
||||
|
||||
;; Stop Emacs from losing informations
|
||||
(setq undo-limit 8000000)
|
||||
(setq undo-strong-limit 12000000)
|
||||
|
||||
;; Smooth scroll
|
||||
(setq scroll-step 3)
|
||||
(setq ring-bell-function 'ignore)
|
||||
|
||||
;; Add column number in the status line
|
||||
(column-number-mode)
|
||||
|
||||
;; View clock in the status line
|
||||
(display-time)
|
||||
|
||||
;; Enable line numbers in the programming mode only
|
||||
(add-hook 'prog-mode-hook 'display-line-numbers-mode)
|
||||
|
||||
;; Enable line numbers in the configuration mode only
|
||||
(add-hook 'conf-mode-hook 'display-line-numbers-mode)
|
||||
|
||||
;; Setting default directory for Org files
|
||||
(setq org-directory "~/Remotes/pCloud/Org")
|
||||
|
||||
;; --- Startup speed tweaks ----------------------------------------------------
|
||||
;; Temporarily increase GC threshold during init
|
||||
(defvar fscotto/gc-cons-threshold-orig gc-cons-threshold)
|
||||
(setq gc-cons-threshold (* 50 1000 1000)) ;; 50MB for init
|
||||
|
||||
;; Speedup file-name-handler during init
|
||||
(defvar fscotto/file-name-handler-alist-orig file-name-handler-alist)
|
||||
(setq file-name-handler-alist nil)
|
||||
|
||||
;; Restore after init
|
||||
(add-hook 'emacs-startup-hook
|
||||
(lambda ()
|
||||
(setq gc-cons-threshold fscotto/gc-cons-threshold-orig)
|
||||
(setq file-name-handler-alist fscotto/file-name-handler-alist-orig)
|
||||
(garbage-collect)))
|
||||
|
||||
;; LSP responsiveness
|
||||
(setq read-process-output-max (* 1024 1024)) ;; 1MB, utile per lsp-mode
|
||||
(setq lsp-idle-delay 0.5) ;; meno ritardo prima che LSP aggiorni info
|
||||
(setq inhibit-compacting-font-caches t)
|
||||
|
||||
;; ---------------------------------------------------------------------------
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; EDITOR OPTIONS ;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
(setq standard-indent 4)
|
||||
(setq tab-stop-list nil)
|
||||
(setq indent-tabs-mode nil)
|
||||
|
||||
;; Setting variables
|
||||
(setq vc-follow-symlinks 't)
|
||||
(prefer-coding-system 'utf-8-unix)
|
||||
(setq custom-file (null-device))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;
|
||||
;; USER FUNCTIONS ;;
|
||||
;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
;;functions to support syncing .elfeed between machines
|
||||
;;makes sure elfeed reads index from disk before launching
|
||||
(defun fscotto/elfeed-load-db-and-open ()
|
||||
"Wrapper to load the elfeed db from disk before opening URL https://pragmaticemacs.wordpress.com/2016/08/17/read-your-rss-feeds-in-emacs-with-elfeed/
|
||||
Created: 2016-08-17
|
||||
Updated: 2025-06-13"
|
||||
(interactive)
|
||||
(elfeed)
|
||||
(elfeed-db-load)
|
||||
;; (elfeed-search-update--force)
|
||||
(elfeed-update)
|
||||
(elfeed-db-save))
|
||||
|
||||
(defun fscotto/project-root ()
|
||||
"Return projectile project root or fallback to default-directory."
|
||||
(if (featurep 'projectile)
|
||||
(or (projectile-project-root) default-directory)
|
||||
default-directory))
|
||||
|
||||
(defun fscotto/project-dashboard ()
|
||||
"Open a project dashboard: root + Magit + LSP."
|
||||
(interactive)
|
||||
(let ((root (fscotto/project-root)))
|
||||
(dired root)
|
||||
(magit-status root)
|
||||
(lsp)))
|
||||
|
||||
(defun fscotto/project-vterm ()
|
||||
"Open vterm in project root."
|
||||
(interactive)
|
||||
(let ((default-directory (fscotto/project-root)))
|
||||
(vterm)))
|
||||
|
||||
(defun fscotto/project-magit-status ()
|
||||
"Open magit-status in project root."
|
||||
(interactive)
|
||||
(let ((default-directory (fscotto/project-root)))
|
||||
(magit-status)))
|
||||
|
||||
(defun fscotto/magit-dispatch ()
|
||||
"Load Magit if necessary and open magit-dispatch."
|
||||
(interactive)
|
||||
(require 'magit)
|
||||
(call-interactively #'magit-dispatch))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; PACKAGES ;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
;; Initialize package system via use-package
|
||||
(package-initialize)
|
||||
(require 'use-package)
|
||||
|
||||
(use-package package
|
||||
:config
|
||||
;; Setting repo priorities
|
||||
(setq package-archive-priorities
|
||||
'(("melpa-stable" . 2)
|
||||
("MELPA" . 1)
|
||||
("gnu" . 0)))
|
||||
;; Setting repo URL
|
||||
(setq package-archives
|
||||
'(("melpa-stable" . "https://stable.melpa.org/packages/")
|
||||
("MELPA" . "https://melpa.org/packages/")
|
||||
("gnu" . "https://elpa.gnu.org/packages/"))))
|
||||
|
||||
;; Status line like Doom Emacs
|
||||
(use-package doom-modeline
|
||||
:ensure t
|
||||
:config
|
||||
(setq doom-modeline-height 25
|
||||
doom-modeline-bar-width 3
|
||||
doom-modeline-project-detection 'projectile)
|
||||
:init (doom-modeline-mode 1))
|
||||
|
||||
;; Help to remember or discover keybindings
|
||||
(use-package which-key
|
||||
:ensure t
|
||||
:defer 1
|
||||
:config
|
||||
(which-key-mode)
|
||||
(setq which-key-idle-delay 0.45
|
||||
which-key-idle-secondary-delay 0.05
|
||||
which-key-max-display-columns 3
|
||||
which-key-max-description-length 45))
|
||||
|
||||
;; ============================================================================
|
||||
;; Doom-style which-key hierarchy for fscotto
|
||||
;; ============================================================================
|
||||
|
||||
(with-eval-after-load 'which-key
|
||||
|
||||
;; --------------------------------------------------------------------------
|
||||
;; Top-level prefixes
|
||||
;; --------------------------------------------------------------------------
|
||||
(which-key-add-key-based-replacements
|
||||
"C-c !" "Analyze"
|
||||
"C-c o" "Open"
|
||||
"C-c v" "Version control"
|
||||
"C-c l" "LSP"
|
||||
"C-c t" "TODO / Annotations"
|
||||
"C-c b" "Buffers"
|
||||
"C-c p" "Project"
|
||||
"C-c d" "Debug"
|
||||
"C-c g" "Git"
|
||||
"C-c e" "Email / Elfeed")
|
||||
|
||||
;; --------------------------------------------------------------------------
|
||||
;; Open (C-c o …)
|
||||
;; --------------------------------------------------------------------------
|
||||
(which-key-add-key-based-replacements
|
||||
"C-c o f" "RSS (Elfeed)"
|
||||
"C-c o m" "mu4e (Email Client)"
|
||||
"C-c o T" "Terminal (vterm)")
|
||||
|
||||
;; --------------------------------------------------------------------------
|
||||
;; Version control
|
||||
;; --------------------------------------------------------------------------
|
||||
(which-key-add-key-based-replacements
|
||||
"C-c v" "Version control"
|
||||
"C-c v g" "Magit status (legacy)")
|
||||
|
||||
(which-key-add-key-based-replacements
|
||||
"C-c g" "Git"
|
||||
|
||||
;; Core
|
||||
"C-c g g" "Status"
|
||||
"C-c g s" "Status"
|
||||
;; "C-c g b" "Branch"
|
||||
;; "C-c g c" "Commit"
|
||||
"C-c g p" "Push / Pull"
|
||||
"C-c g f" "Fetch"
|
||||
"C-c g l" "Log"
|
||||
"C-c g S" "Stash"
|
||||
|
||||
;; Files
|
||||
"C-c g d" "Diff"
|
||||
"C-c g D" "Diff (cached)"
|
||||
"C-c g B" "Blame"
|
||||
|
||||
;; Rebase / Reset
|
||||
"C-c g r" "Rebase"
|
||||
"C-c g R" "Reset"
|
||||
|
||||
;; Remote
|
||||
"C-c g y" "Show refs"
|
||||
"C-c g o" "Browse remote")
|
||||
|
||||
;; --------------------------------------------------------------------------
|
||||
;; Buffers
|
||||
;; --------------------------------------------------------------------------
|
||||
(which-key-add-key-based-replacements
|
||||
"C-x C-b" "ibuffer")
|
||||
|
||||
;; --------------------------------------------------------------------------
|
||||
;; TODO / hl-todo
|
||||
;; --------------------------------------------------------------------------
|
||||
(which-key-add-key-based-replacements
|
||||
"C-t" "hl-todo"
|
||||
"C-t p" "Previous TODO"
|
||||
"C-t n" "Next TODO"
|
||||
"C-t o" "Occur (list)"
|
||||
"C-t i" "Insert TODO")
|
||||
|
||||
;; --------------------------------------------------------------------------
|
||||
;; LSP (C-c l …)
|
||||
;; --------------------------------------------------------------------------
|
||||
(which-key-add-key-based-replacements
|
||||
"C-c l" "LSP"
|
||||
"C-c l a" "Code actions"
|
||||
"C-c l r" "Rename symbol"
|
||||
"C-c l f" "Format buffer"
|
||||
"C-c l d" "Go to definition"
|
||||
"C-c l D" "Go to type definition"
|
||||
"C-c l i" "Go to implementation"
|
||||
"C-c l h" "Hover documentation"
|
||||
"C-c l s" "Workspace symbols"
|
||||
"C-c l R" "Restart server")
|
||||
|
||||
;; --------------------------------------------------------------------------
|
||||
;; Elfeed modes
|
||||
;; --------------------------------------------------------------------------
|
||||
(which-key-add-key-based-replacements
|
||||
"w" "Yank"
|
||||
"R" "Update feeds"
|
||||
"q" "Quit")
|
||||
|
||||
;; --------------------------------------------------------------------------
|
||||
;; Debug / DAP
|
||||
;; --------------------------------------------------------------------------
|
||||
(which-key-add-key-based-replacements
|
||||
"C-c d" "Debug"
|
||||
"C-c d d" "Start debug session"
|
||||
"C-c d b" "Toggle breakpoint"
|
||||
"C-c d c" "Continue"
|
||||
"C-c d n" "Next"
|
||||
"C-c d i" "Step in"
|
||||
"C-c d o" "Step out")
|
||||
|
||||
;; --------------------------------------------------------------------------
|
||||
;; Project (future)
|
||||
;; --------------------------------------------------------------------------
|
||||
(which-key-add-key-based-replacements
|
||||
"C-c p" "Project"
|
||||
|
||||
;; Core
|
||||
"C-c p p" "Switch project"
|
||||
"C-c p f" "Find file"
|
||||
"C-c p d" "Find directory"
|
||||
"C-c p b" "Switch buffer"
|
||||
"C-c p k" "Kill project buffers"
|
||||
"C-c p r" "Recent files"
|
||||
|
||||
;; Search
|
||||
"C-c p s" "Search"
|
||||
"C-c p s g" "Grep (ripgrep)"
|
||||
"C-c p s r" "Replace in project"
|
||||
|
||||
;; Actions
|
||||
"C-c p c" "Compile"
|
||||
"C-c p t" "Test"
|
||||
"C-c p v" "Open term in project"
|
||||
"C-c p e" "Edit project config"
|
||||
"C-c p g" "Project Git status"
|
||||
"C-c p D" "Project Dashboard"
|
||||
"C-c p x" "Open Terminal"
|
||||
"C-c p 4" "Other Window"
|
||||
"C-c p 5" "Other Frame"
|
||||
"C-c p x 4" "Other Window"
|
||||
|
||||
;; Cache
|
||||
"C-c p i" "Invalidate cache")
|
||||
|
||||
;; --------------------------------------------------------------------------
|
||||
;; Cleanup annoying +prefix
|
||||
;; --------------------------------------------------------------------------
|
||||
(which-key-add-key-based-replacements
|
||||
"+prefix" "Prefix"
|
||||
"+lsp" "LSP"
|
||||
"+debug" "Debug"
|
||||
"+project" "Project"))
|
||||
|
||||
;; Configuration for mu4e, an interface for mu email index, running inside Emacs
|
||||
(use-package mu4e
|
||||
:ensure nil
|
||||
;; :load-path "/usr/share/emacs/site-lisp/mu4e/"
|
||||
:defer 20 ; Wait until 20 seconds after startup
|
||||
:bind (:map global-map ("C-c o m" . mu4e))
|
||||
:config
|
||||
|
||||
;; This is set to 't' to avoid mail syncing issues when using mbsync
|
||||
(setq mu4e-change-filenames-when-moving t)
|
||||
|
||||
;; Refresh mail using isync every 10 minutes
|
||||
(setq mu4e-update-interval (* 10 60))
|
||||
(setq mu4e-get-mail-command "~/.emacs.d/scripts/email_sync.sh")
|
||||
(setq mu4e-maildir "~/Maildir")
|
||||
|
||||
;; Configure email accounts
|
||||
(setq mu4e-contexts
|
||||
(list
|
||||
;; Protonmail Account
|
||||
(make-mu4e-context
|
||||
:name "Protonmail"
|
||||
:match-func
|
||||
(lambda (msg)
|
||||
(when msg
|
||||
(string-prefix-p "/ProtonMailAccount" (mu4e-message-field msg :maildir))))
|
||||
:vars '((user-mail-address . "fscottodisantolo@protonmail.com")
|
||||
(user-full-name . "Fabio Scotto di Santolo")
|
||||
(mu4e-drafts-folder . "/ProtonMailAccount/Drafts")
|
||||
(mu4e-sent-folder . "/ProtonMailAccount/Sent")
|
||||
(mu4e-refile-folder . "/ProtonMailAccount/All Mail")
|
||||
(mu4e-trash-folder . "/ProtonMailAccount/Trash")))
|
||||
|
||||
;; iCloud Account
|
||||
(make-mu4e-context
|
||||
:name "iCloud Mail"
|
||||
:match-func
|
||||
(lambda (msg)
|
||||
(when msg
|
||||
(string-prefix-p "/iCloudAccount" (mu4e-message-field msg :maildir))))
|
||||
:vars '((user-mail-address . "fscottodisantolo@icloud.com")
|
||||
(user-full-name . "Fabio Scotto di Santolo")
|
||||
(mu4e-drafts-folder . "/iCloudAccount/Drafts")
|
||||
(mu4e-sent-folder . "/iCloudAccount/Sent Messages")
|
||||
(mu4e-refile-folder . "/iCloudAccount/INBOX")
|
||||
(mu4e-trash-folder . "/iCloudAccount/Junk")))))
|
||||
|
||||
(setq sendmail-program "/usr/bin/msmtp"
|
||||
send-mail-function 'sendmail-send-it
|
||||
message-sendmail-f-is-evil t
|
||||
message-sendmail-extra-arguments '("--read-envelope-from")
|
||||
message-send-mail-function 'message-send-mail-with-sendmail))
|
||||
|
||||
;; Configure elfeed for RSS feed
|
||||
(use-package elfeed
|
||||
:ensure t
|
||||
:custom
|
||||
(elfeed-enclosure-default-dir "~/Downloads/")
|
||||
(elfeed-search-remain-on-entry t)
|
||||
(elfeed-search-title-max-width 100)
|
||||
(elfeed-search-title-min-width 30)
|
||||
(elfeed-search-trailing-width 25)
|
||||
(elfeed-show-truncate-long-urls t)
|
||||
(elfeed-sort-order 'descending)
|
||||
(elfeed-search-filter "+unread")
|
||||
:bind
|
||||
("C-c o f" . fscotto/elfeed-load-db-and-open)
|
||||
(:map elfeed-search-mode-map
|
||||
("w" . elfeed-search-yank)
|
||||
("R" . elfeed-update)
|
||||
("q" . elfeed-kill-buffer))
|
||||
(:map elfeed-show-mode-map
|
||||
("S" . elfeed-show-new-live-search) ; moved to free up 's'
|
||||
("c" . (lambda () (interactive) (org-capture nil "capture")))
|
||||
("e" . email-elfeed-entry)
|
||||
("f" . elfeed-show-fetch-full-text)
|
||||
("w" . elfeed-show-yank))
|
||||
:hook
|
||||
(elfeed-show-mode . visual-line-mode))
|
||||
|
||||
(use-package elfeed-org
|
||||
:ensure t
|
||||
:after elfeed
|
||||
:custom
|
||||
;; Optionally specify a number of files containing elfeed
|
||||
;; configuration. If not set then the location below is used.
|
||||
;; Note: The customize interface is also supported.
|
||||
(rmh-elfeed-org-files (list "~/.emacs.d/elfeed.org")))
|
||||
|
||||
(with-eval-after-load 'elfeed
|
||||
(elfeed-org))
|
||||
|
||||
;; Terminal
|
||||
(use-package vterm
|
||||
:ensure t
|
||||
:bind (:map global-map
|
||||
("C-c o T" . vterm)
|
||||
("C-c C-t" . vterm-copy-mode)))
|
||||
|
||||
;; FIXME PDF viewer with annotations
|
||||
;; (use-package pdf-tools
|
||||
;; :ensure t
|
||||
;; :config
|
||||
;; (pdf-tools-install))
|
||||
|
||||
;; EPub viewer
|
||||
(use-package nov
|
||||
:ensure t
|
||||
:mode ("\\.epub\\'" . nov-mode))
|
||||
|
||||
(use-package visual-fill-column
|
||||
:ensure t)
|
||||
|
||||
;; Git plugin
|
||||
(use-package magit
|
||||
:ensure t
|
||||
:commands (magit-status magit-log)
|
||||
:init
|
||||
;; Entry point principale
|
||||
(setq magit-display-buffer-function #'magit-display-buffer-fullframe-status-v1)
|
||||
:config
|
||||
;; Performance & UX
|
||||
(setq magit-refresh-status-buffer nil)
|
||||
(setq magit-repository-directories
|
||||
'(("~/Projects" . 2)
|
||||
("~/Work" . 2))))
|
||||
|
||||
;; Legacy alias (keep muscle memory)
|
||||
(global-set-key (kbd "C-c v g") #'magit-status)
|
||||
|
||||
(global-set-key (kbd "C-c g") #'fscotto/magit-dispatch)
|
||||
|
||||
;; Git leader key (Doom-style)
|
||||
;; (with-eval-after-load 'magit
|
||||
;; (define-key global-map (kbd "C-c g") 'magit-dispatch))
|
||||
|
||||
;; Highlight keywords to remember the activity when coding.
|
||||
(use-package hl-todo
|
||||
:ensure t
|
||||
:commands (global-hl-todo-mode)
|
||||
:init (global-hl-todo-mode))
|
||||
|
||||
(setq hl-todo-keyword-faces
|
||||
'(("TODO" . "#94e2d5")
|
||||
("FIXME" . "#f38ba8")
|
||||
("DEBUG" . "#cba6f7")
|
||||
("GOTCHA" . "#eba0ac")
|
||||
("STUB" . "#89b4fa")))
|
||||
|
||||
(keymap-set hl-todo-mode-map "C-t p" #'hl-todo-previous)
|
||||
(keymap-set hl-todo-mode-map "C-t n" #'hl-todo-next)
|
||||
(keymap-set hl-todo-mode-map "C-t o" #'hl-todo-occur)
|
||||
(keymap-set hl-todo-mode-map "C-t i" #'hl-todo-insert)
|
||||
|
||||
;; Highlight for i3 config file
|
||||
(use-package i3wm-config-mode
|
||||
:ensure t)
|
||||
|
||||
(use-package ivy
|
||||
:ensure t
|
||||
:config
|
||||
(ivy-mode 1))
|
||||
|
||||
(use-package ibuffer
|
||||
:ensure t
|
||||
:bind (:map global-map ("C-x C-b" . ibuffer)))
|
||||
|
||||
(use-package ibuffer-tramp
|
||||
:ensure t)
|
||||
|
||||
(use-package ibuffer-vc
|
||||
:ensure t)
|
||||
|
||||
(use-package ibuffer-projectile
|
||||
:ensure t)
|
||||
|
||||
(add-hook 'ibuffer-mode-hook
|
||||
(lambda ()
|
||||
(ibuffer-projectile-set-filter-groups)))
|
||||
|
||||
;; ============================================================================
|
||||
;; Projectile - Project management (Doom-style)
|
||||
;; ============================================================================
|
||||
|
||||
(use-package projectile
|
||||
:ensure t
|
||||
:defer 1
|
||||
:init
|
||||
|
||||
;; Root detection
|
||||
(setq projectile-project-search-path '("~/Projects" "~/Work"))
|
||||
(setq projectile-completion-system 'ivy)
|
||||
:config
|
||||
;; Performance
|
||||
(setq projectile-enable-caching t)
|
||||
(setq projectile-indexing-method 'hybrid)
|
||||
(setq projectile-sort-order 'recently-active)
|
||||
;; Projectile as single source of truth
|
||||
(setq projectile-switch-project-action #'projectile-dired)
|
||||
;; Use ripgrep if available
|
||||
(when (executable-find "rg")
|
||||
(setq projectile-generic-command "rg --files --hidden --glob '!.git'"))
|
||||
;; Enable globally
|
||||
(projectile-mode 1))
|
||||
|
||||
;; Projectile keybindings (Doom-style)
|
||||
(with-eval-after-load 'projectile
|
||||
(define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map))
|
||||
|
||||
(with-eval-after-load 'projectile
|
||||
(define-key projectile-command-map (kbd "v") #'fscotto/project-vterm))
|
||||
|
||||
(with-eval-after-load 'projectile
|
||||
(define-key projectile-command-map (kbd "g") #'fscotto/project-magit-status))
|
||||
|
||||
(global-set-key (kbd "C-c p D") #'fscotto/project-dashboard)
|
||||
|
||||
;; Add autocomplete feature to Emacs
|
||||
(use-package company
|
||||
:ensure t
|
||||
:custom
|
||||
(company-tooltip-align-annotations 't)
|
||||
(company-minimum-prefix-length 1)
|
||||
(company-idle-delay 0.1)
|
||||
:hook (prog-mode . company-mode))
|
||||
|
||||
(use-package flycheck
|
||||
:ensure t
|
||||
:hook (prog-mode . flycheck-mode))
|
||||
|
||||
(use-package treesit
|
||||
:ensure nil
|
||||
:config
|
||||
(setq treesit-font-lock-level 4)
|
||||
(setq major-mode-remap-alist
|
||||
'((c-mode . c-ts-mode)
|
||||
(c++-mode . c++-ts-mode)
|
||||
(python-mode . python-ts-mode)
|
||||
(bash-mode . bash-ts-mode)))
|
||||
(setq treesit-language-source-alist
|
||||
'((c "https://github.com/tree-sitter/tree-sitter-c")
|
||||
(cpp "https://github.com/tree-sitter/tree-sitter-cpp")
|
||||
(python "https://github.com/tree-sitter/tree-sitter-python")
|
||||
(bash "https://github.com/tree-sitter/tree-sitter-bash")
|
||||
(go "https://github.com/tree-sitter/tree-sitter-go"))))
|
||||
|
||||
(use-package lsp-mode
|
||||
:ensure t
|
||||
:commands lsp
|
||||
:init
|
||||
;; set prefix for lsp-command-keymap (few alternatives - "C-l", "C-c l")
|
||||
(setq lsp-keymap-prefix "C-c l")
|
||||
:hook
|
||||
((c-mode
|
||||
c-ts-mode
|
||||
c++-mode
|
||||
c++-ts-mode
|
||||
python-mode
|
||||
python-ts-mode
|
||||
go-mode
|
||||
go-ts-mode
|
||||
bash-mode
|
||||
bash-ts-mode) . lsp)
|
||||
:config
|
||||
;; Performance
|
||||
(setq lsp-enable-symbol-highlighting t
|
||||
lsp-enable-snippet t
|
||||
lsp-log-io nil
|
||||
lsp-completion-provider :capf
|
||||
;; Disable for huge projects
|
||||
;; lsp-enable-file-watchers nil
|
||||
lsp-headerline-breadcrumb-enable nil
|
||||
lsp-idle-delay 0.5))
|
||||
|
||||
(use-package lsp-ui
|
||||
:ensure t
|
||||
:config
|
||||
(setq lsp-ui-doc-enable t
|
||||
lsp-ui-doc-delay 0.3
|
||||
lsp-ui-sideline-enable t
|
||||
lsp-ui-sideline-show-code-actions t))
|
||||
|
||||
(use-package lsp-ivy
|
||||
:ensure t)
|
||||
|
||||
(use-package dap-mode
|
||||
:ensure t
|
||||
:after lsp-mode
|
||||
:commands dap-debug
|
||||
:init
|
||||
;; Debug prefix
|
||||
(setq dap-auto-configure-features '(sessions locals controls tooltip))
|
||||
:config
|
||||
(dap-mode 1)
|
||||
(dap-ui-mode 1)
|
||||
(dap-tooltip-mode 1)
|
||||
|
||||
;; Auto show breakpoints + REPL
|
||||
(setq dap-ui-buffer-configurations
|
||||
'((dap-ui-repl . ((side . right) (slot . 1) (window-width . 0.33)))
|
||||
(dap-ui-locals . ((side . right) (slot . 2) (window-width . 0.33)))
|
||||
(dap-ui-breakpoints . ((side . left) (slot . 1) (window-width . 0.20))))))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Enable debuggers ;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
;; For C/C++
|
||||
(require 'dap-gdb-lldb)
|
||||
(setq dap-gdb-lldb-debug-program '("gdb"))
|
||||
|
||||
;; For Go
|
||||
(require 'dap-go)
|
||||
|
||||
;; For Python
|
||||
(require 'dap-python)
|
||||
(setq dap-python-debugger 'debugpy)
|
||||
|
||||
(with-eval-after-load 'dap-mode
|
||||
(global-set-key (kbd "C-c d d") #'dap-debug)
|
||||
(global-set-key (kbd "C-c d b") #'dap-breakpoint-toggle)
|
||||
(global-set-key (kbd "C-c d c") #'dap-continue)
|
||||
(global-set-key (kbd "C-c d n") #'dap-next)
|
||||
(global-set-key (kbd "C-c d i") #'dap-step-in)
|
||||
(global-set-key (kbd "C-c d o") #'dap-step-out)
|
||||
(global-set-key (kbd "C-c d r") #'dap-restart-frame)
|
||||
(global-set-key (kbd "C-c d q") #'dap-disconnect))
|
||||
|
||||
1
emacs/.emacs.d/projectile-bookmarks.eld
Normal file
1
emacs/.emacs.d/projectile-bookmarks.eld
Normal file
@@ -0,0 +1 @@
|
||||
("~/.dotfiles/" "~/Projects/toyforth/" "~/Projects/workstation/" "~/Projects/system-programming/" "~/Projects/pymorg/" "~/Projects/operating-systems/" "~/Projects/fileserver/" "~/Projects/exkernel/" "~/Projects/docker-compose/")
|
||||
7
emacs/.emacs.d/scripts/email_sync.sh
Executable file
7
emacs/.emacs.d/scripts/email_sync.sh
Executable file
@@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
mbsync Gmail & pid1=$!
|
||||
wait $pid1
|
||||
|
||||
mu index
|
||||
|
||||
47
emacs/.mbsyncrc
Normal file
47
emacs/.mbsyncrc
Normal file
@@ -0,0 +1,47 @@
|
||||
##################### iCloud Account ##################################
|
||||
IMAPStore iCloud-remote
|
||||
Host imap.mail.me.com
|
||||
Port 993
|
||||
User fscottodisantolo@icloud.com
|
||||
PassCmd "pass show icloud-mail"
|
||||
AuthMechs *
|
||||
SSLType IMAPS
|
||||
SSLVersions TLSv1.2 TLSv1.3
|
||||
PipelineDepth 1
|
||||
|
||||
MaildirStore iCloud-local
|
||||
Path ~/Maildir/iCloudAccount/
|
||||
Inbox ~/Maildir/iCloudAccount/INBOX
|
||||
SubFolders Verbatim
|
||||
|
||||
Channel iCloud
|
||||
Far :iCloud-remote:
|
||||
Near :iCloud-local:
|
||||
Patterns *
|
||||
Create Both
|
||||
Expunge Both
|
||||
SyncState *
|
||||
|
||||
##################### Protonmail Account ##################################
|
||||
IMAPStore protonmail-remote
|
||||
Host 127.0.0.1
|
||||
Port 1143
|
||||
User fscottodisantolo@protonmail.com
|
||||
PassCmd "pass show protonmail-bridge"
|
||||
AuthMechs *
|
||||
SSLType STARTTLS
|
||||
PipelineDepth 1
|
||||
CertificateFile ~/.config/protonmail/bridge-v3/cert.pem
|
||||
|
||||
MaildirStore protonmail-local
|
||||
Path ~/Maildir/ProtonMailAccount/
|
||||
Inbox ~/Maildir/ProtonMailAccount/INBOX
|
||||
SubFolders Verbatim
|
||||
|
||||
Channel Protonmail
|
||||
Far :protonmail-remote:
|
||||
Near :protonmail-local:
|
||||
Patterns *
|
||||
Create Both
|
||||
Expunge Both
|
||||
SyncState *
|
||||
51
emacs/.msmtprc
Normal file
51
emacs/.msmtprc
Normal file
@@ -0,0 +1,51 @@
|
||||
# Set default values for all following accounts.
|
||||
defaults
|
||||
|
||||
# Always use TLS
|
||||
tls on
|
||||
|
||||
# Set a list of trusted CAs for TLS. The default is to use system settings,
|
||||
# but you can select your own file.
|
||||
tls_trust_file /etc/ssl/certs/ca-certificates.crt
|
||||
logfile ~/.cache/msmtp.log
|
||||
|
||||
# Account iCloud
|
||||
account icloud
|
||||
|
||||
# Host name of the SMTP server
|
||||
host smtp.mail.me.com
|
||||
|
||||
# Use the mail submission port 587 instead of the SMTP port 25
|
||||
port 587
|
||||
|
||||
# Envelop-from address
|
||||
from fscottodisantolo@icloud.com
|
||||
|
||||
# Authentication. The password is given using one of five methods
|
||||
auth on
|
||||
user fscottodisantolo@icloud.com
|
||||
passwordeval "pass show icloud-mail"
|
||||
|
||||
# Account Protonmail
|
||||
account protonmail
|
||||
|
||||
# Hostname of the Protonmail bridge
|
||||
host 127.0.0.1
|
||||
|
||||
# Port of the Protonmail bridge
|
||||
port 1025
|
||||
|
||||
# Envelop-from address
|
||||
from fscottodisantolo@protonmail.com
|
||||
|
||||
# Security
|
||||
tls on
|
||||
tls_trust_file ~/.config/protonmail/bridge-v3/cert.pem
|
||||
|
||||
# Authentication
|
||||
auth on
|
||||
user fscottodisantolo@protonmail.com
|
||||
passwordeval "pass show protonmail-bridge"
|
||||
|
||||
# Set a default account
|
||||
account default : icloud
|
||||
@@ -6,4 +6,5 @@ saveAsFileExtension=png
|
||||
savePath=/home/fscotto/Pictures/Screenshots
|
||||
savePathFixed=true
|
||||
showStartupLaunchMessage=false
|
||||
startupLaunch=false
|
||||
startupLaunch=true
|
||||
useJpgForClipboard=true
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
name = Fabio Scotto di Santolo
|
||||
email = fabio.scottodisantolo@gmail.com
|
||||
signingkey = 9DDD59AD62494FB2
|
||||
editor = nvim
|
||||
|
||||
[fetch]
|
||||
prune = true
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# -*- mode: i3wm-config -*-
|
||||
# i3 config file (v4)
|
||||
#
|
||||
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
|
||||
@@ -9,6 +10,39 @@
|
||||
# layout, use the i3-config-wizard
|
||||
#
|
||||
|
||||
# use these keys for focus, movement, and resize directions when reaching for
|
||||
# the arrows is not convenient
|
||||
set $left h
|
||||
set $down j
|
||||
set $up k
|
||||
set $right l
|
||||
|
||||
set $term 'alacritty'
|
||||
set $editor 'emacs'
|
||||
set $filemanager 'nemo'
|
||||
set $notification 'dunst'
|
||||
set $browser 'org.mozilla.firefox'
|
||||
set $clipboard 'diodon'
|
||||
|
||||
# Define names for default workspaces for which we configure key bindings later on.
|
||||
# We use variables to avoid repeating the names in multiple places.
|
||||
set $ws1 "1"
|
||||
set $ws2 "2"
|
||||
set $ws3 "3"
|
||||
set $ws4 "4"
|
||||
set $ws5 "5"
|
||||
set $ws6 "6"
|
||||
set $ws7 "7"
|
||||
set $ws8 "8"
|
||||
set $ws9 "9"
|
||||
set $ws10 "10"
|
||||
|
||||
###############################################################
|
||||
###############################################################
|
||||
################## LOOK AND FEEL ##################
|
||||
###############################################################
|
||||
###############################################################
|
||||
|
||||
# Import Catppuccin theme defined colors
|
||||
set $rosewater #f5e0dc
|
||||
set $flamingo #f2cdcd
|
||||
@@ -48,9 +82,6 @@ client.background $base
|
||||
# Setting cursor
|
||||
# seat seat0 xcursor_theme catppuccin-mocha-lavender-cursors 25
|
||||
|
||||
# Logo key. Use Mod1 for Alt.
|
||||
set $mod Mod4
|
||||
|
||||
# Font for window titles. Will also be used by the bar unless a different font
|
||||
# is used in the bar {} block below.
|
||||
font pango:Noto Sans Regular 10
|
||||
@@ -59,58 +90,18 @@ font pango:Noto Sans Regular 10
|
||||
# text rendering and scalability on retina/hidpi displays (thanks to pango).
|
||||
#font pango:DejaVu Sans Mono 8
|
||||
|
||||
# Start XDG autostart .desktop files using dex. See also
|
||||
# https://wiki.archlinux.org/index.php/XDG_Autostart
|
||||
exec --no-startup-id dex --autostart --environment i3
|
||||
|
||||
# The combination of xss-lock, nm-applet and pactl is a popular choice, so
|
||||
# they are included here as an example. Modify as you see fit.
|
||||
|
||||
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
|
||||
# screen before suspend. Use loginctl lock-session to lock your screen.
|
||||
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
|
||||
|
||||
# NetworkManager is the most popular way to manage wireless networks on Linux,
|
||||
# and nm-applet is a desktop environment-independent system tray GUI for it.
|
||||
exec --no-startup-id nm-applet
|
||||
|
||||
# Polkit Authentication agent
|
||||
exec --no-startup-id /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1
|
||||
|
||||
# Use pactl to adjust volume in PulseAudio.
|
||||
set $refresh_i3status killall -SIGUSR1 i3status
|
||||
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
|
||||
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
|
||||
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
|
||||
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
|
||||
# bindsym XF86MonBrightnessUp exec --no-startup-id swayosd-client --brightness +5
|
||||
# bindsym XF86MonBrightnessDown exec --no-startup-id swayosd-client --brightness -5
|
||||
bindsym $mod+Mod1+l exec ~/.config/i3/scripts/lockscreen.sh
|
||||
|
||||
# use these keys for focus, movement, and resize directions when reaching for
|
||||
# the arrows is not convenient
|
||||
set $left h
|
||||
set $down j
|
||||
set $up k
|
||||
set $right l
|
||||
|
||||
# use Mouse+Mod4 to drag floating windows to their wanted position
|
||||
floating_modifier $mod
|
||||
|
||||
# move tiling windows via drag & drop by left-clicking into the title bar,
|
||||
# or left-clicking anywhere into the window while holding the floating modifier.
|
||||
tiling_drag modifier titlebar
|
||||
|
||||
set $term 'alacritty'
|
||||
set $browser 'firefox'
|
||||
set $editor 'emacs'
|
||||
|
||||
# Windows configuration
|
||||
default_border pixel 3
|
||||
default_floating_border pixel 3
|
||||
gaps inner 5
|
||||
gaps outer 5
|
||||
|
||||
###############################################################
|
||||
###############################################################
|
||||
################## WORKSPACES ##################
|
||||
###############################################################
|
||||
###############################################################
|
||||
|
||||
# Floating/sticky windows
|
||||
for_window [class="Pop-up"] floating enable
|
||||
for_window [class="Bubble"] floating enable
|
||||
@@ -126,28 +117,67 @@ for_window [class="Webconsole"] floating enable
|
||||
for_window [class="Authy"] floating enable
|
||||
for_window [class="Termfloat"] floating enable, resize set 960 540
|
||||
for_window [class="Mpv"] floating enable, resize set 960 540
|
||||
for_window [class="Spotify"] floating enable, resize set 1280 1024, move scratchpad
|
||||
|
||||
# Workspaces
|
||||
assign [class="Emacs"] 1
|
||||
assign [class="Firefox"] 2 # FIXME: change class name
|
||||
assign [class="firefox"] 2
|
||||
assign [class="Telegram"] 3
|
||||
assign [class="discord"] 3
|
||||
|
||||
focus_follows_mouse no
|
||||
|
||||
###############################################################
|
||||
###############################################################
|
||||
################## KEYBINDINGS ##################
|
||||
###############################################################
|
||||
###############################################################
|
||||
|
||||
# Logo key. Use Mod1 for Alt.
|
||||
set $mod Mod4
|
||||
|
||||
# start a terminal
|
||||
bindsym $mod+Return exec $term
|
||||
|
||||
# kill focused window
|
||||
bindsym $mod+Shift+q kill
|
||||
|
||||
# start default menu application
|
||||
bindsym $mod+d exec "rofi -show drun"
|
||||
bindsym $mod+Shift+s exec "rofi -show ssh"
|
||||
bindsym $mod+Shift+w exec "rofi -show window"
|
||||
bindsym $mod+Shift+f exec "rofi -show filebrowser"
|
||||
# define mode for launcher
|
||||
mode "launcher" {
|
||||
bindsym d exec "rofi -show drun"
|
||||
bindsym s exec "rofi -show ssh"
|
||||
bindsym w exec "rofi -show window"
|
||||
bindsym f exec "rofi -show filebrowser"
|
||||
bindsym q exec ~/.config/i3/scripts/poweroff.sh
|
||||
|
||||
bindsym $mod+Shift+b exec $browser
|
||||
bindsym $mod+d mode "default"
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
bindsym $mod+d mode "launcher"
|
||||
|
||||
bindsym $mod+Shift+f exec "nemo"
|
||||
bindsym $mod+Shift+b exec "flatpak run org.mozilla.firefox"
|
||||
bindsym $mod+Shift+t exec "flatpak run org.telegram.desktop"
|
||||
bindsym $mod+Shift+e exec $editor
|
||||
bindsym Print exec flameshot gui
|
||||
# bindsym $mod+Shift+v exec xfce4-clipman-history
|
||||
bindsym $mod+Shift+v exec --no-startup-id $clipboard
|
||||
|
||||
# Use pactl to adjust volume in PulseAudio.
|
||||
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +5%
|
||||
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -5%
|
||||
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle
|
||||
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle
|
||||
bindsym XF86MonBrightnessUp exec --no-startup-id brightnessctl set +5%
|
||||
bindsym XF86MonBrightnessDown exec --no-startup-id brightnessctl set 5%-
|
||||
bindsym $mod+Mod1+l exec ~/.config/i3/scripts/lockscreen.sh
|
||||
|
||||
# use Mouse+Mod4 to drag floating windows to their wanted position
|
||||
floating_modifier $mod
|
||||
|
||||
# move tiling windows via drag & drop by left-clicking into the title bar,
|
||||
# or left-clicking anywhere into the window while holding the floating modifier.
|
||||
tiling_drag modifier titlebar
|
||||
|
||||
# change focus
|
||||
bindsym $mod+$left focus left
|
||||
@@ -174,7 +204,7 @@ bindsym $mod+Shift+Up move up
|
||||
bindsym $mod+Shift+Right move right
|
||||
|
||||
# split in horizontal orientation
|
||||
# bindsym $mod+h split h
|
||||
bindsym Mod1+h split h
|
||||
|
||||
# split in vertical orientation
|
||||
bindsym $mod+v split v
|
||||
@@ -197,7 +227,7 @@ bindsym $mod+space focus mode_toggle
|
||||
bindsym $mod+a focus parent
|
||||
|
||||
# focus the child container
|
||||
#bindsym Mod4+d focus child
|
||||
bindsym Mod1+d focus child
|
||||
|
||||
# move the currently focused window to the scratchpad
|
||||
bindsym $mod+Shift+minus move scratchpad
|
||||
@@ -206,19 +236,6 @@ bindsym $mod+Shift+minus move scratchpad
|
||||
# If there are multiple scratchpad windows, this command cycles through them.
|
||||
bindsym $mod+minus scratchpad show
|
||||
|
||||
# Define names for default workspaces for which we configure key bindings later on.
|
||||
# We use variables to avoid repeating the names in multiple places.
|
||||
set $ws1 "1"
|
||||
set $ws2 "2"
|
||||
set $ws3 "3"
|
||||
set $ws4 "4"
|
||||
set $ws5 "5"
|
||||
set $ws6 "6"
|
||||
set $ws7 "7"
|
||||
set $ws8 "8"
|
||||
set $ws9 "9"
|
||||
set $ws10 "10"
|
||||
|
||||
# switch to workspace
|
||||
bindsym $mod+1 workspace number $ws1
|
||||
bindsym $mod+2 workspace number $ws2
|
||||
@@ -251,7 +268,7 @@ bindsym $mod+Shift+c reload
|
||||
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||
bindsym $mod+Shift+r restart
|
||||
# exit i3 (logs you out of your X session)
|
||||
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
|
||||
#bindsym $mod+Shift+e exec ~/.config/i3/scripts/poweroff.sh
|
||||
|
||||
# resize window (you can also use the mouse for that)
|
||||
mode "resize" {
|
||||
@@ -280,38 +297,52 @@ mode "resize" {
|
||||
|
||||
bindsym $mod+r mode "resize"
|
||||
|
||||
# Start i3bar to display a workspace bar (plus the system information i3status
|
||||
# finds out, if available)
|
||||
# bar {
|
||||
# status_command i3bar
|
||||
# }
|
||||
###############################################################
|
||||
###############################################################
|
||||
################## AUTOSTART ##################
|
||||
###############################################################
|
||||
###############################################################
|
||||
|
||||
#######################################################################
|
||||
# automatically start i3-config-wizard to offer the user to create a
|
||||
# keysym-based config which used their favorite modifier (alt or windows)
|
||||
#
|
||||
# i3-config-wizard will not launch if there already is a config file
|
||||
# in ~/.config/i3/config (or $XDG_CONFIG_HOME/i3/config if set) or
|
||||
# ~/.i3/config.
|
||||
#
|
||||
# Please remove the following exec line:
|
||||
#######################################################################
|
||||
# exec i3-config-wizard
|
||||
# Start XDG autostart .desktop files using dex. See also
|
||||
# https://wiki.archlinux.org/index.php/XDG_Autostart
|
||||
exec --no-startup-id dex --autostart --environment i3
|
||||
|
||||
# The combination of xss-lock, nm-applet and pactl is a popular choice, so
|
||||
# they are included here as an example. Modify as you see fit.
|
||||
|
||||
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
|
||||
# screen before suspend. Use loginctl lock-session to lock your screen.
|
||||
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
|
||||
|
||||
# NetworkManager is the most popular way to manage wireless networks on Linux,
|
||||
# and nm-applet is a desktop environment-independent system tray GUI for it.
|
||||
exec --no-startup-id nm-applet
|
||||
|
||||
# Polkit Authentication agent
|
||||
exec_always --no-startup-id /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1
|
||||
|
||||
### Apply wallpaper
|
||||
exec feh --bg-scale ~/.config/i3/wallpaper.jpg
|
||||
exec_always --no-startup-id feh --bg-scale ~/.config/i3/wallpaper.jpg
|
||||
|
||||
### Run status bar
|
||||
exec ~/.config/polybar/launch.sh
|
||||
exec_always --no-startup-id ~/.config/polybar/launch.sh
|
||||
|
||||
### Run in background X11 compositor
|
||||
exec picom --config ~/.config/picom/picom.conf
|
||||
exec_always --no-startup-id picom --config ~/.config/picom/picom.conf
|
||||
|
||||
### Run in background notification daemon
|
||||
exec $notification
|
||||
exec_always --no-startup-id $notification
|
||||
|
||||
exec --no-startup-id $clipboard
|
||||
|
||||
### Enable autolock
|
||||
exec xautolock -time 5 -locker ~/.config/i3/scripts/lockscreen.sh -detectsleep
|
||||
exec_always xautolock -time 5 -locker ~/.config/i3/scripts/lockscreen.sh -detectsleep
|
||||
|
||||
### Screenshot tool
|
||||
### Run screenshot tool
|
||||
exec flameshot
|
||||
|
||||
### Run my preferred editor
|
||||
# exec $editor
|
||||
|
||||
### Run my preferred browser
|
||||
exec flatpak run $browser
|
||||
|
||||
12
i3/.config/i3/scripts/poweroff.sh
Executable file
12
i3/.config/i3/scripts/poweroff.sh
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
|
||||
chosen=$(echo -e "⏻ Shutdown\n Restart\n Logout\n Suspend\n Hibernate" | rofi -dmenu -p "Power Menu:" -theme-str 'window {width: 20%;}')
|
||||
|
||||
case "$chosen" in
|
||||
"⏻ Shutdown") systemctl poweroff ;;
|
||||
" Restart") systemctl reboot ;;
|
||||
" Logout") loginctl terminate-session $XDG_SESSION_ID ;;
|
||||
" Suspend") systemctl suspend ;;
|
||||
" Hibernate") systemctl hibernate ;;
|
||||
*) exit 0 ;;
|
||||
esac
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 406 KiB After Width: | Height: | Size: 249 KiB |
109
i3/.config/picom/picom.conf
Normal file
109
i3/.config/picom/picom.conf
Normal file
@@ -0,0 +1,109 @@
|
||||
## Modified to have rules organized to the rules section at bottom, legacy options commented out.
|
||||
|
||||
# OPACITY
|
||||
# inactive-opacity = 0.8;
|
||||
# frame-opacity = 0.7;
|
||||
|
||||
# Let inactive opacity set by -i override the '_NET_WM_WINDOW_OPACITY' values of windows.
|
||||
# inactive-opacity-override = true;
|
||||
|
||||
# if for some reason you want all windows transparent
|
||||
# active-opacity = 1.0
|
||||
|
||||
# inactive-dim = 0.05
|
||||
|
||||
# fixed inactive dim value
|
||||
# inactive-dim-fixed = 1.0
|
||||
|
||||
# focus-exclude = [ "class_g = 'dwm'" ];
|
||||
|
||||
# opacity-rule = [
|
||||
# "100:class_g = 'example'"
|
||||
# ];
|
||||
|
||||
# ROUNDED CORNERS
|
||||
corner-radius = 3
|
||||
|
||||
# uncommented for square notification box
|
||||
rounded-corners-exclude = [
|
||||
"class_g = 'Polybar'",
|
||||
"class_g = 'Dunst'"
|
||||
];
|
||||
|
||||
# BLURRING
|
||||
# methods: none, gaussian, box, kernel (define custom kernel), dual_kawase
|
||||
blur:
|
||||
{
|
||||
method = "dual_kawase";
|
||||
size = 10;
|
||||
strength = 3;
|
||||
# default deviation is 0.84
|
||||
# deviation = false;
|
||||
};
|
||||
|
||||
# semi-transparent
|
||||
blur-background = true
|
||||
|
||||
# blur-background-frame = true
|
||||
# Use fixed blur strength rather than adjusting according to window opacity.
|
||||
blur-background-fixed = true
|
||||
|
||||
# set custom blur kernel (method to kernel), preset examples:
|
||||
# blur-kern = "3x3box";
|
||||
# blur-kern = "5x5gaussian";
|
||||
|
||||
# SHADOWS
|
||||
# shadow = true;
|
||||
shadow-radius = 1; #blur radius
|
||||
shadow-opacity = .1
|
||||
shadow-offset-x = 0;
|
||||
shadow-offset-y = 0;
|
||||
shadow-color = "#000000"
|
||||
# shadow-exclude = [];
|
||||
|
||||
# FADING
|
||||
fading = true;
|
||||
fade-in-step = 0.03;
|
||||
fade-out-step = 0.03;
|
||||
fade-delta = 3
|
||||
|
||||
# OTHER SETTINGS
|
||||
# dbus = true
|
||||
# daemon = false
|
||||
|
||||
# backends: `xrender`, `glx`, `egl` or `xr_glx_hybrid`
|
||||
backend = "egl";
|
||||
dithered-present = false;
|
||||
vsync = true;
|
||||
# mark-wmwin-focused = true;
|
||||
# mark-ovredir-focused = true;
|
||||
detect-rounded-corners = false
|
||||
detect-client-opacity = true;
|
||||
use-ewmh-active-win = true
|
||||
detect-transient = true;
|
||||
# glx-no-stencil = true
|
||||
use-damage = true;
|
||||
log-level = "warn";
|
||||
|
||||
# LEGACY
|
||||
# wintypes:
|
||||
# {
|
||||
# tooltip = { fade = true; shadow = true; opacity = 0.5; focus = true; full-shadow = false; };
|
||||
# dock = { shadow = false; clip-shadow-above = true; }
|
||||
# dnd = { shadow = false; }
|
||||
# popup_menu = { opacity = 0.7; }
|
||||
# dropdown_menu = { opacity = 0.7; }
|
||||
# normal = { opacity = 1;}
|
||||
# };
|
||||
|
||||
# WINDOW RULES
|
||||
rules = (
|
||||
# { match = "name = 'dwm'"; opacity = 1; },
|
||||
{ match = "focused"; opacity = 1; },
|
||||
{ match = "!focused"; opacity = 0.85; },
|
||||
{ match = "tooltip"; fade = true; shadow = true; opacity = 0.5; focus = true; full-shadow = false; },
|
||||
{ match = "popup_menu"; opacity = 0.7; },
|
||||
{ match = "dropdown_menu"; opacity = 0.7; }
|
||||
)
|
||||
|
||||
# picom -b to daemonize
|
||||
@@ -1,6 +1,5 @@
|
||||
;==========================================================
|
||||
;
|
||||
;
|
||||
; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗
|
||||
; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗
|
||||
; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝
|
||||
@@ -9,179 +8,203 @@
|
||||
; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝
|
||||
;
|
||||
;
|
||||
; To learn more about how to configure Polybar
|
||||
; go to https://github.com/polybar/polybar
|
||||
; To learn more about how to configure Polybar
|
||||
; go to https://github.com/polybar/polybar
|
||||
;
|
||||
; The README contains a lot of information
|
||||
; The README contains a lot of information
|
||||
;
|
||||
;==========================================================
|
||||
|
||||
[global/wm]
|
||||
include-file = $HOME/.config/polybar/themes/mocha.ini
|
||||
include-file = $HOME/.config/polybar/modules.ini
|
||||
margin-top = 0
|
||||
margin-bottom = 0
|
||||
|
||||
[colors]
|
||||
; FIXME remove radius on left and right borders
|
||||
[bar/mainbar]
|
||||
; monitor = eDP-1 ; xrandr --query | grep " connected"
|
||||
; monitor = ${env:POLYBAR_MONITOR:}
|
||||
|
||||
; Require the monitor to be in connected state
|
||||
; XRandR sometimes reports my monitor as being disconnected (when in use)
|
||||
monitor-strict = false
|
||||
|
||||
; Tell the Window Manager not to configure the window.
|
||||
; Use this to detach the bar if your WM is locking its size/position.
|
||||
override-redirect = false
|
||||
|
||||
; Put the bar at the bottom of the screen
|
||||
bottom = false
|
||||
|
||||
; Prefer fixed center position for the `modules-center` block
|
||||
;
|
||||
; When false, the center position will be based on the size of the other blocks.
|
||||
fixed-center = true
|
||||
|
||||
; Offset defined as pixel value (e.g. 35) or percentage (e.g. 50%)
|
||||
; the percentage can optionally be extended with a pixel offset like so:
|
||||
; 50%:-10, this will result in an offset in the x or y direction
|
||||
; of 50% minus 10 pixels
|
||||
offset-x = 0%
|
||||
offset-y = 0%
|
||||
|
||||
; Background ARGB color (e.g. #f00, #ff992a, #ddff1023)
|
||||
background = ${colors.base}
|
||||
background-alt = ${colors.mantle}
|
||||
|
||||
; Foreground ARGB color (e.g. #f00, #ff992a, #ddff1023)
|
||||
foreground = ${colors.text}
|
||||
primary = ${colors.blue}
|
||||
secondary = ${colors.sapphire}
|
||||
alert = ${colors.red}
|
||||
disabled = ${colors.crust}
|
||||
|
||||
[bar/mybar]
|
||||
; Dimension defined as pixel value (e.g. 35) or percentage (e.g. 50%),
|
||||
; 50%:-10, this will result in a width or height of 50% minus 10 pixels
|
||||
; the percentage can optionally be extended with a pixel offset like so:
|
||||
width = 100%
|
||||
height = 24pt
|
||||
radius = 6
|
||||
height = 26pt
|
||||
|
||||
; dpi = 96
|
||||
; Value used for drawing rounded corners
|
||||
; Note: This shouldn't be used together with border-size because the border
|
||||
; doesn't get rounded
|
||||
; Individual top/bottom values can be defined using:
|
||||
; radius-{top,bottom}
|
||||
radius-top = 0
|
||||
radius-bottom = 0.0
|
||||
|
||||
background = ${colors.background}
|
||||
foreground = ${colors.foreground}
|
||||
; Under-/overline pixel size and argb color
|
||||
; Individual values can be defined using:
|
||||
; {overline,underline}-size
|
||||
; {overline,underline}-color
|
||||
underline-size = 2
|
||||
underline-color = ${color.foreground}
|
||||
|
||||
line-size = 3pt
|
||||
|
||||
border-size = 4pt
|
||||
border-color = #00000000
|
||||
; Values applied to all borders
|
||||
; Individual side values can be defined using:
|
||||
; border-{left,top,right,bottom}-size
|
||||
; border-{left,top,right,bottom}-color
|
||||
; The top and bottom borders are added to the bar height, so the effective
|
||||
; window height is:
|
||||
; height + border-top-size + border-bottom-size
|
||||
; Meanwhile the effective window width is defined entirely by the width key and
|
||||
; the border is placed withing this area. So you effectively only have the
|
||||
; following horizontal space on the bar:
|
||||
; width - border-right-size - border-left-size
|
||||
border-size = 0
|
||||
border-color = ${colors.base}
|
||||
|
||||
; Number of spaces to add at the beginning/end of the bar
|
||||
; Individual side values can be defined using:
|
||||
; padding-{left,right}
|
||||
padding-left = 0
|
||||
padding-right = 1
|
||||
padding-right = 0
|
||||
|
||||
; Number of spaces to add before/after each module
|
||||
; Individual side values can be defined using:
|
||||
; module-margin-{left,right}
|
||||
;module-margin-left = 0
|
||||
;module-margin-right = 0
|
||||
module-margin = 1
|
||||
|
||||
; The separator will be inserted between the output of each module
|
||||
separator = |
|
||||
separator-foreground = ${colors.disabled}
|
||||
separator-foreground = ${colors.crust}
|
||||
|
||||
font-0 = ComicShannsMono Nerd Font;2
|
||||
; Fonts are defined using <font-name>;<vertical-offset>
|
||||
; Font names are specified using a fontconfig pattern.
|
||||
; font-0 = NotoSans-Regular:size=8;2
|
||||
; font-1 = MaterialIcons:size=10
|
||||
; font-2 = Termsynu:size=8;-1
|
||||
; font-3 = FontAwesome:size=10
|
||||
; See the Fonts wiki page for more details
|
||||
font-0 = "JetBrainsMono Nerd Font:size=12;2"
|
||||
|
||||
modules-left = xworkspaces xwindow
|
||||
modules-right = filesystem pulseaudio xkeyboard memory cpu wlan eth date
|
||||
; Modules are added to one of the available blocks
|
||||
; modules-center = xwindow xbacklight
|
||||
; modules-right = ipc clock
|
||||
modules-left = xworkspaces
|
||||
modules-center =
|
||||
modules-right = spotify filesystem memory cpu pulseaudio backlight battery0 battery1 xkeyboard date systray
|
||||
|
||||
cursor-click = pointer
|
||||
cursor-scroll = ns-resize
|
||||
; Value to be used to set the WM_NAME atom
|
||||
; If the value is empty or undefined, the atom value
|
||||
; will be created from the following template: polybar-[BAR]_[MONITOR]
|
||||
; NOTE: The placeholders are not available for custom values
|
||||
;wm-name =
|
||||
|
||||
; Locale used to localize various module data (e.g. date)
|
||||
; Expects a valid libc locale, for example: sv_SE.UTF-8
|
||||
;locale =
|
||||
|
||||
; Position of the system tray window
|
||||
; If empty or undefined, tray support will be disabled
|
||||
; NOTE: A center aligned tray will cover center aligned modules
|
||||
;
|
||||
; Available positions:
|
||||
; left
|
||||
; center
|
||||
; right
|
||||
; none
|
||||
tray-position = none
|
||||
|
||||
; If true, the bar will not shift its
|
||||
; contents when the tray changes
|
||||
tray-detached = false
|
||||
|
||||
; Tray icon max size
|
||||
tray-maxsize = 20
|
||||
|
||||
; Background color for the tray container
|
||||
; ARGB color (e.g. #f00, #ff992a, #ddff1023)
|
||||
; By default the tray container will use the bar
|
||||
; background color.
|
||||
tray-background = ${color.base}
|
||||
|
||||
; Tray offset defined as pixel value (e.g. 35) or percentage (e.g. 50%)
|
||||
tray-offset-x = 0
|
||||
tray-offset-y = 0
|
||||
|
||||
; Pad the sides of each tray icon
|
||||
tray-padding = 0
|
||||
|
||||
; Scale factor for tray clients
|
||||
tray-scale = 0.5
|
||||
|
||||
; Restack the bar window and put it above the
|
||||
; selected window manager's root
|
||||
;
|
||||
; Fixes the issue where the bar is being drawn
|
||||
; on top of fullscreen window's
|
||||
;
|
||||
; Currently supported WM's:
|
||||
; bspwm
|
||||
; i3 (requires: `override-redirect = true`)
|
||||
wm-restack = i3
|
||||
|
||||
; Set a DPI values used when rendering text
|
||||
; This only affects scalable fonts
|
||||
; dpi =
|
||||
|
||||
; Enable support for inter-process messaging
|
||||
; See the Messaging wiki page for more details.
|
||||
enable-ipc = true
|
||||
|
||||
; wm-restack = generic
|
||||
; wm-restack = bspwm
|
||||
; wm-restack = i3
|
||||
; Fallback click handlers that will be called if
|
||||
; there's no matching module handler found.
|
||||
click-left =
|
||||
click-middle =
|
||||
click-right =
|
||||
scroll-up =
|
||||
scroll-down =
|
||||
double-click-left =
|
||||
double-click-middle =
|
||||
double-click-right =
|
||||
|
||||
; override-redirect = true
|
||||
|
||||
; This module is not active by default (to enable it, add it to one of the
|
||||
; modules-* list above).
|
||||
; Please note that only a single tray can exist at any time. If you launch
|
||||
; multiple bars with this module, only a single one will show it, the others
|
||||
; will produce a warning. Which bar gets the module is timing dependent and can
|
||||
; be quite random.
|
||||
; For more information, see the documentation page for this module:
|
||||
; https://polybar.readthedocs.io/en/stable/user/modules/tray.html
|
||||
[module/systray]
|
||||
type = internal/tray
|
||||
|
||||
format-margin = 8pt
|
||||
tray-spacing = 16pt
|
||||
|
||||
[module/xworkspaces]
|
||||
type = internal/xworkspaces
|
||||
|
||||
label-active = %name%
|
||||
label-active-background = ${colors.background-alt}
|
||||
label-active-underline= ${colors.primary}
|
||||
label-active-padding = 1
|
||||
|
||||
label-occupied = %name%
|
||||
label-occupied-padding = 1
|
||||
|
||||
label-urgent = %name%
|
||||
label-urgent-background = ${colors.alert}
|
||||
label-urgent-padding = 1
|
||||
|
||||
label-empty = %name%
|
||||
label-empty-foreground = ${colors.disabled}
|
||||
label-empty-padding = 1
|
||||
|
||||
[module/xwindow]
|
||||
type = internal/xwindow
|
||||
label = %title:0:60:...%
|
||||
|
||||
[module/filesystem]
|
||||
type = internal/fs
|
||||
interval = 25
|
||||
|
||||
mount-0 = /
|
||||
|
||||
label-mounted = %{F#F0C674}%mountpoint%%{F-} %percentage_used%%
|
||||
|
||||
label-unmounted = %mountpoint% not mounted
|
||||
label-unmounted-foreground = ${colors.disabled}
|
||||
|
||||
[module/pulseaudio]
|
||||
type = internal/pulseaudio
|
||||
|
||||
format-volume-prefix = "VOL "
|
||||
format-volume-prefix-foreground = ${colors.primary}
|
||||
format-volume = <label-volume>
|
||||
|
||||
label-volume = %percentage%%
|
||||
|
||||
label-muted = muted
|
||||
label-muted-foreground = ${colors.disabled}
|
||||
|
||||
[module/xkeyboard]
|
||||
type = internal/xkeyboard
|
||||
blacklist-0 = num lock
|
||||
|
||||
label-layout = %layout%
|
||||
label-layout-foreground = ${colors.primary}
|
||||
|
||||
label-indicator-padding = 2
|
||||
label-indicator-margin = 1
|
||||
label-indicator-foreground = ${colors.background}
|
||||
label-indicator-background = ${colors.secondary}
|
||||
|
||||
[module/memory]
|
||||
type = internal/memory
|
||||
interval = 2
|
||||
format-prefix = "RAM "
|
||||
format-prefix-foreground = ${colors.primary}
|
||||
label = %percentage_used:2%%
|
||||
|
||||
[module/cpu]
|
||||
type = internal/cpu
|
||||
interval = 2
|
||||
format-prefix = "CPU "
|
||||
format-prefix-foreground = ${colors.primary}
|
||||
label = %percentage:2%%
|
||||
|
||||
[network-base]
|
||||
type = internal/network
|
||||
interval = 5
|
||||
format-connected = <label-connected>
|
||||
format-disconnected = <label-disconnected>
|
||||
label-disconnected = %{F#F0C674}%ifname%%{F#707880} disconnected
|
||||
|
||||
[module/wlan]
|
||||
inherit = network-base
|
||||
interface-type = wireless
|
||||
label-connected = %{F#F0C674}%ifname%%{F-} %essid% %local_ip%
|
||||
|
||||
[module/eth]
|
||||
inherit = network-base
|
||||
interface-type = wired
|
||||
label-connected = %{F#F0C674}%ifname%%{F-} %local_ip%
|
||||
|
||||
[module/date]
|
||||
type = internal/date
|
||||
interval = 1
|
||||
|
||||
date = %H:%M
|
||||
date-alt = %Y-%m-%d %H:%M:%S
|
||||
|
||||
label = %date%
|
||||
label-foreground = ${colors.primary}
|
||||
; Requires polybar to be built with xcursor support (xcb-util-cursor)
|
||||
; Possible values are:
|
||||
; - default : The default pointer as before, can also be an empty string (default)
|
||||
; - pointer : Typically in the form of a hand
|
||||
; - ns-resize : Up and down arrows, can be used to indicate scrolling
|
||||
cursor-click = pointer
|
||||
cursor-scroll = ns-resize
|
||||
|
||||
[settings]
|
||||
screenchange-reload = true
|
||||
pseudo-transparency = true
|
||||
|
||||
; vim:ft=dosini
|
||||
|
||||
@@ -8,6 +8,6 @@ polybar-msg cmd quit
|
||||
|
||||
# Launch barxs
|
||||
echo "---" | tee -a /tmp/polybar-mybar.log
|
||||
polybar mybar 2>&1 | tee -a /tmp/polybar-mybar.log & disown
|
||||
polybar mainbar 2>&1 | tee -a /tmp/polybar-mybar.log & disown
|
||||
|
||||
echo "Bars launched..."
|
||||
|
||||
585
i3/.config/polybar/modules.ini
Normal file
585
i3/.config/polybar/modules.ini
Normal file
@@ -0,0 +1,585 @@
|
||||
; FIXME adapt systray icons to other status bar icons
|
||||
[module/systray]
|
||||
type = internal/tray
|
||||
format-margin = 8pt
|
||||
tray-spacing = 14pt
|
||||
|
||||
[module/xworkspaces]
|
||||
type = internal/xworkspaces
|
||||
label-active = %name%
|
||||
label-active-background = ${colors.mantle}
|
||||
label-active-foreground = ${colors.mauve}
|
||||
label-active-underline= ${colors.mauve}
|
||||
label-active-padding = 1
|
||||
label-occupied = %name%
|
||||
label-occupied-padding = 1
|
||||
label-urgent = %name%
|
||||
label-urgent-background = ${colors.red}
|
||||
label-urgent-padding = 1
|
||||
label-empty = %name%
|
||||
label-empty-foreground = ${colors.crust}
|
||||
label-empty-padding = 1
|
||||
|
||||
[module/xwindow]
|
||||
type = internal/xwindow
|
||||
label = %title:0:60:...%
|
||||
|
||||
[module/filesystem]
|
||||
type = internal/fs
|
||||
interval = 25
|
||||
mount-0 = /
|
||||
mount-1 = /home
|
||||
label-mounted = %{F#F2CDCD}%mountpoint%%{F-} %percentage_used%%
|
||||
label-unmounted = %mountpoint% not mounted
|
||||
label-unmounted-foreground = ${colors.crust}
|
||||
|
||||
[module/pulseaudio]
|
||||
type = internal/pulseaudio
|
||||
|
||||
;format-volume-prefix = "VOL "
|
||||
;format-volume-prefix-foreground = ${colors.blue}
|
||||
|
||||
format-volume = <ramp-volume> <label-volume>
|
||||
label-volume = %percentage%%
|
||||
ramp-volume-foreground = ${colors.rosewater}
|
||||
|
||||
format-muted = <label-muted>
|
||||
label-muted = %percentage%%
|
||||
ramp-muted-foreground = ${colors.red}
|
||||
|
||||
ramp-volume-0 =
|
||||
ramp-volume-1 =
|
||||
ramp-volume-2 =
|
||||
|
||||
[module/xkeyboard]
|
||||
type = internal/xkeyboard
|
||||
blacklist-0 = num lock
|
||||
label-layout = %layout%
|
||||
label-layout-foreground = ${colors.maroon}
|
||||
label-indicator-padding = 2
|
||||
label-indicator-margin = 1
|
||||
label-indicator-foreground = ${colors.base}
|
||||
label-indicator-background = ${colors.peach}
|
||||
|
||||
[module/memory]
|
||||
type = internal/memory
|
||||
interval = 2
|
||||
format-prefix = " "
|
||||
format-prefix-foreground = ${colors.teal}
|
||||
label = %gb_used%/%gb_total%
|
||||
|
||||
[module/cpu]
|
||||
type = internal/cpu
|
||||
interval = 2
|
||||
format-prefix = " "
|
||||
format-prefix-foreground = ${colors.pink}
|
||||
label = %percentage:2%%
|
||||
|
||||
[network-base]
|
||||
type = internal/network
|
||||
interval = 5
|
||||
format-connected = <label-connected>
|
||||
format-disconnected = <label-disconnected>
|
||||
label-disconnected = %{F#F0C674}%ifname%%{F#707880} disconnected
|
||||
|
||||
[module/wlan]
|
||||
inherit = network-base
|
||||
interface-type = wireless
|
||||
label-connected = %{F#F0C674}%ifname%%{F-} %essid% %local_ip%
|
||||
|
||||
[module/eth]
|
||||
inherit = network-base
|
||||
interface-type = wired
|
||||
label-connected = %{F#F0C674}%ifname%%{F-} %local_ip%
|
||||
|
||||
[module/date]
|
||||
type = internal/date
|
||||
interval = 1
|
||||
date = %H:%M
|
||||
date-alt = %Y-%m-%d %H:%M:%S
|
||||
label = %date%
|
||||
;label-foreground = ${colors.blue}
|
||||
|
||||
[module/battery0]
|
||||
type = internal/battery
|
||||
|
||||
; This is useful in case the battery never reports 100% charge
|
||||
; Default: 100
|
||||
full-at = 100
|
||||
|
||||
; format-low once this charge percentage is reached
|
||||
; Default: 10
|
||||
; New in version 3.6.0
|
||||
low-at = 20
|
||||
|
||||
; Use the following command to list batteries and adapters:
|
||||
; $ ls -1 /sys/class/power_supply/
|
||||
battery = BAT0
|
||||
adapter = ADP1
|
||||
|
||||
; If an inotify event haven't been reported in this many
|
||||
; seconds, manually poll for new values.
|
||||
;
|
||||
; Needed as a fallback for systems that don't report events
|
||||
; on sysfs/procfs.
|
||||
;
|
||||
; Disable polling by setting the interval to 0.
|
||||
;
|
||||
; Default: 5
|
||||
poll-interval = 5
|
||||
|
||||
; see "man date" for details on how to format the time string
|
||||
; NOTE: if you want to use syntax tags here you need to use %%{...}
|
||||
; Default: %H:%M:%S
|
||||
time-format = %H:%M
|
||||
|
||||
; Available tags:
|
||||
; <label-charging> (default)
|
||||
; <bar-capacity>
|
||||
; <ramp-capacity>
|
||||
; <animation-charging>
|
||||
format-charging = <animation-charging> <label-charging>
|
||||
animation-charging-foreground = ${colors.green}
|
||||
|
||||
; Available tags:
|
||||
; <label-discharging> (default)
|
||||
; <bar-capacity>
|
||||
; <ramp-capacity>
|
||||
; <animation-discharging>
|
||||
format-discharging = <ramp-capacity> <label-discharging>
|
||||
ramp-capacity-foreground = ${colors.yellow}
|
||||
|
||||
; Available tags:
|
||||
; <label-full> (default)
|
||||
; <bar-capacity>
|
||||
; <ramp-capacity>
|
||||
format-full = <ramp-capacity> <label-full>
|
||||
format-full-foreground = ${colors.green}
|
||||
|
||||
; Format used when battery level drops to low-at
|
||||
; If not defined, format-discharging is used instead.
|
||||
; Available tags:
|
||||
; <label-low>
|
||||
; <animation-low>
|
||||
; <bar-capacity>
|
||||
; <ramp-capacity>
|
||||
; New in version 3.6.0
|
||||
format-low = <ramp-capacity> <label-low>
|
||||
format-low-foreground = ${colors.red}
|
||||
|
||||
; Available tokens:
|
||||
; %percentage% (default) - is set to 100 if full-at is reached
|
||||
; %percentage_raw%
|
||||
; %time%
|
||||
; %consumption% (shows current charge rate in watts)
|
||||
;label-charging = Charging %percentage%%
|
||||
|
||||
; Available tokens:
|
||||
; %percentage% (default) - is set to 100 if full-at is reached
|
||||
; %percentage_raw%
|
||||
; %time%
|
||||
; %consumption% (shows current discharge rate in watts)
|
||||
;label-discharging = Discharging %percentage%%
|
||||
|
||||
; Available tokens:
|
||||
; %percentage% (default) - is set to 100 if full-at is reached
|
||||
; %percentage_raw%
|
||||
;label-full = Fully charged
|
||||
|
||||
; Available tokens:
|
||||
; %percentage% (default) - is set to 100 if full-at is reached
|
||||
; %percentage_raw%
|
||||
; %time%
|
||||
; %consumption% (shows current discharge rate in watts)
|
||||
; New in versinon 3.6.0
|
||||
; label-low = BATTERY LOW
|
||||
|
||||
; Only applies if <ramp-capacity> is used
|
||||
ramp-capacity-0 =
|
||||
ramp-capacity-1 =
|
||||
ramp-capacity-2 =
|
||||
ramp-capacity-3 =
|
||||
ramp-capacity-4 =
|
||||
|
||||
; Only applies if <bar-capacity> is used
|
||||
bar-capacity-width = 10
|
||||
|
||||
; Only applies if <animation-charging> is used
|
||||
animation-charging-0 =
|
||||
animation-charging-1 =
|
||||
animation-charging-2 =
|
||||
animation-charging-3 =
|
||||
animation-charging-4 =
|
||||
; Framerate in milliseconds
|
||||
animation-charging-framerate = 750
|
||||
|
||||
; Only applies if <animation-discharging> is used
|
||||
animation-discharging-0 =
|
||||
animation-discharging-1 =
|
||||
animation-discharging-2 =
|
||||
animation-discharging-3 =
|
||||
animation-discharging-4 =
|
||||
; Framerate in milliseconds
|
||||
animation-discharging-framerate = 500
|
||||
|
||||
; Only applies if <animation-low> is used
|
||||
; New in version 3.6.0
|
||||
;animation-low-0 = !
|
||||
;animation-low-1 =
|
||||
;animation-low-framerate = 200
|
||||
|
||||
[module/battery1]
|
||||
type = internal/battery
|
||||
|
||||
; This is useful in case the battery never reports 100% charge
|
||||
; Default: 100
|
||||
full-at = 100
|
||||
|
||||
; format-low once this charge percentage is reached
|
||||
; Default: 10
|
||||
; New in version 3.6.0
|
||||
low-at = 20
|
||||
|
||||
; Use the following command to list batteries and adapters:
|
||||
; $ ls -1 /sys/class/power_supply/
|
||||
battery = BAT1
|
||||
adapter = ADP1
|
||||
|
||||
; If an inotify event haven't been reported in this many
|
||||
; seconds, manually poll for new values.
|
||||
;
|
||||
; Needed as a fallback for systems that don't report events
|
||||
; on sysfs/procfs.
|
||||
;
|
||||
; Disable polling by setting the interval to 0.
|
||||
;
|
||||
; Default: 5
|
||||
poll-interval = 5
|
||||
|
||||
; see "man date" for details on how to format the time string
|
||||
; NOTE: if you want to use syntax tags here you need to use %%{...}
|
||||
; Default: %H:%M:%S
|
||||
time-format = %H:%M
|
||||
|
||||
; Available tags:
|
||||
; <label-charging> (default)
|
||||
; <bar-capacity>
|
||||
; <ramp-capacity>
|
||||
; <animation-charging>
|
||||
format-charging = <animation-charging> <label-charging>
|
||||
animation-charging-foreground = ${colors.green}
|
||||
|
||||
; Available tags:
|
||||
; <label-discharging> (default)
|
||||
; <bar-capacity>
|
||||
; <ramp-capacity>
|
||||
; <animation-discharging>
|
||||
format-discharging = <ramp-capacity> <label-discharging>
|
||||
ramp-capacity-foreground = ${colors.yellow}
|
||||
|
||||
; Available tags:
|
||||
; <label-full> (default)
|
||||
; <bar-capacity>
|
||||
; <ramp-capacity>
|
||||
format-full = <ramp-capacity> <label-full>
|
||||
format-full-foreground = ${colors.green}
|
||||
|
||||
; Format used when battery level drops to low-at
|
||||
; If not defined, format-discharging is used instead.
|
||||
; Available tags:
|
||||
; <label-low>
|
||||
; <animation-low>
|
||||
; <bar-capacity>
|
||||
; <ramp-capacity>
|
||||
; New in version 3.6.0
|
||||
format-low = <ramp-capacity> <label-low>
|
||||
format-low-foreground = ${colors.red}
|
||||
|
||||
; Available tokens:
|
||||
; %percentage% (default) - is set to 100 if full-at is reached
|
||||
; %percentage_raw%
|
||||
; %time%
|
||||
; %consumption% (shows current charge rate in watts)
|
||||
;label-charging = Charging %percentage%%
|
||||
|
||||
; Available tokens:
|
||||
; %percentage% (default) - is set to 100 if full-at is reached
|
||||
; %percentage_raw%
|
||||
; %time%
|
||||
; %consumption% (shows current discharge rate in watts)
|
||||
;label-discharging = Discharging %percentage%%
|
||||
|
||||
; Available tokens:
|
||||
; %percentage% (default) - is set to 100 if full-at is reached
|
||||
; %percentage_raw%
|
||||
;label-full = Fully charged
|
||||
|
||||
; Available tokens:
|
||||
; %percentage% (default) - is set to 100 if full-at is reached
|
||||
; %percentage_raw%
|
||||
; %time%
|
||||
; %consumption% (shows current discharge rate in watts)
|
||||
; New in versinon 3.6.0
|
||||
; label-low = BATTERY LOW
|
||||
|
||||
; Only applies if <ramp-capacity> is used
|
||||
ramp-capacity-0 =
|
||||
ramp-capacity-1 =
|
||||
ramp-capacity-2 =
|
||||
ramp-capacity-3 =
|
||||
ramp-capacity-4 =
|
||||
|
||||
; Only applies if <bar-capacity> is used
|
||||
bar-capacity-width = 10
|
||||
|
||||
; Only applies if <animation-charging> is used
|
||||
animation-charging-0 =
|
||||
animation-charging-1 =
|
||||
animation-charging-2 =
|
||||
animation-charging-3 =
|
||||
animation-charging-4 =
|
||||
; Framerate in milliseconds
|
||||
animation-charging-framerate = 750
|
||||
|
||||
; Only applies if <animation-discharging> is used
|
||||
animation-discharging-0 =
|
||||
animation-discharging-1 =
|
||||
animation-discharging-2 =
|
||||
animation-discharging-3 =
|
||||
animation-discharging-4 =
|
||||
; Framerate in milliseconds
|
||||
animation-discharging-framerate = 500
|
||||
|
||||
; Only applies if <animation-low> is used
|
||||
; New in version 3.6.0
|
||||
;animation-low-0 = !
|
||||
;animation-low-1 =
|
||||
;animation-low-framerate = 200
|
||||
|
||||
[module/backlight]
|
||||
type = internal/backlight
|
||||
|
||||
; Use the following command to list available cards:
|
||||
; $ ls -1 /sys/class/backlight/
|
||||
; Default: first usable card in /sys/class/backlight (new in version 3.7.0)
|
||||
card = intel_backlight
|
||||
|
||||
; Use the `/sys/class/backlight/.../actual-brightness` file
|
||||
; rather than the regular `brightness` file.
|
||||
; New in version 3.6.0
|
||||
; Changed in version: 3.7.0: Defaults to true also on amdgpu backlights
|
||||
; Default: true
|
||||
use-actual-brightness = true
|
||||
|
||||
; Interval in seconds after which after which the current brightness is read
|
||||
; (even if no update is detected).
|
||||
; Use this as a fallback if brightness updates are not registering in polybar
|
||||
; (which happens if the use-actual-brightness is false).
|
||||
; There is no guarantee on the precisio of this timing.
|
||||
; Set to 0 to turn off
|
||||
; New in version 3.7.0
|
||||
; Default: 0 (5 if use-actual-brightness is false)
|
||||
poll-interval = 0
|
||||
|
||||
; Enable changing the backlight with the scroll wheel
|
||||
; NOTE: This may require additional configuration on some systems. Polybar will
|
||||
; write to `/sys/class/backlight/${self.card}/brightness` which requires polybar
|
||||
; to have write access to that file.
|
||||
; DO NOT RUN POLYBAR AS ROOT.
|
||||
; The recommended way is to add the user to the
|
||||
; `video` group and give that group write-privileges for the `brightness` file.
|
||||
; See the ArchWiki for more information:
|
||||
; https://wiki.archlinux.org/index.php/Backlight#ACPI
|
||||
; Default: false
|
||||
enable-scroll = true
|
||||
|
||||
; Interval for changing the brightness (in percentage points).
|
||||
; New in version 3.7.0
|
||||
; Default: 5
|
||||
scroll-interval = 10
|
||||
|
||||
; Available tags:
|
||||
; <label> (default)
|
||||
; <ramp>
|
||||
; <bar>
|
||||
format = <ramp> <label>
|
||||
|
||||
; Available tokens:
|
||||
; %percentage% (default)
|
||||
label = %percentage%%
|
||||
|
||||
; Only applies if <ramp> is used
|
||||
ramp-foreground = ${colors.peach}
|
||||
ramp-0 = ""
|
||||
ramp-1 = ""
|
||||
ramp-2 = ""
|
||||
ramp-3 = ""
|
||||
ramp-4 = ""
|
||||
ramp-5 = ""
|
||||
ramp-6 = ""
|
||||
ramp-7 = ""
|
||||
ramp-8 = ""
|
||||
|
||||
; Only applies if <bar> is used
|
||||
bar-width = 10
|
||||
bar-indicator = |
|
||||
bar-fill = ─
|
||||
bar-empty = ─
|
||||
|
||||
[module/mpd]
|
||||
type = internal/mpd
|
||||
|
||||
; Host where mpd is running (either ip or domain name)
|
||||
; Can also be the full path to a unix socket where mpd is running.
|
||||
host = 127.0.0.1
|
||||
port = 6600
|
||||
; password = mysecretpassword
|
||||
|
||||
; Seconds to sleep between progressbar/song timer sync
|
||||
; Default: 1
|
||||
interval = 2
|
||||
|
||||
; Available tags:
|
||||
; <label-song> (default)
|
||||
; <label-time>
|
||||
; <bar-progress>
|
||||
; <toggle> - gets replaced with <icon-(pause|play)>
|
||||
; <toggle-stop> - gets replaced with <icon-(stop|play)>
|
||||
; <icon-random>
|
||||
; <icon-repeat>
|
||||
; <icon-repeatone> (deprecated)
|
||||
; <icon-single> - Toggle playing only a single song. Replaces <icon-repeatone>
|
||||
; <icon-consume>
|
||||
; <icon-prev>
|
||||
; <icon-stop>
|
||||
; <icon-play>
|
||||
; <icon-pause>
|
||||
; <icon-next>
|
||||
; <icon-seekb>
|
||||
; <icon-seekf>
|
||||
format-online = <icon-prev> <icon-seekb> <icon-stop> <toggle> <icon-seekf> <icon-next> <icon-repeat> <icon-random> <bar-progress> <label-time> <label-song>
|
||||
;format-playing = ${self.format-online}
|
||||
;format-paused = ${self.format-online}
|
||||
;format-stopped = ${self.format-online}
|
||||
|
||||
; Available tags:
|
||||
; <label-offline>
|
||||
; Default: ""
|
||||
;format-offline = <label-offline>
|
||||
|
||||
; Available tokens:
|
||||
; %artist%
|
||||
; %album-artist%
|
||||
; %album%
|
||||
; %date%
|
||||
; %title%
|
||||
; Default: %artist% - %title%
|
||||
label-song = 𝄞 %artist% - %title%
|
||||
|
||||
; Available tokens:
|
||||
; %elapsed%
|
||||
; %total%
|
||||
; Default: %elapsed% / %total%
|
||||
;label-time = %elapsed% / %total%
|
||||
|
||||
; Available tokens:
|
||||
; None
|
||||
label-offline = 🎜 mpd is offline
|
||||
|
||||
; Only applies if <icon-X> is used
|
||||
icon-play = ⏵
|
||||
icon-pause = ⏸
|
||||
icon-stop = ⏹
|
||||
icon-prev = ⏮
|
||||
icon-next = ⏭
|
||||
icon-seekb = ⏪
|
||||
icon-seekf = ⏩
|
||||
icon-random = 🔀
|
||||
icon-repeat = 🔁
|
||||
icon-repeatone = 🔂
|
||||
icon-single = 🔂
|
||||
icon-consume = ✀
|
||||
|
||||
; Used to display the state of random/repeat/repeatone/single
|
||||
; Only applies if <icon-[random|repeat|repeatone|single]> is used
|
||||
toggle-on-foreground = #ff
|
||||
toggle-off-foreground = #55
|
||||
|
||||
; Only applies if <bar-progress> is used
|
||||
bar-progress-width = 45
|
||||
bar-progress-indicator = |
|
||||
bar-progress-fill = ─
|
||||
bar-progress-empty = ─
|
||||
|
||||
[module/github]
|
||||
type = internal/github
|
||||
|
||||
; Accessing an access token stored in file
|
||||
;token = ${file:/path/to/file/containing/github/access.token}
|
||||
|
||||
; Accessing an access token stored in an environment variable
|
||||
token = ${env:GITHUB_ACCESS_TOKEN}
|
||||
|
||||
; The github user for the token
|
||||
; Effectively required; otherwise the module uses a deprecated method of fetching
|
||||
; notifications, which has stopped working
|
||||
user = fscotto
|
||||
|
||||
; Whether empty notifications should be displayed or not
|
||||
empty-notifications = false
|
||||
|
||||
; Number of seconds in between requests
|
||||
interval = 10
|
||||
|
||||
; Github API URL
|
||||
; Default: https://api.github.com/
|
||||
;api-url = https://hub.example.org/api/v3/
|
||||
|
||||
; Available tags:
|
||||
; <label> (default)
|
||||
format = <label>
|
||||
|
||||
; Available tokens:
|
||||
; %notifications% (default)
|
||||
; Default: Notifications: %notifications%
|
||||
label = %notifications%
|
||||
|
||||
; Used when GitHub can't be reached
|
||||
; Available tags:
|
||||
; <label-offline> (default)
|
||||
format-offline = <label-offline>
|
||||
|
||||
; Available tokens:
|
||||
; None
|
||||
; Default: Offline
|
||||
label-offline = Offline
|
||||
|
||||
[module/spotify]
|
||||
type = custom/script
|
||||
tail = true
|
||||
interval = 1
|
||||
; prefix symbol is shown before the text
|
||||
format-prefix = " "
|
||||
format-prefix-foreground = ${colors.blue}
|
||||
format = <label>
|
||||
format-foreground = ${colors.sapphire}
|
||||
exec = ~/.config/polybar/scripts/scroll_spotify_status.sh
|
||||
|
||||
[module/spotify-prev]
|
||||
type = custom/script
|
||||
exec = echo " "
|
||||
format = <label>
|
||||
click-left = playerctl previous -p spotify
|
||||
|
||||
[module/spotify-play-pause]
|
||||
type = custom/ipc
|
||||
hook-0 = echo " "
|
||||
hook-1 = echo " "
|
||||
initial = 1
|
||||
click-left = playerctl play-pause -p spotify
|
||||
|
||||
[module/spotify-next]
|
||||
type = custom/script
|
||||
exec = echo " "
|
||||
format = <label>
|
||||
click-left = playerctl next -p spotify
|
||||
21
i3/.config/polybar/scripts/battery_combo.sh
Executable file
21
i3/.config/polybar/scripts/battery_combo.sh
Executable file
@@ -0,0 +1,21 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Paths to battery capacity files
|
||||
battery0_capacity="/sys/class/power_supply/BAT0/capacity"
|
||||
battery1_capacity="/sys/class/power_supply/BAT1/capacity"
|
||||
|
||||
# Check if the capacity files exist
|
||||
if [[ -f "$battery0_capacity" && -f "$battery1_capacity" ]]; then
|
||||
# Read the battery percentages
|
||||
battery0_charge=$(cat "$battery0_capacity")
|
||||
battery1_charge=$(cat "$battery1_capacity")
|
||||
|
||||
# Calculate the average charge
|
||||
average_charge=$(( (battery0_charge + battery1_charge) / 2 ))
|
||||
|
||||
# Print the average percentage
|
||||
echo "$average_charge%"
|
||||
else
|
||||
# If one of the files is missing, print an error
|
||||
echo "Error: one or more battery capacity files not found."
|
||||
fi
|
||||
51
i3/.config/polybar/scripts/get_spotify_status.sh
Executable file
51
i3/.config/polybar/scripts/get_spotify_status.sh
Executable file
@@ -0,0 +1,51 @@
|
||||
#!/bin/bash
|
||||
|
||||
# The name of polybar bar which houses the main spotify module and the control modules.
|
||||
PARENT_BAR="now-playing"
|
||||
PARENT_BAR_PID=$(pgrep -a "polybar" | grep "$PARENT_BAR" | cut -d" " -f1)
|
||||
|
||||
# Set the source audio player here.
|
||||
# Players supporting the MPRIS spec are supported.
|
||||
# Examples: spotify, vlc, chrome, mpv and others.
|
||||
# Use `playerctld` to always detect the latest player.
|
||||
# See more here: https://github.com/altdesktop/playerctl/#selecting-players-to-control
|
||||
PLAYER="playerctld"
|
||||
|
||||
# Format of the information displayed
|
||||
# Eg. {{ artist }} - {{ album }} - {{ title }}
|
||||
# See more attributes here: https://github.com/altdesktop/playerctl/#printing-properties-and-metadata
|
||||
FORMAT="{{ title }} - {{ artist }}"
|
||||
|
||||
# Sends $2 as message to all polybar PIDs that are part of $1
|
||||
update_hooks() {
|
||||
while IFS= read -r id
|
||||
do
|
||||
polybar-msg -p "$id" hook spotify-play-pause $2 1>/dev/null 2>&1
|
||||
done < <(echo "$1")
|
||||
}
|
||||
|
||||
PLAYERCTL_STATUS=$(playerctl --player=$PLAYER status 2>/dev/null)
|
||||
EXIT_CODE=$?
|
||||
|
||||
if [ $EXIT_CODE -eq 0 ]; then
|
||||
STATUS=$PLAYERCTL_STATUS
|
||||
else
|
||||
STATUS="No player is running"
|
||||
fi
|
||||
|
||||
if [ "$1" == "--status" ]; then
|
||||
echo "$STATUS"
|
||||
else
|
||||
if [ "$STATUS" = "Stopped" ]; then
|
||||
echo "No music is playing"
|
||||
elif [ "$STATUS" = "Paused" ]; then
|
||||
update_hooks "$PARENT_BAR_PID" 2
|
||||
playerctl --player=$PLAYER metadata --format "$FORMAT"
|
||||
elif [ "$STATUS" = "No player is running" ]; then
|
||||
echo "$STATUS"
|
||||
else
|
||||
update_hooks "$PARENT_BAR_PID" 1
|
||||
playerctl --player=$PLAYER metadata --format "$FORMAT"
|
||||
fi
|
||||
fi
|
||||
|
||||
65
i3/.config/polybar/scripts/launch.sh
Normal file
65
i3/.config/polybar/scripts/launch.sh
Normal file
@@ -0,0 +1,65 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
DIR="$HOME/.config/polybar"
|
||||
|
||||
get_bars () {
|
||||
find -H $DIR -name "config.ini" | xargs cat | grep -e "\[bar\/" | sort -u | sed "s/\[bar\// /g" | sed "s/.$//g"
|
||||
}
|
||||
|
||||
error () {
|
||||
cat <<- EOF
|
||||
Usage : launch.sh [bar] [theme]
|
||||
|
||||
bars (defined in any config.ini):
|
||||
EOF
|
||||
|
||||
get_bars
|
||||
|
||||
cat <<- EOF
|
||||
themes:
|
||||
rounded
|
||||
grayblocks
|
||||
EOF
|
||||
exit 0
|
||||
}
|
||||
|
||||
# Launch the bar
|
||||
launch-bar () {
|
||||
# Terminate already running bar instances
|
||||
killall -q polybar
|
||||
|
||||
if [[ -f ~/.config/bspwm/bspwmrc ]]; then
|
||||
sed -i -e "s/polybar.*/polybar\/launch\.sh $bar $style \&/g" ~/.config/bspwm/bspwmrc
|
||||
fi
|
||||
|
||||
# Wait until the processes have been shut down
|
||||
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
|
||||
|
||||
if type "xrandr"; then
|
||||
for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do
|
||||
POLYBAR_MONITOR=$m polybar --reload $bar -c "$DIR"/"$style"/config.ini &
|
||||
done
|
||||
|
||||
else
|
||||
polybar --reload $bar -c "$DIR"/"$style"/config.ini &
|
||||
fi
|
||||
}
|
||||
|
||||
if [[ "$1" = "bspwm" ]]; then
|
||||
bar="bspwm"
|
||||
elif [[ "$1" = "awesomewm" ]]; then
|
||||
bar="awesomewm"
|
||||
else
|
||||
error
|
||||
fi
|
||||
|
||||
|
||||
if [[ "$2" = "rounded" ]]; then
|
||||
style="rounded"
|
||||
launch-bar
|
||||
elif [[ "$2" = "grayblocks" ]]; then
|
||||
style="grayblocks"
|
||||
launch-bar
|
||||
else
|
||||
error
|
||||
fi
|
||||
13
i3/.config/polybar/scripts/scroll_spotify_status.sh
Executable file
13
i3/.config/polybar/scripts/scroll_spotify_status.sh
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
|
||||
# see man zscroll for documentation of the following parameters
|
||||
zscroll -l 30 \
|
||||
--delay 0.1 \
|
||||
--scroll-padding " " \
|
||||
--match-command "`dirname $0`/get_spotify_status.sh --status" \
|
||||
--match-text "Playing" "--scroll 1" \
|
||||
--match-text "Paused" "--scroll 0" \
|
||||
--update-check true "`dirname $0`/get_spotify_status.sh" &
|
||||
|
||||
wait
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
[options]
|
||||
background=1e1e2e
|
||||
overlay_text_color=cdd6f4
|
||||
overlay_background_color=11111b
|
||||
@@ -1,468 +0,0 @@
|
||||
# Config relating to the Lazygit UI
|
||||
gui:
|
||||
# The number of lines you scroll by when scrolling the main window
|
||||
scrollHeight: 2
|
||||
# If true, allow scrolling past the bottom of the content in the main window
|
||||
scrollPastBottom: true
|
||||
# See https://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#scroll-off-margin
|
||||
scrollOffMargin: 2
|
||||
# One of: 'margin' (default) | 'jump'
|
||||
scrollOffBehavior: margin
|
||||
# If true, capture mouse events.
|
||||
# When mouse events are captured, it's a little harder to select text: e.g. requiring you to hold the option key when on macOS.
|
||||
mouseEvents: true
|
||||
# If true, do not show a warning when discarding changes in the staging view.
|
||||
skipDiscardChangeWarning: false
|
||||
# If true, do not show warning when applying/popping the stash
|
||||
skipStashWarning: false
|
||||
# If true, do not show a warning when attempting to commit without any staged files; instead stage all unstaged files.
|
||||
skipNoStagedFilesWarning: false
|
||||
# If true, do not show a warning when rewording a commit via an external editor
|
||||
skipRewordInEditorWarning: false
|
||||
# Fraction of the total screen width to use for the left side section. You may want to pick a small number (e.g. 0.2) if you're using a narrow screen, so that you can see more of the main section.
|
||||
# Number from 0 to 1.0.
|
||||
sidePanelWidth: 0.3333
|
||||
# If true, increase the height of the focused side window; creating an accordion effect.
|
||||
expandFocusedSidePanel: false
|
||||
# The weight of the expanded side panel, relative to the other panels. 2 means
|
||||
# twice as tall as the other panels. Only relevant if `expandFocusedSidePanel` is true.
|
||||
expandedSidePanelWeight: 2
|
||||
# Sometimes the main window is split in two (e.g. when the selected file has both staged and unstaged changes). This setting controls how the two sections are split.
|
||||
# Options are:
|
||||
# - 'horizontal': split the window horizontally
|
||||
# - 'vertical': split the window vertically
|
||||
# - 'flexible': (default) split the window horizontally if the window is wide enough, otherwise split vertically
|
||||
mainPanelSplitMode: flexible
|
||||
# How the window is split when in half screen mode (i.e. after hitting '+' once).
|
||||
# Possible values:
|
||||
# - 'left': split the window horizontally (side panel on the left, main view on the right)
|
||||
# - 'top': split the window vertically (side panel on top, main view below)
|
||||
enlargedSideViewLocation: left
|
||||
# One of 'auto' (default) | 'en' | 'zh-CN' | 'zh-TW' | 'pl' | 'nl' | 'ja' | 'ko' | 'ru'
|
||||
language: auto
|
||||
# Format used when displaying time e.g. commit time.
|
||||
# Uses Go's time format syntax: https://pkg.go.dev/time#Time.Format
|
||||
timeFormat: 02 Jan 06
|
||||
# Format used when displaying time if the time is less than 24 hours ago.
|
||||
# Uses Go's time format syntax: https://pkg.go.dev/time#Time.Format
|
||||
shortTimeFormat: 3:04PM
|
||||
# Config relating to colors and styles.
|
||||
# See https://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#color-attributes
|
||||
theme:
|
||||
# Border color of focused window
|
||||
activeBorderColor:
|
||||
- "#8caaee"
|
||||
- bold
|
||||
# Border color of non-focused windows
|
||||
inactiveBorderColor:
|
||||
- "#a5adce"
|
||||
# Border color of focused window when searching in that window
|
||||
searchingActiveBorderColor:
|
||||
- "#e5c890"
|
||||
# Color of keybindings help text in the bottom line
|
||||
optionsTextColor:
|
||||
- "#8caaee"
|
||||
# Background color of selected line.
|
||||
# See https://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#highlighting-the-selected-line
|
||||
selectedLineBgColor:
|
||||
- "#414559"
|
||||
# Foreground color of copied commit
|
||||
cherryPickedCommitFgColor:
|
||||
- "#8caaee"
|
||||
# Background color of copied commit
|
||||
cherryPickedCommitBgColor:
|
||||
- "#51576d"
|
||||
# Color for file with unstaged changes
|
||||
unstagedChangesColor:
|
||||
- "#e78284"
|
||||
# Default text color
|
||||
defaultFgColor:
|
||||
- "#c6d0f5"
|
||||
authorColors:
|
||||
"Fabio Scotto di Santolo": "#babbf1"
|
||||
branchColors:
|
||||
develop: yellow
|
||||
feature: blue
|
||||
fix: red
|
||||
hotfix: red
|
||||
# Config relating to the commit length indicator
|
||||
commitLength:
|
||||
# If true, show an indicator of commit message length
|
||||
show: true
|
||||
# If true, show the '5 of 20' footer at the bottom of list views
|
||||
showListFooter: true
|
||||
# If true, display the files in the file views as a tree. If false, display the files as a flat list.
|
||||
# This can be toggled from within Lazygit with the '~' key, but that will not change the default.
|
||||
showFileTree: true
|
||||
# If true, show a random tip in the command log when Lazygit starts
|
||||
showRandomTip: true
|
||||
# If true, show the command log
|
||||
showCommandLog: true
|
||||
# If true, show the bottom line that contains keybinding info and useful buttons. If false, this line will be hidden except to display a loader for an in-progress action.
|
||||
showBottomLine: true
|
||||
# If true, show jump-to-window keybindings in window titles.
|
||||
showPanelJumps: true
|
||||
# Deprecated: use nerdFontsVersion instead
|
||||
showIcons: false
|
||||
# Nerd fonts version to use.
|
||||
# One of: '2' | '3' | empty string (default)
|
||||
# If empty, do not show icons.
|
||||
nerdFontsVersion: "3"
|
||||
# If true (default), file icons are shown in the file views. Only relevant if NerdFontsVersion is not empty.
|
||||
showFileIcons: true
|
||||
# Length of author name in (non-expanded) commits view. 2 means show initials only.
|
||||
commitAuthorShortLength: 2
|
||||
# Length of author name in expanded commits view. 2 means show initials only.
|
||||
commitAuthorLongLength: 17
|
||||
# Length of commit hash in commits view. 0 shows '*' if NF icons aren't on.
|
||||
commitHashLength: 8
|
||||
# If true, show commit hashes alongside branch names in the branches view.
|
||||
showBranchCommitHash: false
|
||||
# Whether to show the divergence from the base branch in the branches view.
|
||||
# One of: 'none' | 'onlyArrow' | 'arrowAndNumber'
|
||||
showDivergenceFromBaseBranch: none
|
||||
# Height of the command log view
|
||||
commandLogSize: 8
|
||||
# Whether to split the main window when viewing file changes.
|
||||
# One of: 'auto' | 'always'
|
||||
# If 'auto', only split the main window when a file has both staged and unstaged changes
|
||||
splitDiff: auto
|
||||
# Default size for focused window. Window size can be changed from within Lazygit with '+' and '_' (but this won't change the default).
|
||||
# One of: 'normal' (default) | 'half' | 'full'
|
||||
screenMode: normal
|
||||
# Window border style.
|
||||
# One of 'rounded' (default) | 'single' | 'double' | 'hidden'
|
||||
border: rounded
|
||||
# If true, show a seriously epic explosion animation when nuking the working tree.
|
||||
animateExplosion: true
|
||||
# Whether to stack UI components on top of each other.
|
||||
# One of 'auto' (default) | 'always' | 'never'
|
||||
portraitMode: auto
|
||||
# How things are filtered when typing '/'.
|
||||
# One of 'substring' (default) | 'fuzzy'
|
||||
filterMode: substring
|
||||
# Config relating to the spinner.
|
||||
spinner:
|
||||
# The frames of the spinner animation.
|
||||
frames:
|
||||
- "|"
|
||||
- /
|
||||
- "-"
|
||||
- \
|
||||
# The "speed" of the spinner in milliseconds.
|
||||
rate: 50
|
||||
# Status panel view.
|
||||
# One of 'dashboard' (default) | 'allBranchesLog'
|
||||
statusPanelView: dashboard
|
||||
# Config relating to git
|
||||
git:
|
||||
# See https://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Pagers.md
|
||||
paging:
|
||||
# Value of the --color arg in the git diff command. Some pagers want this to be set to 'always' and some want it set to 'never'
|
||||
colorArg: always
|
||||
# e.g.
|
||||
# diff-so-fancy
|
||||
# delta --dark --paging=never
|
||||
# ydiff -p cat -s --wrap --width={{columnWidth}}
|
||||
pager: "delta --paging=never"
|
||||
# If true, Lazygit will use whatever pager is specified in `$GIT_PAGER`, `$PAGER`, or your *git config*. If the pager ends with something like ` | less` we will strip that part out, because less doesn't play nice with our rendering approach. If the custom pager uses less under the hood, that will also break rendering (hence the `--paging=never` flag for the `delta` pager).
|
||||
useConfig: false
|
||||
# e.g. 'difft --color=always'
|
||||
externalDiffCommand: ""
|
||||
# Config relating to committing
|
||||
commit:
|
||||
# If true, pass '--signoff' flag when committing
|
||||
signOff: false
|
||||
# Automatic WYSIWYG wrapping of the commit message as you type
|
||||
autoWrapCommitMessage: true
|
||||
# If autoWrapCommitMessage is true, the width to wrap to
|
||||
autoWrapWidth: 72
|
||||
# Config relating to merging
|
||||
merging:
|
||||
# If true, run merges in a subprocess so that if a commit message is required, Lazygit will not hang
|
||||
# Only applicable to unix users.
|
||||
manualCommit: false
|
||||
# Extra args passed to `git merge`, e.g. --no-ff
|
||||
args: "--no-ff"
|
||||
# The commit message to use for a squash merge commit. Can contain "{{selectedRef}}" and "{{currentBranch}}" placeholders.
|
||||
squashMergeMessage: Squash merge {{selectedRef}} into {{currentBranch}}
|
||||
# list of branches that are considered 'main' branches, used when displaying commits
|
||||
mainBranches:
|
||||
- master
|
||||
- main
|
||||
# Prefix to use when skipping hooks. E.g. if set to 'WIP', then pre-commit hooks will be skipped when the commit message starts with 'WIP'
|
||||
skipHookPrefix: WIP
|
||||
# If true, periodically fetch from remote
|
||||
autoFetch: true
|
||||
# If true, periodically refresh files and submodules
|
||||
autoRefresh: true
|
||||
# If true, pass the --all arg to git fetch
|
||||
fetchAll: true
|
||||
# Command used when displaying the current branch git log in the main window
|
||||
branchLogCmd: git log --graph --color=always --abbrev-commit --decorate --date=relative --pretty=medium {{branchName}} --
|
||||
# If true, do not spawn a separate process when using GPG
|
||||
overrideGpg: false
|
||||
# If true, do not allow force pushes
|
||||
disableForcePushing: false
|
||||
# See https://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#predefined-commit-message-prefix
|
||||
commitPrefix:
|
||||
- # pattern to match on. E.g. for 'feature/AB-123' to match on the AB-123 use "^\\w+\\/(\\w+-\\w+).*"
|
||||
pattern: ""
|
||||
# Replace directive. E.g. for 'feature/AB-123' to start the commit message with 'AB-123 ' use "[$1] "
|
||||
replace: ""
|
||||
# See https://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#predefined-branch-name-prefix
|
||||
branchPrefix: ""
|
||||
# If true, parse emoji strings in commit messages e.g. render :rocket: as 🚀
|
||||
# (This should really be under 'gui', not 'git')
|
||||
parseEmoji: true
|
||||
# Config for showing the log in the commits view
|
||||
log:
|
||||
# One of: 'date-order' | 'author-date-order' | 'topo-order' | 'default'
|
||||
# 'topo-order' makes it easier to read the git log graph, but commits may not
|
||||
# appear chronologically. See https://git-scm.com/docs/
|
||||
#
|
||||
# Deprecated: Configure this with `Log menu -> Commit sort order` (<c-l> in the commits window by default).
|
||||
order: topo-order
|
||||
# This determines whether the git graph is rendered in the commits panel
|
||||
# One of 'always' | 'never' | 'when-maximised'
|
||||
#
|
||||
# Deprecated: Configure this with `Log menu -> Show git graph` (<c-l> in the commits window by default).
|
||||
showGraph: always
|
||||
# displays the whole git graph by default in the commits view (equivalent to passing the `--all` argument to `git log`)
|
||||
showWholeGraph: false
|
||||
# When copying commit hashes to the clipboard, truncate them to this
|
||||
# length. Set to 40 to disable truncation.
|
||||
truncateCopiedCommitHashesTo: 12
|
||||
allBranchesLogCmds:
|
||||
- git log --graph --all --color=always --abbrev-commit --decorate --date=relative --pretty=medium
|
||||
# Periodic update checks
|
||||
update:
|
||||
# One of: 'prompt' (default) | 'background' | 'never'
|
||||
method: prompt
|
||||
# Period in days between update checks
|
||||
days: 14
|
||||
# Background refreshes
|
||||
refresher:
|
||||
# File/submodule refresh interval in seconds.
|
||||
# Auto-refresh can be disabled via option 'git.autoRefresh'.
|
||||
refreshInterval: 10
|
||||
# Re-fetch interval in seconds.
|
||||
# Auto-fetch can be disabled via option 'git.autoFetch'.
|
||||
fetchInterval: 60
|
||||
# If true, show a confirmation popup before quitting Lazygit
|
||||
confirmOnQuit: false
|
||||
# If true, exit Lazygit when the user presses escape in a context where there is nothing to cancel/close
|
||||
quitOnTopLevelReturn: false
|
||||
# Config relating to things outside of Lazygit like how files are opened, copying to clipboard, etc
|
||||
os:
|
||||
# Command for editing a file. Should contain "{{filename}}".
|
||||
edit: ""
|
||||
# Command for editing a file at a given line number. Should contain
|
||||
# "{{filename}}", and may optionally contain "{{line}}".
|
||||
editAtLine: ""
|
||||
# Same as EditAtLine, except that the command needs to wait until the
|
||||
# window is closed.
|
||||
editAtLineAndWait: ""
|
||||
# For opening a directory in an editor
|
||||
openDirInEditor: ""
|
||||
# A built-in preset that sets all of the above settings. Supported presets
|
||||
# are defined in the getPreset function in editor_presets.go.
|
||||
editPreset: ""
|
||||
# Command for opening a file, as if the file is double-clicked. Should
|
||||
# contain "{{filename}}", but doesn't support "{{line}}".
|
||||
open: ""
|
||||
# Command for opening a link. Should contain "{{link}}".
|
||||
openLink: ""
|
||||
# EditCommand is the command for editing a file.
|
||||
# Deprecated: use Edit instead. Note that semantics are different:
|
||||
# EditCommand is just the command itself, whereas Edit contains a
|
||||
# "{{filename}}" variable.
|
||||
editCommand: ""
|
||||
# EditCommandTemplate is the command template for editing a file
|
||||
# Deprecated: use EditAtLine instead.
|
||||
editCommandTemplate: ""
|
||||
# OpenCommand is the command for opening a file
|
||||
# Deprecated: use Open instead.
|
||||
openCommand: ""
|
||||
# OpenLinkCommand is the command for opening a link
|
||||
# Deprecated: use OpenLink instead.
|
||||
openLinkCommand: ""
|
||||
# CopyToClipboardCmd is the command for copying to clipboard.
|
||||
# See https://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#custom-command-for-copying-to-and-pasting-from-clipboard
|
||||
copyToClipboardCmd: ""
|
||||
# ReadFromClipboardCmd is the command for reading the clipboard.
|
||||
# See https://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#custom-command-for-copying-to-and-pasting-from-clipboard
|
||||
readFromClipboardCmd: ""
|
||||
# If true, don't display introductory popups upon opening Lazygit.
|
||||
disableStartupPopups: true
|
||||
# What to do when opening Lazygit outside of a git repo.
|
||||
# - 'prompt': (default) ask whether to initialize a new repo or open in the most recent repo
|
||||
# - 'create': initialize a new repo
|
||||
# - 'skip': open most recent repo
|
||||
# - 'quit': exit Lazygit
|
||||
notARepository: prompt
|
||||
# If true, display a confirmation when subprocess terminates. This allows you to view the output of the subprocess before returning to Lazygit.
|
||||
promptToReturnFromSubprocess: true
|
||||
# Keybindings
|
||||
keybinding:
|
||||
universal:
|
||||
quit: q
|
||||
quit-alt1: <c-c>
|
||||
return: <esc>
|
||||
quitWithoutChangingDirectory: Q
|
||||
togglePanel: <tab>
|
||||
prevItem: <up>
|
||||
nextItem: <down>
|
||||
prevItem-alt: k
|
||||
nextItem-alt: j
|
||||
prevPage: ","
|
||||
nextPage: .
|
||||
scrollLeft: H
|
||||
scrollRight: L
|
||||
gotoTop: <
|
||||
gotoBottom: ">"
|
||||
toggleRangeSelect: v
|
||||
rangeSelectDown: <s-down>
|
||||
rangeSelectUp: <s-up>
|
||||
prevBlock: <left>
|
||||
nextBlock: <right>
|
||||
prevBlock-alt: h
|
||||
nextBlock-alt: l
|
||||
nextBlock-alt2: <tab>
|
||||
prevBlock-alt2: <backtab>
|
||||
jumpToBlock:
|
||||
- "1"
|
||||
- "2"
|
||||
- "3"
|
||||
- "4"
|
||||
- "5"
|
||||
nextMatch: "n"
|
||||
prevMatch: "N"
|
||||
startSearch: /
|
||||
optionMenu: <disabled>
|
||||
optionMenu-alt1: "?"
|
||||
select: <space>
|
||||
goInto: <enter>
|
||||
confirm: <enter>
|
||||
confirmInEditor: <a-enter>
|
||||
remove: d
|
||||
new: "n"
|
||||
edit: e
|
||||
openFile: o
|
||||
scrollUpMain: <pgup>
|
||||
scrollDownMain: <pgdown>
|
||||
scrollUpMain-alt1: K
|
||||
scrollDownMain-alt1: J
|
||||
scrollUpMain-alt2: <c-u>
|
||||
scrollDownMain-alt2: <c-d>
|
||||
executeShellCommand: ":"
|
||||
createRebaseOptionsMenu: m
|
||||
# 'Files' appended for legacy reasons
|
||||
pushFiles: P
|
||||
# 'Files' appended for legacy reasons
|
||||
pullFiles: p
|
||||
refresh: R
|
||||
createPatchOptionsMenu: <c-p>
|
||||
nextTab: "]"
|
||||
prevTab: "["
|
||||
nextScreenMode: +
|
||||
prevScreenMode: _
|
||||
undo: z
|
||||
redo: <c-z>
|
||||
filteringMenu: <c-s>
|
||||
diffingMenu: W
|
||||
diffingMenu-alt: <c-e>
|
||||
copyToClipboard: <c-o>
|
||||
openRecentRepos: <c-r>
|
||||
submitEditorText: <enter>
|
||||
extrasMenu: "@"
|
||||
toggleWhitespaceInDiffView: <c-w>
|
||||
increaseContextInDiffView: "}"
|
||||
decreaseContextInDiffView: "{"
|
||||
increaseRenameSimilarityThreshold: )
|
||||
decreaseRenameSimilarityThreshold: (
|
||||
openDiffTool: <c-t>
|
||||
status:
|
||||
checkForUpdate: u
|
||||
recentRepos: <enter>
|
||||
allBranchesLogGraph: a
|
||||
files:
|
||||
commitChanges: c
|
||||
commitChangesWithoutHook: w
|
||||
amendLastCommit: A
|
||||
commitChangesWithEditor: C
|
||||
findBaseCommitForFixup: <c-f>
|
||||
confirmDiscard: x
|
||||
ignoreFile: i
|
||||
refreshFiles: r
|
||||
stashAllChanges: s
|
||||
viewStashOptions: S
|
||||
toggleStagedAll: a
|
||||
viewResetOptions: D
|
||||
fetch: f
|
||||
toggleTreeView: "`"
|
||||
openMergeTool: M
|
||||
openStatusFilter: <c-b>
|
||||
copyFileInfoToClipboard: "y"
|
||||
branches:
|
||||
createPullRequest: o
|
||||
viewPullRequestOptions: O
|
||||
copyPullRequestURL: <c-y>
|
||||
checkoutBranchByName: c
|
||||
forceCheckoutBranch: F
|
||||
rebaseBranch: r
|
||||
renameBranch: R
|
||||
mergeIntoCurrentBranch: M
|
||||
viewGitFlowOptions: i
|
||||
fastForward: f
|
||||
createTag: T
|
||||
pushTag: P
|
||||
setUpstream: u
|
||||
fetchRemote: f
|
||||
sortOrder: s
|
||||
worktrees:
|
||||
viewWorktreeOptions: w
|
||||
commits:
|
||||
squashDown: s
|
||||
renameCommit: r
|
||||
renameCommitWithEditor: R
|
||||
viewResetOptions: g
|
||||
markCommitAsFixup: f
|
||||
createFixupCommit: F
|
||||
squashAboveCommits: S
|
||||
moveDownCommit: <c-j>
|
||||
moveUpCommit: <c-k>
|
||||
amendToCommit: A
|
||||
resetCommitAuthor: a
|
||||
pickCommit: p
|
||||
revertCommit: t
|
||||
cherryPickCopy: C
|
||||
pasteCommits: V
|
||||
markCommitAsBaseForRebase: B
|
||||
tagCommit: T
|
||||
checkoutCommit: <space>
|
||||
resetCherryPick: <c-R>
|
||||
copyCommitAttributeToClipboard: "y"
|
||||
openLogMenu: <c-l>
|
||||
openInBrowser: o
|
||||
viewBisectOptions: b
|
||||
startInteractiveRebase: i
|
||||
amendAttribute:
|
||||
resetAuthor: a
|
||||
setAuthor: A
|
||||
addCoAuthor: c
|
||||
stash:
|
||||
popStash: g
|
||||
renameStash: r
|
||||
commitFiles:
|
||||
checkoutCommitFile: c
|
||||
main:
|
||||
toggleSelectHunk: a
|
||||
pickBothHunks: b
|
||||
editSelectHunk: E
|
||||
submodules:
|
||||
init: i
|
||||
update: u
|
||||
bulkMenu: b
|
||||
commitMessage:
|
||||
commitMenu: <c-o>
|
||||
8
lazyvim/.config/nvim/.gitignore
vendored
8
lazyvim/.config/nvim/.gitignore
vendored
@@ -1,8 +0,0 @@
|
||||
tt.*
|
||||
.tests
|
||||
doc/tags
|
||||
debug
|
||||
.repro
|
||||
foo.*
|
||||
*.log
|
||||
data
|
||||
@@ -1,15 +0,0 @@
|
||||
{
|
||||
"neodev": {
|
||||
"library": {
|
||||
"enabled": true,
|
||||
"plugins": true
|
||||
}
|
||||
},
|
||||
"neoconf": {
|
||||
"plugins": {
|
||||
"lua_ls": {
|
||||
"enabled": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,201 +0,0 @@
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
@@ -1,3 +0,0 @@
|
||||
-- bootstrap lazy.nvim, LazyVim and your plugins
|
||||
require("config.lazy")
|
||||
require("user.utils")
|
||||
@@ -1,60 +0,0 @@
|
||||
{
|
||||
"LazyVim": { "branch": "main", "commit": "25abbf546d564dc484cf903804661ba12de45507" },
|
||||
"SchemaStore.nvim": { "branch": "main", "commit": "8e74c08998fd786239caba373344f4e4601e21fe" },
|
||||
"alpha-nvim": { "branch": "main", "commit": "2b3cbcdd980cae1e022409289245053f62fb50f6" },
|
||||
"blink.cmp": { "branch": "main", "commit": "bae4bae0eedd1fa55f34b685862e94a222d5c6f8" },
|
||||
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
|
||||
"catppuccin": { "branch": "main", "commit": "30fa4d122d9b22ad8b2e0ab1b533c8c26c4dde86" },
|
||||
"clangd_extensions.nvim": { "branch": "main", "commit": "b67cc417d9020fb4b83d46662351b4d16894905e" },
|
||||
"conform.nvim": { "branch": "master", "commit": "b4aab989db276993ea5dcb78872be494ce546521" },
|
||||
"dial.nvim": { "branch": "master", "commit": "7c8baea9f058c6ab25381b731baba7f7d8a34cef" },
|
||||
"flash.nvim": { "branch": "main", "commit": "3c942666f115e2811e959eabbdd361a025db8b63" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
|
||||
"fzf-lua": { "branch": "main", "commit": "c045825f99a2618ee7453d46dd6e84a61ee53a56" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "6e3c66548035e50db7bd8e360a29aec6620c3641" },
|
||||
"grug-far.nvim": { "branch": "main", "commit": "385d1949dc21d0c39e7a74b4f4a25da18817bc86" },
|
||||
"hardtime.nvim": { "branch": "main", "commit": "6d7664d5bdfaea44c5f50b29f5239fab7b00c273" },
|
||||
"harpoon": { "branch": "harpoon2", "commit": "ed1f853847ffd04b2b61c314865665e1dadf22c7" },
|
||||
"hydra.nvim": { "branch": "main", "commit": "8c4a9f621ec7cdc30411a1f3b6d5eebb12b469dc" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
|
||||
"lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "b8c23159c0161f4b89196f74ee3a6d02cdc3a955" },
|
||||
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" },
|
||||
"mason-nvim-dap.nvim": { "branch": "main", "commit": "86389a3dd687cfaa647b6f44731e492970034baa" },
|
||||
"mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" },
|
||||
"mini.ai": { "branch": "main", "commit": "45a26d032d8703f280c69c2ed9fb4e1bfc8f24f9" },
|
||||
"mini.icons": { "branch": "main", "commit": "f9a177c11daa7829389b7b6eaaec8b8a5c47052d" },
|
||||
"mini.nvim": { "branch": "main", "commit": "ddb70da6ec6aa896cfde87350d1e8dffb57ddef0" },
|
||||
"mini.pairs": { "branch": "main", "commit": "6e1cc569130f25b2c6fa16d8b21b31ddb1420a4a" },
|
||||
"multicursors.nvim": { "branch": "main", "commit": "72225ea9e4443c3f4b9df91d0193e07c4ee8d382" },
|
||||
"neo-tree.nvim": { "branch": "main", "commit": "46fa0c22ca39e05fe15744102d21feb07fe9a94a" },
|
||||
"noice.nvim": { "branch": "main", "commit": "0427460c2d7f673ad60eb02b35f5e9926cf67c59" },
|
||||
"none-ls.nvim": { "branch": "main", "commit": "53ec77181d96494b9dc9457110dd62dc623cc78d" },
|
||||
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
|
||||
"nvim-dap": { "branch": "master", "commit": "7891b01beedc37cef4eaf2e92563bd0a5b6e9c58" },
|
||||
"nvim-dap-go": { "branch": "main", "commit": "b4421153ead5d726603b02743ea40cf26a51ed5f" },
|
||||
"nvim-dap-python": { "branch": "master", "commit": "030385d03363988370adaa5cf21fa465daddb088" },
|
||||
"nvim-dap-ui": { "branch": "master", "commit": "cf91d5e2d07c72903d052f5207511bf7ecdb7122" },
|
||||
"nvim-dap-virtual-text": { "branch": "master", "commit": "fbdb48c2ed45f4a8293d0d483f7730d24467ccb6" },
|
||||
"nvim-lint": { "branch": "master", "commit": "f126af5345c7472e9a0cdbe1d1a29209be72c4c4" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "408cf07b97535825cca6f1afa908d98348712ba6" },
|
||||
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
|
||||
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
|
||||
"nvim-treesitter-textobjects": { "branch": "master", "commit": "71385f191ec06ffc60e80e6b0c9a9d5daed4824c" },
|
||||
"nvim-ts-autotag": { "branch": "main", "commit": "a1d526af391f6aebb25a8795cbc05351ed3620b5" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "f66cdfef5e84112045b9ebc3119fee9bddb3c687" },
|
||||
"persistence.nvim": { "branch": "main", "commit": "166a79a55bfa7a4db3e26fc031b4d92af71d0b51" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
|
||||
"refactoring.nvim": { "branch": "master", "commit": "74b608dfee827c2372250519d433cc21cb083407" },
|
||||
"render-markdown.nvim": { "branch": "main", "commit": "e76eb2e4262f0f0a1a7bd7a454dd7d44f1299afd" },
|
||||
"snacks.nvim": { "branch": "main", "commit": "bc0630e43be5699bb94dadc302c0d21615421d93" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
|
||||
"todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" },
|
||||
"tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" },
|
||||
"trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" },
|
||||
"ts-comments.nvim": { "branch": "main", "commit": "1bd9d0ba1d8b336c3db50692ffd0955fe1bb9f0c" },
|
||||
"venv-selector.nvim": { "branch": "regexp", "commit": "d2326e7433fdeb10f7d0d1237c18b91b353f9f8b" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" },
|
||||
"yazi.nvim": { "branch": "main", "commit": "8ce0abb50c30fdc486c465ddfab28510346e6bd7" }
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
{
|
||||
"extras": [
|
||||
"lazyvim.plugins.extras.dap.core",
|
||||
"lazyvim.plugins.extras.editor.dial",
|
||||
"lazyvim.plugins.extras.editor.fzf",
|
||||
"lazyvim.plugins.extras.editor.refactoring",
|
||||
"lazyvim.plugins.extras.editor.telescope",
|
||||
"lazyvim.plugins.extras.lang.clangd",
|
||||
"lazyvim.plugins.extras.lang.git",
|
||||
"lazyvim.plugins.extras.lang.go",
|
||||
"lazyvim.plugins.extras.lang.json",
|
||||
"lazyvim.plugins.extras.lang.markdown",
|
||||
"lazyvim.plugins.extras.lang.python",
|
||||
"lazyvim.plugins.extras.lang.toml",
|
||||
"lazyvim.plugins.extras.lang.yaml",
|
||||
"lazyvim.plugins.extras.lang.zig",
|
||||
"lazyvim.plugins.extras.lsp.none-ls",
|
||||
"lazyvim.plugins.extras.ui.alpha"
|
||||
],
|
||||
"install_version": 7,
|
||||
"news": {
|
||||
"NEWS.md": "10960"
|
||||
},
|
||||
"version": 8
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
-- Autocmds are automatically loaded on the VeryLazy event
|
||||
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
|
||||
-- Add any additional autocmds here
|
||||
|
||||
local augroup = vim.api.nvim_create_augroup
|
||||
local autocmd = vim.api.nvim_create_autocmd
|
||||
local view_group = augroup("auto_view", { clear = true })
|
||||
|
||||
autocmd({ "BufWinLeave", "BufWritePost", "WinLeave" }, {
|
||||
desc = "Save view with mkview for real files",
|
||||
group = view_group,
|
||||
callback = function(args)
|
||||
if vim.b[args.buf].view_activated then
|
||||
vim.cmd.mkview({ mods = { emsg_silent = true } })
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
autocmd("BufWinEnter", {
|
||||
desc = "Try to load file view if available and enable view saving for real files",
|
||||
group = view_group,
|
||||
callback = function(args)
|
||||
if not vim.b[args.buf].view_activated then
|
||||
local filetype = vim.api.nvim_get_option_value("filetype", { buf = args.buf })
|
||||
local buftype = vim.api.nvim_get_option_value("buftype", { buf = args.buf })
|
||||
local ignore_filetypes = { "gitcommit", "gitrebase", "svg", "hgcommit" }
|
||||
if buftype == "" and filetype and filetype ~= "" and not vim.tbl_contains(ignore_filetypes, filetype) then
|
||||
vim.b[args.buf].view_activated = true
|
||||
vim.cmd.loadview({ mods = { emsg_silent = true } })
|
||||
end
|
||||
end
|
||||
end,
|
||||
})
|
||||
@@ -1,42 +0,0 @@
|
||||
-- Keymaps are automatically loaded on the VeryLazy event
|
||||
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
|
||||
-- Add any additional keymaps here
|
||||
|
||||
local map = vim.keymap.set
|
||||
|
||||
-- Buffer management
|
||||
map("n", "<leader>bn", ":bnext<CR>", { noremap = true, silent = true, desc = "Next buffer" })
|
||||
map("n", "<leader>bp", ":bprevious<CR>", { noremap = true, silent = true, desc = "Previous buffer" })
|
||||
map("n", "<leader>bd", ":bdelete<CR>", { noremap = true, silent = true, desc = "Delete buffer" })
|
||||
|
||||
-- Copy to system clipboard (if not already mapped)
|
||||
map({ "n", "v" }, "<leader>y", [["+y]], { noremap = true, silent = true, desc = "Copy to system clipboard" })
|
||||
|
||||
-- Paste from system clipboard
|
||||
map("n", "<leader>p", [["+p]], { noremap = true, silent = true, desc = "Paste from system clipboard" })
|
||||
|
||||
vim.keymap.set("n", "<leader>cc", function()
|
||||
local file1 = vim.fn.expand("%")
|
||||
|
||||
local project_root = vim.fn.systemlist("git rev-parse --show-toplevel")[1]
|
||||
if project_root == "" then
|
||||
project_root = vim.fn.getcwd()
|
||||
end
|
||||
|
||||
require("telescope.builtin").find_files({
|
||||
prompt_title = "Compare with...",
|
||||
cwd = project_root,
|
||||
hidden = true,
|
||||
follow = true,
|
||||
attach_mappings = function(_, map)
|
||||
map("i", "<CR>", function(prompt_bufnr)
|
||||
local actions = require("telescope.actions")
|
||||
local action_state = require("telescope.actions.state")
|
||||
local file2 = action_state.get_selected_entry().path
|
||||
actions.close(prompt_bufnr)
|
||||
require("user.utils").meld_diff(file1, file2)
|
||||
end)
|
||||
return true
|
||||
end,
|
||||
})
|
||||
end, { desc = "Compare with" })
|
||||
@@ -1,170 +0,0 @@
|
||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
|
||||
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
|
||||
if vim.v.shell_error ~= 0 then
|
||||
vim.api.nvim_echo({
|
||||
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
|
||||
{ out, "WarningMsg" },
|
||||
{ "\nPress any key to exit..." },
|
||||
}, true, {})
|
||||
vim.fn.getchar()
|
||||
os.exit(1)
|
||||
end
|
||||
end
|
||||
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
-- Start LazyVim plugins
|
||||
require("lazy").setup({
|
||||
spec = {
|
||||
-- add LazyVim and import its plugins
|
||||
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
|
||||
-- import/override with your plugins
|
||||
{ import = "plugins" },
|
||||
},
|
||||
defaults = {
|
||||
-- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
|
||||
-- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
|
||||
lazy = false,
|
||||
-- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
|
||||
-- have outdated releases, which may break your Neovim install.
|
||||
version = false, -- always use the latest git commit
|
||||
-- version = "*", -- try installing the latest stable version for plugins that support semver
|
||||
},
|
||||
checker = { enabled = true }, -- automatically check for plugin updates
|
||||
performance = {
|
||||
rtp = {
|
||||
-- disable some rtp plugins
|
||||
disabled_plugins = {
|
||||
"gzip",
|
||||
"matchit",
|
||||
"matchparen",
|
||||
"netrwPlugin",
|
||||
"tarPlugin",
|
||||
"tohtml",
|
||||
"tutor",
|
||||
"zipPlugin",
|
||||
},
|
||||
},
|
||||
},
|
||||
cache = true,
|
||||
})
|
||||
|
||||
-- Configure status bar
|
||||
require("config.statusline")
|
||||
|
||||
-- Configure Markdown rendering rules
|
||||
require("render-markdown").setup({
|
||||
heading = { position = "inline" },
|
||||
quote = { repeat_linebreak = true },
|
||||
win_options = {
|
||||
showbreak = {
|
||||
default = "",
|
||||
rendered = " ",
|
||||
},
|
||||
breakindent = {
|
||||
default = false,
|
||||
rendered = true,
|
||||
},
|
||||
breakindentopt = {
|
||||
default = "",
|
||||
rendered = "",
|
||||
},
|
||||
},
|
||||
checkbox = {
|
||||
unchecked = { icon = "✘ " },
|
||||
checked = { icon = "✔ " },
|
||||
},
|
||||
code = {
|
||||
position = "right",
|
||||
width = "block",
|
||||
right_pad = 10,
|
||||
},
|
||||
latex = {
|
||||
enabled = false,
|
||||
},
|
||||
link = {
|
||||
custom = {
|
||||
c = {
|
||||
pattern = "%.[ch]$",
|
||||
icon = " ",
|
||||
},
|
||||
golang = {
|
||||
pattern = "%.go$",
|
||||
icon = " ",
|
||||
},
|
||||
python = {
|
||||
pattern = "%.py$",
|
||||
icon = " ",
|
||||
},
|
||||
lua = {
|
||||
pattern = "%.lua$",
|
||||
icon = " ",
|
||||
},
|
||||
-- shell = {
|
||||
-- pattern = "%.[sh|zsh]$",
|
||||
-- icon = " ",
|
||||
-- },
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
-- Configure TreeSitter syntax parsers
|
||||
require("nvim-treesitter.configs").setup({
|
||||
-- A list of parser names, or "all" (the listed parsers MUST always be installed)
|
||||
ensure_installed = {
|
||||
"c",
|
||||
"lua",
|
||||
"bash",
|
||||
"go",
|
||||
"gomod",
|
||||
"gowork",
|
||||
"gosum",
|
||||
"json",
|
||||
"markdown",
|
||||
"markdown_inline",
|
||||
"python",
|
||||
"zig",
|
||||
},
|
||||
|
||||
-- Install parsers synchronously (only applied to `ensure_installed`)
|
||||
sync_install = false,
|
||||
|
||||
-- Automatically install missing parsers when entering buffer
|
||||
-- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally
|
||||
auto_install = true,
|
||||
|
||||
-- List of parsers to ignore installing (or "all")
|
||||
ignore_install = { "javascript" },
|
||||
|
||||
---- If you need to change the installation directory of the parsers (see -> Advanced Setup)
|
||||
-- parser_install_dir = "/some/path/to/store/parsers", -- Remember to run vim.opt.runtimepath:append("/some/path/to/store/parsers")!
|
||||
|
||||
highlight = {
|
||||
enable = true,
|
||||
|
||||
-- NOTE: these are the names of the parsers and not the filetype. (for example if you want to
|
||||
-- disable highlighting for the `tex` filetype, you need to include `latex` in this list as this is
|
||||
-- the name of the parser)
|
||||
-- list of language that will be disabled
|
||||
disable = {},
|
||||
-- Or use a function for more flexibility, e.g. to disable slow treesitter highlight for large files
|
||||
disable = function(lang, buf)
|
||||
local max_filesize = 100 * 1024 -- 100 KB
|
||||
local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf))
|
||||
if ok and stats and stats.size > max_filesize then
|
||||
return true
|
||||
end
|
||||
end,
|
||||
|
||||
-- Setting this to true will run `:h syntax` and tree-sitter at the same time.
|
||||
-- Set this to `true` if you depend on 'syntax' being enabled (like for indentation).
|
||||
-- Using this option may slow down your editor, and you may see some duplicate highlights.
|
||||
-- Instead of true it can also be a list of languages
|
||||
additional_vim_regex_highlighting = false,
|
||||
},
|
||||
})
|
||||
|
||||
-- Configure Mini.AI for textobjects command
|
||||
require("mini.ai").setup()
|
||||
@@ -1,57 +0,0 @@
|
||||
-- Options are automatically loaded before lazy.nvim startup
|
||||
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
|
||||
-- Add any additional options here
|
||||
|
||||
local opt = vim.opt
|
||||
|
||||
-- Encoding
|
||||
opt.encoding = "utf-8"
|
||||
opt.fileencoding = "utf-8"
|
||||
|
||||
-- Line numbers
|
||||
opt.number = true
|
||||
opt.relativenumber = true
|
||||
|
||||
-- Enable mouse in all modes
|
||||
opt.mouse = "a"
|
||||
|
||||
-- Better searching
|
||||
opt.ignorecase = true
|
||||
opt.smartcase = true
|
||||
|
||||
-- Highlight current line
|
||||
opt.cursorline = true
|
||||
opt.cursorlineopt = "number"
|
||||
|
||||
-- Enable true color support
|
||||
opt.termguicolors = true
|
||||
|
||||
-- Enable system clipboard
|
||||
opt.clipboard = "unnamedplus"
|
||||
|
||||
-- Indentation
|
||||
-- opt.softtabstop = 8
|
||||
-- opt.shiftwidth = 8
|
||||
-- opt.tabstop = 8
|
||||
opt.expandtab = true
|
||||
opt.smartindent = true
|
||||
|
||||
-- Split behavior
|
||||
opt.splitright = true
|
||||
opt.splitbelow = true
|
||||
|
||||
-- Enable undo file to persist undo history
|
||||
opt.undofile = true
|
||||
|
||||
-- Set upbar similar to statusline (optional)
|
||||
opt.statusline = "%f %m %r %=%-14.(%l,%c%V%) %P"
|
||||
|
||||
-- Persistent signcolumn to avoid text shifting
|
||||
opt.signcolumn = "yes"
|
||||
|
||||
-- Show file name and modified flag in the window bar
|
||||
opt.winbar = "%=%m %f"
|
||||
|
||||
-- Backup files
|
||||
opt.swapfile = false
|
||||
opt.backup = false
|
||||
@@ -1,219 +0,0 @@
|
||||
-- Eviline config for lualine
|
||||
-- Author: shadmansaleh
|
||||
-- Credit: glepnir
|
||||
local lualine = require("lualine")
|
||||
|
||||
-- Color table for highlights
|
||||
-- stylua: ignore
|
||||
local colors = {
|
||||
bg = '#202328',
|
||||
fg = '#bbc2cf',
|
||||
yellow = '#ECBE7B',
|
||||
cyan = '#008080',
|
||||
darkblue = '#081633',
|
||||
green = '#98be65',
|
||||
orange = '#FF8800',
|
||||
violet = '#a9a1e1',
|
||||
magenta = '#c678dd',
|
||||
blue = '#51afef',
|
||||
red = '#ec5f67',
|
||||
}
|
||||
|
||||
local conditions = {
|
||||
buffer_not_empty = function()
|
||||
return vim.fn.empty(vim.fn.expand("%:t")) ~= 1
|
||||
end,
|
||||
hide_in_width = function()
|
||||
return vim.fn.winwidth(0) > 80
|
||||
end,
|
||||
check_git_workspace = function()
|
||||
local filepath = vim.fn.expand("%:p:h")
|
||||
local gitdir = vim.fn.finddir(".git", filepath .. ";")
|
||||
return gitdir and #gitdir > 0 and #gitdir < #filepath
|
||||
end,
|
||||
}
|
||||
|
||||
-- Config
|
||||
local config = {
|
||||
options = {
|
||||
-- Disable sections and component separators
|
||||
component_separators = "",
|
||||
section_separators = "",
|
||||
theme = "catppuccin",
|
||||
},
|
||||
sections = {
|
||||
-- these are to remove the defaults
|
||||
lualine_a = {},
|
||||
lualine_b = {},
|
||||
lualine_y = {},
|
||||
lualine_z = {},
|
||||
-- These will be filled later
|
||||
lualine_c = {},
|
||||
lualine_x = {},
|
||||
},
|
||||
inactive_sections = {
|
||||
-- these are to remove the defaults
|
||||
lualine_a = {},
|
||||
lualine_b = {},
|
||||
lualine_y = {},
|
||||
lualine_z = {},
|
||||
lualine_c = {},
|
||||
lualine_x = {},
|
||||
},
|
||||
}
|
||||
|
||||
-- Inserts a component in lualine_c at left section
|
||||
local function ins_left(component)
|
||||
table.insert(config.sections.lualine_c, component)
|
||||
end
|
||||
|
||||
-- Inserts a component in lualine_x at right section
|
||||
local function ins_right(component)
|
||||
table.insert(config.sections.lualine_x, component)
|
||||
end
|
||||
|
||||
ins_left({
|
||||
function()
|
||||
return "▊"
|
||||
end,
|
||||
color = { fg = colors.blue }, -- Sets highlighting of component
|
||||
padding = { left = 0, right = 1 }, -- We don't need space before this
|
||||
})
|
||||
|
||||
-- -- Function to get the current mode indicator as a single character
|
||||
local function mode()
|
||||
-- Map of modes to their respective shorthand indicators
|
||||
local mode_map = {
|
||||
n = "NORMAL", -- Normal mode
|
||||
v = "VISUAL", -- Visual mode
|
||||
[""] = "VISUAL BLOCK", -- Visual block mode
|
||||
V = "VISUAL LINE", -- Visual line mode
|
||||
c = "COMMAND", -- Command-line mode
|
||||
no = "N-INSERT", -- NInsert mode
|
||||
s = "SELECT", -- Select mode
|
||||
S = "SELECT-LINE", -- Select line mode
|
||||
ic = "INSERT", -- Insert mode (completion)
|
||||
R = "REPLACE", -- Replace mode
|
||||
Rv = "VISUAL REPLACE", -- Virtual Replace mode
|
||||
cv = "COMMAND-LINE", -- Command-line mode
|
||||
ce = "C", -- Ex mode
|
||||
r = "R", -- Prompt mode
|
||||
rm = "M", -- More mode
|
||||
["r?"] = "?", -- Confirm mode
|
||||
["!"] = "!", -- Shell mode
|
||||
t = "TERMINAL", -- Terminal mode
|
||||
}
|
||||
-- Return the mode shorthand or [UNKNOWN] if no match
|
||||
return mode_map[vim.fn.mode()] or "[UNKNOWN]"
|
||||
end
|
||||
|
||||
ins_left({
|
||||
-- mode component
|
||||
mode,
|
||||
color = function()
|
||||
-- auto change color according to neovims mode
|
||||
local mode_color = {
|
||||
n = colors.red,
|
||||
i = colors.green,
|
||||
v = colors.blue,
|
||||
[""] = colors.blue,
|
||||
V = colors.blue,
|
||||
c = colors.magenta,
|
||||
no = colors.red,
|
||||
s = colors.orange,
|
||||
S = colors.orange,
|
||||
[""] = colors.orange,
|
||||
ic = colors.yellow,
|
||||
R = colors.violet,
|
||||
Rv = colors.violet,
|
||||
cv = colors.red,
|
||||
ce = colors.red,
|
||||
r = colors.cyan,
|
||||
rm = colors.cyan,
|
||||
["r?"] = colors.cyan,
|
||||
["!"] = colors.red,
|
||||
t = colors.red,
|
||||
}
|
||||
return { fg = mode_color[vim.fn.mode()] }
|
||||
end,
|
||||
padding = { right = 1 },
|
||||
})
|
||||
|
||||
ins_left({
|
||||
-- filesize component
|
||||
"filesize",
|
||||
cond = conditions.buffer_not_empty,
|
||||
})
|
||||
|
||||
ins_left({
|
||||
"filename",
|
||||
cond = conditions.buffer_not_empty,
|
||||
color = { fg = colors.magenta, gui = "bold" },
|
||||
})
|
||||
|
||||
ins_left({ "location" })
|
||||
|
||||
ins_left({ "progress", color = { fg = colors.fg, gui = "bold" } })
|
||||
|
||||
ins_left({
|
||||
"diagnostics",
|
||||
sources = { "nvim_diagnostic" },
|
||||
symbols = { error = " ", warn = " ", info = " " },
|
||||
diagnostics_color = {
|
||||
error = { fg = colors.red },
|
||||
warn = { fg = colors.yellow },
|
||||
info = { fg = colors.cyan },
|
||||
},
|
||||
})
|
||||
|
||||
-- Insert mid section. You can make any number of sections in neovim :)
|
||||
-- for lualine it's any number greater then 2
|
||||
ins_left({
|
||||
function()
|
||||
return "%="
|
||||
end,
|
||||
})
|
||||
|
||||
-- Add components to right sections
|
||||
ins_right({
|
||||
"o:encoding", -- option component same as &encoding in viml
|
||||
fmt = string.upper, -- I'm not sure why it's upper case either ;)
|
||||
cond = conditions.hide_in_width,
|
||||
color = { fg = colors.green, gui = "bold" },
|
||||
})
|
||||
|
||||
ins_right({
|
||||
"fileformat",
|
||||
fmt = string.upper,
|
||||
icons_enabled = false, -- I think icons are cool but Eviline doesn't have them. sigh
|
||||
color = { fg = colors.green, gui = "bold" },
|
||||
})
|
||||
|
||||
ins_right({
|
||||
"branch",
|
||||
icon = "",
|
||||
color = { fg = colors.violet, gui = "bold" },
|
||||
})
|
||||
|
||||
ins_right({
|
||||
"diff",
|
||||
-- Is it me or the symbol for modified us really weird
|
||||
symbols = { added = " ", modified = " ", removed = " " },
|
||||
diff_color = {
|
||||
added = { fg = colors.green },
|
||||
modified = { fg = colors.orange },
|
||||
removed = { fg = colors.red },
|
||||
},
|
||||
cond = conditions.hide_in_width,
|
||||
})
|
||||
|
||||
ins_right({
|
||||
function()
|
||||
return "▊"
|
||||
end,
|
||||
color = { fg = colors.blue },
|
||||
padding = { left = 1 },
|
||||
})
|
||||
|
||||
-- Now don't forget to initialize lualine
|
||||
lualine.setup(config)
|
||||
@@ -1,16 +0,0 @@
|
||||
return {
|
||||
"goolord/alpha-nvim",
|
||||
opts = function(_, opts)
|
||||
local logo = [[
|
||||
███╗ ██╗███████╗ ██████╗ ██╗ ██╗██╗███╗ ███╗
|
||||
████╗ ██║██╔════╝██╔═══██╗██║ ██║██║████╗ ████║
|
||||
██╔██╗ ██║█████╗ ██║ ██║██║ ██║██║██╔████╔██║
|
||||
██║╚██╗██║██╔══╝ ██║ ██║╚██╗ ██╔╝██║██║╚██╔╝██║
|
||||
██║ ╚████║███████╗╚██████╔╝ ╚████╔╝ ██║██║ ╚═╝ ██║
|
||||
╚═╝ ╚═══╝╚══════╝ ╚═════╝ ╚═══╝ ╚═╝╚═╝ ╚═╝
|
||||
|
||||
[ @elijahmanor ]
|
||||
]]
|
||||
opts.section.header.val = vim.split(logo, "\n", { trimempty = true })
|
||||
end,
|
||||
}
|
||||
@@ -1,96 +0,0 @@
|
||||
return {
|
||||
{
|
||||
"mason-org/mason.nvim",
|
||||
opts = {
|
||||
ui = {
|
||||
icons = {
|
||||
package_installed = "✓",
|
||||
package_pending = "➜",
|
||||
package_uninstalled = "✗",
|
||||
},
|
||||
},
|
||||
ensure_installed = {
|
||||
-- LSP servers
|
||||
"clangd", -- C / C++
|
||||
"gopls", -- Go
|
||||
"python-lsp-server", -- Python
|
||||
"bash-language-server", -- Bash
|
||||
"zls", -- Zig
|
||||
"lua-language-server", -- Lua
|
||||
-- Formatters / Linters
|
||||
"stylua", -- Lua formatter
|
||||
"shfmt", -- Shell formatter
|
||||
"black", -- Python formatter
|
||||
"clang-format", -- C/C++ formatter
|
||||
"goimports", -- Go formatter
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"hrsh7th/nvim-cmp",
|
||||
dependencies = {
|
||||
"hrsh7th/cmp-nvim-lsp",
|
||||
"hrsh7th/cmp-buffer",
|
||||
"hrsh7th/cmp-path",
|
||||
"hrsh7th/cmp-nvim-lua",
|
||||
"saadparwaiz1/cmp_luasnip",
|
||||
"L3MON4D3/LuaSnip",
|
||||
"onsails/lspkind.nvim", -- icone carine nel completamento
|
||||
},
|
||||
opts = function(_, opts)
|
||||
local cmp = require("cmp")
|
||||
local luasnip = require("luasnip")
|
||||
local lspkind = require("lspkind")
|
||||
|
||||
-- Carica snippet
|
||||
require("luasnip.loaders.from_vscode").lazy_load()
|
||||
|
||||
opts.snippet = {
|
||||
expand = function(args)
|
||||
luasnip.lsp_expand(args.body)
|
||||
end,
|
||||
}
|
||||
|
||||
opts.mapping = vim.tbl_extend("force", opts.mapping, {
|
||||
["<C-Space>"] = cmp.mapping.complete(),
|
||||
["<CR>"] = cmp.mapping.confirm({ select = true }),
|
||||
["<Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_next_item()
|
||||
elseif luasnip.expand_or_jumpable() then
|
||||
luasnip.expand_or_jump()
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
["<S-Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_prev_item()
|
||||
elseif luasnip.jumpable(-1) then
|
||||
luasnip.jump(-1)
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
})
|
||||
|
||||
opts.sources = cmp.config.sources({
|
||||
{ name = "nvim_lsp" },
|
||||
{ name = "luasnip" },
|
||||
{ name = "nvim_lua" },
|
||||
{ name = "buffer" },
|
||||
{ name = "path" },
|
||||
})
|
||||
|
||||
opts.formatting = {
|
||||
format = lspkind.cmp_format({
|
||||
mode = "symbol_text",
|
||||
maxwidth = 50,
|
||||
ellipsis_char = "...",
|
||||
}),
|
||||
}
|
||||
|
||||
return opts
|
||||
end,
|
||||
},
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
return {
|
||||
"catppuccin/nvim",
|
||||
name = "catppuccin",
|
||||
lazy = false,
|
||||
priority = 1000,
|
||||
opts = {
|
||||
flavour = "mocha",
|
||||
transparent_background = false,
|
||||
},
|
||||
config = function(_, opts)
|
||||
require("catppuccin").setup(opts)
|
||||
-- vim.cmd.colorscheme("catppuccin-mocha")
|
||||
vim.cmd.colorscheme("tokyonight-night")
|
||||
end,
|
||||
}
|
||||
@@ -1,108 +0,0 @@
|
||||
return {
|
||||
{
|
||||
"mfussenegger/nvim-dap",
|
||||
dependencies = {
|
||||
"leoluz/nvim-dap-go",
|
||||
"rcarriga/nvim-dap-ui",
|
||||
"theHamsta/nvim-dap-virtual-text",
|
||||
"nvim-neotest/nvim-nio",
|
||||
"williamboman/mason.nvim",
|
||||
"jay-babu/mason-nvim-dap.nvim", -- Dependency for managing DAP adapters with Mason
|
||||
"mfussenegger/nvim-dap-python", -- Dependency for Python debugging
|
||||
},
|
||||
config = function()
|
||||
local dap = require("dap")
|
||||
local dapui = require("dapui")
|
||||
local mason_dap = require("mason-nvim-dap")
|
||||
|
||||
-- Configure mason-nvim-dap to automatically install DAP adapters
|
||||
mason_dap.setup({
|
||||
ensure_installed = {
|
||||
"delve", -- Go Debugger Adapter
|
||||
"codelldb", -- C/C++ Debugger Adapter
|
||||
"debugpy", -- Python Debugger Adapter
|
||||
},
|
||||
handlers = {},
|
||||
})
|
||||
|
||||
-- Set up the DAP UI
|
||||
dapui.setup()
|
||||
|
||||
-- Set up the Go debugging configurations
|
||||
require("dap-go").setup()
|
||||
|
||||
-- Set up the Python debugging configurations
|
||||
require("dap-python").setup()
|
||||
|
||||
-- Configure nvim-dap-virtual-text
|
||||
require("nvim-dap-virtual-text").setup({
|
||||
display_callback = function(variable)
|
||||
local name = string.lower(variable.name)
|
||||
local value = string.lower(variable.value)
|
||||
if name:match("secret") or name:match("api") or value:match("secret") or value:match("api") then
|
||||
return "*****"
|
||||
end
|
||||
|
||||
if #variable.value > 15 then
|
||||
return " " .. string.sub(variable.value, 1, 15) .. "... "
|
||||
end
|
||||
|
||||
return " " .. variable.value
|
||||
end,
|
||||
})
|
||||
|
||||
-- Configure the CodeLLDB adapter for C/C++
|
||||
dap.adapters.codelldb = {
|
||||
type = "server",
|
||||
port = "${port}",
|
||||
executable = {
|
||||
command = vim.fn.stdpath("data") .. "/mason/bin/codelldb",
|
||||
args = { "--port", "${port}" },
|
||||
},
|
||||
}
|
||||
|
||||
-- Define launch configurations for C/C++
|
||||
dap.configurations.c = {
|
||||
{
|
||||
name = "Launch C",
|
||||
type = "codelldb",
|
||||
request = "launch",
|
||||
program = function()
|
||||
return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file")
|
||||
end,
|
||||
cwd = "${workspaceFolder}",
|
||||
stopOnEntry = false,
|
||||
},
|
||||
}
|
||||
|
||||
dap.configurations.cpp = dap.configurations.c
|
||||
|
||||
-- Your keyboard shortcuts for debugging
|
||||
vim.keymap.set("n", "<space>b", dap.toggle_breakpoint)
|
||||
vim.keymap.set("n", "<space>gb", dap.run_to_cursor)
|
||||
vim.keymap.set("n", "<space>?", function()
|
||||
dapui.eval(nil, { enter = true })
|
||||
end)
|
||||
vim.keymap.set("n", "<F9>", dap.continue)
|
||||
vim.keymap.set("n", "<F7>", dap.step_into)
|
||||
vim.keymap.set("n", "<F8>", dap.step_over)
|
||||
vim.keymap.set("n", "<F6>", dap.step_out)
|
||||
vim.keymap.set("n", "<F5>", dap.step_back)
|
||||
vim.keymap.set("n", "<F12>", dap.restart)
|
||||
|
||||
-- Listeners to open and close the DAP UI automatically
|
||||
dap.listeners.before.attach.dapui_config = function()
|
||||
dapui.open()
|
||||
end
|
||||
dap.listeners.before.launch.dapui_config = function()
|
||||
dapui.open()
|
||||
end
|
||||
dap.listeners.before.event_terminated.dapui_config = function()
|
||||
dapui.close()
|
||||
end
|
||||
dap.listeners.before.event_exited.dapui_config = function()
|
||||
dapui.close()
|
||||
end
|
||||
end,
|
||||
},
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
return {
|
||||
{ "windwp/nvim-spectre", enabled = false },
|
||||
}
|
||||
@@ -1,57 +0,0 @@
|
||||
return {
|
||||
"nvimtools/none-ls.nvim",
|
||||
config = function()
|
||||
local null_ls = require("null-ls")
|
||||
|
||||
null_ls.setup({
|
||||
sources = {
|
||||
-- C
|
||||
null_ls.builtins.formatting.clang_format.with({
|
||||
extra_args = {
|
||||
"--style={BasedOnStyle: LLVM, IndentWidth: 8, TabWith: 8, UseTab: Always, BreakBeforeBraces: Linux, AllowShortIfStatementsOnASingleLine: false, AllowShortLoopsOnASingleLine: false, AllowShortFunctionsOnASingleLine: InlineOnly, ColumnLimit: 80, AlignConsecutiveDeclarations: false, AlignConsecutiveAssignments: false, AlignEscapedNewlines: Left, AlignOperands: false, IndentCaseLabels: false, SpaceBeforeParens: ControlStatements }",
|
||||
},
|
||||
}),
|
||||
|
||||
-- Go
|
||||
null_ls.builtins.formatting.goimports,
|
||||
|
||||
-- Zig
|
||||
-- null_ls.builtins.formatting.zigfmt,
|
||||
|
||||
-- Lua
|
||||
null_ls.builtins.formatting.stylua.with({
|
||||
extra_args = {
|
||||
"--indent-type",
|
||||
"Spaces",
|
||||
"--indent-width",
|
||||
"2",
|
||||
"--column-width",
|
||||
"120",
|
||||
},
|
||||
}),
|
||||
|
||||
-- Python
|
||||
null_ls.builtins.formatting.black.with({
|
||||
extra_args = { "--line-length", "79" },
|
||||
}),
|
||||
|
||||
-- Shell
|
||||
null_ls.builtins.formatting.shfmt.with({
|
||||
extra_args = { "-i", "2", "-ci", "-bn", "-sr", "-p" },
|
||||
}),
|
||||
},
|
||||
|
||||
-- Auto-format on save
|
||||
on_attach = function(client, bufnr)
|
||||
if client.supports_method("textDocument/formatting") then
|
||||
vim.api.nvim_create_autocmd("BufWritePre", {
|
||||
buffer = bufnr,
|
||||
callback = function()
|
||||
vim.lsp.buf.format({ async = false })
|
||||
end,
|
||||
})
|
||||
end
|
||||
end,
|
||||
})
|
||||
end,
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
return {
|
||||
"m4xshen/hardtime.nvim",
|
||||
lazy = false,
|
||||
dependencies = { "MunifTanjim/nui.nvim" },
|
||||
enabled = false,
|
||||
opts = {},
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
return {
|
||||
"ThePrimeagen/harpoon",
|
||||
branch = "harpoon2",
|
||||
dependencies = { "nvim-lua/plenary.nvim" },
|
||||
}
|
||||
@@ -1,58 +0,0 @@
|
||||
return {
|
||||
"neovim/nvim-lspconfig",
|
||||
|
||||
-- How to add an LSP for a specific programming language?
|
||||
-- 1. Use `:Mason` to install the corresponding LSP.
|
||||
-- 2. Add the configuration below. The syntax is `lspconfig.<name>.setup(...)`
|
||||
-- Hint (find <name> here): https://github.com/neovim/nvim-lspconfig/blob/master/doc/configs.md
|
||||
config = function()
|
||||
-- Set different settings for different languages' LSP.
|
||||
-- Support List: https://github.com/neovim/nvim-lspconfig/blob/master/doc/configs.md
|
||||
local lspconfig = require("lspconfig")
|
||||
|
||||
-- Case 1. For CMake Users
|
||||
-- $ cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .
|
||||
-- Case 2. For Bazel Users, use https://github.com/hedronvision/bazel-compile-commands-extractor
|
||||
-- Case 3. If you don't use any build tool and all files in a project use the same build flags
|
||||
-- Place your compiler flags in the compile_flags.txt file, located in the root directory
|
||||
-- of your project. Each line in the file should contain a single compiler flag.
|
||||
-- src: https://clangd.llvm.org/installation#compile_commandsjson
|
||||
lspconfig.clangd.setup({})
|
||||
lspconfig.gopls.setup({})
|
||||
lspconfig.bashls.setup({})
|
||||
lspconfig.zls.setup({})
|
||||
lspconfig.pylsp.setup({
|
||||
settings = {
|
||||
-- configure plugins in pylsp
|
||||
pylsp = {
|
||||
plugins = {
|
||||
pyflakes = { enabled = false },
|
||||
pycodestyle = { enabled = false },
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
lspconfig.lua_ls.setup({
|
||||
settings = {
|
||||
Lua = {
|
||||
runtime = {
|
||||
-- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim).
|
||||
version = "LuaJIT",
|
||||
},
|
||||
diagnostics = {
|
||||
-- Get the language server to recognize the `vim` global.
|
||||
globals = { "vim" },
|
||||
},
|
||||
workspace = {
|
||||
-- Make the server aware of Neovim runtime files.
|
||||
library = vim.api.nvim_get_runtime_file("", true),
|
||||
},
|
||||
-- Do not send telemetry data containing a randomized but unique identifier.
|
||||
telemetry = {
|
||||
enable = false,
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
return {
|
||||
"nvim-lualine/lualine.nvim",
|
||||
dependencies = { "nvim-tree/nvim-web-devicons" },
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
return {
|
||||
"MeanderingProgrammer/render-markdown.nvim",
|
||||
dependencies = { "nvim-treesitter/nvim-treesitter", "echasnovski/mini.nvim" }, -- if you use the mini.nvim suite
|
||||
-- dependencies = { 'nvim-treesitter/nvim-treesitter', 'echasnovski/mini.icons' }, -- if you use standalone mini plugins
|
||||
-- dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-tree/nvim-web-devicons' }, -- if you prefer nvim-web-devicons
|
||||
---@module 'render-markdown'
|
||||
---@type render.md.UserConfig
|
||||
opts = {},
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
return {
|
||||
"smoka7/multicursors.nvim",
|
||||
event = "VeryLazy",
|
||||
dependencies = {
|
||||
"nvimtools/hydra.nvim",
|
||||
},
|
||||
opts = {},
|
||||
cmd = { "MCstart", "MCvisual", "MCclear", "MCpattern", "MCvisualPattern", "MCunderCursor" },
|
||||
keys = {
|
||||
{
|
||||
mode = { "v", "n" },
|
||||
"<Leader>m",
|
||||
"<cmd>MCstart<cr>",
|
||||
desc = "Create a selection for selected text or word under the cursor",
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
return {
|
||||
"nvim-neo-tree/neo-tree.nvim",
|
||||
enabled = false,
|
||||
}
|
||||
@@ -1,522 +0,0 @@
|
||||
return {
|
||||
"folke/snacks.nvim",
|
||||
priority = 1000,
|
||||
lazy = false,
|
||||
---@type snacks.Config
|
||||
opts = {
|
||||
bigfile = { enabled = true },
|
||||
dashboard = { enabled = false },
|
||||
explorer = { enabled = false },
|
||||
indent = { enabled = true },
|
||||
input = { enabled = true },
|
||||
notifier = {
|
||||
enabled = true,
|
||||
timeout = 3000,
|
||||
},
|
||||
picker = { enabled = true },
|
||||
quickfile = { enabled = true },
|
||||
scope = { enabled = true },
|
||||
scroll = { enabled = true },
|
||||
statuscolumn = { enabled = true },
|
||||
words = { enabled = true },
|
||||
styles = {
|
||||
notification = {
|
||||
-- wo = { wrap = true } -- Wrap notifications
|
||||
},
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
-- Top Pickers & Explorer
|
||||
{
|
||||
"<leader><space>",
|
||||
function()
|
||||
Snacks.picker.smart()
|
||||
end,
|
||||
desc = "Smart Find Files",
|
||||
},
|
||||
{
|
||||
"<leader>,",
|
||||
function()
|
||||
Snacks.picker.buffers()
|
||||
end,
|
||||
desc = "Buffers",
|
||||
},
|
||||
{
|
||||
"<leader>/",
|
||||
function()
|
||||
Snacks.picker.grep()
|
||||
end,
|
||||
desc = "Grep",
|
||||
},
|
||||
{
|
||||
"<leader>:",
|
||||
function()
|
||||
Snacks.picker.command_history()
|
||||
end,
|
||||
desc = "Command History",
|
||||
},
|
||||
{
|
||||
"<leader>n",
|
||||
function()
|
||||
Snacks.picker.notifications()
|
||||
end,
|
||||
desc = "Notification History",
|
||||
},
|
||||
{
|
||||
"<leader>fb",
|
||||
function()
|
||||
Snacks.picker.buffers()
|
||||
end,
|
||||
desc = "Buffers",
|
||||
},
|
||||
{
|
||||
"<leader>fc",
|
||||
function()
|
||||
Snacks.picker.files({ cwd = vim.fn.stdpath("config") })
|
||||
end,
|
||||
desc = "Find Config File",
|
||||
},
|
||||
{
|
||||
"<leader>ff",
|
||||
function()
|
||||
Snacks.picker.files()
|
||||
end,
|
||||
desc = "Find Files",
|
||||
},
|
||||
{
|
||||
"<leader>fg",
|
||||
function()
|
||||
Snacks.picker.git_files()
|
||||
end,
|
||||
desc = "Find Git Files",
|
||||
},
|
||||
{
|
||||
"<leader>fp",
|
||||
function()
|
||||
Snacks.picker.projects()
|
||||
end,
|
||||
desc = "Projects",
|
||||
},
|
||||
{
|
||||
"<leader>fr",
|
||||
function()
|
||||
Snacks.picker.recent()
|
||||
end,
|
||||
desc = "Recent",
|
||||
},
|
||||
-- git
|
||||
{
|
||||
"<leader>gb",
|
||||
function()
|
||||
Snacks.picker.git_branches()
|
||||
end,
|
||||
desc = "Git Branches",
|
||||
},
|
||||
{
|
||||
"<leader>gl",
|
||||
function()
|
||||
Snacks.picker.git_log()
|
||||
end,
|
||||
desc = "Git Log",
|
||||
},
|
||||
{
|
||||
"<leader>gL",
|
||||
function()
|
||||
Snacks.picker.git_log_line()
|
||||
end,
|
||||
desc = "Git Log Line",
|
||||
},
|
||||
{
|
||||
"<leader>gs",
|
||||
function()
|
||||
Snacks.picker.git_status()
|
||||
end,
|
||||
desc = "Git Status",
|
||||
},
|
||||
{
|
||||
"<leader>gS",
|
||||
function()
|
||||
Snacks.picker.git_stash()
|
||||
end,
|
||||
desc = "Git Stash",
|
||||
},
|
||||
{
|
||||
"<leader>gd",
|
||||
function()
|
||||
Snacks.picker.git_diff()
|
||||
end,
|
||||
desc = "Git Diff (Hunks)",
|
||||
},
|
||||
{
|
||||
"<leader>gf",
|
||||
function()
|
||||
Snacks.picker.git_log_file()
|
||||
end,
|
||||
desc = "Git Log File",
|
||||
},
|
||||
-- Grep
|
||||
{
|
||||
"<leader>sb",
|
||||
function()
|
||||
Snacks.picker.lines()
|
||||
end,
|
||||
desc = "Buffer Lines",
|
||||
},
|
||||
{
|
||||
"<leader>sB",
|
||||
function()
|
||||
Snacks.picker.grep_buffers()
|
||||
end,
|
||||
desc = "Grep Open Buffers",
|
||||
},
|
||||
{
|
||||
"<leader>sg",
|
||||
function()
|
||||
Snacks.picker.grep()
|
||||
end,
|
||||
desc = "Grep",
|
||||
},
|
||||
{
|
||||
"<leader>sw",
|
||||
function()
|
||||
Snacks.picker.grep_word()
|
||||
end,
|
||||
desc = "Visual selection or word",
|
||||
mode = { "n", "x" },
|
||||
},
|
||||
-- search
|
||||
{
|
||||
'<leader>s"',
|
||||
function()
|
||||
Snacks.picker.registers()
|
||||
end,
|
||||
desc = "Registers",
|
||||
},
|
||||
{
|
||||
"<leader>s/",
|
||||
function()
|
||||
Snacks.picker.search_history()
|
||||
end,
|
||||
desc = "Search History",
|
||||
},
|
||||
{
|
||||
"<leader>sa",
|
||||
function()
|
||||
Snacks.picker.autocmds()
|
||||
end,
|
||||
desc = "Autocmds",
|
||||
},
|
||||
{
|
||||
"<leader>sb",
|
||||
function()
|
||||
Snacks.picker.lines()
|
||||
end,
|
||||
desc = "Buffer Lines",
|
||||
},
|
||||
{
|
||||
"<leader>sc",
|
||||
function()
|
||||
Snacks.picker.command_history()
|
||||
end,
|
||||
desc = "Command History",
|
||||
},
|
||||
{
|
||||
"<leader>sC",
|
||||
function()
|
||||
Snacks.picker.commands()
|
||||
end,
|
||||
desc = "Commands",
|
||||
},
|
||||
{
|
||||
"<leader>sd",
|
||||
function()
|
||||
Snacks.picker.diagnostics()
|
||||
end,
|
||||
desc = "Diagnostics",
|
||||
},
|
||||
{
|
||||
"<leader>sD",
|
||||
function()
|
||||
Snacks.picker.diagnostics_buffer()
|
||||
end,
|
||||
desc = "Buffer Diagnostics",
|
||||
},
|
||||
{
|
||||
"<leader>sh",
|
||||
function()
|
||||
Snacks.picker.help()
|
||||
end,
|
||||
desc = "Help Pages",
|
||||
},
|
||||
{
|
||||
"<leader>sH",
|
||||
function()
|
||||
Snacks.picker.highlights()
|
||||
end,
|
||||
desc = "Highlights",
|
||||
},
|
||||
{
|
||||
"<leader>si",
|
||||
function()
|
||||
Snacks.picker.icons()
|
||||
end,
|
||||
desc = "Icons",
|
||||
},
|
||||
{
|
||||
"<leader>sj",
|
||||
function()
|
||||
Snacks.picker.jumps()
|
||||
end,
|
||||
desc = "Jumps",
|
||||
},
|
||||
{
|
||||
"<leader>sk",
|
||||
function()
|
||||
Snacks.picker.keymaps()
|
||||
end,
|
||||
desc = "Keymaps",
|
||||
},
|
||||
{
|
||||
"<leader>sl",
|
||||
function()
|
||||
Snacks.picker.loclist()
|
||||
end,
|
||||
desc = "Location List",
|
||||
},
|
||||
{
|
||||
"<leader>sm",
|
||||
function()
|
||||
Snacks.picker.marks()
|
||||
end,
|
||||
desc = "Marks",
|
||||
},
|
||||
{
|
||||
"<leader>sM",
|
||||
function()
|
||||
Snacks.picker.man()
|
||||
end,
|
||||
desc = "Man Pages",
|
||||
},
|
||||
{
|
||||
"<leader>sp",
|
||||
function()
|
||||
Snacks.picker.lazy()
|
||||
end,
|
||||
desc = "Search for Plugin Spec",
|
||||
},
|
||||
{
|
||||
"<leader>sq",
|
||||
function()
|
||||
Snacks.picker.qflist()
|
||||
end,
|
||||
desc = "Quickfix List",
|
||||
},
|
||||
{
|
||||
"<leader>sR",
|
||||
function()
|
||||
Snacks.picker.resume()
|
||||
end,
|
||||
desc = "Resume",
|
||||
},
|
||||
{
|
||||
"<leader>su",
|
||||
function()
|
||||
Snacks.picker.undo()
|
||||
end,
|
||||
desc = "Undo History",
|
||||
},
|
||||
{
|
||||
"<leader>uC",
|
||||
function()
|
||||
Snacks.picker.colorschemes()
|
||||
end,
|
||||
desc = "Colorschemes",
|
||||
},
|
||||
-- LSP
|
||||
{
|
||||
"gd",
|
||||
function()
|
||||
Snacks.picker.lsp_definitions()
|
||||
end,
|
||||
desc = "Goto Definition",
|
||||
},
|
||||
{
|
||||
"gD",
|
||||
function()
|
||||
Snacks.picker.lsp_declarations()
|
||||
end,
|
||||
desc = "Goto Declaration",
|
||||
},
|
||||
{
|
||||
"gr",
|
||||
function()
|
||||
Snacks.picker.lsp_references()
|
||||
end,
|
||||
nowait = true,
|
||||
desc = "References",
|
||||
},
|
||||
{
|
||||
"gI",
|
||||
function()
|
||||
Snacks.picker.lsp_implementations()
|
||||
end,
|
||||
desc = "Goto Implementation",
|
||||
},
|
||||
{
|
||||
"gy",
|
||||
function()
|
||||
Snacks.picker.lsp_type_definitions()
|
||||
end,
|
||||
desc = "Goto T[y]pe Definition",
|
||||
},
|
||||
{
|
||||
"<leader>ss",
|
||||
function()
|
||||
Snacks.picker.lsp_symbols()
|
||||
end,
|
||||
desc = "LSP Symbols",
|
||||
},
|
||||
{
|
||||
"<leader>sS",
|
||||
function()
|
||||
Snacks.picker.lsp_workspace_symbols()
|
||||
end,
|
||||
desc = "LSP Workspace Symbols",
|
||||
},
|
||||
-- Other
|
||||
{
|
||||
"<leader>z",
|
||||
function()
|
||||
Snacks.zen()
|
||||
end,
|
||||
desc = "Toggle Zen Mode",
|
||||
},
|
||||
{
|
||||
"<leader>Z",
|
||||
function()
|
||||
Snacks.zen.zoom()
|
||||
end,
|
||||
desc = "Toggle Zoom",
|
||||
},
|
||||
{
|
||||
"<leader>.",
|
||||
function()
|
||||
Snacks.scratch()
|
||||
end,
|
||||
desc = "Toggle Scratch Buffer",
|
||||
},
|
||||
{
|
||||
"<leader>S",
|
||||
function()
|
||||
Snacks.scratch.select()
|
||||
end,
|
||||
desc = "Select Scratch Buffer",
|
||||
},
|
||||
{
|
||||
"<leader>n",
|
||||
function()
|
||||
Snacks.notifier.show_history()
|
||||
end,
|
||||
desc = "Notification History",
|
||||
},
|
||||
{
|
||||
"<leader>bd",
|
||||
function()
|
||||
Snacks.bufdelete()
|
||||
end,
|
||||
desc = "Delete Buffer",
|
||||
},
|
||||
{
|
||||
"<leader>cR",
|
||||
function()
|
||||
Snacks.rename.rename_file()
|
||||
end,
|
||||
desc = "Rename File",
|
||||
},
|
||||
{
|
||||
"<leader>gB",
|
||||
function()
|
||||
Snacks.gitbrowse()
|
||||
end,
|
||||
desc = "Git Browse",
|
||||
mode = { "n", "v" },
|
||||
},
|
||||
{
|
||||
"<leader>gg",
|
||||
function()
|
||||
Snacks.lazygit()
|
||||
end,
|
||||
desc = "Lazygit",
|
||||
},
|
||||
{
|
||||
"<leader>un",
|
||||
function()
|
||||
Snacks.notifier.hide()
|
||||
end,
|
||||
desc = "Dismiss All Notifications",
|
||||
},
|
||||
{
|
||||
"<c-/>",
|
||||
function()
|
||||
Snacks.terminal()
|
||||
end,
|
||||
desc = "Toggle Terminal",
|
||||
},
|
||||
{
|
||||
"<c-_>",
|
||||
function()
|
||||
Snacks.terminal()
|
||||
end,
|
||||
desc = "which_key_ignore",
|
||||
},
|
||||
{
|
||||
"]]",
|
||||
function()
|
||||
Snacks.words.jump(vim.v.count1)
|
||||
end,
|
||||
desc = "Next Reference",
|
||||
mode = { "n", "t" },
|
||||
},
|
||||
{
|
||||
"[[",
|
||||
function()
|
||||
Snacks.words.jump(-vim.v.count1)
|
||||
end,
|
||||
desc = "Prev Reference",
|
||||
mode = { "n", "t" },
|
||||
},
|
||||
{
|
||||
"<leader>N",
|
||||
desc = "Neovim News",
|
||||
function()
|
||||
Snacks.win({
|
||||
file = vim.api.nvim_get_runtime_file("doc/news.txt", false)[1],
|
||||
width = 0.6,
|
||||
height = 0.6,
|
||||
wo = {
|
||||
spell = false,
|
||||
wrap = false,
|
||||
signcolumn = "yes",
|
||||
statuscolumn = " ",
|
||||
conceallevel = 3,
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
},
|
||||
init = function()
|
||||
vim.api.nvim_create_autocmd("User", {
|
||||
pattern = "VeryLazy",
|
||||
callback = function()
|
||||
-- Setup some globals for debugging (lazy-loaded)
|
||||
_G.dd = function(...)
|
||||
Snacks.debug.inspect(...)
|
||||
end
|
||||
_G.bt = function()
|
||||
Snacks.debug.backtrace()
|
||||
end
|
||||
vim.print = _G.dd -- Override print to use snacks for `:=` command
|
||||
end,
|
||||
})
|
||||
end,
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
return {
|
||||
"nvim-telescope/telescope.nvim",
|
||||
tag = "0.1.8",
|
||||
dependencies = { "nvim-lua/plenary.nvim" },
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
return {
|
||||
"mikavilpas/yazi.nvim",
|
||||
dependencies = { "nvim-lua/plenary.nvim" },
|
||||
opts = {},
|
||||
keys = {
|
||||
{ "<leader>e", "<cmd>Yazi<cr>", desc = "Open Yazi" },
|
||||
},
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
file1=$(fzf --prompt="Select first file: " < <(find . -type f))
|
||||
[ -z "$file1" ] && echo "Aborted." && exit 1
|
||||
|
||||
file2=$(fzf --prompt="Select second file: " < <(find . -type f))
|
||||
[ -z "$file2" ] && echo "Aborted." && exit 1
|
||||
|
||||
echo "🔍 Comparing:"
|
||||
echo " 1: $file1"
|
||||
echo " 2: $file2"
|
||||
|
||||
meld "$file1" "$file2" &
|
||||
@@ -1,15 +0,0 @@
|
||||
-- This file contains all custom functions for integrate external tools.
|
||||
|
||||
-- Meld for comparing and merging files
|
||||
local M = {}
|
||||
|
||||
function M.meld_diff(file1, file2)
|
||||
if not file1 or not file2 then
|
||||
print("Usage: :lua require'user.utils'.meld_diff('file1', 'file2')")
|
||||
return
|
||||
end
|
||||
local cmd = string.format("meld '%s' '%s' &", file1, file2)
|
||||
os.execute(cmd)
|
||||
end
|
||||
|
||||
return M
|
||||
@@ -1,4 +0,0 @@
|
||||
indent_type = "Spaces"
|
||||
indent_width = 2
|
||||
column_width = 120
|
||||
|
||||
Binary file not shown.
@@ -1,435 +0,0 @@
|
||||
|
||||
# An example configuration file for MPD.
|
||||
# Read the user manual for documentation: http://www.musicpd.org/doc/user/
|
||||
|
||||
|
||||
# Files and directories #######################################################
|
||||
#
|
||||
# This setting controls the top directory which MPD will search to discover the
|
||||
# available audio files and add them to the daemon's online database. This
|
||||
# setting defaults to the XDG directory, otherwise the music directory will be
|
||||
# be disabled and audio files will only be accepted over ipc socket (using
|
||||
# file:// protocol) or streaming files over an accepted protocol.
|
||||
#
|
||||
#music_directory "~/music"
|
||||
music_directory "~/Music"
|
||||
#
|
||||
# This setting sets the MPD internal playlist directory. The purpose of this
|
||||
# directory is storage for playlists created by MPD. The server will use
|
||||
# playlist files not created by the server but only if they are in the MPD
|
||||
# format. This setting defaults to playlist saving being disabled.
|
||||
#
|
||||
#playlist_directory "~/.mpd/playlists"
|
||||
playlist_directory "~/.config/mpd/playlists"
|
||||
#
|
||||
# This setting sets the location of the MPD database. This file is used to
|
||||
# load the database at server start up and store the database while the
|
||||
# server is not up. This setting defaults to disabled which will allow
|
||||
# MPD to accept files over ipc socket (using file:// protocol) or streaming
|
||||
# files over an accepted protocol.
|
||||
#
|
||||
db_file "~/.config/mpd/database"
|
||||
#db_file "~/.mpd/database"
|
||||
|
||||
# These settings are the locations for the daemon log files for the daemon.
|
||||
#
|
||||
# The special value "syslog" makes MPD use the local syslog daemon. This
|
||||
# setting defaults to logging to syslog.
|
||||
#
|
||||
# If you use systemd, do not configure a log_file. With systemd, MPD
|
||||
# defaults to the systemd journal, which is fine.
|
||||
#
|
||||
#log_file "~/.mpd/log"
|
||||
|
||||
# This setting sets the location of the file which stores the process ID
|
||||
# for use of mpd --kill and some init scripts. This setting is disabled by
|
||||
# default and the pid file will not be stored.
|
||||
#
|
||||
# If you use systemd, do not configure a pid_file.
|
||||
#
|
||||
#pid_file "~/.mpd/pid"
|
||||
pid_file "~/.config/mpd/pid"
|
||||
|
||||
# This setting sets the location of the file which contains information about
|
||||
# most variables to get MPD back into the same general shape it was in before
|
||||
# it was brought down. This setting is disabled by default and the server
|
||||
# state will be reset on server start up.
|
||||
#
|
||||
#state_file "~/.mpd/state"
|
||||
state_file "~/.config/mpd/state"
|
||||
#
|
||||
# The location of the sticker database. This is a database which
|
||||
# manages dynamic information attached to songs.
|
||||
#
|
||||
#sticker_file "~/.mpd/sticker.sql"
|
||||
sticker_file "~/.config/mpd/sticker.sql"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# General music daemon options ################################################
|
||||
#
|
||||
# This setting specifies the user that MPD will run as. MPD should never run as
|
||||
# root and you may use this setting to make MPD change its user ID after
|
||||
# initialization. This setting is disabled by default and MPD is run as the
|
||||
# current user.
|
||||
#
|
||||
#user "nobody"
|
||||
#
|
||||
# This setting specifies the group that MPD will run as. If not specified
|
||||
# primary group of user specified with "user" setting will be used (if set).
|
||||
# This is useful if MPD needs to be a member of group such as "audio" to
|
||||
# have permission to use sound card.
|
||||
#
|
||||
#group "nogroup"
|
||||
#
|
||||
# This setting sets the address for the daemon to listen on. Careful attention
|
||||
# should be paid if this is assigned to anything other than the default, any.
|
||||
# This setting can deny access to control of the daemon. Not effective if
|
||||
# systemd socket activation is in use.
|
||||
#
|
||||
# For network
|
||||
#bind_to_address "any"
|
||||
#
|
||||
# And for Unix Socket
|
||||
#bind_to_address "~/.mpd/socket"
|
||||
#
|
||||
# This setting is the TCP port that is desired for the daemon to get assigned
|
||||
# to.
|
||||
#
|
||||
#port "6600"
|
||||
#
|
||||
# Suppress all messages below the given threshold. Use "verbose" for
|
||||
# troubleshooting. Available setting arguments are "notice", "info", "verbose",
|
||||
# "warning" and "error".
|
||||
#
|
||||
#log_level "notice"
|
||||
#
|
||||
# Setting "restore_paused" to "yes" puts MPD into pause mode instead
|
||||
# of starting playback after startup.
|
||||
#
|
||||
#restore_paused "no"
|
||||
#
|
||||
# This setting enables MPD to create playlists in a format usable by other
|
||||
# music players.
|
||||
#
|
||||
#save_absolute_paths_in_playlists "no"
|
||||
#
|
||||
# This setting defines a list of tag types that will be extracted during the
|
||||
# audio file discovery process. The complete list of possible values can be
|
||||
# found in the user manual.
|
||||
#metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc"
|
||||
#
|
||||
# This example just enables the "comment" tag without disabling all
|
||||
# the other supported tags:
|
||||
#metadata_to_use "+comment"
|
||||
#
|
||||
# This setting enables automatic update of MPD's database when files in
|
||||
# music_directory are changed.
|
||||
#
|
||||
auto_update "yes"
|
||||
#
|
||||
# Limit the depth of the directories being watched, 0 means only watch
|
||||
# the music directory itself. There is no limit by default.
|
||||
#
|
||||
#auto_update_depth "3"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# Symbolic link behavior ######################################################
|
||||
#
|
||||
# If this setting is set to "yes", MPD will discover audio files by following
|
||||
# symbolic links outside of the configured music_directory.
|
||||
#
|
||||
#follow_outside_symlinks "yes"
|
||||
#
|
||||
# If this setting is set to "yes", MPD will discover audio files by following
|
||||
# symbolic links inside of the configured music_directory.
|
||||
#
|
||||
#follow_inside_symlinks "yes"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# Zeroconf / Avahi Service Discovery ##########################################
|
||||
#
|
||||
# If this setting is set to "yes", service information will be published with
|
||||
# Zeroconf / Avahi.
|
||||
#
|
||||
#zeroconf_enabled "yes"
|
||||
#
|
||||
# The argument to this setting will be the Zeroconf / Avahi unique name for
|
||||
# this MPD server on the network. %h will be replaced with the hostname.
|
||||
#
|
||||
#zeroconf_name "Music Player @ %h"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# Permissions #################################################################
|
||||
#
|
||||
# If this setting is set, MPD will require password authorization. The password
|
||||
# setting can be specified multiple times for different password profiles.
|
||||
#
|
||||
#password "password@read,add,control,admin"
|
||||
#
|
||||
# This setting specifies the permissions a user has who has not yet logged in.
|
||||
#
|
||||
#default_permissions "read,add,control,admin"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# Database #######################################################################
|
||||
#
|
||||
# An example of a database section instead of the old 'db_file' setting.
|
||||
# It enables mounting other storages into the music directory.
|
||||
#
|
||||
#database {
|
||||
# plugin "simple"
|
||||
# path "~/.local/share/mpd/db
|
||||
# cache_directory "~/.local/share/mpd/cache"
|
||||
#}
|
||||
#
|
||||
# An example of database config for a satellite setup
|
||||
#
|
||||
#music_directory "nfs://fileserver.local/srv/mp3"
|
||||
#database {
|
||||
# plugin "proxy"
|
||||
# host "other.mpd.host"
|
||||
# port "6600"
|
||||
#}
|
||||
|
||||
# Input #######################################################################
|
||||
#
|
||||
input {
|
||||
plugin "curl"
|
||||
# proxy "proxy.isp.com:8080"
|
||||
# proxy_user "user"
|
||||
# proxy_password "password"
|
||||
}
|
||||
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
# Audio Output ################################################################
|
||||
#
|
||||
# MPD supports various audio output types, as well as playing through multiple
|
||||
# audio outputs at the same time, through multiple audio_output settings
|
||||
# blocks. Setting this block is optional, though the server will only attempt
|
||||
# autodetection for one sound card.
|
||||
#
|
||||
# An example of an ALSA output:
|
||||
#
|
||||
audio_output {
|
||||
type "pulse"
|
||||
name "pulse audio"
|
||||
}
|
||||
|
||||
# audio_output {
|
||||
# type "pipewire"
|
||||
# name "PipeWire Sound Server"
|
||||
# }
|
||||
|
||||
#audio_output {
|
||||
# type "alsa"
|
||||
# name "My ALSA Device"
|
||||
## device "hw:0,0" # optional
|
||||
## mixer_type "hardware" # optional
|
||||
## mixer_device "default" # optional
|
||||
## mixer_control "PCM" # optional
|
||||
## mixer_index "0" # optional
|
||||
#}
|
||||
#
|
||||
# An example of an OSS output:
|
||||
#
|
||||
#audio_output {
|
||||
# type "oss"
|
||||
# name "My OSS Device"
|
||||
## device "/dev/dsp" # optional
|
||||
## mixer_type "hardware" # optional
|
||||
## mixer_device "/dev/mixer" # optional
|
||||
## mixer_control "PCM" # optional
|
||||
#}
|
||||
#
|
||||
# An example of a shout output (for streaming to Icecast):
|
||||
#
|
||||
#audio_output {
|
||||
# type "shout"
|
||||
# encoder "vorbis" # optional
|
||||
# name "My Shout Stream"
|
||||
# host "localhost"
|
||||
# port "8000"
|
||||
# mount "/mpd.ogg"
|
||||
# password "hackme"
|
||||
# quality "5.0"
|
||||
# bitrate "128"
|
||||
# format "44100:16:1"
|
||||
## protocol "icecast2" # optional
|
||||
## user "source" # optional
|
||||
## description "My Stream Description" # optional
|
||||
## url "http://example.com" # optional
|
||||
## genre "jazz" # optional
|
||||
## public "no" # optional
|
||||
## timeout "2" # optional
|
||||
## mixer_type "software" # optional
|
||||
#}
|
||||
#
|
||||
# An example of a recorder output:
|
||||
#
|
||||
#audio_output {
|
||||
# type "recorder"
|
||||
# name "My recorder"
|
||||
# encoder "vorbis" # optional, vorbis or lame
|
||||
# path "/var/lib/mpd/recorder/mpd.ogg"
|
||||
## quality "5.0" # do not define if bitrate is defined
|
||||
# bitrate "128" # do not define if quality is defined
|
||||
# format "44100:16:1"
|
||||
#}
|
||||
#
|
||||
# An example of a httpd output (built-in HTTP streaming server):
|
||||
#
|
||||
#audio_output {
|
||||
# type "httpd"
|
||||
# name "My HTTP Stream"
|
||||
# encoder "vorbis" # optional, vorbis or lame
|
||||
# port "8000"
|
||||
# bind_to_address "0.0.0.0" # optional, IPv4 or IPv6
|
||||
## quality "5.0" # do not define if bitrate is defined
|
||||
# bitrate "128" # do not define if quality is defined
|
||||
# format "44100:16:1"
|
||||
# max_clients "0" # optional 0=no limit
|
||||
#}
|
||||
#
|
||||
# An example of a pulseaudio output (streaming to a remote pulseaudio server)
|
||||
#
|
||||
#audio_output {
|
||||
# type "pulse"
|
||||
# name "My Pulse Output"
|
||||
## server "remote_server" # optional
|
||||
## sink "remote_server_sink" # optional
|
||||
## media_role "media_role" #optional
|
||||
#}
|
||||
#
|
||||
# An example of a winmm output (Windows multimedia API).
|
||||
#
|
||||
#audio_output {
|
||||
# type "winmm"
|
||||
# name "My WinMM output"
|
||||
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
|
||||
# or
|
||||
## device "0" # optional
|
||||
## mixer_type "hardware" # optional
|
||||
#}
|
||||
#
|
||||
# An example of a wasapi output (Windows multimedia API).
|
||||
#
|
||||
#audio_output {
|
||||
# type "wasapi"
|
||||
# name "My WASAPI output"
|
||||
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
|
||||
# or
|
||||
## device "0" # optional
|
||||
## Exclusive mode blocks all other audio source, and get best audio quality without resampling.
|
||||
## exclusive "no" # optional
|
||||
## Enumerate all devices in log.
|
||||
## enumerate "no" # optional
|
||||
#}
|
||||
#
|
||||
# An example of an openal output.
|
||||
#
|
||||
#audio_output {
|
||||
# type "openal"
|
||||
# name "My OpenAL output"
|
||||
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
|
||||
#}
|
||||
#
|
||||
# An example of an sndio output.
|
||||
#
|
||||
#audio_output {
|
||||
# type "sndio"
|
||||
# name "sndio output"
|
||||
# mixer_type "hardware"
|
||||
#}
|
||||
#
|
||||
# An example of an OS X output:
|
||||
#
|
||||
#audio_output {
|
||||
# type "osx"
|
||||
# name "My OS X Device"
|
||||
## device "Built-in Output" # optional
|
||||
## channel_map "-1,-1,0,1" # optional
|
||||
#}
|
||||
#
|
||||
## Example "pipe" output:
|
||||
#
|
||||
#audio_output {
|
||||
# type "pipe"
|
||||
# name "my pipe"
|
||||
# command "aplay -f cd 2>/dev/null"
|
||||
## Or if you're want to use AudioCompress
|
||||
# command "AudioCompress -m | aplay -f cd 2>/dev/null"
|
||||
## Or to send raw PCM stream through PCM:
|
||||
# command "nc example.org 8765"
|
||||
# format "44100:16:2"
|
||||
#}
|
||||
#
|
||||
## An example of a null output (for no audio output):
|
||||
#
|
||||
#audio_output {
|
||||
# type "null"
|
||||
# name "My Null Output"
|
||||
# mixer_type "none" # optional
|
||||
#}
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# Normalization automatic volume adjustments ##################################
|
||||
#
|
||||
# This setting specifies the type of ReplayGain to use. This setting can have
|
||||
# the argument "off", "album", "track" or "auto". "auto" is a special mode that
|
||||
# chooses between "track" and "album" depending on the current state of
|
||||
# random playback. If random playback is enabled then "track" mode is used.
|
||||
# See <https://wiki.hydrogenaud.io/index.php?title=Replaygain> for
|
||||
# more details about ReplayGain.
|
||||
# This setting is off by default.
|
||||
#
|
||||
#replaygain "album"
|
||||
#
|
||||
# This setting sets the pre-amp used for files that have ReplayGain tags. By
|
||||
# default this setting is disabled.
|
||||
#
|
||||
#replaygain_preamp "0"
|
||||
#
|
||||
# This setting sets the pre-amp used for files that do NOT have ReplayGain tags.
|
||||
# By default this setting is disabled.
|
||||
#
|
||||
#replaygain_missing_preamp "0"
|
||||
#
|
||||
# This setting enables or disables ReplayGain limiting.
|
||||
# MPD calculates actual amplification based on the ReplayGain tags
|
||||
# and replaygain_preamp / replaygain_missing_preamp setting.
|
||||
# If replaygain_limit is enabled MPD will never amplify audio signal
|
||||
# above its original level. If replaygain_limit is disabled such amplification
|
||||
# might occur. By default this setting is enabled.
|
||||
#
|
||||
#replaygain_limit "yes"
|
||||
#
|
||||
# This setting enables on-the-fly normalization volume adjustment. This will
|
||||
# result in the volume of all playing audio to be adjusted so the output has
|
||||
# equal "loudness". This setting is disabled by default.
|
||||
#
|
||||
#volume_normalization "no"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
# Character Encoding ##########################################################
|
||||
#
|
||||
# If file or directory names do not display correctly for your locale then you
|
||||
# may need to modify this setting.
|
||||
#
|
||||
#filesystem_charset "UTF-8"
|
||||
#
|
||||
###############################################################################
|
||||
@@ -1,27 +0,0 @@
|
||||
sw_volume: 100
|
||||
audio_device_state:1:pulse audio
|
||||
state: play
|
||||
current: 11
|
||||
time: 15.469000
|
||||
random: 1
|
||||
repeat: 0
|
||||
single: 0
|
||||
consume: 0
|
||||
crossfade: 0
|
||||
mixrampdb: 0.000000
|
||||
mixrampdelay: -1.000000
|
||||
playlist_begin
|
||||
0:佐々木恵梨 - Ring of Fortune.mp3
|
||||
1:放課後ティータイム - わたしの恋はホッチキス.mp3
|
||||
2:早見沙織 - ここから、ここから -白石結月 ソロver.-.mp3
|
||||
3:瀬戸麻沙美,黒沢ともよ,小澤亜李 - さよなら。ありがとう。.mp3
|
||||
4:コアラモード. - 七色シンフォニー.mp3
|
||||
5:泠鸢yousa - 前前前世(Slow Ver.).mp3
|
||||
6:放課後ティータイム - わたしの恋はホッチキス.mp3
|
||||
7:佐々木恵梨 - Ring of Fortune.mp3
|
||||
8:放課後ティータイム - わたしの恋はホッチキス.mp3
|
||||
9:早見沙織 - ここから、ここから -白石結月 ソロver.-.mp3
|
||||
10:瀬戸麻沙美,黒沢ともよ,小澤亜李 - さよなら。ありがとう。.mp3
|
||||
11:コアラモード. - 七色シンフォニー.mp3
|
||||
12:泠鸢yousa - 前前前世(Slow Ver.).mp3
|
||||
playlist_end
|
||||
@@ -1,8 +0,0 @@
|
||||
CTRL+1 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode A (HQ)"
|
||||
CTRL+2 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode B (HQ)"
|
||||
CTRL+3 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode C (HQ)"
|
||||
CTRL+4 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_Restore_CNN_M.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode A+A (HQ)"
|
||||
CTRL+5 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode B+B (HQ)"
|
||||
CTRL+6 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Restore_CNN_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode C+A (HQ)"
|
||||
|
||||
CTRL+0 no-osd change-list glsl-shaders clr ""; show-text "GLSL shaders cleared"
|
||||
@@ -1,26 +0,0 @@
|
||||
hwdec=auto
|
||||
# vo=gpu-next #This will break Anime4K
|
||||
gpu-api=opengl
|
||||
script-opts=ytdl_hook-ytdl_path=yt-dlp
|
||||
|
||||
# Main mpv options
|
||||
background-color='#1e1e2e'
|
||||
osd-back-color='#11111b'
|
||||
osd-border-color='#11111b'
|
||||
osd-color='#cdd6f4'
|
||||
osd-shadow-color='#1e1e2e'
|
||||
|
||||
# Stats script options
|
||||
# Options are on separate lines for clarity
|
||||
# Colors are in #BBGGRR format
|
||||
script-opts-append=stats-border_color=251818
|
||||
script-opts-append=stats-font_color=f4d6cd
|
||||
script-opts-append=stats-plot_bg_border_color=afe2f9
|
||||
script-opts-append=stats-plot_bg_color=251818
|
||||
script-opts-append=stats-plot_color=afe2f9
|
||||
|
||||
# External script options
|
||||
# It is fine to leave these here even if one does not use these scripts because they are just ignored unless a script uses them
|
||||
|
||||
# UOSC options
|
||||
script-opts-append=uosc-color=foreground=f9e2af,foreground_text=313244,background=1e1e2e,background_text=cdd6f4,curtain=181825,success=a6e3a1,error=f38ba8
|
||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -1 +0,0 @@
|
||||
249598
|
||||
@@ -1,7 +0,0 @@
|
||||
include ~/.newsboat/dark
|
||||
|
||||
auto-reload yes # fetch new content when starting program
|
||||
reload-time 10 # fetch new content every 10 minutes
|
||||
notify-always yes # update tmux counters after every fetch
|
||||
notify-format "%d %n %f"
|
||||
notify-program "~/.tmux/plugins/tmux-newsboat/bin/tmux-newsboat"
|
||||
@@ -1,18 +0,0 @@
|
||||
color listnormal color15 default
|
||||
color listnormal_unread color2 default
|
||||
color listfocus_unread color2 color0
|
||||
color listfocus default color0
|
||||
color background default default
|
||||
color article default default
|
||||
color end-of-text-marker color8 default
|
||||
color info color4 color8
|
||||
color hint-separator default color8
|
||||
color hint-description default color8
|
||||
color title color14 color8
|
||||
|
||||
highlight article "^(Feed|Title|Author|Link|Date): .+" color4 default bold
|
||||
highlight article "^(Feed|Title|Author|Link|Date):" color14 default bold
|
||||
|
||||
highlight article "\\((link|image|video)\\)" color8 default
|
||||
highlight article "https?://[^ ]+" color4 default
|
||||
highlight article "\[[0-9]+\]" color6 default bold
|
||||
@@ -1,8 +0,0 @@
|
||||
######################################################################
|
||||
######################################################################
|
||||
####### FEEDS RSS ######
|
||||
######################################################################
|
||||
######################################################################
|
||||
|
||||
# Archlinux updates
|
||||
https://archlinux.org/feeds/packages/
|
||||
@@ -1,14 +0,0 @@
|
||||
# Transparency and shadows
|
||||
shadow = true
|
||||
shadow-radius = 12
|
||||
shadow-offset-x = -12
|
||||
shadow-offset-y = -12
|
||||
shadow-opacity = 0.3
|
||||
|
||||
fading = true
|
||||
fade-in-step = 0.03
|
||||
fade-out-step = 0.03
|
||||
|
||||
backend = "glx"
|
||||
vsync = true
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@theme "catppuccin"
|
||||
//@theme "catppuccin"
|
||||
|
||||
configuration {
|
||||
modi: "drun,window,filebrowser,ssh";
|
||||
@@ -18,3 +18,4 @@ configuration {
|
||||
display-filebrowser: " filebrowser:";
|
||||
}
|
||||
|
||||
@theme "/home/fscotto/.config/rofi/themes/catppuccin-lavrent-mocha.rasi"
|
||||
|
||||
@@ -9,47 +9,12 @@ $git_metrics\
|
||||
$git_status\
|
||||
$hg_branch\
|
||||
$package\
|
||||
$bun\
|
||||
$c\
|
||||
$cmake\
|
||||
$elixir\
|
||||
$erlang\
|
||||
$gleam\
|
||||
$golang\
|
||||
$gradle\
|
||||
$haskell\
|
||||
$haxe\
|
||||
$helm\
|
||||
$java\
|
||||
$kotlin\
|
||||
$lua\
|
||||
$nodejs\
|
||||
$ocaml\
|
||||
$perl\
|
||||
$php\
|
||||
$python\
|
||||
$ruby\
|
||||
$rust\
|
||||
$scala\
|
||||
$swift\
|
||||
$terraform\
|
||||
$vagrant\
|
||||
$zig\
|
||||
$docker_context\
|
||||
$buf\
|
||||
$guix_shell\
|
||||
$nix_shell\
|
||||
$conda\
|
||||
$meson\
|
||||
$spack\
|
||||
$memory_usage\
|
||||
$direnv\
|
||||
$env_var\
|
||||
$custom\
|
||||
$sudo\
|
||||
$cmd_duration\
|
||||
$line_break\
|
||||
$jobs\
|
||||
$time\
|
||||
$status\
|
||||
$container\
|
||||
@@ -69,7 +34,7 @@ $azure
|
||||
"""
|
||||
|
||||
# Sets user-defined palette
|
||||
palette = "catppuccin_mocha"
|
||||
#palette = "catppuccin_mocha"
|
||||
|
||||
# palette tables should be last in the config ⚓️
|
||||
[palettes.catppuccin_macchiato]
|
||||
@@ -186,7 +151,7 @@ crust = "#11111b"
|
||||
|
||||
[character]
|
||||
# Note the use of Catppuccin color 'maroon'
|
||||
success_symbol = "[[♥](peach) ❯](maroon)"
|
||||
success_symbol = "[❯](blue)"
|
||||
error_symbol = "[❯](red)"
|
||||
vimcmd_symbol = "[❮](green)"
|
||||
|
||||
@@ -202,15 +167,6 @@ symbol = " "
|
||||
[c]
|
||||
symbol = " "
|
||||
|
||||
[conda]
|
||||
symbol = " "
|
||||
|
||||
[crystal]
|
||||
symbol = " "
|
||||
|
||||
[dart]
|
||||
symbol = " "
|
||||
|
||||
[directory]
|
||||
read_only = " "
|
||||
truncate_to_repo = false
|
||||
@@ -238,12 +194,6 @@ symbol = " "
|
||||
format = "[$env_value]($style)"
|
||||
style = 'green italic'
|
||||
|
||||
[fennel]
|
||||
symbol = " "
|
||||
|
||||
[fossil_branch]
|
||||
symbol = " "
|
||||
|
||||
[git_branch]
|
||||
symbol = " "
|
||||
|
||||
@@ -263,9 +213,6 @@ symbol = " "
|
||||
[haskell]
|
||||
symbol = " "
|
||||
|
||||
[haxe]
|
||||
symbol = " "
|
||||
|
||||
[hg_branch]
|
||||
symbol = " "
|
||||
|
||||
@@ -294,85 +241,43 @@ symbol = " "
|
||||
[meson]
|
||||
symbol = " "
|
||||
|
||||
[nim]
|
||||
symbol = " "
|
||||
|
||||
[nix_shell]
|
||||
symbol = " "
|
||||
|
||||
[nodejs]
|
||||
symbol = " "
|
||||
|
||||
[ocaml]
|
||||
symbol = " "
|
||||
|
||||
[os]
|
||||
disabled = false
|
||||
format = "[$symbol ]($style)"
|
||||
format = "[$symbol]($style)"
|
||||
|
||||
[os.symbols]
|
||||
Alpaquita = " "
|
||||
Alpine = " "
|
||||
AlmaLinux = " "
|
||||
Amazon = " "
|
||||
Android = " "
|
||||
Arch = " "
|
||||
Artix = " "
|
||||
CentOS = " "
|
||||
Bluefin = " "
|
||||
Debian = " "
|
||||
DragonFly = " "
|
||||
Emscripten = " "
|
||||
EndeavourOS = " "
|
||||
Fedora = " "
|
||||
FreeBSD = " "
|
||||
Garuda = " "
|
||||
Gentoo = " "
|
||||
HardenedBSD = " "
|
||||
Illumos = " "
|
||||
Kali = " "
|
||||
Linux = " "
|
||||
Mabox = " "
|
||||
Macos = " "
|
||||
Manjaro = " "
|
||||
Mariner = " "
|
||||
MidnightBSD = " "
|
||||
Mint = " "
|
||||
NetBSD = " "
|
||||
NixOS = " "
|
||||
OpenBSD = " "
|
||||
openSUSE = " "
|
||||
OracleLinux = " "
|
||||
Pop = " "
|
||||
Raspbian = " "
|
||||
Redhat = " "
|
||||
RedHatEnterprise = " "
|
||||
RockyLinux = " "
|
||||
Redox = " "
|
||||
Solus = " "
|
||||
SUSE = " "
|
||||
Ubuntu = " "
|
||||
Unknown = " "
|
||||
Void = " "
|
||||
Windows = " "
|
||||
|
||||
[package]
|
||||
symbol = " "
|
||||
|
||||
[perl]
|
||||
symbol = " "
|
||||
|
||||
[php]
|
||||
symbol = " "
|
||||
|
||||
[pijul_channel]
|
||||
symbol = " "
|
||||
|
||||
[python]
|
||||
symbol = " "
|
||||
|
||||
[rlang]
|
||||
symbol = " "
|
||||
|
||||
[ruby]
|
||||
symbol = " "
|
||||
|
||||
@@ -382,9 +287,6 @@ symbol = " "
|
||||
[scala]
|
||||
symbol = " "
|
||||
|
||||
[swift]
|
||||
symbol = " "
|
||||
|
||||
[username]
|
||||
show_always = true
|
||||
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
[main]
|
||||
font=Noto Sans Regular:size=10
|
||||
icon-theme=Papirus
|
||||
include=~/.config/fuzzel/themes/catppuccin-mocha/blue.ini
|
||||
hide-before-typing=no
|
||||
fields=filename,name,generic
|
||||
match-mode=fzf
|
||||
sort-result=yes
|
||||
match-counter=yes
|
||||
show-actions=no
|
||||
anchor = center
|
||||
x-margin=0
|
||||
y-margin=0
|
||||
lines=10
|
||||
width=70
|
||||
tabs=4
|
||||
horizontal-pad=40
|
||||
vertical-pad=8
|
||||
inner-pad=0
|
||||
layer=overlay # values (top, overlay)
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
[colors]
|
||||
background=303446dd
|
||||
text=c6d0f5ff
|
||||
prompt=b5bfe2ff
|
||||
placeholder=838ba7ff
|
||||
input=c6d0f5ff
|
||||
match=8caaeeff
|
||||
selection=626880ff
|
||||
selection-text=c6d0f5ff
|
||||
selection-match=8caaeeff
|
||||
counter=838ba7ff
|
||||
border=8caaeeff
|
||||
@@ -1,12 +0,0 @@
|
||||
[colors]
|
||||
background=303446dd
|
||||
text=c6d0f5ff
|
||||
prompt=b5bfe2ff
|
||||
placeholder=838ba7ff
|
||||
input=c6d0f5ff
|
||||
match=eebebeff
|
||||
selection=626880ff
|
||||
selection-text=c6d0f5ff
|
||||
selection-match=eebebeff
|
||||
counter=838ba7ff
|
||||
border=eebebeff
|
||||
@@ -1,12 +0,0 @@
|
||||
[colors]
|
||||
background=303446dd
|
||||
text=c6d0f5ff
|
||||
prompt=b5bfe2ff
|
||||
placeholder=838ba7ff
|
||||
input=c6d0f5ff
|
||||
match=a6d189ff
|
||||
selection=626880ff
|
||||
selection-text=c6d0f5ff
|
||||
selection-match=a6d189ff
|
||||
counter=838ba7ff
|
||||
border=a6d189ff
|
||||
@@ -1,12 +0,0 @@
|
||||
[colors]
|
||||
background=303446dd
|
||||
text=c6d0f5ff
|
||||
prompt=b5bfe2ff
|
||||
placeholder=838ba7ff
|
||||
input=c6d0f5ff
|
||||
match=babbf1ff
|
||||
selection=626880ff
|
||||
selection-text=c6d0f5ff
|
||||
selection-match=babbf1ff
|
||||
counter=838ba7ff
|
||||
border=babbf1ff
|
||||
@@ -1,12 +0,0 @@
|
||||
[colors]
|
||||
background=303446dd
|
||||
text=c6d0f5ff
|
||||
prompt=b5bfe2ff
|
||||
placeholder=838ba7ff
|
||||
input=c6d0f5ff
|
||||
match=ea999cff
|
||||
selection=626880ff
|
||||
selection-text=c6d0f5ff
|
||||
selection-match=ea999cff
|
||||
counter=838ba7ff
|
||||
border=ea999cff
|
||||
@@ -1,12 +0,0 @@
|
||||
[colors]
|
||||
background=303446dd
|
||||
text=c6d0f5ff
|
||||
prompt=b5bfe2ff
|
||||
placeholder=838ba7ff
|
||||
input=c6d0f5ff
|
||||
match=ca9ee6ff
|
||||
selection=626880ff
|
||||
selection-text=c6d0f5ff
|
||||
selection-match=ca9ee6ff
|
||||
counter=838ba7ff
|
||||
border=ca9ee6ff
|
||||
@@ -1,12 +0,0 @@
|
||||
[colors]
|
||||
background=303446dd
|
||||
text=c6d0f5ff
|
||||
prompt=b5bfe2ff
|
||||
placeholder=838ba7ff
|
||||
input=c6d0f5ff
|
||||
match=ef9f76ff
|
||||
selection=626880ff
|
||||
selection-text=c6d0f5ff
|
||||
selection-match=ef9f76ff
|
||||
counter=838ba7ff
|
||||
border=ef9f76ff
|
||||
@@ -1,12 +0,0 @@
|
||||
[colors]
|
||||
background=303446dd
|
||||
text=c6d0f5ff
|
||||
prompt=b5bfe2ff
|
||||
placeholder=838ba7ff
|
||||
input=c6d0f5ff
|
||||
match=f4b8e4ff
|
||||
selection=626880ff
|
||||
selection-text=c6d0f5ff
|
||||
selection-match=f4b8e4ff
|
||||
counter=838ba7ff
|
||||
border=f4b8e4ff
|
||||
@@ -1,12 +0,0 @@
|
||||
[colors]
|
||||
background=303446dd
|
||||
text=c6d0f5ff
|
||||
prompt=b5bfe2ff
|
||||
placeholder=838ba7ff
|
||||
input=c6d0f5ff
|
||||
match=e78284ff
|
||||
selection=626880ff
|
||||
selection-text=c6d0f5ff
|
||||
selection-match=e78284ff
|
||||
counter=838ba7ff
|
||||
border=e78284ff
|
||||
@@ -1,12 +0,0 @@
|
||||
[colors]
|
||||
background=303446dd
|
||||
text=c6d0f5ff
|
||||
prompt=b5bfe2ff
|
||||
placeholder=838ba7ff
|
||||
input=c6d0f5ff
|
||||
match=f2d5cfff
|
||||
selection=626880ff
|
||||
selection-text=c6d0f5ff
|
||||
selection-match=f2d5cfff
|
||||
counter=838ba7ff
|
||||
border=f2d5cfff
|
||||
@@ -1,12 +0,0 @@
|
||||
[colors]
|
||||
background=303446dd
|
||||
text=c6d0f5ff
|
||||
prompt=b5bfe2ff
|
||||
placeholder=838ba7ff
|
||||
input=c6d0f5ff
|
||||
match=85c1dcff
|
||||
selection=626880ff
|
||||
selection-text=c6d0f5ff
|
||||
selection-match=85c1dcff
|
||||
counter=838ba7ff
|
||||
border=85c1dcff
|
||||
@@ -1,12 +0,0 @@
|
||||
[colors]
|
||||
background=303446dd
|
||||
text=c6d0f5ff
|
||||
prompt=b5bfe2ff
|
||||
placeholder=838ba7ff
|
||||
input=c6d0f5ff
|
||||
match=99d1dbff
|
||||
selection=626880ff
|
||||
selection-text=c6d0f5ff
|
||||
selection-match=99d1dbff
|
||||
counter=838ba7ff
|
||||
border=99d1dbff
|
||||
@@ -1,12 +0,0 @@
|
||||
[colors]
|
||||
background=303446dd
|
||||
text=c6d0f5ff
|
||||
prompt=b5bfe2ff
|
||||
placeholder=838ba7ff
|
||||
input=c6d0f5ff
|
||||
match=81c8beff
|
||||
selection=626880ff
|
||||
selection-text=c6d0f5ff
|
||||
selection-match=81c8beff
|
||||
counter=838ba7ff
|
||||
border=81c8beff
|
||||
@@ -1,12 +0,0 @@
|
||||
[colors]
|
||||
background=303446dd
|
||||
text=c6d0f5ff
|
||||
prompt=b5bfe2ff
|
||||
placeholder=838ba7ff
|
||||
input=c6d0f5ff
|
||||
match=e5c890ff
|
||||
selection=626880ff
|
||||
selection-text=c6d0f5ff
|
||||
selection-match=e5c890ff
|
||||
counter=838ba7ff
|
||||
border=e5c890ff
|
||||
@@ -1,12 +0,0 @@
|
||||
[colors]
|
||||
background=eff1f5dd
|
||||
text=4c4f69ff
|
||||
prompt=5c5f77ff
|
||||
placeholder=8c8fa1ff
|
||||
input=4c4f69ff
|
||||
match=1e66f5ff
|
||||
selection=acb0beff
|
||||
selection-text=4c4f69ff
|
||||
selection-match=1e66f5ff
|
||||
counter=8c8fa1ff
|
||||
border=1e66f5ff
|
||||
@@ -1,12 +0,0 @@
|
||||
[colors]
|
||||
background=eff1f5dd
|
||||
text=4c4f69ff
|
||||
prompt=5c5f77ff
|
||||
placeholder=8c8fa1ff
|
||||
input=4c4f69ff
|
||||
match=dd7878ff
|
||||
selection=acb0beff
|
||||
selection-text=4c4f69ff
|
||||
selection-match=dd7878ff
|
||||
counter=8c8fa1ff
|
||||
border=dd7878ff
|
||||
@@ -1,12 +0,0 @@
|
||||
[colors]
|
||||
background=eff1f5dd
|
||||
text=4c4f69ff
|
||||
prompt=5c5f77ff
|
||||
placeholder=8c8fa1ff
|
||||
input=4c4f69ff
|
||||
match=40a02bff
|
||||
selection=acb0beff
|
||||
selection-text=4c4f69ff
|
||||
selection-match=40a02bff
|
||||
counter=8c8fa1ff
|
||||
border=40a02bff
|
||||
@@ -1,12 +0,0 @@
|
||||
[colors]
|
||||
background=eff1f5dd
|
||||
text=4c4f69ff
|
||||
prompt=5c5f77ff
|
||||
placeholder=8c8fa1ff
|
||||
input=4c4f69ff
|
||||
match=7287fdff
|
||||
selection=acb0beff
|
||||
selection-text=4c4f69ff
|
||||
selection-match=7287fdff
|
||||
counter=8c8fa1ff
|
||||
border=7287fdff
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user