Compare commits
10 Commits
364aced182
...
722eabdb52
Author | SHA1 | Date | |
---|---|---|---|
722eabdb52 | |||
fcd975484e | |||
5234d5f1b4 | |||
75358d62ec | |||
2b8fd2a8b2 | |||
78e84534b6 | |||
a5947f065d | |||
2b44f11f79 | |||
8b32ebf9c9 | |||
7c5ef5ccf5 |
27
.bashrc
27
.bashrc
@ -1,22 +1,11 @@
|
|||||||
# ~/.bashrc
|
# ~/.bashrc
|
||||||
clear && myfetch -c 8 -C " █"
|
|
||||||
eval "$(starship init bash)"
|
eval "$(starship init bash)"
|
||||||
[[ $- != *i* ]] && return
|
|
||||||
alias lsd='eza --icons'
|
alias Settings="cd ~/.config && nvim"
|
||||||
alias pacup='sudo pacman -Rns $(pacman -Qdtq)'
|
alias Phone="scrcpy --max-fps=60 --no-audio --keyboard=uhid --mouse=uhid"
|
||||||
alias grep='grep --color=auto'
|
alias Key="cat ~/.ssh/id_rsa.pub"
|
||||||
alias pool='clear && asciiquarium'
|
|
||||||
alias f='clear && myfetch -i e -f -c 16 -C " "'
|
|
||||||
alias bye='sudo shutdown -h now'
|
|
||||||
alias loop='sudo reboot'
|
|
||||||
alias h='dbus-launch Hyprland'
|
|
||||||
alias fonts='fc-list -f "%{family}\n"'
|
|
||||||
alias tasks='btm'
|
|
||||||
alias Docs="cd ~/Documents && nvim"
|
|
||||||
alias Settings="cd ~/.config/hypr && nvim"
|
|
||||||
alias spot="ncspot"
|
|
||||||
alias untar="tar -xf"
|
alias untar="tar -xf"
|
||||||
alias n="nvim"
|
|
||||||
export NVM_DIR="$HOME/.nvm"
|
# For scrcpy
|
||||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
export SDL_VIDEODRIVER=wayland
|
||||||
PS1='[\u@\h \W]\$ '
|
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
[color]
|
|
||||||
gradient = 1
|
|
||||||
gradient_count = 2
|
|
||||||
gradient_color_1 = '#8a897e'
|
|
||||||
gradient_color_2 = '#928d81'
|
|
@ -1,13 +0,0 @@
|
|||||||
[general]
|
|
||||||
color = "magenta"
|
|
||||||
blink = true
|
|
||||||
bold = true
|
|
||||||
|
|
||||||
[position]
|
|
||||||
horizontal = "center"
|
|
||||||
vertical = "center"
|
|
||||||
|
|
||||||
[date]
|
|
||||||
fmt = "%A, %B %d, %Y"
|
|
||||||
use_12h = true
|
|
||||||
hide_seconds = true
|
|
@ -1,9 +1,7 @@
|
|||||||
source = /home/$USER/.cache/wal/colors-hyprland
|
source = /home/$USER/.cache/wal/colors-hyprland
|
||||||
|
|
||||||
monitor = auto, 2560x1440@165, 0x0, 1
|
|
||||||
|
|
||||||
$terminal = kitty
|
$terminal = kitty
|
||||||
$fileManager = thunar
|
$fileManager = kitty -d ~ yazi
|
||||||
# $menu = wofi --show drun -n
|
# $menu = wofi --show drun -n
|
||||||
$menu = wofi -n
|
$menu = wofi -n
|
||||||
exec-once = hypridle
|
exec-once = hypridle
|
||||||
@ -39,7 +37,7 @@ plugin:dynamic-cursors {
|
|||||||
}
|
}
|
||||||
general {
|
general {
|
||||||
|
|
||||||
gaps_in = 2
|
gaps_in = 3
|
||||||
gaps_out = 10
|
gaps_out = 10
|
||||||
border_size = 0
|
border_size = 0
|
||||||
col.active_border = $color9
|
col.active_border = $color9
|
||||||
@ -106,20 +104,52 @@ device {
|
|||||||
name = epic-mouse-v1
|
name = epic-mouse-v1
|
||||||
sensitivity = 0
|
sensitivity = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
$mainMod = SUPER
|
$mainMod = SUPER
|
||||||
|
|
||||||
|
# App
|
||||||
bind = $mainMod, Q, exec, $terminal
|
bind = $mainMod, Q, exec, $terminal
|
||||||
bind = $mainMod, B, killactive
|
bind = $mainMod, D, exec, firefox
|
||||||
bind = $mainMod, E, exec, $fileManager
|
bind = $mainMod, E, exec, $fileManager
|
||||||
# bind = $mainMod, V, exec, hyprctl --batch "dispatch togglefloating; dispatch resizeactive exact 800 800; dispatch centerwindow 1;"
|
|
||||||
bind = $mainMod, V, togglefloating
|
# Wofi menus
|
||||||
bind = $mainMod, R, exec, $menu
|
bind = $mainMod, R, exec, $menu
|
||||||
bind = $mainMod, P, pseudo
|
bind = $mainMod, P, exec, ~/.config/hypr/projects.sh
|
||||||
bind = $mainMod, J, togglesplit
|
bind = $mainMod, W, exec, ~/.config/hypr/wallpaper.sh
|
||||||
|
|
||||||
|
# Window management
|
||||||
|
bind = $mainMod, B, killactive
|
||||||
|
bind = $mainMod, V, exec, hyprctl --batch "dispatch togglefloating; dispatch resizeactive exact 800 800; dispatch centerwindow 1;"
|
||||||
|
bind = $mainMod SHIFT, P, exec, pseudo
|
||||||
|
bind = $mainMod, O, togglesplit
|
||||||
bind = $mainMod, F, fullscreen
|
bind = $mainMod, F, fullscreen
|
||||||
bind = $mainMod, left, movefocus, l
|
bindm = $mainMod, mouse:272, movewindow
|
||||||
bind = $mainMod, right, movefocus, r
|
bindm = $mainMod, mouse:273, resizewindow
|
||||||
bind = $mainMod, up, movefocus, u
|
|
||||||
bind = $mainMod, down, movefocus, d
|
# Sessions
|
||||||
|
bind = $mainMod, comma, exec, hyprlock
|
||||||
|
bind = $mainMod SHIFT, M, exec, wlogout -b 2
|
||||||
|
bind = $mainMod, M, exit
|
||||||
|
|
||||||
|
# Pypr
|
||||||
|
bind = $mainMod, SPACE, exec, pypr toggle term
|
||||||
|
bind = $mainMod, G, exec, pypr toggle music
|
||||||
|
bind = $mainMod, T, exec, pypr toggle taskbarcpu
|
||||||
|
bind = $mainMod, Y, exec, pypr toggle taskbargpu
|
||||||
|
|
||||||
|
# Vim type motion
|
||||||
|
bind = $mainMod, H, movefocus, l
|
||||||
|
bind = $mainMod, L, movefocus, r
|
||||||
|
bind = $mainMod, J, movefocus, d
|
||||||
|
bind = $mainMod, K, movefocus, u
|
||||||
|
bind = $mainMod ALT, H, movewindow, l
|
||||||
|
bind = $mainMod ALT, L, movewindow, r
|
||||||
|
bind = $mainMod ALT, J, movewindow, d
|
||||||
|
bind = $mainMod ALT, K, movewindow, u
|
||||||
|
|
||||||
|
# Workspace
|
||||||
|
bind = $mainMod, S, togglespecialworkspace, magic
|
||||||
|
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
|
||||||
bind = $mainMod, 1, workspace, 1
|
bind = $mainMod, 1, workspace, 1
|
||||||
bind = $mainMod, 2, workspace, 2
|
bind = $mainMod, 2, workspace, 2
|
||||||
bind = $mainMod, 3, workspace, 3
|
bind = $mainMod, 3, workspace, 3
|
||||||
@ -140,38 +170,12 @@ bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
|||||||
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
||||||
bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
||||||
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
||||||
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
|
|
||||||
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
# Scripts divers
|
||||||
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
|
||||||
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
|
||||||
bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+
|
|
||||||
bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%-
|
|
||||||
bindl = , XF86AudioNext, exec, playerctl next
|
|
||||||
bindl = , XF86AudioPause, exec, playerctl play-pause
|
|
||||||
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
|
||||||
bindl = , XF86AudioPrev, exec, playerctl previous
|
|
||||||
bind = ALT, left, movewindow, l
|
|
||||||
bind = ALT, right, movewindow, r
|
|
||||||
bind = ALT, up, movewindow, u
|
|
||||||
bind = ALT, down, movewindow, d
|
|
||||||
bind = CTRL, Print, exec, hyprshot -m region -o ~/Screenshots/
|
|
||||||
bind = , Print, exec, hyprshot -m window -o ~/Screenshots/
|
|
||||||
bind = ALT, Print, exec, hyprshot -m active -m output -o ~/Screenshots/
|
|
||||||
bind = $mainMod, l, exec, hyprlock
|
|
||||||
bind = $mainMod, S, togglespecialworkspace, magic
|
|
||||||
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
|
|
||||||
bindm = $mainMod, mouse:272, movewindow
|
|
||||||
bindm = $mainMod, mouse:273, resizewindow
|
|
||||||
bind = ALT, TAB, exec, wlogout -b 2
|
|
||||||
bind = ALT, w, exec, ~/.config/hypr/wallpaper.sh
|
|
||||||
bind = ALT, a, exec, ~/.config/waybar/scripts/refresh.sh
|
bind = ALT, a, exec, ~/.config/waybar/scripts/refresh.sh
|
||||||
bind = ALT, B, exec, ~/.config/waybar/scripts/select.sh
|
bind = ALT, B, exec, ~/.config/waybar/scripts/select.sh
|
||||||
bind = ALT, r, exec, ~/.config/swaync/refresh.sh
|
bind = ALT, r, exec, ~/.config/swaync/refresh.sh
|
||||||
bind = $mainMod, M, exit
|
|
||||||
bind = $mainMod, SPACE, exec, pypr toggle term
|
|
||||||
bind = $mainMod, G, exec, pypr toggle music
|
|
||||||
bind = $mainMod, T, exec, pypr toggle taskbar
|
|
||||||
#bind = CTRL, ESCAPE, exec, gksu #Dont worry about this
|
|
||||||
layerrule = blur, waybar
|
layerrule = blur, waybar
|
||||||
layerrule = ignorezero, waybar
|
layerrule = ignorezero, waybar
|
||||||
layerrule = ignorealpha 0.5, waybar
|
layerrule = ignorealpha 0.5, waybar
|
||||||
@ -182,3 +186,9 @@ layerrule = ignorezero, swaync-notification-window
|
|||||||
layerrule = ignorealpha 0.5, swaync-control-center
|
layerrule = ignorealpha 0.5, swaync-control-center
|
||||||
layerrule = ignorealpha 0.5, swaync-notification-window
|
layerrule = ignorealpha 0.5, swaync-notification-window
|
||||||
layerrule = noanim, selection
|
layerrule = noanim, selection
|
||||||
|
|
||||||
|
env = LIBVA_DRIVER_NAME,nvidia
|
||||||
|
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
17
.config/hypr/projects.sh
Normal file
17
.config/hypr/projects.sh
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
|
||||||
|
#!/bin/bash
|
||||||
|
PROJECTS_DIR="$HOME/Projects"
|
||||||
|
|
||||||
|
menu() {
|
||||||
|
find "$PROJECTS_DIR" -mindepth 1 -maxdepth 1 -type d | while read -r dir; do
|
||||||
|
basename=$(basename "$dir")
|
||||||
|
echo "$basename"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
choice=$(menu | wofi -c ~/.config/wofi/projects -s ~/.config/wofi/style-projects.css --show dmenu --prompt "Select Project:" -n)
|
||||||
|
selected_dir=$(echo "$choice" | cut -d':' -f2-)
|
||||||
|
[ -d "$PROJECTS_DIR/$selected_dir" ] && kitty -d "$PROJECTS_DIR/$selected_dir" nvim
|
||||||
|
}
|
||||||
|
main
|
@ -18,10 +18,16 @@ class = "kitty-pulsemixer"
|
|||||||
size = "50% 20%"
|
size = "50% 20%"
|
||||||
offset = "200%"
|
offset = "200%"
|
||||||
|
|
||||||
[scratchpads.taskbar]
|
[scratchpads.taskbarcpu]
|
||||||
animation = "fromLeft"
|
animation = "fromLeft"
|
||||||
command = "kitty --class kitty-taskbar -e htop"
|
command = "kitty --class kitty-taskbar -e htop"
|
||||||
class = "kitty-taskbar"
|
class = "kitty-taskbar"
|
||||||
size = "30% 80%"
|
size = "30% 80%"
|
||||||
offset = "200%"
|
offset = "200%"
|
||||||
|
|
||||||
|
[scratchpads.taskbargpu]
|
||||||
|
animation = "fromRight"
|
||||||
|
command = "kitty --class kitty-taskbar -e nvtop"
|
||||||
|
class = "kitty-taskbar"
|
||||||
|
size = "30% 80%"
|
||||||
|
offset = "200%"
|
||||||
|
@ -14,10 +14,6 @@ main() {
|
|||||||
pywalfox update
|
pywalfox update
|
||||||
color1=$(awk 'match($0, /color2=\47(.*)\47/,a) { print a[1] }' ~/.cache/wal/colors.sh)
|
color1=$(awk 'match($0, /color2=\47(.*)\47/,a) { print a[1] }' ~/.cache/wal/colors.sh)
|
||||||
color2=$(awk 'match($0, /color3=\47(.*)\47/,a) { print a[1] }' ~/.cache/wal/colors.sh)
|
color2=$(awk 'match($0, /color3=\47(.*)\47/,a) { print a[1] }' ~/.cache/wal/colors.sh)
|
||||||
cava_config="$HOME/.config/cava/config"
|
|
||||||
sed -i "s/^gradient_color_1 = .*/gradient_color_1 = '$color1'/" $cava_config
|
|
||||||
sed -i "s/^gradient_color_2 = .*/gradient_color_2 = '$color2'/" $cava_config
|
|
||||||
pkill -USR2 cava 2>/dev/null
|
|
||||||
source ~/.cache/wal/colors.sh && cp -r $wallpaper ~/wallpapers/pywallpaper.jpg
|
source ~/.cache/wal/colors.sh && cp -r $wallpaper ~/wallpapers/pywallpaper.jpg
|
||||||
}
|
}
|
||||||
main
|
main
|
||||||
|
@ -1,30 +1,30 @@
|
|||||||
foreground #c5c6c2
|
foreground #c2c2c2
|
||||||
background #191c0e
|
background #0c0b0c
|
||||||
background_opacity 1.0
|
background_opacity 1.0
|
||||||
cursor #c5c6c2
|
cursor #c2c2c2
|
||||||
|
|
||||||
active_tab_foreground #191c0e
|
active_tab_foreground #0c0b0c
|
||||||
active_tab_background #c5c6c2
|
active_tab_background #c2c2c2
|
||||||
inactive_tab_foreground #c5c6c2
|
inactive_tab_foreground #c2c2c2
|
||||||
inactive_tab_background #191c0e
|
inactive_tab_background #0c0b0c
|
||||||
|
|
||||||
active_border_color #c5c6c2
|
active_border_color #c2c2c2
|
||||||
inactive_border_color #191c0e
|
inactive_border_color #0c0b0c
|
||||||
bell_border_color #83816e
|
bell_border_color #4b3f3c
|
||||||
|
|
||||||
color0 #191c0e
|
color0 #0c0b0c
|
||||||
color8 #6c705c
|
color8 #6a566a
|
||||||
color1 #83816e
|
color1 #4b3f3c
|
||||||
color9 #AFAC93
|
color9 #655451
|
||||||
color2 #8a897e
|
color2 #772d25
|
||||||
color10 #B9B7A8
|
color10 #9F3D32
|
||||||
color3 #928d81
|
color3 #774942
|
||||||
color11 #C3BCAD
|
color11 #9F6259
|
||||||
color4 #8c927c
|
color4 #9f4e41
|
||||||
color12 #BBC3A6
|
color12 #D46857
|
||||||
color5 #a4a26f
|
color5 #876d54
|
||||||
color13 #DBD995
|
color13 #B49271
|
||||||
color6 #969489
|
color6 #a5744e
|
||||||
color14 #C9C6B7
|
color14 #DC9B69
|
||||||
color7 #989a8f
|
color7 #968b8b
|
||||||
color15 #c5c6c2
|
color15 #c2c2c2
|
||||||
|
53
.config/kitty/dark-theme.auto.conf
Executable file
53
.config/kitty/dark-theme.auto.conf
Executable file
@ -0,0 +1,53 @@
|
|||||||
|
## name: Rosé Pine
|
||||||
|
## author: mvllow
|
||||||
|
## license: MIT
|
||||||
|
## upstream: https://github.com/rose-pine/kitty/blob/main/dist/rose-pine.conf
|
||||||
|
## blurb: All natural pine, faux fur and a bit of soho vibes for the classy minimalist
|
||||||
|
|
||||||
|
foreground #e0def4
|
||||||
|
background #191724
|
||||||
|
selection_foreground #e0def4
|
||||||
|
selection_background #403d52
|
||||||
|
|
||||||
|
cursor #524f67
|
||||||
|
cursor_text_color #e0def4
|
||||||
|
|
||||||
|
url_color #c4a7e7
|
||||||
|
|
||||||
|
active_tab_foreground #e0def4
|
||||||
|
active_tab_background #26233a
|
||||||
|
inactive_tab_foreground #6e6a86
|
||||||
|
inactive_tab_background #191724
|
||||||
|
|
||||||
|
# black
|
||||||
|
color0 #26233a
|
||||||
|
color8 #6e6a86
|
||||||
|
|
||||||
|
# red
|
||||||
|
color1 #eb6f92
|
||||||
|
color9 #eb6f92
|
||||||
|
|
||||||
|
# green
|
||||||
|
color2 #31748f
|
||||||
|
color10 #31748f
|
||||||
|
|
||||||
|
# yellow
|
||||||
|
color3 #f6c177
|
||||||
|
color11 #f6c177
|
||||||
|
|
||||||
|
# blue
|
||||||
|
color4 #9ccfd8
|
||||||
|
color12 #9ccfd8
|
||||||
|
|
||||||
|
# magenta
|
||||||
|
color5 #c4a7e7
|
||||||
|
color13 #c4a7e7
|
||||||
|
|
||||||
|
# cyan
|
||||||
|
color6 #ebbcba
|
||||||
|
color14 #ebbcba
|
||||||
|
|
||||||
|
# white
|
||||||
|
color7 #e0def4
|
||||||
|
color15 #e0def4
|
||||||
|
|
53
.config/kitty/no-preference-theme.auto.conf
Executable file
53
.config/kitty/no-preference-theme.auto.conf
Executable file
@ -0,0 +1,53 @@
|
|||||||
|
## name: Rosé Pine
|
||||||
|
## author: mvllow
|
||||||
|
## license: MIT
|
||||||
|
## upstream: https://github.com/rose-pine/kitty/blob/main/dist/rose-pine.conf
|
||||||
|
## blurb: All natural pine, faux fur and a bit of soho vibes for the classy minimalist
|
||||||
|
|
||||||
|
foreground #e0def4
|
||||||
|
background #191724
|
||||||
|
selection_foreground #e0def4
|
||||||
|
selection_background #403d52
|
||||||
|
|
||||||
|
cursor #524f67
|
||||||
|
cursor_text_color #e0def4
|
||||||
|
|
||||||
|
url_color #c4a7e7
|
||||||
|
|
||||||
|
active_tab_foreground #e0def4
|
||||||
|
active_tab_background #26233a
|
||||||
|
inactive_tab_foreground #6e6a86
|
||||||
|
inactive_tab_background #191724
|
||||||
|
|
||||||
|
# black
|
||||||
|
color0 #26233a
|
||||||
|
color8 #6e6a86
|
||||||
|
|
||||||
|
# red
|
||||||
|
color1 #eb6f92
|
||||||
|
color9 #eb6f92
|
||||||
|
|
||||||
|
# green
|
||||||
|
color2 #31748f
|
||||||
|
color10 #31748f
|
||||||
|
|
||||||
|
# yellow
|
||||||
|
color3 #f6c177
|
||||||
|
color11 #f6c177
|
||||||
|
|
||||||
|
# blue
|
||||||
|
color4 #9ccfd8
|
||||||
|
color12 #9ccfd8
|
||||||
|
|
||||||
|
# magenta
|
||||||
|
color5 #c4a7e7
|
||||||
|
color13 #c4a7e7
|
||||||
|
|
||||||
|
# cyan
|
||||||
|
color6 #ebbcba
|
||||||
|
color14 #ebbcba
|
||||||
|
|
||||||
|
# white
|
||||||
|
color7 #e0def4
|
||||||
|
color15 #e0def4
|
||||||
|
|
@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"diagnostics.globals": [
|
|
||||||
"vim"
|
|
||||||
]
|
|
||||||
}
|
|
20
.config/nvim/.neoconf.json
Normal file
20
.config/nvim/.neoconf.json
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"neodev": {
|
||||||
|
"library": {
|
||||||
|
"enabled": true,
|
||||||
|
"plugins": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"neoconf": {
|
||||||
|
"plugins": {
|
||||||
|
"lua_ls": {
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lspconfig": {
|
||||||
|
"lua_ls": {
|
||||||
|
"Lua.format.enable": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
7
.config/nvim/.stylua.toml
Normal file
7
.config/nvim/.stylua.toml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
column_width = 120
|
||||||
|
line_endings = "Unix"
|
||||||
|
indent_type = "Spaces"
|
||||||
|
indent_width = 2
|
||||||
|
quote_style = "AutoPreferDouble"
|
||||||
|
call_parentheses = "None"
|
||||||
|
collapse_simple_statement = "Always"
|
34
.config/nvim/README.md
Normal file
34
.config/nvim/README.md
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
# AstroNvim Template
|
||||||
|
|
||||||
|
**NOTE:** This is for AstroNvim v5+
|
||||||
|
|
||||||
|
A template for getting started with [AstroNvim](https://github.com/AstroNvim/AstroNvim)
|
||||||
|
|
||||||
|
## 🛠️ Installation
|
||||||
|
|
||||||
|
#### Make a backup of your current nvim and shared folder
|
||||||
|
|
||||||
|
```shell
|
||||||
|
mv ~/.config/nvim ~/.config/nvim.bak
|
||||||
|
mv ~/.local/share/nvim ~/.local/share/nvim.bak
|
||||||
|
mv ~/.local/state/nvim ~/.local/state/nvim.bak
|
||||||
|
mv ~/.cache/nvim ~/.cache/nvim.bak
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Create a new user repository from this template
|
||||||
|
|
||||||
|
Press the "Use this template" button above to create a new repository to store your user configuration.
|
||||||
|
|
||||||
|
You can also just clone this repository directly if you do not want to track your user configuration in GitHub.
|
||||||
|
|
||||||
|
#### Clone the repository
|
||||||
|
|
||||||
|
```shell
|
||||||
|
git clone https://github.com/<your_user>/<your_repository> ~/.config/nvim
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Start Neovim
|
||||||
|
|
||||||
|
```shell
|
||||||
|
nvim
|
||||||
|
```
|
32
.config/nvim/init.lua
Executable file → Normal file
32
.config/nvim/init.lua
Executable file → Normal file
@ -1,17 +1,19 @@
|
|||||||
-- Path for lazy.nvim plugin manager
|
-- This file simply bootstraps the installation of Lazy.nvim and then calls other files for execution
|
||||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
-- This file doesn't necessarily need to be touched, BE CAUTIOUS editing this file and proceed at your own risk.
|
||||||
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
local lazypath = vim.env.LAZY or vim.fn.stdpath "data" .. "/lazy/lazy.nvim"
|
||||||
vim.fn.system({
|
if not (vim.env.LAZY or (vim.uv or vim.loop).fs_stat(lazypath)) then
|
||||||
"git",
|
-- stylua: ignore
|
||||||
"clone",
|
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath })
|
||||||
"--filter=blob:none",
|
|
||||||
"https://github.com/folke/lazy.nvim.git",
|
|
||||||
"--branch=stable", -- latest stable release
|
|
||||||
lazypath,
|
|
||||||
})
|
|
||||||
end
|
end
|
||||||
vim.opt.rtp:prepend(lazypath)
|
vim.opt.rtp:prepend(lazypath)
|
||||||
vim.cmd("set number")
|
|
||||||
require("vim-options")
|
-- validate that lazy is available
|
||||||
require("lazy").setup("plugins")
|
if not pcall(require, "lazy") then
|
||||||
vim.opt.termguicolors = true
|
-- stylua: ignore
|
||||||
|
vim.api.nvim_echo({ { ("Unable to load lazy from: %s\n"):format(lazypath), "ErrorMsg" }, { "Press any key to exit...", "MoreMsg" } }, true, {})
|
||||||
|
vim.fn.getchar()
|
||||||
|
vim.cmd.quit()
|
||||||
|
end
|
||||||
|
|
||||||
|
require "lazy_setup"
|
||||||
|
require "polish"
|
||||||
|
72
.config/nvim/lazy-lock.json
Executable file → Normal file
72
.config/nvim/lazy-lock.json
Executable file → Normal file
@ -1,29 +1,47 @@
|
|||||||
{
|
{
|
||||||
"LuaSnip": { "branch": "master", "commit": "c9b9a22904c97d0eb69ccb9bab76037838326817" },
|
"AstroNvim": { "branch": "main", "commit": "170e9cd4bf7c17ec963141399f4b0a32aa694868" },
|
||||||
"alpha-nvim": { "branch": "main", "commit": "de72250e054e5e691b9736ee30db72c65d560771" },
|
"LuaSnip": { "branch": "master", "commit": "03c8e67eb7293c404845b3982db895d59c0d1538" },
|
||||||
"cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" },
|
"aerial.nvim": { "branch": "master", "commit": "3284a2cb858ba009c79da87d5e010ccee3c99c4d" },
|
||||||
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
|
"astrocore": { "branch": "main", "commit": "c797dd5a592e2bd154f2503e231b8a4083659534" },
|
||||||
"friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" },
|
"astrolsp": { "branch": "main", "commit": "c45d9a1863e3ef430cee834674601bc50a304a70" },
|
||||||
"gitsigns.nvim": { "branch": "main", "commit": "9b36d497495436c135659902054ee637e0ba6021" },
|
"astrotheme": { "branch": "main", "commit": "f12dcf64b1f9a05839c3ac2146f550f43bae9dab" },
|
||||||
"gruvbox": { "branch": "main", "commit": "089b60e92aa0a1c6fa76ff527837cd35b6f5ac81" },
|
"astroui": { "branch": "main", "commit": "fded232ee0001c6bed9b654188e3dd4b0c58317c" },
|
||||||
"lazy.nvim": { "branch": "main", "commit": "7527af40ddd4a93a02911be570b32609b9d4ea53" },
|
"better-escape.nvim": { "branch": "master", "commit": "199dcc2643dec5d8dbdab4ec672cf405224dcb3b" },
|
||||||
"lualine.nvim": { "branch": "master", "commit": "2a5bae925481f999263d6f5ed8361baef8df4f83" },
|
"blink.cmp": { "branch": "main", "commit": "cb5e346d9e0efa7a3eee7fd4da0b690c48d2a98e" },
|
||||||
"markview.nvim": { "branch": "main", "commit": "68902d7cba78a7fe331c13d531376b4be494a05c" },
|
"blink.compat": { "branch": "main", "commit": "2ed6d9a28b07fa6f3bface818470605f8896408c" },
|
||||||
"mini.icons": { "branch": "main", "commit": "ec61af6e606fc89ee3b1d8f2f20166a3ca917a36" },
|
"cmp-dap": { "branch": "master", "commit": "ea92773e84c0ad3288c3bc5e452ac91559669087" },
|
||||||
"neo-tree.nvim": { "branch": "v3.x", "commit": "5d172e8315444dbc32867d1c7b04d8e7e68ec4e1" },
|
"friendly-snippets": { "branch": "main", "commit": "fc8f183479a472df60aa86f00e295462f2308178" },
|
||||||
"noice.nvim": { "branch": "main", "commit": "e3c68a4d2275a01268a52e2931bfccfbfb693d15" },
|
"gitsigns.nvim": { "branch": "main", "commit": "7010000889bfb6c26065e0b0f7f1e6aa9163edd9" },
|
||||||
"nui.nvim": { "branch": "main", "commit": "53e907ffe5eedebdca1cd503b00aa8692068ca46" },
|
"guess-indent.nvim": { "branch": "main", "commit": "84a4987ff36798c2fc1169cbaff67960aed9776f" },
|
||||||
"nvim-autopairs": { "branch": "master", "commit": "3d02855468f94bf435db41b661b58ec4f48a06b7" },
|
"heirline.nvim": { "branch": "master", "commit": "cc359b628266cb9a84b2d71c883f2b99e16473a0" },
|
||||||
"nvim-cmp": { "branch": "main", "commit": "12509903a5723a876abd65953109f926f4634c30" },
|
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
|
||||||
"nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" },
|
"lazydev.nvim": { "branch": "main", "commit": "f59bd14a852ca43db38e3662395354cb2a9b13e0" },
|
||||||
"nvim-notify": { "branch": "master", "commit": "22f29093eae7785773ee9d543f8750348b1a195c" },
|
"mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" },
|
||||||
"nvim-treesitter": { "branch": "master", "commit": "4988b7068001b3a772c7cc738708341e612e3c26" },
|
"mason-null-ls.nvim": { "branch": "main", "commit": "2b8433f76598397fcc97318d410e0c4f7a4bea6a" },
|
||||||
"nvim-web-devicons": { "branch": "master", "commit": "402377242b04be3f4f0f3720bd952df86e946c30" },
|
"mason-nvim-dap.nvim": { "branch": "main", "commit": "4c2cdc69d69fe00c15ae8648f7e954d99e5de3ea" },
|
||||||
"plenary.nvim": { "branch": "master", "commit": "3707cdb1e43f5cea73afb6037e6494e7ce847a66" },
|
"mason-tool-installer.nvim": { "branch": "main", "commit": "1255518cb067e038a4755f5cb3e980f79b6ab89c" },
|
||||||
"snacks.nvim": { "branch": "main", "commit": "c2310c6d1ecb4d5fad701ed0aeb92adc2f0db385" },
|
"mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" },
|
||||||
"tabline.nvim": { "branch": "main", "commit": "ff33d12a20d52daafa5393162cae4108faf8128b" },
|
"mini.icons": { "branch": "main", "commit": "910db5df9724d65371182948f921fce23c2c881e" },
|
||||||
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
|
"neo-tree.nvim": { "branch": "main", "commit": "1ef260eb4f54515fe121a2267b477efb054d108a" },
|
||||||
"telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
|
"neoconf.nvim": { "branch": "main", "commit": "8e7a5a052b0f6bc9ad35790c77780137f76c1a75" },
|
||||||
"typr": { "branch": "main", "commit": "696b8724b2bc68ab950d1d7a18bf00bfc536bcca" },
|
"none-ls.nvim": { "branch": "main", "commit": "786460723170bda9e9f95c55a382d21436575297" },
|
||||||
"volt": { "branch": "main", "commit": "3bedb1576db574af160643eea7df3b09dbe5ee9c" }
|
"nui.nvim": { "branch": "main", "commit": "8d3bce9764e627b62b07424e0df77f680d47ffdb" },
|
||||||
|
"nvim-autopairs": { "branch": "master", "commit": "4d74e75913832866aa7de35e4202463ddf6efd1b" },
|
||||||
|
"nvim-dap": { "branch": "master", "commit": "98bf130702eaafad8567c0e3ea1171c2552d58bb" },
|
||||||
|
"nvim-dap-ui": { "branch": "master", "commit": "851f6f00480dc9366f37b6b91f3aeadb3b6ba04f" },
|
||||||
|
"nvim-highlight-colors": { "branch": "main", "commit": "b42a5ccec7457b44e89f7ed3b3afb1b375bb2093" },
|
||||||
|
"nvim-lspconfig": { "branch": "master", "commit": "5af60bbb835d5b6efdc64cdff2a5b27cde4120de" },
|
||||||
|
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
|
||||||
|
"nvim-treesitter": { "branch": "master", "commit": "684eeac91ed8e297685a97ef70031d19ac1de25a" },
|
||||||
|
"nvim-treesitter-textobjects": { "branch": "master", "commit": "205e3369bc83d8cb83f7409c36120e24611f8c5c" },
|
||||||
|
"nvim-ts-autotag": { "branch": "main", "commit": "a1d526af391f6aebb25a8795cbc05351ed3620b5" },
|
||||||
|
"nvim-window-picker": { "branch": "main", "commit": "6382540b2ae5de6c793d4aa2e3fe6dbb518505ec" },
|
||||||
|
"plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
|
||||||
|
"resession.nvim": { "branch": "master", "commit": "cc819b0489938d03e4f3532a583354f0287c015b" },
|
||||||
|
"smart-splits.nvim": { "branch": "master", "commit": "ddb23c1a1cf1507bda487cda7f6e4690965ef9f5" },
|
||||||
|
"snacks.nvim": { "branch": "main", "commit": "5eac729fa290248acfe10916d92a5ed5e5c0f9ed" },
|
||||||
|
"todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" },
|
||||||
|
"toggleterm.nvim": { "branch": "main", "commit": "50ea089fc548917cc3cc16b46a8211833b9e3c7c" },
|
||||||
|
"vim-illuminate": { "branch": "master", "commit": "1fa4b23409e22a03823648e344c77f260e2572cb" },
|
||||||
|
"which-key.nvim": { "branch": "main", "commit": "fcbf4eea17cb299c02557d576f0d568878e354a4" }
|
||||||
}
|
}
|
||||||
|
12
.config/nvim/lua/community.lua
Normal file
12
.config/nvim/lua/community.lua
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
|
||||||
|
|
||||||
|
-- AstroCommunity: import any community modules here
|
||||||
|
-- We import this file in `lazy_setup.lua` before the `plugins/` folder.
|
||||||
|
-- This guarantees that the specs are processed before any user plugins.
|
||||||
|
|
||||||
|
---@type LazySpec
|
||||||
|
return {
|
||||||
|
"AstroNvim/astrocommunity",
|
||||||
|
{ import = "astrocommunity.pack.lua" },
|
||||||
|
-- import/override with your plugins folder
|
||||||
|
}
|
32
.config/nvim/lua/lazy_setup.lua
Normal file
32
.config/nvim/lua/lazy_setup.lua
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
require("lazy").setup({
|
||||||
|
{
|
||||||
|
"AstroNvim/AstroNvim",
|
||||||
|
version = "^5", -- Remove version tracking to elect for nightly AstroNvim
|
||||||
|
import = "astronvim.plugins",
|
||||||
|
opts = { -- AstroNvim options must be set here with the `import` key
|
||||||
|
mapleader = " ", -- This ensures the leader key must be configured before Lazy is set up
|
||||||
|
maplocalleader = ",", -- This ensures the localleader key must be configured before Lazy is set up
|
||||||
|
icons_enabled = true, -- Set to false to disable icons (if no Nerd Font is available)
|
||||||
|
pin_plugins = nil, -- Default will pin plugins when tracking `version` of AstroNvim, set to true/false to override
|
||||||
|
update_notifications = true, -- Enable/disable notification about running `:Lazy update` twice to update pinned plugins
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{ import = "community" },
|
||||||
|
{ import = "plugins" },
|
||||||
|
} --[[@as LazySpec]], {
|
||||||
|
-- Configure any other `lazy.nvim` configuration options here
|
||||||
|
install = { colorscheme = { "astrotheme", "habamax" } },
|
||||||
|
ui = { backdrop = 100 },
|
||||||
|
performance = {
|
||||||
|
rtp = {
|
||||||
|
-- disable some rtp plugins, add more to your liking
|
||||||
|
disabled_plugins = {
|
||||||
|
"gzip",
|
||||||
|
"netrwPlugin",
|
||||||
|
"tarPlugin",
|
||||||
|
"tohtml",
|
||||||
|
"zipPlugin",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
} --[[@as LazyConfig]])
|
@ -1,95 +0,0 @@
|
|||||||
return {
|
|
||||||
"goolord/alpha-nvim",
|
|
||||||
dependencies = {
|
|
||||||
"nvim-tree/nvim-web-devicons",
|
|
||||||
},
|
|
||||||
|
|
||||||
config = function()
|
|
||||||
local dashboard = require("alpha.themes.dashboard")
|
|
||||||
vim.cmd("source ~/.cache/wal/colors-wal.vim")
|
|
||||||
local color9 = vim.g.color9 or "#ffffff"
|
|
||||||
local color3 = vim.g.color3 or "#ffffff"
|
|
||||||
local color4 = vim.g.color4 or "#ffffff"
|
|
||||||
local color5 = vim.g.color5 or "#ffffff"
|
|
||||||
local color6 = vim.g.color6 or "#ffffff"
|
|
||||||
|
|
||||||
-- helper function for utf8 chars
|
|
||||||
local function getCharLen(s, pos)
|
|
||||||
local byte = string.byte(s, pos)
|
|
||||||
if not byte then
|
|
||||||
return nil
|
|
||||||
end
|
|
||||||
return (byte < 0x80 and 1) or (byte < 0xE0 and 2) or (byte < 0xF0 and 3) or (byte < 0xF8 and 4) or 1
|
|
||||||
end
|
|
||||||
|
|
||||||
local function applyColors(logo, colors, logoColors)
|
|
||||||
dashboard.section.header.val = logo
|
|
||||||
|
|
||||||
for key, color in pairs(colors) do
|
|
||||||
local name = "Alpha" .. key
|
|
||||||
vim.api.nvim_set_hl(0, name, color)
|
|
||||||
colors[key] = name
|
|
||||||
end
|
|
||||||
|
|
||||||
dashboard.section.header.opts.hl = {}
|
|
||||||
for i, line in ipairs(logoColors) do
|
|
||||||
local highlights = {}
|
|
||||||
local pos = 0
|
|
||||||
|
|
||||||
for j = 1, #line do
|
|
||||||
local opos = pos
|
|
||||||
pos = pos + getCharLen(logo[i], opos + 1)
|
|
||||||
|
|
||||||
local color_name = colors[line:sub(j, j)]
|
|
||||||
if color_name then
|
|
||||||
table.insert(highlights, { color_name, opos, pos })
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
table.insert(dashboard.section.header.opts.hl, highlights)
|
|
||||||
end
|
|
||||||
return dashboard.opts
|
|
||||||
end
|
|
||||||
|
|
||||||
require("alpha").setup(applyColors({
|
|
||||||
[[███████╗ ██████╗ ]],
|
|
||||||
[[██╔════╝ ██╔═══╝ ]],
|
|
||||||
[[█████╗ ██████╗ ]],
|
|
||||||
[[██╔══╝ ██╔═══╝ ]],
|
|
||||||
[[███████╗ ██║ ]],
|
|
||||||
[[╚══════╝ ╚═╝ ]],
|
|
||||||
[[N E O V I M ]],
|
|
||||||
}, {
|
|
||||||
["a"] = { fg = color9, ctermfg = 33},
|
|
||||||
["b"] = { fg = color3, ctermfg = 33},
|
|
||||||
["c"] = { fg = color4, ctermfg = 33},
|
|
||||||
["d"] = { fg = color5, ctermfg = 33},
|
|
||||||
["e"] = { fg = color6, ctermfg = 33},
|
|
||||||
}, {
|
|
||||||
[[bbbbbbba cccccca ]],
|
|
||||||
[[bbaaaaaa ccaaaaa ]],
|
|
||||||
[[bbbbba cccccca ]],
|
|
||||||
[[bbaaaa ccaaaaa ]],
|
|
||||||
[[bbbbbbba cca ]],
|
|
||||||
[[aaaaaaaa aaa ]],
|
|
||||||
[[d d d e e e ]],
|
|
||||||
}))
|
|
||||||
dashboard.section.buttons.val = {
|
|
||||||
dashboard.button( "e", " > New file" , ":ene <BAR> startinsert <CR>"),
|
|
||||||
dashboard.button( "f", " > Find file", ":lua require('telescope.builtin').find_files({ find_command = { 'rg', '--files' } })<CR>"),
|
|
||||||
dashboard.button( "F", " > Find folder", ":lua search_and_scope_into_directory()<CR>"),
|
|
||||||
dashboard.button( "r", " > Recent" , ":Telescope oldfiles<CR>"),
|
|
||||||
dashboard.button( "c", " > Config" , ":cd ~/.config/nvim | Telescope find_files<CR>"),
|
|
||||||
dashboard.button( "l", " > Lazy", ":Lazy<CR>"),
|
|
||||||
dashboard.button( "h", " > Settings" , ":cd ~/.config/hypr | Telescope find_files<CR>"),
|
|
||||||
dashboard.button( "q", " > Quit", ":qa<CR>"),
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
dashboard.section.footer.val = {
|
|
||||||
"",
|
|
||||||
"Welcome!",
|
|
||||||
}
|
|
||||||
|
|
||||||
end,
|
|
||||||
}
|
|
85
.config/nvim/lua/plugins/astrocore.lua
Normal file
85
.config/nvim/lua/plugins/astrocore.lua
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
|
||||||
|
|
||||||
|
-- AstroCore provides a central place to modify mappings, vim options, autocommands, and more!
|
||||||
|
-- Configuration documentation can be found with `:h astrocore`
|
||||||
|
-- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`)
|
||||||
|
-- as this provides autocomplete and documentation while editing
|
||||||
|
|
||||||
|
---@type LazySpec
|
||||||
|
return {
|
||||||
|
"AstroNvim/astrocore",
|
||||||
|
---@type AstroCoreOpts
|
||||||
|
opts = {
|
||||||
|
-- Configure core features of AstroNvim
|
||||||
|
features = {
|
||||||
|
large_buf = { size = 1024 * 256, lines = 10000 }, -- set global limits for large files for disabling features like treesitter
|
||||||
|
autopairs = true, -- enable autopairs at start
|
||||||
|
cmp = true, -- enable completion at start
|
||||||
|
diagnostics = { virtual_text = true, virtual_lines = false }, -- diagnostic settings on startup
|
||||||
|
highlighturl = true, -- highlight URLs at start
|
||||||
|
notifications = true, -- enable notifications at start
|
||||||
|
},
|
||||||
|
-- Diagnostics configuration (for vim.diagnostics.config({...})) when diagnostics are on
|
||||||
|
diagnostics = {
|
||||||
|
virtual_text = true,
|
||||||
|
underline = true,
|
||||||
|
},
|
||||||
|
-- passed to `vim.filetype.add`
|
||||||
|
filetypes = {
|
||||||
|
-- see `:h vim.filetype.add` for usage
|
||||||
|
extension = {
|
||||||
|
foo = "fooscript",
|
||||||
|
},
|
||||||
|
filename = {
|
||||||
|
[".foorc"] = "fooscript",
|
||||||
|
},
|
||||||
|
pattern = {
|
||||||
|
[".*/etc/foo/.*"] = "fooscript",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-- vim options can be configured here
|
||||||
|
options = {
|
||||||
|
opt = { -- vim.opt.<key>
|
||||||
|
relativenumber = true, -- sets vim.opt.relativenumber
|
||||||
|
number = true, -- sets vim.opt.number
|
||||||
|
spell = false, -- sets vim.opt.spell
|
||||||
|
signcolumn = "yes", -- sets vim.opt.signcolumn to yes
|
||||||
|
wrap = false, -- sets vim.opt.wrap
|
||||||
|
},
|
||||||
|
g = { -- vim.g.<key>
|
||||||
|
-- configure global vim variables (vim.g)
|
||||||
|
-- NOTE: `mapleader` and `maplocalleader` must be set in the AstroNvim opts or before `lazy.setup`
|
||||||
|
-- This can be found in the `lua/lazy_setup.lua` file
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-- Mappings can be configured through AstroCore as well.
|
||||||
|
-- NOTE: keycodes follow the casing in the vimdocs. For example, `<Leader>` must be capitalized
|
||||||
|
mappings = {
|
||||||
|
-- first key is the mode
|
||||||
|
n = {
|
||||||
|
-- second key is the lefthand side of the map
|
||||||
|
|
||||||
|
-- navigate buffer tabs
|
||||||
|
["]b"] = { function() require("astrocore.buffer").nav(vim.v.count1) end, desc = "Next buffer" },
|
||||||
|
["[b"] = { function() require("astrocore.buffer").nav(-vim.v.count1) end, desc = "Previous buffer" },
|
||||||
|
|
||||||
|
-- mappings seen under group name "Buffer"
|
||||||
|
["<Leader>bd"] = {
|
||||||
|
function()
|
||||||
|
require("astroui.status.heirline").buffer_picker(
|
||||||
|
function(bufnr) require("astrocore.buffer").close(bufnr) end
|
||||||
|
)
|
||||||
|
end,
|
||||||
|
desc = "Close buffer from tabline",
|
||||||
|
},
|
||||||
|
|
||||||
|
-- tables with just a `desc` key will be registered with which-key if it's installed
|
||||||
|
-- this is useful for naming menus
|
||||||
|
-- ["<Leader>b"] = { desc = "Buffers" },
|
||||||
|
|
||||||
|
-- setting a mapping to false will disable it
|
||||||
|
-- ["<C-S>"] = false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
105
.config/nvim/lua/plugins/astrolsp.lua
Normal file
105
.config/nvim/lua/plugins/astrolsp.lua
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
|
||||||
|
|
||||||
|
-- AstroLSP allows you to customize the features in AstroNvim's LSP configuration engine
|
||||||
|
-- Configuration documentation can be found with `:h astrolsp`
|
||||||
|
-- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`)
|
||||||
|
-- as this provides autocomplete and documentation while editing
|
||||||
|
|
||||||
|
---@type LazySpec
|
||||||
|
return {
|
||||||
|
"AstroNvim/astrolsp",
|
||||||
|
---@type AstroLSPOpts
|
||||||
|
opts = {
|
||||||
|
-- Configuration table of features provided by AstroLSP
|
||||||
|
features = {
|
||||||
|
codelens = true, -- enable/disable codelens refresh on start
|
||||||
|
inlay_hints = false, -- enable/disable inlay hints on start
|
||||||
|
semantic_tokens = true, -- enable/disable semantic token highlighting
|
||||||
|
},
|
||||||
|
-- customize lsp formatting options
|
||||||
|
formatting = {
|
||||||
|
-- control auto formatting on save
|
||||||
|
format_on_save = {
|
||||||
|
enabled = true, -- enable or disable format on save globally
|
||||||
|
allow_filetypes = { -- enable format on save for specified filetypes only
|
||||||
|
-- "go",
|
||||||
|
},
|
||||||
|
ignore_filetypes = { -- disable format on save for specified filetypes
|
||||||
|
-- "python",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
disabled = { -- disable formatting capabilities for the listed language servers
|
||||||
|
-- disable lua_ls formatting capability if you want to use StyLua to format your lua code
|
||||||
|
-- "lua_ls",
|
||||||
|
},
|
||||||
|
timeout_ms = 1000, -- default format timeout
|
||||||
|
-- filter = function(client) -- fully override the default formatting function
|
||||||
|
-- return true
|
||||||
|
-- end
|
||||||
|
},
|
||||||
|
-- enable servers that you already have installed without mason
|
||||||
|
servers = {
|
||||||
|
-- "pyright"
|
||||||
|
},
|
||||||
|
-- customize language server configuration options passed to `lspconfig`
|
||||||
|
---@diagnostic disable: missing-fields
|
||||||
|
config = {
|
||||||
|
-- clangd = { capabilities = { offsetEncoding = "utf-8" } },
|
||||||
|
},
|
||||||
|
-- customize how language servers are attached
|
||||||
|
handlers = {
|
||||||
|
-- a function without a key is simply the default handler, functions take two parameters, the server name and the configured options table for that server
|
||||||
|
-- function(server, opts) require("lspconfig")[server].setup(opts) end
|
||||||
|
|
||||||
|
-- the key is the server that is being setup with `lspconfig`
|
||||||
|
-- rust_analyzer = false, -- setting a handler to false will disable the set up of that language server
|
||||||
|
-- pyright = function(_, opts) require("lspconfig").pyright.setup(opts) end -- or a custom handler function can be passed
|
||||||
|
},
|
||||||
|
-- Configure buffer local auto commands to add when attaching a language server
|
||||||
|
autocmds = {
|
||||||
|
-- first key is the `augroup` to add the auto commands to (:h augroup)
|
||||||
|
lsp_codelens_refresh = {
|
||||||
|
-- Optional condition to create/delete auto command group
|
||||||
|
-- can either be a string of a client capability or a function of `fun(client, bufnr): boolean`
|
||||||
|
-- condition will be resolved for each client on each execution and if it ever fails for all clients,
|
||||||
|
-- the auto commands will be deleted for that buffer
|
||||||
|
cond = "textDocument/codeLens",
|
||||||
|
-- cond = function(client, bufnr) return client.name == "lua_ls" end,
|
||||||
|
-- list of auto commands to set
|
||||||
|
{
|
||||||
|
-- events to trigger
|
||||||
|
event = { "InsertLeave", "BufEnter" },
|
||||||
|
-- the rest of the autocmd options (:h nvim_create_autocmd)
|
||||||
|
desc = "Refresh codelens (buffer)",
|
||||||
|
callback = function(args)
|
||||||
|
if require("astrolsp").config.features.codelens then vim.lsp.codelens.refresh { bufnr = args.buf } end
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-- mappings to be set up on attaching of a language server
|
||||||
|
mappings = {
|
||||||
|
n = {
|
||||||
|
-- a `cond` key can provided as the string of a server capability to be required to attach, or a function with `client` and `bufnr` parameters from the `on_attach` that returns a boolean
|
||||||
|
gD = {
|
||||||
|
function() vim.lsp.buf.declaration() end,
|
||||||
|
desc = "Declaration of current symbol",
|
||||||
|
cond = "textDocument/declaration",
|
||||||
|
},
|
||||||
|
["<Leader>uY"] = {
|
||||||
|
function() require("astrolsp.toggles").buffer_semantic_tokens() end,
|
||||||
|
desc = "Toggle LSP semantic highlight (buffer)",
|
||||||
|
cond = function(client)
|
||||||
|
return client.supports_method "textDocument/semanticTokens/full" and vim.lsp.semantic_tokens ~= nil
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-- A custom `on_attach` function to be run after the default `on_attach` function
|
||||||
|
-- takes two parameters `client` and `bufnr` (`:h lspconfig-setup`)
|
||||||
|
on_attach = function(client, bufnr)
|
||||||
|
-- this would disable semanticTokensProvider for all clients
|
||||||
|
-- client.server_capabilities.semanticTokensProvider = nil
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
39
.config/nvim/lua/plugins/astroui.lua
Normal file
39
.config/nvim/lua/plugins/astroui.lua
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
|
||||||
|
|
||||||
|
-- AstroUI provides the basis for configuring the AstroNvim User Interface
|
||||||
|
-- Configuration documentation can be found with `:h astroui`
|
||||||
|
-- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`)
|
||||||
|
-- as this provides autocomplete and documentation while editing
|
||||||
|
|
||||||
|
---@type LazySpec
|
||||||
|
return {
|
||||||
|
"AstroNvim/astroui",
|
||||||
|
---@type AstroUIOpts
|
||||||
|
opts = {
|
||||||
|
-- change colorscheme
|
||||||
|
colorscheme = "astrodark",
|
||||||
|
-- AstroUI allows you to easily modify highlight groups easily for any and all colorschemes
|
||||||
|
highlights = {
|
||||||
|
init = { -- this table overrides highlights in all themes
|
||||||
|
-- Normal = { bg = "#000000" },
|
||||||
|
},
|
||||||
|
astrodark = { -- a table of overrides/changes when applying the astrotheme theme
|
||||||
|
-- Normal = { bg = "#000000" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-- Icons can be configured throughout the interface
|
||||||
|
icons = {
|
||||||
|
-- configure the loading of the lsp in the status line
|
||||||
|
LSPLoading1 = "⠋",
|
||||||
|
LSPLoading2 = "⠙",
|
||||||
|
LSPLoading3 = "⠹",
|
||||||
|
LSPLoading4 = "⠸",
|
||||||
|
LSPLoading5 = "⠼",
|
||||||
|
LSPLoading6 = "⠴",
|
||||||
|
LSPLoading7 = "⠦",
|
||||||
|
LSPLoading8 = "⠧",
|
||||||
|
LSPLoading9 = "⠇",
|
||||||
|
LSPLoading10 = "⠏",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
@ -1,7 +0,0 @@
|
|||||||
return {
|
|
||||||
'windwp/nvim-autopairs',
|
|
||||||
event = "InsertEnter",
|
|
||||||
config = true
|
|
||||||
-- use opts = {} for passing setup options
|
|
||||||
-- this is equivalent to setup({}) function
|
|
||||||
}
|
|
@ -1,38 +0,0 @@
|
|||||||
return {
|
|
||||||
"folke/noice.nvim",
|
|
||||||
event = "VeryLazy",
|
|
||||||
opts = {
|
|
||||||
-- add any options here
|
|
||||||
},
|
|
||||||
dependencies = {
|
|
||||||
"MunifTanjim/nui.nvim",
|
|
||||||
"rcarriga/nvim-notify",
|
|
||||||
},
|
|
||||||
config = function()
|
|
||||||
vim.cmd("source ~/.cache/wal/colors-wal.vim")
|
|
||||||
local color9 = vim.g.color9 or "#808080"
|
|
||||||
local color5 = vim.g.color5 or "#ffffff"
|
|
||||||
require("noice").setup({
|
|
||||||
lsp = {
|
|
||||||
override = {
|
|
||||||
["vim.lsp.util.convert_input_to_markdown_lines"] = true,
|
|
||||||
["vim.lsp.util.stylize_markdown"] = true,
|
|
||||||
["cmp.entry.get_documentation"] = true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
presets = {
|
|
||||||
bottom_search = false,
|
|
||||||
command_palette = true,
|
|
||||||
long_message_to_split = true,
|
|
||||||
inc_rename = false,
|
|
||||||
lsp_doc_border = false,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
vim.cmd('highlight NoiceCmdlineIcon guifg=' .. color9)
|
|
||||||
vim.cmd('highlight NoiceCmdlinePopupBorder guifg=' .. color5)
|
|
||||||
vim.cmd('highlight NotifyINFOBorder guifg=' .. color5)
|
|
||||||
vim.cmd('highlight NotifyINFOIcon guifg=' .. color9)
|
|
||||||
vim.cmd('highlight NotifyINFOTitle guifg=' .. color5)
|
|
||||||
end,
|
|
||||||
}
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
|||||||
-- return {
|
|
||||||
-- "ellisonleao/gruvbox.nvim",
|
|
||||||
-- lazy = false,
|
|
||||||
-- name = "gruvbox",
|
|
||||||
-- priority = 997,
|
|
||||||
-- config = function()
|
|
||||||
-- vim.cmd.colorscheme("gruvbox")
|
|
||||||
-- end,
|
|
||||||
-- }
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return {
|
|
||||||
"AlphaTechnolog/pywal.nvim",
|
|
||||||
lazy = false,
|
|
||||||
priority = 1000,
|
|
||||||
config = function()
|
|
||||||
-- Set up pywal and load the colors
|
|
||||||
require("pywal").setup()
|
|
||||||
|
|
||||||
end,
|
|
||||||
}
|
|
||||||
|
|
@ -1,44 +0,0 @@
|
|||||||
return {
|
|
||||||
{
|
|
||||||
"hrsh7th/cmp-nvim-lsp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"L3MON4D3/LuaSnip",
|
|
||||||
dependencies = {
|
|
||||||
"saadparwaiz1/cmp_luasnip",
|
|
||||||
"rafamadriz/friendly-snippets",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"hrsh7th/nvim-cmp",
|
|
||||||
config = function()
|
|
||||||
local cmp = require("cmp")
|
|
||||||
require("luasnip.loaders.from_vscode").lazy_load()
|
|
||||||
|
|
||||||
cmp.setup({
|
|
||||||
snippet = {
|
|
||||||
expand = function(args)
|
|
||||||
require("luasnip").lsp_expand(args.body)
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
window = {
|
|
||||||
completion = cmp.config.window.bordered(),
|
|
||||||
documentation = cmp.config.window.bordered(),
|
|
||||||
},
|
|
||||||
mapping = cmp.mapping.preset.insert({
|
|
||||||
["<C-b>"] = cmp.mapping.scroll_docs(-4),
|
|
||||||
["<C-f>"] = cmp.mapping.scroll_docs(4),
|
|
||||||
["<C-Space>"] = cmp.mapping.complete(),
|
|
||||||
["<C-e>"] = cmp.mapping.abort(),
|
|
||||||
["<CR>"] = cmp.mapping.confirm({ select = true }),
|
|
||||||
}),
|
|
||||||
sources = cmp.config.sources({
|
|
||||||
{ name = "nvim_lsp" },
|
|
||||||
{ name = "luasnip" }, -- For luasnip users.
|
|
||||||
}, {
|
|
||||||
{ name = "buffer" },
|
|
||||||
}),
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
}
|
|
@ -1,8 +0,0 @@
|
|||||||
return {
|
|
||||||
'norcalli/nvim-colorizer.lua',
|
|
||||||
config = function()
|
|
||||||
require('colorizer').setup {
|
|
||||||
'*'
|
|
||||||
}
|
|
||||||
end
|
|
||||||
}
|
|
@ -1,56 +0,0 @@
|
|||||||
return {
|
|
||||||
"lewis6991/gitsigns.nvim", -- Add a comma here
|
|
||||||
config = function()
|
|
||||||
require('gitsigns').setup {
|
|
||||||
signs = {
|
|
||||||
add = { text = '┃' },
|
|
||||||
change = { text = '┃' },
|
|
||||||
delete = { text = '_' },
|
|
||||||
topdelete = { text = '‾' },
|
|
||||||
changedelete = { text = '~' },
|
|
||||||
untracked = { text = '┆' },
|
|
||||||
},
|
|
||||||
signs_staged = {
|
|
||||||
add = { text = '┃' },
|
|
||||||
change = { text = '┃' },
|
|
||||||
delete = { text = '_' },
|
|
||||||
topdelete = { text = '‾' },
|
|
||||||
changedelete = { text = '~' },
|
|
||||||
untracked = { text = '┆' },
|
|
||||||
},
|
|
||||||
signs_staged_enable = true,
|
|
||||||
signcolumn = true, -- Toggle with `:Gitsigns toggle_signs`
|
|
||||||
numhl = false, -- Toggle with `:Gitsigns toggle_numhl`
|
|
||||||
linehl = false, -- Toggle with `:Gitsigns toggle_linehl`
|
|
||||||
word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff`
|
|
||||||
watch_gitdir = {
|
|
||||||
follow_files = true
|
|
||||||
},
|
|
||||||
auto_attach = true,
|
|
||||||
attach_to_untracked = false,
|
|
||||||
current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame`
|
|
||||||
current_line_blame_opts = {
|
|
||||||
virt_text = true,
|
|
||||||
virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align'
|
|
||||||
delay = 1000,
|
|
||||||
ignore_whitespace = false,
|
|
||||||
virt_text_priority = 100,
|
|
||||||
use_focus = true,
|
|
||||||
},
|
|
||||||
current_line_blame_formatter = '<author>, <author_time:%R> - <summary>',
|
|
||||||
sign_priority = 6,
|
|
||||||
update_debounce = 100,
|
|
||||||
status_formatter = nil, -- Use default
|
|
||||||
max_file_length = 40000, -- Disable if file is longer than this (in lines)
|
|
||||||
preview_config = {
|
|
||||||
-- Options passed to nvim_open_win
|
|
||||||
border = 'single',
|
|
||||||
style = 'minimal',
|
|
||||||
relative = 'cursor',
|
|
||||||
row = 0,
|
|
||||||
col = 1
|
|
||||||
},
|
|
||||||
}
|
|
||||||
end
|
|
||||||
}
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
|||||||
return {
|
|
||||||
"echasnovski/mini.icons",
|
|
||||||
lazy = true,
|
|
||||||
opts = {
|
|
||||||
file = {
|
|
||||||
[".keep"] = { glyph = "", hl = "MiniIconsGrey" },
|
|
||||||
["devcontainer.json"] = { glyph = "", hl = "MiniIconsAzure" },
|
|
||||||
},
|
|
||||||
filetype = {
|
|
||||||
dotenv = { glyph = "", hl = "MiniIconsYellow" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
init = function()
|
|
||||||
package.preload["nvim-web-devicons"] = function()
|
|
||||||
require("mini.icons").mock_nvim_web_devicons()
|
|
||||||
return package.loaded["nvim-web-devicons"]
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
}
|
|
@ -1,57 +0,0 @@
|
|||||||
return {
|
|
||||||
"nvim-lualine/lualine.nvim",
|
|
||||||
dependencies = { "nvim-tree/nvim-web-devicons","kdheepak/tabline.nvim" },
|
|
||||||
|
|
||||||
config = function()
|
|
||||||
require('lualine').setup {
|
|
||||||
options = {
|
|
||||||
icons_enabled = true,
|
|
||||||
theme = 'auto',
|
|
||||||
component_separators = '',
|
|
||||||
section_separators = { left = '', right = '' },
|
|
||||||
component_separators = {'', ''},
|
|
||||||
disabled_filetypes = {
|
|
||||||
statusline = {},
|
|
||||||
winbar = {},
|
|
||||||
},
|
|
||||||
ignore_focus = {},
|
|
||||||
always_divide_middle = true,
|
|
||||||
always_show_tabline = true,
|
|
||||||
globalstatus = false,
|
|
||||||
refresh = {
|
|
||||||
statusline = 100,
|
|
||||||
tabline = 100,
|
|
||||||
winbar = 100,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
sections = {
|
|
||||||
lualine_a = {'mode'},
|
|
||||||
lualine_b = {'branch'},
|
|
||||||
lualine_c = {},
|
|
||||||
lualine_x = {'filetype'},
|
|
||||||
lualine_y = {'progress'},
|
|
||||||
lualine_z = {'location'}
|
|
||||||
},
|
|
||||||
inactive_sections = {
|
|
||||||
lualine_a = {},
|
|
||||||
lualine_b = {},
|
|
||||||
lualine_c = {'filename'},
|
|
||||||
lualine_x = {},
|
|
||||||
lualine_y = {},
|
|
||||||
lualine_z = {}
|
|
||||||
},
|
|
||||||
tabline = {
|
|
||||||
lualine_a = {},
|
|
||||||
lualine_b = {},
|
|
||||||
lualine_c = { require'tabline'.tabline_buffers },
|
|
||||||
lualine_x = { require'tabline'.tabline_tabs },
|
|
||||||
lualine_y = {},
|
|
||||||
lualine_z = {},
|
|
||||||
},
|
|
||||||
winbar = {},
|
|
||||||
inactive_winbar = {},
|
|
||||||
extensions = {}
|
|
||||||
} end,
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
|||||||
return {
|
|
||||||
"OXY2DEV/markview.nvim",
|
|
||||||
lazy = false
|
|
||||||
};
|
|
28
.config/nvim/lua/plugins/mason.lua
Normal file
28
.config/nvim/lua/plugins/mason.lua
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
|
||||||
|
|
||||||
|
-- Customize Mason
|
||||||
|
|
||||||
|
---@type LazySpec
|
||||||
|
return {
|
||||||
|
-- use mason-tool-installer for automatically installing Mason packages
|
||||||
|
{
|
||||||
|
"WhoIsSethDaniel/mason-tool-installer.nvim",
|
||||||
|
-- overrides `require("mason-tool-installer").setup(...)`
|
||||||
|
opts = {
|
||||||
|
-- Make sure to use the names found in `:Mason`
|
||||||
|
ensure_installed = {
|
||||||
|
-- install language servers
|
||||||
|
"lua-language-server",
|
||||||
|
|
||||||
|
-- install formatters
|
||||||
|
"stylua",
|
||||||
|
|
||||||
|
-- install debuggers
|
||||||
|
"debugpy",
|
||||||
|
|
||||||
|
-- install any other package
|
||||||
|
"tree-sitter-cli",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
@ -1,12 +0,0 @@
|
|||||||
return {
|
|
||||||
"nvim-neo-tree/neo-tree.nvim",
|
|
||||||
branch = "v3.x",
|
|
||||||
dependencies = {
|
|
||||||
"nvim-lua/plenary.nvim",
|
|
||||||
"nvim-tree/nvim-web-devicons",
|
|
||||||
"MunifTanjim/nui.nvim",
|
|
||||||
},
|
|
||||||
config = function()
|
|
||||||
vim.keymap.set("n", "<C-n>", ":Neotree filesystem reveal left<CR>")
|
|
||||||
end,
|
|
||||||
}
|
|
24
.config/nvim/lua/plugins/none-ls.lua
Normal file
24
.config/nvim/lua/plugins/none-ls.lua
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
|
||||||
|
|
||||||
|
-- Customize None-ls sources
|
||||||
|
|
||||||
|
---@type LazySpec
|
||||||
|
return {
|
||||||
|
"nvimtools/none-ls.nvim",
|
||||||
|
opts = function(_, opts)
|
||||||
|
-- opts variable is the default configuration table for the setup function call
|
||||||
|
-- local null_ls = require "null-ls"
|
||||||
|
|
||||||
|
-- Check supported formatters and linters
|
||||||
|
-- https://github.com/nvimtools/none-ls.nvim/tree/main/lua/null-ls/builtins/formatting
|
||||||
|
-- https://github.com/nvimtools/none-ls.nvim/tree/main/lua/null-ls/builtins/diagnostics
|
||||||
|
|
||||||
|
-- Only insert new sources, do not replace the existing ones
|
||||||
|
-- (If you wish to replace, use `opts.sources = {}` instead of the `list_insert_unique` function)
|
||||||
|
opts.sources = require("astrocore").list_insert_unique(opts.sources, {
|
||||||
|
-- Set a formatter
|
||||||
|
-- null_ls.builtins.formatting.stylua,
|
||||||
|
-- null_ls.builtins.formatting.prettier,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
}
|
@ -1,61 +0,0 @@
|
|||||||
return {
|
|
||||||
"folke/snacks.nvim",
|
|
||||||
priority = 1000,
|
|
||||||
lazy = false,
|
|
||||||
---@type snacks.Config
|
|
||||||
opts = {
|
|
||||||
bigfile = { enabled = true },
|
|
||||||
indent = { enabled = true },
|
|
||||||
input = { enabled = true },
|
|
||||||
quickfile = { enabled = true },
|
|
||||||
scroll = { enabled = true },
|
|
||||||
statuscolumn = { enabled = true },
|
|
||||||
words = { enabled = true },
|
|
||||||
},
|
|
||||||
keys = {
|
|
||||||
{ "<leader>z", function() Snacks.zen() end, desc = "Toggle Zen Mode" },
|
|
||||||
{ "<leader>s", function() Snacks.scratch() end, desc = "Toggle Scratch Buffer" },
|
|
||||||
{ "<leader>S", function() Snacks.scratch.select() end, desc = "Select Scratch Buffer" },
|
|
||||||
{ "<c-/>", function() Snacks.terminal() end, desc = "Toggle Terminal" },
|
|
||||||
{ "<leader>gB", function() Snacks.gitbrowse() end, desc = "Git Browse", mode = { "n", "v" } },
|
|
||||||
{ "<leader>gb", function() Snacks.git.blame_line() end, desc = "Git Blame Line" },
|
|
||||||
{ "<leader>gf", function() Snacks.lazygit.log_file() end, desc = "Lazygit Current File History" },
|
|
||||||
{ "<leader>gg", function() Snacks.lazygit() end, desc = "Lazygit" },
|
|
||||||
{ "<leader>gl", function() Snacks.lazygit.log() end, desc = "Lazygit Log (cwd)" },
|
|
||||||
{
|
|
||||||
"<leader>N",
|
|
||||||
desc = "Neovim News",
|
|
||||||
function()
|
|
||||||
Snacks.win({
|
|
||||||
file = vim.api.nvim_get_runtime_file("doc/news.txt", false)[1],
|
|
||||||
width = 0.6,
|
|
||||||
height = 0.8,
|
|
||||||
wo = {
|
|
||||||
spell = false,
|
|
||||||
wrap = false,
|
|
||||||
signcolumn = "yes",
|
|
||||||
statuscolumn = " ",
|
|
||||||
conceallevel = 3,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
init = function()
|
|
||||||
vim.api.nvim_create_autocmd("User", {
|
|
||||||
pattern = "VeryLazy",
|
|
||||||
callback = function()
|
|
||||||
_G.dd = function(...)
|
|
||||||
Snacks.debug.inspect(...)
|
|
||||||
end
|
|
||||||
_G.bt = function()
|
|
||||||
Snacks.debug.backtrace()
|
|
||||||
end
|
|
||||||
vim.print = _G.dd
|
|
||||||
-- Create some toggle mappings
|
|
||||||
Snacks.toggle.option("spell", { name = "Spelling" }):map("<leader>us")
|
|
||||||
Snacks.toggle.option("wrap", { name = "Wrap" }):map("<leader>uw")
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
}
|
|
@ -1,20 +0,0 @@
|
|||||||
return {
|
|
||||||
'kdheepak/tabline.nvim',
|
|
||||||
config = function()
|
|
||||||
require'tabline'.setup {
|
|
||||||
enable = true,
|
|
||||||
options = {
|
|
||||||
section_separators = { '', ''},
|
|
||||||
component_separators = {'|', "|"},
|
|
||||||
max_bufferline_percent = 80,
|
|
||||||
show_tabs_always = true,
|
|
||||||
show_devicons = true,
|
|
||||||
show_bufnr = false,
|
|
||||||
show_filename_only = true,
|
|
||||||
modified_italic = true,
|
|
||||||
show_tabs_only = false,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
end,
|
|
||||||
requires = {'hoob3rt/lualine.nvim', 'kyazdani42/nvim-web-devicons'}
|
|
||||||
}
|
|
@ -1,89 +0,0 @@
|
|||||||
return {
|
|
||||||
{
|
|
||||||
"nvim-telescope/telescope.nvim",
|
|
||||||
tag = "0.1.8",
|
|
||||||
dependencies = { "nvim-lua/plenary.nvim" },
|
|
||||||
config = function()
|
|
||||||
local builtin = require("telescope.builtin")
|
|
||||||
vim.keymap.set("n", "<C-p>", builtin.find_files, {})
|
|
||||||
vim.keymap.set("n", "<A-f>", builtin.live_grep, {})
|
|
||||||
|
|
||||||
-- Function for searching and scoping into a directory
|
|
||||||
function search_and_scope_into_directory()
|
|
||||||
builtin.find_files({
|
|
||||||
prompt_title = "Search Directories",
|
|
||||||
find_command = {"fd", "--type", "d", "--hidden", "--follow"},
|
|
||||||
attach_mappings = function(prompt_bufnr, map)
|
|
||||||
local actions = require("telescope.actions")
|
|
||||||
actions.select_default:replace(function()
|
|
||||||
local selection = require("telescope.actions.state").get_selected_entry()
|
|
||||||
local selected_dir = selection.path
|
|
||||||
|
|
||||||
-- Change the current working directory to the selected directory
|
|
||||||
vim.cmd("cd " .. selected_dir)
|
|
||||||
actions.close(prompt_bufnr)
|
|
||||||
end)
|
|
||||||
return true
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Keybinding to trigger directory search and scoping
|
|
||||||
vim.keymap.set("n", "<A-d>", search_and_scope_into_directory)
|
|
||||||
end
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nvim-telescope/telescope-ui-select.nvim",
|
|
||||||
config = function()
|
|
||||||
require("telescope").setup({
|
|
||||||
extensions = {
|
|
||||||
["ui-select"] = {
|
|
||||||
require("telescope.themes").get_dropdown({}),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
defaults = {
|
|
||||||
file_ignore_patterns = {
|
|
||||||
"node_modules", "build", "dist", "yarn.lock"
|
|
||||||
},
|
|
||||||
vimgrep_arguments = {
|
|
||||||
"rg",
|
|
||||||
"--follow",
|
|
||||||
"--hidden",
|
|
||||||
"--no-heading",
|
|
||||||
"--with-filename",
|
|
||||||
"--line-number",
|
|
||||||
"--column",
|
|
||||||
"--smart-case",
|
|
||||||
"--glob=!**/.git/*",
|
|
||||||
"--glob=!**/.idea/*",
|
|
||||||
"--glob=!**/.vscode/*",
|
|
||||||
"--glob=!**/build/*",
|
|
||||||
"--glob=!**/dist/*",
|
|
||||||
"--glob=!**/yarn.lock",
|
|
||||||
"--glob=!**/package-lock.json",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
pickers = {
|
|
||||||
find_files = {
|
|
||||||
hidden = true,
|
|
||||||
find_command = {
|
|
||||||
"rg",
|
|
||||||
"--files",
|
|
||||||
"--hidden",
|
|
||||||
"--glob=!**/.git/*",
|
|
||||||
"--glob=!**/.idea/*",
|
|
||||||
"--glob=!**/.vscode/*",
|
|
||||||
"--glob=!**/build/*",
|
|
||||||
"--glob=!**/dist/*",
|
|
||||||
"--glob=!**/yarn.lock",
|
|
||||||
"--glob=!**/package-lock.json",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
require("telescope").load_extension("ui-select")
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
23
.config/nvim/lua/plugins/treesitter.lua
Executable file → Normal file
23
.config/nvim/lua/plugins/treesitter.lua
Executable file → Normal file
@ -1,12 +1,15 @@
|
|||||||
|
if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
|
||||||
|
|
||||||
|
-- Customize Treesitter
|
||||||
|
|
||||||
|
---@type LazySpec
|
||||||
return {
|
return {
|
||||||
"nvim-treesitter/nvim-treesitter",
|
"nvim-treesitter/nvim-treesitter",
|
||||||
build = ":TSUpdate",
|
opts = {
|
||||||
config = function()
|
ensure_installed = {
|
||||||
local config = require("nvim-treesitter.configs")
|
"lua",
|
||||||
config.setup({
|
"vim",
|
||||||
auto_install = true,
|
-- add more arguments for adding more treesitter parsers
|
||||||
highlight = { enable = true },
|
},
|
||||||
indent = { enable = true },
|
},
|
||||||
})
|
|
||||||
end,
|
|
||||||
}
|
}
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
return {
|
|
||||||
"nvzone/typr",
|
|
||||||
dependencies = "nvzone/volt",
|
|
||||||
opts = {
|
|
||||||
kblayout = {
|
|
||||||
{ "q", "w", "e", "r", "t", "y", "u", "i", "o", "p" },
|
|
||||||
{ "a", "s", "d", "f", "g", "h", "j", "k", "l", ";" },
|
|
||||||
{ "z", "x", "c", "v", "b", "n", "m", ",", ".", "/" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
cmd = { "Typr", "TyprStats" },
|
|
||||||
}
|
|
88
.config/nvim/lua/plugins/user.lua
Normal file
88
.config/nvim/lua/plugins/user.lua
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
|
||||||
|
|
||||||
|
-- You can also add or configure plugins by creating files in this `plugins/` folder
|
||||||
|
-- PLEASE REMOVE THE EXAMPLES YOU HAVE NO INTEREST IN BEFORE ENABLING THIS FILE
|
||||||
|
-- Here are some examples:
|
||||||
|
|
||||||
|
---@type LazySpec
|
||||||
|
return {
|
||||||
|
|
||||||
|
-- == Examples of Adding Plugins ==
|
||||||
|
|
||||||
|
"andweeb/presence.nvim",
|
||||||
|
{
|
||||||
|
"ray-x/lsp_signature.nvim",
|
||||||
|
event = "BufRead",
|
||||||
|
config = function() require("lsp_signature").setup() end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- == Examples of Overriding Plugins ==
|
||||||
|
|
||||||
|
-- customize dashboard options
|
||||||
|
{
|
||||||
|
"folke/snacks.nvim",
|
||||||
|
opts = {
|
||||||
|
dashboard = {
|
||||||
|
preset = {
|
||||||
|
header = table.concat({
|
||||||
|
" █████ ███████ ████████ ██████ ██████ ",
|
||||||
|
"██ ██ ██ ██ ██ ██ ██ ██",
|
||||||
|
"███████ ███████ ██ ██████ ██ ██",
|
||||||
|
"██ ██ ██ ██ ██ ██ ██ ██",
|
||||||
|
"██ ██ ███████ ██ ██ ██ ██████ ",
|
||||||
|
"",
|
||||||
|
"███ ██ ██ ██ ██ ███ ███",
|
||||||
|
"████ ██ ██ ██ ██ ████ ████",
|
||||||
|
"██ ██ ██ ██ ██ ██ ██ ████ ██",
|
||||||
|
"██ ██ ██ ██ ██ ██ ██ ██ ██",
|
||||||
|
"██ ████ ████ ██ ██ ██",
|
||||||
|
}, "\n"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- You can disable default plugins as follows:
|
||||||
|
{ "max397574/better-escape.nvim", enabled = false },
|
||||||
|
|
||||||
|
-- You can also easily customize additional setup of plugins that is outside of the plugin's setup call
|
||||||
|
{
|
||||||
|
"L3MON4D3/LuaSnip",
|
||||||
|
config = function(plugin, opts)
|
||||||
|
require "astronvim.plugins.configs.luasnip"(plugin, opts) -- include the default astronvim config that calls the setup call
|
||||||
|
-- add more custom luasnip configuration such as filetype extend or custom snippets
|
||||||
|
local luasnip = require "luasnip"
|
||||||
|
luasnip.filetype_extend("javascript", { "javascriptreact" })
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"windwp/nvim-autopairs",
|
||||||
|
config = function(plugin, opts)
|
||||||
|
require "astronvim.plugins.configs.nvim-autopairs"(plugin, opts) -- include the default astronvim config that calls the setup call
|
||||||
|
-- add more custom autopairs configuration such as custom rules
|
||||||
|
local npairs = require "nvim-autopairs"
|
||||||
|
local Rule = require "nvim-autopairs.rule"
|
||||||
|
local cond = require "nvim-autopairs.conds"
|
||||||
|
npairs.add_rules(
|
||||||
|
{
|
||||||
|
Rule("$", "$", { "tex", "latex" })
|
||||||
|
-- don't add a pair if the next character is %
|
||||||
|
:with_pair(cond.not_after_regex "%%")
|
||||||
|
-- don't add a pair if the previous character is xxx
|
||||||
|
:with_pair(
|
||||||
|
cond.not_before_regex("xxx", 3)
|
||||||
|
)
|
||||||
|
-- don't move right when repeat character
|
||||||
|
:with_move(cond.none())
|
||||||
|
-- don't delete if the next character is xx
|
||||||
|
:with_del(cond.not_after_regex "xx")
|
||||||
|
-- disable adding a newline when you press <cr>
|
||||||
|
:with_cr(cond.none()),
|
||||||
|
},
|
||||||
|
-- disable for .vim files, but it work for another filetypes
|
||||||
|
Rule("a", "a", "-vim")
|
||||||
|
)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
5
.config/nvim/lua/polish.lua
Normal file
5
.config/nvim/lua/polish.lua
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
if true then return end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
|
||||||
|
|
||||||
|
-- This will run last in the setup process.
|
||||||
|
-- This is just pure lua so anything that doesn't
|
||||||
|
-- fit in the normal config locations above can go here
|
@ -1,5 +0,0 @@
|
|||||||
vim.cmd("set expandtab")
|
|
||||||
vim.cmd("set tabstop=4")
|
|
||||||
vim.cmd("set softtabstop=4")
|
|
||||||
vim.cmd("set shiftwidth=4")
|
|
||||||
vim.g.mapleader = " "
|
|
6
.config/nvim/neovim.yml
Normal file
6
.config/nvim/neovim.yml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
base: lua51
|
||||||
|
|
||||||
|
globals:
|
||||||
|
vim:
|
||||||
|
any: true
|
8
.config/nvim/selene.toml
Normal file
8
.config/nvim/selene.toml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
std = "neovim"
|
||||||
|
|
||||||
|
[rules]
|
||||||
|
global_usage = "allow"
|
||||||
|
if_same_then_else = "allow"
|
||||||
|
incorrect_standard_library_use = "allow"
|
||||||
|
mixed_table = "allow"
|
||||||
|
multiple_statements = "allow"
|
8
.config/wofi/projects
Normal file
8
.config/wofi/projects
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[config]
|
||||||
|
allow_images=true
|
||||||
|
show=drun
|
||||||
|
width=800
|
||||||
|
height=600
|
||||||
|
always_parse_args=true
|
||||||
|
show_all=true
|
||||||
|
term=kitty
|
88
.config/wofi/style-projects.css
Normal file
88
.config/wofi/style-projects.css
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
@import url("/home/eli/.cache/wal/colors-waybar.css");
|
||||||
|
@define-color mauve @color9;
|
||||||
|
@define-color red @color9;
|
||||||
|
@define-color lavender @color7;
|
||||||
|
@define-color text @color7;
|
||||||
|
* {
|
||||||
|
all: unset;
|
||||||
|
font-family: "CodeNewRoman Nerd Font Mono", monospace;
|
||||||
|
font-size: 18px;
|
||||||
|
outline: none;
|
||||||
|
border: none;
|
||||||
|
text-shadow: none;
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
window {
|
||||||
|
all: unset;
|
||||||
|
padding: 20px;
|
||||||
|
border-radius: 0px;
|
||||||
|
background-color: alpha(@background, 0.5);
|
||||||
|
}
|
||||||
|
#inner-box {
|
||||||
|
margin: 2px;
|
||||||
|
padding: 5px;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
#outer-box {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
#scroll {
|
||||||
|
margin: 0px;
|
||||||
|
padding: 30px;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
#input {
|
||||||
|
all: unset;
|
||||||
|
margin-left: 20px;
|
||||||
|
margin-right: 20px;
|
||||||
|
margin-top: 20px;
|
||||||
|
padding: 20px;
|
||||||
|
border: none;
|
||||||
|
outline: none;
|
||||||
|
color: @text;
|
||||||
|
box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.5);
|
||||||
|
border-radius: 10;
|
||||||
|
background-color: alpha(@background, 0.2);
|
||||||
|
}
|
||||||
|
#input image {
|
||||||
|
border: none;
|
||||||
|
color: @red;
|
||||||
|
padding-right: 10px;
|
||||||
|
}
|
||||||
|
#input * {
|
||||||
|
border: none;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#input:focus {
|
||||||
|
outline: none;
|
||||||
|
border: none;
|
||||||
|
|
||||||
|
border-radius: 10;
|
||||||
|
}
|
||||||
|
#text {
|
||||||
|
margin: 5px;
|
||||||
|
border: none;
|
||||||
|
color: @text;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
#entry {
|
||||||
|
all: unset;
|
||||||
|
padding: 20 0 20 45;
|
||||||
|
}
|
||||||
|
#entry arrow {
|
||||||
|
border: none;
|
||||||
|
color: @lavender;
|
||||||
|
}
|
||||||
|
#entry:selected {
|
||||||
|
border: none;
|
||||||
|
border-radius: 20px;
|
||||||
|
background-color: rgba(0, 0, 0, 0.15);
|
||||||
|
}
|
||||||
|
#entry:selected #text {
|
||||||
|
color: @mauve;
|
||||||
|
}
|
||||||
|
#entry:drop(active) {
|
||||||
|
background-color: @lavender !important;
|
||||||
|
}
|
@ -80,7 +80,7 @@ window {
|
|||||||
#entry:selected {
|
#entry:selected {
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 20px;
|
border-radius: 20px;
|
||||||
background-color: alpha(@background,.2);
|
background-color: rgba(0, 0, 0, 0.15);
|
||||||
}
|
}
|
||||||
#entry:selected #text {
|
#entry:selected #text {
|
||||||
color: @mauve;
|
color: @mauve;
|
||||||
|
@ -1,25 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
sudo chmod -R 777 $HOME
|
|
||||||
yay -S reflector rsync
|
|
||||||
sudo reflector --country 'US' --latest 10 --sort rate --save /etc/pacman.d/mirrorlist
|
|
||||||
yay -S pywal swww
|
|
||||||
wal -i ~/Dotfiles/wallpapers/walls/r82.jpg -n
|
|
||||||
yay -S waybar swaync starship myfetch neovim python-pywalfox hypridle hyprpicker hyprshot hyprlock pyprland wlogout fd cava brightnessctl clock-rs-git
|
|
||||||
yay -S nerd-fonts
|
|
||||||
yay -S nwg-look qogir-icon-theme materia-gtk-theme illogical-impulse-bibata-modern-classic-bin
|
|
||||||
yay -S thunar gvfs tumbler eza bottom htop
|
|
||||||
yay -S libreoffice-fresh
|
|
||||||
yay -S spotify ncspot discord code
|
|
||||||
yay -S blueman bluez
|
|
||||||
systemctl enable bluetooth
|
|
||||||
yay -S pipewire pipewire-pulse pipewire-alsa pipewire-jack pavucontrol pulsemixer
|
|
||||||
systemctl --user enable pipewire.service pipewire-pulse.service
|
|
||||||
systemctl --user start pipewire.service pipewire-pulse.service
|
|
||||||
yay -S gnome-network-displays gst-plugins-bad
|
|
||||||
sudo systemctl enable avahi-daemon
|
|
||||||
hyprpm add https://github.com/virtcode/hypr-dynamic-cursors
|
|
||||||
hyprpm enable dynamic-cursors
|
|
||||||
sudo cp -f -r ~/Dotfiles/wallpapers ~/
|
|
||||||
sudo cp -r -f ~/Dotfiles/.config/* ~/.config/
|
|
||||||
sudo cp -r -f ~/Dotfiles/.bashrc ~/
|
|
||||||
notify-send "Open Terminal with MOD+Q" "Hello $USER,\nThank you for downloading my Dotfiles\n-EF"
|
|
@ -1,81 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# Ask if they want automatic or manual installation
|
|
||||||
read -p "Do you want automatic (default) or manual installation? (a/m): " install_choice
|
|
||||||
install_choice=${install_choice:-a} # Default to 'a' if empty
|
|
||||||
# Ask if they want to backup their .config
|
|
||||||
read -p "Do you want to backup your current .config directory? (y/n, default: y): " backup_choice
|
|
||||||
backup_choice=${backup_choice:-y} # Default to 'y' if empty
|
|
||||||
if [[ "$backup_choice" == "y" ]]; then
|
|
||||||
cp -r ~/.config ~/.config_backup
|
|
||||||
echo "Backup of .config created at ~/.config_backup"
|
|
||||||
fi
|
|
||||||
# Automatic install section
|
|
||||||
if [[ $install_choice == "a" ]]; then
|
|
||||||
sudo chmod -R 777 $HOME
|
|
||||||
yay -S reflector rsync python-pywal16 swww waybar swaync starship myfetch neovim python-pywalfox hypridle hyprpicker hyprshot hyprlock pyprland wlogout fd cava brightnessctl clock-rs-git nerd-fonts nwg-look qogir-icon-theme materia-gtk-theme illogical-impulse-bibata-modern-classic-bin thunar gvfs tumbler eza bottom htop libreoffice-fresh spotify ncspot discord code blueman bluez pipewire pipewire-pulse pipewire-alsa pipewire-jack pavucontrol pulsemixer gnome-network-displays gst-plugins-bad
|
|
||||||
sudo reflector --country 'US' --latest 10 --sort rate --save /etc/pacman.d/mirrorlist
|
|
||||||
systemctl enable bluetooth
|
|
||||||
systemctl --user enable pipewire.service
|
|
||||||
systemctl --user enable pipewire-pulse.service
|
|
||||||
systemctl --user start pipewire.service
|
|
||||||
systemctl --user start pipewire-pulse.service
|
|
||||||
sudo systemctl enable avahi-daemon
|
|
||||||
# Set wallpaper
|
|
||||||
wal -i ~/Dotfiles/wallpapers/pywallpaper.jpg -n
|
|
||||||
# Dynamic-Cursors setup
|
|
||||||
hyprpm add https://github.com/virtcode/hypr-dynamic-cursors
|
|
||||||
hyprpm enable dynamic-cursors
|
|
||||||
# Copy files
|
|
||||||
sudo cp -a ~/Dotfiles/wallpapers ~/
|
|
||||||
sudo cp -a ~/Dotfiles/.config/* ~/.config/
|
|
||||||
sudo cp -a ~/Dotfiles/.bashrc ~/
|
|
||||||
notify-send "Open Terminal with MOD+Q" "Hello $USER,\nThank you for downloading my Dotfiles\n-EF"
|
|
||||||
# Manual install section
|
|
||||||
elif [[ $install_choice == "m" ]]; then
|
|
||||||
sudo chmod -R 777 $HOME
|
|
||||||
read -p "Do you want to change your mirrorlist to the best one for US? (y/n, default: y): " mirror_choice
|
|
||||||
mirror_choice=${mirror_choice:-y} # Default to 'y' if empty
|
|
||||||
if [[ "$mirror_choice" == "y" ]]; then
|
|
||||||
yay -S reflector rsync
|
|
||||||
sudo reflector --country 'US' --latest 10 --sort rate --save /etc/pacman.d/mirrorlist
|
|
||||||
fi
|
|
||||||
# Confirm each package installation
|
|
||||||
for package in python-pywal16 swww waybar swaync starship myfetch neovim python-pywalfox hypridle hyprpicker hyprshot hyprlock pyprland wlogout fd cava brightnessctl clock-rs-git nerd-fonts nwg-look qogir-icon-theme materia-gtk-theme illogical-impulse-bibata-modern-classic-bin thunar gvfs tumbler eza bottom htop libreoffice-fresh spotify ncspot discord code; do
|
|
||||||
read -p "Do you want to install $package? (y/n, default: y): " choice
|
|
||||||
choice=${choice:-y} # Default to 'y' if empty
|
|
||||||
if [[ "$choice" == "y" ]]; then
|
|
||||||
yay -S $package
|
|
||||||
clear
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
wal -i ~/Dotfiles/wallpapers/pywallpaper.jpg -n
|
|
||||||
# Ask for bluetooth
|
|
||||||
read -p "Do you want to install Bluetooth support? (y/n, default: y): " bluetooth_choice
|
|
||||||
bluetooth_choice=${bluetooth_choice:-y} # Default to 'y' if empty
|
|
||||||
if [[ "$bluetooth_choice" == "y" ]]; then
|
|
||||||
yay -S blueman bluez
|
|
||||||
systemctl enable bluetooth
|
|
||||||
fi
|
|
||||||
# Ask for Pipewire and Network Displays
|
|
||||||
read -p "Do you want to configure Pipewire and Network Displays? (y/n, default: y): " pipewire_choice
|
|
||||||
pipewire_choice=${pipewire_choice:-y} # Default to 'y' if empty
|
|
||||||
if [[ "$pipewire_choice" == "y" ]]; then
|
|
||||||
yay -S pipewire pipewire-pulse pipewire-alsa pipewire-jack pavucontrol pulsemixer gnome-network-displays gst-plugins-bad
|
|
||||||
systemctl --user enable pipewire.service
|
|
||||||
systemctl --user enable pipewire-pulse.service
|
|
||||||
systemctl --user start pipewire.service
|
|
||||||
systemctl --user start pipewire-pulse.service
|
|
||||||
fi
|
|
||||||
# Dynamic-Cursors setup
|
|
||||||
read -p "Do you want to enable Dynamic-Cursors? (y/n, default: y): " cursors_choice
|
|
||||||
cursors_choice=${cursors_choice:-y} # Default to 'y' if empty
|
|
||||||
if [[ "$cursors_choice" == "y" ]]; then
|
|
||||||
hyprpm add https://github.com/virtcode/hypr-dynamic-cursors
|
|
||||||
hyprpm enable dynamic-cursors
|
|
||||||
fi
|
|
||||||
# Copy files
|
|
||||||
sudo cp -a ~/Dotfiles/wallpapers ~/
|
|
||||||
sudo cp -a ~/Dotfiles/.config/* ~/.config/
|
|
||||||
sudo cp -a ~/Dotfiles/.bashrc ~/
|
|
||||||
notify-send "Open Terminal with MOD+Q" "Hello $USER,\nThank you for downloading my Dotfiles\n-EF"
|
|
||||||
fi
|
|
@ -1,5 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
yay -S nwg-look qogir-icon-theme materia-gtk-theme illogical-impulse-bibata-modern-classic-bin
|
|
||||||
echo "___________________________________________"
|
|
||||||
echo "Use nwg-look to set gtk themes for hyprland"
|
|
||||||
echo "___________________________________________"
|
|
@ -1,5 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
yay -S hyprlock pywal
|
|
||||||
wal -i ~/Dotfiles/wallpapers/pywallpaper.jpg
|
|
||||||
sudo cp -a ~/Dotfiles/.config/wal ~/.config/
|
|
||||||
sudo cp -a ~/Dotfiles/.config/hypr/hyprlock.conf ~/.config/hypr/
|
|
@ -1,49 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
clear
|
|
||||||
echo "1. All"
|
|
||||||
echo "2. waybar"
|
|
||||||
echo "3. wofi"
|
|
||||||
echo "4. swaync"
|
|
||||||
echo "5. hyprlock"
|
|
||||||
echo "6. nvim"
|
|
||||||
echo "7. wlogout"
|
|
||||||
echo "8. wallpaper solution"
|
|
||||||
echo "9. starship"
|
|
||||||
echo "0. GTK themes"
|
|
||||||
read -p "Please choose what to install (1,2,3,4,5,6,7,8,9,0): " choice
|
|
||||||
|
|
||||||
if [ "$choice" -eq 1 ]; then
|
|
||||||
clear
|
|
||||||
chmod +x ~/Dotfiles/InstallScripts/fullinstall.sh && ~/Dotfiles/InstallScripts/fullinstall.sh
|
|
||||||
elif [ "$choice" -eq 2 ]; then
|
|
||||||
clear
|
|
||||||
chmod +x ~/Dotfiles/InstallScripts/waybarinstall.sh && ~/Dotfiles/InstallScripts/waybarinstall.sh
|
|
||||||
elif [ "$choice" -eq 3 ]; then
|
|
||||||
clear
|
|
||||||
chmod +x ~/Dotfiles/InstallScripts/wofiinstall.sh && ~/Dotfiles/InstallScripts/wofiinstall.sh
|
|
||||||
elif [ "$choice" -eq 4 ]; then
|
|
||||||
clear
|
|
||||||
chmod +x ~/Dotfiles/InstallScripts/swayncinstall.sh && ~/Dotfiles/InstallScripts/swayncinstall.sh
|
|
||||||
elif [ "$choice" -eq 5 ]; then
|
|
||||||
clear
|
|
||||||
chmod +x ~/Dotfiles/InstallScripts/hyprlockinstall.sh && ~/Dotfiles/InstallScripts/hyprlockinstall.sh
|
|
||||||
elif [ "$choice" -eq 6 ]; then
|
|
||||||
clear
|
|
||||||
chmod +x ~/Dotfiles/InstallScripts/nviminstall.sh && ~/Dotfiles/InstallScripts/nviminstall.sh
|
|
||||||
elif [ "$choice" -eq 7 ]; then
|
|
||||||
clear
|
|
||||||
chmod +x ~/Dotfiles/InstallScripts/wlogoutinstall.sh && ~/Dotfiles/InstallScripts/wlogoutinstall.sh
|
|
||||||
elif [ "$choice" -eq 8 ]; then
|
|
||||||
clear
|
|
||||||
chmod +x ~/Dotfiles/InstallScripts/wallpapersolution.sh && ~/Dotfiles/InstallScripts/wallpapersolution.sh
|
|
||||||
elif [ "$choice" -eq 9 ]; then
|
|
||||||
clear
|
|
||||||
chmod +x ~/Dotfiles/InstallScripts/starshipinstall.sh && ~/Dotfiles/InstallScripts/starshipinstall.sh
|
|
||||||
elif [ "$choice" -eq 0 ]; then
|
|
||||||
clear
|
|
||||||
chmod +x ~/Dotfiles/InstallScripts/gtkthemesinstall.sh && ~/Dotfiles/InstallScripts/gtkthemesinstall.sh
|
|
||||||
else
|
|
||||||
echo "Invalid choice. Try Again"
|
|
||||||
fi
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
yay -S neovim pywal lazygit
|
|
||||||
wal -i ~/Dotfiles/wallpapers/pywallpaper.jpg
|
|
||||||
sudo cp -a ~/Dotfiles/.config/nvim ~/.config/
|
|
@ -1,3 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
yay -S starship
|
|
||||||
sudo cp -a ~/Dotfiles/.config/starship.toml ~/.config/
|
|
@ -1,4 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
yay -S swaync gvfs pywal
|
|
||||||
wal -i ~/Dotfiles/wallpapers/pywallpaper.jpg
|
|
||||||
sudo cp -a ~/Dotfiles/.config/swaync ~/.config/
|
|
@ -1,6 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
yay -S swww pywal fd wofi
|
|
||||||
wal -i ~/Dotfiles/wallpapers/pywallpaper.jpg
|
|
||||||
sudo cp -a ~/Dotfiles/.config/hypr/wallpaper.sh ~/.config/hypr/wallpaper.sh
|
|
||||||
sudo cp -a ~/Dotfiles/.config/wofi/config1 ~/.config/wofi/
|
|
||||||
sudo cp -a ~/Dotfiles/.config/wofi/style1.css ~/.config/wofi/
|
|
@ -1,6 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
yay -S waybar hyprpicker otf-codenewroman-nerd pywal
|
|
||||||
wal -i ~/Dotfiles/wallpapers/pywallpaper.jpg
|
|
||||||
yay -S blueman bluez
|
|
||||||
systemctl enable bluetooth
|
|
||||||
sudo cp -a ~/Dotfiles/.config/waybar ~/.config/
|
|
@ -1,4 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
yay -S wlogout pywal
|
|
||||||
wal -i ~/Dotfiles/wallpapers/pywallpaper.jpg
|
|
||||||
sudo cp -a ~/Dotfiles/.config/wlogout ~/.config/
|
|
@ -1,4 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
yay -S wofi pywal
|
|
||||||
wal -i ~/Dotfiles/wallpapers/pywallpaper.jpg
|
|
||||||
sudo cp -a ~/Dotfiles/.config/wofi ~/.config/
|
|
674
LICENSE
674
LICENSE
@ -1,674 +0,0 @@
|
|||||||
GNU GENERAL PUBLIC LICENSE
|
|
||||||
Version 3, 29 June 2007
|
|
||||||
|
|
||||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
|
||||||
of this license document, but changing it is not allowed.
|
|
||||||
|
|
||||||
Preamble
|
|
||||||
|
|
||||||
The GNU General Public License is a free, copyleft license for
|
|
||||||
software and other kinds of works.
|
|
||||||
|
|
||||||
The licenses for most software and other practical works are designed
|
|
||||||
to take away your freedom to share and change the works. By contrast,
|
|
||||||
the GNU General Public License is intended to guarantee your freedom to
|
|
||||||
share and change all versions of a program--to make sure it remains free
|
|
||||||
software for all its users. We, the Free Software Foundation, use the
|
|
||||||
GNU General Public License for most of our software; it applies also to
|
|
||||||
any other work released this way by its authors. You can apply it to
|
|
||||||
your programs, too.
|
|
||||||
|
|
||||||
When we speak of free software, we are referring to freedom, not
|
|
||||||
price. Our General Public Licenses are designed to make sure that you
|
|
||||||
have the freedom to distribute copies of free software (and charge for
|
|
||||||
them if you wish), that you receive source code or can get it if you
|
|
||||||
want it, that you can change the software or use pieces of it in new
|
|
||||||
free programs, and that you know you can do these things.
|
|
||||||
|
|
||||||
To protect your rights, we need to prevent others from denying you
|
|
||||||
these rights or asking you to surrender the rights. Therefore, you have
|
|
||||||
certain responsibilities if you distribute copies of the software, or if
|
|
||||||
you modify it: responsibilities to respect the freedom of others.
|
|
||||||
|
|
||||||
For example, if you distribute copies of such a program, whether
|
|
||||||
gratis or for a fee, you must pass on to the recipients the same
|
|
||||||
freedoms that you received. You must make sure that they, too, receive
|
|
||||||
or can get the source code. And you must show them these terms so they
|
|
||||||
know their rights.
|
|
||||||
|
|
||||||
Developers that use the GNU GPL protect your rights with two steps:
|
|
||||||
(1) assert copyright on the software, and (2) offer you this License
|
|
||||||
giving you legal permission to copy, distribute and/or modify it.
|
|
||||||
|
|
||||||
For the developers' and authors' protection, the GPL clearly explains
|
|
||||||
that there is no warranty for this free software. For both users' and
|
|
||||||
authors' sake, the GPL requires that modified versions be marked as
|
|
||||||
changed, so that their problems will not be attributed erroneously to
|
|
||||||
authors of previous versions.
|
|
||||||
|
|
||||||
Some devices are designed to deny users access to install or run
|
|
||||||
modified versions of the software inside them, although the manufacturer
|
|
||||||
can do so. This is fundamentally incompatible with the aim of
|
|
||||||
protecting users' freedom to change the software. The systematic
|
|
||||||
pattern of such abuse occurs in the area of products for individuals to
|
|
||||||
use, which is precisely where it is most unacceptable. Therefore, we
|
|
||||||
have designed this version of the GPL to prohibit the practice for those
|
|
||||||
products. If such problems arise substantially in other domains, we
|
|
||||||
stand ready to extend this provision to those domains in future versions
|
|
||||||
of the GPL, as needed to protect the freedom of users.
|
|
||||||
|
|
||||||
Finally, every program is threatened constantly by software patents.
|
|
||||||
States should not allow patents to restrict development and use of
|
|
||||||
software on general-purpose computers, but in those that do, we wish to
|
|
||||||
avoid the special danger that patents applied to a free program could
|
|
||||||
make it effectively proprietary. To prevent this, the GPL assures that
|
|
||||||
patents cannot be used to render the program non-free.
|
|
||||||
|
|
||||||
The precise terms and conditions for copying, distribution and
|
|
||||||
modification follow.
|
|
||||||
|
|
||||||
TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
0. Definitions.
|
|
||||||
|
|
||||||
"This License" refers to version 3 of the GNU General Public License.
|
|
||||||
|
|
||||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
|
||||||
works, such as semiconductor masks.
|
|
||||||
|
|
||||||
"The Program" refers to any copyrightable work licensed under this
|
|
||||||
License. Each licensee is addressed as "you". "Licensees" and
|
|
||||||
"recipients" may be individuals or organizations.
|
|
||||||
|
|
||||||
To "modify" a work means to copy from or adapt all or part of the work
|
|
||||||
in a fashion requiring copyright permission, other than the making of an
|
|
||||||
exact copy. The resulting work is called a "modified version" of the
|
|
||||||
earlier work or a work "based on" the earlier work.
|
|
||||||
|
|
||||||
A "covered work" means either the unmodified Program or a work based
|
|
||||||
on the Program.
|
|
||||||
|
|
||||||
To "propagate" a work means to do anything with it that, without
|
|
||||||
permission, would make you directly or secondarily liable for
|
|
||||||
infringement under applicable copyright law, except executing it on a
|
|
||||||
computer or modifying a private copy. Propagation includes copying,
|
|
||||||
distribution (with or without modification), making available to the
|
|
||||||
public, and in some countries other activities as well.
|
|
||||||
|
|
||||||
To "convey" a work means any kind of propagation that enables other
|
|
||||||
parties to make or receive copies. Mere interaction with a user through
|
|
||||||
a computer network, with no transfer of a copy, is not conveying.
|
|
||||||
|
|
||||||
An interactive user interface displays "Appropriate Legal Notices"
|
|
||||||
to the extent that it includes a convenient and prominently visible
|
|
||||||
feature that (1) displays an appropriate copyright notice, and (2)
|
|
||||||
tells the user that there is no warranty for the work (except to the
|
|
||||||
extent that warranties are provided), that licensees may convey the
|
|
||||||
work under this License, and how to view a copy of this License. If
|
|
||||||
the interface presents a list of user commands or options, such as a
|
|
||||||
menu, a prominent item in the list meets this criterion.
|
|
||||||
|
|
||||||
1. Source Code.
|
|
||||||
|
|
||||||
The "source code" for a work means the preferred form of the work
|
|
||||||
for making modifications to it. "Object code" means any non-source
|
|
||||||
form of a work.
|
|
||||||
|
|
||||||
A "Standard Interface" means an interface that either is an official
|
|
||||||
standard defined by a recognized standards body, or, in the case of
|
|
||||||
interfaces specified for a particular programming language, one that
|
|
||||||
is widely used among developers working in that language.
|
|
||||||
|
|
||||||
The "System Libraries" of an executable work include anything, other
|
|
||||||
than the work as a whole, that (a) is included in the normal form of
|
|
||||||
packaging a Major Component, but which is not part of that Major
|
|
||||||
Component, and (b) serves only to enable use of the work with that
|
|
||||||
Major Component, or to implement a Standard Interface for which an
|
|
||||||
implementation is available to the public in source code form. A
|
|
||||||
"Major Component", in this context, means a major essential component
|
|
||||||
(kernel, window system, and so on) of the specific operating system
|
|
||||||
(if any) on which the executable work runs, or a compiler used to
|
|
||||||
produce the work, or an object code interpreter used to run it.
|
|
||||||
|
|
||||||
The "Corresponding Source" for a work in object code form means all
|
|
||||||
the source code needed to generate, install, and (for an executable
|
|
||||||
work) run the object code and to modify the work, including scripts to
|
|
||||||
control those activities. However, it does not include the work's
|
|
||||||
System Libraries, or general-purpose tools or generally available free
|
|
||||||
programs which are used unmodified in performing those activities but
|
|
||||||
which are not part of the work. For example, Corresponding Source
|
|
||||||
includes interface definition files associated with source files for
|
|
||||||
the work, and the source code for shared libraries and dynamically
|
|
||||||
linked subprograms that the work is specifically designed to require,
|
|
||||||
such as by intimate data communication or control flow between those
|
|
||||||
subprograms and other parts of the work.
|
|
||||||
|
|
||||||
The Corresponding Source need not include anything that users
|
|
||||||
can regenerate automatically from other parts of the Corresponding
|
|
||||||
Source.
|
|
||||||
|
|
||||||
The Corresponding Source for a work in source code form is that
|
|
||||||
same work.
|
|
||||||
|
|
||||||
2. Basic Permissions.
|
|
||||||
|
|
||||||
All rights granted under this License are granted for the term of
|
|
||||||
copyright on the Program, and are irrevocable provided the stated
|
|
||||||
conditions are met. This License explicitly affirms your unlimited
|
|
||||||
permission to run the unmodified Program. The output from running a
|
|
||||||
covered work is covered by this License only if the output, given its
|
|
||||||
content, constitutes a covered work. This License acknowledges your
|
|
||||||
rights of fair use or other equivalent, as provided by copyright law.
|
|
||||||
|
|
||||||
You may make, run and propagate covered works that you do not
|
|
||||||
convey, without conditions so long as your license otherwise remains
|
|
||||||
in force. You may convey covered works to others for the sole purpose
|
|
||||||
of having them make modifications exclusively for you, or provide you
|
|
||||||
with facilities for running those works, provided that you comply with
|
|
||||||
the terms of this License in conveying all material for which you do
|
|
||||||
not control copyright. Those thus making or running the covered works
|
|
||||||
for you must do so exclusively on your behalf, under your direction
|
|
||||||
and control, on terms that prohibit them from making any copies of
|
|
||||||
your copyrighted material outside their relationship with you.
|
|
||||||
|
|
||||||
Conveying under any other circumstances is permitted solely under
|
|
||||||
the conditions stated below. Sublicensing is not allowed; section 10
|
|
||||||
makes it unnecessary.
|
|
||||||
|
|
||||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
|
||||||
|
|
||||||
No covered work shall be deemed part of an effective technological
|
|
||||||
measure under any applicable law fulfilling obligations under article
|
|
||||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
|
||||||
similar laws prohibiting or restricting circumvention of such
|
|
||||||
measures.
|
|
||||||
|
|
||||||
When you convey a covered work, you waive any legal power to forbid
|
|
||||||
circumvention of technological measures to the extent such circumvention
|
|
||||||
is effected by exercising rights under this License with respect to
|
|
||||||
the covered work, and you disclaim any intention to limit operation or
|
|
||||||
modification of the work as a means of enforcing, against the work's
|
|
||||||
users, your or third parties' legal rights to forbid circumvention of
|
|
||||||
technological measures.
|
|
||||||
|
|
||||||
4. Conveying Verbatim Copies.
|
|
||||||
|
|
||||||
You may convey verbatim copies of the Program's source code as you
|
|
||||||
receive it, in any medium, provided that you conspicuously and
|
|
||||||
appropriately publish on each copy an appropriate copyright notice;
|
|
||||||
keep intact all notices stating that this License and any
|
|
||||||
non-permissive terms added in accord with section 7 apply to the code;
|
|
||||||
keep intact all notices of the absence of any warranty; and give all
|
|
||||||
recipients a copy of this License along with the Program.
|
|
||||||
|
|
||||||
You may charge any price or no price for each copy that you convey,
|
|
||||||
and you may offer support or warranty protection for a fee.
|
|
||||||
|
|
||||||
5. Conveying Modified Source Versions.
|
|
||||||
|
|
||||||
You may convey a work based on the Program, or the modifications to
|
|
||||||
produce it from the Program, in the form of source code under the
|
|
||||||
terms of section 4, provided that you also meet all of these conditions:
|
|
||||||
|
|
||||||
a) The work must carry prominent notices stating that you modified
|
|
||||||
it, and giving a relevant date.
|
|
||||||
|
|
||||||
b) The work must carry prominent notices stating that it is
|
|
||||||
released under this License and any conditions added under section
|
|
||||||
7. This requirement modifies the requirement in section 4 to
|
|
||||||
"keep intact all notices".
|
|
||||||
|
|
||||||
c) You must license the entire work, as a whole, under this
|
|
||||||
License to anyone who comes into possession of a copy. This
|
|
||||||
License will therefore apply, along with any applicable section 7
|
|
||||||
additional terms, to the whole of the work, and all its parts,
|
|
||||||
regardless of how they are packaged. This License gives no
|
|
||||||
permission to license the work in any other way, but it does not
|
|
||||||
invalidate such permission if you have separately received it.
|
|
||||||
|
|
||||||
d) If the work has interactive user interfaces, each must display
|
|
||||||
Appropriate Legal Notices; however, if the Program has interactive
|
|
||||||
interfaces that do not display Appropriate Legal Notices, your
|
|
||||||
work need not make them do so.
|
|
||||||
|
|
||||||
A compilation of a covered work with other separate and independent
|
|
||||||
works, which are not by their nature extensions of the covered work,
|
|
||||||
and which are not combined with it such as to form a larger program,
|
|
||||||
in or on a volume of a storage or distribution medium, is called an
|
|
||||||
"aggregate" if the compilation and its resulting copyright are not
|
|
||||||
used to limit the access or legal rights of the compilation's users
|
|
||||||
beyond what the individual works permit. Inclusion of a covered work
|
|
||||||
in an aggregate does not cause this License to apply to the other
|
|
||||||
parts of the aggregate.
|
|
||||||
|
|
||||||
6. Conveying Non-Source Forms.
|
|
||||||
|
|
||||||
You may convey a covered work in object code form under the terms
|
|
||||||
of sections 4 and 5, provided that you also convey the
|
|
||||||
machine-readable Corresponding Source under the terms of this License,
|
|
||||||
in one of these ways:
|
|
||||||
|
|
||||||
a) Convey the object code in, or embodied in, a physical product
|
|
||||||
(including a physical distribution medium), accompanied by the
|
|
||||||
Corresponding Source fixed on a durable physical medium
|
|
||||||
customarily used for software interchange.
|
|
||||||
|
|
||||||
b) Convey the object code in, or embodied in, a physical product
|
|
||||||
(including a physical distribution medium), accompanied by a
|
|
||||||
written offer, valid for at least three years and valid for as
|
|
||||||
long as you offer spare parts or customer support for that product
|
|
||||||
model, to give anyone who possesses the object code either (1) a
|
|
||||||
copy of the Corresponding Source for all the software in the
|
|
||||||
product that is covered by this License, on a durable physical
|
|
||||||
medium customarily used for software interchange, for a price no
|
|
||||||
more than your reasonable cost of physically performing this
|
|
||||||
conveying of source, or (2) access to copy the
|
|
||||||
Corresponding Source from a network server at no charge.
|
|
||||||
|
|
||||||
c) Convey individual copies of the object code with a copy of the
|
|
||||||
written offer to provide the Corresponding Source. This
|
|
||||||
alternative is allowed only occasionally and noncommercially, and
|
|
||||||
only if you received the object code with such an offer, in accord
|
|
||||||
with subsection 6b.
|
|
||||||
|
|
||||||
d) Convey the object code by offering access from a designated
|
|
||||||
place (gratis or for a charge), and offer equivalent access to the
|
|
||||||
Corresponding Source in the same way through the same place at no
|
|
||||||
further charge. You need not require recipients to copy the
|
|
||||||
Corresponding Source along with the object code. If the place to
|
|
||||||
copy the object code is a network server, the Corresponding Source
|
|
||||||
may be on a different server (operated by you or a third party)
|
|
||||||
that supports equivalent copying facilities, provided you maintain
|
|
||||||
clear directions next to the object code saying where to find the
|
|
||||||
Corresponding Source. Regardless of what server hosts the
|
|
||||||
Corresponding Source, you remain obligated to ensure that it is
|
|
||||||
available for as long as needed to satisfy these requirements.
|
|
||||||
|
|
||||||
e) Convey the object code using peer-to-peer transmission, provided
|
|
||||||
you inform other peers where the object code and Corresponding
|
|
||||||
Source of the work are being offered to the general public at no
|
|
||||||
charge under subsection 6d.
|
|
||||||
|
|
||||||
A separable portion of the object code, whose source code is excluded
|
|
||||||
from the Corresponding Source as a System Library, need not be
|
|
||||||
included in conveying the object code work.
|
|
||||||
|
|
||||||
A "User Product" is either (1) a "consumer product", which means any
|
|
||||||
tangible personal property which is normally used for personal, family,
|
|
||||||
or household purposes, or (2) anything designed or sold for incorporation
|
|
||||||
into a dwelling. In determining whether a product is a consumer product,
|
|
||||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
|
||||||
product received by a particular user, "normally used" refers to a
|
|
||||||
typical or common use of that class of product, regardless of the status
|
|
||||||
of the particular user or of the way in which the particular user
|
|
||||||
actually uses, or expects or is expected to use, the product. A product
|
|
||||||
is a consumer product regardless of whether the product has substantial
|
|
||||||
commercial, industrial or non-consumer uses, unless such uses represent
|
|
||||||
the only significant mode of use of the product.
|
|
||||||
|
|
||||||
"Installation Information" for a User Product means any methods,
|
|
||||||
procedures, authorization keys, or other information required to install
|
|
||||||
and execute modified versions of a covered work in that User Product from
|
|
||||||
a modified version of its Corresponding Source. The information must
|
|
||||||
suffice to ensure that the continued functioning of the modified object
|
|
||||||
code is in no case prevented or interfered with solely because
|
|
||||||
modification has been made.
|
|
||||||
|
|
||||||
If you convey an object code work under this section in, or with, or
|
|
||||||
specifically for use in, a User Product, and the conveying occurs as
|
|
||||||
part of a transaction in which the right of possession and use of the
|
|
||||||
User Product is transferred to the recipient in perpetuity or for a
|
|
||||||
fixed term (regardless of how the transaction is characterized), the
|
|
||||||
Corresponding Source conveyed under this section must be accompanied
|
|
||||||
by the Installation Information. But this requirement does not apply
|
|
||||||
if neither you nor any third party retains the ability to install
|
|
||||||
modified object code on the User Product (for example, the work has
|
|
||||||
been installed in ROM).
|
|
||||||
|
|
||||||
The requirement to provide Installation Information does not include a
|
|
||||||
requirement to continue to provide support service, warranty, or updates
|
|
||||||
for a work that has been modified or installed by the recipient, or for
|
|
||||||
the User Product in which it has been modified or installed. Access to a
|
|
||||||
network may be denied when the modification itself materially and
|
|
||||||
adversely affects the operation of the network or violates the rules and
|
|
||||||
protocols for communication across the network.
|
|
||||||
|
|
||||||
Corresponding Source conveyed, and Installation Information provided,
|
|
||||||
in accord with this section must be in a format that is publicly
|
|
||||||
documented (and with an implementation available to the public in
|
|
||||||
source code form), and must require no special password or key for
|
|
||||||
unpacking, reading or copying.
|
|
||||||
|
|
||||||
7. Additional Terms.
|
|
||||||
|
|
||||||
"Additional permissions" are terms that supplement the terms of this
|
|
||||||
License by making exceptions from one or more of its conditions.
|
|
||||||
Additional permissions that are applicable to the entire Program shall
|
|
||||||
be treated as though they were included in this License, to the extent
|
|
||||||
that they are valid under applicable law. If additional permissions
|
|
||||||
apply only to part of the Program, that part may be used separately
|
|
||||||
under those permissions, but the entire Program remains governed by
|
|
||||||
this License without regard to the additional permissions.
|
|
||||||
|
|
||||||
When you convey a copy of a covered work, you may at your option
|
|
||||||
remove any additional permissions from that copy, or from any part of
|
|
||||||
it. (Additional permissions may be written to require their own
|
|
||||||
removal in certain cases when you modify the work.) You may place
|
|
||||||
additional permissions on material, added by you to a covered work,
|
|
||||||
for which you have or can give appropriate copyright permission.
|
|
||||||
|
|
||||||
Notwithstanding any other provision of this License, for material you
|
|
||||||
add to a covered work, you may (if authorized by the copyright holders of
|
|
||||||
that material) supplement the terms of this License with terms:
|
|
||||||
|
|
||||||
a) Disclaiming warranty or limiting liability differently from the
|
|
||||||
terms of sections 15 and 16 of this License; or
|
|
||||||
|
|
||||||
b) Requiring preservation of specified reasonable legal notices or
|
|
||||||
author attributions in that material or in the Appropriate Legal
|
|
||||||
Notices displayed by works containing it; or
|
|
||||||
|
|
||||||
c) Prohibiting misrepresentation of the origin of that material, or
|
|
||||||
requiring that modified versions of such material be marked in
|
|
||||||
reasonable ways as different from the original version; or
|
|
||||||
|
|
||||||
d) Limiting the use for publicity purposes of names of licensors or
|
|
||||||
authors of the material; or
|
|
||||||
|
|
||||||
e) Declining to grant rights under trademark law for use of some
|
|
||||||
trade names, trademarks, or service marks; or
|
|
||||||
|
|
||||||
f) Requiring indemnification of licensors and authors of that
|
|
||||||
material by anyone who conveys the material (or modified versions of
|
|
||||||
it) with contractual assumptions of liability to the recipient, for
|
|
||||||
any liability that these contractual assumptions directly impose on
|
|
||||||
those licensors and authors.
|
|
||||||
|
|
||||||
All other non-permissive additional terms are considered "further
|
|
||||||
restrictions" within the meaning of section 10. If the Program as you
|
|
||||||
received it, or any part of it, contains a notice stating that it is
|
|
||||||
governed by this License along with a term that is a further
|
|
||||||
restriction, you may remove that term. If a license document contains
|
|
||||||
a further restriction but permits relicensing or conveying under this
|
|
||||||
License, you may add to a covered work material governed by the terms
|
|
||||||
of that license document, provided that the further restriction does
|
|
||||||
not survive such relicensing or conveying.
|
|
||||||
|
|
||||||
If you add terms to a covered work in accord with this section, you
|
|
||||||
must place, in the relevant source files, a statement of the
|
|
||||||
additional terms that apply to those files, or a notice indicating
|
|
||||||
where to find the applicable terms.
|
|
||||||
|
|
||||||
Additional terms, permissive or non-permissive, may be stated in the
|
|
||||||
form of a separately written license, or stated as exceptions;
|
|
||||||
the above requirements apply either way.
|
|
||||||
|
|
||||||
8. Termination.
|
|
||||||
|
|
||||||
You may not propagate or modify a covered work except as expressly
|
|
||||||
provided under this License. Any attempt otherwise to propagate or
|
|
||||||
modify it is void, and will automatically terminate your rights under
|
|
||||||
this License (including any patent licenses granted under the third
|
|
||||||
paragraph of section 11).
|
|
||||||
|
|
||||||
However, if you cease all violation of this License, then your
|
|
||||||
license from a particular copyright holder is reinstated (a)
|
|
||||||
provisionally, unless and until the copyright holder explicitly and
|
|
||||||
finally terminates your license, and (b) permanently, if the copyright
|
|
||||||
holder fails to notify you of the violation by some reasonable means
|
|
||||||
prior to 60 days after the cessation.
|
|
||||||
|
|
||||||
Moreover, your license from a particular copyright holder is
|
|
||||||
reinstated permanently if the copyright holder notifies you of the
|
|
||||||
violation by some reasonable means, this is the first time you have
|
|
||||||
received notice of violation of this License (for any work) from that
|
|
||||||
copyright holder, and you cure the violation prior to 30 days after
|
|
||||||
your receipt of the notice.
|
|
||||||
|
|
||||||
Termination of your rights under this section does not terminate the
|
|
||||||
licenses of parties who have received copies or rights from you under
|
|
||||||
this License. If your rights have been terminated and not permanently
|
|
||||||
reinstated, you do not qualify to receive new licenses for the same
|
|
||||||
material under section 10.
|
|
||||||
|
|
||||||
9. Acceptance Not Required for Having Copies.
|
|
||||||
|
|
||||||
You are not required to accept this License in order to receive or
|
|
||||||
run a copy of the Program. Ancillary propagation of a covered work
|
|
||||||
occurring solely as a consequence of using peer-to-peer transmission
|
|
||||||
to receive a copy likewise does not require acceptance. However,
|
|
||||||
nothing other than this License grants you permission to propagate or
|
|
||||||
modify any covered work. These actions infringe copyright if you do
|
|
||||||
not accept this License. Therefore, by modifying or propagating a
|
|
||||||
covered work, you indicate your acceptance of this License to do so.
|
|
||||||
|
|
||||||
10. Automatic Licensing of Downstream Recipients.
|
|
||||||
|
|
||||||
Each time you convey a covered work, the recipient automatically
|
|
||||||
receives a license from the original licensors, to run, modify and
|
|
||||||
propagate that work, subject to this License. You are not responsible
|
|
||||||
for enforcing compliance by third parties with this License.
|
|
||||||
|
|
||||||
An "entity transaction" is a transaction transferring control of an
|
|
||||||
organization, or substantially all assets of one, or subdividing an
|
|
||||||
organization, or merging organizations. If propagation of a covered
|
|
||||||
work results from an entity transaction, each party to that
|
|
||||||
transaction who receives a copy of the work also receives whatever
|
|
||||||
licenses to the work the party's predecessor in interest had or could
|
|
||||||
give under the previous paragraph, plus a right to possession of the
|
|
||||||
Corresponding Source of the work from the predecessor in interest, if
|
|
||||||
the predecessor has it or can get it with reasonable efforts.
|
|
||||||
|
|
||||||
You may not impose any further restrictions on the exercise of the
|
|
||||||
rights granted or affirmed under this License. For example, you may
|
|
||||||
not impose a license fee, royalty, or other charge for exercise of
|
|
||||||
rights granted under this License, and you may not initiate litigation
|
|
||||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
|
||||||
any patent claim is infringed by making, using, selling, offering for
|
|
||||||
sale, or importing the Program or any portion of it.
|
|
||||||
|
|
||||||
11. Patents.
|
|
||||||
|
|
||||||
A "contributor" is a copyright holder who authorizes use under this
|
|
||||||
License of the Program or a work on which the Program is based. The
|
|
||||||
work thus licensed is called the contributor's "contributor version".
|
|
||||||
|
|
||||||
A contributor's "essential patent claims" are all patent claims
|
|
||||||
owned or controlled by the contributor, whether already acquired or
|
|
||||||
hereafter acquired, that would be infringed by some manner, permitted
|
|
||||||
by this License, of making, using, or selling its contributor version,
|
|
||||||
but do not include claims that would be infringed only as a
|
|
||||||
consequence of further modification of the contributor version. For
|
|
||||||
purposes of this definition, "control" includes the right to grant
|
|
||||||
patent sublicenses in a manner consistent with the requirements of
|
|
||||||
this License.
|
|
||||||
|
|
||||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
|
||||||
patent license under the contributor's essential patent claims, to
|
|
||||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
|
||||||
propagate the contents of its contributor version.
|
|
||||||
|
|
||||||
In the following three paragraphs, a "patent license" is any express
|
|
||||||
agreement or commitment, however denominated, not to enforce a patent
|
|
||||||
(such as an express permission to practice a patent or covenant not to
|
|
||||||
sue for patent infringement). To "grant" such a patent license to a
|
|
||||||
party means to make such an agreement or commitment not to enforce a
|
|
||||||
patent against the party.
|
|
||||||
|
|
||||||
If you convey a covered work, knowingly relying on a patent license,
|
|
||||||
and the Corresponding Source of the work is not available for anyone
|
|
||||||
to copy, free of charge and under the terms of this License, through a
|
|
||||||
publicly available network server or other readily accessible means,
|
|
||||||
then you must either (1) cause the Corresponding Source to be so
|
|
||||||
available, or (2) arrange to deprive yourself of the benefit of the
|
|
||||||
patent license for this particular work, or (3) arrange, in a manner
|
|
||||||
consistent with the requirements of this License, to extend the patent
|
|
||||||
license to downstream recipients. "Knowingly relying" means you have
|
|
||||||
actual knowledge that, but for the patent license, your conveying the
|
|
||||||
covered work in a country, or your recipient's use of the covered work
|
|
||||||
in a country, would infringe one or more identifiable patents in that
|
|
||||||
country that you have reason to believe are valid.
|
|
||||||
|
|
||||||
If, pursuant to or in connection with a single transaction or
|
|
||||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
|
||||||
covered work, and grant a patent license to some of the parties
|
|
||||||
receiving the covered work authorizing them to use, propagate, modify
|
|
||||||
or convey a specific copy of the covered work, then the patent license
|
|
||||||
you grant is automatically extended to all recipients of the covered
|
|
||||||
work and works based on it.
|
|
||||||
|
|
||||||
A patent license is "discriminatory" if it does not include within
|
|
||||||
the scope of its coverage, prohibits the exercise of, or is
|
|
||||||
conditioned on the non-exercise of one or more of the rights that are
|
|
||||||
specifically granted under this License. You may not convey a covered
|
|
||||||
work if you are a party to an arrangement with a third party that is
|
|
||||||
in the business of distributing software, under which you make payment
|
|
||||||
to the third party based on the extent of your activity of conveying
|
|
||||||
the work, and under which the third party grants, to any of the
|
|
||||||
parties who would receive the covered work from you, a discriminatory
|
|
||||||
patent license (a) in connection with copies of the covered work
|
|
||||||
conveyed by you (or copies made from those copies), or (b) primarily
|
|
||||||
for and in connection with specific products or compilations that
|
|
||||||
contain the covered work, unless you entered into that arrangement,
|
|
||||||
or that patent license was granted, prior to 28 March 2007.
|
|
||||||
|
|
||||||
Nothing in this License shall be construed as excluding or limiting
|
|
||||||
any implied license or other defenses to infringement that may
|
|
||||||
otherwise be available to you under applicable patent law.
|
|
||||||
|
|
||||||
12. No Surrender of Others' Freedom.
|
|
||||||
|
|
||||||
If conditions are imposed on you (whether by court order, agreement or
|
|
||||||
otherwise) that contradict the conditions of this License, they do not
|
|
||||||
excuse you from the conditions of this License. If you cannot convey a
|
|
||||||
covered work so as to satisfy simultaneously your obligations under this
|
|
||||||
License and any other pertinent obligations, then as a consequence you may
|
|
||||||
not convey it at all. For example, if you agree to terms that obligate you
|
|
||||||
to collect a royalty for further conveying from those to whom you convey
|
|
||||||
the Program, the only way you could satisfy both those terms and this
|
|
||||||
License would be to refrain entirely from conveying the Program.
|
|
||||||
|
|
||||||
13. Use with the GNU Affero General Public License.
|
|
||||||
|
|
||||||
Notwithstanding any other provision of this License, you have
|
|
||||||
permission to link or combine any covered work with a work licensed
|
|
||||||
under version 3 of the GNU Affero General Public License into a single
|
|
||||||
combined work, and to convey the resulting work. The terms of this
|
|
||||||
License will continue to apply to the part which is the covered work,
|
|
||||||
but the special requirements of the GNU Affero General Public License,
|
|
||||||
section 13, concerning interaction through a network will apply to the
|
|
||||||
combination as such.
|
|
||||||
|
|
||||||
14. Revised Versions of this License.
|
|
||||||
|
|
||||||
The Free Software Foundation may publish revised and/or new versions of
|
|
||||||
the GNU General Public License from time to time. Such new versions will
|
|
||||||
be similar in spirit to the present version, but may differ in detail to
|
|
||||||
address new problems or concerns.
|
|
||||||
|
|
||||||
Each version is given a distinguishing version number. If the
|
|
||||||
Program specifies that a certain numbered version of the GNU General
|
|
||||||
Public License "or any later version" applies to it, you have the
|
|
||||||
option of following the terms and conditions either of that numbered
|
|
||||||
version or of any later version published by the Free Software
|
|
||||||
Foundation. If the Program does not specify a version number of the
|
|
||||||
GNU General Public License, you may choose any version ever published
|
|
||||||
by the Free Software Foundation.
|
|
||||||
|
|
||||||
If the Program specifies that a proxy can decide which future
|
|
||||||
versions of the GNU General Public License can be used, that proxy's
|
|
||||||
public statement of acceptance of a version permanently authorizes you
|
|
||||||
to choose that version for the Program.
|
|
||||||
|
|
||||||
Later license versions may give you additional or different
|
|
||||||
permissions. However, no additional obligations are imposed on any
|
|
||||||
author or copyright holder as a result of your choosing to follow a
|
|
||||||
later version.
|
|
||||||
|
|
||||||
15. Disclaimer of Warranty.
|
|
||||||
|
|
||||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
|
||||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
|
||||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
|
||||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
||||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
|
||||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
|
||||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
|
||||||
|
|
||||||
16. Limitation of Liability.
|
|
||||||
|
|
||||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
|
||||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
|
||||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
|
||||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
|
||||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
|
||||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
|
||||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
|
||||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
|
||||||
SUCH DAMAGES.
|
|
||||||
|
|
||||||
17. Interpretation of Sections 15 and 16.
|
|
||||||
|
|
||||||
If the disclaimer of warranty and limitation of liability provided
|
|
||||||
above cannot be given local legal effect according to their terms,
|
|
||||||
reviewing courts shall apply local law that most closely approximates
|
|
||||||
an absolute waiver of all civil liability in connection with the
|
|
||||||
Program, unless a warranty or assumption of liability accompanies a
|
|
||||||
copy of the Program in return for a fee.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
How to Apply These Terms to Your New Programs
|
|
||||||
|
|
||||||
If you develop a new program, and you want it to be of the greatest
|
|
||||||
possible use to the public, the best way to achieve this is to make it
|
|
||||||
free software which everyone can redistribute and change under these terms.
|
|
||||||
|
|
||||||
To do so, attach the following notices to the program. It is safest
|
|
||||||
to attach them to the start of each source file to most effectively
|
|
||||||
state the exclusion of warranty; and each file should have at least
|
|
||||||
the "copyright" line and a pointer to where the full notice is found.
|
|
||||||
|
|
||||||
<one line to give the program's name and a brief idea of what it does.>
|
|
||||||
Copyright (C) <year> <name of author>
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
|
||||||
|
|
||||||
If the program does terminal interaction, make it output a short
|
|
||||||
notice like this when it starts in an interactive mode:
|
|
||||||
|
|
||||||
<program> Copyright (C) <year> <name of author>
|
|
||||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
|
||||||
This is free software, and you are welcome to redistribute it
|
|
||||||
under certain conditions; type `show c' for details.
|
|
||||||
|
|
||||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
|
||||||
parts of the General Public License. Of course, your program's commands
|
|
||||||
might be different; for a GUI interface, you would use an "about box".
|
|
||||||
|
|
||||||
You should also get your employer (if you work as a programmer) or school,
|
|
||||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
|
||||||
For more information on this, and how to apply and follow the GNU GPL, see
|
|
||||||
<https://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
The GNU General Public License does not permit incorporating your program
|
|
||||||
into proprietary programs. If your program is a subroutine library, you
|
|
||||||
may consider it more useful to permit linking proprietary applications with
|
|
||||||
the library. If this is what you want to do, use the GNU Lesser General
|
|
||||||
Public License instead of this License. But first, please read
|
|
||||||
<https://www.gnu.org/licenses/why-not-lgpl.html>.
|
|
66
install.sh
Executable file
66
install.sh
Executable file
@ -0,0 +1,66 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Install pacman packages
|
||||||
|
for package in \
|
||||||
|
scrcpy \
|
||||||
|
base-devel \
|
||||||
|
lazygit \
|
||||||
|
starship \
|
||||||
|
; do
|
||||||
|
sudo pacman -S --noconfirm $package
|
||||||
|
clear
|
||||||
|
done
|
||||||
|
|
||||||
|
git clone https://aur.archlinux.org/yay.git
|
||||||
|
cd yay
|
||||||
|
makepkg -si
|
||||||
|
cd ~
|
||||||
|
|
||||||
|
# Install yay packages
|
||||||
|
for package in \
|
||||||
|
python-pywal16 \
|
||||||
|
python-pywalfox \
|
||||||
|
swww waybar \
|
||||||
|
myfetch \
|
||||||
|
neovim \
|
||||||
|
python-pywalfox \
|
||||||
|
hypridle \
|
||||||
|
hyprshot \
|
||||||
|
hyprlock \
|
||||||
|
pyprland \
|
||||||
|
swaync \
|
||||||
|
wlogout \
|
||||||
|
nerd-fonts \
|
||||||
|
htop \
|
||||||
|
nvtop \
|
||||||
|
yazi \
|
||||||
|
discord \
|
||||||
|
firefox \
|
||||||
|
; do
|
||||||
|
yay -S --noconfirm $package
|
||||||
|
clear
|
||||||
|
done
|
||||||
|
|
||||||
|
# Install Configs
|
||||||
|
sudo cp -rf ~/Dotfiles/.config/* ~/.config/
|
||||||
|
sudo cp ~/Dotfiles/.bashrc ~/.bashrc
|
||||||
|
|
||||||
|
git config --global user.email "adrien.bouvais.pro@gmail.com"
|
||||||
|
git config --global user.name "adrien"
|
||||||
|
ssh-keygen -t rsa -b 4096 -C "adrien.bouvais.pro@gmail.com" -f ~/.ssh/id_rsa -N ""
|
||||||
|
|
||||||
|
# Wallpaper
|
||||||
|
mkdir ~/wallpapers
|
||||||
|
sudo cp -rf ~/Dotfiles/wallpapers/* ~/wallpapers/
|
||||||
|
wal -i ~/wallpapers/pywallpaper.jpg
|
||||||
|
pywalfox install
|
||||||
|
|
||||||
|
swww img ~/.config/pywallpaper.jpg --transition-type any --transition-fps 60 --transition-duration .5
|
||||||
|
wal -i ~/.config/pywallpaper.jpg -n --cols16
|
||||||
|
swaync-client --reload-css
|
||||||
|
cat ~/.cache/wal/colors-kitty.conf > ~/.config/kitty/current-theme.conf
|
||||||
|
pywalfox update
|
||||||
|
hyprctl reload
|
||||||
|
|
||||||
|
echo "Dont forget to add Pywalfox extension to Firefox https://addons.mozilla.org/en-US/firefox/addon/pywalfox/"
|
||||||
|
echo "Then run 'pywalfox update'"
|
509
readme.md
509
readme.md
@ -1,509 +0,0 @@
|
|||||||
[](https://git.io/typing-svg)
|
|
||||||
|
|
||||||
<img src="https://github.com/elifouts/Dotfiles/blob/main/images/rice7.png" width = "50%"><img src="https://github.com/elifouts/Dotfiles/blob/main/images/rice1.png" width = "50%"><img src="https://github.com/elifouts/Dotfiles/blob/main/images/rice4.png" width = "50%"><img src="https://github.com/elifouts/Dotfiles/blob/main/images/rice5.png" width = "50%"><img src="https://github.com/elifouts/Dotfiles/blob/main/images/rice6.png" width = "50%"><img src="https://github.com/elifouts/Dotfiles/blob/main/images/rice3.png" width = "50%">
|
|
||||||
|
|
||||||
This contains My **Arch** Linux Dotfiles for a clean-looking lightweight **Hyprland** setup.
|
|
||||||
|
|
||||||
***ENJOY!!***
|
|
||||||
|
|
||||||
-Eli F.
|
|
||||||
|
|
||||||
|
|
||||||
> [!WARNING]
|
|
||||||
>
|
|
||||||
> All Configurations were meant to be used with `Pywal`
|
|
||||||
>
|
|
||||||
|
|
||||||
If you do not want this, **you can remove it in the given applications `style.css` and add valid color values.** Although I highly recommend `Pywal` It's Pretty cool!
|
|
||||||
|
|
||||||
# Install
|
|
||||||
|
|
||||||
> [!CAUTION]
|
|
||||||
>
|
|
||||||
> This script is experimental and might not work properly. Please make sure you know what you are doing ***Please Please Please***
|
|
||||||
<details>
|
|
||||||
<summary>Arch Install Script</summary>
|
|
||||||
|
|
||||||
- With this script you should be able to install everything together, or the applications and their configs individually.
|
|
||||||
- Dont worry it only really installs what is needed unless you select the everything script.
|
|
||||||
|
|
||||||
```
|
|
||||||
cd && git clone https://github.com/elifouts/Dotfiles.git
|
|
||||||
cd ~/Dotfiles/InstallScripts
|
|
||||||
chmod +x install.sh
|
|
||||||
./install.sh
|
|
||||||
```
|
|
||||||
</details>
|
|
||||||
|
|
||||||
|
|
||||||
## My Applications
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<details>
|
|
||||||
|
|
||||||
<summary>🚥 Waybar</summary>
|
|
||||||
|
|
||||||

|
|
||||||

|
|
||||||

|
|
||||||

|
|
||||||

|
|
||||||
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
This is my minimal Waybar setup for Hyprland, designed to be clean and efficient. It includes all the essential features I wanted in Waybar. For additional needs like volume control, I use `swaync`, which can be triggered from Waybar.
|
|
||||||
|
|
||||||
## Workspaces
|
|
||||||
I’ve configured the workspaces so that if there is content on a workspace, the dot appears darker. This helps you keep track of your open content! Inspiration from [Gbar](https://github.com/scorpion-26/gBar).
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Expanding Waybar
|
|
||||||
In the screenshot below, you’ll see a method to hide and reveal certain widgets you don’t need all the time. You can easily add or remove widgets in `~/.config/waybar/config` under the `group/expand` section.
|
|
||||||
|
|
||||||
- **Network Widget**: I’ve configured it to not display your IP by default (it did that for some reason). Clicking the network widget opens `nmtui` in `kitty`.
|
|
||||||
|
|
||||||
- **Hyprpicker Widget**: This custom widget lets you use `hyprpicker`, display values when hovered, and copy the hex value to your clipboard.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Configuration
|
|
||||||
|
|
||||||
### *How To Install*
|
|
||||||
1. **Install [Waybar](https://github.com/Alexays/Waybar)**
|
|
||||||
2. Copy the `Dotfiles/.config/waybar` folder into `~/.config`
|
|
||||||
|
|
||||||
***NOTE*** *Make sure you have a Pywal theme set or else waybar will not load*
|
|
||||||
|
|
||||||
### Dependencies
|
|
||||||
```
|
|
||||||
waybar
|
|
||||||
hyprpicker
|
|
||||||
pywal
|
|
||||||
blueman
|
|
||||||
bluez
|
|
||||||
networkmanager
|
|
||||||
swaync
|
|
||||||
yay
|
|
||||||
```
|
|
||||||
|
|
||||||
### How to Add Blur
|
|
||||||
|
|
||||||
Add this to the end of your `hyprland.conf`:
|
|
||||||
|
|
||||||
```
|
|
||||||
layerrule = blur, waybar
|
|
||||||
layerrule = ignorezero, waybar
|
|
||||||
layerrule = ignorealpha 0.5, waybar
|
|
||||||
```
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>🔍 Wofi</summary>
|
|
||||||
<img src="https://github.com/elifouts/Dotfiles/blob/main/images/wofi1.png" width = "35%"><img src="https://github.com/elifouts/Dotfiles/blob/main/images/wofi2.png" width = "35%"><img src="https://github.com/elifouts/Dotfiles/blob/main/images/wofi3.png" width = "35%"><img src="https://github.com/elifouts/Dotfiles/blob/main/images/wofi4.png" width = "35%">
|
|
||||||
|
|
||||||
|
|
||||||
## Configuration
|
|
||||||
|
|
||||||
### *How To Install*
|
|
||||||
|
|
||||||
1. **Install `Wofi`:**
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo pacman -S wofi
|
|
||||||
```
|
|
||||||
|
|
||||||
2. Copy the `Dotfiles/.config/wofi` folder into `~/.config`
|
|
||||||
3. **Launching Wofi**
|
|
||||||
- I launch wofi like this:
|
|
||||||
|
|
||||||
```config
|
|
||||||
wofi --show drun -n
|
|
||||||
```
|
|
||||||
|
|
||||||
### How to Add Blur to Wofi
|
|
||||||
|
|
||||||
Add this to the end of your `hyprland.conf`:
|
|
||||||
|
|
||||||
```
|
|
||||||
layerrule = blur, wofi
|
|
||||||
layerrule = ignorezero, wofi
|
|
||||||
layerrule = ignorealpha 0.5, wofi
|
|
||||||
```
|
|
||||||
|
|
||||||
### `Pywal` with Wofi
|
|
||||||
|
|
||||||
**If you want Pywal colors**
|
|
||||||
- In `~/.config/wofi/style.css`, update the hostname in the file path to your `pywal` colors.
|
|
||||||
**If you don't want Pywal colors**
|
|
||||||
- You can remove the top line of your style.css and replace the colors at the top with your desired choice.
|
|
||||||
</details>
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>🔔 Swaync</summary>
|
|
||||||
<img src="https://github.com/elifouts/Dotfiles/blob/main/images/swaync1.png" width = "20%"><img src="https://github.com/elifouts/Dotfiles/blob/main/images/swaync2.png" width = "20%"><img src="https://github.com/elifouts/Dotfiles/blob/main/images/swaync3.png" width = "20%"><img src="https://github.com/elifouts/Dotfiles/blob/main/images/swaync4.png" width = "20%">
|
|
||||||
|
|
||||||
|
|
||||||
## Configuration
|
|
||||||
|
|
||||||
### *How To Install*
|
|
||||||
|
|
||||||
1. **Install [Swaync](https://github.com/ErikReider/SwayNotificationCenter)**
|
|
||||||
2. Copy the `Dotfiles/.config/swaync` folder into `~/.config`
|
|
||||||
|
|
||||||
### Dependencies for `Swaync`
|
|
||||||
```
|
|
||||||
swaync
|
|
||||||
pywal
|
|
||||||
gvfs
|
|
||||||
libnotify
|
|
||||||
```
|
|
||||||
|
|
||||||
### How to Add Blur to Swaync
|
|
||||||
|
|
||||||
Add this to the end of your `hyprland.conf`:
|
|
||||||
|
|
||||||
```
|
|
||||||
layerrule = blur, swaync-control-center
|
|
||||||
layerrule = blur, swaync-notification-window
|
|
||||||
layerrule = ignorezero, swaync-control-center
|
|
||||||
layerrule = ignorezero, swaync-notification-window
|
|
||||||
layerrule = ignorealpha 0.5, swaync-control-center
|
|
||||||
layerrule = ignorealpha 0.5, swaync-notification-window
|
|
||||||
```
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>🔒 Hyprlock</summary>
|
|
||||||
<img src="https://github.com/elifouts/Dotfiles/blob/main/images/lock1.PNG" width = "50%"><img src="https://github.com/elifouts/Dotfiles/blob/main/images/lock2.png" width = "50%"><img src="https://github.com/elifouts/Dotfiles/blob/main/images/lock3.png" width = "50%"><img src="https://github.com/elifouts/Dotfiles/blob/main/images/lock4.png" width = "50%">
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
|
|
||||||
- Hyprlock uses the current wallpaper from Pywal to generate a background, displays a greeting with your username, and applies Pywal colors.
|
|
||||||
- You can bind Hyprlock to a key, use it with `hypridle`, or configure it however you prefer.
|
|
||||||
- If you want to configure `hypridle` as well, I’ve included a `hypridle.conf` file in the same directory as Hyprlock.
|
|
||||||
|
|
||||||
## Configuration
|
|
||||||
|
|
||||||
### *How To Install*
|
|
||||||
1. **Install [Hyprlock](https://github.com/hyprwm/hyprlock/)**
|
|
||||||
2. Copy `Dotfiles/.config/hypr/hyprlock.conf` to `~/.config/hypr`
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>📝 Nvim</summary>
|
|
||||||
<img src="https://github.com/elifouts/Dotfiles/blob/main/images/nvim1.png" width = "30%"><img src="https://github.com/elifouts/Dotfiles/blob/main/images/nvim2.png" width = "30%"><img src="https://github.com/elifouts/Dotfiles/blob/main/images/nvim3.png" width = "30%">
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
|
|
||||||
- This Neovim "rice" is a simplified version of Lazyvim, created with custom Lua files. It’s lightweight and includes only what you need. I just installed lazy and configured only the pluggins I wanted.
|
|
||||||
- It features:
|
|
||||||
- Alpha-nvim
|
|
||||||
- Pywal theme
|
|
||||||
- Autocompletion
|
|
||||||
- Lualine
|
|
||||||
- Tabline
|
|
||||||
- Glow
|
|
||||||
- Noice
|
|
||||||
- Mini-icons
|
|
||||||
- Snacks
|
|
||||||
- bigfile
|
|
||||||
- indent
|
|
||||||
- input
|
|
||||||
- quickfile
|
|
||||||
- scroll
|
|
||||||
- statuscolumn
|
|
||||||
- words
|
|
||||||
- Neo-tree
|
|
||||||
- Telescope
|
|
||||||
- Treesitter
|
|
||||||
- Gitsigns
|
|
||||||
- Colorizer
|
|
||||||
|
|
||||||
### *How To Install*
|
|
||||||
1. **Install `Neovim`:**
|
|
||||||
```bash
|
|
||||||
yay -S neovim
|
|
||||||
```
|
|
||||||
2. Copy `Dotfiles/.config/nvim` into `~/.config/`
|
|
||||||
|
|
||||||
3. Start `nvim` and watch it install all necessary components.
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>🚪 Wlogout</summary>
|
|
||||||
<img src="https://github.com/elifouts/Dotfiles/blob/main/images/wlogout1.png" width = "40%"><img src="https://github.com/elifouts/Dotfiles/blob/main/images/wlogout2.png" width = "40%"><img src="https://github.com/elifouts/Dotfiles/blob/main/images/wlogout3.png" width = "40%"><img src="https://github.com/elifouts/Dotfiles/blob/main/images/wlogout4.png" width = "40%">
|
|
||||||
|
|
||||||
### *How To Install*
|
|
||||||
1. **Install `wlogout`:**
|
|
||||||
|
|
||||||
```bash
|
|
||||||
yay -S wlogout
|
|
||||||
```
|
|
||||||
2. Copy `Dotfiles/.config/wlogout` into `~/.config/`
|
|
||||||
3. If not already set make sure you set a key bind in hyprland.conf to launch wlogout.
|
|
||||||
</details>
|
|
||||||
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>🖼️ Wallpaper Solution/Pywal</summary>
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## General Overview
|
|
||||||
|
|
||||||
- The `wallpaper.sh` script in `Dotfiles/.config/hypr/` applies a wallpaper using `swww` and sets the `Pywal` theme. It also updates Kitty's color scheme, Cava, nvim (if configured), and any other application using `pywal`.
|
|
||||||
- The script uses Wofi to select wallpapers. I have not been able to optimize the wallpaper loading so it might load slowly but it should work.
|
|
||||||
|
|
||||||
### Dependencies
|
|
||||||
|
|
||||||
- `swww`
|
|
||||||
- `pywal`
|
|
||||||
- `wofi`
|
|
||||||
- `fd`
|
|
||||||
|
|
||||||
### *How To Install*
|
|
||||||
- Install dependencies:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
yay -S swww pywal wofi fd
|
|
||||||
```
|
|
||||||
|
|
||||||
1. **Copy Configuration Files:**
|
|
||||||
- Copy `Dotfiles/.config/wal` to `~/.config/` to provide `pywal` with the necessary template for Hyprland.
|
|
||||||
- Copy `Dotfiles/.config/hypr/wallpaper.sh` to `~/.config/hypr/`.
|
|
||||||
- Copy `Dotfiles/.config/wofi` to `~/.config/`. ( Check the Wofi tab for how to configure blur )
|
|
||||||
|
|
||||||
2. Bind the script to a key combination of your choice to easily change your wallpaper.
|
|
||||||
|
|
||||||
3. Make sure to add the following line to your `hyprland.conf`:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
exec-once = swww-daemon
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>🦊 Pywalfox</summary>
|
|
||||||
<img src="https://github.com/elifouts/Dotfiles/blob/main/images/fox1.png" width = "40%"><img src="https://github.com/elifouts/Dotfiles/blob/main/images/fox2.png" width = "40%"><img src="https://github.com/elifouts/Dotfiles/blob/main/images/fox3.png" width = "40%"><img src="https://github.com/elifouts/Dotfiles/blob/main/images/fox4.png" width = "40%">
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
|
|
||||||
- This is a way to configure `Firefox` so that it uses `Pywal` colors. After proper configuration, `Firefox` will change automatically when `Pywal` updates its color scheme.
|
|
||||||
|
|
||||||
### Dependencies
|
|
||||||
```
|
|
||||||
Firefox
|
|
||||||
Python
|
|
||||||
Pywal
|
|
||||||
```
|
|
||||||
|
|
||||||
### *How To Install*
|
|
||||||
1. **Install [Pywalfox](https://github.com/Frewacom/pywalfox)**
|
|
||||||
2. Run `pywalfox install`
|
|
||||||
3. Install Firefox add-on for PywalFox
|
|
||||||
4. Run `pywalfox update` in your terminal or add it to a script to update the `Firefox` theme after generating `Pywal` colors.
|
|
||||||
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>🚀 Starship</summary>
|
|
||||||
<img src="https://github.com/elifouts/Dotfiles/blob/main/images/starship.png" width = "30%"><img src="https://github.com/elifouts/Dotfiles/blob/main/images/starship1.png" width = "30%"><img src="https://github.com/elifouts/Dotfiles/blob/main/images/starship2.png" width = "30%">
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
|
|
||||||
- This is a custom Starship config that is minimal but yet has everything you need/want from a terminal prompt.
|
|
||||||
|
|
||||||
### *How To Install*
|
|
||||||
1. **Install [Starship](https://github.com/starship/starship?tab=readme-ov-file#-installation)**
|
|
||||||
2. Copy the `Dotfiles/.config/starship.toml` folder into `~/.config`
|
|
||||||
3. Add this to your `.bashrc` file:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
eval "$(starship init bash)"
|
|
||||||
```
|
|
||||||
- Or go [here](https://github.com/starship/starship?tab=readme-ov-file#step-2-set-up-your-shell-to-use-starship) to find what you need for your shell.
|
|
||||||
</details>
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>🎨 GTK Themes</summary>
|
|
||||||
|
|
||||||
### I use these GTK themes
|
|
||||||
|
|
||||||
- Widget Theme: Materia-dark
|
|
||||||
- Icon Theme: Qogir-dark
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Keybinds
|
|
||||||
|
|
||||||
`Mod+Q` - Open Terminal
|
|
||||||
|
|
||||||
`Mod+R` - Open App Launcher (Wofi)
|
|
||||||
|
|
||||||
`Mod+M` - Quit Hyprland
|
|
||||||
|
|
||||||
`Mod+B` - Close
|
|
||||||
|
|
||||||
`Mod+F` - Fullscreen
|
|
||||||
|
|
||||||
`Mod+V` - Popout
|
|
||||||
|
|
||||||
`Mod+Space` - Terminal Scratch Pad
|
|
||||||
|
|
||||||
`Mod-E` - Opens Thunar
|
|
||||||
|
|
||||||
`Alt+B` - Waybar Style Selector (Wofi)
|
|
||||||
|
|
||||||
`Alt+A` - Toggle Waybar
|
|
||||||
|
|
||||||
`Alt+R` - Reload Swaync
|
|
||||||
|
|
||||||
`Alt+W` - Wallpaper Selector (Wofi)
|
|
||||||
|
|
||||||
`Alt+Tab` - wlogout
|
|
||||||
|
|
||||||
> [!Tip]
|
|
||||||
> This isnt every Keybind. Just some highlighted ones.
|
|
||||||
>
|
|
||||||
> More can be found and changed in `~/.confing/hypr/hyprland.conf`
|
|
||||||
|
|
||||||
## Help
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Apps Fuzzy or Blurry?</summary>
|
|
||||||
|
|
||||||
#### This may be because they need to be run with Wayland or are Electron applications
|
|
||||||
|
|
||||||
- The solution I found is to add the following to `/usr/share/applications/{app}.desktop` after `exec=/app/executable/app`
|
|
||||||
- Works on `Spotify` `Discord`
|
|
||||||
|
|
||||||
```
|
|
||||||
--enable-features=UseOzonePlatform --ozone-platform=wayland --uri=%U
|
|
||||||
```
|
|
||||||
|
|
||||||
- ***NOTE*** This gets removed if the app is redownloaded! I'm not sure how to make this a global thing. I have tried and failed. Help?
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Cant Find a file that is in .cache?</summary>
|
|
||||||
|
|
||||||
### You may be looking for a file that looks something like this:
|
|
||||||
|
|
||||||
`@import url('/home/eli/.cache/wal/colors-waybar.css');`
|
|
||||||
|
|
||||||
That file is one of many that is created by `Pywal`. Try replacing eli with your $USER and see if that works. Alternatively, you can do one of the following:
|
|
||||||
|
|
||||||
- create your own file which would look something like this:
|
|
||||||
```
|
|
||||||
@define-color background <Replace>;
|
|
||||||
@define-color color0 <Replace>;
|
|
||||||
@define-color color9 <Repace>;
|
|
||||||
```
|
|
||||||
Instead of those colors, you can use whichever color is needed by the style.css file.
|
|
||||||
|
|
||||||
- create the colors manually in the style.css files you took those paths from.
|
|
||||||
```
|
|
||||||
@define-color <ColorName> <Color>;
|
|
||||||
```
|
|
||||||
|
|
||||||
- Find the sections of that file that are calling the missing file, such as `$color2` or `@color2` and replace it with a valid value.
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Notes
|
|
||||||
- If you want Cava to work with `Pywal`, it is already in the wallpaper.sh, but find the section needed and copy the config file I have into your `~/.config` directory.
|
|
||||||
- Am about to start working on an eww dashboard so look out for that
|
|
||||||
<details>
|
|
||||||
<summary>📥 Download Suggestions</summary>
|
|
||||||
|
|
||||||
- This is everything I think is essential to have. At least for me. I would suggest doing your own research before blindly downloading everything here. This is here just so if I break my computer which we all know I will, I can remember what I need/want!
|
|
||||||
|
|
||||||
```txt
|
|
||||||
git
|
|
||||||
wlogout
|
|
||||||
nvim
|
|
||||||
zip unzip
|
|
||||||
pipewire
|
|
||||||
hyprpicker
|
|
||||||
hypridle
|
|
||||||
hyprlock
|
|
||||||
hyprshot
|
|
||||||
code
|
|
||||||
bpytop
|
|
||||||
nerdfetch
|
|
||||||
yay
|
|
||||||
wl-clipboard
|
|
||||||
wl-copy
|
|
||||||
nerd-fonts
|
|
||||||
starship
|
|
||||||
thunar
|
|
||||||
grim
|
|
||||||
slurp
|
|
||||||
gnome-network-displays
|
|
||||||
discord
|
|
||||||
Firefox
|
|
||||||
spotify ncspot
|
|
||||||
pacman-contrib
|
|
||||||
swaync
|
|
||||||
pywal
|
|
||||||
waybar
|
|
||||||
swww
|
|
||||||
blueman
|
|
||||||
bluez
|
|
||||||
networkmanager
|
|
||||||
gvfs
|
|
||||||
libnotify
|
|
||||||
pavucontrol
|
|
||||||
pipewire-pulse
|
|
||||||
nwg-look
|
|
||||||
wofi
|
|
||||||
s-tui
|
|
||||||
python-pywalfox
|
|
||||||
auto-cpufreq
|
|
||||||
powertop
|
|
||||||
qogir-icon-theme
|
|
||||||
fd
|
|
||||||
noto-fonts
|
|
||||||
libreoffice-fresh
|
|
||||||
materia-dark-gtk
|
|
||||||
```
|
|
||||||
|
|
||||||
Fun to have
|
|
||||||
|
|
||||||
```
|
|
||||||
asciiquarium
|
|
||||||
libcaca
|
|
||||||
cowsay
|
|
||||||
snake
|
|
||||||
2048
|
|
||||||
terminal-mines mines-tui
|
|
||||||
genact
|
|
||||||
no-more-secrets
|
|
||||||
lolcat
|
|
||||||
```
|
|
||||||
Cool things you don't need
|
|
||||||
```
|
|
||||||
waypaper
|
|
||||||
ranger
|
|
||||||
howdoi
|
|
||||||
bottom
|
|
||||||
```
|
|
||||||
</details>
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user