Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5a852998ea | ||
|
|
4ce511c902 | ||
|
|
9583419fd8 | ||
|
|
478cd154ab | ||
|
|
a25122508f | ||
|
|
78f4605e09 | ||
|
|
efe98deb44 | ||
|
|
0b05a4d13b | ||
|
|
f57dde1200 | ||
|
|
8f08f6c0b1 | ||
|
|
f5765d0845 | ||
|
|
080df5f2d7 | ||
|
|
0c4e5085c2 | ||
|
|
9eee45ed40 | ||
|
|
5881c1c810 | ||
|
|
fbf117f909 | ||
|
|
8af7114fc0 | ||
|
|
716b518845 | ||
|
|
105f69edf8 | ||
|
|
33841ea15f | ||
|
|
2777bd3e1f | ||
|
|
f10fb1220b | ||
|
|
ead2dd9d44 | ||
|
|
9907e8f6ff | ||
|
|
d583b524d6 | ||
|
|
a5d5d63f52 | ||
|
|
4191c0da79 | ||
|
|
4a664f26bc | ||
|
|
2996c5eb56 | ||
|
|
c40ccfaa70 | ||
|
|
9e432e9764 | ||
|
|
c070507503 | ||
|
|
4ec9c667a3 | ||
|
|
b913933bb9 | ||
|
|
722eabdb52 | ||
|
|
fcd975484e | ||
|
|
5234d5f1b4 | ||
|
|
75358d62ec | ||
|
|
2b8fd2a8b2 | ||
|
|
78e84534b6 | ||
|
|
a5947f065d | ||
|
|
2b44f11f79 | ||
|
|
8b32ebf9c9 | ||
|
|
7c5ef5ccf5 |
@@ -1,22 +1,29 @@
|
||||
# ~/.bashrc
|
||||
clear && myfetch -c 8 -C " █"
|
||||
eval "$(starship init bash)"
|
||||
[[ $- != *i* ]] && return
|
||||
alias lsd='eza --icons'
|
||||
alias pacup='sudo pacman -Rns $(pacman -Qdtq)'
|
||||
alias grep='grep --color=auto'
|
||||
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 n="nvim"
|
||||
export NVM_DIR="$HOME/.nvm"
|
||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
||||
PS1='[\u@\h \W]\$ '
|
||||
|
||||
alias Settings="cd ~/.config && nvim"
|
||||
alias Key="cat ~/.ssh/id_rsa.pub"
|
||||
alias Server="ssh adrien@192.168.178.26"
|
||||
|
||||
alias untar="sudo tar -xf"
|
||||
alias h="history | grep"
|
||||
|
||||
# For scrcpy
|
||||
export SDL_VIDEODRIVER=wayland
|
||||
|
||||
# For Ultimaker
|
||||
export QT_QPA_PLATFORM="wayland;xcb"
|
||||
export SDL_VIDEODRIVER="wayland,x11"
|
||||
export CLUTTER_BACKEND=wayland
|
||||
export GMB_BACKEND=nvidia-drm
|
||||
export __GLX_VENDOR_LIBRARY_NAME=nvidia
|
||||
|
||||
export ELECTRON_OZONE_PLATFORM_HINT=wayland
|
||||
export MOZ_ENABLE_WAYLAND=1
|
||||
export SAL_USE_VCLPLUGIN=qt6
|
||||
|
||||
export TERM=xterm
|
||||
|
||||
export PATH="$PATH:/home/adrien/.local/bin"
|
||||
|
||||
wal -i ~/Pictures/Wallpapers/pywallpaper.jpg -n --cols16 -e
|
||||
|
||||
@@ -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
|
||||
@@ -0,0 +1,4 @@
|
||||
window-decoration = none
|
||||
window-padding-x = 0
|
||||
window-padding-y = 0
|
||||
font-family = FiraCode Nerd Font Mono
|
||||
@@ -1,23 +0,0 @@
|
||||
source /home/$USER/.cache/wal/colors-hyprland
|
||||
|
||||
general {
|
||||
lock_cmd = pidof hyprlock || hyprlock
|
||||
ignore_dbus_inhibit = /opt/spotify/spotify
|
||||
}
|
||||
listener {
|
||||
timeout = 270
|
||||
on-timeout = source /home/eli/.cache/wal/colors.sh && notify-send "System" "You are about to be locked out!" -i $wallpaper
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 600
|
||||
on-timeout = loginctl lock-session
|
||||
on-resume = sleep 2 && source /home/eli/.cache/wal/colors.sh && notify-send "System" "Unlocked! Hey $USER" -i $wallpaper
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 1200
|
||||
on-timeout = hyprctl dispatch dpms off
|
||||
on-resume = hyprctl dispatch dpms on
|
||||
}
|
||||
|
||||
@@ -1,298 +0,0 @@
|
||||
|
||||
# #######################################################################################
|
||||
# AUTOGENERATED HYPRLAND CONFIG.
|
||||
# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hyprland.conf AND EDIT IT,
|
||||
# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
|
||||
# #######################################################################################
|
||||
|
||||
autogenerated = 1 # remove this line to remove the warning
|
||||
|
||||
# This is an example Hyprland config file.
|
||||
# Refer to the wiki for more information.
|
||||
# https://wiki.hyprland.org/Configuring/
|
||||
|
||||
# Please note not all available settings / options are set here.
|
||||
# For a full list, see the wiki
|
||||
|
||||
# You can split this configuration into multiple files
|
||||
# Create your files separately and then link them to this file like this:
|
||||
# source = ~/.config/hypr/myColors.conf
|
||||
|
||||
|
||||
################
|
||||
### MONITORS ###
|
||||
################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||
monitor=,preferred,auto,auto
|
||||
|
||||
|
||||
###################
|
||||
### MY PROGRAMS ###
|
||||
###################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
||||
|
||||
# Set programs that you use
|
||||
$terminal = kitty
|
||||
$fileManager = dolphin
|
||||
$menu = wofi --show drun
|
||||
|
||||
|
||||
#################
|
||||
### AUTOSTART ###
|
||||
#################
|
||||
|
||||
# Autostart necessary processes (like notifications daemons, status bars, etc.)
|
||||
# Or execute your favorite apps at launch like this:
|
||||
|
||||
# exec-once = $terminal
|
||||
# exec-once = nm-applet &
|
||||
# exec-once = waybar & hyprpaper & firefox
|
||||
|
||||
|
||||
#############################
|
||||
### ENVIRONMENT VARIABLES ###
|
||||
#############################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Environment-variables/
|
||||
|
||||
env = XCURSOR_SIZE,24
|
||||
env = HYPRCURSOR_SIZE,24
|
||||
|
||||
|
||||
#####################
|
||||
### LOOK AND FEEL ###
|
||||
#####################
|
||||
|
||||
# Refer to https://wiki.hyprland.org/Configuring/Variables/
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#general
|
||||
general {
|
||||
gaps_in = 5
|
||||
gaps_out = 20
|
||||
|
||||
border_size = 2
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
||||
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
|
||||
col.inactive_border = rgba(595959aa)
|
||||
|
||||
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
||||
resize_on_border = false
|
||||
|
||||
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
||||
allow_tearing = false
|
||||
|
||||
layout = dwindle
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
||||
decoration {
|
||||
rounding = 10
|
||||
rounding_power = 2
|
||||
|
||||
# Change transparency of focused and unfocused windows
|
||||
active_opacity = 1.0
|
||||
inactive_opacity = 1.0
|
||||
|
||||
shadow {
|
||||
enabled = true
|
||||
range = 4
|
||||
render_power = 3
|
||||
color = rgba(1a1a1aee)
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#blur
|
||||
blur {
|
||||
enabled = true
|
||||
size = 3
|
||||
passes = 1
|
||||
|
||||
vibrancy = 0.1696
|
||||
}
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#animations
|
||||
animations {
|
||||
enabled = yes, please :)
|
||||
|
||||
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
||||
|
||||
bezier = easeOutQuint,0.23,1,0.32,1
|
||||
bezier = easeInOutCubic,0.65,0.05,0.36,1
|
||||
bezier = linear,0,0,1,1
|
||||
bezier = almostLinear,0.5,0.5,0.75,1.0
|
||||
bezier = quick,0.15,0,0.1,1
|
||||
|
||||
animation = global, 1, 10, default
|
||||
animation = border, 1, 5.39, easeOutQuint
|
||||
animation = windows, 1, 4.79, easeOutQuint
|
||||
animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
|
||||
animation = windowsOut, 1, 1.49, linear, popin 87%
|
||||
animation = fadeIn, 1, 1.73, almostLinear
|
||||
animation = fadeOut, 1, 1.46, almostLinear
|
||||
animation = fade, 1, 3.03, quick
|
||||
animation = layers, 1, 3.81, easeOutQuint
|
||||
animation = layersIn, 1, 4, easeOutQuint, fade
|
||||
animation = layersOut, 1, 1.5, linear, fade
|
||||
animation = fadeLayersIn, 1, 1.79, almostLinear
|
||||
animation = fadeLayersOut, 1, 1.39, almostLinear
|
||||
animation = workspaces, 1, 1.94, almostLinear, fade
|
||||
animation = workspacesIn, 1, 1.21, almostLinear, fade
|
||||
animation = workspacesOut, 1, 1.94, almostLinear, fade
|
||||
}
|
||||
|
||||
# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
|
||||
# "Smart gaps" / "No gaps when only"
|
||||
# uncomment all if you wish to use that.
|
||||
# workspace = w[tv1], gapsout:0, gapsin:0
|
||||
# workspace = f[1], gapsout:0, gapsin:0
|
||||
# windowrulev2 = bordersize 0, floating:0, onworkspace:w[tv1]
|
||||
# windowrulev2 = rounding 0, floating:0, onworkspace:w[tv1]
|
||||
# windowrulev2 = bordersize 0, floating:0, onworkspace:f[1]
|
||||
# windowrulev2 = rounding 0, floating:0, onworkspace:f[1]
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||
dwindle {
|
||||
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
preserve_split = true # You probably want this
|
||||
}
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||
master {
|
||||
new_status = master
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#misc
|
||||
misc {
|
||||
force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
|
||||
disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
|
||||
}
|
||||
|
||||
|
||||
#############
|
||||
### INPUT ###
|
||||
#############
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#input
|
||||
input {
|
||||
kb_layout = us
|
||||
kb_variant =
|
||||
kb_model =
|
||||
kb_options =
|
||||
kb_rules =
|
||||
|
||||
follow_mouse = 1
|
||||
|
||||
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
||||
|
||||
touchpad {
|
||||
natural_scroll = false
|
||||
}
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#gestures
|
||||
gestures {
|
||||
workspace_swipe = false
|
||||
}
|
||||
|
||||
# Example per-device config
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
|
||||
device {
|
||||
name = epic-mouse-v1
|
||||
sensitivity = -0.5
|
||||
}
|
||||
|
||||
|
||||
###################
|
||||
### KEYBINDINGS ###
|
||||
###################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
||||
$mainMod = SUPER # Sets "Windows" key as main modifier
|
||||
|
||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
||||
bind = $mainMod, Q, exec, $terminal
|
||||
bind = $mainMod, C, killactive,
|
||||
bind = $mainMod, M, exit,
|
||||
bind = $mainMod, E, exec, $fileManager
|
||||
bind = $mainMod, V, togglefloating,
|
||||
bind = $mainMod, R, exec, $menu
|
||||
bind = $mainMod, P, pseudo, # dwindle
|
||||
bind = $mainMod, J, togglesplit, # dwindle
|
||||
|
||||
# Move focus with mainMod + arrow keys
|
||||
bind = $mainMod, left, movefocus, l
|
||||
bind = $mainMod, right, movefocus, r
|
||||
bind = $mainMod, up, movefocus, u
|
||||
bind = $mainMod, down, movefocus, d
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
bind = $mainMod, 1, workspace, 1
|
||||
bind = $mainMod, 2, workspace, 2
|
||||
bind = $mainMod, 3, workspace, 3
|
||||
bind = $mainMod, 4, workspace, 4
|
||||
bind = $mainMod, 5, workspace, 5
|
||||
bind = $mainMod, 6, workspace, 6
|
||||
bind = $mainMod, 7, workspace, 7
|
||||
bind = $mainMod, 8, workspace, 8
|
||||
bind = $mainMod, 9, workspace, 9
|
||||
bind = $mainMod, 0, workspace, 10
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
||||
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
||||
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
||||
bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
||||
bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
||||
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
||||
bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
||||
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
||||
bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
||||
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
||||
|
||||
# Example special workspace (scratchpad)
|
||||
bind = $mainMod, S, togglespecialworkspace, magic
|
||||
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
|
||||
|
||||
# Scroll through existing workspaces with mainMod + scroll
|
||||
bind = $mainMod, mouse_down, workspace, e+1
|
||||
bind = $mainMod, mouse_up, workspace, e-1
|
||||
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
|
||||
# Laptop multimedia keys for volume and LCD brightness
|
||||
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
|
||||
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||
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%-
|
||||
|
||||
# Requires playerctl
|
||||
bindl = , XF86AudioNext, exec, playerctl next
|
||||
bindl = , XF86AudioPause, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPrev, exec, playerctl previous
|
||||
|
||||
##############################
|
||||
### WINDOWS AND WORKSPACES ###
|
||||
##############################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
||||
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
|
||||
|
||||
# Example windowrule v1
|
||||
# windowrule = float, ^(kitty)$
|
||||
|
||||
# Example windowrule v2
|
||||
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
|
||||
|
||||
# Ignore maximize requests from apps. You'll probably like this.
|
||||
windowrulev2 = suppressevent maximize, class:.*
|
||||
|
||||
# Fix some dragging issues with XWayland
|
||||
windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
|
||||
@@ -1,184 +0,0 @@
|
||||
source = /home/$USER/.cache/wal/colors-hyprland
|
||||
|
||||
monitor = auto, 2560x1440@165, 0x0, 1
|
||||
|
||||
$terminal = kitty
|
||||
$fileManager = thunar
|
||||
# $menu = wofi --show drun -n
|
||||
$menu = wofi -n
|
||||
exec-once = hypridle
|
||||
exec-once = waybar
|
||||
exec-once = swww-daemon
|
||||
exec-once = swaync
|
||||
exec-once = pypr
|
||||
exec-once = swaync-client -df
|
||||
exec-once = pactl set-sink-mute @DEFAULT_SINK@ 0
|
||||
exec-once = hyprctl plugin load $HOME/.local/share/hyprpm/dynamic-cursors/dynamic-cursors.so
|
||||
env = ELECTRON_OZONE_PLATFORM_HINT,wayland
|
||||
env = XCURSOR_THEME,Bibata-Modern-Classic
|
||||
env = XCURSOR_SIZE,12
|
||||
|
||||
plugin:dynamic-cursors {
|
||||
mode = stretch
|
||||
threshold = 2
|
||||
shaperule = grab, stretch, stretch:limit: 2000
|
||||
rotate {
|
||||
length = 12
|
||||
offset = 30
|
||||
}
|
||||
stretch {
|
||||
limit = 1000
|
||||
# linear - a linear function is used
|
||||
# quadratic - a quadratic function is used
|
||||
# negative_quadratic - negative version of the quadratic one, feels more aggressive
|
||||
function = negative_quadratic
|
||||
}
|
||||
shake {
|
||||
enabled = false
|
||||
}
|
||||
}
|
||||
general {
|
||||
|
||||
gaps_in = 2
|
||||
gaps_out = 10
|
||||
border_size = 0
|
||||
col.active_border = $color9
|
||||
col.inactive_border = $color5
|
||||
resize_on_border = true
|
||||
allow_tearing = false
|
||||
layout = dwindle
|
||||
}
|
||||
decoration {
|
||||
rounding = 10
|
||||
active_opacity = 0.78
|
||||
inactive_opacity = 0.7
|
||||
fullscreen_opacity = 1
|
||||
blur {
|
||||
enabled = true
|
||||
size = 3
|
||||
passes = 5
|
||||
new_optimizations = true
|
||||
ignore_opacity = true
|
||||
xray = false
|
||||
popups = true
|
||||
}
|
||||
shadow {
|
||||
enabled = true
|
||||
range = 15
|
||||
render_power = 5
|
||||
color = rgba(0,0,0,.5)
|
||||
}
|
||||
}
|
||||
animations {
|
||||
enabled = true
|
||||
bezier = fluid, 0.15, 0.85, 0.25, 1
|
||||
bezier = snappy, 0.3, 1, 0.4, 1
|
||||
animation = windows, 1, 3, fluid, popin 5%
|
||||
animation = windowsOut, 1, 2.5, snappy
|
||||
animation = fade, 1, 4, snappy
|
||||
animation = workspaces, 1, 1.7, snappy, slide
|
||||
animation = specialWorkspace, 1, 4, fluid, slidefadevert -35%
|
||||
animation = layers, 1, 2, snappy, popin 70%
|
||||
}
|
||||
dwindle {
|
||||
preserve_split = true
|
||||
}
|
||||
misc {
|
||||
force_default_wallpaper = -1
|
||||
disable_hyprland_logo = true
|
||||
focus_on_activate = true
|
||||
}
|
||||
input {
|
||||
kb_layout = us
|
||||
follow_mouse = 1
|
||||
sensitivity = 0
|
||||
touchpad {
|
||||
natural_scroll = true
|
||||
}
|
||||
}
|
||||
gestures {
|
||||
workspace_swipe = true
|
||||
workspace_swipe_distance = 300
|
||||
workspace_swipe_cancel_ratio = .05
|
||||
workspace_swipe_min_speed_to_force = 0
|
||||
}
|
||||
device {
|
||||
name = epic-mouse-v1
|
||||
sensitivity = 0
|
||||
}
|
||||
$mainMod = SUPER
|
||||
bind = $mainMod, Q, exec, $terminal
|
||||
bind = $mainMod, B, killactive
|
||||
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
|
||||
bind = $mainMod, R, exec, $menu
|
||||
bind = $mainMod, P, pseudo
|
||||
bind = $mainMod, J, togglesplit
|
||||
bind = $mainMod, F, fullscreen
|
||||
bind = $mainMod, left, movefocus, l
|
||||
bind = $mainMod, right, movefocus, r
|
||||
bind = $mainMod, up, movefocus, u
|
||||
bind = $mainMod, down, movefocus, d
|
||||
bind = $mainMod, 1, workspace, 1
|
||||
bind = $mainMod, 2, workspace, 2
|
||||
bind = $mainMod, 3, workspace, 3
|
||||
bind = $mainMod, 4, workspace, 4
|
||||
bind = $mainMod, 5, workspace, 5
|
||||
bind = $mainMod, 6, workspace, 6
|
||||
bind = $mainMod, 7, workspace, 7
|
||||
bind = $mainMod, 8, workspace, 8
|
||||
bind = $mainMod, 9, workspace, 9
|
||||
bind = $mainMod, 0, workspace, 10
|
||||
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
||||
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
||||
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
||||
bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
||||
bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
||||
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
||||
bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
||||
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
||||
bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
||||
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%-
|
||||
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, B, exec, ~/.config/waybar/scripts/select.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 = ignorezero, waybar
|
||||
layerrule = ignorealpha 0.5, waybar
|
||||
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
|
||||
layerrule = noanim, selection
|
||||
@@ -1,86 +0,0 @@
|
||||
source = /home/$USER/.cache/wal/colors-hyprland
|
||||
|
||||
background {
|
||||
monitor =
|
||||
path = $wallpaper
|
||||
blur_size = 5
|
||||
blur_passes = 3
|
||||
brightness = .6
|
||||
}
|
||||
input-field {
|
||||
monitor =
|
||||
size = 6%, 4%
|
||||
outline_thickness = 0
|
||||
dots_rounding = 4
|
||||
dots_spacing = .5
|
||||
dots_fase_time = 300
|
||||
inner_color = $backgroundCol
|
||||
outer_color = $backgroundCol $backgroundCol
|
||||
check_color= $backgroundCol $backgroundCol
|
||||
fail_color= $backgroundCol $backgroundCol
|
||||
font_color = $color9
|
||||
font_family = CodeNewRoman Nerd Font Propo
|
||||
fade_on_empty = false
|
||||
shadow_color = rgba(0,0,0,0.5)
|
||||
shadow_passes = 2
|
||||
shadow_size = 2
|
||||
rounding = 20
|
||||
placeholder_text = <i></i>
|
||||
fail_text = <b>FAIL</b>
|
||||
fail_timeout = 300
|
||||
position = 0, -100
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] date +"<b>%I</b>"
|
||||
color = $color9
|
||||
font_size = 200
|
||||
font_family = CodeNewRoman Nerd Font Propo
|
||||
shadow_passes = 0
|
||||
shadow_size = 5
|
||||
position = -120, 410
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] date +"<b>%M</b>"
|
||||
color = rgba(150,150,150, .4)
|
||||
font_size = 200
|
||||
font_family = CodeNewRoman Nerd Font Propo
|
||||
shadow_passes = 0
|
||||
shadow_size = 5
|
||||
position = 120, 230
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] date +"<b>%A, %B %d, %Y</b>"
|
||||
color = $color4
|
||||
font_size = 40
|
||||
font_family = CodeNewRoman Nerd Font Propo
|
||||
shadow_passes = 0
|
||||
shadow_size = 4
|
||||
position = -40,-20
|
||||
halign = right
|
||||
valign = top
|
||||
}
|
||||
label {
|
||||
monitor =
|
||||
text = <i>Hello</i> <b>$USER</b>
|
||||
color = $color5
|
||||
font_size = 40
|
||||
font_family = CodeNewRoman Nerd Font Propo
|
||||
shadow_passes = 0
|
||||
shadow_size = 4
|
||||
position = 40,-20
|
||||
halign = left
|
||||
valign = top
|
||||
}
|
||||
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
[pyprland]
|
||||
plugins = [
|
||||
"scratchpads"
|
||||
]
|
||||
|
||||
[scratchpads.term]
|
||||
animation = "fromTop"
|
||||
command = "kitty --class kitty-dropterm"
|
||||
class = "kitty-dropterm"
|
||||
position = "17% 6%"
|
||||
size = "65% 60%"
|
||||
offset = "200%"
|
||||
|
||||
[scratchpads.music]
|
||||
animation = "fromBottom"
|
||||
command = "kitty --class kitty-pulsemixer -e pulsemixer"
|
||||
class = "kitty-pulsemixer"
|
||||
size = "50% 20%"
|
||||
offset = "200%"
|
||||
|
||||
[scratchpads.taskbar]
|
||||
animation = "fromLeft"
|
||||
command = "kitty --class kitty-taskbar -e htop"
|
||||
class = "kitty-taskbar"
|
||||
size = "30% 80%"
|
||||
offset = "200%"
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
#!/bin/bash
|
||||
WALLPAPER_DIR="$HOME/wallpapers/walls"
|
||||
#I dont know what the fuck I am doing
|
||||
menu() {
|
||||
find "${WALLPAPER_DIR}" -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" -o -iname "*.gif" \) | awk '{print "img:"$0}'
|
||||
}
|
||||
main() {
|
||||
choice=$(menu | wofi -c ~/.config/wofi/wallpaper -s ~/.config/wofi/style-wallpaper.css --show dmenu --prompt "Select Wallpaper:" -n)
|
||||
selected_wallpaper=$(echo "$choice" | sed 's/^img://')
|
||||
swww img "$selected_wallpaper" --transition-type any --transition-fps 60 --transition-duration .5
|
||||
wal -i "$selected_wallpaper" -n --cols16
|
||||
swaync-client --reload-css
|
||||
cat ~/.cache/wal/colors-kitty.conf > ~/.config/kitty/current-theme.conf
|
||||
pywalfox update
|
||||
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)
|
||||
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
|
||||
}
|
||||
main
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
foreground #c5c6c2
|
||||
background #191c0e
|
||||
background_opacity 1.0
|
||||
cursor #c5c6c2
|
||||
|
||||
active_tab_foreground #191c0e
|
||||
active_tab_background #c5c6c2
|
||||
inactive_tab_foreground #c5c6c2
|
||||
inactive_tab_background #191c0e
|
||||
|
||||
active_border_color #c5c6c2
|
||||
inactive_border_color #191c0e
|
||||
bell_border_color #83816e
|
||||
|
||||
color0 #191c0e
|
||||
color8 #6c705c
|
||||
color1 #83816e
|
||||
color9 #AFAC93
|
||||
color2 #8a897e
|
||||
color10 #B9B7A8
|
||||
color3 #928d81
|
||||
color11 #C3BCAD
|
||||
color4 #8c927c
|
||||
color12 #BBC3A6
|
||||
color5 #a4a26f
|
||||
color13 #DBD995
|
||||
color6 #969489
|
||||
color14 #C9C6B7
|
||||
color7 #989a8f
|
||||
color15 #c5c6c2
|
||||
@@ -0,0 +1,109 @@
|
||||
spawn-at-startup "waybar"
|
||||
spawn-at-startup "swww-daemon"
|
||||
spawn-at-startup "wal -i ~/Pictures/Wallpapers/pywallpaper.jpg -n --cols16"
|
||||
|
||||
layout {
|
||||
gaps 16
|
||||
preset-column-widths {
|
||||
proportion 0.33333
|
||||
proportion 0.5
|
||||
proportion 0.66667
|
||||
}
|
||||
default-column-width { proportion 0.33333; }
|
||||
|
||||
}
|
||||
|
||||
window-rule {
|
||||
match is-focused=false
|
||||
opacity 0.8
|
||||
}
|
||||
|
||||
window-rule {
|
||||
match is-focused=true
|
||||
draw-border-with-background false
|
||||
opacity 0.98
|
||||
|
||||
focus-ring {
|
||||
on
|
||||
width 4
|
||||
active-color "#7fc8ff"
|
||||
inactive-color "#505050"
|
||||
urgent-color "#9b0000"
|
||||
}
|
||||
}
|
||||
|
||||
binds {
|
||||
Mod+Shift+Slash { show-hotkey-overlay; }
|
||||
Mod+T hotkey-overlay-title="Open a Terminal: ghostty" { spawn "ghostty"; }
|
||||
Mod+D hotkey-overlay-title="Run an Application: wofi" { spawn "~/.config/wofi/application.sh"; }
|
||||
Mod+W hotkey-overlay-title="Change Wallpaper: wofi" { spawn "~/.config/wofi/wallpaper.sh"; }
|
||||
Mod+P hotkey-overlay-title="Open Project: wofi" { spawn "~/.config/wofi/projects.sh"; }
|
||||
Super+Alt+L hotkey-overlay-title="Lock the Screen: swaylock" { spawn "swaylock"; }
|
||||
|
||||
XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+"; }
|
||||
XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; }
|
||||
XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; }
|
||||
XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; }
|
||||
|
||||
Mod+O repeat=false { toggle-overview; }
|
||||
Mod+Q repeat=false { close-window; }
|
||||
|
||||
Mod+Left { focus-column-left; }
|
||||
Mod+Down { focus-window-down; }
|
||||
Mod+Up { focus-window-up; }
|
||||
Mod+Right { focus-column-right; }
|
||||
Mod+H { focus-column-left; }
|
||||
Mod+J { focus-window-down; }
|
||||
Mod+K { focus-window-up; }
|
||||
Mod+L { focus-column-right; }
|
||||
|
||||
Mod+Ctrl+Left { move-column-left; }
|
||||
Mod+Ctrl+Down { move-window-down; }
|
||||
Mod+Ctrl+Up { move-window-up; }
|
||||
Mod+Ctrl+Right { move-column-right; }
|
||||
Mod+Ctrl+H { move-column-left; }
|
||||
Mod+Ctrl+J { move-window-down; }
|
||||
Mod+Ctrl+K { move-window-up; }
|
||||
Mod+Ctrl+L { move-column-right; }
|
||||
|
||||
Mod+Home { focus-column-first; }
|
||||
|
||||
Mod+Page_Down { focus-workspace-down; }
|
||||
Mod+Page_Up { focus-workspace-up; }
|
||||
Mod+U { focus-workspace-down; }
|
||||
Mod+I { focus-workspace-up; }
|
||||
Mod+Ctrl+Page_Down { move-column-to-workspace-down; }
|
||||
Mod+Ctrl+Page_Up { move-column-to-workspace-up; }
|
||||
Mod+Ctrl+U { move-column-to-workspace-down; }
|
||||
Mod+Ctrl+I { move-column-to-workspace-up; }
|
||||
|
||||
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
|
||||
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
|
||||
|
||||
Mod+BracketLeft { consume-or-expel-window-left; }
|
||||
Mod+BracketRight { consume-or-expel-window-right; }
|
||||
|
||||
Mod+R { switch-preset-column-width; }
|
||||
Mod+Shift+R { switch-preset-window-height; }
|
||||
Mod+Ctrl+R { reset-window-height; }
|
||||
Mod+F { maximize-column; }
|
||||
Mod+Shift+F { fullscreen-window; }
|
||||
|
||||
Mod+C { center-column; }
|
||||
Mod+Ctrl+C { center-visible-columns; }
|
||||
|
||||
Mod+Minus { set-column-width "-10%"; }
|
||||
Mod+Equal { set-column-width "+10%"; }
|
||||
Mod+Shift+Minus { set-window-height "-10%"; }
|
||||
Mod+Shift+Equal { set-window-height "+10%"; }
|
||||
|
||||
Mod+S { toggle-column-tabbed-display; }
|
||||
Mod+Space { switch-layout "next"; }
|
||||
Mod+Shift+Space { switch-layout "prev"; }
|
||||
|
||||
Print { screenshot; }
|
||||
Ctrl+Print { screenshot-screen; }
|
||||
Alt+Print { screenshot-window; }
|
||||
|
||||
Mod+Shift+P { power-off-monitors; }
|
||||
}
|
||||
@@ -1,5 +1,3 @@
|
||||
{
|
||||
"diagnostics.globals": [
|
||||
"vim"
|
||||
]
|
||||
}
|
||||
"format.enable": false
|
||||
}
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"neodev": {
|
||||
"library": {
|
||||
"enabled": true,
|
||||
"plugins": true
|
||||
}
|
||||
},
|
||||
"neoconf": {
|
||||
"plugins": {
|
||||
"lua_ls": {
|
||||
"enabled": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"lspconfig": {
|
||||
"lua_ls": {
|
||||
"Lua.format.enable": false
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
@@ -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
|
||||
```
|
||||
@@ -1,17 +1,29 @@
|
||||
-- Path for lazy.nvim plugin manager
|
||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||
vim.fn.system({
|
||||
"git",
|
||||
"clone",
|
||||
"--filter=blob:none",
|
||||
"https://github.com/folke/lazy.nvim.git",
|
||||
"--branch=stable", -- latest stable release
|
||||
lazypath,
|
||||
})
|
||||
-- This file simply bootstraps the installation of Lazy.nvim and then calls other files for execution
|
||||
-- This file doesn't necessarily need to be touched, BE CAUTIOUS editing this file and proceed at your own risk.
|
||||
local lazypath = vim.env.LAZY or vim.fn.stdpath "data" .. "/lazy/lazy.nvim"
|
||||
|
||||
if not (vim.env.LAZY or (vim.uv or vim.loop).fs_stat(lazypath)) then
|
||||
-- stylua: ignore
|
||||
local result = vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath })
|
||||
if vim.v.shell_error ~= 0 then
|
||||
-- stylua: ignore
|
||||
vim.api.nvim_echo({ { ("Error cloning lazy.nvim:\n%s\n"):format(result), "ErrorMsg" }, { "Press any key to exit...", "MoreMsg" } }, true, {})
|
||||
vim.fn.getchar()
|
||||
vim.cmd.quit()
|
||||
end
|
||||
end
|
||||
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
vim.cmd("set number")
|
||||
require("vim-options")
|
||||
require("lazy").setup("plugins")
|
||||
vim.opt.termguicolors = true
|
||||
|
||||
-- validate that lazy is available
|
||||
if not pcall(require, "lazy") then
|
||||
-- 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"
|
||||
|
||||
vim.opt.clipboard = 'unnamedplus'
|
||||
|
||||
@@ -1,29 +1,48 @@
|
||||
{
|
||||
"LuaSnip": { "branch": "master", "commit": "c9b9a22904c97d0eb69ccb9bab76037838326817" },
|
||||
"alpha-nvim": { "branch": "main", "commit": "de72250e054e5e691b9736ee30db72c65d560771" },
|
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" },
|
||||
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "9b36d497495436c135659902054ee637e0ba6021" },
|
||||
"gruvbox": { "branch": "main", "commit": "089b60e92aa0a1c6fa76ff527837cd35b6f5ac81" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "7527af40ddd4a93a02911be570b32609b9d4ea53" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "2a5bae925481f999263d6f5ed8361baef8df4f83" },
|
||||
"markview.nvim": { "branch": "main", "commit": "68902d7cba78a7fe331c13d531376b4be494a05c" },
|
||||
"mini.icons": { "branch": "main", "commit": "ec61af6e606fc89ee3b1d8f2f20166a3ca917a36" },
|
||||
"neo-tree.nvim": { "branch": "v3.x", "commit": "5d172e8315444dbc32867d1c7b04d8e7e68ec4e1" },
|
||||
"noice.nvim": { "branch": "main", "commit": "e3c68a4d2275a01268a52e2931bfccfbfb693d15" },
|
||||
"nui.nvim": { "branch": "main", "commit": "53e907ffe5eedebdca1cd503b00aa8692068ca46" },
|
||||
"nvim-autopairs": { "branch": "master", "commit": "3d02855468f94bf435db41b661b58ec4f48a06b7" },
|
||||
"nvim-cmp": { "branch": "main", "commit": "12509903a5723a876abd65953109f926f4634c30" },
|
||||
"nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" },
|
||||
"nvim-notify": { "branch": "master", "commit": "22f29093eae7785773ee9d543f8750348b1a195c" },
|
||||
"nvim-treesitter": { "branch": "master", "commit": "4988b7068001b3a772c7cc738708341e612e3c26" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "402377242b04be3f4f0f3720bd952df86e946c30" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "3707cdb1e43f5cea73afb6037e6494e7ce847a66" },
|
||||
"snacks.nvim": { "branch": "main", "commit": "c2310c6d1ecb4d5fad701ed0aeb92adc2f0db385" },
|
||||
"tabline.nvim": { "branch": "main", "commit": "ff33d12a20d52daafa5393162cae4108faf8128b" },
|
||||
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
|
||||
"typr": { "branch": "main", "commit": "696b8724b2bc68ab950d1d7a18bf00bfc536bcca" },
|
||||
"volt": { "branch": "main", "commit": "3bedb1576db574af160643eea7df3b09dbe5ee9c" }
|
||||
"AstroNvim": { "branch": "main", "commit": "5adafa02ab066326f911160dd6c73d758407fe46" },
|
||||
"LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" },
|
||||
"aerial.nvim": { "branch": "master", "commit": "3284a2cb858ba009c79da87d5e010ccee3c99c4d" },
|
||||
"astrocommunity": { "branch": "main", "commit": "6f3e4a5606e51e174f51a63e3b8f4a8f12f1f19b" },
|
||||
"astrocore": { "branch": "main", "commit": "c797dd5a592e2bd154f2503e231b8a4083659534" },
|
||||
"astrolsp": { "branch": "main", "commit": "414775e4b49a46bd7105cc5498ea7bb312359bf2" },
|
||||
"astrotheme": { "branch": "main", "commit": "f12dcf64b1f9a05839c3ac2146f550f43bae9dab" },
|
||||
"astroui": { "branch": "main", "commit": "fded232ee0001c6bed9b654188e3dd4b0c58317c" },
|
||||
"better-escape.nvim": { "branch": "master", "commit": "199dcc2643dec5d8dbdab4ec672cf405224dcb3b" },
|
||||
"blink.cmp": { "branch": "main", "commit": "9bcb14b43852a6f2bfd5ac9ef29cb5cf09b1b39b" },
|
||||
"blink.compat": { "branch": "main", "commit": "2ed6d9a28b07fa6f3bface818470605f8896408c" },
|
||||
"cmp-dap": { "branch": "master", "commit": "ea92773e84c0ad3288c3bc5e452ac91559669087" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "7010000889bfb6c26065e0b0f7f1e6aa9163edd9" },
|
||||
"guess-indent.nvim": { "branch": "main", "commit": "84a4987ff36798c2fc1169cbaff67960aed9776f" },
|
||||
"heirline.nvim": { "branch": "master", "commit": "fae936abb5e0345b85c3a03ecf38525b0828b992" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
|
||||
"lazydev.nvim": { "branch": "main", "commit": "f59bd14a852ca43db38e3662395354cb2a9b13e0" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" },
|
||||
"mason-null-ls.nvim": { "branch": "main", "commit": "2b8433f76598397fcc97318d410e0c4f7a4bea6a" },
|
||||
"mason-nvim-dap.nvim": { "branch": "main", "commit": "4c2cdc69d69fe00c15ae8648f7e954d99e5de3ea" },
|
||||
"mason-tool-installer.nvim": { "branch": "main", "commit": "93a9ff9b34c91c0cb0f7de8d5f7e4abce51d8903" },
|
||||
"mason.nvim": { "branch": "main", "commit": "7f265cd6ae56cecdd0aa50c8c73fc593b0604801" },
|
||||
"mini.icons": { "branch": "main", "commit": "397ed3807e96b59709ef3292f0a3e253d5c1dc0a" },
|
||||
"neo-tree.nvim": { "branch": "main", "commit": "f481de16a0eb59c985abac8985e3f2e2f75b4875" },
|
||||
"neoconf.nvim": { "branch": "main", "commit": "5ebd6c29c88931fe7c603f087b4c32ac8157d901" },
|
||||
"none-ls.nvim": { "branch": "main", "commit": "db2a48b79cfcdab8baa5d3f37f21c78b6705c62e" },
|
||||
"nui.nvim": { "branch": "main", "commit": "f535005e6ad1016383f24e39559833759453564e" },
|
||||
"nvim-autopairs": { "branch": "master", "commit": "4d74e75913832866aa7de35e4202463ddf6efd1b" },
|
||||
"nvim-dap": { "branch": "master", "commit": "b0f983507e3702f073bfe1516846e58b56d4e42f" },
|
||||
"nvim-dap-ui": { "branch": "master", "commit": "73a26abf4941aa27da59820fd6b028ebcdbcf932" },
|
||||
"nvim-highlight-colors": { "branch": "main", "commit": "b42a5ccec7457b44e89f7ed3b3afb1b375bb2093" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "fa2662510d30b06168b6e2e6915518decde6bbac" },
|
||||
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
|
||||
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
|
||||
"nvim-treesitter-textobjects": { "branch": "master", "commit": "0f051e9813a36481f48ca1f833897210dbcfffde" },
|
||||
"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": "0d1e93684da00ab7c057410fecfc24f434698898" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "fcbf4eea17cb299c02557d576f0d568878e354a4" }
|
||||
}
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
-- 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" },
|
||||
"nvim-telescope/telescope.nvim",
|
||||
}
|
||||
@@ -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,
|
||||
}
|
||||
@@ -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,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -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,
|
||||
},
|
||||
}
|
||||
@@ -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,
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
-- lua/plugins/mappings.lua
|
||||
|
||||
return {
|
||||
{
|
||||
"AstroNvim/astrocore",
|
||||
---@type AstroCoreOpts
|
||||
opts = {
|
||||
mappings = {
|
||||
n = {
|
||||
-- Your existing AstroCore normal mode mappings would be here
|
||||
-- For example:
|
||||
-- ["<Leader>bn"] = { "<cmd>tabnew<cr>", desc = "New tab" },
|
||||
|
||||
-- Add your new mapping for "Leader f z" here
|
||||
["<Leader>fz"] = {
|
||||
function()
|
||||
-- The updated regex to find "fn " followed by ANY valid Zig identifier, then an opening parenthesis
|
||||
-- Explanation of the new regex:
|
||||
-- fn : Matches the literal string "fn"
|
||||
-- \\s+ : Matches one or more whitespace characters
|
||||
-- \\w+ : Matches one or more "word" characters (letters, numbers, underscore) - this covers any function name
|
||||
-- \\( : Matches the literal opening parenthesis (escaped because '(' is a special regex character)
|
||||
local pattern = "fn\\s+"
|
||||
|
||||
require("telescope.builtin").live_grep {
|
||||
default_text = pattern,
|
||||
prompt_title = "Find Zig Functions",
|
||||
file_types = { "zig" },
|
||||
rg_opts = { "--case-insensitive" },
|
||||
}
|
||||
end,
|
||||
desc = "Find all function definitions in Zig files",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
return {
|
||||
"OXY2DEV/markview.nvim",
|
||||
lazy = false
|
||||
};
|
||||
@@ -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,
|
||||
}
|
||||
@@ -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,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -1,12 +1,15 @@
|
||||
if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
|
||||
|
||||
-- Customize Treesitter
|
||||
|
||||
---@type LazySpec
|
||||
return {
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
build = ":TSUpdate",
|
||||
config = function()
|
||||
local config = require("nvim-treesitter.configs")
|
||||
config.setup({
|
||||
auto_install = true,
|
||||
highlight = { enable = true },
|
||||
indent = { enable = true },
|
||||
})
|
||||
end,
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
opts = {
|
||||
ensure_installed = {
|
||||
"lua",
|
||||
"vim",
|
||||
-- add more arguments for adding more treesitter parsers
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -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" },
|
||||
}
|
||||
@@ -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,
|
||||
},
|
||||
}
|
||||
@@ -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 = " "
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
base: lua51
|
||||
|
||||
globals:
|
||||
vim:
|
||||
any: true
|
||||
@@ -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"
|
||||
@@ -120,3 +120,4 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 9.3 KiB |
|
Before Width: | Height: | Size: 7.6 KiB |
|
Before Width: | Height: | Size: 9.5 KiB |
|
Before Width: | Height: | Size: 9.4 KiB |
@@ -1,132 +1,44 @@
|
||||
{
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"reload_style_on_change": true,
|
||||
"modules-left": ["custom/notification","clock","custom/pacman","tray"],
|
||||
"modules-center": ["hyprland/workspaces"],
|
||||
"modules-right": ["group/expand","bluetooth","network","battery"],
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"height": 16,
|
||||
"spacing": 10,
|
||||
|
||||
"modules-left": ["clock"],
|
||||
"modules-center": ["niri/window"],
|
||||
"modules-right": ["cpu","memory","network"],
|
||||
|
||||
"hyprland/workspaces": {
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"active": "",
|
||||
"default": "",
|
||||
"empty": ""
|
||||
},
|
||||
"persistent-workspaces": {
|
||||
"*": [ 1,2,3,4,5 ]
|
||||
}
|
||||
},
|
||||
"custom/notification": {
|
||||
"tooltip": false,
|
||||
"format": "",
|
||||
"on-click": "swaync-client -t -sw",
|
||||
"escape": true
|
||||
},
|
||||
"clock": {
|
||||
"format": "{:%I:%M:%S %p} ",
|
||||
"interval": 1,
|
||||
"tooltip-format": "<tt>{calendar}</tt>",
|
||||
"calendar": {
|
||||
"format": {
|
||||
"today": "<span color='#fAfBfC'><b>{}</b></span>"
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"on-click-right": "shift_down",
|
||||
"on-click": "shift_up"
|
||||
}
|
||||
},
|
||||
"network": {
|
||||
"format-wifi": "",
|
||||
"format-ethernet":"",
|
||||
"format-disconnected": "",
|
||||
"tooltip-format-disconnected": "Error",
|
||||
"tooltip-format-wifi": "{essid} ({signalStrength}%) ",
|
||||
"tooltip-format-ethernet": "{ifname} 🖧 ",
|
||||
"on-click": "kitty nmtui"
|
||||
},
|
||||
"bluetooth": {
|
||||
"format-on": "",
|
||||
"format-off": "BT-off",
|
||||
"format-disabled": "",
|
||||
"format-connected-battery": "{device_battery_percentage}% ",
|
||||
"format-alt": "{device_alias} ",
|
||||
"tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected",
|
||||
"tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}",
|
||||
"tooltip-format-enumerate-connected": "{device_alias}\n{device_address}",
|
||||
"tooltip-format-enumerate-connected-battery": "{device_alias}\n{device_address}\n{device_battery_percentage}%",
|
||||
"on-click-right": "blueman-manager",
|
||||
},
|
||||
"battery": {
|
||||
"interval":30,
|
||||
"states": {
|
||||
"good": 95,
|
||||
"warning": 30,
|
||||
"critical": 20
|
||||
},
|
||||
"format": "{capacity}% {icon}",
|
||||
"format-charging": "{capacity}% ",
|
||||
"format-plugged": "{capacity}% ",
|
||||
"format-alt": "{time} {icon}",
|
||||
"format-icons": [
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
],
|
||||
},
|
||||
"custom/pacman": {
|
||||
"format": " {}",
|
||||
"interval": 30,
|
||||
"exec": "checkupdates | wc -l",
|
||||
"exec-if": "exit 0",
|
||||
"on-click": "kitty sh -c 'yay -Syu; echo Done - Press enter to exit; read'; pkill -SIGRTMIN+8 waybar",
|
||||
"signal": 8,
|
||||
"tooltip": false,
|
||||
},
|
||||
"custom/expand": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/endpoint":{
|
||||
"format": "|",
|
||||
"tooltip": false
|
||||
},
|
||||
"group/expand": {
|
||||
"orientation": "horizontal",
|
||||
"drawer": {
|
||||
"transition-duration": 600,
|
||||
"transition-to-left": true,
|
||||
"click-to-reveal": true
|
||||
},
|
||||
"modules": ["custom/expand", "custom/colorpicker","cpu","memory","temperature","custom/endpoint"],
|
||||
},
|
||||
"custom/colorpicker": {
|
||||
"format": "{}",
|
||||
"return-type": "json",
|
||||
"interval": "once",
|
||||
"exec": "~/.config/waybar/scripts/colorpicker.sh -j",
|
||||
"on-click": "~/.config/waybar/scripts/colorpicker.sh",
|
||||
"signal": 1
|
||||
},
|
||||
"cpu": {
|
||||
"format": "",
|
||||
"tooltip": true
|
||||
},
|
||||
"memory": {
|
||||
"format": ""
|
||||
},
|
||||
"temperature": {
|
||||
"critical-threshold": 80,
|
||||
"format": "",
|
||||
},
|
||||
"tray": {
|
||||
"icon-size": 14,
|
||||
"spacing": 10
|
||||
},
|
||||
}
|
||||
"clock": {
|
||||
"format": "{:%d.%m.%Y | %H:%M}"
|
||||
},
|
||||
|
||||
"cpu": {
|
||||
"interval": 10,
|
||||
"format": "CPU: {}%",
|
||||
"max-length": 10
|
||||
},
|
||||
|
||||
"memory": {
|
||||
"interval": 30,
|
||||
"format": "\uf4bc {used:0.1f}G"
|
||||
},
|
||||
|
||||
"network": {
|
||||
"format": "",
|
||||
"format-ethernet": "\udb83\udc9d",
|
||||
"format-wifi": "{icon}",
|
||||
"format-disconnected": "\udb83\udc9c",
|
||||
"format-icons": ["\udb82\udd2f", "\udb82\udd1f", "\udb82\udd22", "\udb82\udd25", "\udb82\udd28"],
|
||||
"tooltip-format-wifi": "{essid} ({signalStrength}%)",
|
||||
"tooltip-format-ethernet": "{ifname}",
|
||||
"tooltip-format-disconnected": "Disconnected",
|
||||
},
|
||||
|
||||
"niri/window": {
|
||||
"format": "{}",
|
||||
"rewrite": {
|
||||
"(.*) - Mozilla Firefox": "🌎 $1",
|
||||
"(.*) - zsh": "> [$1]"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
check() {
|
||||
command -v "$1" 1>/dev/null
|
||||
}
|
||||
|
||||
|
||||
|
||||
loc="$HOME/.cache/colorpicker"
|
||||
[ -d "$loc" ] || mkdir -p "$loc"
|
||||
[ -f "$loc/colors" ] || touch "$loc/colors"
|
||||
|
||||
limit=10
|
||||
|
||||
[[ $# -eq 1 && $1 = "-l" ]] && {
|
||||
cat "$loc/colors"
|
||||
exit
|
||||
}
|
||||
|
||||
[[ $# -eq 1 && $1 = "-j" ]] && {
|
||||
text="$(head -n 1 "$loc/colors")"
|
||||
|
||||
mapfile -t allcolors < <(tail -n +2 "$loc/colors")
|
||||
# allcolors=($(tail -n +2 "$loc/colors"))
|
||||
tooltip="<b> COLORS</b>\n\n"
|
||||
|
||||
tooltip+="-> <b>$text</b> <span color='$text'></span> \n"
|
||||
for i in "${allcolors[@]}"; do
|
||||
tooltip+=" <b>$i</b> <span color='$i'></span> \n"
|
||||
done
|
||||
|
||||
cat <<EOF
|
||||
{ "text":"<span color='$text'></span>", "tooltip":"$tooltip"}
|
||||
EOF
|
||||
|
||||
exit
|
||||
}
|
||||
|
||||
check hyprpicker || {
|
||||
notify "hyprpicker is not installed"
|
||||
exit
|
||||
}
|
||||
killall -q hyprpicker
|
||||
color=$(hyprpicker)
|
||||
|
||||
check wl-copy && {
|
||||
echo "$color" | sed -z 's/\n//g' | wl-copy
|
||||
}
|
||||
|
||||
prevColors=$(head -n $((limit - 1)) "$loc/colors")
|
||||
echo "$color" >"$loc/colors"
|
||||
echo "$prevColors" >>"$loc/colors"
|
||||
sed -i '/^$/d' "$loc/colors"
|
||||
source ~/.cache/wal/colors.sh && notify-send "Color Picker" "This color has been selected: $color" -i $wallpaper
|
||||
pkill -RTMIN+1 waybar
|
||||
@@ -1,12 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Check if waybar is running
|
||||
if pgrep -x "waybar" > /dev/null; then
|
||||
# If running, kill the waybar process
|
||||
pkill -x "waybar"
|
||||
else
|
||||
# If not running, start waybar
|
||||
waybar &
|
||||
fi
|
||||
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
#!/bin/bash
|
||||
WAYBAR_DIR="$HOME/.config/waybar"
|
||||
STYLECSS="$WAYBAR_DIR/style.css"
|
||||
CONFIG="$WAYBAR_DIR/config"
|
||||
ASSETS="$WAYBAR_DIR/assets"
|
||||
THEMES="$WAYBAR_DIR/themes"
|
||||
menu() {
|
||||
find "${ASSETS}" -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" -o -iname "*.gif" \) | awk '{print "img:"$0}'
|
||||
}
|
||||
main() {
|
||||
choice=$(menu | wofi -c ~/.config/wofi/waybar -s ~/.config/wofi/style-waybar.css --show dmenu --prompt " Select Waybar (Scroll with Arrows)" -n)
|
||||
selected_wallpaper=$(echo "$choice" | sed 's/^img://')
|
||||
echo $selected_wallpaper
|
||||
if [[ "$selected_wallpaper" == "$ASSETS/experimental.png" ]]; then
|
||||
cat $THEMES/experimental/style-experimental.css > $STYLECSS
|
||||
cat $THEMES/experimental/config-experimental > $CONFIG
|
||||
pkill waybar && waybar
|
||||
elif [[ "$selected_wallpaper" == "$ASSETS/main.png" ]]; then
|
||||
cat $THEMES/default/style-default.css > $STYLECSS
|
||||
cat $THEMES/default/config-default > $CONFIG
|
||||
pkill waybar && waybar
|
||||
elif [[ "$selected_wallpaper" == "$ASSETS/line.png" ]]; then
|
||||
cat $THEMES/line/style-line.css > $STYLECSS
|
||||
cat $THEMES/line/config-line > $CONFIG
|
||||
pkill waybar && waybar
|
||||
elif [[ "$selected_wallpaper" == "$ASSETS/zen.png" ]]; then
|
||||
cat $THEMES/zen/style-zen.css > $STYLECSS
|
||||
cat $THEMES/zen/config-zen > $CONFIG
|
||||
pkill waybar && waybar
|
||||
fi
|
||||
|
||||
}
|
||||
main
|
||||
@@ -1,167 +1,26 @@
|
||||
@import url('../../.cache/wal/colors-waybar.css');
|
||||
@define-color foreground #eeeeee;
|
||||
@define-color foreground-inactive #aaaaaa;
|
||||
@define-color background #000000;
|
||||
|
||||
* {
|
||||
font-size:15px;
|
||||
font-family: "CodeNewRoman Nerd Font Propo";
|
||||
}
|
||||
window#waybar{
|
||||
all:unset;
|
||||
}
|
||||
.modules-left {
|
||||
padding:7px;
|
||||
margin:10 0 5 10;
|
||||
border-radius:10px;
|
||||
background: alpha(@background,.6);
|
||||
box-shadow: 0px 0px 2px rgba(0, 0, 0, .6);
|
||||
}
|
||||
.modules-center {
|
||||
padding:7px;
|
||||
margin:10 0 5 0;
|
||||
border-radius:10px;
|
||||
background: alpha(@background,.6);
|
||||
box-shadow: 0px 0px 2px rgba(0, 0, 0, .6);
|
||||
}
|
||||
.modules-right {
|
||||
padding:7px;
|
||||
margin: 10 10 5 0;
|
||||
border-radius:10px;
|
||||
background: alpha(@background,.6);
|
||||
box-shadow: 0px 0px 2px rgba(0, 0, 0, .6);
|
||||
}
|
||||
tooltip {
|
||||
background:@background;
|
||||
color: @color7;
|
||||
}
|
||||
#clock:hover, #custom-pacman:hover, #custom-notification:hover,#bluetooth:hover,#network:hover,#battery:hover, #cpu:hover,#memory:hover,#temperature:hover{
|
||||
transition: all .3s ease;
|
||||
color:@color9;
|
||||
}
|
||||
#custom-notification {
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
color:@color7;
|
||||
}
|
||||
#clock{
|
||||
padding: 0px 5px;
|
||||
color:@color7;
|
||||
transition: all .3s ease;
|
||||
}
|
||||
#custom-pacman{
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
color:@color7;
|
||||
|
||||
}
|
||||
#workspaces {
|
||||
padding: 0px 5px;
|
||||
}
|
||||
#workspaces button {
|
||||
all:unset;
|
||||
padding: 0px 5px;
|
||||
color: alpha(@color9,.4);
|
||||
transition: all .2s ease;
|
||||
}
|
||||
#workspaces button:hover {
|
||||
color:rgba(0,0,0,0);
|
||||
border: none;
|
||||
text-shadow: 0px 0px 1.5px rgba(0, 0, 0, .5);
|
||||
transition: all 1s ease;
|
||||
}
|
||||
#workspaces button.active {
|
||||
color: @color9;
|
||||
border: none;
|
||||
text-shadow: 0px 0px 2px rgba(0, 0, 0, .5);
|
||||
}
|
||||
#workspaces button.empty {
|
||||
color: rgba(0,0,0,0);
|
||||
border: none;
|
||||
text-shadow: 0px 0px 1.5px rgba(0, 0, 0, .2);
|
||||
}
|
||||
#workspaces button.empty:hover {
|
||||
color: rgba(0,0,0,0);
|
||||
border: none;
|
||||
text-shadow: 0px 0px 1.5px rgba(0, 0, 0, .5);
|
||||
transition: all 1s ease;
|
||||
}
|
||||
#workspaces button.empty.active {
|
||||
color: @color9;
|
||||
border: none;
|
||||
text-shadow: 0px 0px 2px rgba(0, 0, 0, .5);
|
||||
}
|
||||
#bluetooth{
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
color:@color7;
|
||||
|
||||
}
|
||||
#network{
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
color:@color7;
|
||||
|
||||
}
|
||||
#battery{
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
color:@color7;
|
||||
|
||||
|
||||
}
|
||||
#battery.charging {
|
||||
color: #26A65B;
|
||||
font-family: FiraCode Nerd Font Mono;
|
||||
font-size: 16px;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#battery.warning:not(.charging) {
|
||||
color: #ffbe61;
|
||||
#waybar {
|
||||
color: @foreground;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
#battery.critical:not(.charging) {
|
||||
color: #f53c3c;
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
#group-expand{
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
}
|
||||
#custom-expand{
|
||||
padding: 0px 5px;
|
||||
color:alpha(@foreground,.2);
|
||||
text-shadow: 0px 0px 2px rgba(0, 0, 0, .7);
|
||||
transition: all .3s ease;
|
||||
}
|
||||
#custom-expand:hover{
|
||||
color:rgba(255,255,255,.2);
|
||||
text-shadow: 0px 0px 2px rgba(255, 255, 255, .5);
|
||||
}
|
||||
#custom-colorpicker{
|
||||
padding: 0px 5px;
|
||||
}
|
||||
#cpu,#memory,#temperature{
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
color:@color7;
|
||||
|
||||
}
|
||||
#custom-endpoint{
|
||||
color:transparent;
|
||||
text-shadow: 0px 0px 1.5px rgba(0, 0, 0, 1);
|
||||
|
||||
}
|
||||
#tray{
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
|
||||
}
|
||||
#tray menu * {
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
}
|
||||
|
||||
#tray menu separator {
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
#network,
|
||||
#cpu,
|
||||
#clock,
|
||||
#memory,
|
||||
#window {
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
padding-top: 3px;
|
||||
padding-bottom: 3px;
|
||||
}
|
||||
|
||||
@@ -1,132 +0,0 @@
|
||||
{
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"reload_style_on_change": true,
|
||||
"modules-left": ["custom/notification","clock","custom/pacman","tray"],
|
||||
"modules-center": ["hyprland/workspaces"],
|
||||
"modules-right": ["group/expand","bluetooth","network","battery"],
|
||||
|
||||
|
||||
"hyprland/workspaces": {
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"active": "",
|
||||
"default": "",
|
||||
"empty": ""
|
||||
},
|
||||
"persistent-workspaces": {
|
||||
"*": [ 1,2,3,4,5 ]
|
||||
}
|
||||
},
|
||||
"custom/notification": {
|
||||
"tooltip": false,
|
||||
"format": "",
|
||||
"on-click": "swaync-client -t -sw",
|
||||
"escape": true
|
||||
},
|
||||
"clock": {
|
||||
"format": "{:%I:%M:%S %p} ",
|
||||
"interval": 1,
|
||||
"tooltip-format": "<tt>{calendar}</tt>",
|
||||
"calendar": {
|
||||
"format": {
|
||||
"today": "<span color='#fAfBfC'><b>{}</b></span>"
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"on-click-right": "shift_down",
|
||||
"on-click": "shift_up"
|
||||
}
|
||||
},
|
||||
"network": {
|
||||
"format-wifi": "",
|
||||
"format-ethernet":"",
|
||||
"format-disconnected": "",
|
||||
"tooltip-format-disconnected": "Error",
|
||||
"tooltip-format-wifi": "{essid} ({signalStrength}%) ",
|
||||
"tooltip-format-ethernet": "{ifname} 🖧 ",
|
||||
"on-click": "kitty nmtui"
|
||||
},
|
||||
"bluetooth": {
|
||||
"format-on": "",
|
||||
"format-off": "BT-off",
|
||||
"format-disabled": "",
|
||||
"format-connected-battery": "{device_battery_percentage}% ",
|
||||
"format-alt": "{device_alias} ",
|
||||
"tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected",
|
||||
"tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}",
|
||||
"tooltip-format-enumerate-connected": "{device_alias}\n{device_address}",
|
||||
"tooltip-format-enumerate-connected-battery": "{device_alias}\n{device_address}\n{device_battery_percentage}%",
|
||||
"on-click-right": "blueman-manager",
|
||||
},
|
||||
"battery": {
|
||||
"interval":30,
|
||||
"states": {
|
||||
"good": 95,
|
||||
"warning": 30,
|
||||
"critical": 20
|
||||
},
|
||||
"format": "{capacity}% {icon}",
|
||||
"format-charging": "{capacity}% ",
|
||||
"format-plugged": "{capacity}% ",
|
||||
"format-alt": "{time} {icon}",
|
||||
"format-icons": [
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
],
|
||||
},
|
||||
"custom/pacman": {
|
||||
"format": " {}",
|
||||
"interval": 30,
|
||||
"exec": "checkupdates | wc -l",
|
||||
"exec-if": "exit 0",
|
||||
"on-click": "kitty sh -c 'yay -Syu; echo Done - Press enter to exit; read'; pkill -SIGRTMIN+8 waybar",
|
||||
"signal": 8,
|
||||
"tooltip": false,
|
||||
},
|
||||
"custom/expand": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/endpoint":{
|
||||
"format": "|",
|
||||
"tooltip": false
|
||||
},
|
||||
"group/expand": {
|
||||
"orientation": "horizontal",
|
||||
"drawer": {
|
||||
"transition-duration": 600,
|
||||
"transition-to-left": true,
|
||||
"click-to-reveal": true
|
||||
},
|
||||
"modules": ["custom/expand", "custom/colorpicker","cpu","memory","temperature","custom/endpoint"],
|
||||
},
|
||||
"custom/colorpicker": {
|
||||
"format": "{}",
|
||||
"return-type": "json",
|
||||
"interval": "once",
|
||||
"exec": "~/.config/waybar/scripts/colorpicker.sh -j",
|
||||
"on-click": "~/.config/waybar/scripts/colorpicker.sh",
|
||||
"signal": 1
|
||||
},
|
||||
"cpu": {
|
||||
"format": "",
|
||||
"tooltip": true
|
||||
},
|
||||
"memory": {
|
||||
"format": ""
|
||||
},
|
||||
"temperature": {
|
||||
"critical-threshold": 80,
|
||||
"format": "",
|
||||
},
|
||||
"tray": {
|
||||
"icon-size": 14,
|
||||
"spacing": 10
|
||||
},
|
||||
}
|
||||
|
||||
@@ -1,167 +0,0 @@
|
||||
@import url('../../.cache/wal/colors-waybar.css');
|
||||
|
||||
* {
|
||||
font-size:15px;
|
||||
font-family: "CodeNewRoman Nerd Font Propo";
|
||||
}
|
||||
window#waybar{
|
||||
all:unset;
|
||||
}
|
||||
.modules-left {
|
||||
padding:7px;
|
||||
margin:10 0 5 10;
|
||||
border-radius:10px;
|
||||
background: alpha(@background,.6);
|
||||
box-shadow: 0px 0px 2px rgba(0, 0, 0, .6);
|
||||
}
|
||||
.modules-center {
|
||||
padding:7px;
|
||||
margin:10 0 5 0;
|
||||
border-radius:10px;
|
||||
background: alpha(@background,.6);
|
||||
box-shadow: 0px 0px 2px rgba(0, 0, 0, .6);
|
||||
}
|
||||
.modules-right {
|
||||
padding:7px;
|
||||
margin: 10 10 5 0;
|
||||
border-radius:10px;
|
||||
background: alpha(@background,.6);
|
||||
box-shadow: 0px 0px 2px rgba(0, 0, 0, .6);
|
||||
}
|
||||
tooltip {
|
||||
background:@background;
|
||||
color: @color7;
|
||||
}
|
||||
#clock:hover, #custom-pacman:hover, #custom-notification:hover,#bluetooth:hover,#network:hover,#battery:hover, #cpu:hover,#memory:hover,#temperature:hover{
|
||||
transition: all .3s ease;
|
||||
color:@color9;
|
||||
}
|
||||
#custom-notification {
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
color:@color7;
|
||||
}
|
||||
#clock{
|
||||
padding: 0px 5px;
|
||||
color:@color7;
|
||||
transition: all .3s ease;
|
||||
}
|
||||
#custom-pacman{
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
color:@color7;
|
||||
|
||||
}
|
||||
#workspaces {
|
||||
padding: 0px 5px;
|
||||
}
|
||||
#workspaces button {
|
||||
all:unset;
|
||||
padding: 0px 5px;
|
||||
color: alpha(@color9,.4);
|
||||
transition: all .2s ease;
|
||||
}
|
||||
#workspaces button:hover {
|
||||
color:rgba(0,0,0,0);
|
||||
border: none;
|
||||
text-shadow: 0px 0px 1.5px rgba(0, 0, 0, .5);
|
||||
transition: all 1s ease;
|
||||
}
|
||||
#workspaces button.active {
|
||||
color: @color9;
|
||||
border: none;
|
||||
text-shadow: 0px 0px 2px rgba(0, 0, 0, .5);
|
||||
}
|
||||
#workspaces button.empty {
|
||||
color: rgba(0,0,0,0);
|
||||
border: none;
|
||||
text-shadow: 0px 0px 1.5px rgba(0, 0, 0, .2);
|
||||
}
|
||||
#workspaces button.empty:hover {
|
||||
color: rgba(0,0,0,0);
|
||||
border: none;
|
||||
text-shadow: 0px 0px 1.5px rgba(0, 0, 0, .5);
|
||||
transition: all 1s ease;
|
||||
}
|
||||
#workspaces button.empty.active {
|
||||
color: @color9;
|
||||
border: none;
|
||||
text-shadow: 0px 0px 2px rgba(0, 0, 0, .5);
|
||||
}
|
||||
#bluetooth{
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
color:@color7;
|
||||
|
||||
}
|
||||
#network{
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
color:@color7;
|
||||
|
||||
}
|
||||
#battery{
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
color:@color7;
|
||||
|
||||
|
||||
}
|
||||
#battery.charging {
|
||||
color: #26A65B;
|
||||
}
|
||||
|
||||
#battery.warning:not(.charging) {
|
||||
color: #ffbe61;
|
||||
}
|
||||
|
||||
#battery.critical:not(.charging) {
|
||||
color: #f53c3c;
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
#group-expand{
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
}
|
||||
#custom-expand{
|
||||
padding: 0px 5px;
|
||||
color:alpha(@foreground,.2);
|
||||
text-shadow: 0px 0px 2px rgba(0, 0, 0, .7);
|
||||
transition: all .3s ease;
|
||||
}
|
||||
#custom-expand:hover{
|
||||
color:rgba(255,255,255,.2);
|
||||
text-shadow: 0px 0px 2px rgba(255, 255, 255, .5);
|
||||
}
|
||||
#custom-colorpicker{
|
||||
padding: 0px 5px;
|
||||
}
|
||||
#cpu,#memory,#temperature{
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
color:@color7;
|
||||
|
||||
}
|
||||
#custom-endpoint{
|
||||
color:transparent;
|
||||
text-shadow: 0px 0px 1.5px rgba(0, 0, 0, 1);
|
||||
|
||||
}
|
||||
#tray{
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
|
||||
}
|
||||
#tray menu * {
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
}
|
||||
|
||||
#tray menu separator {
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
}
|
||||
@@ -1,132 +0,0 @@
|
||||
{
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"reload_style_on_change": true,
|
||||
"modules-left": ["custom/notification","clock","custom/pacman","tray"],
|
||||
"modules-center": ["hyprland/workspaces"],
|
||||
"modules-right": ["group/expand","bluetooth","network","battery"],
|
||||
|
||||
|
||||
"hyprland/workspaces": {
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"active": "",
|
||||
"default": "",
|
||||
"empty": ""
|
||||
},
|
||||
"persistent-workspaces": {
|
||||
"*": [ 1,2,3,4,5 ]
|
||||
}
|
||||
},
|
||||
"custom/notification": {
|
||||
"tooltip": false,
|
||||
"format": "",
|
||||
"on-click": "swaync-client -t -sw",
|
||||
"escape": true
|
||||
},
|
||||
"clock": {
|
||||
"format": "{:%I:%M:%S %p} ",
|
||||
"interval": 1,
|
||||
"tooltip-format": "<tt>{calendar}</tt>",
|
||||
"calendar": {
|
||||
"format": {
|
||||
"today": "<span color='#fAfBfC'><b>{}</b></span>"
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"on-click-right": "shift_down",
|
||||
"on-click": "shift_up"
|
||||
}
|
||||
},
|
||||
"network": {
|
||||
"format-wifi": "",
|
||||
"format-ethernet":"",
|
||||
"format-disconnected": "",
|
||||
"tooltip-format-disconnected": "Error",
|
||||
"tooltip-format-wifi": "{essid} ({signalStrength}%) ",
|
||||
"tooltip-format-ethernet": "{ifname} 🖧 ",
|
||||
"on-click": "kitty nmtui"
|
||||
},
|
||||
"bluetooth": {
|
||||
"format-on": "",
|
||||
"format-off": "BT-off",
|
||||
"format-disabled": "",
|
||||
"format-connected-battery": "{device_battery_percentage}% ",
|
||||
"format-alt": "{device_alias} ",
|
||||
"tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected",
|
||||
"tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}",
|
||||
"tooltip-format-enumerate-connected": "{device_alias}\n{device_address}",
|
||||
"tooltip-format-enumerate-connected-battery": "{device_alias}\n{device_address}\n{device_battery_percentage}%",
|
||||
"on-click-right": "blueman-manager",
|
||||
},
|
||||
"battery": {
|
||||
"interval":30,
|
||||
"states": {
|
||||
"good": 95,
|
||||
"warning": 30,
|
||||
"critical": 20
|
||||
},
|
||||
"format": "{capacity}% {icon}",
|
||||
"format-charging": "{capacity}% ",
|
||||
"format-plugged": "{capacity}% ",
|
||||
"format-alt": "{time} {icon}",
|
||||
"format-icons": [
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
],
|
||||
},
|
||||
"custom/pacman": {
|
||||
"format": " {}",
|
||||
"interval": 30,
|
||||
"exec": "checkupdates | wc -l",
|
||||
"exec-if": "exit 0",
|
||||
"on-click": "kitty sh -c 'yay -Syu; echo Done - Press enter to exit; read'; pkill -SIGRTMIN+8 waybar",
|
||||
"signal": 8,
|
||||
"tooltip": false,
|
||||
},
|
||||
"custom/expand": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/endpoint":{
|
||||
"format": "|",
|
||||
"tooltip": false
|
||||
},
|
||||
"group/expand": {
|
||||
"orientation": "horizontal",
|
||||
"drawer": {
|
||||
"transition-duration": 600,
|
||||
"transition-to-left": true,
|
||||
"click-to-reveal": true
|
||||
},
|
||||
"modules": ["custom/expand", "custom/colorpicker","cpu","memory","temperature","custom/endpoint"],
|
||||
},
|
||||
"custom/colorpicker": {
|
||||
"format": "{}",
|
||||
"return-type": "json",
|
||||
"interval": "once",
|
||||
"exec": "~/.config/waybar/scripts/colorpicker.sh -j",
|
||||
"on-click": "~/.config/waybar/scripts/colorpicker.sh",
|
||||
"signal": 1
|
||||
},
|
||||
"cpu": {
|
||||
"format": "",
|
||||
"tooltip": true
|
||||
},
|
||||
"memory": {
|
||||
"format": ""
|
||||
},
|
||||
"temperature": {
|
||||
"critical-threshold": 80,
|
||||
"format": "",
|
||||
},
|
||||
"tray": {
|
||||
"icon-size": 14,
|
||||
"spacing": 10
|
||||
},
|
||||
}
|
||||
|
||||
@@ -1,182 +0,0 @@
|
||||
@import url('../../.cache/wal/colors-waybar.css');
|
||||
* {
|
||||
font-size:15px;
|
||||
font-family: "CodeNewRoman Nerd Font Propo";
|
||||
}
|
||||
window#waybar{
|
||||
all:unset;
|
||||
}
|
||||
.modules-left {
|
||||
padding:7px;
|
||||
margin:10 0 5 10;
|
||||
border-radius:10px;
|
||||
background: alpha(@background,.6);
|
||||
box-shadow: 0px 0px 2px rgba(0, 0, 0, .6);
|
||||
}
|
||||
.modules-center {
|
||||
padding:7px;
|
||||
margin:10 0 5 0;
|
||||
border-radius:10px;
|
||||
background: alpha(@background,.6);
|
||||
box-shadow: 0px 0px 2px rgba(0, 0, 0, .6);
|
||||
min-width: 150.5px;
|
||||
}
|
||||
.modules-right {
|
||||
padding:7px;
|
||||
margin: 10 10 5 0;
|
||||
border-radius:10px;
|
||||
background: alpha(@background,.6);
|
||||
box-shadow: 0px 0px 2px rgba(0, 0, 0, .6);
|
||||
}
|
||||
tooltip {
|
||||
background:@background;
|
||||
color: @color7;
|
||||
}
|
||||
#clock:hover, #custom-pacman:hover, #custom-notification:hover,#bluetooth:hover,#network:hover,#battery:hover, #cpu:hover,#memory:hover,#temperature:hover{
|
||||
transition: all .3s ease;
|
||||
color:@color9;
|
||||
}
|
||||
#custom-notification {
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
color:@color7;
|
||||
}
|
||||
#clock{
|
||||
padding: 0px 5px;
|
||||
color:@color7;
|
||||
transition: all .3s ease;
|
||||
}
|
||||
#custom-pacman{
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
color:@color7;
|
||||
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
padding: 0px 5px;
|
||||
text-shadow:none;
|
||||
}
|
||||
#workspaces button {
|
||||
all:unset;
|
||||
margin: 0px 3px;
|
||||
padding: 0px 2px;
|
||||
color:rgba(0,0,0,0);
|
||||
text-shadow:none;
|
||||
background: @color2;
|
||||
border-radius: 50%;
|
||||
transition: all .3s;
|
||||
min-width: 15px;
|
||||
}
|
||||
#workspaces button:hover {
|
||||
color:rgba(0,0,0,0);
|
||||
border: none;
|
||||
background: @color1;
|
||||
}
|
||||
#workspaces button.active {
|
||||
border: none;
|
||||
padding: 0px 2px;
|
||||
border-radius:10px;
|
||||
background: @color1;
|
||||
min-width: 30px;
|
||||
}
|
||||
#workspaces button.active:hover{
|
||||
background: @color2;
|
||||
}
|
||||
#workspaces button.empty {
|
||||
color: transparent;
|
||||
border: none;
|
||||
background: alpha(@background,.5) ;
|
||||
|
||||
}
|
||||
#workspaces button.empty:hover {
|
||||
color: rgba(0,0,0,0);
|
||||
border: none;
|
||||
text-shadow: 0px 0px 1.5px rgba(0, 0, 0, .5);
|
||||
}
|
||||
#workspaces button.empty.active {
|
||||
color: rgba(0,0,0,0);
|
||||
border: none;
|
||||
text-shadow: none;
|
||||
background: @color1;
|
||||
}
|
||||
#workspaces button.empty.active:hover{
|
||||
background: @color2;
|
||||
}
|
||||
#bluetooth{
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
color:@color7;
|
||||
|
||||
}
|
||||
#network{
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
color:@color7;
|
||||
|
||||
}
|
||||
#battery{
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
color:@color7;
|
||||
|
||||
|
||||
}
|
||||
#battery.charging {
|
||||
color: #26A65B;
|
||||
}
|
||||
|
||||
#battery.warning:not(.charging) {
|
||||
color: #ffbe61;
|
||||
}
|
||||
|
||||
#battery.critical:not(.charging) {
|
||||
color: #f53c3c;
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
#group-expand{
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
}
|
||||
#custom-expand{
|
||||
padding: 0px 5px;
|
||||
color:alpha(@foreground,.2);
|
||||
text-shadow: 0px 0px 2px rgba(0, 0, 0, .7);
|
||||
transition: all .3s ease;
|
||||
}
|
||||
#custom-expand:hover{
|
||||
color:rgba(255,255,255,.2);
|
||||
text-shadow: 0px 0px 2px rgba(255, 255, 255, .5);
|
||||
}
|
||||
#custom-colorpicker{
|
||||
padding: 0px 5px;
|
||||
}
|
||||
#cpu,#memory,#temperature{
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
color:@color7;
|
||||
|
||||
}
|
||||
#custom-endpoint{
|
||||
color:transparent;
|
||||
text-shadow: 0px 0px 1.5px rgba(0, 0, 0, 1);
|
||||
|
||||
}
|
||||
#tray{
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
|
||||
}
|
||||
#tray menu * {
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
}
|
||||
|
||||
#tray menu separator {
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
}
|
||||
@@ -1,136 +0,0 @@
|
||||
{
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"margin-left": 10,
|
||||
"margin-right": 10,
|
||||
"margin-top": 7,
|
||||
"margin-bottom": 0,
|
||||
"reload_style_on_change": true,
|
||||
"modules-left": ["custom/notification","clock","custom/pacman","tray"],
|
||||
"modules-center": ["hyprland/workspaces"],
|
||||
"modules-right": ["group/expand","bluetooth","network","battery"],
|
||||
|
||||
|
||||
"hyprland/workspaces": {
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"active": "",
|
||||
"default": "",
|
||||
"empty": ""
|
||||
},
|
||||
"persistent-workspaces": {
|
||||
"*": [ 1,2,3,4,5 ]
|
||||
}
|
||||
},
|
||||
"custom/notification": {
|
||||
"tooltip": false,
|
||||
"format": "",
|
||||
"on-click": "swaync-client -t -sw",
|
||||
"escape": true
|
||||
},
|
||||
"clock": {
|
||||
"format": "{:%I:%M:%S %p} ",
|
||||
"interval": 1,
|
||||
"tooltip-format": "<tt>{calendar}</tt>",
|
||||
"calendar": {
|
||||
"format": {
|
||||
"today": "<span color='#fAfBfC'><b>{}</b></span>"
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"on-click-right": "shift_down",
|
||||
"on-click": "shift_up"
|
||||
}
|
||||
},
|
||||
"network": {
|
||||
"format-wifi": "",
|
||||
"format-ethernet":"",
|
||||
"format-disconnected": "",
|
||||
"tooltip-format-disconnected": "Error",
|
||||
"tooltip-format-wifi": "{essid} ({signalStrength}%) ",
|
||||
"tooltip-format-ethernet": "{ifname} 🖧 ",
|
||||
"on-click": "kitty nmtui"
|
||||
},
|
||||
"bluetooth": {
|
||||
"format-on": "",
|
||||
"format-off": "BT-off",
|
||||
"format-disabled": "",
|
||||
"format-connected-battery": "{device_battery_percentage}% ",
|
||||
"format-alt": "{device_alias} ",
|
||||
"tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected",
|
||||
"tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}",
|
||||
"tooltip-format-enumerate-connected": "{device_alias}\n{device_address}",
|
||||
"tooltip-format-enumerate-connected-battery": "{device_alias}\n{device_address}\n{device_battery_percentage}%",
|
||||
"on-click-right": "blueman-manager",
|
||||
},
|
||||
"battery": {
|
||||
"interval":30,
|
||||
"states": {
|
||||
"good": 95,
|
||||
"warning": 30,
|
||||
"critical": 20
|
||||
},
|
||||
"format": "{capacity}% {icon}",
|
||||
"format-charging": "{capacity}% ",
|
||||
"format-plugged": "{capacity}% ",
|
||||
"format-alt": "{time} {icon}",
|
||||
"format-icons": [
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
],
|
||||
},
|
||||
"custom/pacman": {
|
||||
"format": " {}",
|
||||
"interval": 30,
|
||||
"exec": "checkupdates | wc -l",
|
||||
"exec-if": "exit 0",
|
||||
"on-click": "kitty sh -c 'yay -Syu; echo Done - Press enter to exit; read'; pkill -SIGRTMIN+8 waybar",
|
||||
"signal": 8,
|
||||
"tooltip": false,
|
||||
},
|
||||
"custom/expand": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/endpoint":{
|
||||
"format": "|",
|
||||
"tooltip": false
|
||||
},
|
||||
"group/expand": {
|
||||
"orientation": "horizontal",
|
||||
"drawer": {
|
||||
"transition-duration": 600,
|
||||
"transition-to-left": true,
|
||||
"click-to-reveal": true
|
||||
},
|
||||
"modules": ["custom/expand", "custom/colorpicker","cpu","memory","temperature","custom/endpoint"],
|
||||
},
|
||||
"custom/colorpicker": {
|
||||
"format": "{}",
|
||||
"return-type": "json",
|
||||
"interval": "once",
|
||||
"exec": "~/.config/waybar/scripts/colorpicker.sh -j",
|
||||
"on-click": "~/.config/waybar/scripts/colorpicker.sh",
|
||||
"signal": 1
|
||||
},
|
||||
"cpu": {
|
||||
"format": "",
|
||||
"tooltip": true
|
||||
},
|
||||
"memory": {
|
||||
"format": ""
|
||||
},
|
||||
"temperature": {
|
||||
"critical-threshold": 80,
|
||||
"format": "",
|
||||
},
|
||||
"tray": {
|
||||
"icon-size": 14,
|
||||
"spacing": 10
|
||||
},
|
||||
}
|
||||
|
||||
@@ -1,149 +0,0 @@
|
||||
|
||||
@import url('../../.cache/wal/colors-waybar.css');
|
||||
|
||||
* {
|
||||
font-size:15px;
|
||||
font-family: "CodeNewRoman Nerd Font Propo";
|
||||
}
|
||||
window#waybar{
|
||||
border-radius:10px;
|
||||
background: alpha(@background,.6);
|
||||
box-shadow: 0px 0px 2px rgba(0, 0, 0, .6);
|
||||
}
|
||||
tooltip {
|
||||
background:@background;
|
||||
color: @color7;
|
||||
}
|
||||
#clock:hover, #custom-pacman:hover, #custom-notification:hover,#bluetooth:hover,#network:hover,#battery:hover, #cpu:hover,#memory:hover,#temperature:hover{
|
||||
transition: all .3s ease;
|
||||
color:@color9;
|
||||
}
|
||||
#custom-notification {
|
||||
padding: 0px 5px 0 10;
|
||||
transition: all .3s ease;
|
||||
color:@color7;
|
||||
}
|
||||
#clock{
|
||||
padding: 0px 5px;
|
||||
color:@color7;
|
||||
transition: all .3s ease;
|
||||
}
|
||||
#custom-pacman{
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
color:@color7;
|
||||
|
||||
}
|
||||
#workspaces {
|
||||
padding: 7px 5px;
|
||||
}
|
||||
#workspaces button {
|
||||
all:unset;
|
||||
padding: 0px 5px;
|
||||
color: alpha(@color9,.4);
|
||||
transition: all .2s ease;
|
||||
}
|
||||
#workspaces button:hover {
|
||||
color:rgba(0,0,0,0);
|
||||
border: none;
|
||||
text-shadow: 0px 0px 1.5px rgba(0, 0, 0, .5);
|
||||
transition: all 1s ease;
|
||||
}
|
||||
#workspaces button.active {
|
||||
color: @color9;
|
||||
border: none;
|
||||
text-shadow: 0px 0px 2px rgba(0, 0, 0, .5);
|
||||
}
|
||||
#workspaces button.empty {
|
||||
color: rgba(0,0,0,0);
|
||||
border: none;
|
||||
text-shadow: 0px 0px 1.5px rgba(0, 0, 0, .2);
|
||||
}
|
||||
#workspaces button.empty:hover {
|
||||
color: rgba(0,0,0,0);
|
||||
border: none;
|
||||
text-shadow: 0px 0px 1.5px rgba(0, 0, 0, .5);
|
||||
transition: all 1s ease;
|
||||
}
|
||||
#workspaces button.empty.active {
|
||||
color: @color9;
|
||||
border: none;
|
||||
text-shadow: 0px 0px 2px rgba(0, 0, 0, .5);
|
||||
}
|
||||
#bluetooth{
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
color:@color7;
|
||||
|
||||
}
|
||||
#network{
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
color:@color7;
|
||||
|
||||
}
|
||||
#battery{
|
||||
padding: 0px 10px 0 5;
|
||||
transition: all .3s ease;
|
||||
color:@color7;
|
||||
|
||||
|
||||
}
|
||||
#battery.charging {
|
||||
color: #26A65B;
|
||||
}
|
||||
|
||||
#battery.warning:not(.charging) {
|
||||
color: #ffbe61;
|
||||
}
|
||||
|
||||
#battery.critical:not(.charging) {
|
||||
color: #f53c3c;
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
#group-expand{
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
}
|
||||
#custom-expand{
|
||||
padding: 0px 5px;
|
||||
color:alpha(@foreground,.2);
|
||||
text-shadow: 0px 0px 2px rgba(0, 0, 0, .7);
|
||||
transition: all .3s ease;
|
||||
}
|
||||
#custom-expand:hover{
|
||||
color:rgba(255,255,255,.2);
|
||||
text-shadow: 0px 0px 2px rgba(255, 255, 255, .5);
|
||||
}
|
||||
#custom-colorpicker{
|
||||
padding: 0px 5px;
|
||||
}
|
||||
#cpu,#memory,#temperature{
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
color:@color7;
|
||||
|
||||
}
|
||||
#custom-endpoint{
|
||||
color:transparent;
|
||||
text-shadow: 0px 0px 1.5px rgba(0, 0, 0, 1);
|
||||
|
||||
}
|
||||
#tray{
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
|
||||
}
|
||||
#tray menu * {
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
}
|
||||
|
||||
#tray menu separator {
|
||||
padding: 0px 5px;
|
||||
transition: all .3s ease;
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
{
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"reload_style_on_change": true,
|
||||
"modules-center": ["hyprland/workspaces"],
|
||||
|
||||
|
||||
"hyprland/workspaces": {
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"active": "",
|
||||
"default": "",
|
||||
"empty": ""
|
||||
},
|
||||
"persistent-workspaces": {
|
||||
"*": [ 1,2,3,4,5 ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
@import url('../../.cache/wal/colors-waybar.css');
|
||||
|
||||
* {
|
||||
font-size:15px;
|
||||
font-family: "CodeNewRoman Nerd Font Propo";
|
||||
}
|
||||
window#waybar{
|
||||
all:unset;
|
||||
}
|
||||
.modules-center {
|
||||
padding:7px;
|
||||
margin:10 0 5 0;
|
||||
border-radius:10px;
|
||||
background: alpha(@background,.6);
|
||||
box-shadow: 0px 0px 2px rgba(0, 0, 0, .6);
|
||||
}
|
||||
#workspaces {
|
||||
padding: 0px 5px;
|
||||
}
|
||||
#workspaces button {
|
||||
all:unset;
|
||||
padding: 0px 5px;
|
||||
color: alpha(@color9,.4);
|
||||
transition: all .2s ease;
|
||||
}
|
||||
#workspaces button:hover {
|
||||
color:rgba(0,0,0,0);
|
||||
border: none;
|
||||
text-shadow: 0px 0px 1.5px rgba(0, 0, 0, .5);
|
||||
transition: all 1s ease;
|
||||
}
|
||||
#workspaces button.active {
|
||||
color: @color9;
|
||||
border: none;
|
||||
text-shadow: 0px 0px 2px rgba(0, 0, 0, .5);
|
||||
}
|
||||
#workspaces button.empty {
|
||||
color: rgba(0,0,0,0);
|
||||
border: none;
|
||||
text-shadow: 0px 0px 1.5px rgba(0, 0, 0, .2);
|
||||
}
|
||||
#workspaces button.empty:hover {
|
||||
color: rgba(0,0,0,0);
|
||||
border: none;
|
||||
text-shadow: 0px 0px 1.5px rgba(0, 0, 0, .5);
|
||||
transition: all 1s ease;
|
||||
}
|
||||
#workspaces button.empty.active {
|
||||
color: @color9;
|
||||
border: none;
|
||||
text-shadow: 0px 0px 2px rgba(0, 0, 0, .5);
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
#!/bin/bash
|
||||
wofi -n
|
||||
@@ -0,0 +1,8 @@
|
||||
[config]
|
||||
allow_images=true
|
||||
show=drun
|
||||
width=800
|
||||
height=600
|
||||
always_parse_args=true
|
||||
show_all=true
|
||||
term=kitty
|
||||
@@ -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
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
@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: 10px;
|
||||
background-color: rgba(50,50,50, 1);
|
||||
}
|
||||
#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;
|
||||
}
|
||||
#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(35, 35, 35, 1);
|
||||
}
|
||||
#entry:selected #text {
|
||||
color: @mauve;
|
||||
}
|
||||
#entry:drop(active) {
|
||||
background-color: @lavender !important;
|
||||
}
|
||||
@@ -16,8 +16,8 @@
|
||||
window {
|
||||
all:unset;
|
||||
padding: 20px;
|
||||
border-radius: 0px;
|
||||
background-color: alpha(@background,.5);
|
||||
border-radius: 10px;
|
||||
background-color: rgba(50,50,50, 1);
|
||||
}
|
||||
#inner-box {
|
||||
margin: 2px;
|
||||
@@ -42,9 +42,8 @@ window {
|
||||
border: none;
|
||||
outline: none;
|
||||
color: @text;
|
||||
box-shadow: 1px 1px 5px rgba(0,0,0, .5);
|
||||
box-shadow: 1px 1px 5px rgba(0,0,0, 1);
|
||||
border-radius:10;
|
||||
background-color: alpha(@background,.2);
|
||||
}
|
||||
#input image {
|
||||
border: none;
|
||||
@@ -80,11 +79,11 @@ window {
|
||||
#entry:selected {
|
||||
border: none;
|
||||
border-radius: 20px;
|
||||
background-color: alpha(@background,.2);
|
||||
background-color: rgba(35, 35, 35, 1);
|
||||
}
|
||||
#entry:selected #text {
|
||||
color: @mauve;
|
||||
}
|
||||
#entry:drop(active) {
|
||||
background-color: @lavender !important;
|
||||
background-color: @lavender;
|
||||
}
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
window {
|
||||
all:unset;
|
||||
padding: 20px;
|
||||
border-radius: 0px;
|
||||
background-color: alpha(@background,.5);
|
||||
border-radius: 10px;
|
||||
background-color: rgba(50,50,50, 1);
|
||||
}
|
||||
#inner-box {
|
||||
margin: 2px;
|
||||
@@ -50,8 +50,7 @@ window {
|
||||
outline: none;
|
||||
color: @text;
|
||||
box-shadow: 1px 1px 5px rgba(0,0,0, .5);
|
||||
border-radius:10;
|
||||
background-color: alpha(@background,.2);
|
||||
border-radius:10px;
|
||||
}
|
||||
#input image {
|
||||
border: none;
|
||||
@@ -95,11 +94,11 @@ window {
|
||||
box-shadow: 1px 1px 5px rgba(255,255,255, .03);
|
||||
border: none;
|
||||
border-radius: 20px;
|
||||
background-color:transparent;
|
||||
background-color: rgba(35, 35, 35, 1);
|
||||
}
|
||||
#entry:selected #text {
|
||||
color: @mauve;
|
||||
}
|
||||
#entry:drop(active) {
|
||||
background-color: @lavender !important;
|
||||
background-color: rgba(35, 35, 35, 1);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
WALLPAPER_DIR="$HOME/Pictures/Wallpapers/walls"
|
||||
#I dont know what the fuck I am doing
|
||||
menu() {
|
||||
find "${WALLPAPER_DIR}" -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" -o -iname "*.gif" \) | awk '{print "img:"$0}'
|
||||
}
|
||||
main() {
|
||||
choice=$(menu | wofi -c ~/.config/wofi/wallpaper -s ~/.config/wofi/style-wallpaper.css --show dmenu --prompt "Select Wallpaper:" -n)
|
||||
selected_wallpaper=$(echo "$choice" | sed 's/^img://')
|
||||
swww img "$selected_wallpaper" --transition-type any --transition-fps 60 --transition-duration .5
|
||||
wal -i "$selected_wallpaper" -n --cols16 -e
|
||||
pywalfox update
|
||||
source ~/.cache/wal/colors.sh && cp -r $wallpaper ~/Pictures/Wallpapers/pywallpaper.jpg
|
||||
}
|
||||
main
|
||||
@@ -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/
|
||||
@@ -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>.
|
||||
@@ -0,0 +1,201 @@
|
||||
Add swayidle to make the screen go dark
|
||||
And add adrien user to uinput
|
||||
|
||||
---
|
||||
|
||||
### Step 1: Install `swayidle`
|
||||
|
||||
Open your terminal and install `swayidle` from the official Arch repositories. It's good practice to also install a screen locker like `swaylock` at the same time, as you'll likely want to lock your screen before it turns off.
|
||||
|
||||
```bash
|
||||
sudo pacman -S swayidle swaylock
|
||||
```
|
||||
|
||||
### Step 2: Create the Idle Management Script
|
||||
|
||||
It's cleanest to manage this with a small shell script. Let's create one in niri's configuration directory.
|
||||
|
||||
1. Create the file:
|
||||
```bash
|
||||
mkdir -p ~/.config/niri
|
||||
nano ~/.config/niri/idle.sh
|
||||
```
|
||||
|
||||
2. Paste the following content into the file. This configuration will do two things:
|
||||
* **After 10 minutes (600s):** Lock the screen with `swaylock`.
|
||||
* **After 15 minutes (900s):** Turn the display off (DPMS off).
|
||||
* **On resume (mouse/keyboard activity):** Turn the display back on (DPMS on).
|
||||
|
||||
```sh
|
||||
#!/bin/sh
|
||||
|
||||
# This script is a simple wrapper for swayidle.
|
||||
# It locks the screen after 10 minutes of inactivity,
|
||||
# and turns off the display after 15 minutes.
|
||||
|
||||
swayidle -w \
|
||||
timeout 600 'swaylock -f' \
|
||||
timeout 900 'niri msg output "*" dpms off' \
|
||||
resume 'niri msg output "*" dpms on'
|
||||
```
|
||||
|
||||
* `swayidle -w`: Starts the daemon and waits (doesn't exit).
|
||||
* `timeout 600 'swaylock -f'`: After 600 seconds (10 minutes) of inactivity, run `swaylock -f` to lock the screen.
|
||||
* `timeout 900 'niri msg output "*" dpms off'`: After 900 seconds (15 minutes), run the command to turn off all outputs (`*`). The command `niri msg` is how you control niri from the command line.
|
||||
* `resume 'niri msg output "*" dpms on'`: When activity is detected again (mouse move, key press), run the command to turn all outputs back on.
|
||||
|
||||
3. Save the file and exit `nano` (Ctrl+O, Enter, Ctrl+X).
|
||||
|
||||
4. Make the script executable:
|
||||
```bash
|
||||
chmod +x ~/.config/niri/idle.sh
|
||||
```
|
||||
|
||||
### Step 3: Autostart the Script with Niri
|
||||
|
||||
Now, we need to tell niri to run this script every time it starts.
|
||||
|
||||
1. Open your niri configuration file. If it doesn't exist, niri uses its defaults, but you can create it.
|
||||
```bash
|
||||
nano ~/.config/niri/config.kdl
|
||||
```
|
||||
|
||||
2. Add the `startup-commands` block if it doesn't exist, and add an `exec-on-startup` command to run your script. Make sure to use the full path.
|
||||
|
||||
```kdl
|
||||
// Your other niri configurations might be here...
|
||||
|
||||
startup-commands {
|
||||
// Add this line to run your idle script
|
||||
exec-on-startup "~/.config/niri/idle.sh"
|
||||
|
||||
// You might have other startup commands here, for example:
|
||||
// exec-on-startup "waybar"
|
||||
// exec-on-startup "mako"
|
||||
}
|
||||
|
||||
// More of your niri config...
|
||||
```
|
||||
|
||||
**Note:** The `~` shortcut for your home directory works in the niri config.
|
||||
|
||||
3. Save and close the file.
|
||||
|
||||
### Step 4: Apply the Changes
|
||||
|
||||
Log out of your niri session and log back in. The `idle.sh` script will now be running in the background. Your screen will lock after 10 minutes and turn off after 15 minutes of inactivity. Moving your mouse or pressing a key will wake the screen up to the `swaylock` prompt.
|
||||
|
||||
---
|
||||
|
||||
### Customization
|
||||
|
||||
* **To only turn off the screen (no lock):**
|
||||
If you *only* want the screen to go black after 15 minutes and don't want to lock it, modify your `~/.config/niri/idle.sh` script to remove the `swaylock` timeout:
|
||||
|
||||
```sh
|
||||
#!/bin/sh
|
||||
|
||||
swayidle -w \
|
||||
timeout 900 'niri msg output "*" dpms off' \
|
||||
resume 'niri msg output "*" dpms on'
|
||||
```
|
||||
This directly addresses your original request.
|
||||
|
||||
* **Changing the time:**
|
||||
Simply change the number of seconds in the script. For example, for a 5-minute screen-off time, change `900` to `300`.
|
||||
|
||||
* **Customizing swaylock:**
|
||||
You can make `swaylock` look nicer. For example, to set a solid color:
|
||||
`swaylock -f -c 000000` (for black).
|
||||
You can edit this command directly in your `idle.sh` script. Check `man swaylock` for all options.
|
||||
|
||||
---
|
||||
|
||||
Of course! Let's break down what `uinput` is, why you're getting a "permission denied" error, and exactly how to fix it on your Arch Linux system.
|
||||
|
||||
### What is `uinput`? (The Simple Explanation)
|
||||
|
||||
Think of `uinput` (User Input) as a special module in the Linux kernel. Its job is to let a regular program **pretend to be a physical input device**.
|
||||
|
||||
When you move your real mouse, the hardware sends a signal to the kernel, and the kernel tells your desktop environment, "The mouse just moved to coordinates X, Y."
|
||||
|
||||
`uinput` allows a program, like Sunshine, to do the exact same thing, but in software. Sunshine can tell the `uinput` module, "Hey, pretend a mouse just moved to coordinates X, Y," and the kernel will treat it exactly as if a real mouse did it.
|
||||
|
||||
This is essential for applications like:
|
||||
* **Sunshine/Moonlight:** To inject mouse, keyboard, and gamepad inputs coming from your client device over the network.
|
||||
* **Steam:** For the Steam Input feature, which can make a controller look like a keyboard and mouse to a game.
|
||||
* **Input Remappers:** Tools that change what your keyboard keys or controller buttons do.
|
||||
|
||||
### The Permission Problem
|
||||
|
||||
For security reasons, you don't want just *any* application to be able to create fake keyboard presses or mouse movements. If any program could do this, it would be trivial to create a keylogger or malware that could take control of your computer.
|
||||
|
||||
Because this is a powerful and potentially dangerous feature, Linux protects it with file permissions. The `uinput` functionality is exposed through a special device file: `/dev/uinput`.
|
||||
|
||||
Let's look at the permissions on that file. If you run this command in your terminal:
|
||||
|
||||
```bash
|
||||
ls -l /dev/uinput
|
||||
```
|
||||
|
||||
You will likely see something like this:
|
||||
|
||||
```
|
||||
crw-rw---- 1 root uinput 10, 223 Dec 15 10:30 /dev/uinput
|
||||
```
|
||||
|
||||
Let's break that down:
|
||||
* `c`: It's a character device file.
|
||||
* `rw-`: The **owner** (`root`) has read and write permissions.
|
||||
* `rw-`: The **group** (`uinput`) has read and write permissions.
|
||||
* `---`: **Everyone else** has no permissions at all.
|
||||
|
||||
When you run Sunshine, it runs as *your* user account (e.g., `myuser`), not as `root`. By default, your user is not in the `uinput` group. Therefore, when Sunshine tries to access `/dev/uinput` to create a virtual mouse or keyboard, the kernel sees that your user is in the "everyone else" category and says **"Permission Denied"**.
|
||||
|
||||
### The Solution: The `uinput` Group
|
||||
|
||||
The forum's advice is exactly correct. The `uinput` group was created specifically for this purpose: to grant trusted users the ability to access the `uinput` device without giving them full `root` privileges.
|
||||
|
||||
By adding your user to the `uinput` group, you are telling the system, "I trust this user account to run programs (like Sunshine) that need to create virtual input devices."
|
||||
|
||||
---
|
||||
|
||||
### How to Fix It: Step-by-Step
|
||||
|
||||
Here are the commands to solve your problem on Arch Linux.
|
||||
|
||||
**1. Add Your User to the `uinput` Group**
|
||||
|
||||
Open a terminal and run the following command. Make sure to replace `your_username` with your actual username. If you're not sure, you can run the command `whoami` to see it.
|
||||
|
||||
```bash
|
||||
sudo gpasswd -a your_username uinput
|
||||
```
|
||||
* `sudo`: Run this command with administrator privileges.
|
||||
* `gpasswd`: A command to manage group memberships.
|
||||
* `-a your_username`: The action is to **a**dd the specified user.
|
||||
* `uinput`: The group you are adding the user to.
|
||||
|
||||
**2. Apply the Changes**
|
||||
|
||||
Group membership changes only take effect when you start a new login session. The current session you are in will not have the new permissions. You have two options:
|
||||
|
||||
* **Log Out and Log Back In:** This is the cleanest and most recommended way. Log out of your Niri session completely and then log back in.
|
||||
* **Reboot:** A full reboot will also work.
|
||||
|
||||
**3. Verify the Change (Optional)**
|
||||
|
||||
After you have logged back in, you can verify that you are now a member of the group by running:
|
||||
|
||||
```bash
|
||||
groups
|
||||
```
|
||||
|
||||
You should see `uinput` listed in the output, along with your other groups.
|
||||
|
||||
```
|
||||
# Example output
|
||||
wheel audio video input uinput myuser
|
||||
```
|
||||
|
||||
Once you've done this, Sunshine should have the necessary permissions to create virtual input devices, and your mouse, keyboard, and controller should start working correctly on your Niri desktop
|
||||
@@ -0,0 +1,53 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
sudo pacman -S --noconfirm --needed \
|
||||
git \
|
||||
ghostty \
|
||||
lazygit \
|
||||
swww \
|
||||
wl-clipboard \
|
||||
ripgrep \
|
||||
wofi \
|
||||
go \
|
||||
swaybg \
|
||||
starship
|
||||
|
||||
sudo pacman -R --noconfirm alacritty
|
||||
|
||||
git clone https://aur.archlinux.org/yay.git /tmp/yay
|
||||
(cd /tmp/yay && makepkg -si --noconfirm)
|
||||
rm -rf /tmp/yay
|
||||
|
||||
yay -S --noconfirm --needed \
|
||||
python-pywal16 \
|
||||
python-pywalfox \
|
||||
ttf-firacode-nerd \
|
||||
neovim \
|
||||
yazi \
|
||||
zig \
|
||||
raylib \
|
||||
firefox
|
||||
|
||||
mkdir -p "$HOME/tmp"
|
||||
git clone https://git.bouvais.lu/adrien/Dotfiles "/tmp/dotfiles" --depth 1
|
||||
|
||||
cp -r "/tmp/dotfiles/.config/"* "$HOME/.config/"
|
||||
cp "/tmp/dotfiles/.bashrc" "$HOME/.bashrc"
|
||||
mkdir -p "$HOME/Pictures/Wallpapers"
|
||||
cp -r "/tmp/dotfiles/wallpapers/"* "$HOME/Pictures/Wallpapers/"
|
||||
|
||||
rm -rf /tmp/yay
|
||||
|
||||
git config --global user.name "adrien"
|
||||
git config --global user.email "git@bouvais.lu"
|
||||
ssh-keygen -t rsa -b 4096 -C "git@bouvais.com" -f "$HOME/.ssh/id_rsa" -N ""
|
||||
|
||||
pywalfox install
|
||||
wal -i "$HOME/Pictures/Wallpapers/pywallpaper.jpg" -n --cols16
|
||||
pywalfox update
|
||||
|
||||
echo "Dont forget to add Pywalfox extension to Firefox https://addons.mozilla.org/en-US/firefox/addon/pywalfox/"
|
||||
echo "Then run 'pywalfox update'"
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
Before Width: | Height: | Size: 849 KiB After Width: | Height: | Size: 849 KiB |
|
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 5.7 MiB After Width: | Height: | Size: 5.7 MiB |
|
Before Width: | Height: | Size: 658 KiB After Width: | Height: | Size: 658 KiB |
|
Before Width: | Height: | Size: 849 KiB After Width: | Height: | Size: 849 KiB |
|
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 1.3 MiB |