Initial config
This commit is contained in:
commit
6d08adb120
44 changed files with 4575 additions and 0 deletions
2
.chezmoiignore
Normal file
2
.chezmoiignore
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
.config/zsh/plugins/*
|
||||
.config/nvim/lazy-lock.json
|
||||
55
dot_config/dunst/executable_dunstrc
Normal file
55
dot_config/dunst/executable_dunstrc
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
[global]
|
||||
origin = top-right
|
||||
offset = (10, 20)
|
||||
notification_limit = 20
|
||||
progress_bar = true
|
||||
progress_bar_corner_radius = 2
|
||||
progress_bar_corners = all
|
||||
highlight = "#00bb00ff"
|
||||
icon_corner_radius = 2
|
||||
icon_corners = all
|
||||
indicate_hidden = yes
|
||||
frame_color = "#909090"
|
||||
sort = true
|
||||
idle_threshold = 5m
|
||||
font = JetBrainsMonoNL Nerd Font 10
|
||||
markup = full
|
||||
# format =
|
||||
alignment = left
|
||||
vertical_alignment = center
|
||||
show_age_threshold = 60
|
||||
ignore_newline = no
|
||||
stack_duplicates = true
|
||||
hide_duplicate_count = false
|
||||
show_indicators = yes
|
||||
icon_theme = Papirus-Dark
|
||||
enable_recursive_icon_lookup = true
|
||||
icon_position = left
|
||||
history_length = 25
|
||||
dmenu = "/usr/bin/fuzzel -d"
|
||||
mouse_middle_click = context
|
||||
browser = /usr/bin/xdg-open
|
||||
corner_radius = 4
|
||||
corners = all
|
||||
layer = overlay
|
||||
|
||||
[urgency_low]
|
||||
background = "#222222"
|
||||
foreground = "#ffffff"
|
||||
timeout = 10
|
||||
default_icon = dialog-information
|
||||
|
||||
[urgency_normal]
|
||||
background = "#222222"
|
||||
foreground = "#ffffff"
|
||||
timeout = 10
|
||||
override_pause_level = 30
|
||||
default_icon = dialog-information
|
||||
|
||||
[urgency_critical]
|
||||
background = "#900000"
|
||||
foreground = "#ffffff"
|
||||
frame_color = "#ff0000"
|
||||
timeout = 0
|
||||
override_pause_level = 60
|
||||
default_icon = dialog-warning
|
||||
23
dot_config/fuzzel/executable_fuzzel.ini
Normal file
23
dot_config/fuzzel/executable_fuzzel.ini
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
font=monospace
|
||||
prompt="> "
|
||||
lines=15
|
||||
width=40
|
||||
horizontal-pad=10
|
||||
vertical-pad=10
|
||||
line-height=18
|
||||
layer = top
|
||||
exit-on-keyboard-focus-loss = yes
|
||||
launch-prefix="uwsm app -- "
|
||||
|
||||
[colors]
|
||||
background=222222f0
|
||||
text=ffffffff
|
||||
match=00bb00ff
|
||||
selection-match=00bb00ff
|
||||
selection=666666dd
|
||||
selection-text=ffffffff
|
||||
border=646464ff
|
||||
|
||||
[border]
|
||||
width=2
|
||||
radius=10
|
||||
19
dot_config/git/executable_config
Normal file
19
dot_config/git/executable_config
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
[user]
|
||||
name = Wekuz
|
||||
email = wekuz@duck.com
|
||||
signingkey = 2E502F2AABD32DF9
|
||||
[commit]
|
||||
gpgsign = true
|
||||
verbose = true
|
||||
cleanup = scissors
|
||||
[init]
|
||||
defaultBranch = main
|
||||
[diff]
|
||||
algorithm = histogram
|
||||
colorMoved = plain
|
||||
[merge]
|
||||
conflictstyle = zdiff3
|
||||
[tag]
|
||||
sort = version:refname
|
||||
[help]
|
||||
autoCorrect = prompt
|
||||
17
dot_config/gtk-3.0/settings.ini
Normal file
17
dot_config/gtk-3.0/settings.ini
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
[Settings]
|
||||
gtk-theme-name=Adwaita-dark
|
||||
gtk-icon-theme-name=Adwaita
|
||||
gtk-font-name=JetBrainsMono Nerd Font 12
|
||||
gtk-cursor-theme-name=Nordzy-cursors
|
||||
gtk-cursor-theme-size=24
|
||||
gtk-toolbar-style=GTK_TOOLBAR_ICONS
|
||||
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
|
||||
gtk-button-images=0
|
||||
gtk-menu-images=0
|
||||
gtk-enable-event-sounds=1
|
||||
gtk-enable-input-feedback-sounds=0
|
||||
gtk-xft-antialias=1
|
||||
gtk-xft-hinting=1
|
||||
gtk-xft-hintstyle=hintslight
|
||||
gtk-xft-rgba=rgb
|
||||
gtk-application-prefer-dark-theme=1
|
||||
7
dot_config/gtk-4.0/settings.ini
Normal file
7
dot_config/gtk-4.0/settings.ini
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
[Settings]
|
||||
gtk-theme-name=Adwaita-dark
|
||||
gtk-icon-theme-name=Adwaita
|
||||
gtk-font-name=JetBrainsMono Nerd Font 12
|
||||
gtk-cursor-theme-name=Nordzy-cursors
|
||||
gtk-cursor-theme-size=24
|
||||
gtk-application-prefer-dark-theme=1
|
||||
27
dot_config/hypr/executable_hypridle.conf
Normal file
27
dot_config/hypr/executable_hypridle.conf
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
general {
|
||||
lock_cmd = pidof hyprlock || hyprlock
|
||||
before_sleep_cmd = loginctl lock-session
|
||||
after_sleep_cmd = hyprctl dispatch dpms on
|
||||
}
|
||||
|
||||
# listener {
|
||||
# timeout = 300
|
||||
# on-timeout = brightnessctl -s s 1%
|
||||
# on-resume = brightnessctl -r
|
||||
# }
|
||||
|
||||
listener {
|
||||
timeout = 480
|
||||
on-timeout = hyprctl dispatch dpms off
|
||||
on-resume = hyprctl dispatch dpms on
|
||||
}
|
||||
|
||||
#listener {
|
||||
# timeout = 600
|
||||
# on-timeout = loginctl lock-session
|
||||
#}
|
||||
|
||||
# listener {
|
||||
# timeout = 900
|
||||
# on-timeout = systemctl suspend
|
||||
# }
|
||||
55
dot_config/hypr/executable_hyprlock.conf
Normal file
55
dot_config/hypr/executable_hyprlock.conf
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
$font = JetBrainsMono Nerd Font
|
||||
|
||||
general {
|
||||
ignore_empty_input = true
|
||||
no_fade_out = true
|
||||
hide_cursor = true
|
||||
}
|
||||
|
||||
background {
|
||||
monitor =
|
||||
color = rgba(0, 0, 0, 1.0)
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
|
||||
text = $TIME
|
||||
font_family = $font
|
||||
font_size = 90
|
||||
color = rgba(170, 170, 170, 1.0)
|
||||
|
||||
position = 0, -10%
|
||||
halign = center
|
||||
valign = top
|
||||
}
|
||||
|
||||
input-field {
|
||||
monitor =
|
||||
size = 15%, 5%
|
||||
outline_thickness = 3
|
||||
inner_color = rgba(0, 0, 0, 1.0)
|
||||
|
||||
placeholder_text =
|
||||
font_family = $font
|
||||
font_color = rgba(150, 150, 150, 1.0)
|
||||
fade_on_empty = false
|
||||
rounding = 15
|
||||
|
||||
position = 0, 0
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
|
||||
text = Failed attempts: $ATTEMPTS
|
||||
font_family = $font
|
||||
font_size = 12
|
||||
color = rgba(100, 100, 100, 1.0)
|
||||
|
||||
position = 0, -3.5%
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
5
dot_config/hypr/executable_hyprpaper.conf
Normal file
5
dot_config/hypr/executable_hyprpaper.conf
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
wallpaper {
|
||||
monitor =
|
||||
path = /home/wekuz/.config/wallpapers/wallpaper.png
|
||||
fit_mode = contain
|
||||
}
|
||||
315
dot_config/hypr/hyprland.conf
Normal file
315
dot_config/hypr/hyprland.conf
Normal file
|
|
@ -0,0 +1,315 @@
|
|||
################
|
||||
### MONITORS ###
|
||||
################
|
||||
|
||||
monitor=DP-2,3840x2160@160,0x0,1.5
|
||||
|
||||
xwayland {
|
||||
force_zero_scaling = true
|
||||
}
|
||||
|
||||
###################
|
||||
### MY PROGRAMS ###
|
||||
###################
|
||||
|
||||
$terminal = uwsm app -- kitty
|
||||
$browser = uwsm app -- zen-browser
|
||||
$hyprlock = uwsm app -- hyprlock
|
||||
$hyprshot = uwsm app -- hyprshot
|
||||
$menu = uwsm app -- fuzzel
|
||||
|
||||
#################
|
||||
### AUTOSTART ###
|
||||
#################
|
||||
|
||||
exec-once = uwsm app -- udiskie
|
||||
exec-once = uwsm app -- waybar
|
||||
exec-once = uwsm app -- dunst
|
||||
exec-once = uwsm app -- wl-paste --watch cliphist store
|
||||
exec-once = uwsm app -- hypridle
|
||||
exec-once = uwsm app -- hyprpaper
|
||||
exec-once = uwsm app -- hyprsunset
|
||||
exec-once = [workspace 1] $terminal
|
||||
exec-once = [workspace 2 silent] $browser
|
||||
|
||||
#############################
|
||||
### ENVIRONMENT VARIABLES ###
|
||||
#############################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Environment-variables/
|
||||
|
||||
# Environment variables stored in ~/.config/uwsm/env and ~/.config/uwsm/env-hyprland
|
||||
|
||||
#####################
|
||||
### LOOK AND FEEL ###
|
||||
#####################
|
||||
|
||||
# Refer to https://wiki.hyprland.org/Configuring/Variables/
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#general
|
||||
general {
|
||||
gaps_in = 0
|
||||
gaps_out = 0
|
||||
|
||||
border_size = 1
|
||||
|
||||
col.active_border = rgba(00dd00ff) rgba(006600ff) 90deg
|
||||
col.inactive_border = rgba(646464ff)
|
||||
|
||||
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
||||
allow_tearing = true
|
||||
|
||||
layout = dwindle
|
||||
|
||||
snap {
|
||||
enabled = true
|
||||
window_gap = 4
|
||||
monitor_gap = 6
|
||||
respect_gaps = true
|
||||
}
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
||||
decoration {
|
||||
rounding = 0
|
||||
|
||||
active_opacity = 1.0
|
||||
inactive_opacity = 1.0
|
||||
|
||||
shadow {
|
||||
enabled = false
|
||||
range = 4
|
||||
render_power = 3
|
||||
color = rgba(151515ee)
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#blur
|
||||
blur {
|
||||
enabled = false
|
||||
size = 3
|
||||
passes = 1
|
||||
|
||||
vibrancy = 0.1696
|
||||
}
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#animations
|
||||
animations {
|
||||
enabled = yes
|
||||
|
||||
# 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 = windows, 1, 1, quick
|
||||
animation = windowsOut, 1, 0.5, linear, slide
|
||||
animation = layers, 1, 1, quick
|
||||
animation = fade, 0, 2, linear
|
||||
animation = fadeDpms, 1, 4, linear
|
||||
animation = fadeLayersOut, 0, 1, almostLinear
|
||||
animation = workspacesIn, 1, 0.5, quick
|
||||
animation = workspacesOut, 1, 0.7, quick
|
||||
}
|
||||
|
||||
# Smart gaps: https://wiki.hyprland.org/Configuring/Workspace-Rules/#smart-gaps
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||
dwindle {
|
||||
preserve_split = true
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#misc
|
||||
misc {
|
||||
disable_hyprland_logo = true
|
||||
vfr = true
|
||||
vrr = 2
|
||||
enable_swallow = true
|
||||
swallow_regex = ^(kitty)$
|
||||
swallow_exception_regex = ^(xev|wev|vkcube|glxgears|kitty).*
|
||||
allow_session_lock_restore = 1
|
||||
on_focus_under_fullscreen = 1
|
||||
}
|
||||
|
||||
ecosystem {
|
||||
enforce_permissions = true
|
||||
}
|
||||
|
||||
permission = /usr/bin/grim, screencopy, allow
|
||||
permission = /usr/(lib|lib64)/xdg-desktop-portal-hyprland, screencopy, allow
|
||||
|
||||
#############
|
||||
### INPUT ###
|
||||
#############
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#input
|
||||
input {
|
||||
kb_layout = ee
|
||||
kb_variant =
|
||||
kb_model =
|
||||
kb_options = fkeys:basic_13-24
|
||||
kb_rules =
|
||||
|
||||
follow_mouse = 1
|
||||
|
||||
sensitivity = -0.05 # -1.0 - 1.0, 0 means no modification.
|
||||
|
||||
touchpad {
|
||||
natural_scroll = true
|
||||
scroll_factor = 0.6
|
||||
disable_while_typing = false
|
||||
}
|
||||
}
|
||||
|
||||
device {
|
||||
name = falbatech-redox
|
||||
kb_layout = us
|
||||
kb_options = fkeys:basic_13-24
|
||||
}
|
||||
|
||||
device {
|
||||
name = falbatech-redox-mouse
|
||||
sensitivity = -0.5
|
||||
accel_profile = flat
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#gestures
|
||||
gestures {
|
||||
gesture = 3, horizontal, workspace
|
||||
gesture = 3, up, mod: SUPER, fullscreen
|
||||
}
|
||||
|
||||
###################
|
||||
### KEYBINDINGS ###
|
||||
###################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
||||
$mainMod = SUPER
|
||||
|
||||
bind = $mainMod, RETURN, exec, $terminal
|
||||
bind = $mainMod, Q, exec, $browser
|
||||
bind = $mainMod, W, killactive,
|
||||
bind = $mainMod CTRL SHIFT, Q, exit,
|
||||
bind = $mainMod, C, togglefloating,
|
||||
bind = $mainMod, SPACE, exec, $menu
|
||||
bind = $mainMod SHIFT, J, togglesplit, # dwindle
|
||||
bind = $mainMod, F, fullscreen, 1
|
||||
bind = $mainMod SHIFT, F, fullscreen, 0
|
||||
# Hyprlock
|
||||
bind = $mainMod SHIFT, L, exec, $hyprlock
|
||||
# Cliphist
|
||||
bind = $mainMod, V, exec, cliphist list | fuzzel -d -w 75 --select-index 1 | cliphist decode | wl-copy
|
||||
# Hyprshot
|
||||
bind = $mainMod SHIFT, S, exec, $hyprshot -m region --clipboard-only
|
||||
bind = $mainMod SHIFT CTRL, S, exec, $hyprshot -m window --clipboard-only
|
||||
bind = $mainMod SHIFT ALT, S, exec, $hyprshot -m output --clipboard-only
|
||||
bind = $mainMod SHIFT, B, exec, bluetoothctl -- connect "$(bluetoothctl -- devices Paired | cut -f2- -d ' ' | fuzzel -d -l 8 | cut -f1 -d ' ')"
|
||||
bind = $mainMod SHIFT, A, exec, ~/scripts/select-audio-sink.sh
|
||||
|
||||
# Move focus
|
||||
bind = $mainMod, H, movefocus, l
|
||||
bind = $mainMod, L, movefocus, r
|
||||
bind = $mainMod, K, movefocus, u
|
||||
bind = $mainMod, J, movefocus, d
|
||||
|
||||
bind = $mainMod, period, layoutmsg, move +col
|
||||
bind = $mainMod, comma, layoutmsg, move -col
|
||||
|
||||
# Switch workspaces
|
||||
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
|
||||
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
|
||||
|
||||
bind = $mainMod SHIFT CTRL, TAB, movecurrentworkspacetomonitor, +1
|
||||
|
||||
# Move/resize windows
|
||||
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@ 2%+ && ~/scripts/volume-control.sh
|
||||
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%- && ~/scripts/volume-control.sh
|
||||
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && ~/scripts/volume-control.sh
|
||||
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
|
||||
|
||||
# Laptop lid
|
||||
bindl = , switch:on:Lid Switch, exec, hyprctl keyword monitor "HDMI-A-1, 1920x1080@120, 0x0, 1"
|
||||
bindl = , switch:on:Lid Switch, exec, hyprctl keyword monitor "eDP-1, disable"
|
||||
bindl = , switch:off:Lid Switch, exec, hyprctl keyword monitor "eDP-1, 1920x1080@60, 0x0, 1.25"
|
||||
bindl = , switch:off:Lid Switch, exec, hyprctl keyword monitor "HDMI-A-1, disable"
|
||||
|
||||
##############################
|
||||
### WINDOWS AND WORKSPACES ###
|
||||
##############################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
||||
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
|
||||
|
||||
# No border when only 1 window or window is fullscreen
|
||||
windowrule = match:workspace w[1], match:class negative:^(steam)$, match:title negative:Steam, border_size 0
|
||||
windowrule = match:workspace f[1-2], border_size 0
|
||||
|
||||
windowrule {
|
||||
name = pavucontrol-float
|
||||
match:class = ^(org.pulseaudio.pavucontrol)$
|
||||
match:title = ^(Volume Control)$
|
||||
|
||||
float = 1
|
||||
center = 1
|
||||
size = (0.35*monitor_w) (0.4*monitor_h)
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = showmethekey-float
|
||||
match:class = ^(showmethekey-gtk)$
|
||||
|
||||
float = 1
|
||||
border_size = 0
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = steam-popup-float
|
||||
match:class = ^(steam)$
|
||||
match:title = negative:Steam
|
||||
|
||||
float = 1
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = gaming
|
||||
match:class = ^(steam_app_\d+|cs2)$
|
||||
|
||||
workspace = 10
|
||||
immediate = 1
|
||||
fullscreen = 1
|
||||
}
|
||||
9
dot_config/hypr/hyprsunset.conf
Normal file
9
dot_config/hypr/hyprsunset.conf
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
profile {
|
||||
time = 7:30
|
||||
identity = true
|
||||
}
|
||||
|
||||
profile {
|
||||
time = 01:00
|
||||
temperature = 5500
|
||||
}
|
||||
2639
dot_config/kitty/executable_kitty.conf
Normal file
2639
dot_config/kitty/executable_kitty.conf
Normal file
File diff suppressed because it is too large
Load diff
37
dot_config/mimeapps.list
Normal file
37
dot_config/mimeapps.list
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
[Default Applications]
|
||||
x-scheme-handler/http=zen.desktop
|
||||
x-scheme-handler/https=zen.desktop
|
||||
x-scheme-handler/chrome=zen.desktop
|
||||
text/html=zen.desktop
|
||||
application/x-extension-htm=zen.desktop
|
||||
application/x-extension-html=zen.desktop
|
||||
application/x-extension-shtml=zen.desktop
|
||||
application/xhtml+xml=zen.desktop
|
||||
application/x-extension-xhtml=zen.desktop
|
||||
application/x-extension-xht=zen.desktop
|
||||
x-scheme-handler/fdm=freedownloadmanager_fdm_up.desktop
|
||||
image/jpeg=imv.desktop
|
||||
image/png=imv.desktop
|
||||
image/avif=imv.desktop
|
||||
image/bmp=imv.desktop
|
||||
image/gif=imv.desktop
|
||||
image/svg+xml=imv.desktop
|
||||
image/webp=imv.desktop
|
||||
image/vnd.microsoft.icon=imv.desktop
|
||||
video/mp4=vlc.desktop
|
||||
video/mkv=vlc.desktop
|
||||
video/mpeg=vlc.desktop
|
||||
video/quicktime=vlc.desktop
|
||||
video/webm=vlc.desktop
|
||||
|
||||
[Added Associations]
|
||||
x-scheme-handler/http=zen.desktop;
|
||||
x-scheme-handler/https=zen.desktop;
|
||||
x-scheme-handler/chrome=zen.desktop;
|
||||
text/html=zen.desktop;
|
||||
application/x-extension-htm=zen.desktop;
|
||||
application/x-extension-html=zen.desktop;
|
||||
application/x-extension-shtml=zen.desktop;
|
||||
application/xhtml+xml=zen.desktop;
|
||||
application/x-extension-xhtml=zen.desktop;
|
||||
application/x-extension-xht=zen.desktop;
|
||||
1
dot_config/nvim/executable_init.lua
Normal file
1
dot_config/nvim/executable_init.lua
Normal file
|
|
@ -0,0 +1 @@
|
|||
require("wekuz")
|
||||
25
dot_config/nvim/lua/wekuz/executable_autocmds.lua
Normal file
25
dot_config/nvim/lua/wekuz/executable_autocmds.lua
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
local markdown_format = vim.api.nvim_create_augroup("markdown_format", { clear = true })
|
||||
|
||||
vim.api.nvim_create_autocmd({"BufEnter", "BufWinEnter"}, {
|
||||
group = markdown_format,
|
||||
pattern = { "*.md" },
|
||||
callback = function()
|
||||
vim.opt_local.spell = true
|
||||
vim.opt_local.wrap = true
|
||||
vim.opt_local.linebreak = true
|
||||
vim.opt_local.colorcolumn = "0"
|
||||
vim.opt_local.conceallevel = 2
|
||||
end
|
||||
})
|
||||
|
||||
-- vim.api.nvim_create_autocmd({"BufEnter", "BufWinEnter", "VimResized", "WinResized"}, {
|
||||
-- group = markdown_format,
|
||||
-- callback = function()
|
||||
-- if vim.bo.filetype == 'markdown' then
|
||||
-- local width = vim.api.nvim_win_get_width(0)
|
||||
-- if width > 120 then
|
||||
-- vim.opt_local.columns = 120
|
||||
-- end
|
||||
-- end
|
||||
-- end
|
||||
-- })
|
||||
5
dot_config/nvim/lua/wekuz/executable_init.lua
Normal file
5
dot_config/nvim/lua/wekuz/executable_init.lua
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
require("wekuz.opts")
|
||||
require("wekuz.remap")
|
||||
require("wekuz.autocmds")
|
||||
require("wekuz.lazy")
|
||||
require("wekuz.server")
|
||||
24
dot_config/nvim/lua/wekuz/executable_lazy.lua
Normal file
24
dot_config/nvim/lua/wekuz/executable_lazy.lua
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
-- Bootstrap lazy.nvim
|
||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
|
||||
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
|
||||
if vim.v.shell_error ~= 0 then
|
||||
vim.api.nvim_echo({
|
||||
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
|
||||
{ out, "WarningMsg" },
|
||||
{ "\nPress any key to exit..." },
|
||||
}, true, { })
|
||||
vim.fn.getchar()
|
||||
os.exit(1)
|
||||
end
|
||||
end
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
-- Setup lazy.nvim
|
||||
require("lazy").setup({
|
||||
spec = {{ import = "wekuz.plugins" }},
|
||||
install = { colorscheme = { "cyberdream" } },
|
||||
checker = { enabled = false },
|
||||
change_detection = { notify = false }
|
||||
})
|
||||
22
dot_config/nvim/lua/wekuz/executable_opts.lua
Normal file
22
dot_config/nvim/lua/wekuz/executable_opts.lua
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
vim.o.number = true
|
||||
vim.o.relativenumber = true
|
||||
vim.o.cursorline = true
|
||||
vim.o.colorcolumn = "110"
|
||||
|
||||
vim.o.tabstop = 4
|
||||
vim.o.shiftwidth = 4
|
||||
vim.o.expandtab = true
|
||||
vim.o.smartindent = true
|
||||
|
||||
vim.o.wrap = false
|
||||
vim.o.termguicolors = true
|
||||
vim.o.hlsearch = false
|
||||
|
||||
vim.o.swapfile = false
|
||||
vim.o.backup = false
|
||||
vim.o.undodir = os.getenv("HOME") .. "/.nvim/undodir"
|
||||
vim.o.undofile = true
|
||||
vim.o.updatetime = 2000
|
||||
|
||||
vim.o.clipboard = "unnamedplus"
|
||||
vim.o.spelllang= "en_gb,en_us"
|
||||
608
dot_config/nvim/lua/wekuz/executable_plugins.lua
Normal file
608
dot_config/nvim/lua/wekuz/executable_plugins.lua
Normal file
|
|
@ -0,0 +1,608 @@
|
|||
return {
|
||||
{
|
||||
"scottmckendry/cyberdream.nvim",
|
||||
lazy = false,
|
||||
priority = 1000,
|
||||
config = function()
|
||||
require("cyberdream").setup({
|
||||
highlights = {
|
||||
Comment = { fg = "#89ca78", bg = "NONE" },
|
||||
},
|
||||
colors = {
|
||||
bg = "#000000",
|
||||
green = "#00cc00",
|
||||
purple = "#5ef1ff",
|
||||
cyan = "#bd5eff"
|
||||
}
|
||||
})
|
||||
vim.cmd.colorscheme("cyberdream")
|
||||
end
|
||||
},
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
build = ":TSUpdate",
|
||||
main = "nvim-treesitter.configs",
|
||||
opts = {
|
||||
ensure_installed = {
|
||||
"vimdoc", "lua", "markdown", "markdown_inline", "c", "cpp", "rust", "javascript",
|
||||
"typescript", "html", "python", "json", "hyprlang"
|
||||
},
|
||||
highlight = {
|
||||
enable = true,
|
||||
additional_vim_regex_highlighting = false,
|
||||
},
|
||||
sync_install = false,
|
||||
auto_install = true
|
||||
}
|
||||
},
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter-textobjects",
|
||||
event = "VeryLazy"
|
||||
},
|
||||
{
|
||||
"mason-org/mason-lspconfig.nvim",
|
||||
dependencies = {
|
||||
{
|
||||
"mason-org/mason.nvim",
|
||||
opts = {
|
||||
ensure_installed = {
|
||||
"shfmt",
|
||||
}
|
||||
}
|
||||
},
|
||||
"neovim/nvim-lspconfig",
|
||||
"saghen/blink.cmp"
|
||||
},
|
||||
event = { "BufReadPre", "BufNewFile" },
|
||||
config = function()
|
||||
require("mason-lspconfig").setup({
|
||||
automatic_installation = true,
|
||||
ensure_installed = { "lua_ls", "bashls", "clangd", "rust_analyzer", "pyright", "marksman", "tailwindcss" }
|
||||
})
|
||||
local blinkCapabilities = require("blink.cmp").get_lsp_capabilities()
|
||||
vim.lsp.config("lua_ls", {
|
||||
settings = {
|
||||
Lua = {
|
||||
diagnostics = {
|
||||
globals = { "vim" }
|
||||
},
|
||||
workspace = {
|
||||
library = vim.api.nvim_get_runtime_file("", true)
|
||||
},
|
||||
telemetry = {
|
||||
enable = false
|
||||
}
|
||||
}
|
||||
},
|
||||
capabilities = blinkCapabilities
|
||||
})
|
||||
vim.lsp.config("bashls", {
|
||||
filetypes = { "bash", "sh", "zsh" },
|
||||
settings = {
|
||||
bashIde = {
|
||||
globPattern = "*@(.sh|.inc|.bash|.command|.zsh)"
|
||||
}
|
||||
},
|
||||
capabilities = blinkCapabilities
|
||||
})
|
||||
vim.lsp.config("clangd", { capabilities = blinkCapabilities })
|
||||
vim.lsp.config("rust_analyzer", { capabilities = blinkCapabilities })
|
||||
vim.lsp.config("pyright", { capabilities = blinkCapabilities })
|
||||
vim.lsp.config("marksman", { capabilities = blinkCapabilities })
|
||||
vim.lsp.config("tailwindcss", {
|
||||
filetypes = { "html", "css", "less", "postcss", "sass", "scss", "stylus", "sugarss" },
|
||||
capabilities = blinkCapabilities
|
||||
})
|
||||
vim.lsp.config("nil_ls", { capabilities = blinkCapabilities })
|
||||
end
|
||||
},
|
||||
{
|
||||
"stevearc/conform.nvim",
|
||||
config = function()
|
||||
vim.g.enable_autoformat = true
|
||||
require("conform").setup({
|
||||
formatters_by_ft = {
|
||||
nix = { "nixfmt" },
|
||||
zsh = { "shfmt" },
|
||||
-- TODO: More formatters by filetype
|
||||
},
|
||||
format_on_save = function(bufnr)
|
||||
if vim.g.enable_autoformat or vim.b[bufnr].enable_autoformat then
|
||||
return { timeout_ms = 500, lsp_format = "fallback" }
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
vim.api.nvim_create_user_command("Format", function(args)
|
||||
local range = nil
|
||||
if args.count ~= -1 then
|
||||
local end_line = vim.api.nvim_buf_get_lines(0, args.line2 - 1, args.line2, true)[1]
|
||||
range = {
|
||||
start = { args.line1, 0 },
|
||||
["end"] = { args.line2, end_line:len() },
|
||||
}
|
||||
end
|
||||
require("conform").format({ async = true, range = range })
|
||||
end, { range = true })
|
||||
|
||||
vim.api.nvim_create_user_command("FormatDisable", function(args)
|
||||
if args.bang then
|
||||
vim.b.enable_autoformat = false
|
||||
else
|
||||
vim.g.enable_autoformat = false
|
||||
end
|
||||
end, { desc = "Disable autoformat-on-save", bang = true })
|
||||
vim.api.nvim_create_user_command("FormatEnable", function(args)
|
||||
if args.bang then
|
||||
vim.b.enable_autoformat = true
|
||||
else
|
||||
vim.g.enable_autoformat = true
|
||||
end
|
||||
end, { desc = "Re-enable autoformat-on-save", bang = true })
|
||||
|
||||
vim.o.formatexpr = "v:lua.require'conform'.formatexpr()"
|
||||
end
|
||||
},
|
||||
{
|
||||
"saghen/blink.cmp",
|
||||
dependencies = { "rafamadriz/friendly-snippets" },
|
||||
version = "*",
|
||||
opts = {
|
||||
enabled = function()
|
||||
return not vim.tbl_contains({ "text" }, vim.bo.filetype)
|
||||
and vim.bo.buftype ~= "prompt"
|
||||
and vim.b.completion ~= false
|
||||
end,
|
||||
keymap = { preset = "default" },
|
||||
appearance = {
|
||||
nerd_font_variant = "mono"
|
||||
},
|
||||
signature = { enabled = true },
|
||||
cmdline = {
|
||||
enabled = true,
|
||||
keymap = { preset = "cmdline" },
|
||||
sources = function()
|
||||
local type = vim.fn.getcmdtype()
|
||||
if type == "/" or type == "?" then return { "buffer" } end
|
||||
if type == ":" or type == "@" then return { "cmdline" } end
|
||||
return {}
|
||||
end,
|
||||
completion = {
|
||||
trigger = {
|
||||
show_on_blocked_trigger_characters = {},
|
||||
show_on_x_blocked_trigger_characters = {},
|
||||
},
|
||||
list = {
|
||||
selection = {
|
||||
preselect = true,
|
||||
auto_insert = true,
|
||||
},
|
||||
},
|
||||
menu = { auto_show = true },
|
||||
ghost_text = { enabled = true }
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"windwp/nvim-autopairs",
|
||||
event = "InsertEnter",
|
||||
opts = {}
|
||||
},
|
||||
{
|
||||
"windwp/nvim-ts-autotag",
|
||||
dependencies = { "nvim-treesitter/nvim-treesitter" },
|
||||
opts = {}
|
||||
},
|
||||
{
|
||||
"folke/trouble.nvim",
|
||||
opts = {},
|
||||
cmd = "Trouble",
|
||||
keys = {
|
||||
{
|
||||
"<leader>xx",
|
||||
"<cmd>Trouble diagnostics toggle<cr>",
|
||||
desc = "Diagnostics (Trouble)",
|
||||
},
|
||||
{
|
||||
"<leader>xX",
|
||||
"<cmd>Trouble diagnostics toggle filter.buf=0<cr>",
|
||||
desc = "Buffer Diagnostics (Trouble)"
|
||||
},
|
||||
{
|
||||
"<leader>cs",
|
||||
"<cmd>Trouble symbols toggle focus=false<cr>",
|
||||
desc = "Symbols (Trouble)"
|
||||
},
|
||||
{
|
||||
"<leader>cl",
|
||||
"<cmd>Trouble lsp toggle focus=false win.position=right<cr>",
|
||||
desc = "LSP Definitions / references / ... (Trouble)"
|
||||
},
|
||||
{
|
||||
"<leader>xL",
|
||||
"<cmd>Trouble loclist toggle<cr>",
|
||||
desc = "Location List (Trouble)"
|
||||
},
|
||||
{
|
||||
"<leader>xQ",
|
||||
"<cmd>Trouble qflist toggle<cr>",
|
||||
desc = "Quickfix List (Trouble)"
|
||||
},
|
||||
}
|
||||
},
|
||||
{
|
||||
"mluders/comfy-line-numbers.nvim",
|
||||
config = function()
|
||||
require("comfy-line-numbers").setup({
|
||||
hidden_file_types = {}
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd("CmdlineEnter", {
|
||||
group = "ComfyLineNumbers",
|
||||
pattern = "*",
|
||||
callback = function()
|
||||
pcall(require("comfy-line-numbers").disable_line_numbers)
|
||||
end
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd("CmdlineLeave", {
|
||||
group = "ComfyLineNumbers",
|
||||
pattern = "*",
|
||||
callback = function()
|
||||
pcall(require("comfy-line-numbers").enable_line_numbers)
|
||||
end
|
||||
})
|
||||
end
|
||||
},
|
||||
{
|
||||
"winston0410/range-highlight.nvim",
|
||||
event = { "CmdlineEnter" },
|
||||
opts = {},
|
||||
},
|
||||
{
|
||||
"nvim-pack/nvim-spectre",
|
||||
config = function()
|
||||
local spectre = require("spectre")
|
||||
vim.keymap.set("n", "<leader>ss", function() spectre.toggle() end, { desc = "Spectre toggle" })
|
||||
vim.keymap.set("n", "<leader>sw", function() require("spectre").open_visual({ select_word = true }) end,
|
||||
{ desc = "Spectre search current word" })
|
||||
vim.keymap.set("v", "<leader>sw", function() require("spectre").open_visual() end,
|
||||
{ desc = "Spectre search current word" })
|
||||
vim.keymap.set("n", "<leader>sf", function() require("spectre").open_file_search({ select_word = true }) end,
|
||||
{ desc = "Spectre search current word in current file" })
|
||||
vim.keymap.set("v", "<leader>sf", function() require("spectre").open_file_search() end,
|
||||
{ desc = "Spectre search current word in current file" })
|
||||
spectre.setup({
|
||||
is_block_ui_break = true
|
||||
})
|
||||
end
|
||||
},
|
||||
{
|
||||
"kdheepak/lazygit.nvim",
|
||||
lazy = true,
|
||||
cmd = {
|
||||
"LazyGit",
|
||||
"LazyGitConfig",
|
||||
"LazyGitCurrentFile",
|
||||
"LazyGitFilter",
|
||||
"LazyGitFilterCurrentFile",
|
||||
},
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
},
|
||||
keys = {
|
||||
{ "<leader>lg", "<cmd>LazyGit<cr>", desc = "LazyGit" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"nvim-telescope/telescope.nvim",
|
||||
branch = "0.1.x",
|
||||
dependencies = { "nvim-lua/plenary.nvim", "nvim-telescope/telescope-fzf-native.nvim" },
|
||||
config = function()
|
||||
require("telescope").load_extension("fzf")
|
||||
local builtin = require("telescope.builtin")
|
||||
vim.keymap.set("n", "<leader>ff", builtin.find_files, { desc = "Telescope find files" })
|
||||
vim.keymap.set("n", "<leader>fg", builtin.git_files, { desc = "Telescope git files" })
|
||||
vim.keymap.set("n", "<leader>fs", builtin.live_grep, { desc = "Telescope live grep" })
|
||||
vim.keymap.set("n", "<leader>fw", function()
|
||||
local word = vim.fn.expand("<cword>")
|
||||
builtin.grep_string({ search = word })
|
||||
end, { desc = "Telescope grep current word" })
|
||||
vim.keymap.set("n", "<leader>fW", function()
|
||||
local word = vim.fn.expand("<cWORD>")
|
||||
builtin.grep_string({ search = word })
|
||||
end, { desc = "Telescope grep current WORD" })
|
||||
end
|
||||
},
|
||||
{
|
||||
"nvim-telescope/telescope-fzf-native.nvim",
|
||||
build =
|
||||
"cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DCMAKE_POLICY_VERSION_MINIMUM=3.5 && cmake --build build --config Release"
|
||||
},
|
||||
{
|
||||
"mbbill/undotree"
|
||||
},
|
||||
{
|
||||
"mikavilpas/yazi.nvim",
|
||||
version = "*",
|
||||
event = "VeryLazy",
|
||||
dependencies = {
|
||||
{ "nvim-lua/plenary.nvim", lazy = true },
|
||||
},
|
||||
keys = {
|
||||
{
|
||||
"<leader>-",
|
||||
mode = { "n", "v" },
|
||||
"<cmd>Yazi<cr>",
|
||||
desc = "Open yazi at the current file",
|
||||
},
|
||||
{
|
||||
"<leader>cw",
|
||||
"<cmd>Yazi cwd<cr>",
|
||||
desc = "Open the file manager in nvim's working directory",
|
||||
},
|
||||
{
|
||||
"<c-up>",
|
||||
"<cmd>Yazi toggle<cr>",
|
||||
desc = "Resume the last yazi session",
|
||||
},
|
||||
},
|
||||
---@type YaziConfig | {}
|
||||
opts = {
|
||||
open_for_directories = true,
|
||||
keymaps = {
|
||||
show_help = "<f1>",
|
||||
},
|
||||
},
|
||||
init = function()
|
||||
vim.g.loaded_netrwPlugin = 1
|
||||
end,
|
||||
},
|
||||
{
|
||||
"lukas-reineke/indent-blankline.nvim",
|
||||
event = "BufReadPost",
|
||||
dependencies = { "nvim-treesitter/nvim-treesitter" },
|
||||
config = function()
|
||||
vim.api.nvim_set_hl(0, "IblScope", { link = "Function", nocombine = true })
|
||||
|
||||
require("ibl").setup({
|
||||
scope = {
|
||||
char = "│",
|
||||
enabled = true,
|
||||
show_start = true,
|
||||
show_end = false,
|
||||
show_exact_scope = true
|
||||
},
|
||||
indent = {
|
||||
char = "┊"
|
||||
},
|
||||
})
|
||||
end
|
||||
},
|
||||
{
|
||||
"folke/todo-comments.nvim",
|
||||
dependencies = { "nvim-lua/plenary.nvim" },
|
||||
config = function(_, opts)
|
||||
require("todo-comments").setup(opts)
|
||||
vim.keymap.set("n", "Tn", function() require("todo-comments").jump_next() end, { desc = "Next todo comment" })
|
||||
vim.keymap.set("n", "TN", function() require("todo-comments").jump_prev() end,
|
||||
{ desc = "Previous todo comment" })
|
||||
end,
|
||||
opts = {
|
||||
signs = true, -- show icons in the signs column
|
||||
sign_priority = 8, -- sign priority
|
||||
keywords = {
|
||||
BUG = {
|
||||
icon = " ", -- icon used for the sign, and in search results
|
||||
color = "error", -- can be a hex color, or a named color (see below)
|
||||
alt = { "FIX", "FIXME", "FIXIT", "ISSUE" }
|
||||
},
|
||||
TODO = { icon = " ", color = "info" },
|
||||
HACK = { icon = " ", color = "warning" },
|
||||
WARN = { icon = " ", color = "warning", alt = { "WARNING", "XXX" } },
|
||||
PERF = { icon = " ", alt = { "OPTIM", "PERFORMANCE", "OPTIMIZE" } },
|
||||
NOTE = { icon = " ", color = "hint", alt = { "INFO" } },
|
||||
TEST = { icon = "⏲ ", color = "test", alt = { "TESTING", "PASSED", "FAILED" } }
|
||||
},
|
||||
gui_style = {
|
||||
fg = "NONE", -- The gui style to use for the fg highlight group.
|
||||
bg = "BOLD" -- The gui style to use for the bg highlight group.
|
||||
},
|
||||
merge_keywords = true, -- when true, custom keywords will be merged with the defaults
|
||||
highlight = {
|
||||
multiline = true, -- enable multine todo comments
|
||||
multiline_pattern = "^.", -- lua pattern to match the next multiline from the start of the matched keyword
|
||||
multiline_context = 10, -- extra lines that will be re-evaluated when changing a line
|
||||
before = "", -- "fg" or "bg" or empty
|
||||
keyword = "bg", -- "fg", "bg", "wide", "wide_bg", "wide_fg" or empty. (wide and wide_bg is the same as bg, but will also highlight surrounding characters, wide_fg acts accordingly but with fg)
|
||||
after = "fg", -- "fg" or "bg" or empty
|
||||
pattern = [[.*<(KEYWORDS)\s*:]], -- pattern or table of patterns, used for highlighting (vim regex)
|
||||
comments_only = true, -- uses treesitter to match keywords in comments only
|
||||
max_line_len = 400, -- ignore lines longer than this
|
||||
exclude = {}, -- list of file types to exclude highlighting
|
||||
},
|
||||
colors = {
|
||||
error = { "DiagnosticError", "ErrorMsg", "#DC2626" },
|
||||
warning = { "DiagnosticWarn", "WarningMsg", "#FBBF24" },
|
||||
info = { "DiagnosticInfo", "#2563EB" },
|
||||
hint = { "DiagnosticHint", "#10B981" },
|
||||
default = { "Identifier", "#7C3AED" },
|
||||
test = { "Identifier", "#FF00FF" }
|
||||
},
|
||||
search = {
|
||||
command = "rg",
|
||||
args = {
|
||||
"--color=never",
|
||||
"--no-heading",
|
||||
"--with-filename",
|
||||
"--line-number",
|
||||
"--column"
|
||||
},
|
||||
pattern = [[\b(KEYWORDS):]]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"folke/flash.nvim",
|
||||
event = "VeryLazy",
|
||||
---@type Flash.Config
|
||||
opts = {},
|
||||
keys = {
|
||||
-- { "s", mode = { "n", "x", "o" }, function() require("flash").jump() end, desc = "Flash" },
|
||||
{ "S", mode = { "n", "x", "o" }, function() require("flash").treesitter() end, desc = "Flash Treesitter" },
|
||||
{ "R", mode = { "o", "x" }, function() require("flash").treesitter_search() end, desc = "Treesitter Search" },
|
||||
{ "<c-s>", mode = { "c" }, function() require("flash").toggle() end, desc = "Toggle Flash Search" },
|
||||
},
|
||||
},
|
||||
{
|
||||
"j-hui/fidget.nvim",
|
||||
opts = {
|
||||
progress = {
|
||||
display = {
|
||||
done_ttl = 0.5
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"norcalli/nvim-colorizer.lua",
|
||||
main = "colorizer",
|
||||
config = function()
|
||||
require("colorizer").setup({
|
||||
css = {
|
||||
css = true,
|
||||
},
|
||||
"html",
|
||||
"javascript",
|
||||
"markdown",
|
||||
},
|
||||
{
|
||||
RGB = true,
|
||||
RRGGBB = true,
|
||||
RRGGBBAA = true,
|
||||
names = false,
|
||||
mode = "background",
|
||||
}
|
||||
)
|
||||
end
|
||||
},
|
||||
{
|
||||
"nvim-tree/nvim-web-devicons",
|
||||
lazy = true
|
||||
},
|
||||
{
|
||||
"obsidian-nvim/obsidian.nvim",
|
||||
version = "*",
|
||||
lazy = true,
|
||||
event = {
|
||||
"BufEnter " .. vim.fn.expand "~" .. "/Obsidian*"
|
||||
},
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
"nvim-telescope/telescope.nvim",
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
"saghen/blink.cmp"
|
||||
},
|
||||
opts = {
|
||||
legacy_commands = false,
|
||||
workspaces = {
|
||||
{
|
||||
name = "personal",
|
||||
path = "~/Obsidian/personal",
|
||||
}
|
||||
},
|
||||
notes_subdir = "Notes",
|
||||
daily_notes = {
|
||||
folder = "Notes/Daily",
|
||||
date_format = "%Y-%m-%d",
|
||||
alias_format = "%B %-d, %Y",
|
||||
default_tags = { "daily-notes" }
|
||||
},
|
||||
completion = {
|
||||
nvim_cmp = false,
|
||||
blink = true,
|
||||
min_chars = 1,
|
||||
},
|
||||
new_notes_location = "notes_subdir",
|
||||
note_path_func = function(spec)
|
||||
local path = spec.dir / spec.id
|
||||
return path:with_suffix(".md")
|
||||
end,
|
||||
preferred_link_style = "wiki",
|
||||
frontmatter = {
|
||||
enabled = false,
|
||||
},
|
||||
templates = {
|
||||
folder = "Templates",
|
||||
date_format = "%Y-%m-%d",
|
||||
time_format = "%H:%M",
|
||||
substitutions = {},
|
||||
},
|
||||
picker = {
|
||||
name = "telescope.nvim",
|
||||
note_mappings = {
|
||||
new = "<C-x>",
|
||||
insert_link = "<C-l>",
|
||||
},
|
||||
tag_mappings = {
|
||||
tag_note = "<C-x>",
|
||||
insert_tag = "<C-l>",
|
||||
},
|
||||
},
|
||||
checkboxes = {
|
||||
[" "] = { char = "", hl_group = "ObsidianTodo" },
|
||||
["x"] = { char = "", hl_group = "ObsidianDone" },
|
||||
[">"] = { char = "", hl_group = "ObsidianRightArrow" },
|
||||
["~"] = { char = "", hl_group = "ObsidianTilde" },
|
||||
["!"] = { char = "", hl_group = "ObsidianImportant" }
|
||||
},
|
||||
ui = {
|
||||
enable = true,
|
||||
update_debounce = 200,
|
||||
max_file_length = 5000,
|
||||
bullets = { char = "•", hl_group = "ObsidianBullet" },
|
||||
external_link_icon = { char = "", hl_group = "ObsidianExtLinkIcon" },
|
||||
reference_text = { hl_group = "ObsidianRefText" },
|
||||
highlight_text = { hl_group = "ObsidianHighlightText" },
|
||||
tags = { hl_group = "ObsidianTag" },
|
||||
block_ids = { hl_group = "ObsidianBlockID" },
|
||||
hl_groups = {
|
||||
ObsidianTodo = { bold = true, fg = "#f78c6c" },
|
||||
ObsidianDone = { bold = true, fg = "#89ddff" },
|
||||
ObsidianRightArrow = { bold = true, fg = "#f78c6c" },
|
||||
ObsidianTilde = { bold = true, fg = "#ff5370" },
|
||||
ObsidianImportant = { bold = true, fg = "#d73128" },
|
||||
ObsidianBullet = { bold = true, fg = "#89ddff" },
|
||||
ObsidianRefText = { underline = true, fg = "#c792ea" },
|
||||
ObsidianExtLinkIcon = { fg = "#c792ea" },
|
||||
ObsidianTag = { italic = true, fg = "#89ddff" },
|
||||
ObsidianBlockID = { italic = true, fg = "#89ddff" },
|
||||
ObsidianHighlightText = { bg = "#75662e" }
|
||||
},
|
||||
}
|
||||
},
|
||||
keys = {
|
||||
{
|
||||
"fn",
|
||||
"<cmd>Obsidian quick_switch<cr>",
|
||||
desc = "Switch between Obsidian notes"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"Kicamon/markdown-table-mode.nvim",
|
||||
main = "markdown-table-mode",
|
||||
opts = {}
|
||||
},
|
||||
{
|
||||
"Thiago4532/mdmath.nvim",
|
||||
dependencies = {
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
},
|
||||
opts = {
|
||||
filetypes = { "markdown" },
|
||||
update_interval = 500
|
||||
}
|
||||
}
|
||||
}
|
||||
19
dot_config/nvim/lua/wekuz/executable_remap.lua
Normal file
19
dot_config/nvim/lua/wekuz/executable_remap.lua
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
vim.g.mapleader = " "
|
||||
vim.g.maplocalleader = ","
|
||||
|
||||
vim.keymap.set("n", "<leader>ex", vim.cmd.Ex)
|
||||
vim.keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle)
|
||||
|
||||
vim.keymap.set("x", "J", ":m '>+1<CR>gv=gv")
|
||||
vim.keymap.set("x", "K", ":m '<-2<CR>gv=gv")
|
||||
|
||||
vim.keymap.set({ "n", "x" }, "j", "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true })
|
||||
vim.keymap.set({ "n", "x" }, "<Down>", "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true })
|
||||
vim.keymap.set({ "n", "x" }, "k", "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true })
|
||||
vim.keymap.set({ "n", "x" }, "<Up>", "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true })
|
||||
|
||||
vim.keymap.set({ "n", "x" }, "x", "\"_x")
|
||||
vim.keymap.set({ "n", "x" }, "s", "\"_s")
|
||||
vim.keymap.set("n", "dd", "\"_dd")
|
||||
|
||||
vim.keymap.set("x", "p", "P")
|
||||
14
dot_config/nvim/lua/wekuz/executable_server.lua
Normal file
14
dot_config/nvim/lua/wekuz/executable_server.lua
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
function start_server(args)
|
||||
local address = "0.0.0.0:5656"
|
||||
if args.args ~= "" then
|
||||
address = args.args
|
||||
end
|
||||
vim.fn.serverstart(address)
|
||||
print("NVim server started on " .. address)
|
||||
end
|
||||
|
||||
vim.api.nvim_create_user_command(
|
||||
"StartServer",
|
||||
start_server,
|
||||
{ nargs = "?" }
|
||||
)
|
||||
76
dot_config/qmk/private_qmk.ini
Normal file
76
dot_config/qmk/private_qmk.ini
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
[user]
|
||||
keyboard = redox/rev1
|
||||
keymap = wekuz
|
||||
|
||||
[config]
|
||||
|
||||
[console]
|
||||
|
||||
[c2json]
|
||||
|
||||
[compile]
|
||||
|
||||
[docs]
|
||||
|
||||
[find]
|
||||
keymap = default
|
||||
|
||||
[flash]
|
||||
|
||||
[format_c]
|
||||
|
||||
[format_python]
|
||||
|
||||
[format_text]
|
||||
|
||||
[generate_autocorrect_data]
|
||||
|
||||
[generate_compilation_database]
|
||||
|
||||
[generate_develop_pr_list]
|
||||
|
||||
[generate_dfu_header]
|
||||
|
||||
[generate_info_json]
|
||||
|
||||
[generate_make_dependencies]
|
||||
|
||||
[git_submodule]
|
||||
|
||||
[hello]
|
||||
|
||||
[info]
|
||||
|
||||
[license_check]
|
||||
|
||||
[lint]
|
||||
|
||||
[kle2json]
|
||||
|
||||
[list_keymaps]
|
||||
|
||||
[list_layouts]
|
||||
|
||||
[mass_compile]
|
||||
keymap = default
|
||||
|
||||
[new_keyboard]
|
||||
|
||||
[new_keymap]
|
||||
|
||||
[painter_convert_graphics]
|
||||
|
||||
[painter_make_font_image]
|
||||
|
||||
[painter_convert_font_image]
|
||||
|
||||
[test_c]
|
||||
|
||||
[userspace_add]
|
||||
|
||||
[userspace_remove]
|
||||
|
||||
[userspace_compile]
|
||||
|
||||
[general]
|
||||
|
||||
0
dot_config/qt5ct/colors/.keep
Normal file
0
dot_config/qt5ct/colors/.keep
Normal file
0
dot_config/qt5ct/qss/.keep
Normal file
0
dot_config/qt5ct/qss/.keep
Normal file
32
dot_config/qt5ct/qt5ct.conf
Normal file
32
dot_config/qt5ct/qt5ct.conf
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
[Appearance]
|
||||
color_scheme_path=/usr/share/qt5ct/colors/darker.conf
|
||||
custom_palette=true
|
||||
icon_theme=Papirus-Dark
|
||||
standard_dialogs=default
|
||||
style=Adwaita-Dark
|
||||
|
||||
[Fonts]
|
||||
fixed="JetBrainsMono Nerd Font Mono,12,-1,5,50,0,0,0,0,0,Regular"
|
||||
general="JetBrainsMono Nerd Font,12,-1,5,50,0,0,0,0,0,Regular"
|
||||
|
||||
[Interface]
|
||||
activate_item_on_single_click=1
|
||||
buttonbox_layout=0
|
||||
cursor_flash_time=1000
|
||||
dialog_buttons_have_icons=1
|
||||
double_click_interval=400
|
||||
gui_effects=@Invalid()
|
||||
keyboard_scheme=2
|
||||
menus_have_icons=true
|
||||
show_shortcuts_in_context_menus=true
|
||||
stylesheets=@Invalid()
|
||||
toolbutton_style=4
|
||||
underline_shortcut=1
|
||||
wheel_scroll_lines=3
|
||||
|
||||
[SettingsWindow]
|
||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x2\xa4\0\0\x3\v\0\0\0\0\0\0\0\0\0\0\x2\xa4\0\0\x3\v\0\0\0\0\x2\0\0\0\n\0\0\0\0\0\0\0\0\0\0\0\x2\xa4\0\0\x3\v)
|
||||
|
||||
[Troubleshooting]
|
||||
force_raster_widgets=1
|
||||
ignored_applications=@Invalid()
|
||||
0
dot_config/qt6ct/colors/.keep
Normal file
0
dot_config/qt6ct/colors/.keep
Normal file
0
dot_config/qt6ct/qss/.keep
Normal file
0
dot_config/qt6ct/qss/.keep
Normal file
32
dot_config/qt6ct/qt6ct.conf
Normal file
32
dot_config/qt6ct/qt6ct.conf
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
[Appearance]
|
||||
color_scheme_path=/usr/share/qt6ct/colors/darker.conf
|
||||
custom_palette=true
|
||||
icon_theme=Papirus-Dark
|
||||
standard_dialogs=default
|
||||
style=Adwaita-Dark
|
||||
|
||||
[Fonts]
|
||||
fixed="JetBrainsMono Nerd Font Mono,12,-1,5,400,0,0,0,0,0,0,0,0,0,0,1,Regular"
|
||||
general="JetBrainsMono Nerd Font,12,-1,5,400,0,0,0,0,0,0,0,0,0,0,1,Regular"
|
||||
|
||||
[Interface]
|
||||
activate_item_on_single_click=1
|
||||
buttonbox_layout=0
|
||||
cursor_flash_time=1000
|
||||
dialog_buttons_have_icons=1
|
||||
double_click_interval=400
|
||||
gui_effects=@Invalid()
|
||||
keyboard_scheme=2
|
||||
menus_have_icons=true
|
||||
show_shortcuts_in_context_menus=true
|
||||
stylesheets=@Invalid()
|
||||
toolbutton_style=4
|
||||
underline_shortcut=1
|
||||
wheel_scroll_lines=3
|
||||
|
||||
[SettingsWindow]
|
||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\t\xfd\0\0\x5\x85\0\0\0\0\0\0\0\0\0\0\t\xfd\0\0\x5\x85\0\0\0\0\x2\0\0\0\n\0\0\0\0\0\0\0\0\0\0\0\t\xfd\0\0\x5\x85)
|
||||
|
||||
[Troubleshooting]
|
||||
force_raster_widgets=1
|
||||
ignored_applications=@Invalid()
|
||||
1
dot_config/rbw/config.json
Normal file
1
dot_config/rbw/config.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"email":"patrickjelsukov@gmail.com","sso_id":null,"base_url":"https://vw.wekuz.localplayer.dev","identity_url":null,"ui_url":null,"notifications_url":null,"lock_timeout":3600,"sync_interval":3600,"pinentry":"pinentry","client_cert_path":null}
|
||||
1
dot_config/uwsm/executable_default-id
Normal file
1
dot_config/uwsm/executable_default-id
Normal file
|
|
@ -0,0 +1 @@
|
|||
hyprland-uwsm.desktop
|
||||
17
dot_config/uwsm/executable_env
Normal file
17
dot_config/uwsm/executable_env
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
export XCURSOR_THEME=Nordzy-cursors
|
||||
export XCURSOR_SIZE=24
|
||||
|
||||
export ELECTRON_OZONE_PLATFORM_HINT=auto
|
||||
|
||||
export QT_QPA_PLATFORM=wayland;xcb
|
||||
export QT_QPA_PLATFORMTHEME=qt6ct
|
||||
export QT_WAYLAND_DISABLE_WINDOWDECORATION=1
|
||||
export QT_AUTO_SCREEN_SCALE_FACTOR=1
|
||||
|
||||
export GDK_BACKEND=wayland,x11,*
|
||||
export SDL_VIDEODRIVER=wayland
|
||||
export CLUTTER_BACKEND=wayland
|
||||
|
||||
export XDG_CURRENT_DESKTOP=Hyprland
|
||||
export XDG_SESSION_TYPE=wayland
|
||||
export XDG_SESSION_DESKTOP=Hyprland
|
||||
2
dot_config/uwsm/executable_env-hyprland
Normal file
2
dot_config/uwsm/executable_env-hyprland
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
export HYPRCURSOR_THEME=Nordzy-cursors
|
||||
export HYPRCURSOR_SIZE=24
|
||||
78
dot_config/waybar/executable_config.jsonc
Normal file
78
dot_config/waybar/executable_config.jsonc
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
// -*- mode: jsonc -*-
|
||||
{
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"height": 24,
|
||||
"spacing": 2,
|
||||
"modules-left": ["hyprland/workspaces"],
|
||||
"modules-center": ["hyprland/window"],
|
||||
"modules-right": [ "network", "wireplumber", "cpu", "memory", "temperature", "battery", "clock" ],
|
||||
|
||||
"hyprland/workspaces": {
|
||||
"workspace-taskbar": {
|
||||
"enable": true,
|
||||
"format": "{icon}",
|
||||
"icon-size": 16,
|
||||
"orientation": "horizontal",
|
||||
},
|
||||
"format": "{id} {windows}",
|
||||
},
|
||||
"hyprland/window": {
|
||||
"icon": true,
|
||||
"icon-size": 18,
|
||||
},
|
||||
"network": {
|
||||
"interval": 15,
|
||||
"format-wifi": "",
|
||||
"format-ethernet": "",
|
||||
"format-disconnected": "⚠",
|
||||
"format-linked": "",
|
||||
"tooltip-format": "{ifname}: {ipaddr}/{cidr}",
|
||||
"tooltip-format-wifi": "{ifname}: {ipaddr}/{cidr}\n{essid} ({signalStrength}%)",
|
||||
"tooltip-format-disconnected": "Disconnected",
|
||||
"tooltip-format-linked": "No IP"
|
||||
},
|
||||
"wireplumber": {
|
||||
"format": "{volume}% {icon}",
|
||||
"format-icons": ["", "", ""],
|
||||
"format-muted": "{volume}% ",
|
||||
"scroll-step": 0.2,
|
||||
"on-click": "pavucontrol",
|
||||
"reverse-scrolling": 1
|
||||
},
|
||||
"cpu": {
|
||||
"interval": 5,
|
||||
"format": "{usage}% "
|
||||
},
|
||||
"memory": {
|
||||
"interval": 5,
|
||||
"format": "{}% "
|
||||
},
|
||||
"temperature": {
|
||||
"interval": 5,
|
||||
"hwmon-path": "/sys/class/hwmon/hwmon3/temp1_input",
|
||||
"critical-threshold": 70,
|
||||
"format": "{temperatureC}°C {icon}",
|
||||
"format-critical": "{temperatureC}°C {icon}",
|
||||
"format-icons": ["", "", "", "", ""],
|
||||
},
|
||||
"battery": {
|
||||
"interval": 10,
|
||||
"states": {
|
||||
"warning": 30,
|
||||
"critical": 15
|
||||
},
|
||||
"format": "{capacity}% {icon}",
|
||||
"format-plugged": "{capacity}% ",
|
||||
"format-icons": {
|
||||
"default": ["", "", "", ""],
|
||||
"charging": ["", "", "", ""]
|
||||
},
|
||||
"tooltip-format": "{time}"
|
||||
},
|
||||
"clock": {
|
||||
"interval": 1,
|
||||
"format": "{:%H:%M:%S}",
|
||||
"tooltip-format": "{:%a %d/%m/%Y}"
|
||||
}
|
||||
}
|
||||
160
dot_config/waybar/executable_style.css
Normal file
160
dot_config/waybar/executable_style.css
Normal file
|
|
@ -0,0 +1,160 @@
|
|||
* {
|
||||
font-family: JetBrainsMonoNL Nerd Font;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background: linear-gradient(#333333, rgba(34, 34, 34, 0.4));
|
||||
/* background-color: #333333; */
|
||||
/* border-bottom: 2px solid rgba(100, 100, 100, 0.7); */
|
||||
color: #ffffff;
|
||||
transition-property: background-color;
|
||||
transition-duration: .5s;
|
||||
}
|
||||
|
||||
label.module {
|
||||
box-shadow: inset 0 -2px;
|
||||
}
|
||||
|
||||
button {
|
||||
/* Use box-shadow instead of border so the text isn't offset */
|
||||
/* Avoid rounded borders under each button name */
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
|
||||
button:hover {
|
||||
box-shadow: inherit;
|
||||
text-shadow: inherit;
|
||||
background: inherit;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 0 4px;
|
||||
background-color: transparent;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
background: rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
#workspaces button.focused {
|
||||
background: linear-gradient(#64727D, rgba(100, 114, 125, 0.7));
|
||||
/* background-color: #64727D; */
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
background: linear-gradient(#ee0202, rgba(238, 2, 2, 0.7));
|
||||
/* background-color: #ee0202; */
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
background: linear-gradient(rgba(0, 170, 0, 0.8), rgba(0, 136, 0, 0.4));
|
||||
/* background-color: #00aa00; */
|
||||
}
|
||||
|
||||
#network,
|
||||
#wireplumber,
|
||||
#cpu,
|
||||
#memory,
|
||||
#temperature,
|
||||
#battery,
|
||||
#clock {
|
||||
padding: 0 4px;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
#window {
|
||||
margin: 0 40px;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
margin: 0 6px;
|
||||
}
|
||||
|
||||
.modules-left > widget:first-child > #workspaces {
|
||||
margin-left: 0;
|
||||
}
|
||||
.modules-right > widget:last-child > #workspaces {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
#clock {
|
||||
padding: 0 8px;
|
||||
background-color: transparent;
|
||||
}
|
||||
#clock:hover {
|
||||
background: rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
#battery {
|
||||
background-color: transparent;
|
||||
}
|
||||
#battery:hover {
|
||||
background: rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
#battery.critical:not(.charging) {
|
||||
box-shadow: inset 0 -2px;
|
||||
color: #ee0202;
|
||||
}
|
||||
|
||||
label:focus {
|
||||
background-color: #000000;
|
||||
}
|
||||
|
||||
#cpu {
|
||||
padding-right: 10px;
|
||||
background-color: transparent;
|
||||
}
|
||||
#cpu:hover {
|
||||
background: rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
#memory {
|
||||
padding-right: 10px;
|
||||
background-color: transparent;
|
||||
}
|
||||
#memory:hover {
|
||||
background: rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
#network {
|
||||
padding-right: 8px;
|
||||
background-color: transparent;
|
||||
}
|
||||
#network:hover {
|
||||
background: rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
#network.disconnected {
|
||||
box-shadow: inset 0 -2px;
|
||||
color: #ee0202;
|
||||
}
|
||||
#network.linked {
|
||||
box-shadow: inset 0 -2px;
|
||||
color: #ece81a;
|
||||
}
|
||||
|
||||
#wireplumber {
|
||||
padding-right: 6px;
|
||||
background-color: transparent;
|
||||
}
|
||||
#wireplumber:hover {
|
||||
background: rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
#wireplumber.muted {
|
||||
box-shadow: inset 0 -2px;
|
||||
color: #ee0202;
|
||||
}
|
||||
|
||||
#temperature {
|
||||
background-color: transparent;
|
||||
}
|
||||
#temperature:hover {
|
||||
background: rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
#temperature.critical {
|
||||
box-shadow: inset 0 -2px;
|
||||
color: #ee0202;
|
||||
}
|
||||
32
dot_config/wikiman/wikiman.conf
Normal file
32
dot_config/wikiman/wikiman.conf
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
# Sources (if empty, use all available)
|
||||
sources =
|
||||
|
||||
# Fuzzy finder
|
||||
fuzzy_finder = fzf
|
||||
|
||||
# Quick search mode (only by title)
|
||||
quick_search = false
|
||||
|
||||
# AND operator mode (must contain all keywords)
|
||||
and_operator = false
|
||||
|
||||
# Raw output (for developers)
|
||||
raw_output = false
|
||||
|
||||
# Manpages language(s)
|
||||
man_lang = en
|
||||
|
||||
# Wiki language(s)
|
||||
wiki_lang = en
|
||||
|
||||
# Show previews in TUI
|
||||
tui_preview = true
|
||||
|
||||
# Keep open after viewing a result
|
||||
tui_keep_open = false
|
||||
|
||||
# Show source column
|
||||
tui_source_column = true
|
||||
|
||||
# Viewer for HTML pages
|
||||
tui_html = w3m
|
||||
2
dot_config/yazi/yazi.toml
Normal file
2
dot_config/yazi/yazi.toml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
[mgr]
|
||||
show_hidden = true
|
||||
14
dot_config/zsh/config/executable_aliases.zsh
Normal file
14
dot_config/zsh/config/executable_aliases.zsh
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
alias ls="lsd"
|
||||
alias l="ls -l"
|
||||
alias la="ls -la"
|
||||
alias rp="rip"
|
||||
alias rm="read -q 'choice?Use rm instead of rip? [y/N] ' && rm"
|
||||
alias nv="nvim"
|
||||
alias sudo="sudo "
|
||||
alias umount="sync && umount"
|
||||
alias kssh="kitten ssh"
|
||||
alias ipy="ipython"
|
||||
alias zsh_debug_startup="time ZSH_DEBUGRC=1 zsh -i -c exit"
|
||||
|
||||
eval $(thefuck --alias)
|
||||
eval $(thefuck --alias fck)
|
||||
7
dot_config/zsh/config/executable_autostart.zsh
Normal file
7
dot_config/zsh/config/executable_autostart.zsh
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
# ssh-agent
|
||||
if ! pgrep -u "$USER" ssh-agent > /dev/null; then
|
||||
ssh-agent -t 2h > "$XDG_RUNTIME_DIR/ssh-agent.env"
|
||||
fi
|
||||
if [[ ! -f "$SSH_AUTH_SOCK" ]]; then
|
||||
source "$XDG_RUNTIME_DIR/ssh-agent.env" >/dev/null
|
||||
fi
|
||||
9
dot_config/zsh/config/executable_completions.zsh
Normal file
9
dot_config/zsh/config/executable_completions.zsh
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
source <(fzf --zsh)
|
||||
source <(rip completions zsh)
|
||||
source <(rbw gen-completions zsh)
|
||||
eval "$(zoxide init zsh)"
|
||||
|
||||
function qmk-completions {
|
||||
autoload -Uz bashcompinit && bashcompinit
|
||||
source "$(qmk env | grep QMK_HOME | cut -f2 -d '"')"/util/qmk_tab_complete.sh
|
||||
}
|
||||
50
dot_config/zsh/config/executable_fixkeys.zsh
Normal file
50
dot_config/zsh/config/executable_fixkeys.zsh
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
# Source: https://wiki.archlinux.org/title/Zsh#Key_bindings
|
||||
|
||||
typeset -g -A key
|
||||
|
||||
key[Home]="${terminfo[khome]}"
|
||||
key[End]="${terminfo[kend]}"
|
||||
key[Insert]="${terminfo[kich1]}"
|
||||
key[Backspace]="${terminfo[kbs]}"
|
||||
key[Delete]="${terminfo[kdch1]}"
|
||||
key[Up]="${terminfo[kcuu1]}"
|
||||
key[Down]="${terminfo[kcud1]}"
|
||||
key[Left]="${terminfo[kcub1]}"
|
||||
key[Right]="${terminfo[kcuf1]}"
|
||||
key[PageUp]="${terminfo[kpp]}"
|
||||
key[PageDown]="${terminfo[knp]}"
|
||||
key[Shift-Tab]="${terminfo[kcbt]}"
|
||||
|
||||
[[ -n "${key[Home]}" ]] && bindkey -- "${key[Home]}" beginning-of-line
|
||||
[[ -n "${key[End]}" ]] && bindkey -- "${key[End]}" end-of-line
|
||||
[[ -n "${key[Insert]}" ]] && bindkey -- "${key[Insert]}" overwrite-mode
|
||||
[[ -n "${key[Backspace]}" ]] && bindkey -- "${key[Backspace]}" backward-delete-char
|
||||
[[ -n "${key[Delete]}" ]] && bindkey -- "${key[Delete]}" delete-char
|
||||
[[ -n "${key[Up]}" ]] && bindkey -- "${key[Up]}" up-line-or-history
|
||||
[[ -n "${key[Down]}" ]] && bindkey -- "${key[Down]}" down-line-or-history
|
||||
[[ -n "${key[Left]}" ]] && bindkey -- "${key[Left]}" backward-char
|
||||
[[ -n "${key[Right]}" ]] && bindkey -- "${key[Right]}" forward-char
|
||||
[[ -n "${key[PageUp]}" ]] && bindkey -- "${key[PageUp]}" beginning-of-buffer-or-history
|
||||
[[ -n "${key[PageDown]}" ]] && bindkey -- "${key[PageDown]}" end-of-buffer-or-history
|
||||
[[ -n "${key[Shift-Tab]}" ]] && bindkey -- "${key[Shift-Tab]}" reverse-menu-complete
|
||||
|
||||
if (( ${+terminfo[smkx]} && ${+terminfo[rmkx]} )); then
|
||||
autoload -Uz add-zle-hook-widget
|
||||
function zle_application_mode_start { echoti smkx }
|
||||
function zle_application_mode_stop { echoti rmkx }
|
||||
add-zle-hook-widget -Uz zle-line-init zle_application_mode_start
|
||||
add-zle-hook-widget -Uz zle-line-finish zle_application_mode_stop
|
||||
fi
|
||||
|
||||
autoload -Uz up-line-or-beginning-search down-line-or-beginning-search
|
||||
zle -N up-line-or-beginning-search
|
||||
zle -N down-line-or-beginning-search
|
||||
|
||||
[[ -n "${key[Up]}" ]] && bindkey -- "${key[Up]}" up-line-or-beginning-search
|
||||
[[ -n "${key[Down]}" ]] && bindkey -- "${key[Down]}" down-line-or-beginning-search
|
||||
|
||||
key[Control-Left]="${terminfo[kLFT5]}"
|
||||
key[Control-Right]="${terminfo[kRIT5]}"
|
||||
|
||||
[[ -n "${key[Control-Left]}" ]] && bindkey -- "${key[Control-Left]}" backward-word
|
||||
[[ -n "${key[Control-Right]}" ]] && bindkey -- "${key[Control-Right]}" forward-word
|
||||
5
dot_config/zsh/config/executable_options.zsh
Normal file
5
dot_config/zsh/config/executable_options.zsh
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
unsetopt beep
|
||||
setopt inc_append_history
|
||||
setopt share_history
|
||||
setopt hist_ignore_dups
|
||||
setopt hist_ignore_all_dups
|
||||
17
dot_config/zsh/config/rehash.zsh
Normal file
17
dot_config/zsh/config/rehash.zsh
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
# https://wiki.archlinux.org/title/Zsh#On-demand_rehash
|
||||
|
||||
zshcache_time="$(date +%s%N)"
|
||||
|
||||
autoload -Uz add-zsh-hook
|
||||
|
||||
rehash_precmd() {
|
||||
if [[ -e /var/cache/zsh/pacman ]]; then
|
||||
local paccache_time="$(date -r /var/cache/zsh/pacman +%s%N)"
|
||||
if ((zshcache_time < paccache_time)); then
|
||||
rehash
|
||||
zshcache_time="$paccache_time"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
add-zsh-hook -Uz precmd rehash_precmd
|
||||
98
executable_dot_zshrc
Normal file
98
executable_dot_zshrc
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
if [[ -n "${ZSH_DEBUG_STARTUP+1}" ]]; then
|
||||
zmodload zsh/zprof
|
||||
fi
|
||||
|
||||
HISTFILE=~/.histfile
|
||||
HISTSIZE=10000
|
||||
SAVEHIST=10000
|
||||
setopt INC_APPEND_HISTORY
|
||||
|
||||
export EDITOR=nvim
|
||||
export MANPAGER='nvim +Man!'
|
||||
|
||||
setopt PROMPT_SUBST
|
||||
PROMPT=$'\n%n@%m %~%(?..%F{red}) %%%f '
|
||||
|
||||
zstyle :compinstall filename '$HOME/.zshrc'
|
||||
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'
|
||||
zstyle ':completion:*' menu select
|
||||
autoload -Uz compinit
|
||||
if [[ ! -f ~/.zcompdump || -f ~/.zcompdump(N.mh+24) ]]; then
|
||||
compinit
|
||||
else
|
||||
compinit -C
|
||||
fi
|
||||
export PATH="$PATH:$HOME/.local/bin"
|
||||
export PATH="$PATH:$HOME/.cargo/bin"
|
||||
|
||||
for file in "$XDG_CONFIG_HOME"/zsh/config/*.zsh(N); do
|
||||
[ -r "$file" ] && source "$file"
|
||||
done
|
||||
|
||||
function plugin-compile {
|
||||
ZPLUGINDIR=${ZPLUGINDIR:-"$XDG_CONFIG_HOME"/zsh/plugins}
|
||||
autoload -U zrecompile
|
||||
local f
|
||||
for f in "$ZPLUGINDIR"/**/*.zsh{,-theme}(N); do
|
||||
zrecompile -pq "$f"
|
||||
done
|
||||
}
|
||||
|
||||
function plugin-clone {
|
||||
ZPLUGINDIR=${ZPLUGINDIR:-"$XDG_CONFIG_HOME"/zsh/plugins}
|
||||
local repo plugdir initfile initfiles=()
|
||||
for repo in "$@"; do
|
||||
plugdir="$ZPLUGINDIR"/${repo:t}
|
||||
initfile=$plugdir/${repo:t}.plugin.zsh
|
||||
if [[ ! -d $plugdir ]]; then
|
||||
echo "Cloning $repo..."
|
||||
git clone -q --depth 1 --recursive --shallow-submodules \
|
||||
https://github.com/$repo $plugdir
|
||||
fi
|
||||
if [[ ! -e $initfile ]]; then
|
||||
initfiles=($plugdir/*.{plugin.zsh,zsh-theme,zsh,sh}(N))
|
||||
(($#initfiles)) && ln -sf $initfiles[1] $initfile
|
||||
fi
|
||||
done
|
||||
plugin-compile
|
||||
}
|
||||
|
||||
function plugin-source {
|
||||
local plugdir
|
||||
ZPLUGINDIR=${ZPLUGINDIR:-"$XDG_CONFIG_HOME"/zsh/plugins}
|
||||
for plugdir in "$@"; do
|
||||
[[ $plugdir = /* ]] || plugdir="$ZPLUGINDIR"/$plugdir
|
||||
fpath+=$plugdir
|
||||
local initfile=$plugdir/${plugdir:t}.plugin.zsh
|
||||
(($+functions[zsh-defer])) && zsh-defer . $initfile || . $initfile
|
||||
done
|
||||
}
|
||||
|
||||
function plugin-update {
|
||||
ZPLUGINDIR=${ZPLUGINDIR:-"$XDG_CONFIG_HOME"/zsh/plugins}
|
||||
local d
|
||||
for d in "$ZPLUGINDIR"/*/.git(/); do
|
||||
echo "Updating ${d:h:t}..."
|
||||
command git -C "${d:h}" pull --ff --recurse-submodules --depth 1 --rebase --autostash
|
||||
done
|
||||
plugin-compile
|
||||
echo "Plugins updated"
|
||||
}
|
||||
|
||||
ZSH_PLUGIN_REPOS=(
|
||||
hlissner/zsh-autopair
|
||||
zsh-users/zsh-autosuggestions
|
||||
zsh-users/zsh-syntax-highlighting # https://github.com/zsh-users/zsh-syntax-highlighting#why-must-zsh-syntax-highlightingzsh-be-sourced-at-the-end-of-the-zshrc-file
|
||||
)
|
||||
|
||||
# Plugin bootstrap
|
||||
if [[ ! -d ${ZPLUGINDIR:-"$XDG_CONFIG_HOME"/zsh/plugins} ]]; then
|
||||
echo "Bootstraping plugins..."
|
||||
plugin-clone "${ZSH_PLUGIN_REPOS[@]}"
|
||||
fi
|
||||
|
||||
plugin-source "${(@)ZSH_PLUGIN_REPOS:t}"
|
||||
|
||||
if [ -n "${ZSH_DEBUG_STARTUP+1}" ]; then
|
||||
zprof
|
||||
fi
|
||||
14
private_dot_ssh/config
Normal file
14
private_dot_ssh/config
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
AddKeysToAgent yes
|
||||
|
||||
Match host github.com user git
|
||||
IdentityFile ~/.ssh/id_ed25519_github
|
||||
IdentitiesOnly yes
|
||||
|
||||
Match host git.wekuz.localplayer.dev user git
|
||||
Port 15837
|
||||
IdentityFile ~/.ssh/id_ed25519_github
|
||||
IdentitiesOnly yes
|
||||
|
||||
Match host 192.168.1.111 user wekuz
|
||||
IdentityFile ~/.ssh/id_ed25519_raspberrypie
|
||||
IdentitiesOnly yes
|
||||
Loading…
Add table
Reference in a new issue