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
|
# ~/.bashrc
|
||||||
clear && myfetch -c 8 -C " █"
|
|
||||||
eval "$(starship init bash)"
|
eval "$(starship init bash)"
|
||||||
[[ $- != *i* ]] && return
|
|
||||||
alias lsd='eza --icons'
|
alias Settings="cd ~/.config && nvim"
|
||||||
alias pacup='sudo pacman -Rns $(pacman -Qdtq)'
|
alias Key="cat ~/.ssh/id_rsa.pub"
|
||||||
alias grep='grep --color=auto'
|
alias Server="ssh adrien@192.168.178.26"
|
||||||
alias pool='clear && asciiquarium'
|
|
||||||
alias f='clear && myfetch -i e -f -c 16 -C " "'
|
alias untar="sudo tar -xf"
|
||||||
alias bye='sudo shutdown -h now'
|
alias h="history | grep"
|
||||||
alias loop='sudo reboot'
|
|
||||||
alias h='dbus-launch Hyprland'
|
# For scrcpy
|
||||||
alias fonts='fc-list -f "%{family}\n"'
|
export SDL_VIDEODRIVER=wayland
|
||||||
alias tasks='btm'
|
|
||||||
alias Docs="cd ~/Documents && nvim"
|
# For Ultimaker
|
||||||
alias Settings="cd ~/.config/hypr && nvim"
|
export QT_QPA_PLATFORM="wayland;xcb"
|
||||||
alias spot="ncspot"
|
export SDL_VIDEODRIVER="wayland,x11"
|
||||||
alias untar="tar -xf"
|
export CLUTTER_BACKEND=wayland
|
||||||
alias n="nvim"
|
export GMB_BACKEND=nvidia-drm
|
||||||
export NVM_DIR="$HOME/.nvm"
|
export __GLX_VENDOR_LIBRARY_NAME=nvidia
|
||||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
|
||||||
PS1='[\u@\h \W]\$ '
|
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": [
|
"format.enable": false
|
||||||
"vim"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
@@ -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
|
-- This file simply bootstraps the installation of Lazy.nvim and then calls other files for execution
|
||||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
-- This file doesn't necessarily need to be touched, BE CAUTIOUS editing this file and proceed at your own risk.
|
||||||
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
local lazypath = vim.env.LAZY or vim.fn.stdpath "data" .. "/lazy/lazy.nvim"
|
||||||
vim.fn.system({
|
|
||||||
"git",
|
if not (vim.env.LAZY or (vim.uv or vim.loop).fs_stat(lazypath)) then
|
||||||
"clone",
|
-- stylua: ignore
|
||||||
"--filter=blob:none",
|
local result = vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath })
|
||||||
"https://github.com/folke/lazy.nvim.git",
|
if vim.v.shell_error ~= 0 then
|
||||||
"--branch=stable", -- latest stable release
|
-- stylua: ignore
|
||||||
lazypath,
|
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
|
end
|
||||||
|
|
||||||
vim.opt.rtp:prepend(lazypath)
|
vim.opt.rtp:prepend(lazypath)
|
||||||
vim.cmd("set number")
|
|
||||||
require("vim-options")
|
-- validate that lazy is available
|
||||||
require("lazy").setup("plugins")
|
if not pcall(require, "lazy") then
|
||||||
vim.opt.termguicolors = true
|
-- stylua: ignore
|
||||||
|
vim.api.nvim_echo({ { ("Unable to load lazy from: %s\n"):format(lazypath), "ErrorMsg" }, { "Press any key to exit...", "MoreMsg" } }, true, {})
|
||||||
|
vim.fn.getchar()
|
||||||
|
vim.cmd.quit()
|
||||||
|
end
|
||||||
|
|
||||||
|
require "lazy_setup"
|
||||||
|
require "polish"
|
||||||
|
|
||||||
|
vim.opt.clipboard = 'unnamedplus'
|
||||||
|
|||||||
@@ -1,29 +1,48 @@
|
|||||||
{
|
{
|
||||||
"LuaSnip": { "branch": "master", "commit": "c9b9a22904c97d0eb69ccb9bab76037838326817" },
|
"AstroNvim": { "branch": "main", "commit": "5adafa02ab066326f911160dd6c73d758407fe46" },
|
||||||
"alpha-nvim": { "branch": "main", "commit": "de72250e054e5e691b9736ee30db72c65d560771" },
|
"LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" },
|
||||||
"cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" },
|
"aerial.nvim": { "branch": "master", "commit": "3284a2cb858ba009c79da87d5e010ccee3c99c4d" },
|
||||||
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
|
"astrocommunity": { "branch": "main", "commit": "6f3e4a5606e51e174f51a63e3b8f4a8f12f1f19b" },
|
||||||
"friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" },
|
"astrocore": { "branch": "main", "commit": "c797dd5a592e2bd154f2503e231b8a4083659534" },
|
||||||
"gitsigns.nvim": { "branch": "main", "commit": "9b36d497495436c135659902054ee637e0ba6021" },
|
"astrolsp": { "branch": "main", "commit": "414775e4b49a46bd7105cc5498ea7bb312359bf2" },
|
||||||
"gruvbox": { "branch": "main", "commit": "089b60e92aa0a1c6fa76ff527837cd35b6f5ac81" },
|
"astrotheme": { "branch": "main", "commit": "f12dcf64b1f9a05839c3ac2146f550f43bae9dab" },
|
||||||
"lazy.nvim": { "branch": "main", "commit": "7527af40ddd4a93a02911be570b32609b9d4ea53" },
|
"astroui": { "branch": "main", "commit": "fded232ee0001c6bed9b654188e3dd4b0c58317c" },
|
||||||
"lualine.nvim": { "branch": "master", "commit": "2a5bae925481f999263d6f5ed8361baef8df4f83" },
|
"better-escape.nvim": { "branch": "master", "commit": "199dcc2643dec5d8dbdab4ec672cf405224dcb3b" },
|
||||||
"markview.nvim": { "branch": "main", "commit": "68902d7cba78a7fe331c13d531376b4be494a05c" },
|
"blink.cmp": { "branch": "main", "commit": "9bcb14b43852a6f2bfd5ac9ef29cb5cf09b1b39b" },
|
||||||
"mini.icons": { "branch": "main", "commit": "ec61af6e606fc89ee3b1d8f2f20166a3ca917a36" },
|
"blink.compat": { "branch": "main", "commit": "2ed6d9a28b07fa6f3bface818470605f8896408c" },
|
||||||
"neo-tree.nvim": { "branch": "v3.x", "commit": "5d172e8315444dbc32867d1c7b04d8e7e68ec4e1" },
|
"cmp-dap": { "branch": "master", "commit": "ea92773e84c0ad3288c3bc5e452ac91559669087" },
|
||||||
"noice.nvim": { "branch": "main", "commit": "e3c68a4d2275a01268a52e2931bfccfbfb693d15" },
|
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
|
||||||
"nui.nvim": { "branch": "main", "commit": "53e907ffe5eedebdca1cd503b00aa8692068ca46" },
|
"gitsigns.nvim": { "branch": "main", "commit": "7010000889bfb6c26065e0b0f7f1e6aa9163edd9" },
|
||||||
"nvim-autopairs": { "branch": "master", "commit": "3d02855468f94bf435db41b661b58ec4f48a06b7" },
|
"guess-indent.nvim": { "branch": "main", "commit": "84a4987ff36798c2fc1169cbaff67960aed9776f" },
|
||||||
"nvim-cmp": { "branch": "main", "commit": "12509903a5723a876abd65953109f926f4634c30" },
|
"heirline.nvim": { "branch": "master", "commit": "fae936abb5e0345b85c3a03ecf38525b0828b992" },
|
||||||
"nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" },
|
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
|
||||||
"nvim-notify": { "branch": "master", "commit": "22f29093eae7785773ee9d543f8750348b1a195c" },
|
"lazydev.nvim": { "branch": "main", "commit": "f59bd14a852ca43db38e3662395354cb2a9b13e0" },
|
||||||
"nvim-treesitter": { "branch": "master", "commit": "4988b7068001b3a772c7cc738708341e612e3c26" },
|
"mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" },
|
||||||
"nvim-web-devicons": { "branch": "master", "commit": "402377242b04be3f4f0f3720bd952df86e946c30" },
|
"mason-null-ls.nvim": { "branch": "main", "commit": "2b8433f76598397fcc97318d410e0c4f7a4bea6a" },
|
||||||
"plenary.nvim": { "branch": "master", "commit": "3707cdb1e43f5cea73afb6037e6494e7ce847a66" },
|
"mason-nvim-dap.nvim": { "branch": "main", "commit": "4c2cdc69d69fe00c15ae8648f7e954d99e5de3ea" },
|
||||||
"snacks.nvim": { "branch": "main", "commit": "c2310c6d1ecb4d5fad701ed0aeb92adc2f0db385" },
|
"mason-tool-installer.nvim": { "branch": "main", "commit": "93a9ff9b34c91c0cb0f7de8d5f7e4abce51d8903" },
|
||||||
"tabline.nvim": { "branch": "main", "commit": "ff33d12a20d52daafa5393162cae4108faf8128b" },
|
"mason.nvim": { "branch": "main", "commit": "7f265cd6ae56cecdd0aa50c8c73fc593b0604801" },
|
||||||
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
|
"mini.icons": { "branch": "main", "commit": "397ed3807e96b59709ef3292f0a3e253d5c1dc0a" },
|
||||||
"telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
|
"neo-tree.nvim": { "branch": "main", "commit": "f481de16a0eb59c985abac8985e3f2e2f75b4875" },
|
||||||
"typr": { "branch": "main", "commit": "696b8724b2bc68ab950d1d7a18bf00bfc536bcca" },
|
"neoconf.nvim": { "branch": "main", "commit": "5ebd6c29c88931fe7c603f087b4c32ac8157d901" },
|
||||||
"volt": { "branch": "main", "commit": "3bedb1576db574af160643eea7df3b09dbe5ee9c" }
|
"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 {
|
return {
|
||||||
"nvim-treesitter/nvim-treesitter",
|
"nvim-treesitter/nvim-treesitter",
|
||||||
build = ":TSUpdate",
|
opts = {
|
||||||
config = function()
|
ensure_installed = {
|
||||||
local config = require("nvim-treesitter.configs")
|
"lua",
|
||||||
config.setup({
|
"vim",
|
||||||
auto_install = true,
|
-- add more arguments for adding more treesitter parsers
|
||||||
highlight = { enable = true },
|
},
|
||||||
indent = { enable = true },
|
},
|
||||||
})
|
|
||||||
end,
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
return {
|
|
||||||
"nvzone/typr",
|
|
||||||
dependencies = "nvzone/volt",
|
|
||||||
opts = {
|
|
||||||
kblayout = {
|
|
||||||
{ "q", "w", "e", "r", "t", "y", "u", "i", "o", "p" },
|
|
||||||
{ "a", "s", "d", "f", "g", "h", "j", "k", "l", ";" },
|
|
||||||
{ "z", "x", "c", "v", "b", "n", "m", ",", ".", "/" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
cmd = { "Typr", "TyprStats" },
|
|
||||||
}
|
|
||||||
@@ -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",
|
"layer": "top",
|
||||||
"position": "top",
|
"position": "top",
|
||||||
"reload_style_on_change": true,
|
"height": 16,
|
||||||
"modules-left": ["custom/notification","clock","custom/pacman","tray"],
|
"spacing": 10,
|
||||||
"modules-center": ["hyprland/workspaces"],
|
|
||||||
"modules-right": ["group/expand","bluetooth","network","battery"],
|
|
||||||
|
|
||||||
|
"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": {
|
"clock": {
|
||||||
"format": "{:%I:%M:%S %p} ",
|
"format": "{:%d.%m.%Y | %H:%M}"
|
||||||
"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
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
|
"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: FiraCode Nerd Font Mono;
|
||||||
font-family: "CodeNewRoman Nerd Font Propo";
|
font-size: 16px;
|
||||||
}
|
padding: 0;
|
||||||
window#waybar{
|
margin: 0;
|
||||||
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) {
|
#waybar {
|
||||||
color: #ffbe61;
|
color: @foreground;
|
||||||
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
#battery.critical:not(.charging) {
|
#network,
|
||||||
color: #f53c3c;
|
#cpu,
|
||||||
animation-name: blink;
|
#clock,
|
||||||
animation-duration: 0.5s;
|
#memory,
|
||||||
animation-timing-function: linear;
|
#window {
|
||||||
animation-iteration-count: infinite;
|
padding-left: 10px;
|
||||||
animation-direction: alternate;
|
padding-right: 10px;
|
||||||
}
|
padding-top: 3px;
|
||||||
#group-expand{
|
padding-bottom: 3px;
|
||||||
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,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 {
|
window {
|
||||||
all:unset;
|
all:unset;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
border-radius: 0px;
|
border-radius: 10px;
|
||||||
background-color: alpha(@background,.5);
|
background-color: rgba(50,50,50, 1);
|
||||||
}
|
}
|
||||||
#inner-box {
|
#inner-box {
|
||||||
margin: 2px;
|
margin: 2px;
|
||||||
@@ -42,9 +42,8 @@ window {
|
|||||||
border: none;
|
border: none;
|
||||||
outline: none;
|
outline: none;
|
||||||
color: @text;
|
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;
|
border-radius:10;
|
||||||
background-color: alpha(@background,.2);
|
|
||||||
}
|
}
|
||||||
#input image {
|
#input image {
|
||||||
border: none;
|
border: none;
|
||||||
@@ -80,11 +79,11 @@ window {
|
|||||||
#entry:selected {
|
#entry:selected {
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 20px;
|
border-radius: 20px;
|
||||||
background-color: alpha(@background,.2);
|
background-color: rgba(35, 35, 35, 1);
|
||||||
}
|
}
|
||||||
#entry:selected #text {
|
#entry:selected #text {
|
||||||
color: @mauve;
|
color: @mauve;
|
||||||
}
|
}
|
||||||
#entry:drop(active) {
|
#entry:drop(active) {
|
||||||
background-color: @lavender !important;
|
background-color: @lavender;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,8 +24,8 @@
|
|||||||
window {
|
window {
|
||||||
all:unset;
|
all:unset;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
border-radius: 0px;
|
border-radius: 10px;
|
||||||
background-color: alpha(@background,.5);
|
background-color: rgba(50,50,50, 1);
|
||||||
}
|
}
|
||||||
#inner-box {
|
#inner-box {
|
||||||
margin: 2px;
|
margin: 2px;
|
||||||
@@ -50,8 +50,7 @@ window {
|
|||||||
outline: none;
|
outline: none;
|
||||||
color: @text;
|
color: @text;
|
||||||
box-shadow: 1px 1px 5px rgba(0,0,0, .5);
|
box-shadow: 1px 1px 5px rgba(0,0,0, .5);
|
||||||
border-radius:10;
|
border-radius:10px;
|
||||||
background-color: alpha(@background,.2);
|
|
||||||
}
|
}
|
||||||
#input image {
|
#input image {
|
||||||
border: none;
|
border: none;
|
||||||
@@ -95,11 +94,11 @@ window {
|
|||||||
box-shadow: 1px 1px 5px rgba(255,255,255, .03);
|
box-shadow: 1px 1px 5px rgba(255,255,255, .03);
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 20px;
|
border-radius: 20px;
|
||||||
background-color:transparent;
|
background-color: rgba(35, 35, 35, 1);
|
||||||
}
|
}
|
||||||
#entry:selected #text {
|
#entry:selected #text {
|
||||||
color: @mauve;
|
color: @mauve;
|
||||||
}
|
}
|
||||||
#entry:drop(active) {
|
#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 |