mirror of
https://github.com/Keyitdev/dotfiles.git
synced 2026-09-24 01:52:09 +00:00
New version: created v3
This commit is contained in:
+15
-19
@@ -1,23 +1,18 @@
|
|||||||
export ZSH="$HOME/.oh-my-zsh"
|
ZSH="/usr/share/oh-my-zsh/"
|
||||||
|
export ZSH="/usr/share/oh-my-zsh/"
|
||||||
ZSH_THEME="keyitdev"
|
ZSH_THEME="keyitdev"
|
||||||
|
|
||||||
plugins=(git)
|
plugins=(git)
|
||||||
|
|
||||||
source $ZSH/oh-my-zsh.sh
|
ZSH_CACHE_DIR="$HOME/.cache/oh-my-zsh"
|
||||||
|
if [[ ! -d "$ZSH_CACHE_DIR" ]]; then
|
||||||
|
mkdir "$ZSH_CACHE_DIR"
|
||||||
|
fi
|
||||||
|
|
||||||
# pacman
|
source "$ZSH"/oh-my-zsh.sh
|
||||||
alias pacrem="sudo pacman -Rn"
|
|
||||||
alias pacrema="sudo pacman -Rns"
|
|
||||||
alias pacupd="sudo pacman -Syyy"
|
|
||||||
alias pacupg="sudo pacman -Syu"
|
|
||||||
alias paccl="sudo pacman -Rns $(pacman -Qtdq)"
|
|
||||||
|
|
||||||
alias yayrem="yay -Rn"
|
alias yeet="yay -Rn"
|
||||||
alias yayrema="yay -Rns"
|
alias yeeet="yay -Rns"
|
||||||
alias yayupd="yay -Syyy"
|
alias yeet_useless="yay -Rns $(yay -Qtdq)"
|
||||||
alias yayupg="yay -Syu"
|
|
||||||
alias yaycl="yay -Rns $(yay -Qtdq)"
|
|
||||||
|
|
||||||
# git
|
# git
|
||||||
alias g="git"
|
alias g="git"
|
||||||
@@ -45,12 +40,13 @@ alias nv="nvim"
|
|||||||
alias la="ls -alF"
|
alias la="ls -alF"
|
||||||
alias h="history|grep"
|
alias h="history|grep"
|
||||||
alias c="clear" # I know about ctrl l etc.
|
alias c="clear" # I know about ctrl l etc.
|
||||||
alias logout="killall -KILL -u key_user"
|
alias logout="killall -KILL -u $USER"
|
||||||
alias files="nautilus"
|
alias files="nemo"
|
||||||
alias helpme="cat ~/.zshrc | less"
|
alias files.="nemo ."
|
||||||
|
alias help="cat ~/.zshrc | less"
|
||||||
|
|
||||||
# cd
|
# cd
|
||||||
alias ..="cd .."
|
alias ..="cd .."
|
||||||
alias ....="cd ../.."
|
alias ....="cd ../.."
|
||||||
alias ......="cd ../../.."
|
alias ......="cd ../../.."
|
||||||
alias ........="cd ../../../.."
|
alias ........="cd ../../../.."
|
||||||
@@ -1,182 +1,182 @@
|
|||||||
<h1 align=center>Keyitdev Dotfiles</h1>
|
# Keyitdev Dotfiles
|
||||||
|
|
||||||
<p align="center">My personal build of dotfiles using i3. Color palette is based on the Atom One Dark colorscheme. This configuration also works on dual monitors.</p>
|
The **Arch Linux** & **i3wm** dotfiles!
|
||||||
|
|
||||||
<div align="center">
|
[Showcase](#showcase) ·
|
||||||
<a href="#-showcase">Showcase</a> · <a href="#%EF%B8%8F-info">Info</a> · <a href="#-dependencies">Dependencies</a> · <a href="#%EF%B8%8F-installation">Installation</a> · <a href="#-keybinds">Keybinds</a> · <a href="#-colors">Colors</a> · <a href="#%EF%B8%8F-troubleshooting">Troubleshooting</a>
|
[Information](#information) ·
|
||||||
</div>
|
[Installation](#installation) ·
|
||||||
|
[Cheat sheet](#cheat-sheet) ·
|
||||||
|
[Support and Thankies](#support-and-thankies)
|
||||||
|
|
||||||
</br>
|
**i3wm** is very simple, old tiling window manager, but it is still powerful and highly configurable. Although it takes time and effort to configure it, but I'm very satisfied with the result.
|
||||||
|
|
||||||
<p align=center>
|
This is the third version of my dotfiles, as I gain more experience I am able to create more profesional dotfiles.
|
||||||
<img src="https://img.shields.io/github/stars/keyitdev/dotfiles?color=dd864a&labelColor=202328&style=for-the-badge">
|
|
||||||
<img src="https://img.shields.io/github/forks/keyitdev/dotfiles?color=82aaff&labelColor=202328&style=for-the-badge">
|
|
||||||
<img src="https://img.shields.io/github/issues/keyitdev/dotfiles?color=bf616a&labelColor=202328&style=for-the-badge">
|
|
||||||
<img src="https://img.shields.io/github/issues-pr/keyitdev/dotfiles?color=c792ea&labelColor=202328&style=for-the-badge">
|
|
||||||
<img src="https://img.shields.io/github/license/keyitdev/dotfiles?color=15121C&labelColor=202328&style=for-the-badge">
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div align="center">
|
**However, if you want to check older version see [v2 branch](https://github.com/Keyitdev/dotfiles/tree/v2).**
|
||||||
|
|
||||||
**Check newer version here [v3 branch](https://github.com/Keyitdev/dotfiles/tree/v3).**
|

|
||||||
|
|
||||||
</div>
|
### [Watch viedo demo here]()
|
||||||
|
|
||||||
## 🌟 Showcase
|
[](https://github.com/Keyitdev/dotfiles/stargazers)
|
||||||
|
[](https://github.com/Keyitdev/dotfiles/network/members)
|
||||||
|
[](https://www.gnu.org/licenses/gpl-3.0.html)
|
||||||
|
## Information
|
||||||
|
|
||||||

|
- **OS:** [Arch Linux](https://archlinux.org)
|
||||||
|
- **WM:** [i3-gaps](https://github.com/Airblader/i3)
|
||||||
|
- **Terminal:** [alacritty](https://github.com/alacritty/alacritty)
|
||||||
|
- **Bar:** [polybar](https://github.com/polybar/polybar)
|
||||||
|
- **Shell:** [zsh](https://www.zsh.org/)
|
||||||
|
- **Compositor:** [picom](https://github.com/yshui/picom)
|
||||||
|
- **Application Launcher:** [rofi](https://github.com/davatorium/rofi)
|
||||||
|
- **Notification Deamon:** [dunst](https://github.com/dunst-project/dunst)
|
||||||
|
|
||||||
### [More screenshots here](https://github.com/Keyitdev/screenshots/blob/master/dotfiles/v2/README.md)
|
<details>
|
||||||
|
<summary><b>
|
||||||
|
Detailed information and dependencies
|
||||||
|
</b></summary>
|
||||||
|
|
||||||
### [Watch the demo video here](https://www.youtube.com/watch?v=_dMkmf2ugPE)
|
### Info
|
||||||
|
|
||||||
## 🗒️ Info
|
**Music Player:** [mpd](https://github.com/MusicPlayerDaemon/MPD) & [ncmpcpp](https://github.com/ncmpcpp/ncmpcpp)
|
||||||
|
**Editor:** [neovim](https://github.com/neovim/neovim) / [vscode](https://github.com/microsoft/vscode)
|
||||||
|
**Lockscreen:** [i3lock-color](https://github.com/Raymo111/i3lock-color)
|
||||||
|
**Display Manager:** [sddm](https://github.com/sddm/sddm)
|
||||||
|
**File manager:** [ranger](https://github.com/ranger/ranger) / [nemo](https://github.com/linuxmint/nemo)
|
||||||
|
**Pdf reader:** [zathura](https://github.com/pwmt/zathura)
|
||||||
|
**Monitor of Resources:** [btop](https://github.com/aristocratos/btop)
|
||||||
|
|
||||||
|Program|Name|
|
### Used themes
|
||||||
|
|
||||||
|
**Shell Framework:** [Oh-My-Zsh](https://github.com/ohmyzsh/ohmyzsh)
|
||||||
|
**Vscode Theme:** [One dark pro](https://marketplace.visualstudio.com/items?itemName=zhuangtongfa.Material-theme)
|
||||||
|
**Neovim Theme:** [AstroNvim](https://github.com/kabinspace/AstroVim)
|
||||||
|
**Icons:** [Papirus dark](https://github.com/PapirusDevelopmentTeam/papirus-icon-theme)
|
||||||
|
**GTK Theme:** [Tokyo night](https://github.com/Fausto-Korpsvart/Tokyo-Night-GTK-Theme)
|
||||||
|
**Display Manager Theme:** [Sddm-flower-theme](https://github.com/Keyitdev/sddm-flower-theme)
|
||||||
|
|
||||||
|
### Fonts
|
||||||
|
|
||||||
|
**Icons:** [Feather](https://github.com/AT-UI/feather-font/blob/master/src/fonts/feather.ttf)
|
||||||
|
**Interface Font:** [Open sans](https://fonts.google.com/specimen/Open+Sans#standard-styles)
|
||||||
|
**Monospace Font:** [Roboto mono](https://fonts.google.com/specimen/Roboto+Mono#standard-styles)
|
||||||
|
**Polybar Font:** [Iosevka nerd font](https://github.com/ryanoasis/nerd-fonts/tree/master/patched-fonts/Iosevka)
|
||||||
|
|
||||||
|
### Dependencies
|
||||||
|
|
||||||
|
**Base:** acpi alsa-utils base-devel curl git pulseaudio pulseaudio-alsa xorg xorg-xinit
|
||||||
|
|
||||||
|
**Required:** alacritty btop code dunst feh ffcast firefox i3-gaps i3lock-color i3-resurrect libnotify light mpc mpd ncmpcpp nemo neofetch neovim oh-my-zsh-git pacman-contrib papirus-icon-theme picom polybar ranger rofi scrot slop xclip zathura zathura-pdf-mupdf zsh
|
||||||
|
|
||||||
|
**Sddm:** qt5-graphicaleffects qt5-quickcontrols2 qt5-svg sddm
|
||||||
|
|
||||||
|
**Emoji:** fonts: noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
## Showcase
|
||||||
|
|
||||||
|
|vsc & ncmpcpp & cava|rofi & dunst|
|
||||||
|-|-|
|
|-|-|
|
||||||
|**Window Manager**|[i3-gaps](https://github.com/Airblader/i3)|
|
|||
|
||||||
|**Terminal Emulator**|[Kitty](https://github.com/kovidgoyal/kitty)|
|
|nemo & nvim & ranger|-|
|
||||||
|**Bar**|[Polybar](https://github.com/polybar/polybar)|
|
|||
|
||||||
|**Application Launcher**|[Rofi](https://github.com/davatorium/rofi)|
|
|-|i3lock-color|
|
||||||
|**Notification Daemon**|[Dunst](https://github.com/dunst-project/dunst)|
|
|||
|
||||||
|**Display Manager**|[SDDM](https://github.com/sddm/sddm)|
|
|
||||||
|**Display Manager Theme**|[SDDM-Astronaut-Theme](https://github.com/Keyitdev/sddm-astronaut-theme)|
|
|
||||||
|**Lockscreen**|[BetterLockscreen](https://github.com/betterlockscreen/betterlockscreen)|
|
|
||||||
|**Compositor**|[Picom](https://github.com/yshui/picom)
|
|
||||||
|**Shell**|[Zsh](https://www.zsh.org/)|
|
|
||||||
|**Shell Framework**|[Oh-My-Zsh](https://github.com/ohmyzsh/ohmyzsh)|
|
|
||||||
|**Music Player**|[mpd](https://github.com/MusicPlayerDaemon/MPD), [ncmpcpp](https://github.com/ncmpcpp/ncmpcpp)
|
|
||||||
|**Text Editor**|[Visual Studio Code](https://github.com/Microsoft/vscode), [Neovim](https://github.com/neovim/neovim)|
|
|
||||||
|**VSC Colorscheme**|[One Dark Pro](https://marketplace.visualstudio.com/items?itemName=zhuangtongfa.Material-theme)|
|
|
||||||
|**Neovim Theme**|[AstroVim](https://github.com/kabinspace/AstroVim)
|
|
||||||
|**GTK Theme**|[Ant (Dracula)](https://github.com/EliverLara/ant)|
|
|
||||||
|**Icons**|[Papirus Dark](https://github.com/PapirusDevelopmentTeam/papirus-icon-theme)|
|
|
||||||
|**Discord Theme**|[Custom](https://github.com/Keyitdev/BetterDiscord-themes)|
|
|
||||||
|
|
||||||
## ⚡ Dependencies
|
## Installation
|
||||||
|
|
||||||
### Packages
|
### Using install script
|
||||||
* **Base:** base-devel wget curl git gcc make acpi light pulseaudio pulseaudio-alsa alsa-utils pacman-contrib mpc
|
|
||||||
* **WM/X11:** i3-gaps i3blocks i3lock-color xorg xorg-xinit xorg-server
|
|
||||||
* **Lockscreen:** i3lock-color betterlockscreen feh imagemagick
|
|
||||||
* **Programs:** kitty rofi dunst (with libnotify) ranger ncmpcpp mpd polybar papirus-icon-theme btop sddm (with qt5 qt5-quickcontrols2 qt5-svg) zsh (with oh-my-zsh) picom cava code neovim
|
|
||||||
* **Screenshots:** xclip scrot ffcast slop
|
|
||||||
* **Emoji Fonts:** noto-fonts noto-fonts-emoji noto-fonts-extra noto-fonts-cjk
|
|
||||||
|
|
||||||
### Fonts
|
Clone the repository
|
||||||
* **Icons:** [Feather](https://github.com/AT-UI/feather-font/blob/master/src/fonts/feather.ttf)
|
```sh
|
||||||
* **Interface Font:** [Open Sans](https://fonts.google.com/specimen/Open+Sans#standard-styles)
|
git clone -b v3 --depth 1 https://www.github.com/keyitdev/dotfiles.git
|
||||||
* **Monospace Font:** [Roboto Mono](https://fonts.google.com/specimen/Roboto+Mono#standard-styles)
|
cd dotfiles
|
||||||
* **Polybar Font:** [Iosevka Nerd Font](https://github.com/ryanoasis/nerd-fonts/tree/master/patched-fonts/Iosevka)
|
chmod +x install-on-arch.sh
|
||||||
|
./install-on-arch.sh
|
||||||
## 🛠️ Installation
|
```
|
||||||
|
|
||||||
It's recommended to install the dependencies manually, but if you have any issues with the manual installation, or just want to save time, use the installation script.
|
|
||||||
|
|
||||||
### Manual Installation
|
### Manual Installation
|
||||||
|
|
||||||
1. Clone this repository
|
1. Clone this repository
|
||||||
```sh
|
```sh
|
||||||
git clone -b v2 --depth 1 https://www.github.com/keyitdev/dotfiles.git
|
git clone -b v3 --depth 1 https://www.github.com/keyitdev/dotfiles.git
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Install an AUR helper (for example, yay in $HOME/.srcs)
|
2. Install an AUR helper (for example, `yay` in `"$HOME"/.srcs`)
|
||||||
```sh
|
```sh
|
||||||
mkdir -p $HOME/.srcs
|
git clone https://aur.archlinux.org/yay.git "$HOME"/.srcs/yay
|
||||||
git clone https://aur.archlinux.org/yay.git $HOME/.srcs/yay
|
cd "$HOME"/.srcs/yay/ && makepkg -si
|
||||||
(cd $HOME/.srcs/yay/ && makepkg -si )
|
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Install packages (see [Dependencies](https://github.com/keyitdev/dotfiles#-dependencies))
|
3. Install dependencies.
|
||||||
|
```sh
|
||||||
|
yay -S --needed acpi alsa-utils base-devel curl git pulseaudio pulseaudio-alsa xorg xorg-xinit alacritty btop code dunst feh ffcast firefox i3-gaps i3lock-color i3-resurrect libnotify light mpc mpd ncmpcpp nemo neofetch neovim oh-my-zsh-git pacman-contrib papirus-icon-theme picom polybar ranger rofi scrot slop xclip zathura zathura-pdf-mupdf zsh
|
||||||
|
```
|
||||||
|
|
||||||
4. Make Light executable
|
4. Create default directories.
|
||||||
|
```sh
|
||||||
|
mkdir -p "$HOME"/.config
|
||||||
|
mkdir -p /usr/local/bin
|
||||||
|
mkdir -p /usr/share/themes
|
||||||
|
mkdir -p "$HOME"/Pictures/wallpapers
|
||||||
|
```
|
||||||
|
|
||||||
|
5. Copy configs, scripts, fonts, gtk theme, wallpaper, vsc configs, zsh config.
|
||||||
|
```sh
|
||||||
|
cp -r ./config/* "$HOME"/.config
|
||||||
|
sudo cp -r ./scripts/* /usr/local/bin
|
||||||
|
sudo cp -r ./fonts/* /usr/share/fonts
|
||||||
|
sudo cp -r ./tokyonight_gtk /usr/share/themes
|
||||||
|
cp -r ./wallpapers/* "$HOME"/Pictures/wallpapers
|
||||||
|
cp -r ./vsc/* "$HOME"/.vscode-oss/extensions
|
||||||
|
cp ./vsc/settings.json "$HOME"/.config/Code\ -\ OSS/User
|
||||||
|
sudo cp ./keyitdev.zsh-theme /usr/share/oh-my-zsh/custom/themes
|
||||||
|
cp ./.zshrc "$HOME"
|
||||||
|
```
|
||||||
|
|
||||||
|
6. Make Light executable, set zsh as default shell, update nvim extensions, refresh font cache.
|
||||||
```sh
|
```sh
|
||||||
sudo chmod +s /usr/bin/light
|
sudo chmod +s /usr/bin/light
|
||||||
```
|
chsh -s /bin/zsh
|
||||||
|
sudo chsh -s /bin/zsh
|
||||||
5. Copy the files (Config folder to `$HOME/.config`, scripts folder to `/usr/local/bin` fonts to `/usr/share/fonts/`, wallpaper to `$HOME/Pictures/wallpapers` etc.)
|
|
||||||
|
|
||||||
6. Install Oh-My-Zsh
|
|
||||||
```sh
|
|
||||||
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
|
|
||||||
```
|
|
||||||
|
|
||||||
7. Set Zsh as the default shell
|
|
||||||
```sh
|
|
||||||
chsh -s /bin/zsh #user
|
|
||||||
sudo chsh -s /bin/zsh #root
|
|
||||||
```
|
|
||||||
|
|
||||||
8. Install AstroVim
|
|
||||||
```sh
|
|
||||||
git clone --depth 10 https://github.com/kabinspace/AstroVim.git $HOME/.config/nvim
|
|
||||||
nvim +PackerSync
|
nvim +PackerSync
|
||||||
|
fc-cache -fv
|
||||||
```
|
```
|
||||||
|
|
||||||
9. Install GTK Theme
|
8. Install sddm flower theme.
|
||||||
```sh
|
```sh
|
||||||
git clone https://github.com/EliverLara/ant.git
|
sudo git clone https://github.com/keyitdev/sddm-flower-theme.git /usr/share/sddm/themes/sddm-flower-theme
|
||||||
sudo mv ./ant /usr/share/themes
|
sudo cp /usr/share/sddm/themes/sddm-flower-theme/Fonts/* /usr/share/fonts/
|
||||||
```
|
|
||||||
|
|
||||||
10. Install SDDM Astronaut Theme
|
|
||||||
```sh
|
|
||||||
sudo git clone https://github.com/keyitdev/sddm-astronaut-theme.git
|
|
||||||
sudo cp -fdr sddm-astronaut-theme /usr/share/sddm/themes/
|
|
||||||
sudo cp /usr/share/sddm/themes/sddm-astronaut-theme/Fonts/* /usr/share/fonts/
|
|
||||||
```
|
|
||||||
|
|
||||||
11. Edit `/etc/sddm.conf`
|
|
||||||
```
|
|
||||||
echo "[Theme]
|
echo "[Theme]
|
||||||
Current=sddm-astronaut-theme" | sudo tee /etc/sddm.conf
|
Current=sddm-flower-theme" | sudo tee /etc/sddm.conf
|
||||||
```
|
```
|
||||||
|
|
||||||
12. [Install the Firefox theme](https://color.firefox.com/?theme=XQAAAAKGAQAAAAAAAABBqYhm849SCia73laEGccwS-xMDPr5iE6kjVUHIsGRvs0-q94VqJzDmLds0B4GdTFd2KORmhozpED9fKKY97YpmeSVCJcSVB9rwzacQGHhaYG0HJIDBXLbAYUnjpkVXo5LFBoIgdJ4P7MSUoS9tEpFY9l-n8P03V91Kq7BmmKKrjKq9Hi2Jvfl7wBEWz3nWVxnwd4XKskPQ2G_JFlEZFH-xMtfBJ5OSQmfzox2bvycbCOGiDW99yOqfX2u-cPiqZwcshaSPxDSqShJ5_7OhZzPbP5x-BM)
|
## Cheat sheet
|
||||||
|
|
||||||
### Automated Install
|
|
||||||
|
|
||||||
1. Clone the repository
|
<details>
|
||||||
```
|
<summary>Keybinds</summary>
|
||||||
git clone -b v2 --depth 1 https://www.github.com/keyitdev/dotfiles.git
|
|
||||||
cd dotfiles
|
|
||||||
chmod +x install-on-arch.sh
|
|
||||||
./install-on-arch.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
2. [Install the Firefox theme](https://color.firefox.com/?theme=XQAAAAKGAQAAAAAAAABBqYhm849SCia73laEGccwS-xMDPr5iE6kjVUHIsGRvs0-q94VqJzDmLds0B4GdTFd2KORmhozpED9fKKY97YpmeSVCJcSVB9rwzacQGHhaYG0HJIDBXLbAYUnjpkVXo5LFBoIgdJ4P7MSUoS9tEpFY9l-n8P03V91Kq7BmmKKrjKq9Hi2Jvfl7wBEWz3nWVxnwd4XKskPQ2G_JFlEZFH-xMtfBJ5OSQmfzox2bvycbCOGiDW99yOqfX2u-cPiqZwcshaSPxDSqShJ5_7OhZzPbP5x-BM)
|
These are the basic keybinds. Read through the [i3](./config/i3/config) config for more keybinds.
|
||||||
|
|
||||||
## 🛠️ Uninstall
|
|
||||||
|
|
||||||
1. Remove installed packages (see [Dependencies](https://github.com/keyitdev/dotfiles#-dependencies))
|
|
||||||
2. Remove the AUR helper ( $HOME/.srcs)
|
|
||||||
3. Uninstall Oh-My-Zsh ` uninstall_oh_my_zsh`
|
|
||||||
4. Change the default shell back to bash
|
|
||||||
```
|
|
||||||
chsh -s /bin/bash
|
|
||||||
sudo chsh -s /bin/bash
|
|
||||||
```
|
|
||||||
5. Remove installed fonts ($HOME/.local/share/fonts/ or /usr/share/fonts/)
|
|
||||||
6. Remove installed scripts (/usr/local/bin)
|
|
||||||
7. Remove this repository
|
|
||||||
|
|
||||||
## 🔑 Keybinds
|
|
||||||
|
|
||||||
These are the basic keybinds. Read through the `i3` config for more keybinds.
|
|
||||||
|
|
||||||
| Keybind | Function |
|
| Keybind | Function |
|
||||||
| ---------------------- | ---------------------------------------- |
|
| ---------------------- | ---------------------------------------- |
|
||||||
| `Win + Enter` | Launch terminal (kitty) |
|
| `Win + Enter` | Launch terminal (alacritty) |
|
||||||
| `Win + Shift + Q` | Close window |
|
| `Win + Shift + Q` | Close window |
|
||||||
| `Win + Q` | Stacking layout |
|
| `Win + Q` | Stacking layout |
|
||||||
| `Win + W` | Tabbed layout |
|
| `Win + W` | Tabbed layout |
|
||||||
| `Win + E` | Default layout |
|
| `Win + E` | Default layout |
|
||||||
| `Win + A` | Rofi sidebar menu |
|
| `Win + R` | Resize mode |
|
||||||
| `Win + S` | Rofi compact menu |
|
| `Win + T` | Restore layout |
|
||||||
| `Win + D` | Rofi center menu |
|
| `Win + Y` | Save layout |
|
||||||
|
| `Win + A` | Rofi open windows menu |
|
||||||
|
| `Win + S` | Rofi full menu |
|
||||||
|
| `Win + D` | Rofi menu |
|
||||||
| `Win + Z` | Rofi bookmarks |
|
| `Win + Z` | Rofi bookmarks |
|
||||||
| `Win + X` | Change theme |
|
| `Win + X` | Rofi powermenu |
|
||||||
| `Win + C` | Use screenshot script |
|
| `Win + C` | Rofi screenshot script |
|
||||||
| `Win + G` | Gaps settings |
|
| `Win + G` | Gaps settings |
|
||||||
| `Win + V` | Set vertical orientation |
|
| `Win + V` | Set vertical orientation |
|
||||||
| `Win + H` | Set horizontal orientation |
|
| `Win + H` | Set horizontal orientation |
|
||||||
@@ -192,43 +192,47 @@ These are the basic keybinds. Read through the `i3` config for more keybinds.
|
|||||||
|
|
||||||
Note: `Win` refers to the `Super/Mod` key.
|
Note: `Win` refers to the `Super/Mod` key.
|
||||||
|
|
||||||
## 🌈 Colors
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Colors</summary>
|
||||||
|
|
||||||
| Color | Hex code |
|
| Color | Hex code |
|
||||||
| ---------------------- | ---------------------------------------- |
|
| ---------------------- | ---------------------------------------- |
|
||||||
| background | #21222C |
|
| background | #1b1b25 |
|
||||||
| background 2 | #282A36 |
|
| background 2 | #282A36 |
|
||||||
| background 3 | #343746 |
|
| background 3 | #16161e |
|
||||||
| foreground | #F8F8F2 |
|
| border | #343746 |
|
||||||
| white | #FFFFFF |
|
| foreground | #dedede |
|
||||||
| black | #15121C |
|
| white | #eeffff |
|
||||||
| red | #f07178 |
|
| black | #15121c |
|
||||||
| green | #c3e88d |
|
| red | #cb5760 |
|
||||||
| yellow | #ffcb6b |
|
| green | #999f63 |
|
||||||
| blue | #82aaff |
|
| yellow | #d4a067 |
|
||||||
| purple | #c792ea |
|
| blue | #6c90a8 |
|
||||||
| cyan | #89ddff |
|
| purple | #776690 |
|
||||||
|
| cyan | #528a9b |
|
||||||
| pink | #ffa8c5 |
|
| pink | #ffa8c5 |
|
||||||
| orange | #dd864a |
|
| orange | #c87c3e |
|
||||||
|
|
||||||
## ⚙️ Troubleshooting
|
</details>
|
||||||
|
|
||||||
1. Polybar modules not working? : Try changing variables (For example in battery module from BAT1 to BAT0).
|
## Support and Thankies
|
||||||
3. Screen flashing black : Try changing picom config.
|
|
||||||
4. Scripts not working : Maybe try to edit shebang.
|
|
||||||
5. MPD not working : Check if any other program is using port 6600 (http://127.0.0.1:6600/).
|
|
||||||
|
|
||||||
## ✨ Big thanks to
|
You can support me simply by dropping a **star** on **[github]()** or giving a **subscription** on **[YouTube]()**.
|
||||||
|
|
||||||
These dotfiles includes some files from others rices. Original sources:
|
<!-- If you enjoyed it and would like to show your appreciation, you can **tip** using **[kofi]()** or **[paypal]()**. -->
|
||||||
* [Totoro](https://github.com/totoro-ghost) for [polybar frontend](https://github.com/totoro-ghost/dotfiles/tree/master/.config/polybar)
|
|
||||||
* [Adi1090x](https://github.com/adi1090x) for [rofi backend](https://github.com/adi1090x/rofi)
|
|
||||||
* [Alexander-Miller](https://github.com/Alexander-Miller) for [ncmpcpp config](https://github.com/Alexander-Miller/dotfiles/blob/master/.config/ncmpcpp/config)
|
|
||||||
* [Axarva](https://github.com/Axarva/) for [arch install script](https://github.com/Axarva/dotfiles-2.0/blob/main/install-on-arch.sh)
|
|
||||||
* [Ceuk](https://github.com/ceuk/) for [rofi screenshot script](https://github.com/ceuk/rofi-screenshot)
|
|
||||||
* [Milosz](https://github.com/milosz) for [rofi-bookmarks](https://github.com/milosz/rofi-firefox-bookmarks)
|
|
||||||
* [Unnat](https://github.com/UnnatShaneshwar) for [wallpaper](https://github.com/UnnatShaneshwar/OneDarkWallpapers/blob/main/11.png)
|
|
||||||
|
|
||||||
## 🪪 License
|
**Big thanks to:**
|
||||||
|
[adi1090x](https://github.com/adi1090x),
|
||||||
|
[Totoro](https://github.com/totoro-ghost).
|
||||||
|
|
||||||
Distributed under the [GPLv3+](https://www.gnu.org/licenses/gpl-3.0.html) License.
|
Thanks to all contributors! :D
|
||||||
|
|
||||||
|
## Contributions
|
||||||
|
|
||||||
|
Feel free to create issue or pull request.
|
||||||
|
If you need any help, you can ask questions here on **[discussions](https://github.com/Keyitdev/dotfiles/discussions/categories/q-a)** or contact me on **[discord]()** / **[matrix]()**.
|
||||||
|
|
||||||
|
Distributed under the **[GPLv3+](https://www.gnu.org/licenses/gpl-3.0.html) License**.
|
||||||
|
Copyright (C) 2022 Keyitdev.
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
window:
|
||||||
|
padding:
|
||||||
|
x: 8
|
||||||
|
y: 8
|
||||||
|
opacity: 0.9
|
||||||
|
|
||||||
|
font:
|
||||||
|
size: 7.5
|
||||||
|
normal:
|
||||||
|
family: Roboto mono
|
||||||
|
# style: medium
|
||||||
|
|
||||||
|
colors:
|
||||||
|
|
||||||
|
primary:
|
||||||
|
background: '#1b1b25'
|
||||||
|
foreground: '#dedede'
|
||||||
|
|
||||||
|
normal:
|
||||||
|
black: '#15121c'
|
||||||
|
red: '#cb5760'
|
||||||
|
green: '#999f63'
|
||||||
|
yellow: '#d4a067'
|
||||||
|
blue: '#6c90a8'
|
||||||
|
magenta: '#776690'
|
||||||
|
cyan: '#528a9b'
|
||||||
|
white: '#eeffff'
|
||||||
|
|
||||||
|
bright:
|
||||||
|
black: '#727480'
|
||||||
|
red: '#cb5760'
|
||||||
|
green: '#999f63'
|
||||||
|
yellow: '#d4a067'
|
||||||
|
blue: '#6c90a8'
|
||||||
|
magenta: '#776690'
|
||||||
|
cyan: '#528a9b'
|
||||||
|
white: '#eeffff'
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
# Config created by Keyitdev https://www.github.com/keyitdev/dotfiles
|
|
||||||
# Copyright (C) 2022 Keyitdev
|
|
||||||
# ~/.config/betterlockscreenrc
|
|
||||||
|
|
||||||
# default options
|
|
||||||
display_on=0
|
|
||||||
span_image=false
|
|
||||||
lock_timeout=300
|
|
||||||
fx_list=(dim blur dimblur pixel dimpixel color)
|
|
||||||
dim_level=40
|
|
||||||
blur_level=1
|
|
||||||
pixel_scale=10,1000
|
|
||||||
solid_color=333333
|
|
||||||
wallpaper_cmd="feh --bg-fill"
|
|
||||||
# i3lockcolor_bin="i3lock-color" # Manually set command for i3lock-color
|
|
||||||
|
|
||||||
# default theme
|
|
||||||
loginbox=00000066
|
|
||||||
loginshadow=00000000
|
|
||||||
locktext="Type password to unlock"
|
|
||||||
font="Roboto mono"
|
|
||||||
ringcolor=ffffffff
|
|
||||||
insidecolor=00000000
|
|
||||||
separatorcolor=00000000
|
|
||||||
ringvercolor=ffffffff
|
|
||||||
insidevercolor=ffcb6bff
|
|
||||||
ringwrongcolor=ffffffff
|
|
||||||
insidewrongcolor=f07178ff
|
|
||||||
timecolor=ffffffff
|
|
||||||
time_format="%H:%M:%S"
|
|
||||||
greetercolor=ffffffff
|
|
||||||
layoutcolor=ffffffff
|
|
||||||
keyhlcolor=f07178ff
|
|
||||||
bshlcolor=f07178ff
|
|
||||||
verifcolor=ffffffff
|
|
||||||
wrongcolor=f07178ff
|
|
||||||
modifcolor=f07178ff
|
|
||||||
bgcolor=000000ff
|
|
||||||
@@ -1,164 +0,0 @@
|
|||||||
## Configuration file for CAVA. Default values are commented out. Use either ';' or '#' for commenting.
|
|
||||||
|
|
||||||
[general]
|
|
||||||
|
|
||||||
# Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0
|
|
||||||
; mode = normal
|
|
||||||
|
|
||||||
# Accepts only non-negative values.
|
|
||||||
framerate = 144
|
|
||||||
|
|
||||||
# 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off
|
|
||||||
# new as of 0.6.0 autosens of low values (dynamic range)
|
|
||||||
# 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0
|
|
||||||
; autosens = 1
|
|
||||||
; overshoot = 20
|
|
||||||
|
|
||||||
# Manual sensitivity in %. If autosens is enabled, this will only be the initial value.
|
|
||||||
# 200 means double height. Accepts only non-negative values.
|
|
||||||
; sensitivity = 100
|
|
||||||
|
|
||||||
# The number of bars (0-200). 0 sets it to auto (fill up console).
|
|
||||||
# Bars' width and space between bars in number of characters.
|
|
||||||
; bars = 0
|
|
||||||
bar_width = 1
|
|
||||||
; bar_spacing = 1
|
|
||||||
|
|
||||||
|
|
||||||
# Lower and higher cutoff frequencies for lowest and highest bars
|
|
||||||
# the bandwidth of the visualizer.
|
|
||||||
# Note: there is a minimum total bandwidth of 43Mhz x number of bars.
|
|
||||||
# Cava will automatically increase the higher cutoff if a too low band is specified.
|
|
||||||
; lower_cutoff_freq = 50
|
|
||||||
; higher_cutoff_freq = 10000
|
|
||||||
|
|
||||||
|
|
||||||
# Seconds with no input before cava goes to sleep mode. Cava will not perform FFT or drawing and
|
|
||||||
# only check for input once per second. Cava will wake up once input is detected. 0 = disable.
|
|
||||||
; sleep_timer = 0
|
|
||||||
|
|
||||||
|
|
||||||
[input]
|
|
||||||
|
|
||||||
# Audio capturing method. Possible methods are: 'pulse', 'alsa', 'fifo', 'sndio' or 'shmem'
|
|
||||||
# Defaults to 'pulse', 'alsa' or 'fifo', in that order, dependent on what support cava was built with.
|
|
||||||
#
|
|
||||||
# All input methods uses the same config variable 'source'
|
|
||||||
# to define where it should get the audio.
|
|
||||||
#
|
|
||||||
# For pulseaudio 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink
|
|
||||||
# (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them).
|
|
||||||
#
|
|
||||||
# For alsa 'source' will be the capture device.
|
|
||||||
# For fifo 'source' will be the path to fifo-file.
|
|
||||||
# For shmem 'source' will be /squeezelite-AA:BB:CC:DD:EE:FF where 'AA:BB:CC:DD:EE:FF' will be squeezelite's MAC address
|
|
||||||
; method = pulse
|
|
||||||
; source = auto
|
|
||||||
|
|
||||||
; method = alsa
|
|
||||||
; source = hw:Loopback,1
|
|
||||||
|
|
||||||
; method = fifo
|
|
||||||
; source = /tmp/mpd.fifo
|
|
||||||
; sample_rate = 44100
|
|
||||||
; sample_bits = 16
|
|
||||||
|
|
||||||
; method = shmem
|
|
||||||
; source = /squeezelite-AA:BB:CC:DD:EE:FF
|
|
||||||
|
|
||||||
; method = portaudio
|
|
||||||
; source = auto
|
|
||||||
|
|
||||||
|
|
||||||
[output]
|
|
||||||
|
|
||||||
# Output method. Can be 'ncurses', 'noncurses' or 'raw'.
|
|
||||||
# 'noncurses' uses a custom framebuffer technique and draws only changes
|
|
||||||
# from frame to frame. 'ncurses' is default if supported
|
|
||||||
#
|
|
||||||
# 'raw' is an 8 or 16 bit (configurable via the 'bit_format' option) data
|
|
||||||
# stream of the bar heights that can be used to send to other applications.
|
|
||||||
# 'raw' defaults to 200 bars, which can be adjusted in the 'bars' option above.
|
|
||||||
; method = ncurses
|
|
||||||
|
|
||||||
# Visual channels. Can be 'stereo' or 'mono'.
|
|
||||||
# 'stereo' mirrors both channels with low frequencies in center.
|
|
||||||
# 'mono' outputs left to right lowest to highest frequencies.
|
|
||||||
# 'mono_option' set mono to either take input from 'left', 'right' or 'average'.
|
|
||||||
; channels = stereo
|
|
||||||
; mono_option = average
|
|
||||||
|
|
||||||
# Raw output target. A fifo will be created if target does not exist.
|
|
||||||
; raw_target = /dev/stdout
|
|
||||||
|
|
||||||
# Raw data format. Can be 'binary' or 'ascii'.
|
|
||||||
; data_format = binary
|
|
||||||
|
|
||||||
# Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530).
|
|
||||||
; bit_format = 16bit
|
|
||||||
|
|
||||||
# Ascii max value. In 'ascii' mode range will run from 0 to value specified here
|
|
||||||
; ascii_max_range = 1000
|
|
||||||
|
|
||||||
# Ascii delimiters. In ascii format each bar and frame is separated by a delimiters.
|
|
||||||
# Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)).
|
|
||||||
; bar_delimiter = 59
|
|
||||||
; frame_delimiter = 10
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[color]
|
|
||||||
|
|
||||||
# Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow.
|
|
||||||
# Or defined by hex code '#xxxxxx' (hex code must be within ''). User defined colors requires
|
|
||||||
# ncurses output method and a terminal that can change color definitions such as Gnome-terminal or rxvt.
|
|
||||||
# if supported, ncurses mode will be forced on if user defined colors are used.
|
|
||||||
# default is to keep current terminal color
|
|
||||||
; background = default
|
|
||||||
; foreground = default
|
|
||||||
|
|
||||||
# Gradient mode, only hex defined colors (and thereby ncurses mode) are supported,
|
|
||||||
# background must also be defined in hex or remain commented out. 1 = on, 0 = off.
|
|
||||||
# You can define as many as 8 different colors. They range from bottom to top of screen
|
|
||||||
; gradient = 1
|
|
||||||
; gradient_count = 8
|
|
||||||
; gradient_color_1 = '#59cc33'
|
|
||||||
; gradient_color_2 = '#80cc33'
|
|
||||||
; gradient_color_3 = '#a6cc33'
|
|
||||||
; gradient_color_4 = '#cccc33'
|
|
||||||
; gradient_color_5 = '#cca633'
|
|
||||||
; gradient_color_6 = '#cc8033'
|
|
||||||
; gradient_color_7 = '#cc5933'
|
|
||||||
; gradient_color_8 = '#cc3333'
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[smoothing]
|
|
||||||
|
|
||||||
# Percentage value for integral smoothing. Takes values from 0 - 100.
|
|
||||||
# Higher values means smoother, but less precise. 0 to disable.
|
|
||||||
; integral = 77
|
|
||||||
|
|
||||||
# Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable.
|
|
||||||
; monstercat = 0
|
|
||||||
; waves = 0
|
|
||||||
|
|
||||||
# Set gravity percentage for "drop off". Higher values means bars will drop faster.
|
|
||||||
# Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off".
|
|
||||||
; gravity = 100
|
|
||||||
|
|
||||||
|
|
||||||
# In bar height, bars that would have been lower that this will not be drawn.
|
|
||||||
; ignore = 0
|
|
||||||
|
|
||||||
|
|
||||||
[eq]
|
|
||||||
|
|
||||||
# This one is tricky. You can have as much keys as you want.
|
|
||||||
# Remember to uncomment more then one key! More keys = more precision.
|
|
||||||
# Look at readme.md on github for further explanations and examples.
|
|
||||||
; 1 = 1 # bass
|
|
||||||
; 2 = 1
|
|
||||||
; 3 = 1 # midtone
|
|
||||||
; 4 = 1
|
|
||||||
; 5 = 1 # treble
|
|
||||||
+13
-374
@@ -3,433 +3,72 @@
|
|||||||
# Copyright (C) 2022 Keyitdev
|
# Copyright (C) 2022 Keyitdev
|
||||||
|
|
||||||
[global]
|
[global]
|
||||||
### Display ###
|
|
||||||
|
|
||||||
# Which monitor should the notifications be displayed on.
|
|
||||||
monitor = 0
|
monitor = 0
|
||||||
# Display notification on focused monitor. Possible modes are:
|
|
||||||
# mouse: follow mouse pointer
|
|
||||||
# keyboard: follow window with keyboard focus
|
|
||||||
# none: don't follow anything
|
|
||||||
#
|
|
||||||
# "keyboard" needs a window manager that exports the
|
|
||||||
# _NET_ACTIVE_WINDOW property.
|
|
||||||
# This should be the case for almost all modern window managers.
|
|
||||||
#
|
|
||||||
# If this option is set to mouse or keyboard, the monitor option
|
|
||||||
# will be ignored.
|
|
||||||
follow = mouse
|
follow = mouse
|
||||||
|
|
||||||
### Geometry ###
|
|
||||||
|
|
||||||
# dynamic width from 0 to 300
|
|
||||||
# width = (0, 300)
|
|
||||||
# constant width of 300
|
|
||||||
width = (300,400)
|
width = (300,400)
|
||||||
|
height = 250
|
||||||
# The maximum height of a single notification, excluding the frame.
|
|
||||||
height = 300
|
|
||||||
|
|
||||||
# Position the notification in the top right corner
|
|
||||||
origin = top-right
|
origin = top-right
|
||||||
|
|
||||||
# Offset from the origin
|
|
||||||
offset = 8x47
|
offset = 8x47
|
||||||
|
|
||||||
# Show how many messages are currently hidden (because of geometry).
|
|
||||||
indicate_hidden = yes
|
indicate_hidden = yes
|
||||||
|
|
||||||
# Shrink window if it's smaller than the width. Will be ignored if
|
|
||||||
# width is 0.
|
|
||||||
shrink = no
|
shrink = no
|
||||||
|
|
||||||
# The transparency of the window. Range: [0; 100].
|
|
||||||
# This option will only work if a compositing window manager is
|
|
||||||
# present (e.g. xcompmgr, compiz, etc.).
|
|
||||||
transparency = 0
|
transparency = 0
|
||||||
|
|
||||||
# The height of the entire notification. If the height is smaller
|
|
||||||
# than the font height and padding combined, it will be raised
|
|
||||||
# to the font height and padding.
|
|
||||||
notification_height = 0
|
notification_height = 0
|
||||||
|
|
||||||
# Draw a line of "separator_height" pixel height between two
|
|
||||||
# notifications.
|
|
||||||
# Set to 0 to disable.
|
|
||||||
separator_height = 2
|
separator_height = 2
|
||||||
|
|
||||||
# Padding between text and separator.
|
|
||||||
padding = 12
|
padding = 12
|
||||||
|
|
||||||
# Horizontal padding.
|
|
||||||
horizontal_padding = 12
|
horizontal_padding = 12
|
||||||
|
frame_width = 2
|
||||||
# Defines width in pixels of frame around the notification window.
|
|
||||||
# Set to 0 to disable.
|
|
||||||
frame_width = 4
|
|
||||||
|
|
||||||
# Defines color of the frame around the notification window.
|
|
||||||
frame_color = "#343746"
|
frame_color = "#343746"
|
||||||
|
|
||||||
# Define a color for the separator.
|
|
||||||
# possible values are:
|
|
||||||
# * auto: dunst tries to find a color fitting to the background;
|
|
||||||
# * foreground: use the same color as the foreground;
|
|
||||||
# * frame: use the same color as the frame;
|
|
||||||
# * anything else will be interpreted as a X color.
|
|
||||||
separator_color = frame
|
separator_color = frame
|
||||||
|
|
||||||
# Sort messages by urgency.
|
|
||||||
sort = yes
|
sort = yes
|
||||||
|
|
||||||
# Don't remove messages, if the user is idle (no mouse or keyboard input)
|
|
||||||
# for longer than idle_threshold seconds.
|
|
||||||
# Set to 0 to disable.
|
|
||||||
# A client can set the 'transient' hint to bypass this. See the rules
|
|
||||||
# section for how to disable this if necessary
|
|
||||||
idle_threshold = 120
|
idle_threshold = 120
|
||||||
|
font = Roboto mono 12
|
||||||
### Text ###
|
|
||||||
|
|
||||||
font = Open sans 12
|
|
||||||
|
|
||||||
# The spacing between lines. If the height is smaller than the
|
|
||||||
# font height, it will get raised to the font height.
|
|
||||||
line_height = 0
|
line_height = 0
|
||||||
|
|
||||||
# Possible values are:
|
|
||||||
# full: Allow a small subset of html markup in notifications:
|
|
||||||
# <b>bold</b>
|
|
||||||
# <i>italic</i>
|
|
||||||
# <s>strikethrough</s>
|
|
||||||
# <u>underline</u>
|
|
||||||
#
|
|
||||||
# For a complete reference see
|
|
||||||
# <https://developer.gnome.org/pango/stable/pango-Markup.html>.
|
|
||||||
#
|
|
||||||
# strip: This setting is provided for compatibility with some broken
|
|
||||||
# clients that send markup even though it's not enabled on the
|
|
||||||
# server. Dunst will try to strip the markup but the parsing is
|
|
||||||
# simplistic so using this option outside of matching rules for
|
|
||||||
# specific applications *IS GREATLY DISCOURAGED*.
|
|
||||||
#
|
|
||||||
# no: Disable markup parsing, incoming notifications will be treated as
|
|
||||||
# plain text. Dunst will not advertise that it has the body-markup
|
|
||||||
# capability if this is set as a global setting.
|
|
||||||
#
|
|
||||||
# It's important to note that markup inside the format option will be parsed
|
|
||||||
# regardless of what this is set to.
|
|
||||||
markup = full
|
markup = full
|
||||||
|
|
||||||
# The format of the message. Possible variables are:
|
|
||||||
# %a appname
|
|
||||||
# %s summary
|
|
||||||
# %b body
|
|
||||||
# %i iconname (including its path)
|
|
||||||
# %I iconname (without its path)
|
|
||||||
# %p progress value if set ([ 0%] to [100%]) or nothing
|
|
||||||
# %n progress value if set without any extra characters
|
|
||||||
# %% Literal %
|
|
||||||
# Markup is allowed
|
|
||||||
format = "<b>%s</b>\n%b"
|
format = "<b>%s</b>\n%b"
|
||||||
|
|
||||||
# Alignment of message text.
|
|
||||||
# Possible values are "left", "center" and "right".
|
|
||||||
alignment = left
|
alignment = left
|
||||||
|
|
||||||
# Vertical alignment of message text and icon.
|
|
||||||
# Possible values are "top", "center" and "bottom".
|
|
||||||
vertical_alignment = center
|
vertical_alignment = center
|
||||||
|
|
||||||
# Show age of message if message is older than show_age_threshold
|
|
||||||
# seconds.
|
|
||||||
# Set to -1 to disable.
|
|
||||||
show_age_threshold = 60
|
show_age_threshold = 60
|
||||||
|
|
||||||
# Split notifications into multiple lines if they don't fit into
|
|
||||||
# geometry.
|
|
||||||
word_wrap = yes
|
word_wrap = yes
|
||||||
|
|
||||||
# When word_wrap is set to no, specify where to make an ellipsis in long lines.
|
|
||||||
# Possible values are "start", "middle" and "end".
|
|
||||||
ellipsize = middle
|
ellipsize = middle
|
||||||
|
|
||||||
# Ignore newlines '\n' in notifications.
|
|
||||||
ignore_newline = no
|
ignore_newline = no
|
||||||
|
stack_duplicates = true
|
||||||
# Stack together notifications with the same content
|
|
||||||
stack_duplicates = false
|
|
||||||
|
|
||||||
# Hide the count of stacked notifications with the same content
|
|
||||||
hide_duplicate_count = false
|
hide_duplicate_count = false
|
||||||
|
|
||||||
# Display indicators for URLs (U) and actions (A).
|
|
||||||
show_indicators = no
|
show_indicators = no
|
||||||
|
|
||||||
### Icons ###
|
|
||||||
|
|
||||||
# Align icons left/right/off
|
|
||||||
icon_position = left
|
icon_position = left
|
||||||
|
min_icon_size = 50
|
||||||
# Scale small icons up to this size, set to 0 to disable. Helpful
|
|
||||||
# for e.g. small files or high-dpi screens. In case of conflict,
|
|
||||||
# max_icon_size takes precedence over this.
|
|
||||||
min_icon_size = 0
|
|
||||||
|
|
||||||
# Scale larger icons down to this size, set to 0 to disable
|
|
||||||
max_icon_size = 50
|
max_icon_size = 50
|
||||||
|
|
||||||
# Paths to default icons.
|
|
||||||
icon_path = /usr/share/icons/Papirus/16x16/
|
icon_path = /usr/share/icons/Papirus/16x16/
|
||||||
|
|
||||||
### History ###
|
|
||||||
|
|
||||||
# Should a notification popped up from history be sticky or timeout
|
|
||||||
# as if it would normally do.
|
|
||||||
sticky_history = no
|
sticky_history = no
|
||||||
|
|
||||||
# Maximum amount of notifications kept in history
|
|
||||||
history_length = 50
|
history_length = 50
|
||||||
|
|
||||||
### Misc/Advanced ###
|
|
||||||
|
|
||||||
# dmenu path.
|
|
||||||
dmenu = /usr/bin/dmenu -p dunst:
|
dmenu = /usr/bin/dmenu -p dunst:
|
||||||
|
|
||||||
# Browser for opening urls in context menu.
|
|
||||||
browser = /usr/bin/sensible-browser
|
browser = /usr/bin/sensible-browser
|
||||||
|
|
||||||
# Always run rule-defined scripts, even if the notification is suppressed
|
|
||||||
always_run_script = true
|
always_run_script = true
|
||||||
|
|
||||||
# Define the title of the windows spawned by dunst
|
|
||||||
title = Dunst
|
title = Dunst
|
||||||
|
|
||||||
# Define the class of the windows spawned by dunst
|
|
||||||
class = Dunst
|
class = Dunst
|
||||||
|
|
||||||
# Print a notification on startup.
|
|
||||||
# This is mainly for error detection, since dbus (re-)starts dunst
|
|
||||||
# automatically after a crash.
|
|
||||||
startup_notification = false
|
startup_notification = false
|
||||||
|
|
||||||
# Manage dunst's desire for talking
|
|
||||||
# Can be one of the following values:
|
|
||||||
# crit: Critical features. Dunst aborts
|
|
||||||
# warn: Only non-fatal warnings
|
|
||||||
# mesg: Important Messages
|
|
||||||
# info: all unimportant stuff
|
|
||||||
# debug: all less than unimportant stuff
|
|
||||||
verbosity = mesg
|
verbosity = mesg
|
||||||
|
corner_radius = 20
|
||||||
# Define the corner radius of the notification window
|
|
||||||
# in pixel size. If the radius is 0, you have no rounded
|
|
||||||
# corners.
|
|
||||||
# The radius will be automatically lowered if it exceeds half of the
|
|
||||||
# notification height to avoid clipping text and/or icons.
|
|
||||||
|
|
||||||
# Ignore the dbus closeNotification message.
|
|
||||||
# Useful to enforce the timeout set by dunst configuration. Without this
|
|
||||||
# parameter, an application may close the notification sent before the
|
|
||||||
# user defined timeout.
|
|
||||||
ignore_dbusclose = false
|
ignore_dbusclose = false
|
||||||
|
|
||||||
### Legacy
|
|
||||||
|
|
||||||
# Use the Xinerama extension instead of RandR for multi-monitor support.
|
|
||||||
# This setting is provided for compatibility with older nVidia drivers that
|
|
||||||
# do not support RandR and using it on systems that support RandR is highly
|
|
||||||
# discouraged.
|
|
||||||
#
|
|
||||||
# By enabling this setting dunst will not be able to detect when a monitor
|
|
||||||
# is connected or disconnected which might break follow mode if the screen
|
|
||||||
# layout changes.
|
|
||||||
force_xinerama = false
|
force_xinerama = false
|
||||||
|
|
||||||
### mouse
|
|
||||||
|
|
||||||
# Defines list of actions for each mouse event
|
|
||||||
# Possible values are:
|
|
||||||
# * none: Don't do anything.
|
|
||||||
# * do_action: If the notification has exactly one action, or one is marked as default,
|
|
||||||
# invoke it. If there are multiple and no default, open the context menu.
|
|
||||||
# * close_current: Close current notification.
|
|
||||||
# * close_all: Close all notifications.
|
|
||||||
# These values can be strung together for each mouse event, and
|
|
||||||
# will be executed in sequence.
|
|
||||||
mouse_left_click = close_current
|
|
||||||
mouse_middle_click = do_action, close_current
|
mouse_middle_click = do_action, close_current
|
||||||
mouse_right_click = close_all
|
mouse_right_click = close_all
|
||||||
|
|
||||||
# Experimental features that may or may not work correctly. Do not expect them
|
|
||||||
# to have a consistent behaviour across releases.
|
|
||||||
[experimental]
|
[experimental]
|
||||||
# Calculate the dpi to use on a per-monitor basis.
|
|
||||||
# If this setting is enabled the Xft.dpi value will be ignored and instead
|
|
||||||
# dunst will attempt to calculate an appropriate dpi value for each monitor
|
|
||||||
# using the resolution and physical size. This might be useful in setups
|
|
||||||
# where there are multiple screens with very different dpi values.
|
|
||||||
per_monitor_dpi = false
|
per_monitor_dpi = false
|
||||||
|
|
||||||
[shortcuts]
|
[shortcuts]
|
||||||
|
|
||||||
# Shortcuts are specified as [modifier+][modifier+]...key
|
|
||||||
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
|
|
||||||
# "mod3" and "mod4" (windows-key).
|
|
||||||
# Xev might be helpful to find names for keys.
|
|
||||||
|
|
||||||
# Close notification.
|
|
||||||
close = ctrl+space
|
close = ctrl+space
|
||||||
|
|
||||||
# Close all notifications.
|
|
||||||
close_all = ctrl+shift+space
|
close_all = ctrl+shift+space
|
||||||
|
|
||||||
# Redisplay last message(s).
|
|
||||||
# On the US keyboard layout "grave" is normally above TAB and left
|
|
||||||
# of "1". Make sure this key actually exists on your keyboard layout,
|
|
||||||
# e.g. check output of 'xmodmap -pke'
|
|
||||||
history = ctrl+grave
|
history = ctrl+grave
|
||||||
|
|
||||||
# Context menu.
|
|
||||||
context = ctrl+shift+period
|
context = ctrl+shift+period
|
||||||
|
|
||||||
[urgency_low]
|
[urgency_low]
|
||||||
# IMPORTANT: colors have to be defined in quotation marks.
|
background = "#1b1b25"
|
||||||
# Otherwise the "#" and following would be interpreted as a comment.
|
foreground = "#dedede"
|
||||||
background = "#21222C"
|
|
||||||
foreground = "#F8F8F2"
|
|
||||||
timeout = 5
|
timeout = 5
|
||||||
# Icon for notifications with low urgency, uncomment to enable
|
|
||||||
#icon = /path/to/icon
|
|
||||||
|
|
||||||
[urgency_normal]
|
[urgency_normal]
|
||||||
background = "#21222C"
|
background = "#1b1b25"
|
||||||
foreground = "#F8F8F2"
|
foreground = "#dedede"
|
||||||
timeout = 5
|
timeout = 5
|
||||||
# Icon for notifications with normal urgency, uncomment to enable
|
|
||||||
#icon = /path/to/icon
|
|
||||||
|
|
||||||
[urgency_critical]
|
[urgency_critical]
|
||||||
background = "#21222C"
|
background = "#1b1b25"
|
||||||
foreground = "#F8F8F2"
|
foreground = "#dedede"
|
||||||
frame_color = "#f07178"
|
frame_color = "#f07178"
|
||||||
timeout = 0
|
timeout = 0
|
||||||
# Icon for notifications with critical urgency, uncomment to enable
|
|
||||||
#icon = /path/to/icon
|
|
||||||
|
|
||||||
# Every section that isn't one of the above is interpreted as a rules to
|
|
||||||
# override settings for certain messages.
|
|
||||||
#
|
|
||||||
# Messages can be matched by
|
|
||||||
# appname (discouraged, see desktop_entry)
|
|
||||||
# body
|
|
||||||
# category
|
|
||||||
# desktop_entry
|
|
||||||
# icon
|
|
||||||
# match_transient
|
|
||||||
# msg_urgency
|
|
||||||
# stack_tag
|
|
||||||
# summary
|
|
||||||
#
|
|
||||||
# and you can override the
|
|
||||||
# background
|
|
||||||
# foreground
|
|
||||||
# format
|
|
||||||
# frame_color
|
|
||||||
# fullscreen
|
|
||||||
# new_icon
|
|
||||||
# set_stack_tag
|
|
||||||
# set_transient
|
|
||||||
# timeout
|
|
||||||
# urgency
|
|
||||||
#
|
|
||||||
# Shell-like globbing will get expanded.
|
|
||||||
#
|
|
||||||
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
|
|
||||||
# GLib based applications export their desktop-entry name. In comparison to the appname,
|
|
||||||
# the desktop-entry won't get localized.
|
|
||||||
#
|
|
||||||
# SCRIPTING
|
|
||||||
# You can specify a script that gets run when the rule matches by
|
|
||||||
# setting the "script" option.
|
|
||||||
# The script will be called as follows:
|
|
||||||
# script appname summary body icon urgency
|
|
||||||
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
|
|
||||||
#
|
|
||||||
# NOTE: if you don't want a notification to be displayed, set the format
|
|
||||||
# to "".
|
|
||||||
# NOTE: It might be helpful to run dunst -print in a terminal in order
|
|
||||||
# to find fitting options for rules.
|
|
||||||
|
|
||||||
# Disable the transient hint so that idle_threshold cannot be bypassed from the
|
|
||||||
# client
|
|
||||||
#[transient_disable]
|
|
||||||
# match_transient = yes
|
|
||||||
# set_transient = no
|
|
||||||
#
|
|
||||||
# Make the handling of transient notifications more strict by making them not
|
|
||||||
# be placed in history.
|
|
||||||
#[transient_history_ignore]
|
|
||||||
# match_transient = yes
|
|
||||||
# history_ignore = yes
|
|
||||||
|
|
||||||
# fullscreen values
|
|
||||||
# show: show the notifications, regardless if there is a fullscreen window opened
|
|
||||||
# delay: displays the new notification, if there is no fullscreen window active
|
|
||||||
# If the notification is already drawn, it won't get undrawn.
|
|
||||||
# pushback: same as delay, but when switching into fullscreen, the notification will get
|
|
||||||
# withdrawn from screen again and will get delayed like a new notification
|
|
||||||
#[fullscreen_delay_everything]
|
|
||||||
# fullscreen = delay
|
|
||||||
#[fullscreen_show_critical]
|
|
||||||
# msg_urgency = critical
|
|
||||||
# fullscreen = show
|
|
||||||
|
|
||||||
#[espeak]
|
|
||||||
# summary = "*"
|
|
||||||
# script = dunst_espeak.sh
|
|
||||||
|
|
||||||
#[script-test]
|
|
||||||
# summary = "*script*"
|
|
||||||
# script = dunst_test.sh
|
|
||||||
|
|
||||||
#[ignore]
|
|
||||||
# # This notification will not be displayed
|
|
||||||
# summary = "foobar"
|
|
||||||
# format = ""
|
|
||||||
|
|
||||||
#[history-ignore]
|
|
||||||
# # This notification will not be saved in history
|
|
||||||
# summary = "foobar"
|
|
||||||
# history_ignore = yes
|
|
||||||
|
|
||||||
#[skip-display]
|
|
||||||
# # This notification will not be displayed, but will be included in the history
|
|
||||||
# summary = "foobar"
|
|
||||||
# skip_display = yes
|
|
||||||
|
|
||||||
#[signed_on]
|
|
||||||
# appname = Pidgin
|
|
||||||
# summary = "*signed on*"
|
|
||||||
# urgency = low
|
|
||||||
#
|
|
||||||
#[signed_off]
|
|
||||||
# appname = Pidgin
|
|
||||||
# summary = *signed off*
|
|
||||||
# urgency = low
|
|
||||||
#
|
|
||||||
#[says]
|
|
||||||
# appname = Pidgin
|
|
||||||
# summary = *says*
|
|
||||||
# urgency = critical
|
|
||||||
#
|
|
||||||
#[twitter]
|
|
||||||
# appname = Pidgin
|
|
||||||
# summary = *twitter.com*
|
|
||||||
# urgency = normal
|
|
||||||
#
|
|
||||||
#[stack-volumes]
|
|
||||||
# appname = "some_volume_notifiers"
|
|
||||||
# set_stack_tag = "volume"
|
|
||||||
#
|
|
||||||
# vim: ft=cfg
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
[Settings]
|
[Settings]
|
||||||
gtk-icon-theme-name = Papirus
|
gtk-icon-theme-name = Papirus
|
||||||
gtk-theme-name = Dracula
|
gtk-theme-name = tokyonight_gtk
|
||||||
gtk-font-name = Open sans 12
|
gtk-font-name = Open sans 12
|
||||||
gtk-application-prefer-dark-theme = true
|
gtk-application-prefer-dark-theme = true
|
||||||
+28
-21
@@ -13,9 +13,6 @@ font pango:Open sans 11
|
|||||||
# run picom
|
# run picom
|
||||||
exec_always --no-startup-id picom &
|
exec_always --no-startup-id picom &
|
||||||
|
|
||||||
# render wallpaper for lockscreen
|
|
||||||
exec_always betterlockscreen -u ~/Pictures/wallpapers/lockscreen.png --display 1 --span &
|
|
||||||
|
|
||||||
# run mpd
|
# run mpd
|
||||||
exec_always --no-startup-id mpd &
|
exec_always --no-startup-id mpd &
|
||||||
|
|
||||||
@@ -23,7 +20,7 @@ exec_always --no-startup-id mpd &
|
|||||||
exec_always --no-startup-id dunst &
|
exec_always --no-startup-id dunst &
|
||||||
|
|
||||||
# set wallpaper with fed
|
# set wallpaper with fed
|
||||||
exec_always feh --bg-scale $HOME/Pictures/wallpapers/current_blue.png
|
exec_always feh --no-fehbg --bg-scale $HOME/Pictures/wallpapers/background.png
|
||||||
|
|
||||||
# launch polybar
|
# launch polybar
|
||||||
exec_always --no-startup-id killall -q
|
exec_always --no-startup-id killall -q
|
||||||
@@ -41,7 +38,7 @@ exec --no-startup-id nm-applet
|
|||||||
floating_modifier $mod
|
floating_modifier $mod
|
||||||
|
|
||||||
# start a terminal
|
# start a terminal
|
||||||
bindsym $mod+Return exec kitty
|
bindsym $mod+Return exec alacritty
|
||||||
|
|
||||||
# kill focused window
|
# kill focused window
|
||||||
bindsym $mod+Shift+q kill
|
bindsym $mod+Shift+q kill
|
||||||
@@ -84,6 +81,10 @@ bindsym $mod+q layout stacking
|
|||||||
bindsym $mod+w layout tabbed
|
bindsym $mod+w layout tabbed
|
||||||
bindsym $mod+e layout toggle split
|
bindsym $mod+e layout toggle split
|
||||||
|
|
||||||
|
# save and restore layout with i3-resurrect
|
||||||
|
bindsym $mod+t exec --no-startup-id i3-resurrect restore
|
||||||
|
bindsym $mod+y exec --no-startup-id i3-resurrect save
|
||||||
|
|
||||||
# toggle tiling / floating
|
# toggle tiling / floating
|
||||||
bindsym $mod+Shift+space floating toggle
|
bindsym $mod+Shift+space floating toggle
|
||||||
|
|
||||||
@@ -91,7 +92,7 @@ bindsym $mod+Shift+space floating toggle
|
|||||||
bindsym $mod+space focus mode_toggle
|
bindsym $mod+space focus mode_toggle
|
||||||
|
|
||||||
# run lockscreen
|
# run lockscreen
|
||||||
bindsym $mod+i exec betterlockscreen -l
|
bindsym $mod+i exec lock
|
||||||
|
|
||||||
# monitor settings
|
# monitor settings
|
||||||
bindsym $mod+n exec xrandr --auto --output eDP-1 --mode 1920x1080 --right-of HDMI-1 && i3-msg restart &
|
bindsym $mod+n exec xrandr --auto --output eDP-1 --mode 1920x1080 --right-of HDMI-1 && i3-msg restart &
|
||||||
@@ -111,38 +112,42 @@ bindsym $mod+b move workspace to output right
|
|||||||
#bindsym $mod+d focus child
|
#bindsym $mod+d focus child
|
||||||
|
|
||||||
# run rofi programs
|
# run rofi programs
|
||||||
bindsym $mod+a exec "rofi -show drun -no-default-config -config ~/.config/rofi/sidebar.rasi"
|
bindsym $mod+a exec "rofi -show window -no-default-config -config ~/.config/rofi/main.rasi"
|
||||||
bindsym $mod+d exec "rofi -show drun -no-default-config -config ~/.config/rofi/center.rasi"
|
bindsym $mod+d exec "rofi -show drun -no-default-config -config ~/.config/rofi/main.rasi"
|
||||||
bindsym $mod+s exec "rofi -show drun -no-default-config -config ~/.config/rofi/compact.rasi"
|
bindsym $mod+s exec "rofi -show drun -no-default-config -config ~/.config/rofi/full_screen.rasi"
|
||||||
bindsym $mod+z exec "rofi -show -modi ':rofi-bookmarks' -no-default-config -config ~/.config/rofi/compact.rasi"
|
bindsym $mod+z exec "rofi -show -modi ':rofi-bookmarks' -no-default-config -config ~/.config/rofi/main.rasi"
|
||||||
bindsym $mod+x exec "theme"
|
|
||||||
bindsym $mod+c exec "rofi-screenshot"
|
bindsym $mod+c exec "rofi-screenshot"
|
||||||
|
|
||||||
# take a screenshot
|
# take a screenshot
|
||||||
bindsym Pause exec screenshot -crtf
|
bindsym Pause exec screenshot -sa
|
||||||
bindsym Print exec screenshot -cstf
|
bindsym Print exec screenshot -sf
|
||||||
|
|
||||||
# brightness control
|
# brightness control
|
||||||
exec_always --no-startup-id light -I
|
exec_always --no-startup-id light -I
|
||||||
bindsym XF86MonBrightnessUp exec light -A 2 && light -O# increase screen brightness && brightness &
|
bindsym XF86MonBrightnessUp exec light -A 2 && light -O && brightness &
|
||||||
bindsym XF86MonBrightnessDown exec light -U 2 && light -O# decrease screen brightness && brightness &
|
bindsym XF86MonBrightnessDown exec light -U 2 && light -O && brightness &
|
||||||
|
|
||||||
|
# brightness control hdmi
|
||||||
|
bindsym Ctrl+F7 exec brightness_hdmi down
|
||||||
|
bindsym Ctrl+F8 exec brightness_hdmi up
|
||||||
|
|
||||||
# audio control
|
# audio control
|
||||||
bindsym XF86AudioRaiseVolume exec --no-startup-id amixer -D pulse sset Master 5%+ && volume &
|
bindsym XF86AudioRaiseVolume exec --no-startup-id amixer -D pulse sset Master 5%+ && volume &
|
||||||
bindsym XF86AudioLowerVolume exec --no-startup-id amixer -D pulse sset Master 5%- && volume &
|
bindsym XF86AudioLowerVolume exec --no-startup-id amixer -D pulse sset Master 5%- && volume &
|
||||||
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && mute &
|
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && mute &
|
||||||
#bindsym XF86AudioMicMute exec --no-startup-id amixer -D pulse sset Master 5%+ && volume.sh &
|
#bindsym XF86AudioMicMute exec --no-startup-id amixer -D pulse sset Master 5%+ && volume &
|
||||||
|
|
||||||
# turn off screen
|
# turn off screen
|
||||||
bindsym XF86ScreenSaver exec xset dpms force off
|
bindsym XF86ScreenSaver exec xset dpms force off
|
||||||
|
|
||||||
# :)
|
# :)
|
||||||
bindsym ctrl + F1 exec --no-startup-id kitty
|
bindsym ctrl + F1 exec --no-startup-id alacritty
|
||||||
|
bindsym ctrl + F5 exec --no-startup-id kitty
|
||||||
bindsym ctrl + F2 exec --no-startup-id dmenu_run
|
bindsym ctrl + F2 exec --no-startup-id dmenu_run
|
||||||
|
|
||||||
# toggle microphone
|
# toggle microphone
|
||||||
bindsym ctrl + F3 exec amixer set Capture cap && dunstify -a "Microphone" "Microphone" "Microphone is now unmuted" -r 100 -i /usr/local/bin/icons/mic.svg
|
bindsym ctrl + F3 exec amixer set Capture nocap && dunstify -a "Microphone" "Microphone" "Microphone is muted" -r 100 -i /usr/local/bin/icons/mic-off.svg
|
||||||
bindsym ctrl + F4 exec amixer set Capture nocap && dunstify -a "Microphone" "Microphone" "Microphone is now muted" -r 100 -i /usr/local/bin/icons/mic-off.svg
|
bindsym ctrl + F4 exec amixer set Capture cap && dunstify -a "Microphone" "Microphone" "Microphone is unmuted" -r 100 -i /usr/local/bin/icons/mic.svg
|
||||||
|
|
||||||
# toggle touchpad
|
# toggle touchpad
|
||||||
bindsym ctrl + F9 exec xinput set-prop 15 "Device Enabled" 0 && dunstify -a "Touchpad" "Touchpad" "Touchpad is disabled" -r 100
|
bindsym ctrl + F9 exec xinput set-prop 15 "Device Enabled" 0 && dunstify -a "Touchpad" "Touchpad" "Touchpad is disabled" -r 100
|
||||||
@@ -186,8 +191,10 @@ bindsym $mod+Shift+0 move container to workspace number $ws10
|
|||||||
|
|
||||||
# reload the configuration file
|
# reload the configuration file
|
||||||
bindsym $mod+Shift+c reload
|
bindsym $mod+Shift+c reload
|
||||||
|
|
||||||
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||||
bindsym $mod+Shift+r restart
|
bindsym $mod+Shift+r restart
|
||||||
|
|
||||||
# exit i3 (logs you out of your X session)
|
# 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 "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'"
|
||||||
|
|
||||||
@@ -221,7 +228,7 @@ bindsym $mod+r mode "resize"
|
|||||||
### BODERS ###
|
### BODERS ###
|
||||||
|
|
||||||
#border width
|
#border width
|
||||||
default_border pixel 4
|
default_border pixel 2
|
||||||
|
|
||||||
#border colors
|
#border colors
|
||||||
client.focused #343746 #343746 #F8F8F2 #343746 #343746
|
client.focused #343746 #343746 #F8F8F2 #343746 #343746
|
||||||
|
|||||||
@@ -1,37 +0,0 @@
|
|||||||
# Documentation: https://sw.kovidgoyal.net/kitty/
|
|
||||||
# Config created by Keyitdev https://www.github.com/keyitdev/dotfiles
|
|
||||||
# Copyright (C) 2022 Keyitdev
|
|
||||||
|
|
||||||
font_size 11.0
|
|
||||||
font_family Roboto mono
|
|
||||||
window_margin_width 5
|
|
||||||
adjust_line_height 0
|
|
||||||
|
|
||||||
background #21222C
|
|
||||||
foreground #F8F8F2
|
|
||||||
cursor #f07178
|
|
||||||
|
|
||||||
#black
|
|
||||||
color0 #15121C
|
|
||||||
color8 #15121C
|
|
||||||
#red
|
|
||||||
color1 #f07178
|
|
||||||
color9 #f07178
|
|
||||||
#green
|
|
||||||
color2 #c3e88d
|
|
||||||
color10 #c3e88d
|
|
||||||
#yellow
|
|
||||||
color3 #ffcb6b
|
|
||||||
color11 #ffcb6b
|
|
||||||
#blue
|
|
||||||
color4 #82aaff
|
|
||||||
color12 #82aaff
|
|
||||||
#purple
|
|
||||||
color5 #c792ea
|
|
||||||
color13 #c792ea
|
|
||||||
#teal
|
|
||||||
color6 #89ddff
|
|
||||||
color14 #89ddff
|
|
||||||
#gray
|
|
||||||
color7 #eeffff
|
|
||||||
color15 #eeffff
|
|
||||||
+64
-66
@@ -1,69 +1,67 @@
|
|||||||
; Documentation: https://wiki.archlinux.org/title/ncmpcpp
|
; Documentation: https://wiki.archlinux.org/title/ncmpcpp
|
||||||
; Config created by Alexander-Miller https://github.com/Alexander-Miller
|
; Config created by Aditya Shakya https://github.com/Alexander-Miller
|
||||||
; Config modified by Keyitdev https://www.github.com/keyitdev/dotfiles
|
; Config modified by Keyitdev https://www.github.com/keyitdev/dotfiles
|
||||||
; Copyright (C) 2022 Keyitdev, Alexander-Miller
|
; Copyright (C) 2022 Keyitdev, Aditya Shakya
|
||||||
|
|
||||||
mpd_host = 127.0.0.1
|
### Directories ###
|
||||||
mpd_port = 6600
|
ncmpcpp_directory = ~/.config/ncmpcpp
|
||||||
mpd_music_dir = ~/Music
|
lyrics_directory = ~/.config/ncmpcpp/lyrics
|
||||||
mpd_connection_timeout = 5
|
mpd_music_dir = ~/Music
|
||||||
visualizer_data_source = /tmp/mpd.fifo
|
mpd_host = "localhost"
|
||||||
visualizer_output_name = fifo output
|
mpd_port = "6600"
|
||||||
visualizer_in_stereo = yes
|
mpd_crossfade_time = "2"
|
||||||
visualizer_type = spectrum
|
|
||||||
visualizer_color = blue, cyan, green, yellow, magenta, red
|
### Behaviour ###
|
||||||
visualizer_look = xs
|
message_delay_time = 1
|
||||||
visualizer_fps = 60
|
autocenter_mode = "yes"
|
||||||
visualizer_autoscale = yes
|
centered_cursor = "yes"
|
||||||
visualizer_spectrum_smooth_look = yes
|
ignore_leading_the = "yes"
|
||||||
playlist_disable_highlight_delay = 3
|
playlist_disable_highlight_delay = 2
|
||||||
allow_for_physical_item_deletion = yes
|
allow_for_physical_item_deletion = "no"
|
||||||
message_delay_time = 8
|
|
||||||
song_list_format = $(red){%a}$(end) $(blue){%t}$(end) $R $(green){%b}$(end) $(magenta)({%l})$(end)
|
### Visualizer ###
|
||||||
song_status_format = {$2%a$2} {$3%b$3} {$5%t$5}
|
visualizer_data_source = /tmp/mpd.fifo
|
||||||
song_library_format = %t
|
visualizer_output_name = "mpd_visualizer"
|
||||||
song_window_title_format = {%a-%t}
|
visualizer_in_stereo = "yes"
|
||||||
song_columns_list_format = (25)[red]{a} (44)[green]{t} (25)[blue]{b} $R(7)[magenta]{l}
|
visualizer_look = ●●
|
||||||
playlist_display_mode = columns
|
visualizer_type = "ellipse"
|
||||||
browser_display_mode = columns
|
|
||||||
titles_visibility = yes
|
### Appearance ###
|
||||||
incremental_seeking = yes
|
playlist_display_mode = "columns"
|
||||||
autocenter_mode = yes
|
browser_display_mode = "columns"
|
||||||
header_visibility = yes
|
colors_enabled = "yes"
|
||||||
statusbar_visibility = yes
|
|
||||||
cyclic_scrolling = yes
|
#user_interface = classic
|
||||||
display_bitrate = yes
|
user_interface = alternative
|
||||||
ignore_leading_the = no
|
volume_color = "white"
|
||||||
enable_window_title = yes
|
|
||||||
progressbar_look = ▬▬▬
|
### Window ###
|
||||||
user_interface = alternative
|
song_window_title_format = "{%a - }{%t}|{%f}"
|
||||||
alternative_header_first_line_format = {$b$2%a$9} {$5%t$9}
|
statusbar_visibility = "no"
|
||||||
alternative_header_second_line_format = {$3%b$9} {$4(%y)$9}
|
header_visibility = "no"
|
||||||
alternative_ui_separator_color = blue
|
titles_visibility = "no"
|
||||||
playlist_separate_albums = no
|
|
||||||
colors_enabled = yes
|
### Progress bar ###
|
||||||
empty_tag_color = blue
|
progressbar_look = "▂▂▂"
|
||||||
header_window_color = white
|
progressbar_color = "black"
|
||||||
display_volume_level = yes
|
progressbar_elapsed_color = "red"
|
||||||
state_line_color = cyan
|
|
||||||
state_flags_color = magenta
|
### Alternative UI ###
|
||||||
main_window_color = green
|
alternative_ui_separator_color = "black"
|
||||||
color1 = white
|
alternative_header_first_line_format = $b$5$/b $b$8{%t}|{%f}$/b $/b
|
||||||
color2 = blue
|
alternative_header_second_line_format = {$b{$2 %a$9}{ - $7 %b$9}}
|
||||||
progressbar_color = black
|
|
||||||
statusbar_color = cyan
|
### Song list ###
|
||||||
window_border_color = red
|
song_status_format = "$7%t"
|
||||||
active_window_border = red
|
song_list_format = "$(blue){%a}$(end) $(red){%t}$(end)$(red)({%l})$(end)
|
||||||
follow_now_playing_lyrics = yes
|
song_library_format = {{%a - %t} (%b)}|{%f}
|
||||||
clock_display_seconds = yes
|
song_columns_list_format = "(49)[white]{tr}$C(5f)[red]{l}(50)[blue]{a}"
|
||||||
current_item_prefix = >
|
|
||||||
current_item_suffix = $(end)
|
### Colors ###
|
||||||
current_item_inactive_column_prefix = >
|
main_window_color = "white"
|
||||||
current_item_inactive_column_suffix = $(end)
|
current_item_prefix = >>
|
||||||
now_playing_prefix = $b
|
current_item_suffix = $(end)
|
||||||
now_playing_suffix = $/b
|
current_item_inactive_column_prefix = red
|
||||||
selected_item_prefix = $(white)$b
|
current_item_inactive_column_suffix = red
|
||||||
selected_item_suffix = $/b$(end)
|
color1 = "white"
|
||||||
browser_playlist_prefix = "$2Playlist$9 "
|
color2 = "red"
|
||||||
modified_item_prefix = ">> "
|
|
||||||
execute_on_song_change = notify-send "Now Playing" "$(mpc current)"
|
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
# See this wiki page for more info:
|
# See this wiki page for more info:
|
||||||
# https://github.com/dylanaraps/neofetch/wiki/Customizing-Info
|
# https://github.com/dylanaraps/neofetch/wiki/Customizing-Info
|
||||||
|
|
||||||
print_info() {
|
print_info() {
|
||||||
info title
|
info title
|
||||||
info underline
|
info underline
|
||||||
|
|||||||
@@ -0,0 +1,20 @@
|
|||||||
|
-- Global objects
|
||||||
|
globals = {
|
||||||
|
"PACKER_BOOTSTRAP",
|
||||||
|
"astronvim",
|
||||||
|
"astronvim_installation",
|
||||||
|
"vim",
|
||||||
|
"C",
|
||||||
|
"packer_plugins",
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Rerun tests only if their modification time changed
|
||||||
|
cache = true
|
||||||
|
|
||||||
|
-- Don't report unused self arguments of methods
|
||||||
|
self = false
|
||||||
|
|
||||||
|
ignore = {
|
||||||
|
"631", -- max_line_length
|
||||||
|
"212/_.*", -- unused argument, for vars with "_" prefix
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
column_width = 120
|
||||||
|
line_endings = "Unix"
|
||||||
|
indent_type = "Spaces"
|
||||||
|
indent_width = 2
|
||||||
|
quote_style = "AutoPreferDouble"
|
||||||
|
no_call_parentheses = true
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
vim.g.colors_name = "default_theme"
|
||||||
|
|
||||||
|
package.loaded["default_theme"] = nil
|
||||||
|
package.loaded["default_theme.base"] = nil
|
||||||
|
package.loaded["default_theme.treesitter"] = nil
|
||||||
|
package.loaded["default_theme.lsp"] = nil
|
||||||
|
package.loaded["default_theme.others"] = nil
|
||||||
|
|
||||||
|
require "default_theme"
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
local impatient_ok, impatient = pcall(require, "impatient")
|
||||||
|
if impatient_ok then
|
||||||
|
impatient.enable_profile()
|
||||||
|
end
|
||||||
|
|
||||||
|
for _, source in ipairs {
|
||||||
|
"core.utils",
|
||||||
|
"core.options",
|
||||||
|
"core.plugins",
|
||||||
|
"core.autocmds",
|
||||||
|
"core.mappings",
|
||||||
|
"core.ui",
|
||||||
|
"configs.which-key-register",
|
||||||
|
} do
|
||||||
|
local status_ok, fault = pcall(require, source)
|
||||||
|
if not status_ok then
|
||||||
|
vim.api.nvim_err_writeln("Failed to load " .. source .. "\n\n" .. fault)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
astronvim.conditional_func(astronvim.user_plugin_opts("polish", nil, false))
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
local status_ok, Comment = pcall(require, "Comment")
|
||||||
|
if status_ok then
|
||||||
|
local utils = require "Comment.utils"
|
||||||
|
Comment.setup(astronvim.user_plugin_opts("plugins.Comment", {
|
||||||
|
pre_hook = function(ctx)
|
||||||
|
local location = nil
|
||||||
|
if ctx.ctype == utils.ctype.block then
|
||||||
|
location = require("ts_context_commentstring.utils").get_cursor_location()
|
||||||
|
elseif ctx.cmotion == utils.cmotion.v or ctx.cmotion == utils.cmotion.V then
|
||||||
|
location = require("ts_context_commentstring.utils").get_visual_start_location()
|
||||||
|
end
|
||||||
|
|
||||||
|
return require("ts_context_commentstring.internal").calculate_commentstring {
|
||||||
|
key = ctx.ctype == utils.ctype.line and "__default" or "__multiline",
|
||||||
|
location = location,
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
}))
|
||||||
|
end
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
local status_ok, aerial = pcall(require, "aerial")
|
||||||
|
if status_ok then
|
||||||
|
aerial.setup(astronvim.user_plugin_opts("plugins.aerial", {
|
||||||
|
close_behavior = "global",
|
||||||
|
backends = { "lsp", "treesitter", "markdown" },
|
||||||
|
min_width = 28,
|
||||||
|
show_guides = true,
|
||||||
|
filter_kind = false,
|
||||||
|
icons = {
|
||||||
|
Array = "",
|
||||||
|
Boolean = "⊨",
|
||||||
|
Class = "",
|
||||||
|
Constant = "",
|
||||||
|
Constructor = "",
|
||||||
|
Key = "",
|
||||||
|
Function = "",
|
||||||
|
Method = "ƒ",
|
||||||
|
Namespace = "",
|
||||||
|
Null = "NULL",
|
||||||
|
Number = "#",
|
||||||
|
Object = "⦿",
|
||||||
|
Property = "",
|
||||||
|
TypeParameter = "𝙏",
|
||||||
|
Variable = "",
|
||||||
|
Enum = "ℰ",
|
||||||
|
Package = "",
|
||||||
|
EnumMember = "",
|
||||||
|
File = "",
|
||||||
|
Module = "",
|
||||||
|
Field = "",
|
||||||
|
Interface = "ﰮ",
|
||||||
|
String = "𝓐",
|
||||||
|
Struct = "𝓢",
|
||||||
|
Event = "",
|
||||||
|
Operator = "+",
|
||||||
|
},
|
||||||
|
guides = {
|
||||||
|
mid_item = "├ ",
|
||||||
|
last_item = "└ ",
|
||||||
|
nested_top = "│ ",
|
||||||
|
whitespace = " ",
|
||||||
|
},
|
||||||
|
on_attach = function(bufnr)
|
||||||
|
-- Jump forwards/backwards with '{' and '}'
|
||||||
|
vim.keymap.set("n", "{", "<cmd>AerialPrev<cr>", { buffer = bufnr, desc = "Jump backwards in Aerial" })
|
||||||
|
vim.keymap.set("n", "}", "<cmd>AerialNext<cr>", { buffer = bufnr, desc = "Jump forwards in Aerial" })
|
||||||
|
-- Jump up the tree with '[[' or ']]'
|
||||||
|
vim.keymap.set("n", "[[", "<cmd>AerialPrevUp<cr>", { buffer = bufnr, desc = "Jump up and backwards in Aerial" })
|
||||||
|
vim.keymap.set("n", "]]", "<cmd>AerialNextUp<cr>", { buffer = bufnr, desc = "Jump up and forwards in Aerial" })
|
||||||
|
end,
|
||||||
|
}))
|
||||||
|
end
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
local status_ok, alpha = pcall(require, "alpha")
|
||||||
|
if status_ok then
|
||||||
|
local alpha_button = astronvim.alpha_button
|
||||||
|
alpha.setup(astronvim.user_plugin_opts("plugins.alpha", {
|
||||||
|
layout = {
|
||||||
|
{ type = "padding", val = vim.fn.max { 2, vim.fn.floor(vim.fn.winheight(0) * 0.2) } },
|
||||||
|
{
|
||||||
|
type = "text",
|
||||||
|
val = astronvim.user_plugin_opts("header", {
|
||||||
|
" █████ ███████ ████████ ██████ ██████",
|
||||||
|
"██ ██ ██ ██ ██ ██ ██ ██",
|
||||||
|
"███████ ███████ ██ ██████ ██ ██",
|
||||||
|
"██ ██ ██ ██ ██ ██ ██ ██",
|
||||||
|
"██ ██ ███████ ██ ██ ██ ██████",
|
||||||
|
" ",
|
||||||
|
" ███ ██ ██ ██ ██ ███ ███",
|
||||||
|
" ████ ██ ██ ██ ██ ████ ████",
|
||||||
|
" ██ ██ ██ ██ ██ ██ ██ ████ ██",
|
||||||
|
" ██ ██ ██ ██ ██ ██ ██ ██ ██",
|
||||||
|
" ██ ████ ████ ██ ██ ██",
|
||||||
|
}, false),
|
||||||
|
opts = { position = "center", hl = "DashboardHeader" },
|
||||||
|
},
|
||||||
|
{ type = "padding", val = 5 },
|
||||||
|
{
|
||||||
|
type = "group",
|
||||||
|
val = {
|
||||||
|
alpha_button("LDR f f", " Find File "),
|
||||||
|
alpha_button("LDR f o", " Recents "),
|
||||||
|
alpha_button("LDR f w", " Find Word "),
|
||||||
|
alpha_button("LDR f n", " New File "),
|
||||||
|
alpha_button("LDR f m", " Bookmarks "),
|
||||||
|
alpha_button("LDR S l", " Last Session "),
|
||||||
|
},
|
||||||
|
opts = { spacing = 1 },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
opts = {},
|
||||||
|
}))
|
||||||
|
end
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
local status_ok, npairs = pcall(require, "nvim-autopairs")
|
||||||
|
if status_ok then
|
||||||
|
npairs.setup(astronvim.user_plugin_opts("plugins.nvim-autopairs", {
|
||||||
|
check_ts = true,
|
||||||
|
ts_config = {
|
||||||
|
lua = { "string", "source" },
|
||||||
|
javascript = { "string", "template_string" },
|
||||||
|
java = false,
|
||||||
|
},
|
||||||
|
disable_filetype = { "TelescopePrompt", "spectre_panel" },
|
||||||
|
fast_wrap = {
|
||||||
|
map = "<M-e>",
|
||||||
|
chars = { "{", "[", "(", '"', "'" },
|
||||||
|
pattern = string.gsub([[ [%'%"%)%>%]%)%}%,] ]], "%s+", ""),
|
||||||
|
offset = 0,
|
||||||
|
end_key = "$",
|
||||||
|
keys = "qwertyuiopzxcvbnmasdfghjkl",
|
||||||
|
check_comma = true,
|
||||||
|
highlight = "PmenuSel",
|
||||||
|
highlight_grey = "LineNr",
|
||||||
|
},
|
||||||
|
}))
|
||||||
|
|
||||||
|
local rules = astronvim.user_plugin_opts("nvim-autopairs").add_rules
|
||||||
|
if vim.tbl_contains({ "function", "table" }, type(rules)) then
|
||||||
|
npairs.add_rules(type(rules) == "function" and rules(npairs) or rules)
|
||||||
|
end
|
||||||
|
|
||||||
|
local cmp_status_ok, cmp = pcall(require, "cmp")
|
||||||
|
if cmp_status_ok then
|
||||||
|
cmp.event:on("confirm_done", require("nvim-autopairs.completion.cmp").on_confirm_done { map_char = { tex = "" } })
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
local status_ok, better_escape = pcall(require, "better_escape")
|
||||||
|
if status_ok then
|
||||||
|
better_escape.setup(astronvim.user_plugin_opts "plugins.better_escape")
|
||||||
|
end
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
local status_ok, bufferline = pcall(require, "bufferline")
|
||||||
|
if status_ok then
|
||||||
|
bufferline.setup(astronvim.user_plugin_opts("plugins.bufferline", {
|
||||||
|
options = {
|
||||||
|
offsets = {
|
||||||
|
{ filetype = "NvimTree", text = "", padding = 1 },
|
||||||
|
{ filetype = "neo-tree", text = "", padding = 1 },
|
||||||
|
{ filetype = "Outline", text = "", padding = 1 },
|
||||||
|
},
|
||||||
|
buffer_close_icon = "",
|
||||||
|
modified_icon = "",
|
||||||
|
close_icon = "",
|
||||||
|
max_name_length = 14,
|
||||||
|
max_prefix_length = 13,
|
||||||
|
tab_size = 20,
|
||||||
|
separator_style = "thin",
|
||||||
|
},
|
||||||
|
}))
|
||||||
|
end
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
local status_ok, cinnamon = pcall(require, "cinnamon")
|
||||||
|
if status_ok then
|
||||||
|
cinnamon.setup(astronvim.user_plugin_opts("plugins.cinnamon", {}))
|
||||||
|
end
|
||||||
@@ -0,0 +1,119 @@
|
|||||||
|
local cmp_status_ok, cmp = pcall(require, "cmp")
|
||||||
|
local snip_status_ok, luasnip = pcall(require, "luasnip")
|
||||||
|
if cmp_status_ok and snip_status_ok then
|
||||||
|
local setup = cmp.setup
|
||||||
|
local kind_icons = {
|
||||||
|
Text = "",
|
||||||
|
Method = "",
|
||||||
|
Function = "",
|
||||||
|
Constructor = "",
|
||||||
|
Field = "ﰠ",
|
||||||
|
Variable = "",
|
||||||
|
Class = "",
|
||||||
|
Interface = "",
|
||||||
|
Module = "",
|
||||||
|
Property = "",
|
||||||
|
Unit = "",
|
||||||
|
Value = "",
|
||||||
|
Enum = "",
|
||||||
|
Keyword = "",
|
||||||
|
Snippet = "",
|
||||||
|
Color = "",
|
||||||
|
File = "",
|
||||||
|
Reference = "",
|
||||||
|
Folder = "",
|
||||||
|
EnumMember = "",
|
||||||
|
Constant = "",
|
||||||
|
Struct = "פּ",
|
||||||
|
Event = "",
|
||||||
|
Operator = "",
|
||||||
|
TypeParameter = "",
|
||||||
|
}
|
||||||
|
|
||||||
|
local function has_words_before()
|
||||||
|
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
|
||||||
|
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match "%s" == nil
|
||||||
|
end
|
||||||
|
|
||||||
|
setup(astronvim.user_plugin_opts("plugins.cmp", {
|
||||||
|
preselect = cmp.PreselectMode.None,
|
||||||
|
formatting = {
|
||||||
|
fields = { "kind", "abbr", "menu" },
|
||||||
|
format = function(_, vim_item)
|
||||||
|
vim_item.kind = string.format("%s", kind_icons[vim_item.kind])
|
||||||
|
return vim_item
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
snippet = {
|
||||||
|
expand = function(args)
|
||||||
|
luasnip.lsp_expand(args.body)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
duplicates = {
|
||||||
|
nvim_lsp = 1,
|
||||||
|
luasnip = 1,
|
||||||
|
cmp_tabnine = 1,
|
||||||
|
buffer = 1,
|
||||||
|
path = 1,
|
||||||
|
},
|
||||||
|
confirm_opts = {
|
||||||
|
behavior = cmp.ConfirmBehavior.Replace,
|
||||||
|
select = false,
|
||||||
|
},
|
||||||
|
window = {
|
||||||
|
documentation = {
|
||||||
|
border = { "╭", "─", "╮", "│", "╯", "─", "╰", "│" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
mapping = {
|
||||||
|
["<Up>"] = cmp.mapping.select_prev_item(),
|
||||||
|
["<Down>"] = cmp.mapping.select_next_item(),
|
||||||
|
["<C-p>"] = cmp.mapping.select_prev_item(),
|
||||||
|
["<C-n>"] = cmp.mapping.select_next_item(),
|
||||||
|
["<C-k>"] = cmp.mapping.select_prev_item(),
|
||||||
|
["<C-j>"] = cmp.mapping.select_next_item(),
|
||||||
|
["<C-d>"] = cmp.mapping(cmp.mapping.scroll_docs(-1), { "i", "c" }),
|
||||||
|
["<C-f>"] = cmp.mapping(cmp.mapping.scroll_docs(1), { "i", "c" }),
|
||||||
|
["<C-Space>"] = cmp.mapping(cmp.mapping.complete(), { "i", "c" }),
|
||||||
|
["<C-y>"] = cmp.config.disable,
|
||||||
|
["<C-e>"] = cmp.mapping {
|
||||||
|
i = cmp.mapping.abort(),
|
||||||
|
c = cmp.mapping.close(),
|
||||||
|
},
|
||||||
|
["<CR>"] = cmp.mapping.confirm { select = false },
|
||||||
|
["<Tab>"] = cmp.mapping(function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_next_item()
|
||||||
|
elseif luasnip.expandable() then
|
||||||
|
luasnip.expand()
|
||||||
|
elseif luasnip.expand_or_jumpable() then
|
||||||
|
luasnip.expand_or_jump()
|
||||||
|
elseif has_words_before() then
|
||||||
|
cmp.complete()
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end, {
|
||||||
|
"i",
|
||||||
|
"s",
|
||||||
|
}),
|
||||||
|
["<S-Tab>"] = cmp.mapping(function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_prev_item()
|
||||||
|
elseif luasnip.jumpable(-1) then
|
||||||
|
luasnip.jump(-1)
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end, {
|
||||||
|
"i",
|
||||||
|
"s",
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
}))
|
||||||
|
for setup_opt, setup_table in pairs(astronvim.user_plugin_opts("cmp.setup", {})) do
|
||||||
|
for pattern, options in pairs(setup_table) do
|
||||||
|
setup[setup_opt](pattern, options)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
local status_ok, colorizer = pcall(require, "colorizer")
|
||||||
|
if status_ok then
|
||||||
|
local colorizer_opts = astronvim.user_plugin_opts("plugins.colorizer", {
|
||||||
|
{ "*" },
|
||||||
|
{
|
||||||
|
RGB = true, -- #RGB hex codes
|
||||||
|
RRGGBB = true, -- #RRGGBB hex codes
|
||||||
|
names = false, -- "Name" codes like Blue
|
||||||
|
RRGGBBAA = false, -- #RRGGBBAA hex codes
|
||||||
|
rgb_fn = false, -- CSS rgb() and rgba() functions
|
||||||
|
hsl_fn = false, -- CSS hsl() and hsla() functions
|
||||||
|
css = false, -- Enable all css features: rgb_fn, hsl_fn, names, RGB, RRGGBB
|
||||||
|
css_fn = false, -- Enable all CSS *functions*: rgb_fn, hsl_fn
|
||||||
|
mode = "background", -- Set the display mode
|
||||||
|
},
|
||||||
|
})
|
||||||
|
colorizer.setup(colorizer_opts[1], colorizer_opts[2])
|
||||||
|
end
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
local status_ok, feline = pcall(require, "feline")
|
||||||
|
if status_ok then
|
||||||
|
local C = require "default_theme.colors"
|
||||||
|
local hl = require("core.status").hl
|
||||||
|
local provider = require("core.status").provider
|
||||||
|
local conditional = require("core.status").conditional
|
||||||
|
-- stylua: ignore
|
||||||
|
feline.setup(astronvim.user_plugin_opts("plugins.feline", {
|
||||||
|
disable = { filetypes = { "^NvimTree$", "^neo%-tree$", "^dashboard$", "^Outline$", "^aerial$" } },
|
||||||
|
theme = hl.group("StatusLine", { fg = C.fg, bg = C.bg_1 }),
|
||||||
|
components = {
|
||||||
|
active = {
|
||||||
|
{
|
||||||
|
{ provider = provider.spacer(), hl = hl.mode() },
|
||||||
|
{ provider = provider.spacer(2) },
|
||||||
|
{ provider = "git_branch", hl = hl.fg("Conditional", { fg = C.purple_1, style = "bold" }), icon = " " },
|
||||||
|
{ provider = provider.spacer(3), enabled = conditional.git_available },
|
||||||
|
{ provider = { name = "file_type", opts = { filetype_icon = true, case = "lowercase" } }, enabled = conditional.has_filetype },
|
||||||
|
{ provider = provider.spacer(2), enabled = conditional.has_filetype },
|
||||||
|
{ provider = "git_diff_added", hl = hl.fg("GitSignsAdd", { fg = C.green }), icon = " " },
|
||||||
|
{ provider = "git_diff_changed", hl = hl.fg("GitSignsChange", { fg = C.orange_1 }), icon = " 柳" },
|
||||||
|
{ provider = "git_diff_removed", hl = hl.fg("GitSignsDelete", { fg = C.red_1 }), icon = " " },
|
||||||
|
{ provider = provider.spacer(2), enabled = conditional.git_changed },
|
||||||
|
{ provider = "diagnostic_errors", hl = hl.fg("DiagnosticError", { fg = C.red_1 }), icon = " " },
|
||||||
|
{ provider = "diagnostic_warnings", hl = hl.fg("DiagnosticWarn", { fg = C.orange_1 }), icon = " " },
|
||||||
|
{ provider = "diagnostic_info", hl = hl.fg("DiagnosticInfo", { fg = C.white_2 }), icon = " " },
|
||||||
|
{ provider = "diagnostic_hints", hl = hl.fg("DiagnosticHint", { fg = C.yellow_1 }), icon = " " },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
{ provider = provider.lsp_progress, enabled = conditional.bar_width() },
|
||||||
|
{ provider = provider.lsp_client_names(true), short_provider = provider.lsp_client_names(), enabled = conditional.bar_width(), icon = " " },
|
||||||
|
{ provider = provider.spacer(2), enabled = conditional.bar_width() },
|
||||||
|
{ provider = provider.treesitter_status, enabled = conditional.bar_width(), hl = hl.fg("GitSignsAdd", { fg = C.green }) },
|
||||||
|
{ provider = provider.spacer(2) },
|
||||||
|
{ provider = "position" },
|
||||||
|
{ provider = provider.spacer(2) },
|
||||||
|
{ provider = "line_percentage" },
|
||||||
|
{ provider = provider.spacer() },
|
||||||
|
{ provider = "scroll_bar", hl = hl.fg("TypeDef", { fg = C.yellow }) },
|
||||||
|
{ provider = provider.spacer(2) },
|
||||||
|
{ provider = provider.spacer(), hl = hl.mode() },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}))
|
||||||
|
end
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
local status_ok, gitsigns = pcall(require, "gitsigns")
|
||||||
|
if status_ok then
|
||||||
|
gitsigns.setup(astronvim.user_plugin_opts("plugins.gitsigns", {
|
||||||
|
signs = {
|
||||||
|
add = { text = "▎" },
|
||||||
|
change = { text = "▎" },
|
||||||
|
delete = { text = "▎" },
|
||||||
|
topdelete = { text = "契" },
|
||||||
|
changedelete = { text = "▎" },
|
||||||
|
},
|
||||||
|
}))
|
||||||
|
end
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
local status_ok, icons = pcall(require, "nvim-web-devicons")
|
||||||
|
if status_ok then
|
||||||
|
icons.set_icon(astronvim.user_plugin_opts("plugins.nvim-web-devicons", {
|
||||||
|
deb = { icon = "", name = "Deb" },
|
||||||
|
lock = { icon = "", name = "Lock" },
|
||||||
|
mp3 = { icon = "", name = "Mp3" },
|
||||||
|
mp4 = { icon = "", name = "Mp4" },
|
||||||
|
out = { icon = "", name = "Out" },
|
||||||
|
["robots.txt"] = { icon = "ﮧ", name = "Robots" },
|
||||||
|
ttf = { icon = "", name = "TrueTypeFont" },
|
||||||
|
rpm = { icon = "", name = "Rpm" },
|
||||||
|
woff = { icon = "", name = "WebOpenFontFormat" },
|
||||||
|
woff2 = { icon = "", name = "WebOpenFontFormat2" },
|
||||||
|
xz = { icon = "", name = "Xz" },
|
||||||
|
zip = { icon = "", name = "Zip" },
|
||||||
|
}))
|
||||||
|
end
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
local status_ok, indent_blankline = pcall(require, "indent_blankline")
|
||||||
|
if status_ok then
|
||||||
|
indent_blankline.setup(astronvim.user_plugin_opts("plugins.indent_blankline", {
|
||||||
|
buftype_exclude = {
|
||||||
|
"nofile",
|
||||||
|
"terminal",
|
||||||
|
"lsp-installer",
|
||||||
|
"lspinfo",
|
||||||
|
},
|
||||||
|
filetype_exclude = {
|
||||||
|
"help",
|
||||||
|
"startify",
|
||||||
|
"aerial",
|
||||||
|
"alpha",
|
||||||
|
"dashboard",
|
||||||
|
"packer",
|
||||||
|
"neogitstatus",
|
||||||
|
"NvimTree",
|
||||||
|
"neo-tree",
|
||||||
|
"Trouble",
|
||||||
|
},
|
||||||
|
context_patterns = {
|
||||||
|
"class",
|
||||||
|
"return",
|
||||||
|
"function",
|
||||||
|
"method",
|
||||||
|
"^if",
|
||||||
|
"^while",
|
||||||
|
"jsx_element",
|
||||||
|
"^for",
|
||||||
|
"^object",
|
||||||
|
"^table",
|
||||||
|
"block",
|
||||||
|
"arguments",
|
||||||
|
"if_statement",
|
||||||
|
"else_clause",
|
||||||
|
"jsx_element",
|
||||||
|
"jsx_self_closing_element",
|
||||||
|
"try_statement",
|
||||||
|
"catch_clause",
|
||||||
|
"import_statement",
|
||||||
|
"operation_type",
|
||||||
|
},
|
||||||
|
show_trailing_blankline_indent = false,
|
||||||
|
use_treesitter = true,
|
||||||
|
char = "▏",
|
||||||
|
context_char = "▏",
|
||||||
|
show_current_context = true,
|
||||||
|
}))
|
||||||
|
end
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
local status_ok, indent_o_matic = pcall(require, "indent-o-matic")
|
||||||
|
if status_ok then
|
||||||
|
indent_o_matic.setup(astronvim.user_plugin_opts "plugins.indent-o-matic")
|
||||||
|
end
|
||||||
@@ -0,0 +1,167 @@
|
|||||||
|
astronvim.lsp = {}
|
||||||
|
local user_plugin_opts = astronvim.user_plugin_opts
|
||||||
|
local conditional_func = astronvim.conditional_func
|
||||||
|
|
||||||
|
local function lsp_highlight_document(client)
|
||||||
|
if client.resolved_capabilities.document_highlight then
|
||||||
|
vim.api.nvim_create_augroup("lsp_document_highlight", { clear = true })
|
||||||
|
vim.api.nvim_create_autocmd("CursorHold", {
|
||||||
|
group = "lsp_document_highlight",
|
||||||
|
pattern = "<buffer>",
|
||||||
|
callback = vim.lsp.buf.document_highlight,
|
||||||
|
})
|
||||||
|
vim.api.nvim_create_autocmd("CursorMoved", {
|
||||||
|
group = "lsp_document_highlight",
|
||||||
|
pattern = "<buffer>",
|
||||||
|
callback = vim.lsp.buf.clear_references,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
astronvim.lsp.on_attach = function(client, bufnr)
|
||||||
|
astronvim.set_mappings(
|
||||||
|
user_plugin_opts("lsp.mappings", {
|
||||||
|
n = {
|
||||||
|
["K"] = {
|
||||||
|
function()
|
||||||
|
vim.lsp.buf.hover()
|
||||||
|
end,
|
||||||
|
desc = "Hover symbol details",
|
||||||
|
buffer = bufnr,
|
||||||
|
},
|
||||||
|
["<leader>la"] = {
|
||||||
|
function()
|
||||||
|
vim.lsp.buf.code_action()
|
||||||
|
end,
|
||||||
|
desc = "LSP code action",
|
||||||
|
buffer = bufnr,
|
||||||
|
},
|
||||||
|
["<leader>lf"] = {
|
||||||
|
function()
|
||||||
|
vim.lsp.buf.formatting_sync()
|
||||||
|
end,
|
||||||
|
desc = "Format code",
|
||||||
|
buffer = bufnr,
|
||||||
|
},
|
||||||
|
["<leader>lh"] = {
|
||||||
|
function()
|
||||||
|
vim.lsp.buf.signature_help()
|
||||||
|
end,
|
||||||
|
desc = "Signature help",
|
||||||
|
buffer = bufnr,
|
||||||
|
},
|
||||||
|
["<leader>lr"] = {
|
||||||
|
function()
|
||||||
|
vim.lsp.buf.rename()
|
||||||
|
end,
|
||||||
|
desc = "Rename current symbol",
|
||||||
|
buffer = bufnr,
|
||||||
|
},
|
||||||
|
["gD"] = {
|
||||||
|
function()
|
||||||
|
vim.lsp.buf.declaration()
|
||||||
|
end,
|
||||||
|
desc = "Declaration of current symbol",
|
||||||
|
buffer = bufnr,
|
||||||
|
},
|
||||||
|
["gI"] = {
|
||||||
|
function()
|
||||||
|
vim.lsp.buf.implementation()
|
||||||
|
end,
|
||||||
|
desc = "Implementation of current symbol",
|
||||||
|
buffer = bufnr,
|
||||||
|
},
|
||||||
|
["gd"] = {
|
||||||
|
function()
|
||||||
|
vim.lsp.buf.definition()
|
||||||
|
end,
|
||||||
|
desc = "Show the definition of current symbol",
|
||||||
|
buffer = bufnr,
|
||||||
|
},
|
||||||
|
["gr"] = {
|
||||||
|
function()
|
||||||
|
vim.lsp.buf.references()
|
||||||
|
end,
|
||||||
|
desc = "References of current symbol",
|
||||||
|
buffer = bufnr,
|
||||||
|
},
|
||||||
|
["<leader>ld"] = {
|
||||||
|
function()
|
||||||
|
vim.diagnostic.open_float()
|
||||||
|
end,
|
||||||
|
desc = "Hover diagnostics",
|
||||||
|
buffer = bufnr,
|
||||||
|
},
|
||||||
|
["[d"] = {
|
||||||
|
function()
|
||||||
|
vim.diagnostic.goto_prev()
|
||||||
|
end,
|
||||||
|
desc = "Previous diagnostic",
|
||||||
|
buffer = bufnr,
|
||||||
|
},
|
||||||
|
["]d"] = {
|
||||||
|
function()
|
||||||
|
vim.diagnostic.goto_next()
|
||||||
|
end,
|
||||||
|
desc = "Next diagnostic",
|
||||||
|
buffer = bufnr,
|
||||||
|
},
|
||||||
|
["gl"] = {
|
||||||
|
function()
|
||||||
|
vim.diagnostic.open_float()
|
||||||
|
end,
|
||||||
|
desc = "Hover diagnostics",
|
||||||
|
buffer = bufnr,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
{ buffer = bufnr }
|
||||||
|
)
|
||||||
|
|
||||||
|
vim.api.nvim_buf_create_user_command(bufnr, "Format", function()
|
||||||
|
vim.lsp.buf.formatting()
|
||||||
|
end, { desc = "Format file with LSP" })
|
||||||
|
|
||||||
|
local on_attach_override = user_plugin_opts("lsp.on_attach", nil, false)
|
||||||
|
local aerial_avail, aerial = pcall(require, "aerial")
|
||||||
|
conditional_func(on_attach_override, true, client, bufnr)
|
||||||
|
conditional_func(aerial.on_attach, aerial_avail, client, bufnr)
|
||||||
|
lsp_highlight_document(client)
|
||||||
|
end
|
||||||
|
|
||||||
|
astronvim.lsp.capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||||
|
astronvim.lsp.capabilities.textDocument.completion.completionItem.documentationFormat = { "markdown", "plaintext" }
|
||||||
|
astronvim.lsp.capabilities.textDocument.completion.completionItem.snippetSupport = true
|
||||||
|
astronvim.lsp.capabilities.textDocument.completion.completionItem.preselectSupport = true
|
||||||
|
astronvim.lsp.capabilities.textDocument.completion.completionItem.insertReplaceSupport = true
|
||||||
|
astronvim.lsp.capabilities.textDocument.completion.completionItem.labelDetailsSupport = true
|
||||||
|
astronvim.lsp.capabilities.textDocument.completion.completionItem.deprecatedSupport = true
|
||||||
|
astronvim.lsp.capabilities.textDocument.completion.completionItem.commitCharactersSupport = true
|
||||||
|
astronvim.lsp.capabilities.textDocument.completion.completionItem.tagSupport = { valueSet = { 1 } }
|
||||||
|
astronvim.lsp.capabilities.textDocument.completion.completionItem.resolveSupport = {
|
||||||
|
properties = { "documentation", "detail", "additionalTextEdits" },
|
||||||
|
}
|
||||||
|
|
||||||
|
function astronvim.lsp.server_settings(server_name)
|
||||||
|
local server = require("lspconfig")[server_name]
|
||||||
|
local opts = user_plugin_opts(
|
||||||
|
"lsp.server-settings." .. server_name,
|
||||||
|
user_plugin_opts("lsp.server-settings." .. server_name, {
|
||||||
|
capabilities = vim.tbl_deep_extend("force", astronvim.lsp.capabilities, server.capabilities or {}),
|
||||||
|
}, true, "configs")
|
||||||
|
)
|
||||||
|
local old_on_attach = server.on_attach
|
||||||
|
local user_on_attach = opts.on_attach
|
||||||
|
opts.on_attach = function(client, bufnr)
|
||||||
|
conditional_func(old_on_attach, true, client, bufnr)
|
||||||
|
astronvim.lsp.on_attach(client, bufnr)
|
||||||
|
conditional_func(user_on_attach, true, client, bufnr)
|
||||||
|
end
|
||||||
|
return opts
|
||||||
|
end
|
||||||
|
|
||||||
|
function astronvim.lsp.disable_formatting(client)
|
||||||
|
client.resolved_capabilities.document_formatting = false
|
||||||
|
end
|
||||||
|
|
||||||
|
return astronvim.lsp
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
local status_ok, lspconfig = pcall(require, "lspconfig")
|
||||||
|
if status_ok then
|
||||||
|
require "configs.lsp.handlers"
|
||||||
|
local insert = table.insert
|
||||||
|
local tbl_contains = vim.tbl_contains
|
||||||
|
local sign_define = vim.fn.sign_define
|
||||||
|
local user_plugin_opts = astronvim.user_plugin_opts
|
||||||
|
local user_registration = user_plugin_opts("lsp.server_registration", nil, false)
|
||||||
|
|
||||||
|
local signs = {
|
||||||
|
{ name = "DiagnosticSignError", text = "" },
|
||||||
|
{ name = "DiagnosticSignWarn", text = "" },
|
||||||
|
{ name = "DiagnosticSignHint", text = "" },
|
||||||
|
{ name = "DiagnosticSignInfo", text = "" },
|
||||||
|
}
|
||||||
|
for _, sign in ipairs(signs) do
|
||||||
|
sign_define(sign.name, { texthl = sign.name, text = sign.text, numhl = "" })
|
||||||
|
end
|
||||||
|
vim.diagnostic.config(user_plugin_opts("diagnostics", {
|
||||||
|
virtual_text = true,
|
||||||
|
signs = { active = signs },
|
||||||
|
update_in_insert = true,
|
||||||
|
underline = true,
|
||||||
|
severity_sort = true,
|
||||||
|
float = {
|
||||||
|
focusable = false,
|
||||||
|
style = "minimal",
|
||||||
|
border = "rounded",
|
||||||
|
source = "always",
|
||||||
|
header = "",
|
||||||
|
prefix = "",
|
||||||
|
},
|
||||||
|
}))
|
||||||
|
vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { border = "rounded" })
|
||||||
|
vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, { border = "rounded" })
|
||||||
|
|
||||||
|
local servers = user_plugin_opts "lsp.servers"
|
||||||
|
local skip_setup = user_plugin_opts "lsp.skip_setup"
|
||||||
|
local installer_avail, lsp_installer = pcall(require, "nvim-lsp-installer")
|
||||||
|
if installer_avail then
|
||||||
|
for _, server in ipairs(lsp_installer.get_installed_servers()) do
|
||||||
|
insert(servers, server.name)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for _, server in ipairs(servers) do
|
||||||
|
if not tbl_contains(skip_setup, server) then
|
||||||
|
local opts = astronvim.lsp.server_settings(server)
|
||||||
|
if type(user_registration) == "function" then
|
||||||
|
user_registration(server, opts)
|
||||||
|
else
|
||||||
|
lspconfig[server].setup(opts)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
return { on_attach = astronvim.lsp.disable_formatting }
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
return {
|
||||||
|
on_attach = astronvim.lsp.disable_formatting,
|
||||||
|
settings = {
|
||||||
|
json = {
|
||||||
|
schemas = require("schemastore").json.schemas(),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
setup = {
|
||||||
|
commands = {
|
||||||
|
Format = {
|
||||||
|
function()
|
||||||
|
vim.lsp.buf.range_formatting({}, { 0, 0 }, { vim.fn.line "$", 0 })
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
return {
|
||||||
|
settings = {
|
||||||
|
python = {
|
||||||
|
analysis = {
|
||||||
|
typeCheckingMode = "off",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
return {
|
||||||
|
settings = {
|
||||||
|
["rust-analyzer"] = {
|
||||||
|
cargo = {
|
||||||
|
loadOutDirsFromCheck = true,
|
||||||
|
},
|
||||||
|
checkOnSave = {
|
||||||
|
command = "clippy",
|
||||||
|
},
|
||||||
|
experimental = {
|
||||||
|
procAttrMacros = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
return {
|
||||||
|
on_attach = astronvim.lsp.disable_formatting,
|
||||||
|
settings = {
|
||||||
|
Lua = {
|
||||||
|
diagnostics = {
|
||||||
|
globals = { "vim" },
|
||||||
|
},
|
||||||
|
workspace = {
|
||||||
|
library = {
|
||||||
|
[vim.fn.expand "$VIMRUNTIME/lua"] = true,
|
||||||
|
[astronvim.install.home .. "/lua"] = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
return { on_attach = astronvim.lsp.disable_formatting }
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
local user_settings = astronvim.user_plugin_opts "luasnip"
|
||||||
|
local loader_avail, loader = pcall(require, "luasnip/loaders/from_vscode")
|
||||||
|
if loader_avail then
|
||||||
|
if user_settings.vscode_snippet_paths ~= nil then
|
||||||
|
loader.lazy_load { paths = user_settings.vscode_snippet_paths }
|
||||||
|
end
|
||||||
|
loader.lazy_load()
|
||||||
|
end
|
||||||
|
local luasnip_avail, luasnip = pcall(require, "luasnip")
|
||||||
|
if luasnip_avail then
|
||||||
|
if type(user_settings.filetype_extend) == "table" then
|
||||||
|
for filetype, snippets in pairs(user_settings.filetype_extend) do
|
||||||
|
luasnip.filetype_extend(filetype, snippets)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
local status_ok, neotree = pcall(require, "neo-tree")
|
||||||
|
if status_ok then
|
||||||
|
neotree.setup(astronvim.user_plugin_opts("plugins.neo-tree", {
|
||||||
|
close_if_last_window = true,
|
||||||
|
popup_border_style = "rounded",
|
||||||
|
enable_diagnostics = false,
|
||||||
|
default_component_configs = {
|
||||||
|
indent = {
|
||||||
|
padding = 0,
|
||||||
|
with_expanders = false,
|
||||||
|
},
|
||||||
|
icon = {
|
||||||
|
folder_closed = "",
|
||||||
|
folder_open = "",
|
||||||
|
folder_empty = "",
|
||||||
|
default = "",
|
||||||
|
},
|
||||||
|
git_status = {
|
||||||
|
symbols = {
|
||||||
|
added = "",
|
||||||
|
deleted = "",
|
||||||
|
modified = "",
|
||||||
|
renamed = "➜",
|
||||||
|
untracked = "★",
|
||||||
|
ignored = "◌",
|
||||||
|
unstaged = "✗",
|
||||||
|
staged = "✓",
|
||||||
|
conflict = "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
window = {
|
||||||
|
width = 25,
|
||||||
|
mappings = {
|
||||||
|
["o"] = "open",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
filesystem = {
|
||||||
|
filtered_items = {
|
||||||
|
visible = false,
|
||||||
|
hide_dotfiles = true,
|
||||||
|
hide_gitignored = false,
|
||||||
|
hide_by_name = {
|
||||||
|
".DS_Store",
|
||||||
|
"thumbs.db",
|
||||||
|
"node_modules",
|
||||||
|
"__pycache__",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
follow_current_file = true,
|
||||||
|
hijack_netrw_behavior = "open_current",
|
||||||
|
use_libuv_file_watcher = true,
|
||||||
|
},
|
||||||
|
git_status = {
|
||||||
|
window = {
|
||||||
|
position = "float",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
event_handlers = {
|
||||||
|
{
|
||||||
|
event = "vim_buffer_enter",
|
||||||
|
handler = function(_)
|
||||||
|
if vim.bo.filetype == "neo-tree" then
|
||||||
|
vim.wo.signcolumn = "auto"
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}))
|
||||||
|
end
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
local status_ok, notify = pcall(require, "notify")
|
||||||
|
if status_ok then
|
||||||
|
notify.setup(astronvim.user_plugin_opts("plugins.notify", { stages = "fade" }))
|
||||||
|
|
||||||
|
vim.notify = notify
|
||||||
|
end
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
local status_ok, null_ls = pcall(require, "null-ls")
|
||||||
|
if status_ok then
|
||||||
|
null_ls.setup(astronvim.user_plugin_opts "plugins.null-ls")
|
||||||
|
end
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
local status_ok, lsp_installer = pcall(require, "nvim-lsp-installer")
|
||||||
|
if status_ok then
|
||||||
|
lsp_installer.setup(astronvim.user_plugin_opts("plugins.nvim-lsp-installer", {
|
||||||
|
ui = {
|
||||||
|
icons = {
|
||||||
|
server_installed = "✓",
|
||||||
|
server_uninstalled = "✗",
|
||||||
|
server_pending = "⟳",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}))
|
||||||
|
end
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
local status_ok, session_manager = pcall(require, "session_manager")
|
||||||
|
if status_ok then
|
||||||
|
session_manager.setup(astronvim.user_plugin_opts("plugins.session_manager", { autosave_last_session = false }))
|
||||||
|
end
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
local status_ok, smart_splits = pcall(require, "smart-splits")
|
||||||
|
if status_ok then
|
||||||
|
smart_splits.setup(astronvim.user_plugin_opts("plugins.smart-splits", {
|
||||||
|
ignored_filetypes = {
|
||||||
|
"nofile",
|
||||||
|
"quickfix",
|
||||||
|
"qf",
|
||||||
|
"prompt",
|
||||||
|
},
|
||||||
|
ignored_buftypes = { "nofile" },
|
||||||
|
}))
|
||||||
|
end
|
||||||
@@ -0,0 +1,96 @@
|
|||||||
|
local status_ok, telescope = pcall(require, "telescope")
|
||||||
|
if status_ok then
|
||||||
|
local actions = require "telescope.actions"
|
||||||
|
|
||||||
|
astronvim.conditional_func(telescope.load_extension, pcall(require, "notify"), "notify")
|
||||||
|
astronvim.conditional_func(telescope.load_extension, pcall(require, "aerial"), "aerial")
|
||||||
|
|
||||||
|
telescope.setup(astronvim.user_plugin_opts("plugins.telescope", {
|
||||||
|
defaults = {
|
||||||
|
|
||||||
|
prompt_prefix = " ",
|
||||||
|
selection_caret = "❯ ",
|
||||||
|
path_display = { "truncate" },
|
||||||
|
selection_strategy = "reset",
|
||||||
|
sorting_strategy = "ascending",
|
||||||
|
layout_strategy = "horizontal",
|
||||||
|
layout_config = {
|
||||||
|
horizontal = {
|
||||||
|
prompt_position = "top",
|
||||||
|
preview_width = 0.55,
|
||||||
|
results_width = 0.8,
|
||||||
|
},
|
||||||
|
vertical = {
|
||||||
|
mirror = false,
|
||||||
|
},
|
||||||
|
width = 0.87,
|
||||||
|
height = 0.80,
|
||||||
|
preview_cutoff = 120,
|
||||||
|
},
|
||||||
|
|
||||||
|
mappings = {
|
||||||
|
i = {
|
||||||
|
["<C-n>"] = actions.cycle_history_next,
|
||||||
|
["<C-p>"] = actions.cycle_history_prev,
|
||||||
|
|
||||||
|
["<C-j>"] = actions.move_selection_next,
|
||||||
|
["<C-k>"] = actions.move_selection_previous,
|
||||||
|
|
||||||
|
["<C-c>"] = actions.close,
|
||||||
|
|
||||||
|
["<Down>"] = actions.move_selection_next,
|
||||||
|
["<Up>"] = actions.move_selection_previous,
|
||||||
|
|
||||||
|
["<CR>"] = actions.select_default,
|
||||||
|
["<C-x>"] = actions.select_horizontal,
|
||||||
|
["<C-v>"] = actions.select_vertical,
|
||||||
|
["<C-t>"] = actions.select_tab,
|
||||||
|
|
||||||
|
["<C-u>"] = actions.preview_scrolling_up,
|
||||||
|
["<C-d>"] = actions.preview_scrolling_down,
|
||||||
|
|
||||||
|
["<PageUp>"] = actions.results_scrolling_up,
|
||||||
|
["<PageDown>"] = actions.results_scrolling_down,
|
||||||
|
|
||||||
|
["<Tab>"] = actions.toggle_selection + actions.move_selection_worse,
|
||||||
|
["<S-Tab>"] = actions.toggle_selection + actions.move_selection_better,
|
||||||
|
["<C-q>"] = actions.send_to_qflist + actions.open_qflist,
|
||||||
|
["<M-q>"] = actions.send_selected_to_qflist + actions.open_qflist,
|
||||||
|
["<C-l>"] = actions.complete_tag,
|
||||||
|
},
|
||||||
|
|
||||||
|
n = {
|
||||||
|
["<esc>"] = actions.close,
|
||||||
|
["<CR>"] = actions.select_default,
|
||||||
|
["<C-x>"] = actions.select_horizontal,
|
||||||
|
["<C-v>"] = actions.select_vertical,
|
||||||
|
["<C-t>"] = actions.select_tab,
|
||||||
|
|
||||||
|
["<Tab>"] = actions.toggle_selection + actions.move_selection_worse,
|
||||||
|
["<S-Tab>"] = actions.toggle_selection + actions.move_selection_better,
|
||||||
|
["<C-q>"] = actions.send_to_qflist + actions.open_qflist,
|
||||||
|
["<M-q>"] = actions.send_selected_to_qflist + actions.open_qflist,
|
||||||
|
|
||||||
|
["j"] = actions.move_selection_next,
|
||||||
|
["k"] = actions.move_selection_previous,
|
||||||
|
["H"] = actions.move_to_top,
|
||||||
|
["M"] = actions.move_to_middle,
|
||||||
|
["L"] = actions.move_to_bottom,
|
||||||
|
|
||||||
|
["<Down>"] = actions.move_selection_next,
|
||||||
|
["<Up>"] = actions.move_selection_previous,
|
||||||
|
["gg"] = actions.move_to_top,
|
||||||
|
["G"] = actions.move_to_bottom,
|
||||||
|
|
||||||
|
["<C-u>"] = actions.preview_scrolling_up,
|
||||||
|
["<C-d>"] = actions.preview_scrolling_down,
|
||||||
|
|
||||||
|
["<PageUp>"] = actions.results_scrolling_up,
|
||||||
|
["<PageDown>"] = actions.results_scrolling_down,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
pickers = {},
|
||||||
|
extensions = {},
|
||||||
|
}))
|
||||||
|
end
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
local status_ok, toggleterm = pcall(require, "toggleterm")
|
||||||
|
if status_ok then
|
||||||
|
toggleterm.setup(astronvim.user_plugin_opts("plugins.toggleterm", {
|
||||||
|
size = 10,
|
||||||
|
open_mapping = [[<c-\>]],
|
||||||
|
shading_factor = 2,
|
||||||
|
direction = "float",
|
||||||
|
float_opts = {
|
||||||
|
border = "curved",
|
||||||
|
highlights = {
|
||||||
|
border = "Normal",
|
||||||
|
background = "Normal",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}))
|
||||||
|
end
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
local status_ok, treesitter = pcall(require, "nvim-treesitter.configs")
|
||||||
|
if status_ok then
|
||||||
|
treesitter.setup(astronvim.user_plugin_opts("plugins.treesitter", {
|
||||||
|
ensure_installed = {},
|
||||||
|
sync_install = false,
|
||||||
|
ignore_install = {},
|
||||||
|
highlight = {
|
||||||
|
enable = true,
|
||||||
|
additional_vim_regex_highlighting = false,
|
||||||
|
},
|
||||||
|
context_commentstring = {
|
||||||
|
enable = true,
|
||||||
|
enable_autocmd = false,
|
||||||
|
},
|
||||||
|
rainbow = {
|
||||||
|
enable = true,
|
||||||
|
disable = { "html" },
|
||||||
|
extended_mode = false,
|
||||||
|
max_file_lines = nil,
|
||||||
|
},
|
||||||
|
autopairs = { enable = true },
|
||||||
|
autotag = { enable = true },
|
||||||
|
incremental_selection = { enable = true },
|
||||||
|
indent = { enable = false },
|
||||||
|
}))
|
||||||
|
end
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
local status_ok, which_key = pcall(require, "which-key")
|
||||||
|
if status_ok then
|
||||||
|
local is_available = astronvim.is_available
|
||||||
|
local user_plugin_opts = astronvim.user_plugin_opts
|
||||||
|
local mappings = {
|
||||||
|
n = {
|
||||||
|
["<leader>"] = {
|
||||||
|
f = { name = "File" },
|
||||||
|
p = { name = "Packer" },
|
||||||
|
l = { name = "LSP" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
local extra_sections = {
|
||||||
|
g = "Git",
|
||||||
|
s = "Search",
|
||||||
|
S = "Session",
|
||||||
|
t = "Terminal",
|
||||||
|
}
|
||||||
|
|
||||||
|
local function init_table(mode, prefix, idx)
|
||||||
|
if not mappings[mode][prefix][idx] then
|
||||||
|
mappings[mode][prefix][idx] = { name = extra_sections[idx] }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if is_available "neovim-session-manager" then
|
||||||
|
init_table("n", "<leader>", "S")
|
||||||
|
end
|
||||||
|
|
||||||
|
if is_available "gitsigns.nvim" then
|
||||||
|
init_table("n", "<leader>", "g")
|
||||||
|
end
|
||||||
|
|
||||||
|
if is_available "toggleterm.nvim" then
|
||||||
|
init_table("n", "<leader>", "g")
|
||||||
|
init_table("n", "<leader>", "t")
|
||||||
|
end
|
||||||
|
|
||||||
|
if is_available "telescope.nvim" then
|
||||||
|
init_table("n", "<leader>", "s")
|
||||||
|
init_table("n", "<leader>", "g")
|
||||||
|
end
|
||||||
|
|
||||||
|
mappings = user_plugin_opts("which-key.register_mappings", mappings)
|
||||||
|
-- support previous legacy notation, deprecate at some point
|
||||||
|
mappings.n["<leader>"] = user_plugin_opts("which-key.register_n_leader", mappings.n["<leader>"])
|
||||||
|
for mode, prefixes in pairs(mappings) do
|
||||||
|
for prefix, mapping_table in pairs(prefixes) do
|
||||||
|
which_key.register(mapping_table, {
|
||||||
|
mode = mode,
|
||||||
|
prefix = prefix,
|
||||||
|
buffer = nil,
|
||||||
|
silent = true,
|
||||||
|
noremap = true,
|
||||||
|
nowait = true,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
local status_ok, which_key = pcall(require, "which-key")
|
||||||
|
if status_ok then
|
||||||
|
local show = which_key.show
|
||||||
|
local show_override = astronvim.user_plugin_opts("which-key.show", nil, false)
|
||||||
|
which_key.show = type(show_override) == "function" and show_override(show)
|
||||||
|
or function(keys, opts)
|
||||||
|
if vim.bo.filetype ~= "TelescopePrompt" then
|
||||||
|
show(keys, opts)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
which_key.setup(astronvim.user_plugin_opts("plugins.which-key", {
|
||||||
|
plugins = {
|
||||||
|
spelling = { enabled = true },
|
||||||
|
presets = { operators = false },
|
||||||
|
},
|
||||||
|
window = {
|
||||||
|
border = "rounded",
|
||||||
|
padding = { 2, 2, 2, 2 },
|
||||||
|
},
|
||||||
|
}))
|
||||||
|
end
|
||||||
@@ -0,0 +1,104 @@
|
|||||||
|
local is_available = astronvim.is_available
|
||||||
|
local cmd = vim.api.nvim_create_autocmd
|
||||||
|
local augroup = vim.api.nvim_create_augroup
|
||||||
|
local create_command = vim.api.nvim_create_user_command
|
||||||
|
|
||||||
|
augroup("highlighturl", { clear = true })
|
||||||
|
cmd({ "VimEnter", "FileType", "BufEnter", "WinEnter" }, {
|
||||||
|
desc = "URL Highlighting",
|
||||||
|
group = "highlighturl",
|
||||||
|
pattern = "*",
|
||||||
|
callback = function()
|
||||||
|
astronvim.set_url_match()
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
if is_available "alpha-nvim" then
|
||||||
|
augroup("alpha_settings", { clear = true })
|
||||||
|
if is_available "bufferline.nvim" then
|
||||||
|
cmd("FileType", {
|
||||||
|
desc = "Disable tabline for alpha",
|
||||||
|
group = "alpha_settings",
|
||||||
|
pattern = "alpha",
|
||||||
|
callback = function()
|
||||||
|
local prev_showtabline = vim.opt.showtabline
|
||||||
|
vim.opt.showtabline = 0
|
||||||
|
cmd("BufUnload", {
|
||||||
|
pattern = "<buffer>",
|
||||||
|
callback = function()
|
||||||
|
vim.opt.showtabline = prev_showtabline
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
cmd("FileType", {
|
||||||
|
desc = "Disable statusline for alpha",
|
||||||
|
group = "alpha_settings",
|
||||||
|
pattern = "alpha",
|
||||||
|
callback = function()
|
||||||
|
local prev_status = vim.opt.laststatus
|
||||||
|
vim.opt.laststatus = 0
|
||||||
|
cmd("BufUnload", {
|
||||||
|
pattern = "<buffer>",
|
||||||
|
callback = function()
|
||||||
|
vim.opt.laststatus = prev_status
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
cmd("VimEnter", {
|
||||||
|
desc = "Start Alpha when vim is opened with no arguments",
|
||||||
|
group = "alpha_settings",
|
||||||
|
callback = function()
|
||||||
|
-- optimized start check from https://github.com/goolord/alpha-nvim
|
||||||
|
local alpha_avail, alpha = pcall(require, "alpha")
|
||||||
|
if alpha_avail then
|
||||||
|
local should_skip = false
|
||||||
|
if vim.fn.argc() > 0 or vim.fn.line2byte "$" ~= -1 or not vim.o.modifiable then
|
||||||
|
should_skip = true
|
||||||
|
else
|
||||||
|
for _, arg in pairs(vim.v.argv) do
|
||||||
|
if arg == "-b" or arg == "-c" or vim.startswith(arg, "+") or arg == "-S" then
|
||||||
|
should_skip = true
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if not should_skip then
|
||||||
|
alpha.start(true)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
if is_available "neo-tree.nvim" then
|
||||||
|
augroup("neotree_start", { clear = true })
|
||||||
|
cmd("BufEnter", {
|
||||||
|
desc = "Open Neo-Tree on startup with directory",
|
||||||
|
group = "neotree_start",
|
||||||
|
callback = function()
|
||||||
|
local stats = vim.loop.fs_stat(vim.api.nvim_buf_get_name(0))
|
||||||
|
if stats and stats.type == "directory" then
|
||||||
|
require("neo-tree.setup.netrw").hijack()
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
if is_available "feline.nvim" then
|
||||||
|
augroup("feline_setup", { clear = true })
|
||||||
|
cmd("ColorScheme", {
|
||||||
|
desc = "Reload feline on colorscheme change",
|
||||||
|
group = "feline_setup",
|
||||||
|
callback = function()
|
||||||
|
package.loaded["configs.feline"] = nil
|
||||||
|
require "configs.feline"
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
create_command("AstroUpdate", astronvim.updater.update, { desc = "Update AstroNvim" })
|
||||||
|
create_command("AstroVersion", astronvim.updater.version, { desc = "Check AstroNvim Version" })
|
||||||
|
create_command("ToggleHighlightURL", astronvim.toggle_url_match, { desc = "Toggle URL Highlights" })
|
||||||
@@ -0,0 +1,420 @@
|
|||||||
|
local is_available = astronvim.is_available
|
||||||
|
|
||||||
|
local maps = { n = {}, v = {}, t = {}, [""] = {} }
|
||||||
|
|
||||||
|
maps[""]["<Space>"] = "<Nop>"
|
||||||
|
|
||||||
|
-- Normal --
|
||||||
|
-- Standard Operations
|
||||||
|
maps.n["<leader>w"] = { "<cmd>w<cr>", desc = "Save" }
|
||||||
|
maps.n["<leader>q"] = { "<cmd>q<cr>", desc = "Quit" }
|
||||||
|
maps.n["<leader>h"] = { "<cmd>nohlsearch<cr>", desc = "No Highlight" }
|
||||||
|
maps.n["<leader>u"] = {
|
||||||
|
function()
|
||||||
|
astronvim.toggle_url_match()
|
||||||
|
end,
|
||||||
|
desc = "Toggle URL Highlights",
|
||||||
|
}
|
||||||
|
maps.n["<leader>fn"] = { "<cmd>enew<cr>", desc = "New File" }
|
||||||
|
maps.n["gx"] = {
|
||||||
|
function()
|
||||||
|
astronvim.url_opener()
|
||||||
|
end,
|
||||||
|
desc = "Open the file under cursor with system app",
|
||||||
|
}
|
||||||
|
maps.n["<C-s>"] = { "<cmd>w!<cr>", desc = "Force write" }
|
||||||
|
maps.n["<C-q>"] = { "<cmd>q!<cr>", desc = "Force quit" }
|
||||||
|
maps.n["Q"] = "<Nop>"
|
||||||
|
|
||||||
|
-- Packer
|
||||||
|
maps.n["<leader>pc"] = { "<cmd>PackerCompile<cr>", desc = "Packer Compile" }
|
||||||
|
maps.n["<leader>pi"] = { "<cmd>PackerInstall<cr>", desc = "Packer Install" }
|
||||||
|
maps.n["<leader>ps"] = { "<cmd>PackerSync<cr>", desc = "Packer Sync" }
|
||||||
|
maps.n["<leader>pS"] = { "<cmd>PackerStatus<cr>", desc = "Packer Status" }
|
||||||
|
maps.n["<leader>pu"] = { "<cmd>PackerUpdate<cr>", desc = "Packer Update" }
|
||||||
|
|
||||||
|
-- Alpha
|
||||||
|
if is_available "alpha-nvim" then
|
||||||
|
maps.n["<leader>d"] = { "<cmd>Alpha<cr>", desc = "Alpha Dashboard" }
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Bufdelete
|
||||||
|
if is_available "bufdelete.nvim" then
|
||||||
|
maps.n["<leader>c"] = { "<cmd>Bdelete<cr>", desc = "Close buffer" }
|
||||||
|
else
|
||||||
|
maps.n["<leader>c"] = { "<cmd>bdelete<cr>", desc = "Close buffer" }
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Navigate buffers
|
||||||
|
if is_available "bufferline.nvim" then
|
||||||
|
maps.n["<S-l>"] = { "<cmd>BufferLineCycleNext<cr>", desc = "Next buffer tab" }
|
||||||
|
maps.n["<S-h>"] = { "<cmd>BufferLineCyclePrev<cr>", desc = "Previous buffer tab" }
|
||||||
|
maps.n[">b"] = { "<cmd>BufferLineMoveNext<cr>", desc = "Move buffer tab right" }
|
||||||
|
maps.n["<b"] = { "<cmd>BufferLineMovePrev<cr>", desc = "Move buffer tab left" }
|
||||||
|
else
|
||||||
|
maps.n["<S-l>"] = { "<cmd>bnext<cr>", desc = "Next buffer" }
|
||||||
|
maps.n["<S-h>"] = { "<cmd>bprevious<cr>", desc = "Previous buffer" }
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Comment
|
||||||
|
if is_available "Comment.nvim" then
|
||||||
|
maps.n["<leader>/"] = {
|
||||||
|
function()
|
||||||
|
require("Comment.api").toggle_current_linewise()
|
||||||
|
end,
|
||||||
|
desc = "Comment line",
|
||||||
|
}
|
||||||
|
maps.v["<leader>/"] = {
|
||||||
|
"<esc><cmd>lua require('Comment.api').toggle_linewise_op(vim.fn.visualmode())<cr>",
|
||||||
|
desc = "Toggle comment line",
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
-- GitSigns
|
||||||
|
if is_available "gitsigns.nvim" then
|
||||||
|
maps.n["<leader>gj"] = {
|
||||||
|
function()
|
||||||
|
require("gitsigns").next_hunk()
|
||||||
|
end,
|
||||||
|
desc = "Next git hunk",
|
||||||
|
}
|
||||||
|
maps.n["<leader>gk"] = {
|
||||||
|
function()
|
||||||
|
require("gitsigns").prev_hunk()
|
||||||
|
end,
|
||||||
|
desc = "Previous git hunk",
|
||||||
|
}
|
||||||
|
maps.n["<leader>gl"] = {
|
||||||
|
function()
|
||||||
|
require("gitsigns").blame_line()
|
||||||
|
end,
|
||||||
|
desc = "View git blame",
|
||||||
|
}
|
||||||
|
maps.n["<leader>gp"] = {
|
||||||
|
function()
|
||||||
|
require("gitsigns").preview_hunk()
|
||||||
|
end,
|
||||||
|
desc = "Preview git hunk",
|
||||||
|
}
|
||||||
|
maps.n["<leader>gh"] = {
|
||||||
|
function()
|
||||||
|
require("gitsigns").reset_hunk()
|
||||||
|
end,
|
||||||
|
desc = "Reset git hunk",
|
||||||
|
}
|
||||||
|
maps.n["<leader>gr"] = {
|
||||||
|
function()
|
||||||
|
require("gitsigns").reset_buffer()
|
||||||
|
end,
|
||||||
|
desc = "Reset git buffer",
|
||||||
|
}
|
||||||
|
maps.n["<leader>gs"] = {
|
||||||
|
function()
|
||||||
|
require("gitsigns").stage_hunk()
|
||||||
|
end,
|
||||||
|
desc = "Stage git hunk",
|
||||||
|
}
|
||||||
|
maps.n["<leader>gu"] = {
|
||||||
|
function()
|
||||||
|
require("gitsigns").undo_stage_hunk()
|
||||||
|
end,
|
||||||
|
desc = "Unstage git hunk",
|
||||||
|
}
|
||||||
|
maps.n["<leader>gd"] = {
|
||||||
|
function()
|
||||||
|
require("gitsigns").diffthis()
|
||||||
|
end,
|
||||||
|
desc = "View git diff",
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
-- NeoTree
|
||||||
|
if is_available "neo-tree.nvim" then
|
||||||
|
maps.n["<leader>e"] = { "<cmd>Neotree toggle<cr>", desc = "Toggle Explorer" }
|
||||||
|
maps.n["<leader>o"] = { "<cmd>Neotree focus<cr>", desc = "Focus Explorer" }
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Session Manager
|
||||||
|
if is_available "neovim-session-manager" then
|
||||||
|
maps.n["<leader>Sl"] = { "<cmd>SessionManager! load_last_session<cr>", desc = "Load last session" }
|
||||||
|
maps.n["<leader>Ss"] = { "<cmd>SessionManager! save_current_session<cr>", desc = "Save this session" }
|
||||||
|
maps.n["<leader>Sd"] = { "<cmd>SessionManager! delete_session<cr>", desc = "Delete session" }
|
||||||
|
maps.n["<leader>Sf"] = { "<cmd>SessionManager! load_session<cr>", desc = "Search sessions" }
|
||||||
|
maps.n["<leader>S."] = {
|
||||||
|
"<cmd>SessionManager! load_current_dir_session<cr>",
|
||||||
|
desc = "Load current directory session",
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
-- LSP Installer
|
||||||
|
if is_available "nvim-lsp-installer" then
|
||||||
|
maps.n["<leader>li"] = { "<cmd>LspInfo<cr>", desc = "LSP information" }
|
||||||
|
maps.n["<leader>lI"] = { "<cmd>LspInstallInfo<cr>", desc = "LSP installer" }
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Smart Splits
|
||||||
|
if is_available "smart-splits.nvim" then
|
||||||
|
-- Better window navigation
|
||||||
|
maps.n["<C-h>"] = {
|
||||||
|
function()
|
||||||
|
require("smart-splits").move_cursor_left()
|
||||||
|
end,
|
||||||
|
desc = "Move to left split",
|
||||||
|
}
|
||||||
|
maps.n["<C-j>"] = {
|
||||||
|
function()
|
||||||
|
require("smart-splits").move_cursor_down()
|
||||||
|
end,
|
||||||
|
desc = "Move to below split",
|
||||||
|
}
|
||||||
|
maps.n["<C-k>"] = {
|
||||||
|
function()
|
||||||
|
require("smart-splits").move_cursor_up()
|
||||||
|
end,
|
||||||
|
desc = "Move to above split",
|
||||||
|
}
|
||||||
|
maps.n["<C-l>"] = {
|
||||||
|
function()
|
||||||
|
require("smart-splits").move_cursor_right()
|
||||||
|
end,
|
||||||
|
desc = "Move to right split",
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Resize with arrows
|
||||||
|
maps.n["<C-Up>"] = {
|
||||||
|
function()
|
||||||
|
require("smart-splits").resize_up()
|
||||||
|
end,
|
||||||
|
desc = "Resize split up",
|
||||||
|
}
|
||||||
|
maps.n["<C-Down>"] = {
|
||||||
|
function()
|
||||||
|
require("smart-splits").resize_down()
|
||||||
|
end,
|
||||||
|
desc = "Resize split down",
|
||||||
|
}
|
||||||
|
maps.n["<C-Left>"] = {
|
||||||
|
function()
|
||||||
|
require("smart-splits").resize_left()
|
||||||
|
end,
|
||||||
|
desc = "Resize split left",
|
||||||
|
}
|
||||||
|
maps.n["<C-Right>"] = {
|
||||||
|
function()
|
||||||
|
require("smart-splits").resize_right()
|
||||||
|
end,
|
||||||
|
desc = "Resize split right",
|
||||||
|
}
|
||||||
|
else
|
||||||
|
maps.n["<C-h>"] = { "<C-w>h", desc = "Move to left split" }
|
||||||
|
maps.n["<C-j>"] = { "<C-w>j", desc = "Move to below split" }
|
||||||
|
maps.n["<C-k>"] = { "<C-w>k", desc = "Move to above split" }
|
||||||
|
maps.n["<C-l>"] = { "<C-w>l", desc = "Move to right split" }
|
||||||
|
maps.n["<C-Up>"] = { "<cmd>resize -2<CR>", desc = "Resize split up" }
|
||||||
|
maps.n["<C-Down>"] = { "<cmd>resize +2<CR>", desc = "Resize split down" }
|
||||||
|
maps.n["<C-Left>"] = { "<cmd>vertical resize -2<CR>", desc = "Resize split left" }
|
||||||
|
maps.n["<C-Right>"] = { "<cmd>vertical resize +2<CR>", desc = "Resize split right" }
|
||||||
|
end
|
||||||
|
|
||||||
|
-- SymbolsOutline
|
||||||
|
if is_available "aerial.nvim" then
|
||||||
|
maps.n["<leader>lS"] = { "<cmd>AerialToggle<cr>", desc = "Symbols outline" }
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Telescope
|
||||||
|
if is_available "telescope.nvim" then
|
||||||
|
maps.n["<leader>fw"] = {
|
||||||
|
function()
|
||||||
|
require("telescope.builtin").live_grep()
|
||||||
|
end,
|
||||||
|
desc = "Search words",
|
||||||
|
}
|
||||||
|
maps.n["<leader>fW"] = {
|
||||||
|
function()
|
||||||
|
require("telescope.builtin").live_grep {
|
||||||
|
additional_args = function(args)
|
||||||
|
return vim.list_extend(args, { "--hidden", "--no-ignore" })
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
desc = "Search words in all files",
|
||||||
|
}
|
||||||
|
maps.n["<leader>gt"] = {
|
||||||
|
function()
|
||||||
|
require("telescope.builtin").git_status()
|
||||||
|
end,
|
||||||
|
desc = "Git status",
|
||||||
|
}
|
||||||
|
maps.n["<leader>gb"] = {
|
||||||
|
function()
|
||||||
|
require("telescope.builtin").git_branches()
|
||||||
|
end,
|
||||||
|
desc = "Git branches",
|
||||||
|
}
|
||||||
|
maps.n["<leader>gc"] = {
|
||||||
|
function()
|
||||||
|
require("telescope.builtin").git_commits()
|
||||||
|
end,
|
||||||
|
desc = "Git commits",
|
||||||
|
}
|
||||||
|
maps.n["<leader>ff"] = {
|
||||||
|
function()
|
||||||
|
require("telescope.builtin").find_files()
|
||||||
|
end,
|
||||||
|
desc = "Search files",
|
||||||
|
}
|
||||||
|
maps.n["<leader>fF"] = {
|
||||||
|
function()
|
||||||
|
require("telescope.builtin").find_files { hidden = true, no_ignore = true }
|
||||||
|
end,
|
||||||
|
desc = "Search all files",
|
||||||
|
}
|
||||||
|
maps.n["<leader>fb"] = {
|
||||||
|
function()
|
||||||
|
require("telescope.builtin").buffers()
|
||||||
|
end,
|
||||||
|
desc = "Search buffers",
|
||||||
|
}
|
||||||
|
maps.n["<leader>fh"] = {
|
||||||
|
function()
|
||||||
|
require("telescope.builtin").help_tags()
|
||||||
|
end,
|
||||||
|
desc = "Search help",
|
||||||
|
}
|
||||||
|
maps.n["<leader>fm"] = {
|
||||||
|
function()
|
||||||
|
require("telescope.builtin").marks()
|
||||||
|
end,
|
||||||
|
desc = "Search marks",
|
||||||
|
}
|
||||||
|
maps.n["<leader>fo"] = {
|
||||||
|
function()
|
||||||
|
require("telescope.builtin").oldfiles()
|
||||||
|
end,
|
||||||
|
desc = "Search history",
|
||||||
|
}
|
||||||
|
maps.n["<leader>sb"] = {
|
||||||
|
function()
|
||||||
|
require("telescope.builtin").git_branches()
|
||||||
|
end,
|
||||||
|
desc = "Git branches",
|
||||||
|
}
|
||||||
|
maps.n["<leader>sh"] = {
|
||||||
|
function()
|
||||||
|
require("telescope.builtin").help_tags()
|
||||||
|
end,
|
||||||
|
desc = "Search help",
|
||||||
|
}
|
||||||
|
maps.n["<leader>sm"] = {
|
||||||
|
function()
|
||||||
|
require("telescope.builtin").man_pages()
|
||||||
|
end,
|
||||||
|
desc = "Search man",
|
||||||
|
}
|
||||||
|
maps.n["<leader>sn"] = {
|
||||||
|
function()
|
||||||
|
require("telescope").extensions.notify.notify()
|
||||||
|
end,
|
||||||
|
desc = "Search notifications",
|
||||||
|
}
|
||||||
|
maps.n["<leader>sr"] = {
|
||||||
|
function()
|
||||||
|
require("telescope.builtin").registers()
|
||||||
|
end,
|
||||||
|
desc = "Search registers",
|
||||||
|
}
|
||||||
|
maps.n["<leader>sk"] = {
|
||||||
|
function()
|
||||||
|
require("telescope.builtin").keymaps()
|
||||||
|
end,
|
||||||
|
desc = "Search keymaps",
|
||||||
|
}
|
||||||
|
maps.n["<leader>sc"] = {
|
||||||
|
function()
|
||||||
|
require("telescope.builtin").commands()
|
||||||
|
end,
|
||||||
|
desc = "Search commands",
|
||||||
|
}
|
||||||
|
maps.n["<leader>ls"] = {
|
||||||
|
function()
|
||||||
|
local aerial_avail, _ = pcall(require, "aerial")
|
||||||
|
if aerial_avail then
|
||||||
|
require("telescope").extensions.aerial.aerial()
|
||||||
|
else
|
||||||
|
require("telescope.builtin").lsp_document_symbols()
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
desc = "Search symbols",
|
||||||
|
}
|
||||||
|
maps.n["<leader>lR"] = {
|
||||||
|
function()
|
||||||
|
require("telescope.builtin").lsp_references()
|
||||||
|
end,
|
||||||
|
desc = "Search references",
|
||||||
|
}
|
||||||
|
maps.n["<leader>lD"] = {
|
||||||
|
function()
|
||||||
|
require("telescope.builtin").diagnostics()
|
||||||
|
end,
|
||||||
|
desc = "Search diagnostics",
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Terminal
|
||||||
|
if is_available "toggleterm.nvim" then
|
||||||
|
local toggle_term_cmd = astronvim.toggle_term_cmd
|
||||||
|
maps.n["<C-\\>"] = { "<cmd>ToggleTerm<cr>", desc = "Toggle terminal" }
|
||||||
|
maps.n["<leader>gg"] = {
|
||||||
|
function()
|
||||||
|
toggle_term_cmd "lazygit"
|
||||||
|
end,
|
||||||
|
desc = "ToggleTerm lazygit",
|
||||||
|
}
|
||||||
|
maps.n["<leader>tn"] = {
|
||||||
|
function()
|
||||||
|
toggle_term_cmd "node"
|
||||||
|
end,
|
||||||
|
desc = "ToggleTerm node",
|
||||||
|
}
|
||||||
|
maps.n["<leader>tu"] = {
|
||||||
|
function()
|
||||||
|
toggle_term_cmd "ncdu"
|
||||||
|
end,
|
||||||
|
desc = "ToggleTerm NCDU",
|
||||||
|
}
|
||||||
|
maps.n["<leader>tt"] = {
|
||||||
|
function()
|
||||||
|
toggle_term_cmd "htop"
|
||||||
|
end,
|
||||||
|
desc = "ToggleTerm htop",
|
||||||
|
}
|
||||||
|
maps.n["<leader>tp"] = {
|
||||||
|
function()
|
||||||
|
toggle_term_cmd "python"
|
||||||
|
end,
|
||||||
|
desc = "ToggleTerm python",
|
||||||
|
}
|
||||||
|
maps.n["<leader>tl"] = {
|
||||||
|
function()
|
||||||
|
toggle_term_cmd "lazygit"
|
||||||
|
end,
|
||||||
|
desc = "ToggleTerm lazygit",
|
||||||
|
}
|
||||||
|
maps.n["<leader>tf"] = { "<cmd>ToggleTerm direction=float<cr>", desc = "ToggleTerm float" }
|
||||||
|
maps.n["<leader>th"] = { "<cmd>ToggleTerm size=10 direction=horizontal<cr>", desc = "ToggleTerm horizontal split" }
|
||||||
|
maps.n["<leader>tv"] = { "<cmd>ToggleTerm size=80 direction=vertical<cr>", desc = "ToggleTerm vertical split" }
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Stay in indent mode
|
||||||
|
maps.v["<"] = { "<gv", desc = "unindent line" }
|
||||||
|
maps.v[">"] = { ">gv", desc = "indent line" }
|
||||||
|
|
||||||
|
-- Improved Terminal Mappings
|
||||||
|
maps.t["<esc>"] = { "<C-\\><C-n>", desc = "Terminal normal mode" }
|
||||||
|
maps.t["jk"] = { "<C-\\><C-n>", desc = "Terminal normal mode" }
|
||||||
|
maps.t["<C-h>"] = { "<c-\\><c-n><c-w>h", desc = "Terminal left window navigation" }
|
||||||
|
maps.t["<C-j>"] = { "<c-\\><c-n><c-w>j", desc = "Terminal down window navigation" }
|
||||||
|
maps.t["<C-k>"] = { "<c-\\><c-n><c-w>k", desc = "Terminal up window navigation" }
|
||||||
|
maps.t["<C-l>"] = { "<c-\\><c-n><c-w>l", desc = "Terminal right window naviation" }
|
||||||
|
|
||||||
|
astronvim.set_mappings(astronvim.user_plugin_opts("mappings", maps))
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
astronvim.vim_opts(astronvim.user_plugin_opts("options", {
|
||||||
|
opt = {
|
||||||
|
backspace = vim.opt.backspace + { "nostop" }, -- Don't stop backspace at insert
|
||||||
|
clipboard = "unnamedplus", -- Connection to the system clipboard
|
||||||
|
completeopt = { "menuone", "noselect" }, -- Options for insert mode completion
|
||||||
|
copyindent = true, -- Copy the previous indentation on autoindenting
|
||||||
|
cursorline = true, -- Highlight the text line of the cursor
|
||||||
|
expandtab = true, -- Enable the use of space in tab
|
||||||
|
fileencoding = "utf-8", -- File content encoding for the buffer
|
||||||
|
fillchars = { eob = " " }, -- Disable `~` on nonexistent lines
|
||||||
|
history = 100, -- Number of commands to remember in a history table
|
||||||
|
ignorecase = true, -- Case insensitive searching
|
||||||
|
laststatus = 3, -- globalstatus
|
||||||
|
lazyredraw = true, -- lazily redraw screen
|
||||||
|
mouse = "a", -- Enable mouse support
|
||||||
|
number = true, -- Show numberline
|
||||||
|
preserveindent = true, -- Preserve indent structure as much as possible
|
||||||
|
pumheight = 10, -- Height of the pop up menu
|
||||||
|
relativenumber = true, -- Show relative numberline
|
||||||
|
scrolloff = 8, -- Number of lines to keep above and below the cursor
|
||||||
|
shiftwidth = 2, -- Number of space inserted for indentation
|
||||||
|
showmode = false, -- Disable showing modes in command line
|
||||||
|
sidescrolloff = 8, -- Number of columns to keep at the sides of the cursor
|
||||||
|
signcolumn = "yes", -- Always show the sign column
|
||||||
|
smartcase = true, -- Case sensitivie searching
|
||||||
|
splitbelow = true, -- Splitting a new window below the current one
|
||||||
|
splitright = true, -- Splitting a new window at the right of the current one
|
||||||
|
swapfile = false, -- Disable use of swapfile for the buffer
|
||||||
|
tabstop = 2, -- Number of space in a tab
|
||||||
|
termguicolors = true, -- Enable 24-bit RGB color in the TUI
|
||||||
|
timeoutlen = 300, -- Length of time to wait for a mapped sequence
|
||||||
|
undofile = true, -- Enable persistent undo
|
||||||
|
updatetime = 300, -- Length of time to wait before triggering the plugin
|
||||||
|
wrap = false, -- Disable wrapping of lines longer than the width of window
|
||||||
|
writebackup = false, -- Disable making a backup before overwriting a file
|
||||||
|
},
|
||||||
|
g = {
|
||||||
|
do_filetype_lua = 1, -- use filetype.lua
|
||||||
|
did_load_filetypes = 0, -- don't use filetype.vim
|
||||||
|
highlighturl_enabled = true, -- highlight URLs by default
|
||||||
|
mapleader = " ", -- set leader key
|
||||||
|
zipPlugin = false, -- disable zip
|
||||||
|
load_black = false, -- disable black
|
||||||
|
loaded_2html_plugin = true, -- disable 2html
|
||||||
|
loaded_getscript = true, -- disable getscript
|
||||||
|
loaded_getscriptPlugin = true, -- disable getscript
|
||||||
|
loaded_gzip = true, -- disable gzip
|
||||||
|
loaded_logipat = true, -- disable logipat
|
||||||
|
loaded_matchit = true, -- disable matchit
|
||||||
|
loaded_netrwFileHandlers = true, -- disable netrw
|
||||||
|
loaded_netrwPlugin = true, -- disable netrw
|
||||||
|
loaded_netrwSettngs = true, -- disable netrw
|
||||||
|
loaded_remote_plugins = true, -- disable remote plugins
|
||||||
|
loaded_tar = true, -- disable tar
|
||||||
|
loaded_tarPlugin = true, -- disable tar
|
||||||
|
loaded_zip = true, -- disable zip
|
||||||
|
loaded_zipPlugin = true, -- disable zip
|
||||||
|
loaded_vimball = true, -- disable vimball
|
||||||
|
loaded_vimballPlugin = true, -- disable vimball
|
||||||
|
},
|
||||||
|
}))
|
||||||
|
|
||||||
|
local colorscheme = astronvim.user_plugin_opts("colorscheme", nil, false)
|
||||||
|
vim.api.nvim_command(
|
||||||
|
"colorscheme "
|
||||||
|
.. (vim.tbl_contains(vim.fn.getcompletion("", "color"), colorscheme) and colorscheme or "default_theme")
|
||||||
|
)
|
||||||
@@ -0,0 +1,354 @@
|
|||||||
|
local astro_plugins = {
|
||||||
|
-- Plugin manager
|
||||||
|
["wbthomason/packer.nvim"] = {},
|
||||||
|
|
||||||
|
-- Optimiser
|
||||||
|
["lewis6991/impatient.nvim"] = {},
|
||||||
|
|
||||||
|
-- Lua functions
|
||||||
|
["nvim-lua/plenary.nvim"] = { module = "plenary" },
|
||||||
|
|
||||||
|
-- Popup API
|
||||||
|
["nvim-lua/popup.nvim"] = {},
|
||||||
|
|
||||||
|
-- Indent detection
|
||||||
|
["Darazaki/indent-o-matic"] = {
|
||||||
|
event = "BufReadPost",
|
||||||
|
config = function()
|
||||||
|
require "configs.indent-o-matic"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Notification Enhancer
|
||||||
|
["rcarriga/nvim-notify"] = {
|
||||||
|
event = "VimEnter",
|
||||||
|
config = function()
|
||||||
|
require "configs.notify"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Neovim UI Enhancer
|
||||||
|
["MunifTanjim/nui.nvim"] = { module = "nui" },
|
||||||
|
|
||||||
|
-- Cursorhold fix
|
||||||
|
["antoinemadec/FixCursorHold.nvim"] = {
|
||||||
|
event = { "BufRead", "BufNewFile" },
|
||||||
|
config = function()
|
||||||
|
vim.g.cursorhold_updatetime = 100
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Smarter Splits
|
||||||
|
["mrjones2014/smart-splits.nvim"] = {
|
||||||
|
module = "smart-splits",
|
||||||
|
config = function()
|
||||||
|
require "configs.smart-splits"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Icons
|
||||||
|
["kyazdani42/nvim-web-devicons"] = {
|
||||||
|
event = "VimEnter",
|
||||||
|
config = function()
|
||||||
|
require "configs.icons"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Bufferline
|
||||||
|
["akinsho/bufferline.nvim"] = {
|
||||||
|
after = "nvim-web-devicons",
|
||||||
|
config = function()
|
||||||
|
require "configs.bufferline"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Better buffer closing
|
||||||
|
["famiu/bufdelete.nvim"] = { cmd = { "Bdelete", "Bwipeout" } },
|
||||||
|
|
||||||
|
-- File explorer
|
||||||
|
["nvim-neo-tree/neo-tree.nvim"] = {
|
||||||
|
branch = "v2.x",
|
||||||
|
module = "neo-tree",
|
||||||
|
cmd = "Neotree",
|
||||||
|
requires = { "MunifTanjim/nui.nvim", "nvim-lua/plenary.nvim" },
|
||||||
|
setup = function()
|
||||||
|
vim.g.neo_tree_remove_legacy_commands = true
|
||||||
|
end,
|
||||||
|
config = function()
|
||||||
|
require "configs.neo-tree"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Statusline
|
||||||
|
["feline-nvim/feline.nvim"] = {
|
||||||
|
after = "nvim-web-devicons",
|
||||||
|
config = function()
|
||||||
|
require "configs.feline"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Parenthesis highlighting
|
||||||
|
["p00f/nvim-ts-rainbow"] = { after = "nvim-treesitter" },
|
||||||
|
|
||||||
|
-- Autoclose tags
|
||||||
|
["windwp/nvim-ts-autotag"] = { after = "nvim-treesitter" },
|
||||||
|
|
||||||
|
-- Context based commenting
|
||||||
|
["JoosepAlviste/nvim-ts-context-commentstring"] = { after = "nvim-treesitter" },
|
||||||
|
|
||||||
|
-- Syntax highlighting
|
||||||
|
["nvim-treesitter/nvim-treesitter"] = {
|
||||||
|
run = ":TSUpdate",
|
||||||
|
event = { "BufRead", "BufNewFile" },
|
||||||
|
cmd = {
|
||||||
|
"TSInstall",
|
||||||
|
"TSInstallInfo",
|
||||||
|
"TSInstallSync",
|
||||||
|
"TSUninstall",
|
||||||
|
"TSUpdate",
|
||||||
|
"TSUpdateSync",
|
||||||
|
"TSDisableAll",
|
||||||
|
"TSEnableAll",
|
||||||
|
},
|
||||||
|
config = function()
|
||||||
|
require "configs.treesitter"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Snippet collection
|
||||||
|
["rafamadriz/friendly-snippets"] = { opt = true },
|
||||||
|
|
||||||
|
-- Snippet engine
|
||||||
|
["L3MON4D3/LuaSnip"] = {
|
||||||
|
module = "luasnip",
|
||||||
|
wants = "friendly-snippets",
|
||||||
|
config = function()
|
||||||
|
require "configs.luasnip"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Completion engine
|
||||||
|
["hrsh7th/nvim-cmp"] = {
|
||||||
|
event = "InsertEnter",
|
||||||
|
config = function()
|
||||||
|
require "configs.cmp"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Snippet completion source
|
||||||
|
["saadparwaiz1/cmp_luasnip"] = {
|
||||||
|
after = "nvim-cmp",
|
||||||
|
config = function()
|
||||||
|
astronvim.add_user_cmp_source "luasnip"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Buffer completion source
|
||||||
|
["hrsh7th/cmp-buffer"] = {
|
||||||
|
after = "nvim-cmp",
|
||||||
|
config = function()
|
||||||
|
astronvim.add_user_cmp_source "buffer"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Path completion source
|
||||||
|
["hrsh7th/cmp-path"] = {
|
||||||
|
after = "nvim-cmp",
|
||||||
|
config = function()
|
||||||
|
astronvim.add_user_cmp_source "path"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- LSP completion source
|
||||||
|
["hrsh7th/cmp-nvim-lsp"] = {
|
||||||
|
after = "nvim-cmp",
|
||||||
|
config = function()
|
||||||
|
astronvim.add_user_cmp_source "nvim_lsp"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Built-in LSP
|
||||||
|
["neovim/nvim-lspconfig"] = { event = "VimEnter" },
|
||||||
|
|
||||||
|
-- LSP manager
|
||||||
|
["williamboman/nvim-lsp-installer"] = {
|
||||||
|
after = "nvim-lspconfig",
|
||||||
|
config = function()
|
||||||
|
require "configs.nvim-lsp-installer"
|
||||||
|
require "configs.lsp"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- LSP symbols
|
||||||
|
["stevearc/aerial.nvim"] = {
|
||||||
|
module = "aerial",
|
||||||
|
cmd = { "AerialToggle", "AerialOpen", "AerialInfo" },
|
||||||
|
config = function()
|
||||||
|
require "configs.aerial"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Formatting and linting
|
||||||
|
["jose-elias-alvarez/null-ls.nvim"] = {
|
||||||
|
event = { "BufRead", "BufNewFile" },
|
||||||
|
config = function()
|
||||||
|
require "configs.null-ls"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Fuzzy finder
|
||||||
|
["nvim-telescope/telescope.nvim"] = {
|
||||||
|
cmd = "Telescope",
|
||||||
|
module = "telescope",
|
||||||
|
config = function()
|
||||||
|
require "configs.telescope"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Fuzzy finder syntax support
|
||||||
|
[("nvim-telescope/telescope-%s-native.nvim"):format(vim.fn.has "win32" == 1 and "fzy" or "fzf")] = {
|
||||||
|
after = "telescope.nvim",
|
||||||
|
run = vim.fn.has "win32" ~= 1 and "make" or nil,
|
||||||
|
config = function()
|
||||||
|
require("telescope").load_extension(vim.fn.has "win32" == 1 and "fzy_native" or "fzf")
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Git integration
|
||||||
|
["lewis6991/gitsigns.nvim"] = {
|
||||||
|
event = "BufEnter",
|
||||||
|
config = function()
|
||||||
|
require "configs.gitsigns"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Start screen
|
||||||
|
["goolord/alpha-nvim"] = {
|
||||||
|
cmd = "Alpha",
|
||||||
|
module = "alpha",
|
||||||
|
config = function()
|
||||||
|
require "configs.alpha"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Color highlighting
|
||||||
|
["norcalli/nvim-colorizer.lua"] = {
|
||||||
|
event = { "BufRead", "BufNewFile" },
|
||||||
|
config = function()
|
||||||
|
require "configs.colorizer"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Autopairs
|
||||||
|
["windwp/nvim-autopairs"] = {
|
||||||
|
event = "InsertEnter",
|
||||||
|
config = function()
|
||||||
|
require "configs.autopairs"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Terminal
|
||||||
|
["akinsho/toggleterm.nvim"] = {
|
||||||
|
cmd = "ToggleTerm",
|
||||||
|
module = { "toggleterm", "toggleterm.terminal" },
|
||||||
|
config = function()
|
||||||
|
require "configs.toggleterm"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Commenting
|
||||||
|
["numToStr/Comment.nvim"] = {
|
||||||
|
module = { "Comment", "Comment.api" },
|
||||||
|
keys = { "gc", "gb", "g<", "g>" },
|
||||||
|
config = function()
|
||||||
|
require "configs.Comment"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Indentation
|
||||||
|
["lukas-reineke/indent-blankline.nvim"] = {
|
||||||
|
event = "BufRead",
|
||||||
|
config = function()
|
||||||
|
require "configs.indent-line"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Keymaps popup
|
||||||
|
["folke/which-key.nvim"] = {
|
||||||
|
module = "which-key",
|
||||||
|
config = function()
|
||||||
|
require "configs.which-key"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Smooth scrolling
|
||||||
|
["declancm/cinnamon.nvim"] = {
|
||||||
|
event = { "BufRead", "BufNewFile" },
|
||||||
|
config = function()
|
||||||
|
require "configs.cinnamon"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Smooth escaping
|
||||||
|
["max397574/better-escape.nvim"] = {
|
||||||
|
event = "InsertCharPre",
|
||||||
|
config = function()
|
||||||
|
require "configs.better_escape"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Get extra JSON schemas
|
||||||
|
["b0o/SchemaStore.nvim"] = { module = "schemastore" },
|
||||||
|
|
||||||
|
-- Session manager
|
||||||
|
["Shatur/neovim-session-manager"] = {
|
||||||
|
module = "session_manager",
|
||||||
|
cmd = "SessionManager",
|
||||||
|
event = "BufWritePost",
|
||||||
|
config = function()
|
||||||
|
require "configs.session_manager"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
if astronvim.updater.snapshot then
|
||||||
|
for plugin, options in pairs(astro_plugins) do
|
||||||
|
local pin = astronvim.updater.snapshot[plugin:match "/([^/]*)$"]
|
||||||
|
options.commit = pin and pin.commit or options.commit
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local user_plugin_opts = astronvim.user_plugin_opts
|
||||||
|
local packer = astronvim.initialize_packer()
|
||||||
|
packer.startup {
|
||||||
|
function(use)
|
||||||
|
for key, plugin in pairs(user_plugin_opts("plugins.init", astro_plugins)) do
|
||||||
|
if type(key) == "string" and not plugin[1] then
|
||||||
|
plugin[1] = key
|
||||||
|
end
|
||||||
|
use(plugin)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
config = user_plugin_opts("plugins.packer", {
|
||||||
|
compile_path = astronvim.default_compile_path,
|
||||||
|
display = {
|
||||||
|
open_fn = function()
|
||||||
|
return require("packer.util").float { border = "rounded" }
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
profile = {
|
||||||
|
enable = true,
|
||||||
|
threshold = 0.0001,
|
||||||
|
},
|
||||||
|
git = {
|
||||||
|
clone_timeout = 300,
|
||||||
|
subcommands = {
|
||||||
|
update = "pull --rebase",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
auto_clean = true,
|
||||||
|
compile_on_sync = true,
|
||||||
|
}),
|
||||||
|
}
|
||||||
|
|
||||||
|
astronvim.compiled()
|
||||||
@@ -0,0 +1,122 @@
|
|||||||
|
local M = { hl = {}, provider = {}, conditional = {} }
|
||||||
|
local C = require "default_theme.colors"
|
||||||
|
|
||||||
|
local function hl_by_name(name)
|
||||||
|
return string.format("#%06x", vim.api.nvim_get_hl_by_name(name.group, true)[name.prop])
|
||||||
|
end
|
||||||
|
|
||||||
|
local function hl_prop(group, prop)
|
||||||
|
local status_ok, color = pcall(hl_by_name, { group = group, prop = prop })
|
||||||
|
return status_ok and color or nil
|
||||||
|
end
|
||||||
|
|
||||||
|
M.modes = {
|
||||||
|
["n"] = { "NORMAL", "Normal", C.blue },
|
||||||
|
["no"] = { "N-PENDING", "Normal", C.blue },
|
||||||
|
["i"] = { "INSERT", "Insert", C.green },
|
||||||
|
["ic"] = { "INSERT", "Insert", C.green },
|
||||||
|
["t"] = { "TERMINAL", "Insert", C.green },
|
||||||
|
["v"] = { "VISUAL", "Visual", C.purple },
|
||||||
|
["V"] = { "V-LINE", "Visual", C.purple },
|
||||||
|
[""] = { "V-BLOCK", "Visual", C.purple },
|
||||||
|
["R"] = { "REPLACE", "Replace", C.red_1 },
|
||||||
|
["Rv"] = { "V-REPLACE", "Replace", C.red_1 },
|
||||||
|
["s"] = { "SELECT", "Visual", C.orange_1 },
|
||||||
|
["S"] = { "S-LINE", "Visual", C.orange_1 },
|
||||||
|
[""] = { "S-BLOCK", "Visual", C.orange_1 },
|
||||||
|
["c"] = { "COMMAND", "Command", C.yellow_1 },
|
||||||
|
["cv"] = { "COMMAND", "Command", C.yellow_1 },
|
||||||
|
["ce"] = { "COMMAND", "Command", C.yellow_1 },
|
||||||
|
["r"] = { "PROMPT", "Inactive", C.grey_7 },
|
||||||
|
["rm"] = { "MORE", "Inactive", C.grey_7 },
|
||||||
|
["r?"] = { "CONFIRM", "Inactive", C.grey_7 },
|
||||||
|
["!"] = { "SHELL", "Inactive", C.grey_7 },
|
||||||
|
}
|
||||||
|
|
||||||
|
function M.hl.group(hlgroup, base)
|
||||||
|
return vim.tbl_deep_extend(
|
||||||
|
"force",
|
||||||
|
base or {},
|
||||||
|
{ fg = hl_prop(hlgroup, "foreground"), bg = hl_prop(hlgroup, "background") }
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.hl.fg(hlgroup, base)
|
||||||
|
return vim.tbl_deep_extend("force", base or {}, { fg = hl_prop(hlgroup, "foreground") })
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.hl.mode(base)
|
||||||
|
local lualine_avail, lualine = pcall(require, "lualine.themes." .. (vim.g.colors_name or "default_theme"))
|
||||||
|
return function()
|
||||||
|
local lualine_opts = lualine_avail and lualine[M.modes[vim.fn.mode()][2]:lower()]
|
||||||
|
return M.hl.group(
|
||||||
|
"Feline" .. M.modes[vim.fn.mode()][2],
|
||||||
|
vim.tbl_deep_extend(
|
||||||
|
"force",
|
||||||
|
lualine_opts and type(lualine_opts.a) == "table" and lualine_opts.a
|
||||||
|
or { fg = C.bg_1, bg = M.modes[vim.fn.mode()][3] },
|
||||||
|
base or {}
|
||||||
|
)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.provider.lsp_progress()
|
||||||
|
local Lsp = vim.lsp.util.get_progress_messages()[1]
|
||||||
|
return Lsp
|
||||||
|
and string.format(
|
||||||
|
" %%<%s %s %s (%s%%%%) ",
|
||||||
|
((Lsp.percentage or 0) >= 70 and { "", "", "" } or { "", "", "" })[math.floor(
|
||||||
|
vim.loop.hrtime() / 12e7
|
||||||
|
) % 3 + 1],
|
||||||
|
Lsp.title or "",
|
||||||
|
Lsp.message or "",
|
||||||
|
Lsp.percentage or 0
|
||||||
|
)
|
||||||
|
or ""
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.provider.lsp_client_names(expand_null_ls)
|
||||||
|
return function()
|
||||||
|
local buf_client_names = {}
|
||||||
|
for _, client in pairs(vim.lsp.buf_get_clients(0)) do
|
||||||
|
if client.name == "null-ls" and expand_null_ls then
|
||||||
|
vim.list_extend(buf_client_names, astronvim.null_ls_sources(vim.bo.filetype, "FORMATTING"))
|
||||||
|
vim.list_extend(buf_client_names, astronvim.null_ls_sources(vim.bo.filetype, "DIAGNOSTICS"))
|
||||||
|
else
|
||||||
|
table.insert(buf_client_names, client.name)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return table.concat(buf_client_names, ", ")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.provider.treesitter_status()
|
||||||
|
local ts = vim.treesitter.highlighter.active[vim.api.nvim_get_current_buf()]
|
||||||
|
return (ts and next(ts)) and " 綠TS" or ""
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.provider.spacer(n)
|
||||||
|
return string.rep(" ", n or 1)
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.conditional.git_available()
|
||||||
|
return vim.b.gitsigns_head ~= nil
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.conditional.git_changed()
|
||||||
|
local git_status = vim.b.gitsigns_status_dict
|
||||||
|
return git_status and (git_status.added or 0) + (git_status.removed or 0) + (git_status.changed or 0) > 0
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.conditional.has_filetype()
|
||||||
|
return vim.fn.empty(vim.fn.expand "%:t") ~= 1 and vim.bo.filetype and vim.bo.filetype ~= ""
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.conditional.bar_width(n)
|
||||||
|
return function()
|
||||||
|
return (vim.opt.laststatus:get() == 3 and vim.opt.columns:get() or vim.fn.winwidth(0)) > (n or 80)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
||||||
@@ -0,0 +1,143 @@
|
|||||||
|
local ui = {}
|
||||||
|
|
||||||
|
function ui.nui_input()
|
||||||
|
-- Set up NUI for UI Input
|
||||||
|
-- From: https://github.com/MunifTanjim/nui.nvim/wiki/vim.ui#vimuiinput
|
||||||
|
local input_ui
|
||||||
|
vim.ui.input = function(opts, on_confirm)
|
||||||
|
local Input = require "nui.input"
|
||||||
|
local event = require("nui.utils.autocmd").event
|
||||||
|
if input_ui then
|
||||||
|
-- ensure single ui.input operation
|
||||||
|
vim.api.nvim_err_writeln "busy: another input is pending!"
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local function on_done(value)
|
||||||
|
if input_ui then
|
||||||
|
-- if it's still mounted, unmount it
|
||||||
|
input_ui:unmount()
|
||||||
|
end
|
||||||
|
-- pass the input value
|
||||||
|
on_confirm(value)
|
||||||
|
-- indicate the operation is done
|
||||||
|
input_ui = nil
|
||||||
|
end
|
||||||
|
|
||||||
|
local border_top_text = opts.prompt or "[Input]"
|
||||||
|
local default_value = opts.default
|
||||||
|
|
||||||
|
input_ui = Input({
|
||||||
|
relative = "cursor",
|
||||||
|
position = {
|
||||||
|
row = 1,
|
||||||
|
col = 0,
|
||||||
|
},
|
||||||
|
size = {
|
||||||
|
-- minimum width 20
|
||||||
|
width = math.max(20, type(default_value) == "string" and #default_value or 0),
|
||||||
|
},
|
||||||
|
border = {
|
||||||
|
style = "rounded",
|
||||||
|
highlight = "Normal",
|
||||||
|
text = {
|
||||||
|
top = border_top_text,
|
||||||
|
top_align = "left",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
win_options = {
|
||||||
|
winhighlight = "Normal:Normal",
|
||||||
|
},
|
||||||
|
}, {
|
||||||
|
default_value = default_value,
|
||||||
|
on_close = function()
|
||||||
|
on_done(nil)
|
||||||
|
end,
|
||||||
|
on_submit = function(value)
|
||||||
|
on_done(value)
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
input_ui:mount()
|
||||||
|
|
||||||
|
-- cancel operation if cursor leaves input
|
||||||
|
input_ui:on(event.BufLeave, function()
|
||||||
|
on_done(nil)
|
||||||
|
end, { once = true })
|
||||||
|
|
||||||
|
-- cancel operation if <Esc> is pressed
|
||||||
|
input_ui:map("n", "<Esc>", function()
|
||||||
|
on_done(nil)
|
||||||
|
end, { noremap = true, nowait = true })
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function ui.telescope_select()
|
||||||
|
-- Telescope UI selection
|
||||||
|
-- From: https://github.com/stevearc/dressing.nvim/blob/master/lua/dressing/select/telescope.lua
|
||||||
|
vim.ui.select = vim.schedule_wrap(function(items, opts, on_choice)
|
||||||
|
local themes = require "telescope.themes"
|
||||||
|
local actions = require "telescope.actions"
|
||||||
|
local state = require "telescope.actions.state"
|
||||||
|
local pickers = require "telescope.pickers"
|
||||||
|
local finders = require "telescope.finders"
|
||||||
|
local conf = require("telescope.config").values
|
||||||
|
|
||||||
|
if opts.format_item then
|
||||||
|
local format_item = opts.format_item
|
||||||
|
opts.format_item = function(item)
|
||||||
|
return tostring(format_item(item))
|
||||||
|
end
|
||||||
|
else
|
||||||
|
opts.format_item = tostring
|
||||||
|
end
|
||||||
|
|
||||||
|
local entry_maker = function(item)
|
||||||
|
local formatted = opts.format_item(item)
|
||||||
|
return {
|
||||||
|
display = formatted,
|
||||||
|
ordinal = formatted,
|
||||||
|
value = item,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
local picker_opts = themes.get_dropdown()
|
||||||
|
|
||||||
|
pickers.new(picker_opts, {
|
||||||
|
prompt_title = opts.prompt,
|
||||||
|
previewer = false,
|
||||||
|
finder = finders.new_table {
|
||||||
|
results = items,
|
||||||
|
entry_maker = entry_maker,
|
||||||
|
},
|
||||||
|
sorter = conf.generic_sorter(opts),
|
||||||
|
attach_mappings = function(prompt_bufnr)
|
||||||
|
actions.select_default:replace(function()
|
||||||
|
local selection = state.get_selected_entry()
|
||||||
|
actions.close(prompt_bufnr)
|
||||||
|
if not selection then
|
||||||
|
-- User did not select anything.
|
||||||
|
on_choice(nil, nil)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local idx = nil
|
||||||
|
for i, item in ipairs(items) do
|
||||||
|
if item == selection.value then
|
||||||
|
idx = i
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
on_choice(selection.value, idx)
|
||||||
|
end)
|
||||||
|
|
||||||
|
actions.close:enhance { post = function() end }
|
||||||
|
|
||||||
|
return true
|
||||||
|
end,
|
||||||
|
}):find()
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
for ui_addition, enabled in pairs(astronvim.user_plugin_opts("ui", { nui_input = true, telescope_select = true })) do
|
||||||
|
astronvim.conditional_func(ui[ui_addition], enabled)
|
||||||
|
end
|
||||||
@@ -0,0 +1,101 @@
|
|||||||
|
local git = { url = "https://github.com/" }
|
||||||
|
|
||||||
|
function git.cmd(args, ...)
|
||||||
|
return astronvim.cmd("git -C " .. astronvim.install.home .. " " .. args, ...)
|
||||||
|
end
|
||||||
|
|
||||||
|
function git.is_repo()
|
||||||
|
return git.cmd("rev-parse --is-inside-work-tree", false)
|
||||||
|
end
|
||||||
|
|
||||||
|
function git.fetch(remote, ...)
|
||||||
|
return git.cmd("fetch " .. remote, ...)
|
||||||
|
end
|
||||||
|
|
||||||
|
function git.pull(...)
|
||||||
|
return git.cmd("pull --rebase", ...)
|
||||||
|
end
|
||||||
|
|
||||||
|
function git.checkout(dest, ...)
|
||||||
|
return git.cmd("checkout " .. dest, ...)
|
||||||
|
end
|
||||||
|
|
||||||
|
function git.hard_reset(dest, ...)
|
||||||
|
return git.cmd("reset --hard " .. dest, ...)
|
||||||
|
end
|
||||||
|
|
||||||
|
function git.branch_contains(remote, branch, commit, ...)
|
||||||
|
return git.cmd("merge-base --is-ancestor " .. commit .. " " .. remote .. "/" .. branch, ...) ~= nil
|
||||||
|
end
|
||||||
|
|
||||||
|
function git.remote_add(remote, url, ...)
|
||||||
|
return git.cmd("remote add " .. remote .. " " .. url, ...)
|
||||||
|
end
|
||||||
|
|
||||||
|
function git.remote_update(remote, url, ...)
|
||||||
|
return git.cmd("remote set-url " .. remote .. " " .. url, ...)
|
||||||
|
end
|
||||||
|
|
||||||
|
function git.remote_url(remote, ...)
|
||||||
|
return astronvim.trim_or_nil(git.cmd("remote get-url " .. remote, ...))
|
||||||
|
end
|
||||||
|
|
||||||
|
function git.current_version(...)
|
||||||
|
return astronvim.trim_or_nil(git.cmd("describe --tags", ...))
|
||||||
|
end
|
||||||
|
|
||||||
|
function git.current_branch(...)
|
||||||
|
return astronvim.trim_or_nil(git.cmd("rev-parse --abbrev-ref HEAD", ...))
|
||||||
|
end
|
||||||
|
|
||||||
|
function git.local_head(...)
|
||||||
|
return astronvim.trim_or_nil(git.cmd("rev-parse HEAD", ...))
|
||||||
|
end
|
||||||
|
|
||||||
|
function git.remote_head(remote, branch, ...)
|
||||||
|
return astronvim.trim_or_nil(git.cmd("rev-list -n 1 " .. remote .. "/" .. branch, ...))
|
||||||
|
end
|
||||||
|
|
||||||
|
function git.tag_commit(tag, ...)
|
||||||
|
return astronvim.trim_or_nil(git.cmd("rev-list -n 1 " .. tag, ...))
|
||||||
|
end
|
||||||
|
|
||||||
|
function git.get_commit_range(start_hash, end_hash, ...)
|
||||||
|
local log = git.cmd("log --no-merges --pretty='format:[%h] %s' " .. start_hash .. ".." .. end_hash, ...)
|
||||||
|
return log and vim.fn.split(log, "\n") or {}
|
||||||
|
end
|
||||||
|
|
||||||
|
function git.get_versions(search, ...)
|
||||||
|
local tags = git.cmd("tag -l --sort=version:refname '" .. (search == "latest" and "v*" or search) .. "'", ...)
|
||||||
|
return tags and vim.fn.split(tags, "\n") or {}
|
||||||
|
end
|
||||||
|
|
||||||
|
function git.latest_version(versions, ...)
|
||||||
|
versions = versions and versions or git.get_versions(...)
|
||||||
|
return versions[#versions]
|
||||||
|
end
|
||||||
|
|
||||||
|
function git.parse_remote_url(str)
|
||||||
|
return vim.fn.match(str, astronvim.url_matcher) == -1
|
||||||
|
and git.url .. str .. (vim.fn.match(str, "/") == -1 and "/AstroNvim.git" or ".git")
|
||||||
|
or str
|
||||||
|
end
|
||||||
|
|
||||||
|
function git.breaking_changes(commits)
|
||||||
|
return vim.tbl_filter(function(v)
|
||||||
|
return vim.fn.match(v, "\\[.*\\]\\s\\+\\w\\+\\((\\w\\+)\\)\\?!:") ~= -1
|
||||||
|
end, commits)
|
||||||
|
end
|
||||||
|
|
||||||
|
function git.pretty_changelog(commits)
|
||||||
|
local changelog = {}
|
||||||
|
for _, commit in ipairs(commits) do
|
||||||
|
local hash, type, msg = commit:match "(%[.*%])(.*:)(.*)"
|
||||||
|
if hash and type and msg then
|
||||||
|
vim.list_extend(changelog, { { hash, "DiffText" }, { type, "Typedef" }, { msg }, { "\n" } })
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return changelog
|
||||||
|
end
|
||||||
|
|
||||||
|
return git
|
||||||
@@ -0,0 +1,299 @@
|
|||||||
|
_G.astronvim = {}
|
||||||
|
local stdpath = vim.fn.stdpath
|
||||||
|
local tbl_insert = table.insert
|
||||||
|
local map = vim.keymap.set
|
||||||
|
|
||||||
|
astronvim.install = astronvim_installation or { home = stdpath "config" }
|
||||||
|
|
||||||
|
local astronvim_config = stdpath("config"):gsub("nvim$", "astronvim")
|
||||||
|
vim.opt.rtp:append(astronvim_config)
|
||||||
|
local supported_configs = { astronvim.install.home, astronvim_config }
|
||||||
|
|
||||||
|
local function load_module_file(module)
|
||||||
|
local found_module = nil
|
||||||
|
for _, config_path in ipairs(supported_configs) do
|
||||||
|
local module_path = config_path .. "/lua/" .. module:gsub("%.", "/") .. ".lua"
|
||||||
|
if vim.fn.filereadable(module_path) == 1 then
|
||||||
|
found_module = module_path
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if found_module then
|
||||||
|
local status_ok, loaded_module = pcall(require, module)
|
||||||
|
if status_ok then
|
||||||
|
found_module = loaded_module
|
||||||
|
else
|
||||||
|
astronvim.notify("Error loading " .. found_module, "error")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return found_module
|
||||||
|
end
|
||||||
|
|
||||||
|
astronvim.user_settings = load_module_file "user.init"
|
||||||
|
astronvim.default_compile_path = stdpath "data" .. "/packer_compiled.lua"
|
||||||
|
astronvim.user_terminals = {}
|
||||||
|
astronvim.url_matcher =
|
||||||
|
"\\v\\c%(%(h?ttps?|ftp|file|ssh|git)://|[a-z]+[@][a-z]+[.][a-z]+:)%([&:#*@~%_\\-=?!+;/0-9a-z]+%(%([.;/?]|[.][.]+)[&:#*@~%_\\-=?!+/0-9a-z]+|:\\d+|,%(%(%(h?ttps?|ftp|file|ssh|git)://|[a-z]+[@][a-z]+[.][a-z]+:)@![0-9a-z]+))*|\\([&:#*@~%_\\-=?!+;/.0-9a-z]*\\)|\\[[&:#*@~%_\\-=?!+;/.0-9a-z]*\\]|\\{%([&:#*@~%_\\-=?!+;/.0-9a-z]*|\\{[&:#*@~%_\\-=?!+;/.0-9a-z]*})\\})+"
|
||||||
|
|
||||||
|
local function func_or_extend(overrides, default, extend)
|
||||||
|
if extend then
|
||||||
|
if type(overrides) == "table" then
|
||||||
|
default = vim.tbl_deep_extend("force", default, overrides)
|
||||||
|
elseif type(overrides) == "function" then
|
||||||
|
default = overrides(default)
|
||||||
|
end
|
||||||
|
elseif overrides ~= nil then
|
||||||
|
default = overrides
|
||||||
|
end
|
||||||
|
return default
|
||||||
|
end
|
||||||
|
|
||||||
|
function astronvim.conditional_func(func, condition, ...)
|
||||||
|
if (condition == nil and true or condition) and type(func) == "function" then
|
||||||
|
return func(...)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function astronvim.trim_or_nil(str)
|
||||||
|
return type(str) == "string" and vim.trim(str) or nil
|
||||||
|
end
|
||||||
|
|
||||||
|
function astronvim.notify(msg, type, opts)
|
||||||
|
vim.notify(msg, type, vim.tbl_deep_extend("force", { title = "AstroNvim" }, opts or {}))
|
||||||
|
end
|
||||||
|
|
||||||
|
function astronvim.echo(messages)
|
||||||
|
messages = messages or { { "\n" } }
|
||||||
|
if type(messages) == "table" then
|
||||||
|
vim.api.nvim_echo(messages, false, {})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function astronvim.confirm_prompt(messages)
|
||||||
|
if messages then
|
||||||
|
astronvim.echo(messages)
|
||||||
|
end
|
||||||
|
local confirmed = string.lower(vim.fn.input "(y/n) ") == "y"
|
||||||
|
astronvim.echo()
|
||||||
|
astronvim.echo()
|
||||||
|
return confirmed
|
||||||
|
end
|
||||||
|
|
||||||
|
local function user_setting_table(module)
|
||||||
|
local settings = astronvim.user_settings or {}
|
||||||
|
for tbl in string.gmatch(module, "([^%.]+)") do
|
||||||
|
settings = settings[tbl]
|
||||||
|
if settings == nil then
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return settings
|
||||||
|
end
|
||||||
|
|
||||||
|
function astronvim.initialize_packer()
|
||||||
|
local packer_avail, packer = pcall(require, "packer")
|
||||||
|
if not packer_avail then
|
||||||
|
local packer_path = stdpath "data" .. "/site/pack/packer/start/packer.nvim"
|
||||||
|
vim.fn.delete(packer_path, "rf")
|
||||||
|
vim.fn.system {
|
||||||
|
"git",
|
||||||
|
"clone",
|
||||||
|
"--depth",
|
||||||
|
"1",
|
||||||
|
"https://github.com/wbthomason/packer.nvim",
|
||||||
|
packer_path,
|
||||||
|
}
|
||||||
|
astronvim.echo { { "Initializing Packer...\n\n" } }
|
||||||
|
vim.cmd "packadd packer.nvim"
|
||||||
|
packer_avail, packer = pcall(require, "packer")
|
||||||
|
if not packer_avail then
|
||||||
|
vim.api.nvim_err_writeln("Failed to load packer at:" .. packer_path .. "\n\n" .. packer)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return packer
|
||||||
|
end
|
||||||
|
|
||||||
|
function astronvim.vim_opts(options)
|
||||||
|
for scope, table in pairs(options) do
|
||||||
|
for setting, value in pairs(table) do
|
||||||
|
vim[scope][setting] = value
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function astronvim.user_plugin_opts(module, default, extend, prefix)
|
||||||
|
if extend == nil then
|
||||||
|
extend = true
|
||||||
|
end
|
||||||
|
default = default or {}
|
||||||
|
local user_settings = load_module_file((prefix or "user") .. "." .. module)
|
||||||
|
if user_settings == nil and prefix == nil then
|
||||||
|
user_settings = user_setting_table(module)
|
||||||
|
end
|
||||||
|
if user_settings ~= nil then
|
||||||
|
default = func_or_extend(user_settings, default, extend)
|
||||||
|
end
|
||||||
|
return default
|
||||||
|
end
|
||||||
|
|
||||||
|
function astronvim.compiled()
|
||||||
|
local run_me, _ = loadfile(
|
||||||
|
astronvim.user_plugin_opts("plugins.packer", { compile_path = astronvim.default_compile_path }).compile_path
|
||||||
|
)
|
||||||
|
if run_me then
|
||||||
|
run_me()
|
||||||
|
else
|
||||||
|
astronvim.echo { { "Please run " }, { ":PackerSync", "Title" } }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function astronvim.url_opener()
|
||||||
|
if vim.fn.has "mac" == 1 then
|
||||||
|
vim.fn.jobstart({ "open", vim.fn.expand "<cfile>" }, { detach = true })
|
||||||
|
elseif vim.fn.has "unix" == 1 then
|
||||||
|
vim.fn.jobstart({ "xdg-open", vim.fn.expand "<cfile>" }, { detach = true })
|
||||||
|
else
|
||||||
|
astronvim.notify("gx is not supported on this OS!", "error")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- term_details can be either a string for just a command or
|
||||||
|
-- a complete table to provide full access to configuration when calling Terminal:new()
|
||||||
|
function astronvim.toggle_term_cmd(term_details)
|
||||||
|
if type(term_details) == "string" then
|
||||||
|
term_details = { cmd = term_details, hidden = true }
|
||||||
|
end
|
||||||
|
local term_key = term_details.cmd
|
||||||
|
if vim.v.count > 0 and term_details.count == nil then
|
||||||
|
term_details.count = vim.v.count
|
||||||
|
term_key = term_key .. vim.v.count
|
||||||
|
end
|
||||||
|
if astronvim.user_terminals[term_key] == nil then
|
||||||
|
astronvim.user_terminals[term_key] = require("toggleterm.terminal").Terminal:new(term_details)
|
||||||
|
end
|
||||||
|
astronvim.user_terminals[term_key]:toggle()
|
||||||
|
end
|
||||||
|
|
||||||
|
function astronvim.add_cmp_source(source)
|
||||||
|
local cmp_avail, cmp = pcall(require, "cmp")
|
||||||
|
if cmp_avail then
|
||||||
|
local config = cmp.get_config()
|
||||||
|
tbl_insert(config.sources, source)
|
||||||
|
cmp.setup(config)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function astronvim.get_user_cmp_source(source)
|
||||||
|
source = type(source) == "string" and { name = source } or source
|
||||||
|
local priority = astronvim.user_plugin_opts("cmp.source_priority", {
|
||||||
|
nvim_lsp = 1000,
|
||||||
|
luasnip = 750,
|
||||||
|
buffer = 500,
|
||||||
|
path = 250,
|
||||||
|
})[source.name]
|
||||||
|
if priority then
|
||||||
|
source.priority = priority
|
||||||
|
end
|
||||||
|
return source
|
||||||
|
end
|
||||||
|
|
||||||
|
function astronvim.add_user_cmp_source(source)
|
||||||
|
astronvim.add_cmp_source(astronvim.get_user_cmp_source(source))
|
||||||
|
end
|
||||||
|
|
||||||
|
function astronvim.null_ls_providers(filetype)
|
||||||
|
local registered = {}
|
||||||
|
local sources_avail, sources = pcall(require, "null-ls.sources")
|
||||||
|
if sources_avail then
|
||||||
|
for _, source in ipairs(sources.get_available(filetype)) do
|
||||||
|
for method in pairs(source.methods) do
|
||||||
|
registered[method] = registered[method] or {}
|
||||||
|
tbl_insert(registered[method], source.name)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return registered
|
||||||
|
end
|
||||||
|
|
||||||
|
function astronvim.null_ls_sources(filetype, source)
|
||||||
|
local methods_avail, methods = pcall(require, "null-ls.methods")
|
||||||
|
return methods_avail and astronvim.null_ls_providers(filetype)[methods.internal[source]] or {}
|
||||||
|
end
|
||||||
|
|
||||||
|
function astronvim.alpha_button(sc, txt)
|
||||||
|
local sc_ = sc:gsub("%s", ""):gsub("LDR", "<leader>")
|
||||||
|
if vim.g.mapleader then
|
||||||
|
sc = sc:gsub("LDR", vim.g.mapleader == " " and "SPC" or vim.g.mapleader)
|
||||||
|
end
|
||||||
|
return {
|
||||||
|
type = "button",
|
||||||
|
val = txt,
|
||||||
|
on_press = function()
|
||||||
|
local key = vim.api.nvim_replace_termcodes(sc_, true, false, true)
|
||||||
|
vim.api.nvim_feedkeys(key, "normal", false)
|
||||||
|
end,
|
||||||
|
opts = {
|
||||||
|
position = "center",
|
||||||
|
text = txt,
|
||||||
|
shortcut = sc,
|
||||||
|
cursor = 5,
|
||||||
|
width = 36,
|
||||||
|
align_shortcut = "right",
|
||||||
|
hl = "DashboardCenter",
|
||||||
|
hl_shortcut = "DashboardShortcut",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
function astronvim.is_available(plugin)
|
||||||
|
return packer_plugins ~= nil and packer_plugins[plugin] ~= nil
|
||||||
|
end
|
||||||
|
|
||||||
|
function astronvim.set_mappings(map_table, base)
|
||||||
|
for mode, maps in pairs(map_table) do
|
||||||
|
for keymap, options in pairs(maps) do
|
||||||
|
if options then
|
||||||
|
local cmd = options
|
||||||
|
if type(options) == "table" then
|
||||||
|
cmd = options[1]
|
||||||
|
options[1] = nil
|
||||||
|
else
|
||||||
|
options = {}
|
||||||
|
end
|
||||||
|
map(mode, keymap, cmd, vim.tbl_deep_extend("force", options, base or {}))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function astronvim.delete_url_match()
|
||||||
|
for _, match in ipairs(vim.fn.getmatches()) do
|
||||||
|
if match.group == "HighlightURL" then
|
||||||
|
vim.fn.matchdelete(match.id)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function astronvim.set_url_match()
|
||||||
|
astronvim.delete_url_match()
|
||||||
|
if vim.g.highlighturl_enabled then
|
||||||
|
vim.fn.matchadd("HighlightURL", astronvim.url_matcher, 15)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function astronvim.toggle_url_match()
|
||||||
|
vim.g.highlighturl_enabled = not vim.g.highlighturl_enabled
|
||||||
|
astronvim.set_url_match()
|
||||||
|
end
|
||||||
|
|
||||||
|
function astronvim.cmd(cmd, show_error)
|
||||||
|
local result = vim.fn.system(cmd)
|
||||||
|
local success = vim.api.nvim_get_vvar "shell_error" == 0
|
||||||
|
if not success and (show_error == nil and true or show_error) then
|
||||||
|
vim.api.nvim_err_writeln("Error running command: " .. cmd .. "\nError message:\n" .. result)
|
||||||
|
end
|
||||||
|
return success and result or nil
|
||||||
|
end
|
||||||
|
|
||||||
|
require "core.utils.updater"
|
||||||
|
|
||||||
|
return astronvim
|
||||||
@@ -0,0 +1,160 @@
|
|||||||
|
local fn = vim.fn
|
||||||
|
local git = require "core.utils.git"
|
||||||
|
local options = astronvim.user_plugin_opts(
|
||||||
|
"updater",
|
||||||
|
{ remote = "origin", branch = "main", channel = "nightly", show_changelog = true }
|
||||||
|
)
|
||||||
|
|
||||||
|
if astronvim.install.is_stable ~= nil then
|
||||||
|
options.channel = astronvim.install.is_stable and "stable" or "nightly"
|
||||||
|
end
|
||||||
|
|
||||||
|
astronvim.updater = { options = options }
|
||||||
|
if options.pin_plugins == nil and options.channel == "stable" or options.pin_plugins then
|
||||||
|
local loaded, snapshot = pcall(fn.readfile, astronvim.install.home .. "/packer_snapshot")
|
||||||
|
if loaded then
|
||||||
|
loaded, snapshot = pcall(fn.json_decode, snapshot)
|
||||||
|
astronvim.updater.snapshot = type(snapshot) == "table" and snapshot or nil
|
||||||
|
end
|
||||||
|
if not loaded then
|
||||||
|
vim.api.nvim_err_writeln "Error loading packer snapshot"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function astronvim.updater.version()
|
||||||
|
local version = astronvim.install.version or git.current_version(false)
|
||||||
|
if version then
|
||||||
|
astronvim.notify("Version: " .. version)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function attempt_update(target)
|
||||||
|
if options.channel == "stable" or options.commit then
|
||||||
|
return git.checkout(target, false)
|
||||||
|
else
|
||||||
|
return git.pull(false)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local cancelled_message = { { "Update cancelled", "WarningMsg" } }
|
||||||
|
|
||||||
|
function astronvim.updater.update()
|
||||||
|
if not git.is_repo() then
|
||||||
|
astronvim.notify("Updater not available for non-git installations", "error")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
for remote, entry in pairs(options.remotes and options.remotes or {}) do
|
||||||
|
local url = git.parse_remote_url(entry)
|
||||||
|
local current_url = git.remote_url(remote, false)
|
||||||
|
local check_needed = false
|
||||||
|
if not current_url then
|
||||||
|
git.remote_add(remote, url)
|
||||||
|
check_needed = true
|
||||||
|
elseif
|
||||||
|
current_url ~= url
|
||||||
|
and astronvim.confirm_prompt {
|
||||||
|
{ "Remote " },
|
||||||
|
{ remote, "Title" },
|
||||||
|
{ " is currently set to " },
|
||||||
|
{ current_url, "WarningMsg" },
|
||||||
|
{ "\nWould you like us to set it to " },
|
||||||
|
{ url, "String" },
|
||||||
|
{ "?" },
|
||||||
|
}
|
||||||
|
then
|
||||||
|
git.remote_update(remote, url)
|
||||||
|
check_needed = true
|
||||||
|
end
|
||||||
|
if check_needed and git.remote_url(remote, false) ~= url then
|
||||||
|
vim.api.nvim_err_writeln("Error setting up remote " .. remote .. " to " .. url)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
local is_stable = options.channel == "stable"
|
||||||
|
options.branch = is_stable and "main" or options.branch
|
||||||
|
if not git.fetch(options.remote) then
|
||||||
|
vim.api.nvim_err_writeln("Error fetching remote: " .. options.remote)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local local_branch = (options.remote == "origin" and "" or (options.remote .. "_")) .. options.branch
|
||||||
|
if git.current_branch() ~= local_branch then
|
||||||
|
astronvim.echo {
|
||||||
|
{ "Switching to branch: " },
|
||||||
|
{ options.remote .. "/" .. options.branch .. "\n\n", "String" },
|
||||||
|
}
|
||||||
|
if not git.checkout(local_branch, false) then
|
||||||
|
git.checkout("-b " .. local_branch .. " " .. options.remote .. "/" .. options.branch, false)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if git.current_branch() ~= local_branch then
|
||||||
|
vim.api.nvim_err_writeln("Error checking out branch: " .. options.remote .. "/" .. options.branch)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local source = git.local_head() -- calculate current commit
|
||||||
|
local target -- calculate target commit
|
||||||
|
if is_stable then -- if stable get tag commit
|
||||||
|
options.version = git.latest_version(git.get_versions(options.version or "latest"))
|
||||||
|
target = git.tag_commit(options.version)
|
||||||
|
elseif options.commit then -- if commit specified use it
|
||||||
|
target = git.branch_contains(options.remote, options.branch, options.commit) and options.commit or nil
|
||||||
|
else -- get most recent commit
|
||||||
|
target = git.remote_head(options.remote, options.branch)
|
||||||
|
end
|
||||||
|
if not source or not target then -- continue if current and target commits were found
|
||||||
|
vim.api.nvim_err_writeln "Error checking for updates"
|
||||||
|
return
|
||||||
|
elseif source == target then
|
||||||
|
astronvim.echo { { "No updates available", "String" } }
|
||||||
|
return
|
||||||
|
elseif -- prompt user if they want to accept update
|
||||||
|
not options.skip_prompts
|
||||||
|
and not astronvim.confirm_prompt {
|
||||||
|
{ "Update available to ", "Title" },
|
||||||
|
{ is_stable and options.version or target, "String" },
|
||||||
|
{ "\nContinue?" },
|
||||||
|
}
|
||||||
|
then
|
||||||
|
astronvim.echo(cancelled_message)
|
||||||
|
return
|
||||||
|
else -- perform update
|
||||||
|
local changelog = git.get_commit_range(source, target)
|
||||||
|
local breaking = git.breaking_changes(changelog)
|
||||||
|
local breaking_prompt = { { "Update contains the following breaking changes:\n", "WarningMsg" } }
|
||||||
|
vim.list_extend(breaking_prompt, git.pretty_changelog(breaking))
|
||||||
|
vim.list_extend(breaking_prompt, { { "\nWould you like to continue?" } })
|
||||||
|
if #breaking > 0 and not options.skip_prompts and not astronvim.confirm_prompt(breaking_prompt) then
|
||||||
|
astronvim.echo(cancelled_message)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local updated = attempt_update(target)
|
||||||
|
if
|
||||||
|
not updated
|
||||||
|
and not options.skip_prompts
|
||||||
|
and not astronvim.confirm_prompt {
|
||||||
|
{ "Unable to pull due to local modifications to base files.\n", "ErrorMsg" },
|
||||||
|
{ "Reset local files and continue?" },
|
||||||
|
}
|
||||||
|
then
|
||||||
|
astronvim.echo(cancelled_message)
|
||||||
|
return
|
||||||
|
elseif not updated then
|
||||||
|
git.hard_reset(source)
|
||||||
|
updated = attempt_update(target)
|
||||||
|
end
|
||||||
|
if not updated then
|
||||||
|
vim.api.nvim_err_writeln "Error ocurred performing update"
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local summary = {
|
||||||
|
{ "AstroNvim updated successfully to ", "Title" },
|
||||||
|
{ git.current_version(), "String" },
|
||||||
|
{ "!\n", "Title" },
|
||||||
|
{ "Please restart and run :PackerSync.\n\n", "WarningMsg" },
|
||||||
|
}
|
||||||
|
if options.show_changelog and #changelog > 0 then
|
||||||
|
vim.list_extend(summary, { { "Changelog:\n", "Title" } })
|
||||||
|
vim.list_extend(summary, git.pretty_changelog(changelog))
|
||||||
|
end
|
||||||
|
astronvim.echo(summary)
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -0,0 +1,89 @@
|
|||||||
|
local base = {
|
||||||
|
Normal = { fg = C.fg, bg = C.bg },
|
||||||
|
Comment = { fg = C.grey_2, bg = C.none },
|
||||||
|
Constant = { fg = C.yellow, bg = C.none },
|
||||||
|
String = { fg = C.green, bg = C.none },
|
||||||
|
Character = { fg = C.green, bg = C.none },
|
||||||
|
Number = { fg = C.orange, bg = C.none },
|
||||||
|
Boolean = { fg = C.blue, bg = C.none },
|
||||||
|
Float = { fg = C.yellow, bg = C.none },
|
||||||
|
Identifier = { fg = C.blue, bg = C.none },
|
||||||
|
Function = { fg = C.yellow, bg = C.none },
|
||||||
|
Statement = { fg = C.purple, bg = C.none },
|
||||||
|
Conditional = { fg = C.purple_1, bg = C.none },
|
||||||
|
Repeat = { fg = C.purple, bg = C.none },
|
||||||
|
Label = { fg = C.blue, bg = C.none },
|
||||||
|
Operator = { fg = C.purple, bg = C.none },
|
||||||
|
Keyword = { fg = C.purple, bg = C.none },
|
||||||
|
Exception = { fg = C.purple, bg = C.none },
|
||||||
|
Preproc = { fg = C.yellow, bg = C.none },
|
||||||
|
Include = { fg = C.purple, bg = C.none },
|
||||||
|
Define = { fg = C.purple, bg = C.none },
|
||||||
|
Title = { fg = C.cyan, bg = C.none },
|
||||||
|
Macro = { fg = C.purple, bg = C.none },
|
||||||
|
PreCondit = { fg = C.blue, bg = C.none },
|
||||||
|
Type = { fg = C.blue, bg = C.none },
|
||||||
|
StorageClass = { fg = C.blue, bg = C.none },
|
||||||
|
Structure = { fg = C.yellow, bg = C.none },
|
||||||
|
Typedef = { fg = C.yellow, bg = C.none },
|
||||||
|
Special = { fg = C.blue, bg = C.none },
|
||||||
|
SpecialComment = { fg = C.grey, bg = C.none },
|
||||||
|
Error = { fg = C.red, bg = C.none },
|
||||||
|
Todo = { fg = C.purple, bg = C.none },
|
||||||
|
Underlined = { fg = C.cyan, bg = C.none },
|
||||||
|
Cursor = { fg = C.none, bg = C.none },
|
||||||
|
ColorColumn = { fg = C.none, bg = C.grey_4 },
|
||||||
|
CursorLineNr = { fg = C.fg, bg = C.none },
|
||||||
|
Conceal = { fg = C.grey, bg = C.none },
|
||||||
|
CursorColumn = { fg = C.none, bg = C.grey_4 },
|
||||||
|
CursorLine = { fg = C.none, bg = C.grey_8 },
|
||||||
|
Directory = { fg = C.blue, bg = C.none },
|
||||||
|
DiffAdd = { fg = C.grey_3, bg = C.green },
|
||||||
|
DiffChange = { fg = C.yellow, bg = C.none },
|
||||||
|
DiffDelete = { fg = C.grey_3, bg = C.red },
|
||||||
|
DiffText = { fg = C.grey_3, bg = C.yellow },
|
||||||
|
ErrorMsg = { fg = C.red, bg = C.none },
|
||||||
|
VertSplit = { fg = C.black, bg = C.none },
|
||||||
|
Folded = { fg = C.grey, bg = C.none },
|
||||||
|
FoldColumn = { fg = C.none, bg = C.none },
|
||||||
|
IncSearch = { fg = C.yellow, bg = C.grey },
|
||||||
|
LineNr = { fg = C.grey_1, bg = C.none },
|
||||||
|
NonText = { fg = C.grey_1, bg = C.none },
|
||||||
|
Pmenu = { fg = C.fg, bg = C.black_1 },
|
||||||
|
PmenuSel = { fg = C.none, bg = C.grey_4 },
|
||||||
|
PmenuSbar = { fg = C.none, bg = C.grey_3 },
|
||||||
|
PmenuThumb = { fg = C.none, bg = C.fg },
|
||||||
|
Question = { fg = C.purple, bg = C.none },
|
||||||
|
QuickFixLine = { fg = C.grey_3, bg = C.yellow },
|
||||||
|
Search = { fg = C.grey_3, bg = C.yellow },
|
||||||
|
SignColumn = { fg = C.none, bg = C.none },
|
||||||
|
SpecialKey = { fg = C.grey_1, bg = C.none },
|
||||||
|
SpellBad = { fg = C.red, bg = C.none },
|
||||||
|
SpellCap = { fg = C.yellow, bg = C.none },
|
||||||
|
SpellLocal = { fg = C.yellow, bg = C.none },
|
||||||
|
SpellRare = { fg = C.yellow, bg = C.none },
|
||||||
|
StatusLine = { fg = C.fg, bg = C.grey_4 },
|
||||||
|
StatusLineNC = { fg = C.grey, bg = C.none },
|
||||||
|
StatusLineTerm = { fg = C.fg, bg = C.grey_4 },
|
||||||
|
StatusLineTermNC = { fg = C.grey_4, bg = C.none },
|
||||||
|
TabLine = { fg = C.grey, bg = C.none },
|
||||||
|
TabLineSel = { fg = C.fg, bg = C.none },
|
||||||
|
TabLineFill = { fg = C.none, bg = C.grey_3 },
|
||||||
|
Terminal = { fg = C.fg, bg = C.grey_3 },
|
||||||
|
Visual = { fg = C.none, bg = C.grey_5 },
|
||||||
|
VisualNOS = { fg = C.grey_5, bg = C.none },
|
||||||
|
WarningMsg = { fg = C.yellow, bg = C.none },
|
||||||
|
WildMenu = { fg = C.grey_3, bg = C.blue },
|
||||||
|
EndOfBuffer = { fg = C.bg, bg = C.none },
|
||||||
|
CmpItemAbbrDefault = { fg = C.fg },
|
||||||
|
CmpItemAbbrDeprecatedDefault = { fg = C.grey_2 },
|
||||||
|
CmpItemAbbrMatchDefault = { fg = C.white },
|
||||||
|
CmpItemAbbrMatchFuzzyDefault = { fg = C.white },
|
||||||
|
CmpItemKind = { fg = C.yellow },
|
||||||
|
CmpItemAbbr = { fg = C.fg },
|
||||||
|
CmpItemMenuDefault = { fg = C.fg },
|
||||||
|
FloatBorder = { bg = C.none },
|
||||||
|
MatchParen = { fg = C.none, bg = C.grey_5 },
|
||||||
|
}
|
||||||
|
|
||||||
|
return base
|
||||||
@@ -0,0 +1,76 @@
|
|||||||
|
local colors = {
|
||||||
|
none = "NONE",
|
||||||
|
fg = "#abb2bf",
|
||||||
|
bg = "",
|
||||||
|
bg_1 = "#303742",
|
||||||
|
black = "#181a1f",
|
||||||
|
black_1 = "#1f1f25",
|
||||||
|
green = "#98c379",
|
||||||
|
green_1 = "#89b06d",
|
||||||
|
green_2 = "#95be76",
|
||||||
|
white = "#dedede",
|
||||||
|
white_1 = "#afb2bb",
|
||||||
|
white_2 = "#c9c9c9",
|
||||||
|
blue = "#61afef",
|
||||||
|
blue_1 = "#40d9ff",
|
||||||
|
blue_2 = "#1b1f27",
|
||||||
|
blue_3 = "#8094B4",
|
||||||
|
orange = "#d19a66",
|
||||||
|
orange_1 = "#ff9640",
|
||||||
|
orange_2 = "#ff8800",
|
||||||
|
yellow = "#e5c07b",
|
||||||
|
yellow_1 = "#ebae34",
|
||||||
|
yellow_2 = "#d1b071",
|
||||||
|
red = "#e06c75",
|
||||||
|
red_1 = "#ec5f67",
|
||||||
|
red_2 = "#ffbba6",
|
||||||
|
red_3 = "#cc626a",
|
||||||
|
red_4 = "#d47d85",
|
||||||
|
grey = "#5c6370",
|
||||||
|
grey_1 = "#4b5263",
|
||||||
|
grey_2 = "#777d86",
|
||||||
|
grey_3 = "#282c34",
|
||||||
|
grey_4 = "#2c323c",
|
||||||
|
grey_5 = "#3e4452",
|
||||||
|
grey_6 = "#3b4048",
|
||||||
|
grey_7 = "#5c5c5c",
|
||||||
|
grey_8 = "#252931",
|
||||||
|
grey_9 = "#787e87",
|
||||||
|
grey_10 = "#D3D3D3",
|
||||||
|
gold = "#ffcc00",
|
||||||
|
cyan = "#56b6c2",
|
||||||
|
purple = "#c678dd",
|
||||||
|
purple_1 = "#a9a1e1",
|
||||||
|
|
||||||
|
-- icon colors
|
||||||
|
c = "#519aba",
|
||||||
|
css = "#61afef",
|
||||||
|
deb = "#a1b7ee",
|
||||||
|
docker = "#384d54",
|
||||||
|
html = "#de8c92",
|
||||||
|
jpeg = "#c882e7",
|
||||||
|
jpg = "#c882e7",
|
||||||
|
js = "#ebcb8b",
|
||||||
|
jsx = "#519ab8",
|
||||||
|
kt = "#7bc99c",
|
||||||
|
lock = "#c4c720",
|
||||||
|
lua = "#51a0cf",
|
||||||
|
mp3 = "#d39ede",
|
||||||
|
mp4 = "#9ea3de",
|
||||||
|
out = "#abb2bf",
|
||||||
|
png = "#c882e7",
|
||||||
|
py = "#a3b8ef",
|
||||||
|
rb = "#ff75a0",
|
||||||
|
robots = "#abb2bf",
|
||||||
|
rpm = "#fca2aa",
|
||||||
|
rs = "#dea584",
|
||||||
|
toml = "#39bf39",
|
||||||
|
ts = "#519aba",
|
||||||
|
ttf = "#abb2bf",
|
||||||
|
vue = "#7bc99c",
|
||||||
|
woff = "#abb2bf",
|
||||||
|
woff2 = "#abb2bf",
|
||||||
|
zip = "#f9d71c",
|
||||||
|
}
|
||||||
|
|
||||||
|
return astronvim.user_plugin_opts("default_theme.colors", colors)
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
vim.cmd "highlight clear"
|
||||||
|
if vim.fn.exists "syntax_on" then
|
||||||
|
vim.cmd "syntax reset"
|
||||||
|
end
|
||||||
|
vim.o.background = "dark"
|
||||||
|
vim.o.termguicolors = true
|
||||||
|
vim.g.colors_name = "default_theme"
|
||||||
|
|
||||||
|
local user_plugin_opts = astronvim.user_plugin_opts
|
||||||
|
local utils = require "default_theme.utils"
|
||||||
|
|
||||||
|
C = require "default_theme.colors"
|
||||||
|
|
||||||
|
local highlights = {}
|
||||||
|
|
||||||
|
for _, module in ipairs { "base", "treesitter", "lsp" } do
|
||||||
|
highlights = vim.tbl_deep_extend("force", highlights, require("default_theme." .. module))
|
||||||
|
end
|
||||||
|
|
||||||
|
for plugin, enabled in
|
||||||
|
pairs(user_plugin_opts("default_theme.plugins", {
|
||||||
|
aerial = true,
|
||||||
|
beacon = false,
|
||||||
|
bufferline = true,
|
||||||
|
dashboard = true,
|
||||||
|
gitsigns = true,
|
||||||
|
highlighturl = true,
|
||||||
|
hop = false,
|
||||||
|
indent_blankline = true,
|
||||||
|
lightspeed = false,
|
||||||
|
["neo-tree"] = true,
|
||||||
|
notify = true,
|
||||||
|
["nvim-tree"] = false,
|
||||||
|
["nvim-web-devicons"] = true,
|
||||||
|
rainbow = true,
|
||||||
|
symbols_outline = false,
|
||||||
|
telescope = true,
|
||||||
|
vimwiki = false,
|
||||||
|
["which-key"] = true,
|
||||||
|
}))
|
||||||
|
do
|
||||||
|
if enabled then
|
||||||
|
highlights = vim.tbl_deep_extend("force", highlights, require("default_theme.plugins." .. plugin))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
for group, spec in pairs(user_plugin_opts("default_theme.highlights", highlights)) do
|
||||||
|
vim.api.nvim_set_hl(0, group, utils.parse_style(spec))
|
||||||
|
end
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
local utils = require "default_theme.utils"
|
||||||
|
|
||||||
|
local lsp = {
|
||||||
|
DiagnosticError = utils.parse_diagnostic_style { fg = C.red_1 },
|
||||||
|
DiagnosticHint = utils.parse_diagnostic_style { fg = C.yellow_1 },
|
||||||
|
DiagnosticInfo = utils.parse_diagnostic_style { fg = C.white_2 },
|
||||||
|
DiagnosticWarn = utils.parse_diagnostic_style { fg = C.orange_1 },
|
||||||
|
DiagnosticInformation = { fg = C.yellow, bold = true },
|
||||||
|
DiagnosticTruncateLine = { fg = C.white_1, bold = true },
|
||||||
|
DiagnosticUnderlineError = { sp = C.red_2, undercurl = true },
|
||||||
|
DiagnosticUnderlineHint = { sp = C.red_2, undercurl = true },
|
||||||
|
DiagnosticUnderlineInfo = { sp = C.red_2, undercurl = true },
|
||||||
|
DiagnosticUnderlineWarn = { sp = C.red_2, undercurl = true },
|
||||||
|
LspDiagnosticsFloatingError = { fg = C.red_1 },
|
||||||
|
LspDiagnosticsFloatingHint = { fg = C.yellow_1 },
|
||||||
|
LspDiagnosticsFloatingInfor = { fg = C.white_2 },
|
||||||
|
LspDiagnosticsFloatingWarn = { fg = C.orange_1 },
|
||||||
|
LspFloatWinBorder = { fg = C.white_1 },
|
||||||
|
LspFloatWinNormal = { fg = C.fg, bg = C.black_1 },
|
||||||
|
LspReferenceRead = { fg = C.none, bg = C.grey_5 },
|
||||||
|
LspReferenceText = { fg = C.none, bg = C.grey_5 },
|
||||||
|
LspReferenceWrite = { fg = C.none, bg = C.grey_5 },
|
||||||
|
ProviderTruncateLine = { fg = C.white_1 },
|
||||||
|
}
|
||||||
|
|
||||||
|
return lsp
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
return {
|
||||||
|
AerialLine = { fg = C.yellow, bg = C.none },
|
||||||
|
AerialGuide = { fg = C.grey_2 },
|
||||||
|
AerialBooleanIcon = { link = "TSBoolean" },
|
||||||
|
AerialClassIcon = { link = "TSType" },
|
||||||
|
AerialConstantIcon = { link = "TSConstant" },
|
||||||
|
AerialConstructorIcon = { link = "TSConstructor" },
|
||||||
|
AerialFieldIcon = { link = "TSField" },
|
||||||
|
AerialFunctionIcon = { link = "TSFunction" },
|
||||||
|
AerialMethodIcon = { link = "TSMethod" },
|
||||||
|
AerialNamespaceIcon = { link = "TSNamespace" },
|
||||||
|
AerialNumberIcon = { link = "TSNumber" },
|
||||||
|
AerialOperatorIcon = { link = "TSOperator" },
|
||||||
|
AerialTypeParameterIcon = { link = "TSParameter" },
|
||||||
|
AerialPropertyIcon = { link = "TSProperty" },
|
||||||
|
AerialStringIcon = { link = "TSString" },
|
||||||
|
AerialVariableIcon = { link = "TSConstant" },
|
||||||
|
AerialEnumMemberIcon = { link = "TSField" },
|
||||||
|
AerialEnumIcon = { link = "TSType" },
|
||||||
|
AerialFileIcon = { link = "TSURI" },
|
||||||
|
AerialModuleIcon = { link = "TSNamespace" },
|
||||||
|
AerialPackageIcon = { link = "TSNamespace" },
|
||||||
|
AerialInterfaceIcon = { link = "TSType" },
|
||||||
|
AerialStructIcon = { link = "TSType" },
|
||||||
|
AerialEventIcon = { link = "TSType" },
|
||||||
|
AerialArrayIcon = { link = "TSConstant" },
|
||||||
|
AerialObjectIcon = { link = "TSType" },
|
||||||
|
AerialKeyIcon = { link = "TSType" },
|
||||||
|
AerialNullIcon = { link = "TSType" },
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
return { Beacon = { bg = C.blue } }
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
return {
|
||||||
|
BufferLineFill = { fg = C.grey_9, bg = C.grey_4 },
|
||||||
|
BufferLineBackground = { fg = C.grey_9, bg = C.grey_4 },
|
||||||
|
BufferLineBufferVisible = { fg = C.fg, bg = C.bg },
|
||||||
|
BufferLineBufferSelected = { fg = C.white, bg = C.bg, bold = true },
|
||||||
|
BufferLineTab = { fg = C.grey_9, bg = C.bg },
|
||||||
|
BufferLineTabSelected = { fg = C.fg, bg = C.bg },
|
||||||
|
BufferLineTabClose = { fg = C.red_4, bg = C.bg },
|
||||||
|
BufferLineIndicatorSelected = { fg = C.bg, bg = C.bg },
|
||||||
|
BufferLineSeparator = { fg = C.grey_4, bg = C.grey_4 },
|
||||||
|
BufferLineSeparatorVisible = { fg = C.bg, bg = C.bg },
|
||||||
|
BufferLineSeparatorSelected = { fg = C.grey_4, bg = C.grey_4 },
|
||||||
|
BufferLineCloseButton = { fg = C.grey_9, bg = C.grey_4 },
|
||||||
|
BufferLineCloseButtonVisible = { fg = C.grey_10, bg = C.bg },
|
||||||
|
BufferLineCloseButtonSelected = { fg = C.red_4, bg = C.bg },
|
||||||
|
BufferLineModified = { fg = C.red_4, bg = C.grey_4 },
|
||||||
|
BufferLineModifiedVisible = { fg = C.fg, bg = C.bg },
|
||||||
|
BufferLineModifiedSelected = { fg = C.green_2, bg = C.bg },
|
||||||
|
BufferLineError = { fg = C.red_1, bg = C.red_1 },
|
||||||
|
BufferLineErrorDiagnostic = { fg = C.red_1, bg = C.red_1 },
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
return {
|
||||||
|
DashboardHeader = { fg = C.cyan },
|
||||||
|
DashboardShortcut = { fg = C.yellow },
|
||||||
|
DashboardFooter = { fg = C.cyan },
|
||||||
|
DashboardCenter = { fg = C.blue },
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
return {
|
||||||
|
GitSignsAdd = { fg = C.green, bg = C.none },
|
||||||
|
GitSignsChange = { fg = C.orange_1, bg = C.none },
|
||||||
|
GitSignsDelete = { fg = C.red_1, bg = C.none },
|
||||||
|
MoreMsg = { fg = C.green, bold = true },
|
||||||
|
ModeMsg = { fg = C.grey, bold = true },
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
return { HighlightURL = { underline = true } }
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
return {
|
||||||
|
HopNextKey = { fg = C.red, bold = true },
|
||||||
|
HopNextKey1 = { fg = C.cyan, bold = true },
|
||||||
|
HopNextKey2 = { fg = C.blue },
|
||||||
|
HopUnmatched = { fg = C.grey },
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
return {
|
||||||
|
IndentBlanklineSpaceChar = { fg = C.grey_6, nocombine = true },
|
||||||
|
IndentBlanklineChar = { fg = C.grey_6, nocombine = true },
|
||||||
|
IndentBlanklineContextStart = { fg = C.grey_7, underline = true },
|
||||||
|
IndentBlanklineContextChar = { fg = C.grey_7, nocombine = true },
|
||||||
|
IndentBlanklineSpaceCharBlankline = { fg = C.grey_6, nocombine = true },
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
return {
|
||||||
|
LightspeedLabel = { fg = C.red_3, underline = true },
|
||||||
|
LightspeedLabelOverlapped = { fg = C.blue, underline = true },
|
||||||
|
LightspeedLabelDistant = { fg = C.red_1, underline = true },
|
||||||
|
LightspeedLabelDistantOverlapped = { fg = C.blue_1, underline = true },
|
||||||
|
LightspeedShortcut = { fg = C.black, bg = C.red_3, bold = true, underline = true },
|
||||||
|
LightspeedShortcutOverlapped = { fg = C.black, bg = C.blue, bold = true, underline = true },
|
||||||
|
LightspeedMaskedChar = { fg = C.green_1 },
|
||||||
|
LightspeedGreyWash = { fg = C.grey_2, bg = C.none },
|
||||||
|
LightspeedUnlabeledMatch = { fg = C.white, bold = true },
|
||||||
|
LightspeedOneCharMatch = { fg = C.green, bg = C.red_3, bold = true },
|
||||||
|
LightspeedUniqueChar = { fg = C.white, bold = true },
|
||||||
|
LightspeedPendingOpArea = { fg = C.yellow },
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
return {
|
||||||
|
NeoTreeDirectoryIcon = { fg = C.blue },
|
||||||
|
NeoTreeRootName = { fg = C.fg, bold = true },
|
||||||
|
NeoTreeFileName = { fg = C.fg },
|
||||||
|
NeoTreeFileIcon = { fg = C.fg },
|
||||||
|
NeoTreeFileNameOpened = { fg = C.green },
|
||||||
|
NeoTreeIndentMarker = { fg = C.blue_3 },
|
||||||
|
NeoTreeGitAdded = { fg = C.green },
|
||||||
|
NeoTreeGitConflict = { fg = C.red },
|
||||||
|
NeoTreeGitModified = { fg = C.orange },
|
||||||
|
NeoTreeGitUntracked = { fg = C.yellow },
|
||||||
|
NeoTreeNormal = { bg = C.blue_2 },
|
||||||
|
NeoTreeNormalNC = { bg = C.blue_2 },
|
||||||
|
NeoTreeSymbolicLinkTarget = { fg = C.cyan },
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
return {
|
||||||
|
NotifyERRORBorder = { fg = C.red },
|
||||||
|
NotifyWARNBorder = { fg = C.orange_1 },
|
||||||
|
NotifyINFOBorder = { fg = C.green },
|
||||||
|
NotifyDEBUGBorder = { fg = C.cyan },
|
||||||
|
NotifyTRACERBorder = { fg = C.purple },
|
||||||
|
NotifyERRORIcon = { fg = C.red },
|
||||||
|
NotifyWARNIcon = { fg = C.orange_1 },
|
||||||
|
NotifyINFOIcon = { fg = C.green },
|
||||||
|
NotifyDEBUGIcon = { fg = C.cyan },
|
||||||
|
NotifyTRACEIcon = { fg = C.purple },
|
||||||
|
NotifyERRORTitle = { fg = C.red },
|
||||||
|
NotifyWARNTitle = { fg = C.orange_1 },
|
||||||
|
NotifyINFOTitle = { fg = C.green },
|
||||||
|
NotifyDEBUGTitle = { fg = C.cyan },
|
||||||
|
NotifyTRACETitle = { fg = C.purple },
|
||||||
|
NotifyERRORBody = { fg = C.fg },
|
||||||
|
NotifyWARNBody = { fg = C.fg },
|
||||||
|
NotifyINFOBody = { fg = C.fg },
|
||||||
|
NotifyDEBUGBody = { fg = C.fg },
|
||||||
|
NotifyTRACEBody = { fg = C.fg },
|
||||||
|
NotifyLogTime = { fg = C.grey_2 },
|
||||||
|
NotifyLogTitle = { fg = C.blue },
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
return {
|
||||||
|
NvimTreeFolderIcon = { fg = C.blue },
|
||||||
|
NvimTreeExecFile = { fg = C.green },
|
||||||
|
NvimTreeOpenedFile = { fg = C.green },
|
||||||
|
NvimTreeRootFolder = { fg = C.bg },
|
||||||
|
NvimTreeEndOfBuffer = { fg = C.bg },
|
||||||
|
NvimTreeNormal = { bg = C.blue_2 },
|
||||||
|
NvimTreeNormalNC = { bg = C.blue_2 },
|
||||||
|
NvimTreeVertSplit = { fg = C.blue_2, bg = C.blue_2 },
|
||||||
|
NvimTreeImageFile = { fg = C.purple },
|
||||||
|
NvimTreeSymlink = { fg = C.cyan },
|
||||||
|
NvimTreeSpecialFile = { fg = C.yellow },
|
||||||
|
NvimTreeGitDeleted = { fg = C.red },
|
||||||
|
NvimTreeGitMerge = { fg = C.orange },
|
||||||
|
NvimTreeGitRenamed = { fg = C.purple },
|
||||||
|
NvimTreeGitStaged = { fg = C.green },
|
||||||
|
NvimTreeGitDirty = { fg = C.red },
|
||||||
|
NvimTreeGitNew = { fg = C.yellow },
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
return {
|
||||||
|
DevIconC = { fg = C.c },
|
||||||
|
DevIconCss = { fg = C.css },
|
||||||
|
DevIconDeb = { fg = C.deb },
|
||||||
|
DevIconDockerfile = { fg = C.docker },
|
||||||
|
DevIconHtml = { fg = C.html },
|
||||||
|
DevIconJpeg = { fg = C.jpeg },
|
||||||
|
DevIconJpg = { fg = C.jpg },
|
||||||
|
DevIconJs = { fg = C.js },
|
||||||
|
DevIconJsx = { fg = C.jsx },
|
||||||
|
DevIconKotlin = { fg = C.kt },
|
||||||
|
DevIconLock = { fg = C.lock },
|
||||||
|
DevIconLua = { fg = C.lua },
|
||||||
|
DevIconMp3 = { fg = C.mp3 },
|
||||||
|
DevIconMp4 = { fg = C.mp4 },
|
||||||
|
DevIconOut = { fg = C.out },
|
||||||
|
DevIconPng = { fg = C.png },
|
||||||
|
DevIconPy = { fg = C.py },
|
||||||
|
DevIconRb = { fg = C.rb },
|
||||||
|
DevIconRobots = { fg = C.robots },
|
||||||
|
DevIconRpm = { fg = C.rpm },
|
||||||
|
DevIconRs = { fg = C.rs },
|
||||||
|
DevIconToml = { fg = C.toml },
|
||||||
|
DevIconTrueTypeFont = { fg = C.ttf },
|
||||||
|
DevIconTs = { fg = C.ts },
|
||||||
|
DevIconVue = { fg = C.vue },
|
||||||
|
DevIconWebOpenFontFormat = { fg = C.woff },
|
||||||
|
DevIconWebOpenFontFormat2 = { fg = C.woff2 },
|
||||||
|
DevIconXz = { fg = C.zip },
|
||||||
|
DevIconZip = { fg = C.zip },
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
return {
|
||||||
|
rainbowcol1 = { fg = "Gold" },
|
||||||
|
rainbowcol2 = { fg = "Orchid" },
|
||||||
|
rainbowcol3 = { fg = "LightSkyBlue" },
|
||||||
|
rainbowcol4 = { fg = "Gold" },
|
||||||
|
rainbowcol5 = { fg = "Orchid" },
|
||||||
|
rainbowcol6 = { fg = "LightSkyBlue" },
|
||||||
|
rainbowcol7 = { fg = "Orchid" },
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
return { FocusedSymbol = { fg = C.yellow, bg = C.none } }
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
return {
|
||||||
|
TelescopeResultsTitle = { fg = C.green },
|
||||||
|
TelescopePromptTitle = { fg = C.blue },
|
||||||
|
TelescopePreviewTitle = { fg = C.purple },
|
||||||
|
TelescopeResultsBorder = { fg = C.fg },
|
||||||
|
TelescopePromptBorder = { fg = C.fg },
|
||||||
|
TelescopePreviewBorder = { fg = C.fg },
|
||||||
|
TelescopeSelectionCaret = { fg = C.red },
|
||||||
|
TelescopeMatching = { fg = C.yellow },
|
||||||
|
TelescopeSelection = { bg = C.grey_5 },
|
||||||
|
TelescopeMultiSelection = { fg = C.blue },
|
||||||
|
TelescopeMultiIcon = { fg = C.blue },
|
||||||
|
TelescopeNormal = { fg = C.fg, bg = C.bg },
|
||||||
|
TelescopePreviewNormal = { fg = C.fg, bg = C.bg },
|
||||||
|
TelescopePromptNormal = { fg = C.fg, bg = C.bg },
|
||||||
|
TelescopeResultsNormal = { fg = C.fg, bg = C.bg },
|
||||||
|
TelescopeBorder = { fg = C.fg },
|
||||||
|
TelescopeTitle = { fg = C.fg },
|
||||||
|
TelescopePromptCounter = { fg = C.grey_1 },
|
||||||
|
TelescopePromptPrefix = { fg = C.blue },
|
||||||
|
TelescopePreviewLine = { bg = C.grey_5 },
|
||||||
|
TelescopePreviewMatch = { fg = C.yellow },
|
||||||
|
TelescopePreviewPipe = { fg = C.yellow },
|
||||||
|
TelescopePreviewCharDev = { fg = C.yellow },
|
||||||
|
TelescopePreviewDirectory = { fg = C.blue },
|
||||||
|
TelescopePreviewBlock = { fg = C.yellow },
|
||||||
|
TelescopePreviewLink = { fg = C.blue },
|
||||||
|
TelescopePreviewSocket = { fg = C.purple },
|
||||||
|
TelescopePreviewRead = { fg = C.yellow },
|
||||||
|
TelescopePreviewWrite = { fg = C.purple },
|
||||||
|
TelescopePreviewExecute = { fg = C.green },
|
||||||
|
TelescopePreviewHyphen = { fg = C.grey_1 },
|
||||||
|
TelescopePreviewSticky = { fg = C.blue },
|
||||||
|
TelescopePreviewSize = { fg = C.green },
|
||||||
|
TelescopePreviewUser = { fg = C.yellow },
|
||||||
|
TelescopePreviewGroup = { fg = C.yellow },
|
||||||
|
TelescopePreviewDate = { fg = C.blue },
|
||||||
|
TelescopePreviewMessage = { fg = C.fg },
|
||||||
|
TelescopePreviewMessageFillchar = { fg = C.fg },
|
||||||
|
TelescopeResultsClass = { fg = C.yellow },
|
||||||
|
TelescopeResultsConstant = { fg = C.yellow },
|
||||||
|
TelescopeResultsField = { fg = C.red },
|
||||||
|
TelescopeResultsFunction = { fg = C.blue },
|
||||||
|
TelescopeResultsMethod = { fg = C.blue },
|
||||||
|
TelescopeResultsOperator = { fg = C.cyan },
|
||||||
|
TelescopeResultsStruct = { fg = C.purple },
|
||||||
|
TelescopeResultsVariable = { fg = C.red },
|
||||||
|
TelescopeResultsLineNr = { fg = C.grey_1 },
|
||||||
|
TelescopeResultsIdentifier = { fg = C.blue },
|
||||||
|
TelescopeResultsNumber = { fg = C.orange },
|
||||||
|
TelescopeResultsComment = { fg = C.grey_2 },
|
||||||
|
TelescopeResultsSpecialComment = { fg = C.grey },
|
||||||
|
TelescopeResultsDiffChange = { fg = C.none, bg = C.yellow },
|
||||||
|
TelescopeResultsDiffAdd = { fg = C.none, bg = C.green },
|
||||||
|
TelescopeResultsDiffDelete = { fg = C.none, bg = C.red },
|
||||||
|
TelescopeResultsDiffUntracked = { fg = C.none, bg = C.grey_1 },
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
return {
|
||||||
|
VimwikiLink = { fg = C.cyan, bg = C.none },
|
||||||
|
VimwikiHeaderChar = { fg = C.grey, bg = C.none },
|
||||||
|
VimwikiHR = { fg = C.yellow, bg = C.none },
|
||||||
|
VimwikiList = { fg = C.orange, bg = C.orange },
|
||||||
|
VimwikiTag = { fg = C.orange, bg = C.orange },
|
||||||
|
VimwikiMarkers = { fg = C.grey, bg = C.none },
|
||||||
|
VimwikiHeader1 = { fg = C.orange, bg = C.none, bold = true },
|
||||||
|
VimwikiHeader2 = { fg = C.green, bg = C.none, bold = true },
|
||||||
|
VimwikiHeader3 = { fg = C.blue, bg = C.none, bold = true },
|
||||||
|
VimwikiHeader4 = { fg = C.cyan, bg = C.none, bold = true },
|
||||||
|
VimwikiHeader5 = { fg = C.yellow, bg = C.none, bold = true },
|
||||||
|
VimwikiHeader6 = { fg = C.purple, bg = C.none, bold = true },
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
return {
|
||||||
|
WhichKeyFloat = { fg = C.fg },
|
||||||
|
WhichKeyDesc = { fg = C.blue },
|
||||||
|
WhichKeyGroup = { fg = C.blue },
|
||||||
|
}
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
local treesitter = {
|
||||||
|
TSError = { fg = C.red },
|
||||||
|
TSPunctDelimiter = { fg = C.fg },
|
||||||
|
TSPunctBracket = { fg = C.fg },
|
||||||
|
TSPunctSpecial = { fg = C.fg },
|
||||||
|
TSConstant = { fg = C.yellow },
|
||||||
|
TSConstBuiltin = { fg = C.orange },
|
||||||
|
TSConstMacro = { fg = C.red },
|
||||||
|
TSStringRegex = { fg = C.green },
|
||||||
|
TSString = { fg = C.green },
|
||||||
|
TSStringEscap = { fg = C.red },
|
||||||
|
TSCharacter = { fg = C.green },
|
||||||
|
TSNumber = { fg = C.orange },
|
||||||
|
TSBoolean = { fg = C.orange },
|
||||||
|
TSFloat = { fg = C.green },
|
||||||
|
TSAnnotation = { fg = C.yellow },
|
||||||
|
TSAttribute = { fg = C.red },
|
||||||
|
TSNamespace = { fg = C.purple },
|
||||||
|
TSFuncBuiltin = { fg = C.blue },
|
||||||
|
TSFunction = { fg = C.blue },
|
||||||
|
TSFuncMacro = { fg = C.yellow },
|
||||||
|
TSParameter = { fg = C.red },
|
||||||
|
TSParameterReference = { fg = C.cyan },
|
||||||
|
TSMethod = { fg = C.blue },
|
||||||
|
TSField = { fg = C.red },
|
||||||
|
TSProperty = { fg = C.yellow },
|
||||||
|
TSConstructor = { fg = C.yellow },
|
||||||
|
TSConditional = { fg = C.purple },
|
||||||
|
TSRepeat = { fg = C.purple },
|
||||||
|
TSLabel = { fg = C.blue },
|
||||||
|
TSKeyword = { fg = C.purple },
|
||||||
|
TSKeywordFunction = { fg = C.purple },
|
||||||
|
TSKeywordOperator = { fg = C.purple },
|
||||||
|
TSOperator = { fg = C.cyan },
|
||||||
|
TSException = { fg = C.purple },
|
||||||
|
TSType = { fg = C.blue },
|
||||||
|
TSTypeBuiltin = { fg = C.blue },
|
||||||
|
TSStructure = { fg = C.purple },
|
||||||
|
TSInclude = { fg = C.purple },
|
||||||
|
TSVariable = { fg = C.red },
|
||||||
|
TSVariableBuiltin = { fg = C.yellow },
|
||||||
|
TSText = { fg = C.fg },
|
||||||
|
TSTextReference = { fg = C.yellow },
|
||||||
|
TSStrong = { fg = C.blue, style = "bold" },
|
||||||
|
TSEmphasis = { fg = C.purple, style = "italic" },
|
||||||
|
TSUnderline = { fg = C.fg },
|
||||||
|
TSTitle = { fg = C.fg },
|
||||||
|
TSLiteral = { fg = C.fg },
|
||||||
|
TSURI = { fg = C.green },
|
||||||
|
TSTag = { fg = C.red },
|
||||||
|
TSTagDelimiter = { fg = C.fg },
|
||||||
|
markdownTSNone = { fg = C.fg },
|
||||||
|
markdownTSTitle = { fg = C.red },
|
||||||
|
markdownTSLiteral = { fg = C.green },
|
||||||
|
markdownTSPunctSpecial = { fg = C.red },
|
||||||
|
markdownTSPunctDelimiter = { fg = C.fg },
|
||||||
|
}
|
||||||
|
|
||||||
|
return treesitter
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
local M = {}
|
||||||
|
|
||||||
|
local user_settings = astronvim.user_plugin_opts "default_theme"
|
||||||
|
|
||||||
|
function M.parse_diagnostic_style(default)
|
||||||
|
if type(user_settings.diagnostics_style) == "table" then
|
||||||
|
default = vim.tbl_deep_extend("force", user_settings.diagnostics_style, default)
|
||||||
|
elseif type(user_settings.diagnostics_style) == "string" then
|
||||||
|
default.style = user_settings.diagnostics_style
|
||||||
|
end
|
||||||
|
return default
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.parse_style(spec)
|
||||||
|
if spec.style then
|
||||||
|
for match in (spec.style .. ","):gmatch "(.-)," do
|
||||||
|
spec[match] = true
|
||||||
|
end
|
||||||
|
spec.style = nil
|
||||||
|
end
|
||||||
|
return spec
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
||||||
@@ -0,0 +1,251 @@
|
|||||||
|
local config = {
|
||||||
|
|
||||||
|
-- Configure AstroNvim updates
|
||||||
|
updater = {
|
||||||
|
remote = "origin", -- remote to use
|
||||||
|
channel = "nightly", -- "stable" or "nightly"
|
||||||
|
version = "latest", -- "latest", tag name, or regex search like "v1.*" to only do updates before v2 (STABLE ONLY)
|
||||||
|
branch = "main", -- branch name (NIGHTLY ONLY)
|
||||||
|
commit = nil, -- commit hash (NIGHTLY ONLY)
|
||||||
|
pin_plugins = nil, -- nil, true, false (nil will pin plugins on stable only)
|
||||||
|
skip_prompts = false, -- skip prompts about breaking changes
|
||||||
|
show_changelog = true, -- show the changelog after performing an update
|
||||||
|
-- remotes = { -- easily add new remotes to track
|
||||||
|
-- ["remote_name"] = "https://remote_url.come/repo.git", -- full remote url
|
||||||
|
-- ["remote2"] = "github_user/repo", -- GitHub user/repo shortcut,
|
||||||
|
-- ["remote3"] = "github_user", -- GitHub user assume AstroNvim fork
|
||||||
|
-- },
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Set colorscheme
|
||||||
|
colorscheme = "default_theme",
|
||||||
|
|
||||||
|
-- set vim options here (vim.<first_key>.<second_key> = value)
|
||||||
|
options = {
|
||||||
|
opt = {
|
||||||
|
relativenumber = true, -- sets vim.opt.relativenumber
|
||||||
|
},
|
||||||
|
g = {
|
||||||
|
mapleader = " ", -- sets vim.g.mapleader
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Default theme configuration
|
||||||
|
default_theme = {
|
||||||
|
diagnostics_style = { italic = true },
|
||||||
|
-- Modify the color table
|
||||||
|
colors = {
|
||||||
|
fg = "#abb2bf",
|
||||||
|
},
|
||||||
|
-- Modify the highlight groups
|
||||||
|
highlights = function(highlights)
|
||||||
|
local C = require "default_theme.colors"
|
||||||
|
|
||||||
|
highlights.Normal = { fg = C.fg, bg = C.bg }
|
||||||
|
return highlights
|
||||||
|
end,
|
||||||
|
plugins = { -- enable or disable extra plugin highlighting
|
||||||
|
aerial = true,
|
||||||
|
beacon = false,
|
||||||
|
bufferline = true,
|
||||||
|
dashboard = true,
|
||||||
|
highlighturl = true,
|
||||||
|
hop = false,
|
||||||
|
indent_blankline = true,
|
||||||
|
lightspeed = false,
|
||||||
|
["neo-tree"] = true,
|
||||||
|
notify = true,
|
||||||
|
["nvim-tree"] = false,
|
||||||
|
["nvim-web-devicons"] = true,
|
||||||
|
rainbow = true,
|
||||||
|
symbols_outline = false,
|
||||||
|
telescope = true,
|
||||||
|
vimwiki = false,
|
||||||
|
["which-key"] = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Disable AstroNvim ui features
|
||||||
|
ui = {
|
||||||
|
nui_input = true,
|
||||||
|
telescope_select = true,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Configure plugins
|
||||||
|
plugins = {
|
||||||
|
-- Add plugins, the packer syntax without the "use"
|
||||||
|
init = {
|
||||||
|
-- You can disable default plugins as follows:
|
||||||
|
-- ["goolord/alpha-nvim"] = { disable = true },
|
||||||
|
|
||||||
|
-- You can also add new plugins here as well:
|
||||||
|
-- { "andweeb/presence.nvim" },
|
||||||
|
-- {
|
||||||
|
-- "ray-x/lsp_signature.nvim",
|
||||||
|
-- event = "BufRead",
|
||||||
|
-- config = function()
|
||||||
|
-- require("lsp_signature").setup()
|
||||||
|
-- end,
|
||||||
|
-- },
|
||||||
|
},
|
||||||
|
-- All other entries override the setup() call for default plugins
|
||||||
|
["null-ls"] = function(config)
|
||||||
|
local null_ls = require "null-ls"
|
||||||
|
-- Check supported formatters and linters
|
||||||
|
-- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/formatting
|
||||||
|
-- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/diagnostics
|
||||||
|
config.sources = {
|
||||||
|
-- Set a formatter
|
||||||
|
null_ls.builtins.formatting.rufo,
|
||||||
|
-- Set a linter
|
||||||
|
null_ls.builtins.diagnostics.rubocop,
|
||||||
|
}
|
||||||
|
-- set up null-ls's on_attach function
|
||||||
|
config.on_attach = function(client)
|
||||||
|
-- NOTE: You can remove this on attach function to disable format on save
|
||||||
|
if client.resolved_capabilities.document_formatting then
|
||||||
|
vim.api.nvim_create_autocmd("BufWritePre", {
|
||||||
|
desc = "Auto format before save",
|
||||||
|
pattern = "<buffer>",
|
||||||
|
callback = vim.lsp.buf.formatting_sync,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return config -- return final config table
|
||||||
|
end,
|
||||||
|
treesitter = {
|
||||||
|
ensure_installed = { "lua" },
|
||||||
|
},
|
||||||
|
["nvim-lsp-installer"] = {
|
||||||
|
ensure_installed = { "sumneko_lua" },
|
||||||
|
},
|
||||||
|
packer = {
|
||||||
|
compile_path = vim.fn.stdpath "data" .. "/packer_compiled.lua",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- LuaSnip Options
|
||||||
|
luasnip = {
|
||||||
|
-- Add paths for including more VS Code style snippets in luasnip
|
||||||
|
vscode_snippet_paths = {},
|
||||||
|
-- Extend filetypes
|
||||||
|
filetype_extend = {
|
||||||
|
javascript = { "javascriptreact" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Modify which-key registration
|
||||||
|
["which-key"] = {
|
||||||
|
-- Add bindings
|
||||||
|
register_mappings = {
|
||||||
|
-- first key is the mode, n == normal mode
|
||||||
|
n = {
|
||||||
|
-- second key is the prefix, <leader> prefixes
|
||||||
|
["<leader>"] = {
|
||||||
|
-- which-key registration table for normal mode, leader prefix
|
||||||
|
-- ["N"] = { "<cmd>tabnew<cr>", "New Buffer" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- CMP Source Priorities
|
||||||
|
-- modify here the priorities of default cmp sources
|
||||||
|
-- higher value == higher priority
|
||||||
|
-- The value can also be set to a boolean for disabling default sources:
|
||||||
|
-- false == disabled
|
||||||
|
-- true == 1000
|
||||||
|
cmp = {
|
||||||
|
source_priority = {
|
||||||
|
nvim_lsp = 1000,
|
||||||
|
luasnip = 750,
|
||||||
|
buffer = 500,
|
||||||
|
path = 250,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Extend LSP configuration
|
||||||
|
lsp = {
|
||||||
|
-- enable servers that you already have installed without lsp-installer
|
||||||
|
servers = {
|
||||||
|
-- "pyright"
|
||||||
|
},
|
||||||
|
-- easily add or disable built in mappings added during LSP attaching
|
||||||
|
mappings = {
|
||||||
|
n = {
|
||||||
|
-- ["<leader>lf"] = false -- disable formatting keymap
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-- add to the server on_attach function
|
||||||
|
-- on_attach = function(client, bufnr)
|
||||||
|
-- end,
|
||||||
|
|
||||||
|
-- override the lsp installer server-registration function
|
||||||
|
-- server_registration = function(server, opts)
|
||||||
|
-- require("lspconfig")[server].setup(opts)
|
||||||
|
-- end,
|
||||||
|
|
||||||
|
-- Add overrides for LSP server settings, the keys are the name of the server
|
||||||
|
["server-settings"] = {
|
||||||
|
-- example for addings schemas to yamlls
|
||||||
|
-- yamlls = {
|
||||||
|
-- settings = {
|
||||||
|
-- yaml = {
|
||||||
|
-- schemas = {
|
||||||
|
-- ["http://json.schemastore.org/github-workflow"] = ".github/workflows/*.{yml,yaml}",
|
||||||
|
-- ["http://json.schemastore.org/github-action"] = ".github/action.{yml,yaml}",
|
||||||
|
-- ["http://json.schemastore.org/ansible-stable-2.9"] = "roles/tasks/*.{yml,yaml}",
|
||||||
|
-- },
|
||||||
|
-- },
|
||||||
|
-- },
|
||||||
|
-- },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Diagnostics configuration (for vim.diagnostics.config({}))
|
||||||
|
diagnostics = {
|
||||||
|
virtual_text = true,
|
||||||
|
underline = true,
|
||||||
|
},
|
||||||
|
|
||||||
|
mappings = {
|
||||||
|
-- first key is the mode
|
||||||
|
n = {
|
||||||
|
-- second key is the lefthand side of the map
|
||||||
|
["<C-s>"] = { ":w!<cr>", desc = "Save File" },
|
||||||
|
},
|
||||||
|
t = {
|
||||||
|
-- setting a mapping to false will disable it
|
||||||
|
-- ["<esc>"] = false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- This function is run last
|
||||||
|
-- good place to configuring augroups/autocommands and custom filetypes
|
||||||
|
polish = function()
|
||||||
|
-- Set key binding
|
||||||
|
-- Set autocommands
|
||||||
|
vim.api.nvim_create_augroup("packer_conf", { clear = true })
|
||||||
|
vim.api.nvim_create_autocmd("BufWritePost", {
|
||||||
|
desc = "Sync packer after modifying plugins.lua",
|
||||||
|
group = "packer_conf",
|
||||||
|
pattern = "plugins.lua",
|
||||||
|
command = "source <afile> | PackerSync",
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Set up custom filetypes
|
||||||
|
-- vim.filetype.add {
|
||||||
|
-- extension = {
|
||||||
|
-- foo = "fooscript",
|
||||||
|
-- },
|
||||||
|
-- filename = {
|
||||||
|
-- ["Foofile"] = "fooscript",
|
||||||
|
-- },
|
||||||
|
-- pattern = {
|
||||||
|
-- ["~/%.config/foo/.*"] = "fooscript",
|
||||||
|
-- },
|
||||||
|
-- }
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
||||||
|
return config
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"better-escape.nvim": {"commit": "d5ee0ce"}, "FixCursorHold.nvim": {"commit": "1bfb32e"}, "telescope-fzf-native.nvim": {"commit": "6a33ece"}, "packer.nvim": {"commit": "00ec5ad"}, "nvim-notify": {"commit": "7caeaae"}, "nvim-lspconfig": {"commit": "9278dfb"}, "smart-splits.nvim": {"commit": "2af8bc3"}, "null-ls.nvim": {"commit": "ff40739"}, "which-key.nvim": {"commit": "bd4411a"}, "bufferline.nvim": {"commit": "68839d6"}, "cmp-nvim-lsp": {"commit": "affe808"}, "cmp_luasnip": {"commit": "a9de941"}, "friendly-snippets": {"commit": "d27a83a"}, "nvim-colorizer.lua": {"commit": "36c610a"}, "gitsigns.nvim": {"commit": "4883988"}, "SchemaStore.nvim": {"commit": "186e4ad"}, "indent-blankline.nvim": {"commit": "42fe62e"}, "nvim-ts-autotag": {"commit": "044a05c"}, "neo-tree.nvim": {"commit": "c552119"}, "telescope.nvim": {"commit": "d88b44d"}, "nvim-ts-context-commentstring": {"commit": "8834375"}, "Comment.nvim": {"commit": "2c26a00"}, "aerial.nvim": {"commit": "dd35fd7"}, "alpha-nvim": {"commit": "ef27a59"}, "nvim-autopairs": {"commit": "4a95b39"}, "cinnamon.nvim": {"commit": "da5880d"}, "LuaSnip": {"commit": "a12441e"}, "popup.nvim": {"commit": "b7404d3"}, "nvim-web-devicons": {"commit": "8d2c533"}, "neovim-session-manager": {"commit": "4f9129a"}, "nvim-treesitter": {"commit": "f5aa00d"}, "nui.nvim": {"commit": "0f590b7"}, "impatient.nvim": {"commit": "969f2c5"}, "feline.nvim": {"commit": "1ea4267"}, "nvim-lsp-installer": {"commit": "5904749"}, "indent-o-matic": {"commit": "bf37c6e"}, "toggleterm.nvim": {"commit": "8f2e78d"}, "plenary.nvim": {"commit": "968a4b9"}, "bufdelete.nvim": {"commit": "46255e4"}, "nvim-cmp": {"commit": "df6734a"}, "nvim-ts-rainbow": {"commit": "837167f"}, "cmp-path": {"commit": "466b6b8"}, "cmp-buffer": {"commit": "62fc67a"}}
|
||||||
@@ -1,3 +1,7 @@
|
|||||||
|
# Documentation: https://github.com/yshui/picom/wiki
|
||||||
|
# Config created by Keyitdev https://www.github.com/keyitdev/dotfiles
|
||||||
|
# Copyright (C) 2022 Keyitdev
|
||||||
|
|
||||||
fading = true;
|
fading = true;
|
||||||
fade-in-step = 0.015;
|
fade-in-step = 0.015;
|
||||||
fade-out-step = 0.1;
|
fade-out-step = 0.1;
|
||||||
@@ -11,4 +15,8 @@ refresh-rate = 0
|
|||||||
|
|
||||||
detect-transient = true
|
detect-transient = true
|
||||||
|
|
||||||
log-level = "debug";
|
log-level = "debug";
|
||||||
|
|
||||||
|
opacity-rule: [
|
||||||
|
"95:class_g = 'Org.gnome.Nautilus'"
|
||||||
|
];
|
||||||
+11
-13
@@ -1,18 +1,16 @@
|
|||||||
[color]
|
[color]
|
||||||
|
|
||||||
background = #21222C
|
background = #1b1b25
|
||||||
background2 = #282A36
|
foreground = #dedede
|
||||||
background3 = #343746
|
|
||||||
foreground = #F8F8F2
|
|
||||||
sep = #F8F8F2
|
sep = #F8F8F2
|
||||||
|
|
||||||
white = #FFFFFF
|
white = #eeffff
|
||||||
black = #15121C
|
black = #15121c
|
||||||
red = #f07178
|
red = #cb5760
|
||||||
green = #c3e88d
|
green = #999f63
|
||||||
yellow = #ffcb6b
|
yellow = #d4a067
|
||||||
blue = #82aaff
|
blue = #6c90a8
|
||||||
purple = #c792ea
|
purple = #776690
|
||||||
cyan = #89ddff
|
cyan = #528a9b
|
||||||
pink = #ffa8c5
|
pink = #ffa8c5
|
||||||
orange = #dd864a
|
orange = #c87c3e
|
||||||
Executable
+541
@@ -0,0 +1,541 @@
|
|||||||
|
; Documentation: https://github.com/polybar/polybar/wiki
|
||||||
|
; Config created by Keyitdev https://www.github.com/keyitdev/dotfiles
|
||||||
|
; Copyright (C) 2022 Keyitdev
|
||||||
|
|
||||||
|
;; Global WM Settings
|
||||||
|
|
||||||
|
[global/wm]
|
||||||
|
|
||||||
|
margin-bottom = 0
|
||||||
|
margin-top = 0
|
||||||
|
fixed-center = true
|
||||||
|
|
||||||
|
include-file = $HOME/.config/polybar/colors.ini
|
||||||
|
|
||||||
|
;; Application Settings
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
|
||||||
|
throttle-output = 5
|
||||||
|
throttle-output-for = 10
|
||||||
|
screenchange-reload = true
|
||||||
|
|
||||||
|
; Compositing operators
|
||||||
|
|
||||||
|
pseudo-transparency = true
|
||||||
|
compositing-background = source
|
||||||
|
compositing-foreground = over
|
||||||
|
compositing-overline = over
|
||||||
|
compositing-underline = over
|
||||||
|
compositing-border = over
|
||||||
|
|
||||||
|
;; Bar Settings
|
||||||
|
|
||||||
|
[bar/main]
|
||||||
|
|
||||||
|
modules-left = right1 i3 left1 sep right1 mpd left1 sep right1 network left1
|
||||||
|
modules-center = right1 date left1
|
||||||
|
modules-right = right1 temperature sep2 sep2 cpu sep2 sep2 memory left1 sep right1 backlight sep2 sep2 alsa left1 sep right1 battery left1
|
||||||
|
separator =
|
||||||
|
|
||||||
|
monitor =
|
||||||
|
monitor-fallback =
|
||||||
|
monitor-strict = false
|
||||||
|
override-redirect = false
|
||||||
|
wm-name =
|
||||||
|
locale =
|
||||||
|
|
||||||
|
bottom = false
|
||||||
|
fixed-center = true
|
||||||
|
padding = 0
|
||||||
|
width = 100%
|
||||||
|
height = 31
|
||||||
|
offset-x = 0%
|
||||||
|
offset-y = 0%
|
||||||
|
radius-top = 0
|
||||||
|
radius-bottom = 0
|
||||||
|
|
||||||
|
background = #002d333f
|
||||||
|
foreground = ${color.foreground}
|
||||||
|
dim-value = 1.0
|
||||||
|
|
||||||
|
line-size = 2
|
||||||
|
line-color = ${color.background}
|
||||||
|
|
||||||
|
border-top-size = 8
|
||||||
|
border-top-color = #002d333f
|
||||||
|
border-left-size = 8
|
||||||
|
border-left-color = #002d333f
|
||||||
|
border-right-size = 8
|
||||||
|
border-right-color = #002d333f
|
||||||
|
|
||||||
|
font-0 = "Iosevka Nerd Font:size=12;4"
|
||||||
|
font-1 = "Iosevka Nerd Font:style=Medium:size=18;4"
|
||||||
|
font-2 = "feather:size=13;5"
|
||||||
|
|
||||||
|
tray-position = right
|
||||||
|
tray-detached = false
|
||||||
|
tray-maxsize = 16
|
||||||
|
tray-background = #002d333f
|
||||||
|
tray-offset-x = 0
|
||||||
|
tray-offset-y = 0
|
||||||
|
tray-padding = 0
|
||||||
|
tray-scale = 1.0
|
||||||
|
|
||||||
|
; Enable support for inter-process messaging
|
||||||
|
; See the Messaging wiki page for more details.
|
||||||
|
enable-ipc = true
|
||||||
|
|
||||||
|
[bar/second]
|
||||||
|
modules-left = sep2 i3 left1
|
||||||
|
modules-center = right1 date left1
|
||||||
|
modules-right =
|
||||||
|
separator =
|
||||||
|
|
||||||
|
; Change it for yourself
|
||||||
|
monitor = HDMI-1
|
||||||
|
monitor-fallback =
|
||||||
|
monitor-strict = false
|
||||||
|
override-redirect = false
|
||||||
|
wm-name =
|
||||||
|
locale =
|
||||||
|
|
||||||
|
bottom = false
|
||||||
|
fixed-center = true
|
||||||
|
padding = 0
|
||||||
|
width = 100%
|
||||||
|
height = 31
|
||||||
|
offset-x = 0%
|
||||||
|
offset-y = 0%
|
||||||
|
radius-top = 0
|
||||||
|
radius-bottom = 0
|
||||||
|
|
||||||
|
background = #002d333f
|
||||||
|
foreground = ${color.foreground}
|
||||||
|
dim-value = 1.0
|
||||||
|
|
||||||
|
line-size = 2
|
||||||
|
line-color = ${color.background}
|
||||||
|
|
||||||
|
border-top-size = 8
|
||||||
|
border-top-color = #002d333f
|
||||||
|
border-left-size = 8
|
||||||
|
border-left-color = #002d333f
|
||||||
|
border-right-size = 8
|
||||||
|
border-right-color = #002d333f
|
||||||
|
|
||||||
|
font-0 = "Iosevka Nerd Font:size=12;4"
|
||||||
|
font-1 = "Iosevka Nerd Font:style=Medium:size=18;4"
|
||||||
|
font-2 = "feather:size=13;5"
|
||||||
|
|
||||||
|
tray-position = right
|
||||||
|
tray-detached = false
|
||||||
|
tray-maxsize = 16
|
||||||
|
tray-background = ${color.background}
|
||||||
|
tray-offset-x = 0
|
||||||
|
tray-offset-y = 0
|
||||||
|
tray-padding = 0
|
||||||
|
tray-scale = 1.0
|
||||||
|
|
||||||
|
; Enable support for inter-process messaging
|
||||||
|
; See the Messaging wiki page for more details.
|
||||||
|
enable-ipc = true
|
||||||
|
|
||||||
|
;; Modules
|
||||||
|
|
||||||
|
; Don't delete it, it's important
|
||||||
|
[glyph]
|
||||||
|
gleft =
|
||||||
|
gright =
|
||||||
|
|
||||||
|
[module/left1]
|
||||||
|
type = custom/text
|
||||||
|
content-background = #002d333f
|
||||||
|
content-foreground = ${color.background}
|
||||||
|
content = ${glyph.gleft}
|
||||||
|
content-font = 2
|
||||||
|
|
||||||
|
[module/right1]
|
||||||
|
type = custom/text
|
||||||
|
content-background = #002d333f
|
||||||
|
content-foreground = ${color.background}
|
||||||
|
content = ${glyph.gright}
|
||||||
|
content-font = 2
|
||||||
|
|
||||||
|
[module/sep]
|
||||||
|
type = custom/text
|
||||||
|
content = " "
|
||||||
|
|
||||||
|
[module/sep2]
|
||||||
|
type = custom/text
|
||||||
|
content = " "
|
||||||
|
|
||||||
|
content-foreground = ${color.background}
|
||||||
|
content-background = ${color.background}
|
||||||
|
|
||||||
|
[module/alsa]
|
||||||
|
type = internal/alsa
|
||||||
|
interval = 5
|
||||||
|
|
||||||
|
master-soundcard = default
|
||||||
|
speaker-soundcard = default
|
||||||
|
headphone-soundcard = default
|
||||||
|
master-mixer = Master
|
||||||
|
|
||||||
|
format-volume = <ramp-volume> <label-volume>
|
||||||
|
format-volume-background = ${color.background}
|
||||||
|
format-muted = <label-muted>
|
||||||
|
format-muted-background = ${color.background}
|
||||||
|
|
||||||
|
label-volume = %percentage%%
|
||||||
|
label-muted =
|
||||||
|
label-muted-foreground =${color.red}
|
||||||
|
|
||||||
|
ramp-volume-0 =
|
||||||
|
ramp-volume-1 =
|
||||||
|
ramp-volume-2 =
|
||||||
|
ramp-headphones-0 =
|
||||||
|
ramp-volume-foreground = ${color.blue}
|
||||||
|
|
||||||
|
[module/backlight]
|
||||||
|
type = internal/backlight
|
||||||
|
|
||||||
|
; Change it for yourself
|
||||||
|
card = amdgpu_bl0
|
||||||
|
use-actual-brightness = true
|
||||||
|
enable-scroll = true
|
||||||
|
|
||||||
|
format = <ramp> <label>
|
||||||
|
format-background = ${color.background}
|
||||||
|
|
||||||
|
label =%percentage%%
|
||||||
|
|
||||||
|
ramp-0 =
|
||||||
|
ramp-1 =
|
||||||
|
ramp-foreground = ${color.yellow}
|
||||||
|
|
||||||
|
[module/battery]
|
||||||
|
type = internal/battery
|
||||||
|
poll-interval = 2
|
||||||
|
|
||||||
|
; Change it for yourself
|
||||||
|
battery = BAT1
|
||||||
|
adapter = ADP0
|
||||||
|
full-at = 99
|
||||||
|
time-format = %H:%M
|
||||||
|
|
||||||
|
format-charging = <label-charging>
|
||||||
|
format-charging-prefix = ""
|
||||||
|
format-charging-prefix-foreground = ${color.green}
|
||||||
|
format-charging-prefix-background = ${color.background}
|
||||||
|
|
||||||
|
format-discharging = <label-discharging>
|
||||||
|
format-discharging-prefix = ""
|
||||||
|
format-discharging-prefix-foreground = ${color.pink}
|
||||||
|
format-discharging-prefix-background = ${color.background}
|
||||||
|
|
||||||
|
format-full = <label-full>
|
||||||
|
format-full-prefix =
|
||||||
|
format-full-prefix-foreground = ${color.red}
|
||||||
|
format-full-prefix-background = ${color.background}
|
||||||
|
|
||||||
|
label-charging = " %percentage%%"
|
||||||
|
label-charging-background = ${color.background}
|
||||||
|
|
||||||
|
label-discharging = " %percentage%%"
|
||||||
|
label-discharging-background = ${color.background}
|
||||||
|
|
||||||
|
label-full = " Full"
|
||||||
|
label-full-background = ${color.background}
|
||||||
|
|
||||||
|
[module/cpu]
|
||||||
|
type = internal/cpu
|
||||||
|
interval = 1
|
||||||
|
|
||||||
|
format = <label>
|
||||||
|
format-prefix =
|
||||||
|
format-prefix-foreground = ${color.green}
|
||||||
|
format-background = ${color.background}
|
||||||
|
|
||||||
|
label = " %percentage%%"
|
||||||
|
|
||||||
|
[module/date]
|
||||||
|
type = internal/date
|
||||||
|
interval = 1
|
||||||
|
|
||||||
|
; Change it for yourself
|
||||||
|
date = %a %d %b
|
||||||
|
time = %H:%M
|
||||||
|
date-alt = %A %d %B %Y
|
||||||
|
time-alt = %H:%M:%S
|
||||||
|
|
||||||
|
format = <label>
|
||||||
|
format-prefix = " "
|
||||||
|
format-prefix-foreground = ${color.red}
|
||||||
|
format-background = ${color.background}
|
||||||
|
|
||||||
|
label = %date% %time%
|
||||||
|
|
||||||
|
[module/filesystem]
|
||||||
|
type = internal/fs
|
||||||
|
interval = 30
|
||||||
|
|
||||||
|
mount-0 = /
|
||||||
|
fixed-values = true
|
||||||
|
|
||||||
|
format-mounted = <label-mounted>
|
||||||
|
format-mounted-prefix =
|
||||||
|
format-mounted-prefix-foreground = ${color.orange}
|
||||||
|
format-mounted-background = ${color.background}
|
||||||
|
|
||||||
|
format-unmounted = <label-unmounted>
|
||||||
|
format-unmounted-prefix =
|
||||||
|
format-unmounted-prefix-foreground = ${color.red}
|
||||||
|
format-unmounted-background = ${color.background}
|
||||||
|
|
||||||
|
label-mounted = " %free%"
|
||||||
|
|
||||||
|
label-unmounted = " %mountpoint%: NA"
|
||||||
|
|
||||||
|
[module/i3]
|
||||||
|
type = internal/i3
|
||||||
|
|
||||||
|
pin-workspaces = true
|
||||||
|
|
||||||
|
ws-icon-0 = 1;
|
||||||
|
ws-icon-1 = 2;
|
||||||
|
ws-icon-2 = 3;
|
||||||
|
ws-icon-3 = 4;
|
||||||
|
ws-icon-4 = 5;
|
||||||
|
ws-icon-5 = 6;
|
||||||
|
ws-icon-6 = 7;
|
||||||
|
ws-icon-7 = 8;
|
||||||
|
ws-icon-8 = 9;
|
||||||
|
ws-icon-9 = 10;
|
||||||
|
ws-icon-default =
|
||||||
|
|
||||||
|
; Available tags:
|
||||||
|
; <label-state> (default) - gets replaced with <label-(focused|unfocused|visible|urgent)>
|
||||||
|
; <label-mode> (default)
|
||||||
|
format = <label-state><label-mode>
|
||||||
|
|
||||||
|
label-mode = %mode%
|
||||||
|
label-mode-padding = 1
|
||||||
|
label-mode-background = ${color.background}
|
||||||
|
label-mode-foreground = ${color.foreground}
|
||||||
|
|
||||||
|
label-focused = %icon%
|
||||||
|
label-focused-foreground = ${color.green}
|
||||||
|
label-focused-background = ${color.background}
|
||||||
|
label-focused-underline = ${color.green}
|
||||||
|
label-focused-padding = 1
|
||||||
|
|
||||||
|
label-unfocused = %icon%
|
||||||
|
label-unfocused-padding = 1
|
||||||
|
label-unfocused-background = ${color.background}
|
||||||
|
|
||||||
|
label-visible = %icon%
|
||||||
|
label-visible-underline = ${color.purple}
|
||||||
|
label-visible-padding = 1
|
||||||
|
label-visible-foreground = ${color.purple}
|
||||||
|
label-visible-background = ${color.background}
|
||||||
|
|
||||||
|
label-urgent = %icon%
|
||||||
|
label-urgent-foreground = ${color.red}
|
||||||
|
label-urgent-background = ${color.background}
|
||||||
|
label-urgent-padding = 1
|
||||||
|
|
||||||
|
[module/keyboard]
|
||||||
|
type = internal/xkeyboard
|
||||||
|
|
||||||
|
blacklist-0 = num lock
|
||||||
|
blacklist-1 = scroll lock
|
||||||
|
|
||||||
|
format = <label-layout> <label-indicator>
|
||||||
|
format-prefix =
|
||||||
|
format-prefix-foreground = ${color.cyan}
|
||||||
|
format-foreground = ${color.foreground}
|
||||||
|
format-background = ${color.background}
|
||||||
|
|
||||||
|
label-layout = " %layout%"
|
||||||
|
|
||||||
|
label-indicator-on = "%name%"
|
||||||
|
label-indicator-on-foreground = ${color.cyan}
|
||||||
|
|
||||||
|
[module/memory]
|
||||||
|
type = internal/memory
|
||||||
|
interval = 1
|
||||||
|
|
||||||
|
format = <label>
|
||||||
|
format-prefix =
|
||||||
|
format-prefix-foreground = ${color.purple}
|
||||||
|
format-background = ${color.background}
|
||||||
|
|
||||||
|
label = " %gb_used%"
|
||||||
|
|
||||||
|
[module/mpd]
|
||||||
|
type = internal/mpd
|
||||||
|
interval = 1
|
||||||
|
|
||||||
|
format-online = <label-song> <icon-prev> <toggle> <icon-next>
|
||||||
|
format-online-prefix = " "
|
||||||
|
format-online-prefix-foreground = ${color.green}
|
||||||
|
format-online-background = ${color.background}
|
||||||
|
|
||||||
|
format-playing = ${self.format-online}
|
||||||
|
format-paused = ${self.format-online}
|
||||||
|
format-stopped = ${self.format-online}
|
||||||
|
|
||||||
|
format-offline = <label-offline>
|
||||||
|
format-offline-prefix =
|
||||||
|
format-offline-prefix-foreground = ${color.red}
|
||||||
|
format-offline-background = ${color.background}
|
||||||
|
|
||||||
|
label-song = " %title%"
|
||||||
|
label-song-maxlen = 25
|
||||||
|
label-song-ellipsis = true
|
||||||
|
|
||||||
|
label-time = %elapsed% / %total%
|
||||||
|
label-time-background = ${color.background-alt}
|
||||||
|
label-time-padding = 1
|
||||||
|
|
||||||
|
label-offline = " Offline"
|
||||||
|
|
||||||
|
icon-play =
|
||||||
|
icon-play-foreground = ${color.cyan}
|
||||||
|
icon-pause =
|
||||||
|
icon-pause-foreground = ${color.cyan}
|
||||||
|
icon-stop =
|
||||||
|
icon-stop-foreground = ${color.red}
|
||||||
|
icon-next =
|
||||||
|
icon-next-foreground = ${color.cyan}
|
||||||
|
icon-prev =
|
||||||
|
icon-prev-foreground = ${color.cyan}
|
||||||
|
icon-seekf =
|
||||||
|
icon-seekb =
|
||||||
|
icon-random =
|
||||||
|
icon-repeat =
|
||||||
|
icon-repeatone =
|
||||||
|
icon-single =
|
||||||
|
icon-consume =
|
||||||
|
|
||||||
|
toggle-on-foreground = ${color.primary}
|
||||||
|
toggle-off-foreground = ${color.red}
|
||||||
|
|
||||||
|
; Change it for yourself
|
||||||
|
[module/wired-network]
|
||||||
|
type = internal/network
|
||||||
|
interface = eth0
|
||||||
|
|
||||||
|
[module/wireless-network]
|
||||||
|
type = internal/network
|
||||||
|
interface = wlan0
|
||||||
|
|
||||||
|
[module/network]
|
||||||
|
type = internal/network
|
||||||
|
interface = wlan0
|
||||||
|
|
||||||
|
interval = 1.0
|
||||||
|
|
||||||
|
accumulate-stats = true
|
||||||
|
unknown-as-up = true
|
||||||
|
|
||||||
|
format-connected = <label-connected>
|
||||||
|
format-connected-prefix =
|
||||||
|
format-connected-prefix-foreground = ${color.orange}
|
||||||
|
format-connected-background = ${color.background}
|
||||||
|
format-connected-padding = 0
|
||||||
|
|
||||||
|
format-disconnected = <label-disconnected>
|
||||||
|
format-disconnected-prefix =
|
||||||
|
format-disconnected-prefix-foreground = ${color.red}
|
||||||
|
format-disconnected-background = ${color.background}
|
||||||
|
format-disconnected-padding = 0
|
||||||
|
|
||||||
|
label-connected = "%{A1:networkmanager_dmenu &:} %essid% %downspeed%%{A}"
|
||||||
|
|
||||||
|
label-disconnected = "%{A1:networkmanager_dmenu &:} Offline%{A}"
|
||||||
|
|
||||||
|
; Change it for yourself
|
||||||
|
[module/wired-network_stats]
|
||||||
|
type = internal/network
|
||||||
|
interface = eth0
|
||||||
|
|
||||||
|
[module/wireless-network_stats]
|
||||||
|
type = internal/network
|
||||||
|
interface = wlan0
|
||||||
|
|
||||||
|
[module/network_stats]
|
||||||
|
type = internal/network
|
||||||
|
interface = wlan0
|
||||||
|
|
||||||
|
interval = 1.0
|
||||||
|
|
||||||
|
accumulate-stats = true
|
||||||
|
unknown-as-up = true
|
||||||
|
|
||||||
|
format-connected = <label-connected>
|
||||||
|
format-connected-prefix =
|
||||||
|
format-connected-prefix-foreground = ${color.orange}
|
||||||
|
format-connected-background = ${color.background}
|
||||||
|
format-connected-padding = 0
|
||||||
|
|
||||||
|
format-disconnected = <label-disconnected>
|
||||||
|
format-disconnected-prefix =
|
||||||
|
format-disconnected-prefix-foreground = ${color.red}
|
||||||
|
format-disconnected-background = ${color.background}
|
||||||
|
format-disconnected-padding = 0
|
||||||
|
|
||||||
|
label-connected = "%{A1:networkmanager_dmenu &:} %{F#6C77BB}%{F-} %downspeed%%{A} %{F#6C77BB}%{F-} %upspeed%%{A}"
|
||||||
|
|
||||||
|
label-disconnected = "%{A1:networkmanager_dmenu &:} Offline%{A}"
|
||||||
|
|
||||||
|
[module/temperature]
|
||||||
|
type = internal/temperature
|
||||||
|
interval = 0.5
|
||||||
|
|
||||||
|
thermal-zone = 0
|
||||||
|
warn-temperature = 80
|
||||||
|
units = true
|
||||||
|
|
||||||
|
format = <ramp> <label>
|
||||||
|
format-background = ${color.background}
|
||||||
|
|
||||||
|
format-warn = <ramp> <label-warn>
|
||||||
|
format-warn-background = ${color.background}
|
||||||
|
|
||||||
|
label = %temperature-c%
|
||||||
|
|
||||||
|
label-warn = "%temperature-c%"
|
||||||
|
label-warn-foreground = ${color.red}
|
||||||
|
|
||||||
|
ramp-0 =
|
||||||
|
ramp-1 =
|
||||||
|
ramp-2 =
|
||||||
|
ramp-3 =
|
||||||
|
ramp-4 =
|
||||||
|
ramp-foreground = ${color.cyan}
|
||||||
|
|
||||||
|
[module/title]
|
||||||
|
type = internal/xwindow
|
||||||
|
|
||||||
|
format = <label>
|
||||||
|
format-prefix =
|
||||||
|
format-prefix-foreground = ${color.green}
|
||||||
|
format-foreground = ${color.foreground}
|
||||||
|
format-background = ${color.background}
|
||||||
|
|
||||||
|
label = " %title%"
|
||||||
|
label-maxlen = 30
|
||||||
|
|
||||||
|
label-empty = " Desktop"
|
||||||
|
|
||||||
|
[module/uptime]
|
||||||
|
type = custom/script
|
||||||
|
exec = ~/.config/polybar/uptime.sh
|
||||||
|
interval = 1
|
||||||
|
|
||||||
|
format-prefix = " "
|
||||||
|
format-prefix-foreground = ${color.green}
|
||||||
|
format-foreground = ${color.foreground}
|
||||||
|
format-background = ${color.background}
|
||||||
@@ -6,8 +6,8 @@ killall -q polybar
|
|||||||
# Wait until the processes have been shut down
|
# Wait until the processes have been shut down
|
||||||
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
|
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
|
||||||
|
|
||||||
# Launch Polybar, using default config location ~/.config/polybar/config.ini
|
# Launch Polybar, using default config location ~/.config/polybar/config
|
||||||
polybar main --config=~/.config/polybar/polybar-square/config.ini &
|
polybar main --config=~/.config/polybar/config.ini &
|
||||||
polybar second --config=~/.config/polybar/polybar-square/config.ini &
|
polybar second --config=~/.config/polybar/config.ini &
|
||||||
|
|
||||||
echo "Polybar launched..."
|
echo "Polybar launched..."
|
||||||
@@ -1,478 +0,0 @@
|
|||||||
; Documentation: https://github.com/polybar/polybar/wiki
|
|
||||||
; Config created by Keyitdev https://www.github.com/keyitdev/dotfiles
|
|
||||||
; Copyright (C) 2022 Keyitdev
|
|
||||||
|
|
||||||
;; Global WM Settings
|
|
||||||
|
|
||||||
[global/wm]
|
|
||||||
; Adjust the _NET_WM_STRUT_PARTIAL top value
|
|
||||||
; Used for top aligned bars
|
|
||||||
margin-bottom = 0
|
|
||||||
|
|
||||||
; Adjust the _NET_WM_STRUT_PARTIAL bottom value
|
|
||||||
; Used for bottom aligned bars
|
|
||||||
margin-top = 0
|
|
||||||
|
|
||||||
;; File Inclusion
|
|
||||||
; include an external file, like module file, etc.
|
|
||||||
|
|
||||||
include-file = ~/.config/polybar/colors.ini
|
|
||||||
|
|
||||||
include-file = ~/.config/polybar/polybar-rounded/modules/glyphs.ini
|
|
||||||
include-file = ~/.config/polybar/polybar-rounded/modules/battery.ini
|
|
||||||
include-file = ~/.config/polybar/polybar-rounded/modules/backlight.ini
|
|
||||||
include-file = ~/.config/polybar/polybar-rounded/modules/cpu.ini
|
|
||||||
include-file = ~/.config/polybar/polybar-rounded/modules/date.ini
|
|
||||||
include-file = ~/.config/polybar/polybar-rounded/modules/filesystem.ini
|
|
||||||
include-file = ~/.config/polybar/polybar-rounded/modules/i3.ini
|
|
||||||
include-file = ~/.config/polybar/polybar-rounded/modules/memory.ini
|
|
||||||
include-file = ~/.config/polybar/polybar-rounded/modules/alsa.ini
|
|
||||||
include-file = ~/.config/polybar/polybar-rounded/modules/sep.ini
|
|
||||||
include-file = ~/.config/polybar/polybar-rounded/modules/temperature.ini
|
|
||||||
include-file = ~/.config/polybar/polybar-rounded/modules/network.ini
|
|
||||||
include-file = ~/.config/polybar/polybar-rounded/modules/network_mini.ini
|
|
||||||
include-file = ~/.config/polybar/polybar-rounded/modules/mpd.ini
|
|
||||||
include-file = ~/.config/polybar/polybar-rounded/modules/uptime.ini
|
|
||||||
include-file = ~/.config/polybar/polybar-rounded/modules/keyboard.ini
|
|
||||||
|
|
||||||
fixed-center = true
|
|
||||||
|
|
||||||
;; Application Settings
|
|
||||||
|
|
||||||
[settings]
|
|
||||||
; The throttle settings lets the eventloop swallow up til X events
|
|
||||||
; if they happen within Y millisecond after first event was received.
|
|
||||||
; This is done to prevent flood of update event.
|
|
||||||
;
|
|
||||||
; For example if 5 modules emit an update event at the same time, we really
|
|
||||||
; just care about the last one. But if we wait too long for events to swallow
|
|
||||||
; the bar would appear sluggish so we continue if timeout
|
|
||||||
; expires or limit is reached.
|
|
||||||
throttle-output = 5
|
|
||||||
throttle-output-for = 10
|
|
||||||
|
|
||||||
; Time in milliseconds that the input handler will wait between processing events
|
|
||||||
;throttle-input-for = 30
|
|
||||||
|
|
||||||
; Reload upon receiving XCB_RANDR_SCREEN_CHANGE_NOTIFY events
|
|
||||||
screenchange-reload = false
|
|
||||||
|
|
||||||
; Compositing operators
|
|
||||||
; @see: https://www.cairographics.org/manual/cairo-cairo-t.html#cairo-operator-t
|
|
||||||
compositing-background = source
|
|
||||||
compositing-foreground = over
|
|
||||||
compositing-overline = over
|
|
||||||
compositing-underline = over
|
|
||||||
compositing-border = over
|
|
||||||
|
|
||||||
; Define fallback values used by all module formats
|
|
||||||
;format-foreground =
|
|
||||||
;format-background =
|
|
||||||
;format-underline =
|
|
||||||
;format-overline =
|
|
||||||
;format-spacing =
|
|
||||||
;format-padding =
|
|
||||||
;format-margin =
|
|
||||||
;format-offset =
|
|
||||||
|
|
||||||
; Enables pseudo-transparency for the bar
|
|
||||||
; If set to true the bar can be transparent without a compositor.
|
|
||||||
pseudo-transparency = false
|
|
||||||
|
|
||||||
;; Bar Settings
|
|
||||||
|
|
||||||
[bar/main]
|
|
||||||
; Use either of the following command to list available outputs:
|
|
||||||
; If unspecified, the application will pick the first one it finds.
|
|
||||||
; $ polybar -m | cut -d ':' -f 1
|
|
||||||
; $ xrandr -q | grep " connected" | cut -d ' ' -f1
|
|
||||||
monitor =
|
|
||||||
|
|
||||||
; Use the specified monitor as a fallback if the main one is not found.
|
|
||||||
monitor-fallback =
|
|
||||||
|
|
||||||
; 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
|
|
||||||
|
|
||||||
; Dimension 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 a width or height of 50% minus 10 pixels
|
|
||||||
width = 100%
|
|
||||||
height = 31
|
|
||||||
|
|
||||||
; 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 = #002d333f
|
|
||||||
|
|
||||||
; Foreground ARGB color (e.g. #f00, #ff992a, #ddff1023)
|
|
||||||
foreground = ${color.foreground}
|
|
||||||
|
|
||||||
; Background gradient (vertical steps)
|
|
||||||
; background-[0-9]+ = #aarrggbb
|
|
||||||
;;background-0 =
|
|
||||||
|
|
||||||
; 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
|
|
||||||
|
|
||||||
; Under-/overline pixel size and argb color
|
|
||||||
; Individual values can be defined using:
|
|
||||||
; {overline,underline}-size
|
|
||||||
; {overline,underline}-color
|
|
||||||
line-size = 2
|
|
||||||
line-color = ${color.background}
|
|
||||||
|
|
||||||
; 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-bottom-size = 0
|
|
||||||
;border-bottom-color = ${color.foreground}
|
|
||||||
|
|
||||||
; adding space on top of polybar
|
|
||||||
border-top-size = 8
|
|
||||||
border-top-color = #002d333f
|
|
||||||
border-left-size = 8
|
|
||||||
border-left-color = #002d333f
|
|
||||||
border-right-size = 8
|
|
||||||
border-right-color = #002d333f
|
|
||||||
|
|
||||||
|
|
||||||
; Number of spaces to add at the beginning/end of the bar
|
|
||||||
; Individual side values can be defined using:
|
|
||||||
; padding-{left,right}
|
|
||||||
padding = 0
|
|
||||||
|
|
||||||
; Number of spaces to add before/after each module
|
|
||||||
; Individual side values can be defined using:
|
|
||||||
; module-margin-{left,right}
|
|
||||||
;module-margin-left = 1
|
|
||||||
;module-margin-right = 1
|
|
||||||
|
|
||||||
; Fonts are defined using <font-name>;<vertical-offset>
|
|
||||||
font-0 = "Iosevka Nerd Font:size=12;4"
|
|
||||||
font-1 = "Iosevka Nerd Font:style=Medium:size=18;4"
|
|
||||||
font-2 = "feather:size=13;5"
|
|
||||||
|
|
||||||
#modules-left = sep2 i3 left1 sep right1 network_mini left1 sep right1 mpd left1 sep right1 uptime left1
|
|
||||||
#modules-center = right1 date left1
|
|
||||||
#modules-right = right1 temperature left1 sep right1 cpu left1 sep right1 memory left1 sep right1 filesystem left1 sep right1 backlight left1 sep right1 alsa left1 sep right1 battery left1 sep right1
|
|
||||||
|
|
||||||
modules-left = sep2 i3 left1 sep right1 network_mini left1
|
|
||||||
modules-center = right1 date left1
|
|
||||||
modules-right = right1 temperature left1 sep right1 cpu left1 sep right1 memory left1 sep right1 filesystem left1 sep right1 backlight left1 sep right1 alsa left1 sep right1 battery left1 sep right1
|
|
||||||
|
|
||||||
; The separator will be inserted between the output of each module
|
|
||||||
separator =
|
|
||||||
|
|
||||||
; Opacity value between 0.0 and 1.0 used on fade in/out
|
|
||||||
dim-value = 1.0
|
|
||||||
|
|
||||||
; 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 = right
|
|
||||||
|
|
||||||
; If true, the bar will not shift its
|
|
||||||
; contents when the tray changes
|
|
||||||
tray-detached = false
|
|
||||||
|
|
||||||
; Tray icon max size
|
|
||||||
tray-maxsize = 16
|
|
||||||
|
|
||||||
; 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.background}
|
|
||||||
|
|
||||||
; 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 = 1.0
|
|
||||||
|
|
||||||
; 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 =
|
|
||||||
|
|
||||||
; 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
|
|
||||||
|
|
||||||
; 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 =
|
|
||||||
|
|
||||||
; 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 =
|
|
||||||
cursor-scroll =
|
|
||||||
|
|
||||||
[bar/second]
|
|
||||||
; Use either of the following command to list available outputs:
|
|
||||||
; If unspecified, the application will pick the first one it finds.
|
|
||||||
; $ polybar -m | cut -d ':' -f 1
|
|
||||||
; $ xrandr -q | grep " connected" | cut -d ' ' -f1
|
|
||||||
monitor = HDMI-1
|
|
||||||
|
|
||||||
; Use the specified monitor as a fallback if the main one is not found.
|
|
||||||
monitor-fallback =
|
|
||||||
|
|
||||||
; 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
|
|
||||||
|
|
||||||
; Dimension 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 a width or height of 50% minus 10 pixels
|
|
||||||
width = 100%
|
|
||||||
height = 31
|
|
||||||
|
|
||||||
; 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 = #002d333f
|
|
||||||
|
|
||||||
; Foreground ARGB color (e.g. #f00, #ff992a, #ddff1023)
|
|
||||||
foreground = ${color.foreground}
|
|
||||||
|
|
||||||
; Background gradient (vertical steps)
|
|
||||||
; background-[0-9]+ = #aarrggbb
|
|
||||||
;;background-0 =
|
|
||||||
|
|
||||||
; 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
|
|
||||||
|
|
||||||
; Under-/overline pixel size and argb color
|
|
||||||
; Individual values can be defined using:
|
|
||||||
; {overline,underline}-size
|
|
||||||
; {overline,underline}-color
|
|
||||||
line-size = 2
|
|
||||||
line-color = ${color.background}
|
|
||||||
|
|
||||||
; 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-bottom-size = 0
|
|
||||||
;border-bottom-color = ${color.foreground}
|
|
||||||
|
|
||||||
; adding space on top of polybar
|
|
||||||
border-top-size = 8
|
|
||||||
border-top-color = #002d333f
|
|
||||||
border-left-size = 8
|
|
||||||
border-left-color = #002d333f
|
|
||||||
border-right-size = 8
|
|
||||||
border-right-color = #002d333f
|
|
||||||
|
|
||||||
|
|
||||||
; Number of spaces to add at the beginning/end of the bar
|
|
||||||
; Individual side values can be defined using:
|
|
||||||
; padding-{left,right}
|
|
||||||
padding = 0
|
|
||||||
|
|
||||||
; Number of spaces to add before/after each module
|
|
||||||
; Individual side values can be defined using:
|
|
||||||
; module-margin-{left,right}
|
|
||||||
;module-margin-left = 1
|
|
||||||
;module-margin-right = 1
|
|
||||||
|
|
||||||
; Fonts are defined using <font-name>;<vertical-offset>
|
|
||||||
font-0 = "Iosevka Nerd Font:size=12;4"
|
|
||||||
font-1 = "Iosevka Nerd Font:style=Medium:size=18;4"
|
|
||||||
font-2 = "feather:size=13;5"
|
|
||||||
|
|
||||||
#modules-left = sep2 i3 left1 sep right1 network_mini left1 sep right1 mpd left1 sep right1 uptime left1
|
|
||||||
#modules-center = right1 date left1
|
|
||||||
#modules-right = right1 temperature left1 sep right1 cpu left1 sep right1 memory left1 sep right1 filesystem left1 sep right1 backlight left1 sep right1 alsa left1 sep right1 battery left1 sep right1
|
|
||||||
|
|
||||||
modules-left = sep2 i3 left1
|
|
||||||
modules-center = right1 date left1
|
|
||||||
modules-right =
|
|
||||||
|
|
||||||
; The separator will be inserted between the output of each module
|
|
||||||
separator =
|
|
||||||
|
|
||||||
; Opacity value between 0.0 and 1.0 used on fade in/out
|
|
||||||
dim-value = 1.0
|
|
||||||
|
|
||||||
; 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 = right
|
|
||||||
|
|
||||||
; If true, the bar will not shift its
|
|
||||||
; contents when the tray changes
|
|
||||||
tray-detached = false
|
|
||||||
|
|
||||||
; Tray icon max size
|
|
||||||
tray-maxsize = 16
|
|
||||||
|
|
||||||
; 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.background}
|
|
||||||
|
|
||||||
; 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 = 1.0
|
|
||||||
|
|
||||||
; 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 =
|
|
||||||
|
|
||||||
; 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
|
|
||||||
|
|
||||||
; 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 =
|
|
||||||
|
|
||||||
; 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 =
|
|
||||||
cursor-scroll =
|
|
||||||
@@ -1,74 +0,0 @@
|
|||||||
[module/alsa]
|
|
||||||
type = internal/alsa
|
|
||||||
|
|
||||||
; Soundcard to be used
|
|
||||||
; Usually in the format hw:# where # is the card number
|
|
||||||
; You can find the different card numbers in `/proc/asound/cards`
|
|
||||||
master-soundcard = default
|
|
||||||
speaker-soundcard = default
|
|
||||||
headphone-soundcard = default
|
|
||||||
|
|
||||||
; Name of the master, speaker and headphone mixers
|
|
||||||
; Use the following command to list available mixer controls:
|
|
||||||
; $ amixer scontrols | sed -nr "s/.*'([[:alnum:]]+)'.*/\1/p"
|
|
||||||
; If master, speaker or headphone-soundcard isn't the default,
|
|
||||||
; use `amixer -c # scontrols` instead where # is the number
|
|
||||||
; of the master, speaker or headphone soundcard respectively
|
|
||||||
;
|
|
||||||
; Default: Master
|
|
||||||
master-mixer = Master
|
|
||||||
|
|
||||||
; Optionally define speaker and headphone mixers
|
|
||||||
; Default: none
|
|
||||||
;;speaker-mixer = Speaker
|
|
||||||
; Default: none
|
|
||||||
;;headphone-mixer = Headphone
|
|
||||||
|
|
||||||
; NOTE: This is required if headphone_mixer is defined
|
|
||||||
; Use the following command to list available device controls
|
|
||||||
; $ amixer controls | sed -r "/CARD/\!d; s/.*=([0-9]+).*name='([^']+)'.*/printf '%3.0f: %s\n' '\1' '\2'/e" | sort
|
|
||||||
; You may also need to use `amixer -c # controls` as above for the mixer names
|
|
||||||
; Default: none
|
|
||||||
;;headphone-id = 9
|
|
||||||
|
|
||||||
; Use volume mapping (similar to amixer -M and alsamixer), where the increase in volume is linear to the ear
|
|
||||||
; Default: false
|
|
||||||
;;mapped = true
|
|
||||||
|
|
||||||
; Interval for volume increase/decrease (in percent points)
|
|
||||||
; Default: 5
|
|
||||||
interval = 5
|
|
||||||
|
|
||||||
; Available tags:
|
|
||||||
; <label-volume> (default)
|
|
||||||
; <ramp-volume>
|
|
||||||
; <bar-volume>
|
|
||||||
format-volume = <ramp-volume> <label-volume>
|
|
||||||
format-volume-background = ${color.background}
|
|
||||||
; Available tags:
|
|
||||||
; <label-muted> (default)
|
|
||||||
; <ramp-volume>
|
|
||||||
; <bar-volume>
|
|
||||||
format-muted = <label-muted>
|
|
||||||
format-muted-background = ${color.background}
|
|
||||||
; Available tokens:
|
|
||||||
; %percentage% (default)
|
|
||||||
label-volume = %percentage%%
|
|
||||||
|
|
||||||
ramp-volume-foreground = ${color.blue}
|
|
||||||
|
|
||||||
; Available tokens:
|
|
||||||
; %percentage% (default
|
|
||||||
label-muted =
|
|
||||||
label-muted-foreground =${color.red}
|
|
||||||
|
|
||||||
; Only applies if <ramp-volume> is used
|
|
||||||
ramp-volume-0 =
|
|
||||||
ramp-volume-1 =
|
|
||||||
ramp-volume-2 =
|
|
||||||
|
|
||||||
; If defined, it will replace <ramp-volume> when
|
|
||||||
; headphones are plugged in to `headphone_control_numid`
|
|
||||||
; If undefined, <ramp-volume> will be used for both
|
|
||||||
; Only applies if <ramp-volume> is used
|
|
||||||
ramp-headphones-0 =
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
[module/backlight]
|
|
||||||
type = internal/backlight
|
|
||||||
|
|
||||||
; Use the following command to list available cards:
|
|
||||||
; $ ls -1 /sys/class/backlight/
|
|
||||||
card = amdgpu_bl0
|
|
||||||
|
|
||||||
; (unreleased)
|
|
||||||
; Use the `/sys/class/backlight/actual-brightness` file
|
|
||||||
; rather than the regular `brightness` file.
|
|
||||||
; Defaults to true unless the specified card is an amdgpu backlight.
|
|
||||||
use-actual-brightness = true
|
|
||||||
|
|
||||||
; 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
|
|
||||||
; Available tags:
|
|
||||||
; <label> (default)
|
|
||||||
; <ramp>
|
|
||||||
; <bar>
|
|
||||||
format = <ramp> <label>
|
|
||||||
|
|
||||||
; Available tokens:
|
|
||||||
; %percentage% (default)
|
|
||||||
label =%percentage%%
|
|
||||||
|
|
||||||
|
|
||||||
ramp-foreground = ${color.yellow}
|
|
||||||
format-background = ${color.background}
|
|
||||||
|
|
||||||
; Only applies if <ramp> is used
|
|
||||||
ramp-0 =
|
|
||||||
ramp-1 =
|
|
||||||
|
|
||||||
; Only applies if <bar> is used
|
|
||||||
bar-width = 10
|
|
||||||
bar-indicator = |
|
|
||||||
bar-fill = ─
|
|
||||||
bar-empty = ─
|
|
||||||
@@ -1,98 +0,0 @@
|
|||||||
[module/battery]
|
|
||||||
type = internal/battery
|
|
||||||
|
|
||||||
; This is useful in case the battery never reports 100% charge
|
|
||||||
full-at = 99
|
|
||||||
|
|
||||||
; Use the following command to list batteries and adapters:
|
|
||||||
; $ ls -1 /sys/class/power_supply/
|
|
||||||
battery = BAT1
|
|
||||||
adapter = ADP0
|
|
||||||
|
|
||||||
; 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 = 2
|
|
||||||
|
|
||||||
; 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 = <label-charging>
|
|
||||||
format-charging-prefix = ""
|
|
||||||
format-charging-prefix-foreground = ${color.green}
|
|
||||||
format-charging-prefix-background = ${color.background}
|
|
||||||
|
|
||||||
; Available tags:
|
|
||||||
; <label-discharging> (default)
|
|
||||||
; <bar-capacity>
|
|
||||||
; <ramp-capacity>
|
|
||||||
; <animation-discharging>
|
|
||||||
format-discharging = <label-discharging>
|
|
||||||
format-discharging-prefix = ""
|
|
||||||
format-discharging-prefix-foreground = ${color.pink}
|
|
||||||
format-discharging-prefix-background = ${color.background}
|
|
||||||
|
|
||||||
; Available tags:
|
|
||||||
; <label-full> (default)
|
|
||||||
; <bar-capacity>
|
|
||||||
; <ramp-capacity>
|
|
||||||
format-full = <label-full>
|
|
||||||
format-full-prefix =
|
|
||||||
format-full-prefix-foreground = ${color.red}
|
|
||||||
format-full-prefix-background = ${color.background}
|
|
||||||
|
|
||||||
; Available tokens:
|
|
||||||
; %percentage% (default)
|
|
||||||
; %time%
|
|
||||||
; %consumption% (shows current charge rate in watts)
|
|
||||||
label-charging = " %percentage%%"
|
|
||||||
label-charging-background = ${color.background}
|
|
||||||
|
|
||||||
; Available tokens:
|
|
||||||
; %percentage% (default)
|
|
||||||
; %time%
|
|
||||||
; %consumption% (shows current discharge rate in watts)
|
|
||||||
label-discharging = " %percentage%%"
|
|
||||||
label-discharging-background = ${color.background}
|
|
||||||
|
|
||||||
; Available tokens:
|
|
||||||
; %percentage% (default)
|
|
||||||
label-full = " Full"
|
|
||||||
label-full-background = ${color.background}
|
|
||||||
; 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 =
|
|
||||||
|
|
||||||
; Framerate in milliseconds
|
|
||||||
animation-charging-framerate = 750
|
|
||||||
|
|
||||||
; Only applies if <animation-discharging> is used
|
|
||||||
;;animation-discharging-0 = ${battery.anim0}
|
|
||||||
;;animation-discharging-1 = ${battery.anim1}
|
|
||||||
|
|
||||||
; Framerate in milliseconds
|
|
||||||
;animation-discharging-framerate = 500
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
[module/cpu]
|
|
||||||
type = internal/cpu
|
|
||||||
|
|
||||||
; Seconds to sleep between updates
|
|
||||||
; Default: 1
|
|
||||||
interval = 1
|
|
||||||
|
|
||||||
; Available tags:
|
|
||||||
; <label> (default)
|
|
||||||
; <bar-load>
|
|
||||||
; <ramp-load>
|
|
||||||
; <ramp-coreload>
|
|
||||||
;;format = <label> <ramp-coreload>
|
|
||||||
format = <label>
|
|
||||||
format-prefix =
|
|
||||||
format-prefix-foreground = ${color.green}
|
|
||||||
format-background = ${color.background}
|
|
||||||
|
|
||||||
; Available tokens:
|
|
||||||
; %percentage% (default) - total cpu load averaged over all cores
|
|
||||||
; %percentage-sum% - Cumulative load on all cores
|
|
||||||
; %percentage-cores% - load percentage for each core
|
|
||||||
; %percentage-core[1-9]% - load percentage for specific core
|
|
||||||
label = " %percentage%%"
|
|
||||||
|
|
||||||
; Spacing between individual per-core ramps
|
|
||||||
;;ramp-coreload-spacing = 1
|
|
||||||
;;ramp-coreload-0 = ${cpu.load0}
|
|
||||||
;;ramp-coreload-1 = ${cpu.load1}
|
|
||||||
|
|
||||||
;;ramp-load-0 = ${cpu.load0}
|
|
||||||
;;ramp-load-1 = ${cpu.load1}
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
[module/date]
|
|
||||||
type = internal/date
|
|
||||||
|
|
||||||
; Seconds to sleep between updates
|
|
||||||
; Default: 1.0
|
|
||||||
interval = 1
|
|
||||||
|
|
||||||
; See "https://en.cppreference.com/w/cpp/io/manip/put_time" for details on how to format the date string
|
|
||||||
; NOTE: if you want to use syntax tags here you need to use %%{...}
|
|
||||||
date = %a %d %b
|
|
||||||
|
|
||||||
; Optional time format
|
|
||||||
time = %H:%M
|
|
||||||
|
|
||||||
; if `date-alt` or `time-alt` is defined, clicking
|
|
||||||
; the module will toggle between formats
|
|
||||||
date-alt = %A %d %B %Y
|
|
||||||
time-alt = %H:%M:%S
|
|
||||||
|
|
||||||
; Available tags:
|
|
||||||
; <label> (default)
|
|
||||||
format = <label>
|
|
||||||
format-prefix = " "
|
|
||||||
format-prefix-foreground = ${color.red}
|
|
||||||
format-background = ${color.background}
|
|
||||||
; Available tokens:
|
|
||||||
; %date%
|
|
||||||
; %time%
|
|
||||||
; Default: %date%
|
|
||||||
label = %date% %time%
|
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
[module/filesystem]
|
|
||||||
type = internal/fs
|
|
||||||
|
|
||||||
; Mountpoints to display
|
|
||||||
mount-0 = /
|
|
||||||
;;mount-1 = /home
|
|
||||||
;;mount-2 = /var
|
|
||||||
|
|
||||||
; Seconds to sleep between updates
|
|
||||||
; Default: 30
|
|
||||||
interval = 30
|
|
||||||
|
|
||||||
; Display fixed precision values
|
|
||||||
; Default: false
|
|
||||||
fixed-values = true
|
|
||||||
|
|
||||||
; Spacing between entries
|
|
||||||
; Default: 2
|
|
||||||
;;spacing = 4
|
|
||||||
|
|
||||||
; Available tags:
|
|
||||||
; <label-mounted> (default)
|
|
||||||
; <bar-free>
|
|
||||||
; <bar-used>
|
|
||||||
; <ramp-capacity>
|
|
||||||
format-mounted = <label-mounted>
|
|
||||||
format-mounted-prefix =
|
|
||||||
format-mounted-prefix-foreground = ${color.orange}
|
|
||||||
format-mounted-background = ${color.background}
|
|
||||||
|
|
||||||
; Available tags:
|
|
||||||
; <label-unmounted> (default)
|
|
||||||
format-unmounted = <label-unmounted>
|
|
||||||
format-unmounted-prefix =
|
|
||||||
format-unmounted-prefix-foreground = ${color.red}
|
|
||||||
format-unmounted-background = ${color.background}
|
|
||||||
|
|
||||||
; Available tokens:
|
|
||||||
; %mountpoint%
|
|
||||||
; %type%
|
|
||||||
; %fsname%
|
|
||||||
; %percentage_free%
|
|
||||||
; %percentage_used%
|
|
||||||
; %total%
|
|
||||||
; %free%
|
|
||||||
; %used%
|
|
||||||
; Default: %mountpoint% %percentage_free%%
|
|
||||||
label-mounted = " %free%"
|
|
||||||
|
|
||||||
; Available tokens:
|
|
||||||
; %mountpoint%
|
|
||||||
; Default: %mountpoint% is not mounted
|
|
||||||
label-unmounted = " %mountpoint%: NA"
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
[glyph]
|
|
||||||
gleft =
|
|
||||||
gright =
|
|
||||||
|
|
||||||
[module/left1]
|
|
||||||
type = custom/text
|
|
||||||
content-background = #002d333f
|
|
||||||
content-foreground = ${color.background}
|
|
||||||
content = ${glyph.gleft}
|
|
||||||
content-font = 2
|
|
||||||
|
|
||||||
[module/right1]
|
|
||||||
type = custom/text
|
|
||||||
content-background = #002d333f
|
|
||||||
content-foreground = ${color.background}
|
|
||||||
content = ${glyph.gright}
|
|
||||||
content-font = 2
|
|
||||||
@@ -1,120 +0,0 @@
|
|||||||
[module/i3]
|
|
||||||
type = internal/i3
|
|
||||||
|
|
||||||
; Only show workspaces defined on the same output as the bar
|
|
||||||
;
|
|
||||||
; Useful if you want to show monitor specific workspaces
|
|
||||||
; on different bars
|
|
||||||
;
|
|
||||||
; Default: false
|
|
||||||
pin-workspaces = true
|
|
||||||
|
|
||||||
; This will split the workspace name on ':'
|
|
||||||
; Default: false
|
|
||||||
;;strip-wsnumbers = true
|
|
||||||
|
|
||||||
; Sort the workspaces by index instead of the default
|
|
||||||
; sorting that groups the workspaces by output
|
|
||||||
; Default: false
|
|
||||||
;;index-sort = true
|
|
||||||
|
|
||||||
; Create click handler used to focus workspace
|
|
||||||
; Default: true
|
|
||||||
;;enable-click = false
|
|
||||||
|
|
||||||
; Create scroll handlers used to cycle workspaces
|
|
||||||
; Default: true
|
|
||||||
;;enable-scroll = false
|
|
||||||
|
|
||||||
; Wrap around when reaching the first/last workspace
|
|
||||||
; Default: true
|
|
||||||
;;wrapping-scroll = false
|
|
||||||
|
|
||||||
; Set the scroll cycle direction
|
|
||||||
; Default: true
|
|
||||||
;;reverse-scroll = false
|
|
||||||
|
|
||||||
; Use fuzzy (partial) matching on labels when assigning
|
|
||||||
; icons to workspaces
|
|
||||||
; Example: code;♚ will apply the icon to all workspaces
|
|
||||||
; containing 'code' in the label
|
|
||||||
; Default: false
|
|
||||||
;;fuzzy-match = true
|
|
||||||
|
|
||||||
; ws-icon-[0-9]+ = label;icon
|
|
||||||
; NOTE: The label needs to match the name of the i3 workspace
|
|
||||||
ws-icon-0 = 1;
|
|
||||||
ws-icon-1 = 2;
|
|
||||||
ws-icon-2 = 3;
|
|
||||||
ws-icon-3 = 4;
|
|
||||||
ws-icon-4 = 5;
|
|
||||||
ws-icon-5 = 6;
|
|
||||||
ws-icon-6 = 7;
|
|
||||||
ws-icon-7 = 8;
|
|
||||||
ws-icon-8 = 9;
|
|
||||||
ws-icon-9 = 10;
|
|
||||||
ws-icon-default =
|
|
||||||
; NOTE: You cannot skip icons, e.g. to get a ws-icon-6
|
|
||||||
; you must also define a ws-icon-5.
|
|
||||||
|
|
||||||
; Available tags:
|
|
||||||
; <label-state> (default) - gets replaced with <label-(focused|unfocused|visible|urgent)>
|
|
||||||
; <label-mode> (default)
|
|
||||||
format = <label-state><label-mode>
|
|
||||||
|
|
||||||
; Available tokens:
|
|
||||||
; %mode%
|
|
||||||
; Default: %mode%
|
|
||||||
label-mode = %mode%
|
|
||||||
label-mode-padding = 1
|
|
||||||
label-mode-background = ${color.background}
|
|
||||||
label-mode-foreground = ${color.foreground}
|
|
||||||
|
|
||||||
; Available tokens:
|
|
||||||
; %name%
|
|
||||||
; %icon%
|
|
||||||
; %index%
|
|
||||||
; %output%
|
|
||||||
; Default: %icon% %name%]
|
|
||||||
label-focused = %icon%
|
|
||||||
label-focused-foreground = ${color.green}
|
|
||||||
label-focused-background = ${color.background}
|
|
||||||
label-focused-underline = ${color.green}
|
|
||||||
label-focused-padding = 1
|
|
||||||
|
|
||||||
; Available tokens:
|
|
||||||
; %name%
|
|
||||||
; %icon%
|
|
||||||
; %index%
|
|
||||||
; %output%
|
|
||||||
; Default: %icon% %name%
|
|
||||||
label-unfocused = %icon%
|
|
||||||
label-unfocused-padding = 1
|
|
||||||
label-unfocused-background = ${color.background}
|
|
||||||
; label-unfocused-underline = ${color.blue}
|
|
||||||
; Available tokens:
|
|
||||||
; %name%
|
|
||||||
; %icon%
|
|
||||||
; %index%
|
|
||||||
; %output%
|
|
||||||
; Default: %icon% %name%
|
|
||||||
label-visible = %icon%
|
|
||||||
label-visible-underline = ${color.purple}
|
|
||||||
label-visible-padding = 1
|
|
||||||
label-visible-foreground = ${color.purple}
|
|
||||||
label-visible-background = ${color.background}
|
|
||||||
; Available tokens:
|
|
||||||
; %name%
|
|
||||||
; %icon%
|
|
||||||
; %index%
|
|
||||||
; %output%
|
|
||||||
; Default: %icon% %name%
|
|
||||||
label-urgent = %icon%
|
|
||||||
label-urgent-foreground = ${color.red}
|
|
||||||
label-urgent-background = ${color.background}
|
|
||||||
label-urgent-padding = 1
|
|
||||||
|
|
||||||
; Separator in between workspaces
|
|
||||||
;;label-separator = |
|
|
||||||
;;label-separator-padding = 2
|
|
||||||
;;label-separator-foreground = #ffb52a
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
[module/keyboard]
|
|
||||||
type = internal/xkeyboard
|
|
||||||
|
|
||||||
; List of indicators to ignore
|
|
||||||
blacklist-0 = num lock
|
|
||||||
blacklist-1 = scroll lock
|
|
||||||
|
|
||||||
; Available tags:
|
|
||||||
; <label-layout> (default)
|
|
||||||
; <label-indicator> (default)
|
|
||||||
format = <label-layout> <label-indicator>
|
|
||||||
format-prefix =
|
|
||||||
format-prefix-foreground = ${color.cyan}
|
|
||||||
format-foreground = ${color.foreground}
|
|
||||||
format-background = ${color.background}
|
|
||||||
; Available tokens:
|
|
||||||
; %layout%
|
|
||||||
; %name%
|
|
||||||
; %number%
|
|
||||||
; Default: %layout%
|
|
||||||
label-layout = " %layout%"
|
|
||||||
|
|
||||||
; Available tokens:
|
|
||||||
; %name%
|
|
||||||
; Default: %name%
|
|
||||||
label-indicator-on = "%name%"
|
|
||||||
label-indicator-on-foreground = ${color.cyan}
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
[module/memory]
|
|
||||||
type = internal/memory
|
|
||||||
|
|
||||||
; Seconds to sleep between updates
|
|
||||||
; Default: 1
|
|
||||||
interval = 1
|
|
||||||
|
|
||||||
; Available tags:
|
|
||||||
; <label> (default)
|
|
||||||
; <bar-used>
|
|
||||||
; <bar-free>
|
|
||||||
; <ramp-used>
|
|
||||||
; <ramp-free>
|
|
||||||
; <bar-swap-used>
|
|
||||||
; <bar-swap-free>
|
|
||||||
; <ramp-swap-used>
|
|
||||||
; <ramp-swap-free>
|
|
||||||
format = <label>
|
|
||||||
format-prefix =
|
|
||||||
format-prefix-foreground = ${color.purple}
|
|
||||||
format-background = ${color.background}
|
|
||||||
|
|
||||||
; Available tokens:
|
|
||||||
; %percentage_used% (default)
|
|
||||||
; %percentage_free%
|
|
||||||
; %gb_used%
|
|
||||||
; %gb_free%
|
|
||||||
; %gb_total%
|
|
||||||
; %mb_used%
|
|
||||||
; %mb_free%
|
|
||||||
; %mb_total%
|
|
||||||
; %percentage_swap_used%
|
|
||||||
; %percentage_swap_free%
|
|
||||||
; %mb_swap_total%
|
|
||||||
; %mb_swap_free%
|
|
||||||
; %mb_swap_used%
|
|
||||||
; %gb_swap_total%
|
|
||||||
; %gb_swap_free%
|
|
||||||
; %gb_swap_used%
|
|
||||||
|
|
||||||
label = " %gb_used%"
|
|
||||||
|
|
||||||
; Only applies if <ramp-used> is used
|
|
||||||
;;ramp-used-0 = ${memory.used0}
|
|
||||||
;;ramp-used-1 = ${memory.used1}
|
|
||||||
;;ramp-used-2 = ${memory.used2}
|
|
||||||
|
|
||||||
; Only applies if <ramp-free> is used
|
|
||||||
;;ramp-free-0 = ${memory.free0}
|
|
||||||
;;ramp-free-1 = ${memory.free1}
|
|
||||||
;;ramp-free-2 = ${memory.free2}
|
|
||||||
@@ -1,96 +0,0 @@
|
|||||||
[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 = 1
|
|
||||||
|
|
||||||
; 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 = <label-song> <icon-prev> <toggle> <icon-next>
|
|
||||||
format-online-prefix = " "
|
|
||||||
format-online-prefix-foreground = ${color.green}
|
|
||||||
format-online-background = ${color.background}
|
|
||||||
;format-playing = ${self.format-online}
|
|
||||||
;format-paused = ${self.format-online}
|
|
||||||
;fformat-stopped = ${self.format-online}
|
|
||||||
|
|
||||||
; Available tags:
|
|
||||||
; <label-offline>
|
|
||||||
format-offline = <label-offline>
|
|
||||||
format-offline-prefix =
|
|
||||||
format-offline-prefix-foreground = ${color.red}
|
|
||||||
format-offline-background = ${color.background}
|
|
||||||
; Available tokens:
|
|
||||||
; %artist%
|
|
||||||
; %album-artist%
|
|
||||||
; %album%
|
|
||||||
; %date%
|
|
||||||
; %title%
|
|
||||||
; Default: %artist% - %title%
|
|
||||||
label-song = " %title%"
|
|
||||||
label-song-maxlen = 25
|
|
||||||
label-song-ellipsis = true
|
|
||||||
; Available tokens:
|
|
||||||
; %elapsed%
|
|
||||||
; %total%
|
|
||||||
; Default: %elapsed% / %total%
|
|
||||||
label-time = %elapsed% / %total%
|
|
||||||
label-time-background = ${color.background-alt}
|
|
||||||
label-time-padding = 1
|
|
||||||
|
|
||||||
; Available tokens:
|
|
||||||
; None
|
|
||||||
label-offline = " Offline"
|
|
||||||
|
|
||||||
; Only applies if <icon-X> is used
|
|
||||||
icon-play =
|
|
||||||
icon-play-foreground = ${color.cyan}
|
|
||||||
icon-pause =
|
|
||||||
icon-pause-foreground = ${color.cyan}
|
|
||||||
icon-stop =
|
|
||||||
icon-stop-foreground = ${color.red}
|
|
||||||
icon-next =
|
|
||||||
icon-next-foreground = ${color.cyan}
|
|
||||||
icon-prev =
|
|
||||||
icon-prev-foreground = ${color.cyan}
|
|
||||||
icon-seekf =
|
|
||||||
icon-seekb =
|
|
||||||
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 = ${color.primary}
|
|
||||||
toggle-off-foreground = ${color.red}
|
|
||||||
|
|
||||||
; Only applies if <bar-progress> is used
|
|
||||||
;;bar-progress-width = 45
|
|
||||||
;;bar-progress-indicator = |
|
|
||||||
;;bar-progress-fill = ─
|
|
||||||
;;bar-progress-empty = ─
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user