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:
+14
-18
@@ -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"
|
||||
|
||||
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
|
||||
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)"
|
||||
source "$ZSH"/oh-my-zsh.sh
|
||||
|
||||
alias yayrem="yay -Rn"
|
||||
alias yayrema="yay -Rns"
|
||||
alias yayupd="yay -Syyy"
|
||||
alias yayupg="yay -Syu"
|
||||
alias yaycl="yay -Rns $(yay -Qtdq)"
|
||||
alias yeet="yay -Rn"
|
||||
alias yeeet="yay -Rns"
|
||||
alias yeet_useless="yay -Rns $(yay -Qtdq)"
|
||||
|
||||
# git
|
||||
alias g="git"
|
||||
@@ -45,9 +40,10 @@ alias nv="nvim"
|
||||
alias la="ls -alF"
|
||||
alias h="history|grep"
|
||||
alias c="clear" # I know about ctrl l etc.
|
||||
alias logout="killall -KILL -u key_user"
|
||||
alias files="nautilus"
|
||||
alias helpme="cat ~/.zshrc | less"
|
||||
alias logout="killall -KILL -u $USER"
|
||||
alias files="nemo"
|
||||
alias files.="nemo ."
|
||||
alias help="cat ~/.zshrc | less"
|
||||
|
||||
# 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">
|
||||
<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>
|
||||
</div>
|
||||
[Showcase](#showcase) ·
|
||||
[Information](#information) ·
|
||||
[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>
|
||||
<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>
|
||||
This is the third version of my dotfiles, as I gain more experience I am able to create more profesional dotfiles.
|
||||
|
||||
<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|
|
||||
|-|-|
|
||||
|**Window Manager**|[i3-gaps](https://github.com/Airblader/i3)|
|
||||
|**Terminal Emulator**|[Kitty](https://github.com/kovidgoyal/kitty)|
|
||||
|**Bar**|[Polybar](https://github.com/polybar/polybar)|
|
||||
|**Application Launcher**|[Rofi](https://github.com/davatorium/rofi)|
|
||||
|**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)|
|
||||
### Used themes
|
||||
|
||||
## ⚡ Dependencies
|
||||
|
||||
### Packages
|
||||
* **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
|
||||
**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)
|
||||
|
||||
## 🛠️ Installation
|
||||
**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)
|
||||
|
||||
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.
|
||||
### Dependencies
|
||||
|
||||
### Manual Installation
|
||||
**Base:** acpi alsa-utils base-devel curl git pulseaudio pulseaudio-alsa xorg xorg-xinit
|
||||
|
||||
1. Clone this repository
|
||||
**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|
|
||||
|-|-|
|
||||
|||
|
||||
|nemo & nvim & ranger|-|
|
||||
|||
|
||||
|-|i3lock-color|
|
||||
|||
|
||||
|
||||
## Installation
|
||||
|
||||
### Using install script
|
||||
|
||||
Clone the repository
|
||||
```sh
|
||||
git clone -b v2 --depth 1 https://www.github.com/keyitdev/dotfiles.git
|
||||
```
|
||||
|
||||
2. Install an AUR helper (for example, yay in $HOME/.srcs)
|
||||
```sh
|
||||
mkdir -p $HOME/.srcs
|
||||
git clone https://aur.archlinux.org/yay.git $HOME/.srcs/yay
|
||||
(cd $HOME/.srcs/yay/ && makepkg -si )
|
||||
```
|
||||
|
||||
3. Install packages (see [Dependencies](https://github.com/keyitdev/dotfiles#-dependencies))
|
||||
|
||||
4. Make Light executable
|
||||
```sh
|
||||
sudo chmod +s /usr/bin/light
|
||||
```
|
||||
|
||||
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
|
||||
```
|
||||
|
||||
9. Install GTK Theme
|
||||
```sh
|
||||
git clone https://github.com/EliverLara/ant.git
|
||||
sudo mv ./ant /usr/share/themes
|
||||
```
|
||||
|
||||
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]
|
||||
Current=sddm-astronaut-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)
|
||||
|
||||
### Automated Install
|
||||
|
||||
1. Clone the repository
|
||||
```
|
||||
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
|
||||
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)
|
||||
### Manual Installation
|
||||
|
||||
## 🛠️ 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
|
||||
1. Clone this repository
|
||||
```sh
|
||||
git clone -b v3 --depth 1 https://www.github.com/keyitdev/dotfiles.git
|
||||
```
|
||||
chsh -s /bin/bash
|
||||
sudo chsh -s /bin/bash
|
||||
|
||||
2. Install an AUR helper (for example, `yay` in `"$HOME"/.srcs`)
|
||||
```sh
|
||||
git clone https://aur.archlinux.org/yay.git "$HOME"/.srcs/yay
|
||||
cd "$HOME"/.srcs/yay/ && makepkg -si
|
||||
```
|
||||
5. Remove installed fonts ($HOME/.local/share/fonts/ or /usr/share/fonts/)
|
||||
6. Remove installed scripts (/usr/local/bin)
|
||||
7. Remove this repository
|
||||
|
||||
## 🔑 Keybinds
|
||||
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
|
||||
```
|
||||
|
||||
These are the basic keybinds. Read through the `i3` config for more keybinds.
|
||||
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
|
||||
sudo chmod +s /usr/bin/light
|
||||
chsh -s /bin/zsh
|
||||
sudo chsh -s /bin/zsh
|
||||
nvim +PackerSync
|
||||
fc-cache -fv
|
||||
```
|
||||
|
||||
8. Install sddm flower theme.
|
||||
```sh
|
||||
sudo git clone https://github.com/keyitdev/sddm-flower-theme.git /usr/share/sddm/themes/sddm-flower-theme
|
||||
sudo cp /usr/share/sddm/themes/sddm-flower-theme/Fonts/* /usr/share/fonts/
|
||||
echo "[Theme]
|
||||
Current=sddm-flower-theme" | sudo tee /etc/sddm.conf
|
||||
```
|
||||
|
||||
## Cheat sheet
|
||||
|
||||
|
||||
<details>
|
||||
<summary>Keybinds</summary>
|
||||
|
||||
These are the basic keybinds. Read through the [i3](./config/i3/config) config for more keybinds.
|
||||
|
||||
| Keybind | Function |
|
||||
| ---------------------- | ---------------------------------------- |
|
||||
| `Win + Enter` | Launch terminal (kitty) |
|
||||
| `Win + Enter` | Launch terminal (alacritty) |
|
||||
| `Win + Shift + Q` | Close window |
|
||||
| `Win + Q` | Stacking layout |
|
||||
| `Win + W` | Tabbed layout |
|
||||
| `Win + E` | Default layout |
|
||||
| `Win + A` | Rofi sidebar menu |
|
||||
| `Win + S` | Rofi compact menu |
|
||||
| `Win + D` | Rofi center menu |
|
||||
| `Win + R` | Resize mode |
|
||||
| `Win + T` | Restore layout |
|
||||
| `Win + Y` | Save layout |
|
||||
| `Win + A` | Rofi open windows menu |
|
||||
| `Win + S` | Rofi full menu |
|
||||
| `Win + D` | Rofi menu |
|
||||
| `Win + Z` | Rofi bookmarks |
|
||||
| `Win + X` | Change theme |
|
||||
| `Win + C` | Use screenshot script |
|
||||
| `Win + X` | Rofi powermenu |
|
||||
| `Win + C` | Rofi screenshot script |
|
||||
| `Win + G` | Gaps settings |
|
||||
| `Win + V` | Set vertical 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.
|
||||
|
||||
## 🌈 Colors
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Colors</summary>
|
||||
|
||||
| Color | Hex code |
|
||||
| ---------------------- | ---------------------------------------- |
|
||||
| background | #21222C |
|
||||
| background | #1b1b25 |
|
||||
| background 2 | #282A36 |
|
||||
| background 3 | #343746 |
|
||||
| foreground | #F8F8F2 |
|
||||
| white | #FFFFFF |
|
||||
| black | #15121C |
|
||||
| red | #f07178 |
|
||||
| green | #c3e88d |
|
||||
| yellow | #ffcb6b |
|
||||
| blue | #82aaff |
|
||||
| purple | #c792ea |
|
||||
| cyan | #89ddff |
|
||||
| background 3 | #16161e |
|
||||
| border | #343746 |
|
||||
| foreground | #dedede |
|
||||
| white | #eeffff |
|
||||
| black | #15121c |
|
||||
| red | #cb5760 |
|
||||
| green | #999f63 |
|
||||
| yellow | #d4a067 |
|
||||
| blue | #6c90a8 |
|
||||
| purple | #776690 |
|
||||
| cyan | #528a9b |
|
||||
| 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).
|
||||
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/).
|
||||
## Support and Thankies
|
||||
|
||||
## ✨ 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:
|
||||
* [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)
|
||||
<!-- If you enjoyed it and would like to show your appreciation, you can **tip** using **[kofi]()** or **[paypal]()**. -->
|
||||
|
||||
## 🪪 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
|
||||
+12
-373
@@ -3,433 +3,72 @@
|
||||
# Copyright (C) 2022 Keyitdev
|
||||
|
||||
[global]
|
||||
### Display ###
|
||||
|
||||
# Which monitor should the notifications be displayed on.
|
||||
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
|
||||
|
||||
### Geometry ###
|
||||
|
||||
# dynamic width from 0 to 300
|
||||
# width = (0, 300)
|
||||
# constant width of 300
|
||||
width = (300,400)
|
||||
|
||||
# The maximum height of a single notification, excluding the frame.
|
||||
height = 300
|
||||
|
||||
# Position the notification in the top right corner
|
||||
height = 250
|
||||
origin = top-right
|
||||
|
||||
# Offset from the origin
|
||||
offset = 8x47
|
||||
|
||||
# Show how many messages are currently hidden (because of geometry).
|
||||
indicate_hidden = yes
|
||||
|
||||
# Shrink window if it's smaller than the width. Will be ignored if
|
||||
# width is 0.
|
||||
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
|
||||
|
||||
# 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
|
||||
|
||||
# Draw a line of "separator_height" pixel height between two
|
||||
# notifications.
|
||||
# Set to 0 to disable.
|
||||
separator_height = 2
|
||||
|
||||
# Padding between text and separator.
|
||||
padding = 12
|
||||
|
||||
# Horizontal padding.
|
||||
horizontal_padding = 12
|
||||
|
||||
# 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_width = 2
|
||||
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
|
||||
|
||||
# Sort messages by urgency.
|
||||
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
|
||||
|
||||
### 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.
|
||||
font = Roboto mono 12
|
||||
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
|
||||
|
||||
# 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"
|
||||
|
||||
# Alignment of message text.
|
||||
# Possible values are "left", "center" and "right".
|
||||
alignment = left
|
||||
|
||||
# Vertical alignment of message text and icon.
|
||||
# Possible values are "top", "center" and "bottom".
|
||||
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
|
||||
|
||||
# Split notifications into multiple lines if they don't fit into
|
||||
# geometry.
|
||||
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
|
||||
|
||||
# Ignore newlines '\n' in notifications.
|
||||
ignore_newline = no
|
||||
|
||||
# Stack together notifications with the same content
|
||||
stack_duplicates = false
|
||||
|
||||
# Hide the count of stacked notifications with the same content
|
||||
stack_duplicates = true
|
||||
hide_duplicate_count = false
|
||||
|
||||
# Display indicators for URLs (U) and actions (A).
|
||||
show_indicators = no
|
||||
|
||||
### Icons ###
|
||||
|
||||
# Align icons left/right/off
|
||||
icon_position = left
|
||||
|
||||
# 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
|
||||
min_icon_size = 50
|
||||
max_icon_size = 50
|
||||
|
||||
# Paths to default icons.
|
||||
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
|
||||
|
||||
# Maximum amount of notifications kept in history
|
||||
history_length = 50
|
||||
|
||||
### Misc/Advanced ###
|
||||
|
||||
# dmenu path.
|
||||
dmenu = /usr/bin/dmenu -p dunst:
|
||||
|
||||
# Browser for opening urls in context menu.
|
||||
browser = /usr/bin/sensible-browser
|
||||
|
||||
# Always run rule-defined scripts, even if the notification is suppressed
|
||||
always_run_script = true
|
||||
|
||||
# Define the title of the windows spawned by dunst
|
||||
title = Dunst
|
||||
|
||||
# Define the class of the windows spawned by 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
|
||||
|
||||
# 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
|
||||
|
||||
# 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.
|
||||
corner_radius = 20
|
||||
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
|
||||
|
||||
### 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_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]
|
||||
# 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
|
||||
|
||||
[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 all notifications.
|
||||
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
|
||||
|
||||
# Context menu.
|
||||
context = ctrl+shift+period
|
||||
|
||||
[urgency_low]
|
||||
# IMPORTANT: colors have to be defined in quotation marks.
|
||||
# Otherwise the "#" and following would be interpreted as a comment.
|
||||
background = "#21222C"
|
||||
foreground = "#F8F8F2"
|
||||
background = "#1b1b25"
|
||||
foreground = "#dedede"
|
||||
timeout = 5
|
||||
# Icon for notifications with low urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
[urgency_normal]
|
||||
background = "#21222C"
|
||||
foreground = "#F8F8F2"
|
||||
background = "#1b1b25"
|
||||
foreground = "#dedede"
|
||||
timeout = 5
|
||||
# Icon for notifications with normal urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
[urgency_critical]
|
||||
background = "#21222C"
|
||||
foreground = "#F8F8F2"
|
||||
background = "#1b1b25"
|
||||
foreground = "#dedede"
|
||||
frame_color = "#f07178"
|
||||
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]
|
||||
gtk-icon-theme-name = Papirus
|
||||
gtk-theme-name = Dracula
|
||||
gtk-theme-name = tokyonight_gtk
|
||||
gtk-font-name = Open sans 12
|
||||
gtk-application-prefer-dark-theme = true
|
||||
+27
-20
@@ -13,9 +13,6 @@ font pango:Open sans 11
|
||||
# run picom
|
||||
exec_always --no-startup-id picom &
|
||||
|
||||
# render wallpaper for lockscreen
|
||||
exec_always betterlockscreen -u ~/Pictures/wallpapers/lockscreen.png --display 1 --span &
|
||||
|
||||
# run mpd
|
||||
exec_always --no-startup-id mpd &
|
||||
|
||||
@@ -23,7 +20,7 @@ exec_always --no-startup-id mpd &
|
||||
exec_always --no-startup-id dunst &
|
||||
|
||||
# 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
|
||||
exec_always --no-startup-id killall -q
|
||||
@@ -41,7 +38,7 @@ exec --no-startup-id nm-applet
|
||||
floating_modifier $mod
|
||||
|
||||
# start a terminal
|
||||
bindsym $mod+Return exec kitty
|
||||
bindsym $mod+Return exec alacritty
|
||||
|
||||
# kill focused window
|
||||
bindsym $mod+Shift+q kill
|
||||
@@ -84,6 +81,10 @@ bindsym $mod+q layout stacking
|
||||
bindsym $mod+w layout tabbed
|
||||
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
|
||||
bindsym $mod+Shift+space floating toggle
|
||||
|
||||
@@ -91,7 +92,7 @@ bindsym $mod+Shift+space floating toggle
|
||||
bindsym $mod+space focus mode_toggle
|
||||
|
||||
# run lockscreen
|
||||
bindsym $mod+i exec betterlockscreen -l
|
||||
bindsym $mod+i exec lock
|
||||
|
||||
# monitor settings
|
||||
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
|
||||
|
||||
# run rofi programs
|
||||
bindsym $mod+a exec "rofi -show drun -no-default-config -config ~/.config/rofi/sidebar.rasi"
|
||||
bindsym $mod+d exec "rofi -show drun -no-default-config -config ~/.config/rofi/center.rasi"
|
||||
bindsym $mod+s exec "rofi -show drun -no-default-config -config ~/.config/rofi/compact.rasi"
|
||||
bindsym $mod+z exec "rofi -show -modi ':rofi-bookmarks' -no-default-config -config ~/.config/rofi/compact.rasi"
|
||||
bindsym $mod+x exec "theme"
|
||||
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/main.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/main.rasi"
|
||||
bindsym $mod+c exec "rofi-screenshot"
|
||||
|
||||
# take a screenshot
|
||||
bindsym Pause exec screenshot -crtf
|
||||
bindsym Print exec screenshot -cstf
|
||||
bindsym Pause exec screenshot -sa
|
||||
bindsym Print exec screenshot -sf
|
||||
|
||||
# brightness control
|
||||
exec_always --no-startup-id light -I
|
||||
bindsym XF86MonBrightnessUp exec light -A 2 && light -O# increase screen brightness && brightness &
|
||||
bindsym XF86MonBrightnessDown exec light -U 2 && light -O# decrease screen brightness && brightness &
|
||||
bindsym XF86MonBrightnessUp exec light -A 2 && light -O && 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
|
||||
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 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
|
||||
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
|
||||
|
||||
# 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 + 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 + 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 cap && dunstify -a "Microphone" "Microphone" "Microphone is unmuted" -r 100 -i /usr/local/bin/icons/mic.svg
|
||||
|
||||
# toggle touchpad
|
||||
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
|
||||
bindsym $mod+Shift+c reload
|
||||
|
||||
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||
bindsym $mod+Shift+r restart
|
||||
|
||||
# exit i3 (logs you out of your X session)
|
||||
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
|
||||
|
||||
@@ -221,7 +228,7 @@ bindsym $mod+r mode "resize"
|
||||
### BODERS ###
|
||||
|
||||
#border width
|
||||
default_border pixel 4
|
||||
default_border pixel 2
|
||||
|
||||
#border colors
|
||||
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
|
||||
+60
-62
@@ -1,69 +1,67 @@
|
||||
; 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
|
||||
; Copyright (C) 2022 Keyitdev, Alexander-Miller
|
||||
; Copyright (C) 2022 Keyitdev, Aditya Shakya
|
||||
|
||||
mpd_host = 127.0.0.1
|
||||
mpd_port = 6600
|
||||
### Directories ###
|
||||
ncmpcpp_directory = ~/.config/ncmpcpp
|
||||
lyrics_directory = ~/.config/ncmpcpp/lyrics
|
||||
mpd_music_dir = ~/Music
|
||||
mpd_connection_timeout = 5
|
||||
mpd_host = "localhost"
|
||||
mpd_port = "6600"
|
||||
mpd_crossfade_time = "2"
|
||||
|
||||
### Behaviour ###
|
||||
message_delay_time = 1
|
||||
autocenter_mode = "yes"
|
||||
centered_cursor = "yes"
|
||||
ignore_leading_the = "yes"
|
||||
playlist_disable_highlight_delay = 2
|
||||
allow_for_physical_item_deletion = "no"
|
||||
|
||||
### Visualizer ###
|
||||
visualizer_data_source = /tmp/mpd.fifo
|
||||
visualizer_output_name = fifo output
|
||||
visualizer_in_stereo = yes
|
||||
visualizer_type = spectrum
|
||||
visualizer_color = blue, cyan, green, yellow, magenta, red
|
||||
visualizer_look = xs
|
||||
visualizer_fps = 60
|
||||
visualizer_autoscale = yes
|
||||
visualizer_spectrum_smooth_look = yes
|
||||
playlist_disable_highlight_delay = 3
|
||||
allow_for_physical_item_deletion = yes
|
||||
message_delay_time = 8
|
||||
song_list_format = $(red){%a}$(end) $(blue){%t}$(end) $R $(green){%b}$(end) $(magenta)({%l})$(end)
|
||||
song_status_format = {$2%a$2} {$3%b$3} {$5%t$5}
|
||||
song_library_format = %t
|
||||
song_window_title_format = {%a-%t}
|
||||
song_columns_list_format = (25)[red]{a} (44)[green]{t} (25)[blue]{b} $R(7)[magenta]{l}
|
||||
playlist_display_mode = columns
|
||||
browser_display_mode = columns
|
||||
titles_visibility = yes
|
||||
incremental_seeking = yes
|
||||
autocenter_mode = yes
|
||||
header_visibility = yes
|
||||
statusbar_visibility = yes
|
||||
cyclic_scrolling = yes
|
||||
display_bitrate = yes
|
||||
ignore_leading_the = no
|
||||
enable_window_title = yes
|
||||
progressbar_look = ▬▬▬
|
||||
visualizer_output_name = "mpd_visualizer"
|
||||
visualizer_in_stereo = "yes"
|
||||
visualizer_look = ●●
|
||||
visualizer_type = "ellipse"
|
||||
|
||||
### Appearance ###
|
||||
playlist_display_mode = "columns"
|
||||
browser_display_mode = "columns"
|
||||
colors_enabled = "yes"
|
||||
|
||||
#user_interface = classic
|
||||
user_interface = alternative
|
||||
alternative_header_first_line_format = {$b$2%a$9} {$5%t$9}
|
||||
alternative_header_second_line_format = {$3%b$9} {$4(%y)$9}
|
||||
alternative_ui_separator_color = blue
|
||||
playlist_separate_albums = no
|
||||
colors_enabled = yes
|
||||
empty_tag_color = blue
|
||||
header_window_color = white
|
||||
display_volume_level = yes
|
||||
state_line_color = cyan
|
||||
state_flags_color = magenta
|
||||
main_window_color = green
|
||||
color1 = white
|
||||
color2 = blue
|
||||
progressbar_color = black
|
||||
statusbar_color = cyan
|
||||
window_border_color = red
|
||||
active_window_border = red
|
||||
follow_now_playing_lyrics = yes
|
||||
clock_display_seconds = yes
|
||||
current_item_prefix = >
|
||||
volume_color = "white"
|
||||
|
||||
### Window ###
|
||||
song_window_title_format = "{%a - }{%t}|{%f}"
|
||||
statusbar_visibility = "no"
|
||||
header_visibility = "no"
|
||||
titles_visibility = "no"
|
||||
|
||||
### Progress bar ###
|
||||
progressbar_look = "▂▂▂"
|
||||
progressbar_color = "black"
|
||||
progressbar_elapsed_color = "red"
|
||||
|
||||
### Alternative UI ###
|
||||
alternative_ui_separator_color = "black"
|
||||
alternative_header_first_line_format = $b$5$/b $b$8{%t}|{%f}$/b $/b
|
||||
alternative_header_second_line_format = {$b{$2 %a$9}{ - $7 %b$9}}
|
||||
|
||||
### Song list ###
|
||||
song_status_format = "$7%t"
|
||||
song_list_format = "$(blue){%a}$(end) $(red){%t}$(end)$(red)({%l})$(end)
|
||||
song_library_format = {{%a - %t} (%b)}|{%f}
|
||||
song_columns_list_format = "(49)[white]{tr}$C(5f)[red]{l}(50)[blue]{a}"
|
||||
|
||||
### Colors ###
|
||||
main_window_color = "white"
|
||||
current_item_prefix = >>
|
||||
current_item_suffix = $(end)
|
||||
current_item_inactive_column_prefix = >
|
||||
current_item_inactive_column_suffix = $(end)
|
||||
now_playing_prefix = $b
|
||||
now_playing_suffix = $/b
|
||||
selected_item_prefix = $(white)$b
|
||||
selected_item_suffix = $/b$(end)
|
||||
browser_playlist_prefix = "$2Playlist$9 "
|
||||
modified_item_prefix = ">> "
|
||||
execute_on_song_change = notify-send "Now Playing" "$(mpc current)"
|
||||
current_item_inactive_column_prefix = red
|
||||
current_item_inactive_column_suffix = red
|
||||
color1 = "white"
|
||||
color2 = "red"
|
||||
@@ -1,5 +1,6 @@
|
||||
# See this wiki page for more info:
|
||||
# https://github.com/dylanaraps/neofetch/wiki/Customizing-Info
|
||||
|
||||
print_info() {
|
||||
info title
|
||||
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;
|
||||
fade-in-step = 0.015;
|
||||
fade-out-step = 0.1;
|
||||
@@ -12,3 +16,7 @@ refresh-rate = 0
|
||||
detect-transient = true
|
||||
|
||||
log-level = "debug";
|
||||
|
||||
opacity-rule: [
|
||||
"95:class_g = 'Org.gnome.Nautilus'"
|
||||
];
|
||||
+11
-13
@@ -1,18 +1,16 @@
|
||||
[color]
|
||||
|
||||
background = #21222C
|
||||
background2 = #282A36
|
||||
background3 = #343746
|
||||
foreground = #F8F8F2
|
||||
background = #1b1b25
|
||||
foreground = #dedede
|
||||
sep = #F8F8F2
|
||||
|
||||
white = #FFFFFF
|
||||
black = #15121C
|
||||
red = #f07178
|
||||
green = #c3e88d
|
||||
yellow = #ffcb6b
|
||||
blue = #82aaff
|
||||
purple = #c792ea
|
||||
cyan = #89ddff
|
||||
white = #eeffff
|
||||
black = #15121c
|
||||
red = #cb5760
|
||||
green = #999f63
|
||||
yellow = #d4a067
|
||||
blue = #6c90a8
|
||||
purple = #776690
|
||||
cyan = #528a9b
|
||||
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
|
||||
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
|
||||
|
||||
# Launch Polybar, using default config location ~/.config/polybar/config.ini
|
||||
polybar main --config=~/.config/polybar/polybar-square/config.ini &
|
||||
polybar second --config=~/.config/polybar/polybar-square/config.ini &
|
||||
# Launch Polybar, using default config location ~/.config/polybar/config
|
||||
polybar main --config=~/.config/polybar/config.ini &
|
||||
polybar second --config=~/.config/polybar/config.ini &
|
||||
|
||||
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