diff --git a/.config/MangoHud/MangoHud.conf b/.config/MangoHud/MangoHud.conf
new file mode 100644
index 0000000..0507948
--- /dev/null
+++ b/.config/MangoHud/MangoHud.conf
@@ -0,0 +1,40 @@
+# Config Generated by MangoJuice #
+legacy_layout=false
+gpu_stats
+gpu_load_change
+gpu_temp
+cpu_stats
+cpu_load_change
+cpu_temp
+procmem
+procmem_shared
+fps
+fps_color_change
+proc_vram
+toggle_logging=Shift_L+F2
+toggle_hud_position=Shift_R+F11
+fps_limit_method=late
+toggle_fps_limit=Shift_L+F1
+background_alpha=0.5
+position=top-left
+toggle_hud=Shift_R+F12
+gpu_color=2e9762
+cpu_color=2e97cb
+fps_value=30,60
+fps_color=cc0000,ffaa7f,92e79a
+gpu_load_value=60,90
+gpu_load_color=92e79a,ffaa7f,cc0000
+cpu_load_value=60,90
+cpu_load_color=92e79a,ffaa7f,cc0000
+background_color=000000
+frametime_color=00ff00
+vram_color=ad64c1
+ram_color=c26693
+wine_color=eb5b5b
+engine_color=eb5b5b
+text_color=ffffff
+media_player_color=ffffff
+network_color=e07b85
+battery_color=92e79a
+horizontal_separator_color=ffffff
+media_player_format={title};{artist};{album}
diff --git a/.config/OpenTabletDriver/Configurations/CTL-4100.json b/.config/OpenTabletDriver/Configurations/CTL-4100.json
new file mode 100644
index 0000000..5d2452b
--- /dev/null
+++ b/.config/OpenTabletDriver/Configurations/CTL-4100.json
@@ -0,0 +1,18 @@
+{
+ "Name": "Wacom CTL-4100",
+ "Specifications": {
+ "Digitizer": {
+ "Width": 152,
+ "Height": 95,
+ "MaxX": 15200,
+ "MaxY": 9500
+ },
+ "Pen": {
+ "MaxPressure": 4095,
+ "ButtonCount": 2
+ },
+ "AuxiliaryButtons": {
+ "ButtonCount": 4
+ }
+ }
+}
diff --git a/.config/OpenTabletDriver/settings.json b/.config/OpenTabletDriver/settings.json
new file mode 100644
index 0000000..dd9cd10
--- /dev/null
+++ b/.config/OpenTabletDriver/settings.json
@@ -0,0 +1,185 @@
+{
+ "Revision": "0.6.6.2",
+ "Profiles": [
+ {
+ "Tablet": "Wacom CTL-4100",
+ "OutputMode": {
+ "Path": "OpenTabletDriver.Desktop.Output.LinuxArtistMode",
+ "Settings": [],
+ "Enable": true
+ },
+ "Filters": [],
+ "AbsoluteModeSettings": {
+ "Display": {
+ "Width": 2560.0,
+ "Height": 1440.0,
+ "X": 1280.0,
+ "Y": 720.0,
+ "Rotation": 0.0
+ },
+ "Tablet": {
+ "Width": 152.0,
+ "Height": 95.0,
+ "X": 76.0,
+ "Y": 47.5,
+ "Rotation": 0.0
+ },
+ "EnableClipping": true,
+ "EnableAreaLimiting": false,
+ "LockAspectRatio": false
+ },
+ "RelativeModeSettings": {
+ "XSensitivity": 10.0,
+ "YSensitivity": 10.0,
+ "RelativeRotation": 0.0,
+ "RelativeResetDelay": "00:00:00.1000000"
+ },
+ "Bindings": {
+ "TipActivationThreshold": 1.0,
+ "TipButton": {
+ "Path": "OpenTabletDriver.Desktop.Binding.AdaptiveBinding",
+ "Settings": [
+ {
+ "Property": "Binding",
+ "Value": "Tip"
+ }
+ ],
+ "Enable": true
+ },
+ "EraserActivationThreshold": 1.0,
+ "EraserButton": {
+ "Path": "OpenTabletDriver.Desktop.Binding.AdaptiveBinding",
+ "Settings": [
+ {
+ "Property": "Binding",
+ "Value": "Eraser"
+ }
+ ],
+ "Enable": true
+ },
+ "PenButtons": [
+ {
+ "Path": "OpenTabletDriver.Desktop.Binding.AdaptiveBinding",
+ "Settings": [
+ {
+ "Property": "Binding",
+ "Value": "Button 1"
+ }
+ ],
+ "Enable": true
+ },
+ {
+ "Path": "OpenTabletDriver.Desktop.Binding.AdaptiveBinding",
+ "Settings": [
+ {
+ "Property": "Binding",
+ "Value": "Button 2"
+ }
+ ],
+ "Enable": true
+ }
+ ],
+ "AuxButtons": [
+ null,
+ null,
+ null,
+ null
+ ],
+ "MouseButtons": [],
+ "MouseScrollUp": null,
+ "MouseScrollDown": null,
+ "DisablePressure": false,
+ "DisableTilt": false
+ }
+ },
+ {
+ "Tablet": "Wacom CTL-472",
+ "OutputMode": {
+ "Path": "OpenTabletDriver.Desktop.Output.AbsoluteMode",
+ "Settings": [],
+ "Enable": true
+ },
+ "Filters": [],
+ "AbsoluteModeSettings": {
+ "Display": {
+ "Width": 2560.0,
+ "Height": 1440.0,
+ "X": 1280.0,
+ "Y": 720.0,
+ "Rotation": 0.0
+ },
+ "Tablet": {
+ "Width": 65.0,
+ "Height": 36.5625,
+ "X": 119.499985,
+ "Y": 76.71875,
+ "Rotation": 0.0
+ },
+ "EnableClipping": true,
+ "EnableAreaLimiting": false,
+ "LockAspectRatio": true
+ },
+ "RelativeModeSettings": {
+ "XSensitivity": 10.0,
+ "YSensitivity": 10.0,
+ "RelativeRotation": 0.0,
+ "RelativeResetDelay": "00:00:00.1000000"
+ },
+ "Bindings": {
+ "TipActivationThreshold": 1.0,
+ "TipButton": {
+ "Path": "OpenTabletDriver.Desktop.Binding.AdaptiveBinding",
+ "Settings": [
+ {
+ "Property": "Binding",
+ "Value": "Tip"
+ }
+ ],
+ "Enable": true
+ },
+ "EraserActivationThreshold": 1.0,
+ "EraserButton": {
+ "Path": "OpenTabletDriver.Desktop.Binding.AdaptiveBinding",
+ "Settings": [
+ {
+ "Property": "Binding",
+ "Value": "Eraser"
+ }
+ ],
+ "Enable": true
+ },
+ "PenButtons": [
+ {
+ "Path": "OpenTabletDriver.Desktop.Binding.AdaptiveBinding",
+ "Settings": [
+ {
+ "Property": "Binding",
+ "Value": "Button 1"
+ }
+ ],
+ "Enable": true
+ },
+ {
+ "Path": "OpenTabletDriver.Desktop.Binding.AdaptiveBinding",
+ "Settings": [
+ {
+ "Property": "Binding",
+ "Value": "Button 2"
+ }
+ ],
+ "Enable": true
+ }
+ ],
+ "AuxButtons": [],
+ "MouseButtons": [],
+ "MouseScrollUp": null,
+ "MouseScrollDown": null,
+ "DisablePressure": false,
+ "DisableTilt": false
+ }
+ }
+ ],
+ "LockUsableAreaDisplay": true,
+ "LockUsableAreaTablet": true,
+ "Tools": []
+}
\ No newline at end of file
diff --git a/.config/alacritty.toml b/.config/alacritty.toml
new file mode 100644
index 0000000..64220ea
--- /dev/null
+++ b/.config/alacritty.toml
@@ -0,0 +1,6 @@
+[terminal]
+shell = "/bin/zsh"
+
+[window]
+startup_mode = "maximized"
+decorations = "none"
diff --git a/.config/fish/config.fish b/.config/fish/config.fish
new file mode 100644
index 0000000..d714361
--- /dev/null
+++ b/.config/fish/config.fish
@@ -0,0 +1,3 @@
+if status is-interactive
+ # Commands to run in interactive sessions can go here
+end
diff --git a/.config/fish/fish_variables b/.config/fish/fish_variables
new file mode 100644
index 0000000..ac3b6ad
--- /dev/null
+++ b/.config/fish/fish_variables
@@ -0,0 +1,39 @@
+# This file contains fish universal variable definitions.
+# VERSION: 3.0
+SETUVAR __fish_initialized:3800
+SETUVAR fish_color_autosuggestion:brblack
+SETUVAR fish_color_cancel:\x2dr
+SETUVAR fish_color_command:normal
+SETUVAR fish_color_comment:red
+SETUVAR fish_color_cwd:green
+SETUVAR fish_color_cwd_root:red
+SETUVAR fish_color_end:green
+SETUVAR fish_color_error:brred
+SETUVAR fish_color_escape:brcyan
+SETUVAR fish_color_history_current:\x2d\x2dbold
+SETUVAR fish_color_host:normal
+SETUVAR fish_color_host_remote:yellow
+SETUVAR fish_color_normal:normal
+SETUVAR fish_color_operator:brcyan
+SETUVAR fish_color_param:cyan
+SETUVAR fish_color_quote:yellow
+SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold
+SETUVAR fish_color_search_match:white\x1e\x2d\x2dbackground\x3dbrblack\x1e\x2d\x2dbold
+SETUVAR fish_color_selection:white\x1e\x2d\x2dbackground\x3dbrblack\x1e\x2d\x2dbold
+SETUVAR fish_color_status:red
+SETUVAR fish_color_user:brgreen
+SETUVAR fish_color_valid_path:\x2d\x2dunderline
+SETUVAR fish_key_bindings:fish_default_key_bindings
+SETUVAR fish_pager_color_background:\x1d
+SETUVAR fish_pager_color_completion:normal
+SETUVAR fish_pager_color_description:yellow\x1e\x2di
+SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
+SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan\x1e\x2d\x2dbold
+SETUVAR fish_pager_color_secondary_background:\x1d
+SETUVAR fish_pager_color_secondary_completion:\x1d
+SETUVAR fish_pager_color_secondary_description:\x1d
+SETUVAR fish_pager_color_secondary_prefix:\x1d
+SETUVAR fish_pager_color_selected_background:\x2dr
+SETUVAR fish_pager_color_selected_completion:\x1d
+SETUVAR fish_pager_color_selected_description:\x1d
+SETUVAR fish_pager_color_selected_prefix:\x1d
diff --git a/.config/hypr/gamemode.sh b/.config/hypr/gamemode.sh
index d52a3d1..4b579e8 100755
--- a/.config/hypr/gamemode.sh
+++ b/.config/hypr/gamemode.sh
@@ -1,7 +1,7 @@
#!/usr/bin/env sh
HYPRGAMEMODE=$(hyprctl getoption animations:enabled | awk 'NR==1{print $2}')
-if [ "$HYPRGAMEMODE" = 1 ] ; then
- hyprctl --batch "\
+if [ "$HYPRGAMEMODE" = 1 ]; then
+ hyprctl --batch "\
keyword animations:enabled 0;\
keyword animation borderangle,0; \
keyword decoration:shadow:enabled 0;\
@@ -11,11 +11,11 @@ if [ "$HYPRGAMEMODE" = 1 ] ; then
keyword general:gaps_out 0;\
keyword general:border_size 1;\
keyword decoration:rounding 0"
- hyprctl notify 1 5000 "rgb(40a02b)" "Gamemode [ON]"
- exit
+ hyprctl notify 1 5000 "rgb(40a02b)" "Gamemode [ON]"
+ exit
else
- hyprctl notify 1 5000 "rgb(d20f39)" "Gamemode [OFF]"
- hyprctl reload
- exit 0
+ hyprctl notify 1 5000 "rgb(d20f39)" "Gamemode [OFF]"
+ hyprctl reload
+ exit 0
fi
exit 1
diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf
index c31d3ed..d08b8dc 100644
--- a/.config/hypr/hyprland.conf
+++ b/.config/hypr/hyprland.conf
@@ -1,71 +1,66 @@
-# Setup monitors
-# See https://wiki.hyprland.org/Configuring/Monitors/
-monitor=DP-3, 2560x1440@165, auto, 1, bitdepth, 10
+# monitor=DP-3, 2560x1440@60, 0x0, 1, bitdepth, 10, cm, srgb
+monitor=DP-3, 2560x1440@165, 0x0, 1, bitdepth, 10, cm, srgb
+
+$terminal = kitty
+$fileManager = thunar
+$menu = rofi -show drun
+$lockingTool = hyprlock
+$screenshotTool = hyprshot --mode region --output-folder /media/hd/clouds/nextcloud-pudim/home/pictures/screenshots --freeze --silent # --filename
-exec-once = ~/.config/hypr/xdg-portal-hyprland
-exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
-exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
-exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
exec-once = waybar
-exec-once = blueman-applet
-exec-once = nm-applet --indicator
-# exec-once = steam
-# exec-once = equibop
-# exec-once = ayugram
-exec = swaybg -m fill -i ~/.config/hypr/moon-over-mondstat.jpg
-exec = swaync
-exec = wl-gammarelay
+exec-once = hyprpaper
+exec-once = gammastep -O 4000
-input {
- kb_layout = br
- kb_variant = abnt2
- kb_options = caps:swapescape
+exec-once = [workspace 1 silent] kitty
+exec-once = [workspace 2 silent] spotify
+exec-once = [workspace 3 silent] equibop
+exec-once = [workspace 4 silent] AyuGram
+exec-once = [workspace 5 silent] obsidian
+exec-once = [workspace 6 silent] keepassxc
+exec-once = [workspace 7 silent] steam
+exec-once = [workspace 8 silent] chromium --password-store=basic
- repeat_rate = 50
- repeat_delay = 300
+# windowrulev2 = workspace 1, class:(kitty)
+# windowrulev2 = workspace 2, class:(chromium|spotify)
+windowrulev2 = workspace 3 silent, class:(equibop)
+# windowrulev2 = workspace 4, class:(com.ayugram.desktop)
+# windowrulev2 = workspace 5, class:(obsidian)
+# windowrulev2 = workspace 6, class:(org.keepassxc.KeePassXC)
+windowrulev2 = workspace 7 silent, class:(steam)
+# windowrulev2 = workspace 8, class:(.*chromium)
- follow_mouse = false
-
- sensitivity = 0
-
- accel_profile = flat
-
- touchpad {
- natural_scroll = true
- }
-}
+# https://wiki.hypr.land/Configuring/Environment-variables/
+env = XCURSOR_SIZE,24
+env = HYPRCURSOR_SIZE,24
+# https://wiki.hypr.land/Configuring/Variables/#general
general {
gaps_in = 5
- # gaps_out = 20
gaps_out = 10
+
border_size = 2
- # border_size = 1
- # col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
- # col.active_border= rgb(cdd6f4)
- # col.inactive_border = rgba(595959aa)
- resize_on_border = true
+ # https://wiki.hypr.land/Configuring/Variables/#variable-types for info about colors
+ col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
+ col.inactive_border = rgba(595959aa)
- allow_tearing = true
+ # Set to true enable resizing windows by clicking and dragging on borders and gaps
+ resize_on_border = false
+
+ # Please see https://wiki.hypr.land/Configuring/Tearing/ before you turn this on
+ allow_tearing = false
layout = dwindle
}
-misc {
- disable_hyprland_logo = yes
-}
-
+# https://wiki.hypr.land/Configuring/Variables/#decoration
decoration {
- # See https://wiki.hyprland.org/Configuring/Variables/ for more
-
rounding = 10
+ rounding_power = 2
- blur {
- enabled = true
- size = 3
- passes = 1
- }
+ # Change transparency of focused and unfocused windows
+ active_opacity = 1.0
+ inactive_opacity = 1.0
shadow {
enabled = true
@@ -73,94 +68,130 @@ decoration {
render_power = 3
color = rgba(1a1a1aee)
}
+
+ # https://wiki.hypr.land/Configuring/Variables/#blur
+ blur {
+ enabled = true
+ size = 3
+ passes = 1
+
+ vibrancy = 0.1696
+ }
}
+# https://wiki.hypr.land/Configuring/Variables/#animations
animations {
enabled = yes
- # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
+ # Default curves, see https://wiki.hypr.land/Configuring/Animations/#curves
+ # NAME, X0, Y0, X1, Y1
+ 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
+ bezier = quick, 0.15, 0, 0.1, 1
- bezier = myBezier, 0.05, 0.9, 0.1, 1.05
-
- animation = windows, 1, 7, myBezier
- animation = windowsOut, 1, 7, default, popin 80%
- animation = border, 1, 10, default
- animation = fade, 1, 7, default
- animation = workspaces, 1, 6, default
+ # Default animations, see https://wiki.hypr.land/Configuring/Animations/
+ # NAME, ONOFF, SPEED, CURVE, [STYLE]
+ 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
+ animation = workspacesIn, 1, 1.21, easeOutQuint, slide
+ animation = workspacesOut, 1, 1.94, easeOutQuint, slide
+ animation = zoomFactor, 1, 7, quick
}
+# Ref https://wiki.hypr.land/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
+# windowrule = bordersize 0, floating:0, onworkspace:w[tv1]
+# windowrule = rounding 0, floating:0, onworkspace:w[tv1]
+# windowrule = bordersize 0, floating:0, onworkspace:f[1]
+# windowrule = rounding 0, floating:0, onworkspace:f[1]
+
+# See https://wiki.hypr.land/Configuring/Dwindle-Layout/ for more
dwindle {
- # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
- pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
- preserve_split = yes # you probably want this
+ 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.hypr.land/Configuring/Master-Layout/ for more
master {
- # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
- new_status = true
+ new_status = master
}
-# gestures {
-# # See https://wiki.hyprland.org/Configuring/Variables/ for more
-# workspace_swipe = true
-# workspace_swipe_min_fingers = true
-# }
-gesture = 3, horizontal, workspace
+# https://wiki.hypr.land/Configuring/Variables/#misc
+misc {
+ force_default_wallpaper = 0
+ disable_hyprland_logo = true
-binds {
- allow_workspace_cycles = true
+ vrr = 1
}
+#############
+### INPUT ###
+#############
-# Example windowrule v1
-# windowrulev2 = float, class:^(kitty)$
-# Example windowrule v2
-# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
-# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
-# rules below would make the specific app transparent
+# https://wiki.hypr.land/Configuring/Variables/#input
+input {
+ kb_layout = br
+ kb_variant = abnt2
+ # kb_options = caps:swapescape
+ numlock_by_default = true
-# previous windowrule (i have no idea why it caused issues to keep them as v1)
-# windowrulev2 = float, class:^(pavucontrol)$
-# windowrulev2 = float, class:^(nm-connection-editor)$
-# windowrulev2 = float, class:^(chromium)$
-# windowrulev2 = float, class:^(thunar)$
-# windowrulev2 = float, title:^(btop)$
-# windowrulev2 = opacity 0.95 0.6, class:^(kitty)$
-# windowrulev2 = animation popin, class:^(kitty)$, title:^(Aggiornamenti)$
-# windowrulev2 = animation popin, class:^(thunar)$
-# windowrulev2 = opacity 0.95 0.8, class:^(thunar)$
-# windowrulev2 = opacity 0.95 0.8, class:^(VSCodium)$
-# windowrulev2 = opacity 0.95 0.6, animation popin, class:^(Chromium)$
-windowrulev2 = move cursor -3% -105%, class:^(rofi)$
-windowrulev2 = noanim, class:^(rofi)$
-windowrulev2 = opacity 0.95 0.8, class:^(rofi)$
+ repeat_rate = 25
+ repeat_delay = 250
-# See https://wiki.hyprland.org/Configuring/Keywords/ for more
-$mainMod = SUPER
+ follow_mouse = 1
-# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
-bind = $mainMod, Q, exec, alacritty # Open the terminal
-bind = $mainMod, W, killactive, # Close the active window
-bind = $mainMod ALT, L, exec, swaylock # Lock the screen
-bind = $mainMod ALT, K, exec, wlogout -b 6 -T 400 -B 400 --protocol layer-shell # Show the logout window
-bind = $mainMod SHIFT, M, exit, # Exit Hyprland all together no (force quit Hyprland)
-bind = $mainMod, V, togglefloating, # Allow a window to float
-bind = $mainMod, R, exec, rofi -show drun # Show the graphicall app launcher
-bind = $mainMod, P, pseudo, # Toggle pseudo-split
-bind = $mainMod, J, togglesplit, # Toggle split
-# bind = $mainMod, S, exec, grim -g "$(slurp)" - | swappy -f -# Take a screenshot
-bind = $mainMod, S, exec, grimblast --freeze copysave area /media/hd/clouds/nextcloud-pudim/home/pictures/screenshots/$(date +%Y-%m-%d_%H-%m-%s).png - # Take a screenshot
-# bind = $mainMod SHIFT, B, exec, ~/.config/waybar/scripts/launch.sh # Reload waybar
-bind = $mainMod SHIFT, B, exec, ~/.config/waybar/scripts/reload-waybar.sh # Reload waybar
-bind = $mainMod SHIFT, N, exec, hyprctl reload # Reload waybar
+ sensitivity = 0
+
+ accel_profile = flat
+
+ touchpad {
+ natural_scroll = false
+ }
+}
+
+###################
+### KEYBINDINGS ###
+###################
+
+# See https://wiki.hypr.land/Configuring/Keywords/
+$mainMod = SUPER # Sets "Windows" key as main modifier
+
+# Example binds, see https://wiki.hypr.land/Configuring/Binds/ for more
+bind = $mainMod, Q, exec, $terminal
+bind = $mainMod, W, killactive,
+# bind = $mainMod, M, exit,
+bind = $mainMod, E, exec, $fileManager
+bind = $mainMod, V, togglefloating,
bind = $mainMod, F, fullscreen
+bind = $mainMod, R, exec, $menu
+bind = $mainMod, P, pseudo, # dwindle
+bind = $mainMod, J, togglesplit, # dwindle
+bind = $mainMod ALT, L, exec, $lockingTool
+bind = $mainMod, S, exec, $screenshotTool
-# Changing Screen Temperature with wl-gammarelay
-bind= $mainMod CTRL, 0, exec,busctl --user -- set-property rs.wl-gammarelay / rs.wl.gammarelay Temperature q 6500
-bind= $mainMod CTRL, Down, exec,busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay UpdateTemperature n -500
-bind= $mainMod CTRL, Up, exec,busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay UpdateTemperature n +500
+bind = $mainMod SHIFT, B, exec, ~/.config/waybar/scripts/reload-waybar.sh
+bind = $mainMod SHIFT, N, exec, hyprctl reload
# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
@@ -168,13 +199,12 @@ bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
-# Move focus with mainMod + VIM motions
+# Move focus with mainMod + VIM motion keys
unbind = $mainMod, J
-unbind = $mainMod, K
bind = $mainMod, h, movefocus, l
-bind = $mainMod, l, movefocus, r
bind = $mainMod, j, movefocus, d
bind = $mainMod, k, movefocus, u
+bind = $mainMod, l, movefocus, r
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
@@ -188,18 +218,9 @@ bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
-# Move active window to a workspace on the left or on the right of the current workspace
-bind = $mainMod SHIFT, right, movetoworkspace, +1
-bind = $mainMod SHIFT, left, movetoworkspace, -1
-
-unbind = $mainMod SHIFT, J
-unbind = $mainMod SHIFT, K
-bind = $mainMod SHIFT, h, movetoworkspace, -1
-bind = $mainMod SHIFT, l, movetoworkspace, +1
-
-# Switch current workspace to the workspace on the left or on the right of the current workspace
-bind = CTRL ALT, right, workspace, +1
+# Same but with CTRL + ALT + arrow keys
bind = CTRL ALT, left, workspace, -1
+bind = CTRL ALT, right, workspace, +1
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
@@ -213,21 +234,50 @@ bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
+# Move active window to the workspace on left or right with mainMod + SHIFT + arrow keys
+bind = $mainMod SHIFT, left, movetoworkspace, -1
+bind = $mainMod SHIFT, right, movetoworkspace, +1
+
+# Same but with mainMod + SHIFT + VIM motion keys
+bind = $mainMod SHIFT, h, movetoworkspace, -1
+bind = $mainMod SHIFT, l, movetoworkspace, +1
+
# Example special workspace (scratchpad)
-bind = $mainMod, S, togglespecialworkspace, magic
+bind = $mainMod ALT, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
# Scroll through existing workspaces with mainMod + scroll
-bind = $mainMod, mouse_down, workspace, +1
-bind = $mainMod, mouse_up, workspace, -1
+bind = $mainMod, mouse_down, workspace, e+1
+bind = $mainMod, mouse_up, workspace, e-1
-# Customs
-
-bind = WIN, F1, exec, ~/.config/hypr/gamemode.sh
-bind = $mainMod SHIFT, B, exec, ~/.config/waybar/scripts/launch.sh
+bind = $mainMod, F1, exec, ~/.config/hypr/gamemode.sh
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
+# 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.hypr.land/Configuring/Window-Rules/ for more
+# See https://wiki.hypr.land/Configuring/Workspace-Rules/ for workspace rules
+
+# Example windowrule
+# windowrule = float,class:^(kitty)$,title:^(kitty)$
+
+# Ignore maximize requests from apps. You'll probably like this.
windowrule = suppressevent maximize, class:.*
+
+# Fix some dragging issues with XWayland
+windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
+
+# windowrulev2 = immediate yes, class:^(steam_app_.*)$
+# windowrulev2 = immediate yes, class:^(osu!|osu-lazer)$
+# windowrulev2 = immediate yes, class:^(Minecraft|minecraft|java|org.lwjgl.glfw)$
diff --git a/.config/hypr/hyprland.conf.old b/.config/hypr/hyprland.conf.old
new file mode 100644
index 0000000..1ef2a39
--- /dev/null
+++ b/.config/hypr/hyprland.conf.old
@@ -0,0 +1,191 @@
+monitor=DP-3, 2560x1440@165, auto, auto, bitdepth, 10
+
+$terminal = alacritty
+$fileManager = thunar
+$menu = rofi -show drun -sorting-method fzf
+
+exec-once = $terminal
+exec-once = waybar
+
+env = XCURSOR_SIZE,24
+env = HYPRCURSOR_SIZE,24
+general {
+ gaps_in = 5
+ gaps_out = 20
+
+ border_size = 2
+
+ col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
+ col.inactive_border = rgba(595959aa)
+
+ resize_on_border = false
+
+ allow_tearing = false
+
+ layout = dwindle
+}
+
+decoration {
+ rounding = 10
+ rounding_power = 2
+
+ active_opacity = 1.0
+ inactive_opacity = 1.0
+
+ shadow {
+ enabled = true
+ range = 4
+ render_power = 3
+ color = rgba(1a1a1aee)
+ }
+
+ blur {
+ enabled = true
+ size = 3
+ passes = 1
+
+ vibrancy = 0.1696
+ }
+}
+
+animations {
+ enabled = yes
+
+ # Default curves, see https://wiki.hypr.land/Configuring/Animations/#curves
+ # NAME, X0, Y0, X1, Y1
+ 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
+ bezier = quick, 0.15, 0, 0.1, 1
+
+ # Default animations, see https://wiki.hypr.land/Configuring/Animations/
+ # NAME, ONOFF, SPEED, CURVE, [STYLE]
+ 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
+ animation = zoomFactor, 1, 7, quick
+}
+
+dwindle {
+ pseudotile = false
+ preserve_split = true
+}
+
+master {
+ new_status = master
+}
+
+# https://wiki.hypr.land/Configuring/Variables/#misc
+misc {
+ force_default_wallpaper = false
+ disable_hyprland_logo = true
+}
+
+
+input {
+ kb_layout = br
+ kb_variant = abnt2
+ kb_options = caps:swapescape
+
+ repeat_rate = 30
+ repeat_delay = 250
+
+ follow_mouse = 1
+
+ sensitivity = 0
+
+ accel_profile = flat
+
+ touchpad {
+ natural_scroll = false
+ }
+}
+
+$mainMod = SUPER
+
+bind = $mainMod, Q, exec, $terminal
+bind = $mainMod, W, killactive,
+# bind = $mainMod, M, exec, command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch exit
+bind = $mainMod, E, exec, $fileManager
+bind = $mainMod, V, togglefloating,
+bind = $mainMod, F, fullscreen
+bind = $mainMod, R, exec, $menu
+
+bind = $mainMod, left, movefocus, l
+bind = $mainMod, right, movefocus, r
+bind = $mainMod, up, movefocus, u
+bind = $mainMod, down, movefocus, d
+
+# Move focus with mainMod + VIM motions
+unbind = $mainMod, J
+unbind = $mainMod, K
+bind = $mainMod, h, movefocus, l
+bind = $mainMod, l, movefocus, r
+bind = $mainMod, j, movefocus, d
+bind = $mainMod, k, movefocus, u
+
+# 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 on the left or on the right of the current workspace
+bind = $mainMod SHIFT, right, movetoworkspace, +1
+bind = $mainMod SHIFT, left, movetoworkspace, -1
+
+unbind = $mainMod SHIFT, J
+unbind = $mainMod SHIFT, K
+bind = $mainMod SHIFT, h, movetoworkspace, -1
+bind = $mainMod SHIFT, l, movetoworkspace, +1
+
+# Switch current workspace to the workspace on the left or on the right of the current workspace
+bind = CTRL ALT, right, workspace, +1
+bind = CTRL ALT, left, workspace, -1
+
+# 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
+
+# Customs
+
+bind = WIN, F1, exec, ~/.config/hypr/gamemode.sh
+bind = $mainMod SHIFT, B, exec, ~/.config/waybar/scripts/reload-waybar.sh
+
+# Move/resize windows with mainMod + LMB/RMB and dragging
+bindm = $mainMod, mouse:272, movewindow
+bindm = $mainMod, mouse:273, resizewindow
+
+# Requires playerctl
+bindl = , XF86AudioNext, exec, playerctl next
+bindl = , XF86AudioPause, exec, playerctl play-pause
+bindl = , XF86AudioPlay, exec, playerctl play-pause
+bindl = , XF86AudioPrev, exec, playerctl previous
diff --git a/.config/hypr/hyprlock.conf b/.config/hypr/hyprlock.conf
new file mode 100644
index 0000000..8b61b56
--- /dev/null
+++ b/.config/hypr/hyprlock.conf
@@ -0,0 +1,140 @@
+source = /home/justin/.cache/wal/colors-hyprland.conf
+
+# BACKGROUND
+background {
+ monitor =
+ #path = screenshot
+ path = /home/justin/Pictures/wal.png
+ #color = $background
+ blur_passes = 2
+ contrast = 1
+ brightness = 0.5
+ vibrancy = 0.2
+ vibrancy_darkness = 0.2
+}
+
+# GENERAL
+general {
+ no_fade_in = true
+ no_fade_out = true
+ hide_cursor = false
+ grace = 0
+ disable_loading_bar = true
+}
+
+# INPUT FIELD
+input-field {
+ monitor =
+ size = 250, 60
+ outline_thickness = 2
+ dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
+ dots_spacing = 0.35 # Scale of dots' absolute size, 0.0 - 1.0
+ dots_center = true
+ outer_color = rgba(0, 0, 0, 0)
+ inner_color = rgba(0, 0, 0, 0.2)
+ font_color = $foreground
+ fade_on_empty = false
+ rounding = -1
+ check_color = rgb(204, 136, 34)
+ placeholder_text = Input Password...
+ hide_input = false
+ position = 0, -200
+ halign = center
+ valign = center
+}
+
+# DATE
+label {
+ monitor =
+ text = cmd[update:1000] date +"%A, %B %d"
+ color = rgba(242, 243, 244, 0.75)
+ font_size = 22
+ font_family = JetBrains Mono
+ position = 0, 300
+ halign = center
+ valign = center
+}
+
+# TIME
+label {
+ monitor =
+ text = cmd[update:1000] echo "$(date +"%-I:%M")"
+ color = rgba(242, 243, 244, 0.75)
+ font_size = 95
+ font_family = JetBrains Mono Extrabold
+ position = 0, 200
+ halign = center
+ valign = center
+}
+
+
+
+# Profile Picture
+image {
+ monitor =
+ path = /home/justin/Pictures/profile_pictures/justin_square.png
+ size = 100
+ border_size = 2
+ border_color = $foreground
+ position = 0, -100
+ halign = center
+ valign = center
+}
+
+# Desktop Environment
+image {
+ monitor =
+ path = /home/justin/Pictures/profile_pictures/hypr.png
+ size = 75
+ border_size = 2
+ border_color = $foreground
+ position = -50, 50
+ halign = right
+ valign = bottom
+}
+
+# CURRENT SONG
+label {
+ monitor =
+ text = cmd[update:1000] echo "$(/home/justin/Documents/Scripts/whatsong.sh)"
+ color = $foreground
+ #color = rgba(255, 255, 255, 0.6)
+ font_size = 18
+ font_family = Metropolis Light, Font Awesome 6 Free Solid
+ position = 0, 50
+ halign = center
+ valign = bottom
+}
+
+label {
+ monitor =
+ text = cmd[update:1000] echo "$(/home/justin/Documents/Scripts/whoami.sh)"
+ color = $foreground
+ font_size = 14
+ font_family = JetBrains Mono
+ position = 0, -10
+ halign = center
+ valign = top
+}
+
+label {
+ monitor =
+ text = cmd[update:1000] echo "$(/home/justin/Documents/Scripts/battery.sh)"
+ color = $foreground
+ font_size = 24
+ font_family = JetBrains Mono
+ position = -90, -10
+ halign = right
+ valign = top
+}
+
+label {
+ monitor =
+ text = cmd[update:1000] echo "$(/home/justin/Documents/Scripts/network-status.sh)"
+ color = $foreground
+ font_size = 24
+ font_family = JetBrains Mono
+ position = -20, -10
+ halign = right
+ valign = top
+}
diff --git a/.config/hypr/hyprpaper.conf b/.config/hypr/hyprpaper.conf
new file mode 100644
index 0000000..4b4fb1e
--- /dev/null
+++ b/.config/hypr/hyprpaper.conf
@@ -0,0 +1,12 @@
+$wallpapersFolderPath = /media/hd/clouds/nextcloud-pudim/home/pictures/wallpapers
+$yourNameWallpaper = $wallpapersFolderPath/fjhlur2tvml31.png
+$snorlaxWallpaperPath = $wallpapersFolderPath/PKMNCC_PlayRoom.png
+$viperWallpaperPath = $wallpapersFolderPath/viper wp 2 darker.png
+$foolWallpaperPath = $wallpapersFolderPath/wallpapersden.com_a-fool-moon-night-space-traveler-art_1920x1080.jpg
+
+$wallpaper = $foolWallpaperPath
+
+wallpaper {
+ preload = $wallpaper
+ wallpaper = DP-3, $wallpaper
+}
diff --git a/.config/kitty/kitty.conf b/.config/kitty/kitty.conf
new file mode 100644
index 0000000..2308443
--- /dev/null
+++ b/.config/kitty/kitty.conf
@@ -0,0 +1,14 @@
+include ./mocha.conf
+font_family fira code font
+font_size 15
+bold_font auto
+italic_font auto
+bold_italic_font auto
+mouse_hide_wait 2.0
+cursor_shape block
+url_color #0087bd
+url_style dotted
+#Close the terminal without confirmation
+confirm_os_window_close 0
+#background_opacity 0.3
+#background_blur 0
diff --git a/.config/kitty/mocha.conf b/.config/kitty/mocha.conf
new file mode 100644
index 0000000..706d0e6
--- /dev/null
+++ b/.config/kitty/mocha.conf
@@ -0,0 +1,80 @@
+# vim:ft=kitty
+
+## name: Catppuccin-Mocha
+## author: Pocco81 (https://github.com/Pocco81)
+## license: MIT
+## upstream: https://github.com/catppuccin/kitty/blob/main/mocha.conf
+## blurb: Soothing pastel theme for the high-spirited!
+
+
+
+# The basic colors commented values for blur
+#foreground #CDD6F4
+#background #1E1E2E
+#selection_foreground #1E1E2E
+#selection_background #F5E0DC
+
+# Cursor colors
+cursor #F5E0DC
+cursor_text_color #1E1E2E
+
+# URL underline color when hovering with mouse
+url_color #F5E0DC
+
+# Kitty window border colors
+active_border_color #B4BEFE
+inactive_border_color #6C7086
+bell_border_color #F9E2AF
+
+# OS Window titlebar colors
+wayland_titlebar_color system
+macos_titlebar_color system
+
+# Tab bar colors
+# active_tab_foreground #11111B
+# active_tab_background #CBA6F7
+# inactive_tab_foreground #CDD6F4
+# inactive_tab_background #181825
+# tab_bar_background #11111B
+
+# Colors for marks (marked text in the terminal)
+# mark1_foreground #1E1E2E
+# mark1_background #B4BEFE
+# mark2_foreground #1E1E2E
+# mark2_background #CBA6F7
+# mark3_foreground #1E1E2E
+# mark3_background #74C7EC
+
+# The 16 terminal colors
+
+# black
+color0 #45475A
+color8 #585B70
+
+# red
+color1 #F38BA8
+color9 #F38BA8
+
+# green
+color2 #A6E3A1
+color10 #A6E3A1
+
+# yellow
+color3 #F9E2AF
+color11 #F9E2AF
+
+# blue
+color4 #89B4FA
+color12 #89B4FA
+
+# magenta
+color5 #F5C2E7
+color13 #F5C2E7
+
+# cyan
+color6 #94E2D5
+color14 #94E2D5
+
+# white
+color7 #BAC2DE
+color15 #A6ADC8
diff --git a/.config/nvim/.gitignore b/.config/nvim/.gitignore
new file mode 100644
index 0000000..cc5457a
--- /dev/null
+++ b/.config/nvim/.gitignore
@@ -0,0 +1,8 @@
+tt.*
+.tests
+doc/tags
+debug
+.repro
+foo.*
+*.log
+data
diff --git a/.config/nvim/.neoconf.json b/.config/nvim/.neoconf.json
new file mode 100644
index 0000000..7c48087
--- /dev/null
+++ b/.config/nvim/.neoconf.json
@@ -0,0 +1,15 @@
+{
+ "neodev": {
+ "library": {
+ "enabled": true,
+ "plugins": true
+ }
+ },
+ "neoconf": {
+ "plugins": {
+ "lua_ls": {
+ "enabled": true
+ }
+ }
+ }
+}
diff --git a/.config/nvim/LICENSE b/.config/nvim/LICENSE
new file mode 100644
index 0000000..261eeb9
--- /dev/null
+++ b/.config/nvim/LICENSE
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/.config/nvim/README.md b/.config/nvim/README.md
new file mode 100644
index 0000000..185280b
--- /dev/null
+++ b/.config/nvim/README.md
@@ -0,0 +1,4 @@
+# đ€ LazyVim
+
+A starter template for [LazyVim](https://github.com/LazyVim/LazyVim).
+Refer to the [documentation](https://lazyvim.github.io/installation) to get started.
diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua
new file mode 100644
index 0000000..2514f9e
--- /dev/null
+++ b/.config/nvim/init.lua
@@ -0,0 +1,2 @@
+-- bootstrap lazy.nvim, LazyVim and your plugins
+require("config.lazy")
diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json
new file mode 100644
index 0000000..91ec7e2
--- /dev/null
+++ b/.config/nvim/lazy-lock.json
@@ -0,0 +1,37 @@
+{
+ "LazyVim": { "branch": "main", "commit": "28db03f958d58dfff3c647ce28fdc1cb88ac158d" },
+ "blink.cmp": { "branch": "main", "commit": "b19413d214068f316c78978b08264ed1c41830ec" },
+ "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
+ "catppuccin": { "branch": "main", "commit": "ce8d176faa4643e026e597ae3c31db59b63cef09" },
+ "conform.nvim": { "branch": "master", "commit": "5420c4b5ea0aeb99c09cfbd4fd0b70d257b44f25" },
+ "cord.nvim": { "branch": "master", "commit": "7483e9ce335d22a9e52f83804134d621094b5fe7" },
+ "flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" },
+ "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
+ "fzf-lua": { "branch": "main", "commit": "b1d2b0dc146cb9260209da4d7ab754adb0a2653d" },
+ "gitsigns.nvim": { "branch": "main", "commit": "5813e4878748805f1518cee7abb50fd7205a3a48" },
+ "grug-far.nvim": { "branch": "main", "commit": "74eef260e1142264ab994fb9c88e4f420e9486d7" },
+ "lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
+ "lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" },
+ "lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" },
+ "mason-lspconfig.nvim": { "branch": "main", "commit": "9f9c67795d0795a6e8612f5a899ca64a074a1076" },
+ "mason.nvim": { "branch": "main", "commit": "57e5a8addb8c71fb063ee4acda466c7cf6ad2800" },
+ "mini.ai": { "branch": "main", "commit": "bfb26d9072670c3aaefab0f53024b2f3729c8083" },
+ "mini.icons": { "branch": "main", "commit": "ff2e4f1d29f659cc2bad0f9256f2f6195c6b2428" },
+ "mini.pairs": { "branch": "main", "commit": "d5a29b6254dad07757832db505ea5aeab9aad43a" },
+ "neo-tree.nvim": { "branch": "main", "commit": "b0b73273b4f5a1f4b4aac8accd6e0c3b4b5a6967" },
+ "noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" },
+ "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
+ "nvim-lint": { "branch": "master", "commit": "1f19dacd945a7b1a57f29f32b2d7168384df3d36" },
+ "nvim-lspconfig": { "branch": "master", "commit": "8973916a3d015d65a8c4614e141f4270a713cf33" },
+ "nvim-treesitter": { "branch": "main", "commit": "6e42d823ce0a5a76180c473c119c7677738a09d1" },
+ "nvim-treesitter-textobjects": { "branch": "main", "commit": "f7122acf1bd2c9e4626651ad33bf5944be9d9392" },
+ "nvim-ts-autotag": { "branch": "main", "commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc" },
+ "persistence.nvim": { "branch": "main", "commit": "b20b2a7887bd39c1a356980b45e03250f3dce49c" },
+ "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
+ "snacks.nvim": { "branch": "main", "commit": "fe7cfe9800a182274d0f868a74b7263b8c0c020b" },
+ "todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" },
+ "tokyonight.nvim": { "branch": "main", "commit": "5da1b76e64daf4c5d410f06bcb6b9cb640da7dfd" },
+ "trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" },
+ "ts-comments.nvim": { "branch": "main", "commit": "123a9fb12e7229342f807ec9e6de478b1102b041" },
+ "which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
+}
diff --git a/.config/nvim/lazyvim.json b/.config/nvim/lazyvim.json
new file mode 100644
index 0000000..3ccd6a7
--- /dev/null
+++ b/.config/nvim/lazyvim.json
@@ -0,0 +1,10 @@
+{
+ "extras": [
+
+ ],
+ "install_version": 7,
+ "news": {
+ "NEWS.md": "11866"
+ },
+ "version": 8
+}
\ No newline at end of file
diff --git a/.config/nvim/lua/config/autocmds.lua b/.config/nvim/lua/config/autocmds.lua
new file mode 100644
index 0000000..4221e75
--- /dev/null
+++ b/.config/nvim/lua/config/autocmds.lua
@@ -0,0 +1,8 @@
+-- Autocmds are automatically loaded on the VeryLazy event
+-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
+--
+-- Add any additional autocmds here
+-- with `vim.api.nvim_create_autocmd`
+--
+-- Or remove existing autocmds by their group name (which is prefixed with `lazyvim_` for the defaults)
+-- e.g. vim.api.nvim_del_augroup_by_name("lazyvim_wrap_spell")
diff --git a/.config/nvim/lua/config/keymaps.lua b/.config/nvim/lua/config/keymaps.lua
new file mode 100644
index 0000000..2c134f7
--- /dev/null
+++ b/.config/nvim/lua/config/keymaps.lua
@@ -0,0 +1,3 @@
+-- Keymaps are automatically loaded on the VeryLazy event
+-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
+-- Add any additional keymaps here
diff --git a/.config/nvim/lua/config/lazy.lua b/.config/nvim/lua/config/lazy.lua
new file mode 100644
index 0000000..d73bfa1
--- /dev/null
+++ b/.config/nvim/lua/config/lazy.lua
@@ -0,0 +1,53 @@
+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)
+
+require("lazy").setup({
+ spec = {
+ -- add LazyVim and import its plugins
+ { "LazyVim/LazyVim", import = "lazyvim.plugins" },
+ -- import/override with your plugins
+ { import = "plugins" },
+ },
+ defaults = {
+ -- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
+ -- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
+ lazy = false,
+ -- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
+ -- have outdated releases, which may break your Neovim install.
+ version = false, -- always use the latest git commit
+ -- version = "*", -- try installing the latest stable version for plugins that support semver
+ },
+ install = { colorscheme = { "tokyonight", "habamax" } },
+ checker = {
+ enabled = true, -- check for plugin updates periodically
+ notify = false, -- notify on update
+ }, -- automatically check for plugin updates
+ performance = {
+ rtp = {
+ -- disable some rtp plugins
+ disabled_plugins = {
+ "gzip",
+ -- "matchit",
+ -- "matchparen",
+ -- "netrwPlugin",
+ "tarPlugin",
+ "tohtml",
+ "tutor",
+ "zipPlugin",
+ },
+ },
+ },
+})
diff --git a/.config/nvim/lua/config/options.lua b/.config/nvim/lua/config/options.lua
new file mode 100644
index 0000000..9cc496a
--- /dev/null
+++ b/.config/nvim/lua/config/options.lua
@@ -0,0 +1,5 @@
+-- Options are automatically loaded before lazy.nvim startup
+-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
+-- Add any additional options here
+
+vim.g.snacks_animate = false
diff --git a/.config/nvim/lua/plugins/cord.lua b/.config/nvim/lua/plugins/cord.lua
new file mode 100644
index 0000000..4d209c7
--- /dev/null
+++ b/.config/nvim/lua/plugins/cord.lua
@@ -0,0 +1,14 @@
+return {
+ {
+ "vyfor/cord.nvim",
+ build = ":Cord update",
+ opts = {
+ -- log_level = "trace",
+ text = {
+ editing = function(opts)
+ return string.format("Editing %s", opts.filename, opts.cursor_line, opts.cursor_char)
+ end,
+ },
+ },
+ },
+}
diff --git a/.config/nvim/lua/plugins/example.lua b/.config/nvim/lua/plugins/example.lua
new file mode 100644
index 0000000..17f53d6
--- /dev/null
+++ b/.config/nvim/lua/plugins/example.lua
@@ -0,0 +1,197 @@
+-- since this is just an example spec, don't actually load anything here and return an empty spec
+-- stylua: ignore
+if true then return {} end
+
+-- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim
+--
+-- In your plugin files, you can:
+-- * add extra plugins
+-- * disable/enabled LazyVim plugins
+-- * override the configuration of LazyVim plugins
+return {
+ -- add gruvbox
+ { "ellisonleao/gruvbox.nvim" },
+
+ -- Configure LazyVim to load gruvbox
+ {
+ "LazyVim/LazyVim",
+ opts = {
+ colorscheme = "gruvbox",
+ },
+ },
+
+ -- change trouble config
+ {
+ "folke/trouble.nvim",
+ -- opts will be merged with the parent spec
+ opts = { use_diagnostic_signs = true },
+ },
+
+ -- disable trouble
+ { "folke/trouble.nvim", enabled = false },
+
+ -- override nvim-cmp and add cmp-emoji
+ {
+ "hrsh7th/nvim-cmp",
+ dependencies = { "hrsh7th/cmp-emoji" },
+ ---@param opts cmp.ConfigSchema
+ opts = function(_, opts)
+ table.insert(opts.sources, { name = "emoji" })
+ end,
+ },
+
+ -- change some telescope options and a keymap to browse plugin files
+ {
+ "nvim-telescope/telescope.nvim",
+ keys = {
+ -- add a keymap to browse plugin files
+ -- stylua: ignore
+ {
+ "fp",
+ function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end,
+ desc = "Find Plugin File",
+ },
+ },
+ -- change some options
+ opts = {
+ defaults = {
+ layout_strategy = "horizontal",
+ layout_config = { prompt_position = "top" },
+ sorting_strategy = "ascending",
+ winblend = 0,
+ },
+ },
+ },
+
+ -- add pyright to lspconfig
+ {
+ "neovim/nvim-lspconfig",
+ ---@class PluginLspOpts
+ opts = {
+ ---@type lspconfig.options
+ servers = {
+ -- pyright will be automatically installed with mason and loaded with lspconfig
+ pyright = {},
+ },
+ },
+ },
+
+ -- add tsserver and setup with typescript.nvim instead of lspconfig
+ {
+ "neovim/nvim-lspconfig",
+ dependencies = {
+ "jose-elias-alvarez/typescript.nvim",
+ init = function()
+ require("lazyvim.util").lsp.on_attach(function(_, buffer)
+ -- stylua: ignore
+ vim.keymap.set( "n", "co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" })
+ vim.keymap.set("n", "cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer })
+ end)
+ end,
+ },
+ ---@class PluginLspOpts
+ opts = {
+ ---@type lspconfig.options
+ servers = {
+ -- tsserver will be automatically installed with mason and loaded with lspconfig
+ tsserver = {},
+ },
+ -- you can do any additional lsp server setup here
+ -- return true if you don't want this server to be setup with lspconfig
+ ---@type table
+ setup = {
+ -- example to setup with typescript.nvim
+ tsserver = function(_, opts)
+ require("typescript").setup({ server = opts })
+ return true
+ end,
+ -- Specify * to use this function as a fallback for any server
+ -- ["*"] = function(server, opts) end,
+ },
+ },
+ },
+
+ -- for typescript, LazyVim also includes extra specs to properly setup lspconfig,
+ -- treesitter, mason and typescript.nvim. So instead of the above, you can use:
+ { import = "lazyvim.plugins.extras.lang.typescript" },
+
+ -- add more treesitter parsers
+ {
+ "nvim-treesitter/nvim-treesitter",
+ opts = {
+ ensure_installed = {
+ "bash",
+ "html",
+ "javascript",
+ "json",
+ "lua",
+ "markdown",
+ "markdown_inline",
+ "python",
+ "query",
+ "regex",
+ "tsx",
+ "typescript",
+ "vim",
+ "yaml",
+ },
+ },
+ },
+
+ -- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above
+ -- would overwrite `ensure_installed` with the new value.
+ -- If you'd rather extend the default config, use the code below instead:
+ {
+ "nvim-treesitter/nvim-treesitter",
+ opts = function(_, opts)
+ -- add tsx and treesitter
+ vim.list_extend(opts.ensure_installed, {
+ "tsx",
+ "typescript",
+ })
+ end,
+ },
+
+ -- the opts function can also be used to change the default opts:
+ {
+ "nvim-lualine/lualine.nvim",
+ event = "VeryLazy",
+ opts = function(_, opts)
+ table.insert(opts.sections.lualine_x, {
+ function()
+ return "đ"
+ end,
+ })
+ end,
+ },
+
+ -- or you can return new options to override all the defaults
+ {
+ "nvim-lualine/lualine.nvim",
+ event = "VeryLazy",
+ opts = function()
+ return {
+ --[[add your custom lualine config here]]
+ }
+ end,
+ },
+
+ -- use mini.starter instead of alpha
+ { import = "lazyvim.plugins.extras.ui.mini-starter" },
+
+ -- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc
+ { import = "lazyvim.plugins.extras.lang.json" },
+
+ -- add any tools you want to have installed below
+ {
+ "williamboman/mason.nvim",
+ opts = {
+ ensure_installed = {
+ "stylua",
+ "shellcheck",
+ "shfmt",
+ "flake8",
+ },
+ },
+ },
+}
diff --git a/.config/nvim/lua/plugins/mason.lua b/.config/nvim/lua/plugins/mason.lua
new file mode 100644
index 0000000..cb116f7
--- /dev/null
+++ b/.config/nvim/lua/plugins/mason.lua
@@ -0,0 +1,15 @@
+return {
+ "mason-org/mason.nvim",
+ opts = {
+ opts_extend = { "ensure_installed" },
+ ensure_installed = {
+ "lua-language-server",
+ "bash-language-server",
+ "shellcheck",
+ "shfmt",
+ "stylua",
+ "groovy-language-server",
+ "npm-groovy-lint",
+ },
+ },
+}
diff --git a/.config/nvim/lua/plugins/neotree.lua b/.config/nvim/lua/plugins/neotree.lua
new file mode 100644
index 0000000..6959f04
--- /dev/null
+++ b/.config/nvim/lua/plugins/neotree.lua
@@ -0,0 +1,21 @@
+return {
+ {
+ "nvim-neo-tree/neo-tree.nvim",
+ opts = {
+ filesystem = {
+ filtered_items = {
+ visible = true,
+ show_hidden_count = true,
+ hide_dotfiles = false,
+ hide_gitignored = true,
+ hide_by_name = {
+ -- '.git',
+ -- '.DS_Store',
+ -- 'thumbs.db',
+ },
+ never_show = {},
+ },
+ },
+ },
+ },
+}
diff --git a/.config/nvim/lua/plugins/noice.lua b/.config/nvim/lua/plugins/noice.lua
new file mode 100644
index 0000000..919ae86
--- /dev/null
+++ b/.config/nvim/lua/plugins/noice.lua
@@ -0,0 +1,11 @@
+return {
+ {
+ "folke/noice.nvim",
+ opts = {
+ cmdline = {
+ enabled = true,
+ view = "cmdline",
+ },
+ },
+ },
+}
diff --git a/.config/nvim/lua/plugins/snacks.lua b/.config/nvim/lua/plugins/snacks.lua
new file mode 100644
index 0000000..bbca05c
--- /dev/null
+++ b/.config/nvim/lua/plugins/snacks.lua
@@ -0,0 +1,18 @@
+return {
+ "folke/snacks.nvim",
+ opts = {
+ bigfile = {},
+ picker = {
+ sources = {
+ files = {
+ hidden = true,
+ ignored = false,
+ },
+ grep = {
+ hidden = true,
+ ignored = false,
+ },
+ },
+ },
+ },
+}
diff --git a/.config/nvim/lua/plugins/which-key.lua b/.config/nvim/lua/plugins/which-key.lua
new file mode 100644
index 0000000..c5a571a
--- /dev/null
+++ b/.config/nvim/lua/plugins/which-key.lua
@@ -0,0 +1,9 @@
+return {
+ "folke/which-key.nvim",
+ event = "VeryLazy",
+ opts = {
+ delay = function(ctx)
+ return ctx.plugin and 0 or 5
+ end,
+ },
+}
diff --git a/.config/nvim/stylua.toml b/.config/nvim/stylua.toml
new file mode 100644
index 0000000..5d6c50d
--- /dev/null
+++ b/.config/nvim/stylua.toml
@@ -0,0 +1,3 @@
+indent_type = "Spaces"
+indent_width = 2
+column_width = 120
\ No newline at end of file
diff --git a/.config/scopebuddy/AppID/1384160.conf b/.config/scopebuddy/AppID/1384160.conf
new file mode 100644
index 0000000..f85d10c
--- /dev/null
+++ b/.config/scopebuddy/AppID/1384160.conf
@@ -0,0 +1,5 @@
+# guilty gear strive
+# SCB_GAMESCOPE_ARGS="-f -w 1920 -h 1080 -W 2560 -H 1440 -r 165 --adaptive-sync --force-grab-cursor"
+# SCB_GAMESCOPE_ARGS="-f -w 1920 -h 1080 -W 2560 -H 1440 -r 165 --adaptive-sync"
+# SCB_GAMESCOPE_ARGS="-f -w 1920 -h 1080 -W 2560 -H 1440 -r 165 --adaptive-sync"
+# SCB_GAMESCOPE_ARGS+="-r 60 "
diff --git a/.config/scopebuddy/AppID/2357570.conf b/.config/scopebuddy/AppID/2357570.conf
new file mode 100644
index 0000000..181fc87
--- /dev/null
+++ b/.config/scopebuddy/AppID/2357570.conf
@@ -0,0 +1,4 @@
+# overwatch 2
+# SCB_GAMESCOPE_ARGS+="--filter fsr --fsr-sharpness 20"
+# SCB_GAMESCOPE_ARGS+="--force-grab-cursor"
+# SCB_GAMESCOPE_ARGS="-f -w 1920 -h 1080 -W 2560 -H 1440 --filter fsr --fsr-sharpness 20 -r 165"
diff --git a/.config/scopebuddy/AppID/381210.conf b/.config/scopebuddy/AppID/381210.conf
new file mode 100644
index 0000000..d2bdd0a
--- /dev/null
+++ b/.config/scopebuddy/AppID/381210.conf
@@ -0,0 +1,2 @@
+# dead by daylight
+# SCB_GAMESCOPE_ARGS+="--filter fsr --fsr-sharpness 20"
diff --git a/.config/scopebuddy/noscope.conf b/.config/scopebuddy/noscope.conf
new file mode 100644
index 0000000..f182123
--- /dev/null
+++ b/.config/scopebuddy/noscope.conf
@@ -0,0 +1,35 @@
+# This is the config file that let's you assign defaults for gamescope when using the scopebuddy script
+# lines starting with # are ignored
+# Conf files matching the games Steam AppID stored in ~/.conf/scopebuddy/AppID/ will be sourced after
+# ~/.config/scopebuddy/scb.conf or whichever file you specify with SCB_CONF=someotherfile.conf env var in the launch options.
+#
+# Example for always exporting specific environment variables for gamescope
+#export XKB_DEFAULT_LAYOUT=no
+#export MANGOHUD_CONFIG=preset=2
+#
+# Example for providing default gamescope arguments through scopebuddy if no arguments are given to the scopebuddy script, this does not need to be exported.
+# To not use this default set of arguments, just launch scb with SCB_NOSCOPE=1 or just add any gamescope argument before the '-- %command%' then this variable will be ignored
+#SCB_GAMESCOPE_ARGS="--mangoapp -f -w 2560 -h 1440 -W 2560 -H 1440 -r 180 --force-grab-cursor --hdr-enabled -e"
+#
+# To auto-detect display width, height, refresh, VRR and HDR states, you can use SCB_AUTO_* {RES|HDR|VRR}
+# These vars will override any previously set values for -W and -H or append --hdr-enabled and --adaptive-sync
+# automatically depending on the current settings for your active display, or the display chosen with -O /
+# --prefer-output flags in gamescope. This works on both KDE (via kscreen-doctor) and GNOME (via gdctl).
+#SCB_AUTO_RES=1
+#SCB_AUTO_HDR=1
+#SCB_AUTO_VRR=1
+# For GNOME users: you can use either gdctl or gnome-randr for auto-detection
+# gdctl requires upstream version with --format=json support (will be tested automatically)
+# gnome-randr will be used as fallback if gdctl test fails
+# To specify a custom gdctl build (must support 'gdctl show --format=json'):
+#export GDCTL_COMMAND="$HOME/.local/bin/gdctl-mr4708"
+# To debug scopebuddy output, uncomment the following line. After launching games, the executed cmd will be output to ~/.config/scopebuddy/scopebuddy.log
+#SCB_DEBUG=1
+###
+## FOR ADVANCED USE INSIDE AN APPID CONFIG
+###
+# The config files are treated as a bash script by scopebuddy, this means you can use bash to do simple tasks before the game runs
+# or you can check which mode scopebuddy is running in and apply settings accordingly, below are some handy variables for scripting.
+# $SCB_NOSCOPE will be set to 1 if we are running in no gamescope mode
+# $SCB_GAMEMODE will be set to 1 if we are running inside steam gamemode (which means SCB_NOSCOPE will also be set to 1 due to nested gamescope not working in gamemode)
+# $command will contain everything steam expanded %command% into
diff --git a/.config/scopebuddy/scb.conf b/.config/scopebuddy/scb.conf
new file mode 100644
index 0000000..902b703
--- /dev/null
+++ b/.config/scopebuddy/scb.conf
@@ -0,0 +1,11 @@
+# export SCB_AUTO_VRR=1
+# export WINE_FULLSCREEN_FSR=1 # GloriousEggroll/proton-ge-custom
+# export PROTON_ENABLE_WAYLAND=1
+# export ENABLE_GAMESCOPE_WSI=0
+# export GAMESCOPE_DISABLE_ASYNC_FLIPS=0
+# export XDG_DEFAULT_LAYOUT=no
+export SCB_GAMEMODE=1
+
+# SCB_GAMESCOPE_ARGS="-f -w 1920 -h 1080 -W 2560 -H 1440 -F fsr --fsr-sharpness 5 -r 165 "
+# SCB_GAMESCOPE_ARGS="-f -w 2560 -h 1440 -r 165 --mangoapp "
+# SCB_GAMESCOPE_ARGS="-w 1920 -h 1080 -W 2560 -H 1440 "
diff --git a/.config/waybar/modules.jsonc b/.config/waybar/modules.jsonc
index 7357abc..759da28 100644
--- a/.config/waybar/modules.jsonc
+++ b/.config/waybar/modules.jsonc
@@ -5,7 +5,7 @@
"(.*) - Chromium": "ïš $1",
"(.*) - Discord": "ï $1",
"(.*) - Thunar": "îȘ $1",
- "Alacritty": "î Alacritty",
+ "class": "î Terminal",
"AyuGram": "ï Telegram",
"Steam": "ï¶ Steam",
"WhatsDesk": "ïČ WhatsDesk",
@@ -27,8 +27,8 @@
},
"window-rewrite": {
"WhatsDesk": "ïČ ",
- "class": "î ",
- "class": "ïš ",
+ "class": "î ",
+ "class<.*chromium>": "ïš ",
"class": "ï ",
"class": "ï ",
"class": "ïż ",
@@ -39,6 +39,7 @@
"class": "ï¶ ",
"class": "ïŒ ",
"class": "ó° ",
+ "class": "ó° ",
"title": "ó° ",
"title<.*YouTube Music>": "ï ",
"title<.*YouTube>": "ï
Ș ",
diff --git a/.config/waybar/style.css b/.config/waybar/style.css
index 36ddc52..8f7d979 100644
--- a/.config/waybar/style.css
+++ b/.config/waybar/style.css
@@ -119,7 +119,7 @@ window#waybar.empty #window {
#clock {
border-radius: 18px;
color: #fab387;
- margin-right: 10px;
+ margin-right: 5px;
}
/* RIGHT MODULES */
@@ -150,6 +150,6 @@ window#waybar.empty #window {
}
#custom-swaync {
- border-radius: 0px 18px 18px 0px;
+ border-radius: 18px;
margin-right: 5px;
}
diff --git a/alacritty.toml b/alacritty.toml
new file mode 120000
index 0000000..bcc4d11
--- /dev/null
+++ b/alacritty.toml
@@ -0,0 +1 @@
+.config/alacritty.toml
\ No newline at end of file