Compare commits
19 Commits
79886b4e55
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| b0a45417ea | |||
| 3ba75c032a | |||
| 23521892d3 | |||
| e35e3f6249 | |||
| 2dffefbf6f | |||
| 0b540e1ac3 | |||
| fa5d034a83 | |||
| e42d9ba749 | |||
| c0ea9ecf0f | |||
| 4d408701e5 | |||
| 6bca6df972 | |||
| f989f2e613 | |||
| 3ee3bb092d | |||
| 74a761bee3 | |||
| eb90afe921 | |||
| aa687e1591 | |||
| 762318ce88 | |||
| ecefd423fd | |||
| 1e71f20662 |
4
.gitignore
vendored
4
.gitignore
vendored
@@ -1,3 +1,7 @@
|
|||||||
*/colors.css
|
*/colors.css
|
||||||
*/colors.conf
|
*/colors.conf
|
||||||
backups/
|
backups/
|
||||||
|
i3/config
|
||||||
|
sway/config
|
||||||
|
waybar/style.css
|
||||||
|
wofi/style.css
|
||||||
|
|||||||
59
README.md
59
README.md
@@ -26,11 +26,42 @@ Install all packages:
|
|||||||
yay -S $(grep -v '^\s*$' ~/scripts/packages.txt | tr '\n' ' ')
|
yay -S $(grep -v '^\s*$' ~/scripts/packages.txt | tr '\n' ' ')
|
||||||
```
|
```
|
||||||
|
|
||||||
## Linking Configs
|
## Install / Uninstall
|
||||||
|
|
||||||
Pick a window manager section below, then add the shared configs.
|
`install.sh` symlinks configs, sources shell files, and backs up any existing files it would overwrite. `uninstall.sh` reverses the process, removing symlinks and restoring backups.
|
||||||
|
|
||||||
### Hyprland
|
```bash
|
||||||
|
# Install everything (uses Hyprland as the WM)
|
||||||
|
~/scripts/install.sh all
|
||||||
|
|
||||||
|
# Install specific targets
|
||||||
|
~/scripts/install.sh hyprland shell nvim tmux
|
||||||
|
|
||||||
|
# Uninstall specific targets (restores from most recent backup)
|
||||||
|
~/scripts/uninstall.sh nvim shell
|
||||||
|
|
||||||
|
# Uninstall using a specific backup
|
||||||
|
~/scripts/uninstall.sh --backup ~/scripts/backups/20260319_120000 all
|
||||||
|
```
|
||||||
|
|
||||||
|
Available targets: `hyprland`, `sway`, `i3`, `cursor`, `shell`, `alacritty`, `tmux`, `nvim`, `vim`, `all`.
|
||||||
|
|
||||||
|
### tmux prerequisite
|
||||||
|
|
||||||
|
Install the plugin manager before running `install.sh tmux`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
|
||||||
|
```
|
||||||
|
|
||||||
|
### Manual linking
|
||||||
|
|
||||||
|
If you prefer to link configs manually instead of using `install.sh`:
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Manual symlink commands</summary>
|
||||||
|
|
||||||
|
#### Hyprland
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ln -sf ~/scripts/hypr ~/.config/hypr
|
ln -sf ~/scripts/hypr ~/.config/hypr
|
||||||
@@ -38,7 +69,7 @@ ln -sf ~/scripts/waybar ~/.config/waybar
|
|||||||
ln -sf ~/scripts/wofi ~/.config/wofi
|
ln -sf ~/scripts/wofi ~/.config/wofi
|
||||||
```
|
```
|
||||||
|
|
||||||
### Sway
|
#### Sway
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ln -sf ~/scripts/sway ~/.config/sway
|
ln -sf ~/scripts/sway ~/.config/sway
|
||||||
@@ -53,7 +84,7 @@ mv ~/scripts/waybar/config ~/scripts/waybar/config.hypr.json
|
|||||||
mv ~/scripts/waybar/waybar_sway_config.json ~/scripts/waybar/config
|
mv ~/scripts/waybar/waybar_sway_config.json ~/scripts/waybar/config
|
||||||
```
|
```
|
||||||
|
|
||||||
### i3
|
#### i3
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ln -sf ~/scripts/i3 ~/.config/i3
|
ln -sf ~/scripts/i3 ~/.config/i3
|
||||||
@@ -61,13 +92,13 @@ ln -sf ~/scripts/i3blocks ~/.config/i3blocks
|
|||||||
ln -sf ~/scripts/i3status ~/.config/i3status
|
ln -sf ~/scripts/i3status ~/.config/i3status
|
||||||
```
|
```
|
||||||
|
|
||||||
### Cursor
|
#### Cursor
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ln -sf ~/scripts/hatsune-miku-windows-linux-cursors/miku-cursor-linux ~/.local/share/icons/"Miku Cursor"
|
ln -sf ~/scripts/hatsune-miku-windows-linux-cursors/miku-cursor-linux ~/.local/share/icons/"Miku Cursor"
|
||||||
```
|
```
|
||||||
|
|
||||||
### Shell
|
#### Shell
|
||||||
|
|
||||||
Add to `~/.bashrc` or `~/.zshrc`:
|
Add to `~/.bashrc` or `~/.zshrc`:
|
||||||
|
|
||||||
@@ -76,7 +107,7 @@ source ~/scripts/bashrc # or zshrc
|
|||||||
export PATH="~/scripts/sh:$PATH"
|
export PATH="~/scripts/sh:$PATH"
|
||||||
```
|
```
|
||||||
|
|
||||||
### Terminals
|
#### Terminals
|
||||||
|
|
||||||
**Alacritty** - add to `~/.config/alacritty/alacritty.toml`:
|
**Alacritty** - add to `~/.config/alacritty/alacritty.toml`:
|
||||||
|
|
||||||
@@ -86,13 +117,7 @@ import = ["~/scripts/alacritty.toml"]
|
|||||||
|
|
||||||
**Kitty** - kitty.conf is used directly by the WM configs.
|
**Kitty** - kitty.conf is used directly by the WM configs.
|
||||||
|
|
||||||
### tmux
|
#### tmux
|
||||||
|
|
||||||
Install the plugin manager first:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
|
|
||||||
```
|
|
||||||
|
|
||||||
Add to `~/.tmux.conf`:
|
Add to `~/.tmux.conf`:
|
||||||
|
|
||||||
@@ -100,7 +125,7 @@ Add to `~/.tmux.conf`:
|
|||||||
source ~/scripts/tmux.conf
|
source ~/scripts/tmux.conf
|
||||||
```
|
```
|
||||||
|
|
||||||
### Vim
|
#### Vim
|
||||||
|
|
||||||
Add to `~/.vimrc`:
|
Add to `~/.vimrc`:
|
||||||
|
|
||||||
@@ -108,6 +133,8 @@ Add to `~/.vimrc`:
|
|||||||
source ~/scripts/vimrc
|
source ~/scripts/vimrc
|
||||||
```
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
## Keybindings
|
## Keybindings
|
||||||
|
|
||||||
All window managers and tmux use vim-style <kbd>h</kbd><kbd>j</kbd><kbd>k</kbd><kbd>l</kbd> navigation. `$mod` is the Super key.
|
All window managers and tmux use vim-style <kbd>h</kbd><kbd>j</kbd><kbd>k</kbd><kbd>l</kbd> navigation. `$mod` is the Super key.
|
||||||
|
|||||||
BIN
background.png
Normal file
BIN
background.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.1 MiB |
@@ -15,7 +15,7 @@ monitor=,preferred,auto,1
|
|||||||
|
|
||||||
$terminal = kitty
|
$terminal = kitty
|
||||||
$fileManager = kitty -e ranger
|
$fileManager = kitty -e ranger
|
||||||
$menu = wofi --show run
|
$menu = wofi --show drun
|
||||||
|
|
||||||
###################
|
###################
|
||||||
### CURSOR ###
|
### CURSOR ###
|
||||||
@@ -29,18 +29,15 @@ env = HYPRCURSOR_SIZE,48
|
|||||||
### AUTOSTART ###
|
### AUTOSTART ###
|
||||||
#################
|
#################
|
||||||
|
|
||||||
exec-once = fcitx5
|
exec-once = dex -a
|
||||||
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||||
exec-once = nm-applet
|
|
||||||
exec-once = wl-paste --watch cliphist store
|
exec-once = wl-paste --watch cliphist store
|
||||||
exec-once = dunst
|
exec-once = dunst
|
||||||
exec-once = hypridle # replaces xautolock; configure lock in hypridle.conf
|
exec-once = hypridle
|
||||||
|
exec-once = hyprpaper
|
||||||
|
exec-once = hyprsunset
|
||||||
exec-once = waterfox
|
exec-once = waterfox
|
||||||
exec-once = steam
|
|
||||||
exec-once = surfshark
|
|
||||||
exec-once = waybar
|
exec-once = waybar
|
||||||
# exec-once = volctl # may need a Wayland-compatible tray volume tool
|
|
||||||
# exec-once = pamac-tray # check for Wayland support
|
|
||||||
# NOTE: ff-theme-util and fix_xcursor are X11-specific; drop or find Wayland equivalents
|
# NOTE: ff-theme-util and fix_xcursor are X11-specific; drop or find Wayland equivalents
|
||||||
# Caps<->Escape swap is handled below via input config
|
# Caps<->Escape swap is handled below via input config
|
||||||
|
|
||||||
@@ -49,6 +46,12 @@ exec-once = waybar
|
|||||||
### ENVIRONMENT VARIABLES ###
|
### ENVIRONMENT VARIABLES ###
|
||||||
#############################
|
#############################
|
||||||
|
|
||||||
|
env = XDG_SESSION_TYPE,wayland
|
||||||
|
# NVIDIA-specific env vars — uncomment if running on nvidia:
|
||||||
|
# env = LIBVA_DRIVER_NAME,nvidia
|
||||||
|
# env = GBM_BACKEND,nvidia-drm
|
||||||
|
# env = __GLX_VENDOR_LIBRARY_NAME,nvidia
|
||||||
|
# env = WLR_NO_HARDWARE_CURSORS,1
|
||||||
|
|
||||||
#####################
|
#####################
|
||||||
### LOOK AND FEEL ###
|
### LOOK AND FEEL ###
|
||||||
@@ -64,7 +67,11 @@ general {
|
|||||||
|
|
||||||
resize_on_border = true
|
resize_on_border = true
|
||||||
allow_tearing = false
|
allow_tearing = false
|
||||||
layout = master # closest to i3's stacking default; use dwindle for split
|
layout = dwindle
|
||||||
|
}
|
||||||
|
|
||||||
|
xwayland {
|
||||||
|
force_zero_scaling = true
|
||||||
}
|
}
|
||||||
|
|
||||||
decoration {
|
decoration {
|
||||||
@@ -114,7 +121,7 @@ misc {
|
|||||||
|
|
||||||
input {
|
input {
|
||||||
kb_layout = gb
|
kb_layout = gb
|
||||||
kb_options = caps:swapescape
|
kb_options = caps:swapescape,grp:alt_shift_toggle
|
||||||
follow_mouse = 1
|
follow_mouse = 1
|
||||||
sensitivity = 0
|
sensitivity = 0
|
||||||
}
|
}
|
||||||
@@ -132,11 +139,10 @@ bind = $mod, Return, exec, $terminal
|
|||||||
bind = $mod SHIFT, Q, killactive
|
bind = $mod SHIFT, Q, killactive
|
||||||
|
|
||||||
# Launcher (wofi replaces dmenu)
|
# Launcher (wofi replaces dmenu)
|
||||||
bind = $mod, D, exec, wofi --show run --style ~/scripts/wofi/style.css
|
bind = $mod, D, exec, $menu
|
||||||
# To approximate your dmenu colors, configure wofi's style.css
|
|
||||||
|
|
||||||
# Pavucontrol
|
# Pavucontrol
|
||||||
bind = $mod CTRL, M, exec, pavucontrol
|
bind = $mod CTRL, M, exec, hyprpwcenter
|
||||||
|
|
||||||
# Applications
|
# Applications
|
||||||
bind = $mod, F2, exec, waterfox
|
bind = $mod, F2, exec, waterfox
|
||||||
@@ -144,9 +150,8 @@ bind = $mod, F3, exec, $fileManager
|
|||||||
bind = $mod SHIFT, F3, exec, pcmanfm
|
bind = $mod SHIFT, F3, exec, pcmanfm
|
||||||
bind = $mod, F5, exec, kitty -e mocp
|
bind = $mod, F5, exec, kitty -e mocp
|
||||||
|
|
||||||
# Compositor toggle (picom → hyprland manages its own compositor; these are no-ops)
|
# Toggle window layout between master and dwindle
|
||||||
# bind = $mod, T, exec, pkill picom
|
bind = $mod, T, exec, hyprctl keyword general:layout "$([ "$(hyprctl getoption general:layout -j | grep -o '"str": "[^"]*"' | cut -d'"' -f4)" = "master" ] && echo dwindle || echo master)"
|
||||||
# bind = $mod CTRL, T, exec, picom -b
|
|
||||||
|
|
||||||
# Restart dunst
|
# Restart dunst
|
||||||
bind = $mod SHIFT, D, exec, killall dunst && notify-send 'restart dunst'
|
bind = $mod SHIFT, D, exec, killall dunst && notify-send 'restart dunst'
|
||||||
@@ -169,10 +174,11 @@ bind = $mod, M, exec, pkill -SIGUSR1 waybar
|
|||||||
bind = $mod SHIFT, C, exec, hyprctl reload
|
bind = $mod SHIFT, C, exec, hyprctl reload
|
||||||
|
|
||||||
# Exit Hyprland
|
# Exit Hyprland
|
||||||
bind = $mod SHIFT, E, exec, hyprctl dispatch exit
|
bind = $mod SHIFT, E, exec, hyprshutdown
|
||||||
|
|
||||||
# System mode (replaces i3's $mode_system)
|
# System mode (replaces i3's $mode_system)
|
||||||
# Simple submap equivalent:
|
# Simple submap equivalent:
|
||||||
|
bind = $mod, 0, exec, notify-send -t 5000 "System Mode" "(l)ock (s)uspend (h)ibernate\n(r)eboot (Shift+s) shutdown (e)xit\n\nReturn/Escape to cancel"
|
||||||
bind = $mod, 0, submap, system
|
bind = $mod, 0, submap, system
|
||||||
submap = system
|
submap = system
|
||||||
bind = , L, exec, hyprlock
|
bind = , L, exec, hyprlock
|
||||||
@@ -185,9 +191,11 @@ bind = , R, exec, systemctl reboot
|
|||||||
bind = , R, submap, reset
|
bind = , R, submap, reset
|
||||||
bind = SHIFT, S, exec, systemctl poweroff
|
bind = SHIFT, S, exec, systemctl poweroff
|
||||||
bind = SHIFT, S, submap, reset
|
bind = SHIFT, S, submap, reset
|
||||||
bind = , E, exec, hyprctl dispatch exit
|
bind = , E, exec, hyprshutdown
|
||||||
bind = , E, submap, reset
|
bind = , E, submap, reset
|
||||||
|
bind = , Return, exec, dunstctl close
|
||||||
bind = , Return, submap, reset
|
bind = , Return, submap, reset
|
||||||
|
bind = , Escape, exec, dunstctl close
|
||||||
bind = , Escape, submap, reset
|
bind = , Escape, submap, reset
|
||||||
submap = reset
|
submap = reset
|
||||||
|
|
||||||
@@ -310,8 +318,8 @@ windowrule {
|
|||||||
}
|
}
|
||||||
|
|
||||||
windowrule {
|
windowrule {
|
||||||
name = pavucontrol
|
name = hyprpwcenter
|
||||||
match:class = ^(pavucontrol)$
|
match:class = ^(hyprpwcenter)$
|
||||||
float = on
|
float = on
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
cd "$(dirname "$0")"
|
cd "$(dirname "$0")"
|
||||||
cat colors.conf base > hyprland.conf
|
cat colors.conf base.conf >hyprland.conf
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ monitor=,preferred,auto,1
|
|||||||
|
|
||||||
$terminal = kitty
|
$terminal = kitty
|
||||||
$fileManager = kitty -e ranger
|
$fileManager = kitty -e ranger
|
||||||
$menu = wofi --show run
|
$menu = wofi --show drun
|
||||||
|
|
||||||
###################
|
###################
|
||||||
### CURSOR ###
|
### CURSOR ###
|
||||||
@@ -39,18 +39,15 @@ env = HYPRCURSOR_SIZE,48
|
|||||||
### AUTOSTART ###
|
### AUTOSTART ###
|
||||||
#################
|
#################
|
||||||
|
|
||||||
exec-once = fcitx5
|
exec-once = dex -a
|
||||||
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||||
exec-once = nm-applet
|
|
||||||
exec-once = wl-paste --watch cliphist store
|
exec-once = wl-paste --watch cliphist store
|
||||||
exec-once = dunst
|
exec-once = dunst
|
||||||
exec-once = hypridle # replaces xautolock; configure lock in hypridle.conf
|
exec-once = hypridle
|
||||||
|
exec-once = hyprpaper
|
||||||
|
exec-once = hyprsunset
|
||||||
exec-once = waterfox
|
exec-once = waterfox
|
||||||
exec-once = steam
|
|
||||||
exec-once = surfshark
|
|
||||||
exec-once = waybar
|
exec-once = waybar
|
||||||
# exec-once = volctl # may need a Wayland-compatible tray volume tool
|
|
||||||
# exec-once = pamac-tray # check for Wayland support
|
|
||||||
# NOTE: ff-theme-util and fix_xcursor are X11-specific; drop or find Wayland equivalents
|
# NOTE: ff-theme-util and fix_xcursor are X11-specific; drop or find Wayland equivalents
|
||||||
# Caps<->Escape swap is handled below via input config
|
# Caps<->Escape swap is handled below via input config
|
||||||
|
|
||||||
@@ -59,6 +56,12 @@ exec-once = waybar
|
|||||||
### ENVIRONMENT VARIABLES ###
|
### ENVIRONMENT VARIABLES ###
|
||||||
#############################
|
#############################
|
||||||
|
|
||||||
|
env = XDG_SESSION_TYPE,wayland
|
||||||
|
# NVIDIA-specific env vars — uncomment if running on nvidia:
|
||||||
|
# env = LIBVA_DRIVER_NAME,nvidia
|
||||||
|
# env = GBM_BACKEND,nvidia-drm
|
||||||
|
# env = __GLX_VENDOR_LIBRARY_NAME,nvidia
|
||||||
|
# env = WLR_NO_HARDWARE_CURSORS,1
|
||||||
|
|
||||||
#####################
|
#####################
|
||||||
### LOOK AND FEEL ###
|
### LOOK AND FEEL ###
|
||||||
@@ -74,7 +77,11 @@ general {
|
|||||||
|
|
||||||
resize_on_border = true
|
resize_on_border = true
|
||||||
allow_tearing = false
|
allow_tearing = false
|
||||||
layout = master # closest to i3's stacking default; use dwindle for split
|
layout = dwindle
|
||||||
|
}
|
||||||
|
|
||||||
|
xwayland {
|
||||||
|
force_zero_scaling = true
|
||||||
}
|
}
|
||||||
|
|
||||||
decoration {
|
decoration {
|
||||||
@@ -124,7 +131,7 @@ misc {
|
|||||||
|
|
||||||
input {
|
input {
|
||||||
kb_layout = gb
|
kb_layout = gb
|
||||||
kb_options = caps:swapescape
|
kb_options = caps:swapescape,grp:alt_shift_toggle
|
||||||
follow_mouse = 1
|
follow_mouse = 1
|
||||||
sensitivity = 0
|
sensitivity = 0
|
||||||
}
|
}
|
||||||
@@ -142,11 +149,10 @@ bind = $mod, Return, exec, $terminal
|
|||||||
bind = $mod SHIFT, Q, killactive
|
bind = $mod SHIFT, Q, killactive
|
||||||
|
|
||||||
# Launcher (wofi replaces dmenu)
|
# Launcher (wofi replaces dmenu)
|
||||||
bind = $mod, D, exec, wofi --show run --style ~/scripts/wofi/style.css
|
bind = $mod, D, exec, $menu
|
||||||
# To approximate your dmenu colors, configure wofi's style.css
|
|
||||||
|
|
||||||
# Pavucontrol
|
# Pavucontrol
|
||||||
bind = $mod CTRL, M, exec, pavucontrol
|
bind = $mod CTRL, M, exec, hyprpwcenter
|
||||||
|
|
||||||
# Applications
|
# Applications
|
||||||
bind = $mod, F2, exec, waterfox
|
bind = $mod, F2, exec, waterfox
|
||||||
@@ -154,9 +160,8 @@ bind = $mod, F3, exec, $fileManager
|
|||||||
bind = $mod SHIFT, F3, exec, pcmanfm
|
bind = $mod SHIFT, F3, exec, pcmanfm
|
||||||
bind = $mod, F5, exec, kitty -e mocp
|
bind = $mod, F5, exec, kitty -e mocp
|
||||||
|
|
||||||
# Compositor toggle (picom → hyprland manages its own compositor; these are no-ops)
|
# Toggle window layout between master and dwindle
|
||||||
# bind = $mod, T, exec, pkill picom
|
bind = $mod, T, exec, hyprctl keyword general:layout "$([ "$(hyprctl getoption general:layout -j | grep -o '"str": "[^"]*"' | cut -d'"' -f4)" = "master" ] && echo dwindle || echo master)"
|
||||||
# bind = $mod CTRL, T, exec, picom -b
|
|
||||||
|
|
||||||
# Restart dunst
|
# Restart dunst
|
||||||
bind = $mod SHIFT, D, exec, killall dunst && notify-send 'restart dunst'
|
bind = $mod SHIFT, D, exec, killall dunst && notify-send 'restart dunst'
|
||||||
@@ -179,10 +184,11 @@ bind = $mod, M, exec, pkill -SIGUSR1 waybar
|
|||||||
bind = $mod SHIFT, C, exec, hyprctl reload
|
bind = $mod SHIFT, C, exec, hyprctl reload
|
||||||
|
|
||||||
# Exit Hyprland
|
# Exit Hyprland
|
||||||
bind = $mod SHIFT, E, exec, hyprctl dispatch exit
|
bind = $mod SHIFT, E, exec, hyprshutdown
|
||||||
|
|
||||||
# System mode (replaces i3's $mode_system)
|
# System mode (replaces i3's $mode_system)
|
||||||
# Simple submap equivalent:
|
# Simple submap equivalent:
|
||||||
|
bind = $mod, 0, exec, notify-send -t 5000 "System Mode" "(l)ock (s)uspend (h)ibernate\n(r)eboot (Shift+s) shutdown (e)xit\n\nReturn/Escape to cancel"
|
||||||
bind = $mod, 0, submap, system
|
bind = $mod, 0, submap, system
|
||||||
submap = system
|
submap = system
|
||||||
bind = , L, exec, hyprlock
|
bind = , L, exec, hyprlock
|
||||||
@@ -195,9 +201,11 @@ bind = , R, exec, systemctl reboot
|
|||||||
bind = , R, submap, reset
|
bind = , R, submap, reset
|
||||||
bind = SHIFT, S, exec, systemctl poweroff
|
bind = SHIFT, S, exec, systemctl poweroff
|
||||||
bind = SHIFT, S, submap, reset
|
bind = SHIFT, S, submap, reset
|
||||||
bind = , E, exec, hyprctl dispatch exit
|
bind = , E, exec, hyprshutdown
|
||||||
bind = , E, submap, reset
|
bind = , E, submap, reset
|
||||||
|
bind = , Return, exec, dunstctl close
|
||||||
bind = , Return, submap, reset
|
bind = , Return, submap, reset
|
||||||
|
bind = , Escape, exec, dunstctl close
|
||||||
bind = , Escape, submap, reset
|
bind = , Escape, submap, reset
|
||||||
submap = reset
|
submap = reset
|
||||||
|
|
||||||
@@ -320,8 +328,8 @@ windowrule {
|
|||||||
}
|
}
|
||||||
|
|
||||||
windowrule {
|
windowrule {
|
||||||
name = pavucontrol
|
name = hyprpwcenter
|
||||||
match:class = ^(pavucontrol)$
|
match:class = ^(hyprpwcenter)$
|
||||||
float = on
|
float = on
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
3
hypr/hyprpaper.conf
Normal file
3
hypr/hyprpaper.conf
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
preload = ~/scripts/background.png
|
||||||
|
wallpaper = DP-1,~/scripts/background.png
|
||||||
|
wallpaper = DP-2,~/scripts/background.png
|
||||||
2
i3/base
2
i3/base
@@ -21,7 +21,7 @@ exec --no-startup-id nm-applet
|
|||||||
exec --no-startup-id pamac-tray
|
exec --no-startup-id pamac-tray
|
||||||
exec --no-startup-id clipit
|
exec --no-startup-id clipit
|
||||||
exec --no-startup-id dunst
|
exec --no-startup-id dunst
|
||||||
exec --no-startup-id xautolock -time 30 -locker blurlock
|
exec --no-startup-id xautolock -time 90 -locker blurlock
|
||||||
# exec --no-startup-id nitrogen ~/scripts/background.jpg
|
# exec --no-startup-id nitrogen ~/scripts/background.jpg
|
||||||
# exec --no-startup-id blueman-applet
|
# exec --no-startup-id blueman-applet
|
||||||
# exec_always --no-startup-id sbxkb
|
# exec_always --no-startup-id sbxkb
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ exec --no-startup-id nm-applet
|
|||||||
exec --no-startup-id pamac-tray
|
exec --no-startup-id pamac-tray
|
||||||
exec --no-startup-id clipit
|
exec --no-startup-id clipit
|
||||||
exec --no-startup-id dunst
|
exec --no-startup-id dunst
|
||||||
exec --no-startup-id xautolock -time 30 -locker blurlock
|
exec --no-startup-id xautolock -time 90 -locker blurlock
|
||||||
# exec --no-startup-id nitrogen ~/scripts/background.jpg
|
# exec --no-startup-id nitrogen ~/scripts/background.jpg
|
||||||
# exec --no-startup-id blueman-applet
|
# exec --no-startup-id blueman-applet
|
||||||
# exec_always --no-startup-id sbxkb
|
# exec_always --no-startup-id sbxkb
|
||||||
|
|||||||
@@ -100,11 +100,11 @@ install_cursor() {
|
|||||||
|
|
||||||
install_shell() {
|
install_shell() {
|
||||||
echo "Installing shell configs..."
|
echo "Installing shell configs..."
|
||||||
if [ -f "$HOME/.zshrc" ] || [ "$SHELL" = *zsh* ]; then
|
if [ -f "$HOME/.zshrc" ] || [[ "$SHELL" == *zsh* ]]; then
|
||||||
append_if_missing "$HOME/.zshrc" "source ~/scripts/zshrc"
|
append_if_missing "$HOME/.zshrc" "source ~/scripts/zshrc"
|
||||||
append_if_missing "$HOME/.zshrc" 'export PATH="$HOME/scripts/sh:$PATH"'
|
append_if_missing "$HOME/.zshrc" 'export PATH="$HOME/scripts/sh:$PATH"'
|
||||||
fi
|
fi
|
||||||
if [ -f "$HOME/.bashrc" ] || [ "$SHELL" = *bash* ]; then
|
if [ -f "$HOME/.bashrc" ] || [[ "$SHELL" == *bash* ]]; then
|
||||||
append_if_missing "$HOME/.bashrc" "source ~/scripts/bashrc"
|
append_if_missing "$HOME/.bashrc" "source ~/scripts/bashrc"
|
||||||
append_if_missing "$HOME/.bashrc" 'export PATH="$HOME/scripts/sh:$PATH"'
|
append_if_missing "$HOME/.bashrc" 'export PATH="$HOME/scripts/sh:$PATH"'
|
||||||
fi
|
fi
|
||||||
|
|||||||
12
nvim/.luarc.json
Normal file
12
nvim/.luarc.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"runtime": {
|
||||||
|
"version": "LuaJIT"
|
||||||
|
},
|
||||||
|
"diagnostics": {
|
||||||
|
"globals": ["vim", "LazyVim", "Snacks"]
|
||||||
|
},
|
||||||
|
"workspace": {
|
||||||
|
"library": ["${3rd}/luv/library"],
|
||||||
|
"checkThirdParty": false
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,18 @@
|
|||||||
# 💤 LazyVim
|
# Personal Neovim Config
|
||||||
|
|
||||||
A starter template for [LazyVim](https://github.com/LazyVim/LazyVim).
|
My personal Neovim configuration built on [LazyVim](https://github.com/LazyVim/LazyVim).
|
||||||
Refer to the [documentation](https://lazyvim.github.io/installation) to get started.
|
|
||||||
|
## Current Setup
|
||||||
|
|
||||||
|
- **Base**: LazyVim with Gruvbox colorscheme
|
||||||
|
- **AI**: Claude Code integration (`claudecode.nvim`)
|
||||||
|
- **UI**: Snacks dashboard (custom STP banner), Which-Key (helix preset)
|
||||||
|
- **Languages**: TypeScript, Vue, Python, Go, SQL, Tailwind, Docker
|
||||||
|
- **Extras**: mini-surround, Prettier formatting, git extras
|
||||||
|
|
||||||
|
## Suggested Plugins to Add
|
||||||
|
|
||||||
|
- **vim-fugitive** or **neogit** - deeper git workflow beyond LazyVim's built-in gitsigns
|
||||||
|
- **nvim-lint** - async linting beyond what LSP provides
|
||||||
|
- **oil.nvim** - file explorer that works like a buffer (edit filesystem like text)
|
||||||
|
- **zen-mode.nvim** - distraction-free writing/coding
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
{
|
{
|
||||||
"extras": [
|
"extras": [
|
||||||
"lazyvim.plugins.extras.ai.claudecode",
|
|
||||||
"lazyvim.plugins.extras.ai.copilot",
|
|
||||||
"lazyvim.plugins.extras.coding.mini-surround",
|
"lazyvim.plugins.extras.coding.mini-surround",
|
||||||
"lazyvim.plugins.extras.editor.dial",
|
"lazyvim.plugins.extras.dap.core",
|
||||||
|
"lazyvim.plugins.extras.dap.nlua",
|
||||||
"lazyvim.plugins.extras.formatting.prettier",
|
"lazyvim.plugins.extras.formatting.prettier",
|
||||||
"lazyvim.plugins.extras.lang.docker",
|
"lazyvim.plugins.extras.lang.docker",
|
||||||
"lazyvim.plugins.extras.lang.git",
|
"lazyvim.plugins.extras.lang.git",
|
||||||
@@ -12,10 +11,7 @@
|
|||||||
"lazyvim.plugins.extras.lang.sql",
|
"lazyvim.plugins.extras.lang.sql",
|
||||||
"lazyvim.plugins.extras.lang.tailwind",
|
"lazyvim.plugins.extras.lang.tailwind",
|
||||||
"lazyvim.plugins.extras.lang.typescript",
|
"lazyvim.plugins.extras.lang.typescript",
|
||||||
"lazyvim.plugins.extras.lang.vue",
|
"lazyvim.plugins.extras.lang.vue"
|
||||||
"lazyvim.plugins.extras.ui.edgy",
|
|
||||||
"lazyvim.plugins.extras.util.dot",
|
|
||||||
"lazyvim.plugins.extras.util.gitui"
|
|
||||||
],
|
],
|
||||||
"install_version": 8,
|
"install_version": 8,
|
||||||
"news": {
|
"news": {
|
||||||
|
|||||||
@@ -6,3 +6,12 @@
|
|||||||
--
|
--
|
||||||
-- Or remove existing autocmds by their group name (which is prefixed with `lazyvim_` for the defaults)
|
-- Or remove existing autocmds by their group name (which is prefixed with `lazyvim_` for the defaults)
|
||||||
-- e.g. vim.api.nvim_del_augroup_by_name("lazyvim_wrap_spell")
|
-- e.g. vim.api.nvim_del_augroup_by_name("lazyvim_wrap_spell")
|
||||||
|
|
||||||
|
-- When opening multiple files, tile them vertically (side by side)
|
||||||
|
vim.api.nvim_create_autocmd("VimEnter", {
|
||||||
|
callback = function()
|
||||||
|
if vim.fn.argc() == 2 then
|
||||||
|
vim.cmd("vertical ball")
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|||||||
@@ -1,3 +1,15 @@
|
|||||||
-- Keymaps are automatically loaded on the VeryLazy event
|
-- Keymaps are automatically loaded on the VeryLazy event
|
||||||
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
|
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
|
||||||
-- Add any additional keymaps here
|
-- Add any additional keymaps here
|
||||||
|
|
||||||
|
-- Terminal: open relative to current window (don't squash explorer) and smaller
|
||||||
|
local terminal_opts = {
|
||||||
|
cwd = LazyVim.root(),
|
||||||
|
win = { position = "bottom", height = 0.3, relative = "win" },
|
||||||
|
}
|
||||||
|
vim.keymap.set({ "n", "t" }, "<c-/>", function()
|
||||||
|
Snacks.terminal(nil, terminal_opts)
|
||||||
|
end, { desc = "Terminal (Root Dir)" })
|
||||||
|
vim.keymap.set({ "n", "t" }, "<c-_>", function()
|
||||||
|
Snacks.terminal(nil, terminal_opts)
|
||||||
|
end, { desc = "which_key_ignore" })
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
-- Options are automatically loaded before lazy.nvim startup
|
-- Options are automatically loaded before lazy.nvim startup
|
||||||
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
|
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
|
||||||
-- Add any additional options here
|
-- Add any additional options here
|
||||||
|
vim.opt.tabstop = 4
|
||||||
|
vim.opt.shiftwidth = 4
|
||||||
|
vim.opt.softtabstop = 4
|
||||||
|
|||||||
8
nvim/lua/plugins/autopairs.lua
Normal file
8
nvim/lua/plugins/autopairs.lua
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"windwp/nvim-autopairs",
|
||||||
|
event = "InsertEnter",
|
||||||
|
opts = {},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
64
nvim/lua/plugins/claudecode.lua
Normal file
64
nvim/lua/plugins/claudecode.lua
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"coder/claudecode.nvim",
|
||||||
|
dependencies = { "folke/snacks.nvim" },
|
||||||
|
opts = {
|
||||||
|
terminal = {
|
||||||
|
provider = "snacks",
|
||||||
|
snacks_win_opts = {
|
||||||
|
relative = "win",
|
||||||
|
position = "bottom",
|
||||||
|
height = 0.3,
|
||||||
|
split_width_percentage = 0.99,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
diff_opts = {
|
||||||
|
layout = "vertical",
|
||||||
|
open_in_new_tab = true,
|
||||||
|
keep_terminal_focus = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
keys = {
|
||||||
|
{ "<leader>a", "", desc = "+ai", mode = { "n", "v" } },
|
||||||
|
{ "<leader>ac", "<cmd>ClaudeCode<cr>", desc = "Toggle Claude" },
|
||||||
|
{ "<leader>af", "<cmd>ClaudeCodeFocus<cr>", desc = "Focus Claude" },
|
||||||
|
{ "<leader>ar", "<cmd>ClaudeCode --resume<cr>", desc = "Resume Claude" },
|
||||||
|
{ "<leader>aC", "<cmd>ClaudeCode --continue<cr>", desc = "Continue Claude" },
|
||||||
|
{ "<leader>ab", "<cmd>ClaudeCodeAdd %<cr>", desc = "Add current buffer" },
|
||||||
|
{ "<leader>as", "<cmd>ClaudeCodeSend<cr>", mode = "v", desc = "Send to Claude" },
|
||||||
|
{
|
||||||
|
"<leader>as",
|
||||||
|
"<cmd>ClaudeCodeTreeAdd<cr>",
|
||||||
|
desc = "Add file",
|
||||||
|
ft = { "NvimTree", "neo-tree", "oil" },
|
||||||
|
},
|
||||||
|
-- Diff management
|
||||||
|
{ "<leader>aa", "<cmd>ClaudeCodeDiffAccept<cr>", desc = "Accept diff" },
|
||||||
|
{ "<leader>ad", "<cmd>ClaudeCodeDiffDeny<cr>", desc = "Deny diff" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Disabled: unmaintained
|
||||||
|
{
|
||||||
|
"greggh/claude-code.nvim",
|
||||||
|
enabled = false,
|
||||||
|
dependencies = { "nvim-lua/plenary.nvim" },
|
||||||
|
opts = {
|
||||||
|
position = "float",
|
||||||
|
float_opts = {
|
||||||
|
relative = "win",
|
||||||
|
width = "80%",
|
||||||
|
height = "80%",
|
||||||
|
row = "center",
|
||||||
|
col = "center",
|
||||||
|
border = "rounded",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
keys = {
|
||||||
|
{ "<leader>a", nil, desc = "AI/Claude Code" },
|
||||||
|
{ "<leader>ac", "<cmd>ClaudeCode<cr>", desc = "Toggle Claude" },
|
||||||
|
{ "<leader>ar", "<cmd>ClaudeCodeResume<cr>", desc = "Resume Claude" },
|
||||||
|
{ "<leader>aC", "<cmd>ClaudeCodeContinue<cr>", desc = "Continue Claude" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
37
nvim/lua/plugins/colorscheme.lua
Normal file
37
nvim/lua/plugins/colorscheme.lua
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"nyoom-engineering/oxocarbon.nvim",
|
||||||
|
lazy = false,
|
||||||
|
priority = 1000,
|
||||||
|
config = function()
|
||||||
|
vim.opt.background = "dark"
|
||||||
|
vim.cmd("colorscheme oxocarbon")
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sainnhe/sonokai",
|
||||||
|
opts = {
|
||||||
|
sonokai_style = "atlantis",
|
||||||
|
sonokai_transparent_background = 1,
|
||||||
|
sonokai_enable_italic = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"folke/tokyonight.nvim",
|
||||||
|
opts = {
|
||||||
|
style = "night",
|
||||||
|
transparent = true,
|
||||||
|
styles = { comments = { italic = true } },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"loctvl842/monokai-pro.nvim",
|
||||||
|
opts = {
|
||||||
|
transparent_background = true,
|
||||||
|
filter = "spectrum",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{ "scottmckendry/cyberdream.nvim" },
|
||||||
|
{ "maxmx03/fluoromachine.nvim" },
|
||||||
|
{ "rafamadriz/neon" },
|
||||||
|
}
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
return {
|
|
||||||
{ "ellisonleao/gruvbox.nvim" },
|
|
||||||
{
|
|
||||||
"LazyVim/LazyVim",
|
|
||||||
opts = {
|
|
||||||
colorscheme = "gruvbox",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"kawre/leetcode.nvim",
|
|
||||||
dependencies = {
|
|
||||||
"nvim-lua/plenary.nvim",
|
|
||||||
"MunifTanjim/nui.nvim",
|
|
||||||
},
|
|
||||||
opts = {
|
|
||||||
lang = "rust",
|
|
||||||
|
|
||||||
keys = {
|
|
||||||
toggle = { "q" }, ---@type string|string[]
|
|
||||||
confirm = { "<CR>" }, ---@type string|string[]
|
|
||||||
|
|
||||||
reset_testcases = "r", ---@type string
|
|
||||||
use_testcase = "U", ---@type string
|
|
||||||
focus_testcases = "H", ---@type string
|
|
||||||
focus_result = "L", ---@type string
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
-- {
|
|
||||||
-- "yetone/avante.nvim",
|
|
||||||
-- build = vim.fn.has("win32") ~= 0 and "powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false"
|
|
||||||
-- or "make",
|
|
||||||
-- event = "VeryLazy",
|
|
||||||
-- opts = {
|
|
||||||
-- provider = "copilot",
|
|
||||||
-- selection = {
|
|
||||||
-- hint_display = "none",
|
|
||||||
-- },
|
|
||||||
-- behaviour = {
|
|
||||||
-- auto_set_keymaps = false,
|
|
||||||
-- },
|
|
||||||
-- },
|
|
||||||
-- cmd = {
|
|
||||||
-- "AvanteAsk",
|
|
||||||
-- "AvanteBuild",
|
|
||||||
-- "AvanteChat",
|
|
||||||
-- "AvanteClear",
|
|
||||||
-- "AvanteEdit",
|
|
||||||
-- "AvanteFocus",
|
|
||||||
-- "AvanteHistory",
|
|
||||||
-- "AvanteModels",
|
|
||||||
-- "AvanteRefresh",
|
|
||||||
-- "AvanteShowRepoMap",
|
|
||||||
-- "AvanteStop",
|
|
||||||
-- "AvanteSwitchProvider",
|
|
||||||
-- "AvanteToggle",
|
|
||||||
-- },
|
|
||||||
-- keys = {
|
|
||||||
-- { "<leader>aa", "<cmd>AvanteAsk<CR>", desc = "Ask Avante" },
|
|
||||||
-- { "<leader>ac", "<cmd>AvanteChat<CR>", desc = "Chat with Avante" },
|
|
||||||
-- { "<leader>ae", "<cmd>AvanteEdit<CR>", desc = "Edit Avante" },
|
|
||||||
-- { "<leader>af", "<cmd>AvanteFocus<CR>", desc = "Focus Avante" },
|
|
||||||
-- { "<leader>ah", "<cmd>AvanteHistory<CR>", desc = "Avante History" },
|
|
||||||
-- { "<leader>am", "<cmd>AvanteModels<CR>", desc = "Select Avante Model" },
|
|
||||||
-- { "<leader>an", "<cmd>AvanteChatNew<CR>", desc = "New Avante Chat" },
|
|
||||||
-- { "<leader>ap", "<cmd>AvanteSwitchProvider<CR>", desc = "Switch Avante Provider" },
|
|
||||||
-- { "<leader>ar", "<cmd>AvanteRefresh<CR>", desc = "Refresh Avante" },
|
|
||||||
-- { "<leader>as", "<cmd>AvanteStop<CR>", desc = "Stop Avante" },
|
|
||||||
-- { "<leader>at", "<cmd>AvanteToggle<CR>", desc = "Toggle Avante" },
|
|
||||||
-- },
|
|
||||||
-- },
|
|
||||||
}
|
|
||||||
54
nvim/lua/plugins/harpoon.lua
Normal file
54
nvim/lua/plugins/harpoon.lua
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"ThePrimeagen/harpoon",
|
||||||
|
branch = "harpoon2",
|
||||||
|
dependencies = { "nvim-lua/plenary.nvim" },
|
||||||
|
opts = {},
|
||||||
|
keys = {
|
||||||
|
{
|
||||||
|
"<leader>h",
|
||||||
|
function()
|
||||||
|
require("harpoon"):list():add()
|
||||||
|
end,
|
||||||
|
desc = "Harpoon Add File",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<C-e>",
|
||||||
|
function()
|
||||||
|
local harpoon = require("harpoon")
|
||||||
|
harpoon.ui:toggle_quick_menu(harpoon:list())
|
||||||
|
end,
|
||||||
|
desc = "Harpoon Quick Menu",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<C-1>",
|
||||||
|
function()
|
||||||
|
require("harpoon"):list():select(1)
|
||||||
|
end,
|
||||||
|
desc = "Harpoon File 1",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<C-2>",
|
||||||
|
function()
|
||||||
|
require("harpoon"):list():select(2)
|
||||||
|
end,
|
||||||
|
desc = "Harpoon File 2",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<C-3>",
|
||||||
|
function()
|
||||||
|
require("harpoon"):list():select(3)
|
||||||
|
end,
|
||||||
|
desc = "Harpoon File 3",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<C-4>",
|
||||||
|
function()
|
||||||
|
require("harpoon"):list():select(4)
|
||||||
|
end,
|
||||||
|
desc = "Harpoon File 4",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
11
nvim/lua/plugins/markview.lua
Normal file
11
nvim/lua/plugins/markview.lua
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"OXY2DEV/markview.nvim",
|
||||||
|
ft = "markdown",
|
||||||
|
dependencies = {
|
||||||
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
"nvim-tree/nvim-web-devicons",
|
||||||
|
},
|
||||||
|
opts = {},
|
||||||
|
},
|
||||||
|
}
|
||||||
20
nvim/lua/plugins/neogit.lua
Normal file
20
nvim/lua/plugins/neogit.lua
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"NeogitOrg/neogit",
|
||||||
|
dependencies = {
|
||||||
|
"nvim-lua/plenary.nvim",
|
||||||
|
"sindrets/diffview.nvim",
|
||||||
|
},
|
||||||
|
keys = {
|
||||||
|
{ "<leader>gg", function() require("neogit").open() end, desc = "Neogit" },
|
||||||
|
{ "<leader>gc", function() require("neogit").open({ "commit" }) end, desc = "Neogit Commit" },
|
||||||
|
{ "<leader>gl", function() require("neogit").open({ "log" }) end, desc = "Neogit Log" },
|
||||||
|
{ "<leader>gp", function() require("neogit").open({ "push" }) end, desc = "Neogit Push" },
|
||||||
|
},
|
||||||
|
opts = {
|
||||||
|
integrations = {
|
||||||
|
diffview = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
34
nvim/lua/plugins/snacks.lua
Normal file
34
nvim/lua/plugins/snacks.lua
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"snacks.nvim",
|
||||||
|
opts = {
|
||||||
|
dashboard = {
|
||||||
|
preset = {
|
||||||
|
pick = function(cmd, opts)
|
||||||
|
return LazyVim.pick(cmd, opts)()
|
||||||
|
end,
|
||||||
|
header = [[
|
||||||
|
███████╗████████╗██████╗
|
||||||
|
██╔════╝╚══██╔══╝██╔══██╗
|
||||||
|
███████╗ ██║ ██████╔╝
|
||||||
|
╚════██║ ██║ ██╔═══╝
|
||||||
|
███████║ ██║ ██║
|
||||||
|
╚══════╝ ╚═╝ ╚═╝
|
||||||
|
]],
|
||||||
|
-- stylua: ignore
|
||||||
|
keys = {
|
||||||
|
{ icon = " ", key = "f", desc = "Find File", action = ":lua Snacks.dashboard.pick('files')" },
|
||||||
|
{ icon = " ", key = "n", desc = "New File", action = ":ene | startinsert" },
|
||||||
|
{ icon = " ", key = "g", desc = "Find Text", action = ":lua Snacks.dashboard.pick('live_grep')" },
|
||||||
|
{ icon = " ", key = "r", desc = "Recent Files", action = ":lua Snacks.dashboard.pick('oldfiles')" },
|
||||||
|
{ icon = " ", key = "c", desc = "Config", action = ":lua Snacks.dashboard.pick('files', {cwd = vim.fn.stdpath('config')})" },
|
||||||
|
{ icon = " ", key = "s", desc = "Restore Session", section = "session" },
|
||||||
|
{ icon = " ", key = "x", desc = "Lazy Extras", action = ":LazyExtras" },
|
||||||
|
{ icon = " ", key = "l", desc = "Lazy", action = ":Lazy" },
|
||||||
|
{ icon = " ", key = "q", desc = "Quit", action = ":qa" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
11
nvim/lua/plugins/spectre.lua
Normal file
11
nvim/lua/plugins/spectre.lua
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"nvim-pack/nvim-spectre",
|
||||||
|
dependencies = { "nvim-lua/plenary.nvim" },
|
||||||
|
keys = {
|
||||||
|
{ "<leader>sr", function() require("spectre").open() end, desc = "Replace in Files (Spectre)" },
|
||||||
|
{ "<leader>sr", function() require("spectre").open_visual({ select_word = true }) end, mode = "v", desc = "Replace Word (Spectre)" },
|
||||||
|
},
|
||||||
|
opts = {},
|
||||||
|
},
|
||||||
|
}
|
||||||
14
nvim/lua/plugins/todo-comments.lua
Normal file
14
nvim/lua/plugins/todo-comments.lua
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"folke/todo-comments.nvim",
|
||||||
|
event = "VeryLazy",
|
||||||
|
dependencies = { "nvim-lua/plenary.nvim" },
|
||||||
|
opts = {},
|
||||||
|
keys = {
|
||||||
|
{ "]t", function() require("todo-comments").jump_next() end, desc = "Next Todo Comment" },
|
||||||
|
{ "[t", function() require("todo-comments").jump_prev() end, desc = "Prev Todo Comment" },
|
||||||
|
{ "<leader>xt", "<cmd>Trouble todo<cr>", desc = "Todo (Trouble)" },
|
||||||
|
{ "<leader>st", "<cmd>TodoTelescope<cr>", desc = "Todo" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
8
nvim/lua/plugins/undotree.lua
Normal file
8
nvim/lua/plugins/undotree.lua
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"mbbill/undotree",
|
||||||
|
keys = {
|
||||||
|
{ "<leader>cu", "<cmd>UndotreeToggle<cr>", desc = "Undotree Toggle" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
13
nvim/lua/plugins/vimade.lua
Normal file
13
nvim/lua/plugins/vimade.lua
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
return {
|
||||||
|
"TaDaa/vimade",
|
||||||
|
event = "WinNew",
|
||||||
|
opts = {
|
||||||
|
recipe = { "minimalist", { animate = true } },
|
||||||
|
fadelevel = 0.8,
|
||||||
|
blocklist = {
|
||||||
|
claude_terminal = {
|
||||||
|
buf_opts = { ft = "snacks_terminal" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
73
nvim/lua/plugins/whichkey.lua
Normal file
73
nvim/lua/plugins/whichkey.lua
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"folke/which-key.nvim",
|
||||||
|
event = "VeryLazy",
|
||||||
|
opts_extend = { "spec" },
|
||||||
|
opts = {
|
||||||
|
preset = "helix",
|
||||||
|
defaults = {},
|
||||||
|
spec = {
|
||||||
|
{
|
||||||
|
mode = { "n", "x" },
|
||||||
|
{ "<leader><tab>", group = "tabs" },
|
||||||
|
{ "<leader>c", group = "code" },
|
||||||
|
{ "<leader>d", group = "debug" },
|
||||||
|
{ "<leader>dp", group = "profiler" },
|
||||||
|
{ "<leader>f", group = "file/find" },
|
||||||
|
{ "<leader>g", group = "git" },
|
||||||
|
{ "<leader>gh", group = "hunks" },
|
||||||
|
{ "<leader>q", group = "quit/session" },
|
||||||
|
{ "<leader>s", group = "search" },
|
||||||
|
{ "<leader>u", group = "ui" },
|
||||||
|
{ "<leader>x", group = "diagnostics/quickfix" },
|
||||||
|
{ "[", group = "prev" },
|
||||||
|
{ "]", group = "next" },
|
||||||
|
{ "g", group = "goto" },
|
||||||
|
{ "gs", group = "surround" },
|
||||||
|
{ "z", group = "fold" },
|
||||||
|
{
|
||||||
|
"<leader>b",
|
||||||
|
group = "buffer",
|
||||||
|
expand = function()
|
||||||
|
return require("which-key.extras").expand.buf()
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>w",
|
||||||
|
group = "windows",
|
||||||
|
proxy = "<c-w>",
|
||||||
|
expand = function()
|
||||||
|
return require("which-key.extras").expand.win()
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
-- better descriptions
|
||||||
|
{ "gx", desc = "Open with system app" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
keys = {
|
||||||
|
{
|
||||||
|
"<leader>?",
|
||||||
|
function()
|
||||||
|
require("which-key").show({ global = false })
|
||||||
|
end,
|
||||||
|
desc = "Buffer Keymaps (which-key)",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<c-w><space>",
|
||||||
|
function()
|
||||||
|
require("which-key").show({ keys = "<c-w>", loop = true })
|
||||||
|
end,
|
||||||
|
desc = "Window Hydra Mode (which-key)",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
config = function(_, opts)
|
||||||
|
local wk = require("which-key")
|
||||||
|
wk.setup(opts)
|
||||||
|
if not vim.tbl_isempty(opts.defaults) then
|
||||||
|
LazyVim.warn("which-key: opts.defaults is deprecated. Please use opts.spec instead.")
|
||||||
|
wk.register(opts.defaults)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
indent_type = "Spaces"
|
|
||||||
indent_width = 2
|
|
||||||
column_width = 120
|
|
||||||
16
packages.txt
16
packages.txt
@@ -16,9 +16,15 @@ hyprland
|
|||||||
hyprpaper
|
hyprpaper
|
||||||
hypridle
|
hypridle
|
||||||
hyprlock
|
hyprlock
|
||||||
|
hyprsunset
|
||||||
|
hyprshutdown
|
||||||
|
hyprpwcenter
|
||||||
|
hyprlauncher
|
||||||
|
|
||||||
|
dex
|
||||||
|
polkit-gnome
|
||||||
|
|
||||||
waybar
|
waybar
|
||||||
wofi
|
|
||||||
|
|
||||||
grim
|
grim
|
||||||
slurp
|
slurp
|
||||||
@@ -56,7 +62,11 @@ dunst
|
|||||||
cliphist
|
cliphist
|
||||||
inotify-tools
|
inotify-tools
|
||||||
|
|
||||||
pavucontrol
|
fcitx5
|
||||||
|
fcitx5-chinese-addons
|
||||||
|
fcitx5-gtk
|
||||||
|
fcitx5-qt
|
||||||
|
fcitx5-configtool
|
||||||
pipewire
|
pipewire
|
||||||
pipewire-alsa
|
pipewire-alsa
|
||||||
pipewire-audio
|
pipewire-audio
|
||||||
@@ -72,6 +82,8 @@ zed
|
|||||||
vim
|
vim
|
||||||
neovim
|
neovim
|
||||||
|
|
||||||
|
activitywatch-bin
|
||||||
|
|
||||||
ranger
|
ranger
|
||||||
thunar
|
thunar
|
||||||
rar
|
rar
|
||||||
|
|||||||
10
sh/pull_all
Executable file
10
sh/pull_all
Executable file
@@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
for dir in */; do
|
||||||
|
if [ -d "$dir/.git" ]; then
|
||||||
|
echo "Pulling in $dir..."
|
||||||
|
git -C "$dir" pull
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
216
uninstall.sh
Executable file
216
uninstall.sh
Executable file
@@ -0,0 +1,216 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
SCRIPTS_DIR="$HOME/scripts"
|
||||||
|
CONFIG_DIR="$HOME/.config"
|
||||||
|
BACKUP_DIR=""
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
echo "Usage: $(basename "$0") [OPTIONS] <target>..."
|
||||||
|
echo
|
||||||
|
echo "Targets:"
|
||||||
|
echo " hyprland Hyprland + waybar + wofi"
|
||||||
|
echo " sway Sway + waybar + wofi"
|
||||||
|
echo " i3 i3 + i3blocks + i3status"
|
||||||
|
echo " cursor Miku cursor theme"
|
||||||
|
echo " shell Remove sourced bashrc/zshrc and sh/ from PATH"
|
||||||
|
echo " alacritty Remove import from alacritty.toml"
|
||||||
|
echo " tmux Remove sourced tmux.conf"
|
||||||
|
echo " nvim Neovim (LazyVim) config"
|
||||||
|
echo " vim Remove sourced vimrc"
|
||||||
|
echo " all Everything (uses hyprland as WM)"
|
||||||
|
echo
|
||||||
|
echo "Options:"
|
||||||
|
echo " -h, --help Show this help"
|
||||||
|
echo " --backup <dir> Use specific backup directory for restoring"
|
||||||
|
echo " (default: most recent in $SCRIPTS_DIR/backups/)"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Find the backup directory to restore from
|
||||||
|
find_backup() {
|
||||||
|
if [ -n "$BACKUP_DIR" ]; then
|
||||||
|
if [ ! -d "$BACKUP_DIR" ]; then
|
||||||
|
echo "Error: backup directory not found: $BACKUP_DIR"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
local backups_root="$SCRIPTS_DIR/backups"
|
||||||
|
if [ -d "$backups_root" ]; then
|
||||||
|
local latest
|
||||||
|
latest=$(ls -1d "$backups_root"/*/ 2>/dev/null | sort | tail -n1 || true)
|
||||||
|
if [ -n "$latest" ]; then
|
||||||
|
BACKUP_DIR="${latest%/}"
|
||||||
|
echo "Using backup: $BACKUP_DIR"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ -z "$BACKUP_DIR" ]; then
|
||||||
|
echo "No backups found, will only remove without restoring"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Remove a symlink if it points into $SCRIPTS_DIR, then restore from backup if available
|
||||||
|
restore() {
|
||||||
|
local dest="$1"
|
||||||
|
local name
|
||||||
|
name=$(basename "$dest")
|
||||||
|
|
||||||
|
if [ -L "$dest" ]; then
|
||||||
|
local target
|
||||||
|
target=$(readlink "$dest")
|
||||||
|
if [[ "$target" == "$SCRIPTS_DIR"* ]]; then
|
||||||
|
rm "$dest"
|
||||||
|
echo " Removed symlink $dest"
|
||||||
|
else
|
||||||
|
echo " Skipping $dest (symlink does not point into $SCRIPTS_DIR)"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
elif [ -e "$dest" ]; then
|
||||||
|
echo " Skipping $dest (not a symlink, won't remove)"
|
||||||
|
return
|
||||||
|
else
|
||||||
|
echo " $dest does not exist, nothing to remove"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Restore from backup if available
|
||||||
|
if [ -n "$BACKUP_DIR" ] && [ -e "$BACKUP_DIR/$name" ]; then
|
||||||
|
cp -a "$BACKUP_DIR/$name" "$dest"
|
||||||
|
echo " Restored $dest from backup"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Remove exact matching lines from a file
|
||||||
|
remove_line() {
|
||||||
|
local file="$1" line="$2"
|
||||||
|
if [ ! -f "$file" ]; then
|
||||||
|
echo " $file does not exist, nothing to remove"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
if grep -qF "$line" "$file"; then
|
||||||
|
local tmp
|
||||||
|
tmp=$(mktemp)
|
||||||
|
grep -vF "$line" "$file" > "$tmp" || true
|
||||||
|
mv "$tmp" "$file"
|
||||||
|
echo " Removed from $file: $line"
|
||||||
|
# Delete file if only whitespace remains
|
||||||
|
if [ ! -s "$file" ] || ! grep -q '[^[:space:]]' "$file"; then
|
||||||
|
rm "$file"
|
||||||
|
echo " Deleted empty $file"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo " Line not found in $file: $line"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
uninstall_hyprland() {
|
||||||
|
echo "Uninstalling Hyprland configs..."
|
||||||
|
restore "$CONFIG_DIR/hypr"
|
||||||
|
restore "$CONFIG_DIR/waybar"
|
||||||
|
restore "$CONFIG_DIR/wofi"
|
||||||
|
}
|
||||||
|
|
||||||
|
uninstall_sway() {
|
||||||
|
echo "Uninstalling Sway configs..."
|
||||||
|
restore "$CONFIG_DIR/sway"
|
||||||
|
restore "$CONFIG_DIR/waybar"
|
||||||
|
restore "$CONFIG_DIR/wofi"
|
||||||
|
}
|
||||||
|
|
||||||
|
uninstall_i3() {
|
||||||
|
echo "Uninstalling i3 configs..."
|
||||||
|
restore "$CONFIG_DIR/i3"
|
||||||
|
restore "$CONFIG_DIR/i3blocks"
|
||||||
|
restore "$CONFIG_DIR/i3status"
|
||||||
|
}
|
||||||
|
|
||||||
|
uninstall_cursor() {
|
||||||
|
echo "Uninstalling cursor theme..."
|
||||||
|
restore "$HOME/.local/share/icons/Miku Cursor"
|
||||||
|
}
|
||||||
|
|
||||||
|
uninstall_shell() {
|
||||||
|
echo "Uninstalling shell configs..."
|
||||||
|
if [ -f "$HOME/.zshrc" ]; then
|
||||||
|
remove_line "$HOME/.zshrc" "source ~/scripts/zshrc"
|
||||||
|
remove_line "$HOME/.zshrc" 'export PATH="$HOME/scripts/sh:$PATH"'
|
||||||
|
fi
|
||||||
|
if [ -f "$HOME/.bashrc" ]; then
|
||||||
|
remove_line "$HOME/.bashrc" "source ~/scripts/bashrc"
|
||||||
|
remove_line "$HOME/.bashrc" 'export PATH="$HOME/scripts/sh:$PATH"'
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
uninstall_alacritty() {
|
||||||
|
echo "Uninstalling Alacritty config..."
|
||||||
|
local conf="$CONFIG_DIR/alacritty/alacritty.toml"
|
||||||
|
remove_line "$conf" 'import = ["~/scripts/alacritty.toml"]'
|
||||||
|
}
|
||||||
|
|
||||||
|
uninstall_tmux() {
|
||||||
|
echo "Uninstalling tmux config..."
|
||||||
|
remove_line "$HOME/.tmux.conf" "source ~/scripts/tmux.conf"
|
||||||
|
}
|
||||||
|
|
||||||
|
uninstall_nvim() {
|
||||||
|
echo "Uninstalling Neovim config..."
|
||||||
|
restore "$CONFIG_DIR/nvim"
|
||||||
|
}
|
||||||
|
|
||||||
|
uninstall_vim() {
|
||||||
|
echo "Uninstalling vim config..."
|
||||||
|
remove_line "$HOME/.vimrc" "source ~/scripts/vimrc"
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ $# -eq 0 ]; then
|
||||||
|
usage
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
targets=()
|
||||||
|
while [ $# -gt 0 ]; do
|
||||||
|
case "$1" in
|
||||||
|
-h | --help)
|
||||||
|
usage
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
--backup)
|
||||||
|
if [ $# -lt 2 ]; then
|
||||||
|
echo "Error: --backup requires a directory argument"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
BACKUP_DIR="$2"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
all)
|
||||||
|
targets+=(hyprland cursor shell alacritty tmux nvim vim)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
targets+=("$1")
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
find_backup
|
||||||
|
|
||||||
|
for target in "${targets[@]}"; do
|
||||||
|
case "$target" in
|
||||||
|
hyprland) uninstall_hyprland ;;
|
||||||
|
sway) uninstall_sway ;;
|
||||||
|
i3) uninstall_i3 ;;
|
||||||
|
cursor) uninstall_cursor ;;
|
||||||
|
shell) uninstall_shell ;;
|
||||||
|
alacritty) uninstall_alacritty ;;
|
||||||
|
tmux) uninstall_tmux ;;
|
||||||
|
nvim) uninstall_nvim ;;
|
||||||
|
vim) uninstall_vim ;;
|
||||||
|
*)
|
||||||
|
echo "Unknown target: $target"
|
||||||
|
usage
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Done!"
|
||||||
@@ -108,6 +108,21 @@ window#waybar {
|
|||||||
color: @color_tertiary;
|
color: @color_tertiary;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* App launcher buttons */
|
||||||
|
#custom-steam,
|
||||||
|
#custom-waterfox,
|
||||||
|
#custom-discord,
|
||||||
|
#custom-spotify,
|
||||||
|
#custom-obsidian {
|
||||||
|
padding: 0 10px;
|
||||||
|
color: @color_primary;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-steam {
|
||||||
|
margin-left: 8px;
|
||||||
|
border-left: 1px solid @color_tertiary;
|
||||||
|
}
|
||||||
|
|
||||||
#tray {
|
#tray {
|
||||||
padding: 0 8px;
|
padding: 0 8px;
|
||||||
border-left: 1px solid @color_tertiary;
|
border-left: 1px solid @color_tertiary;
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
"height": 30,
|
"height": 30,
|
||||||
"spacing": 0,
|
"spacing": 0,
|
||||||
|
|
||||||
"modules-left": ["hyprland/workspaces", "hyprland/submap"],
|
"modules-left": ["hyprland/workspaces", "hyprland/submap", "custom/steam", "custom/waterfox", "custom/discord", "custom/spotify", "custom/obsidian"],
|
||||||
"modules-right": [
|
"modules-right": [
|
||||||
"custom/greetings",
|
"custom/greetings",
|
||||||
"custom/history",
|
"custom/history",
|
||||||
@@ -111,5 +111,35 @@
|
|||||||
|
|
||||||
"tray": {
|
"tray": {
|
||||||
"spacing": 10
|
"spacing": 10
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/steam": {
|
||||||
|
"format": "Steam",
|
||||||
|
"on-click": "steam",
|
||||||
|
"tooltip-format": "Steam"
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/waterfox": {
|
||||||
|
"format": "Waterfox",
|
||||||
|
"on-click": "waterfox",
|
||||||
|
"tooltip-format": "Waterfox"
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/discord": {
|
||||||
|
"format": "Discord",
|
||||||
|
"on-click": "snap run discord",
|
||||||
|
"tooltip-format": "Discord"
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/spotify": {
|
||||||
|
"format": "Spotify",
|
||||||
|
"on-click": "snap run spotify",
|
||||||
|
"tooltip-format": "Spotify"
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/obsidian": {
|
||||||
|
"format": "Obsidian",
|
||||||
|
"on-click": "obsidian",
|
||||||
|
"tooltip-format": "Obsidian"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -118,6 +118,21 @@ window#waybar {
|
|||||||
color: @color_tertiary;
|
color: @color_tertiary;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* App launcher buttons */
|
||||||
|
#custom-steam,
|
||||||
|
#custom-waterfox,
|
||||||
|
#custom-discord,
|
||||||
|
#custom-spotify,
|
||||||
|
#custom-obsidian {
|
||||||
|
padding: 0 10px;
|
||||||
|
color: @color_primary;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-steam {
|
||||||
|
margin-left: 8px;
|
||||||
|
border-left: 1px solid @color_tertiary;
|
||||||
|
}
|
||||||
|
|
||||||
#tray {
|
#tray {
|
||||||
padding: 0 8px;
|
padding: 0 8px;
|
||||||
border-left: 1px solid @color_tertiary;
|
border-left: 1px solid @color_tertiary;
|
||||||
|
|||||||
Reference in New Issue
Block a user