Compare commits

...

29 Commits

Author SHA1 Message Date
b80cd3136b update nvim and hypr conf 2026-06-22 13:33:12 +02:00
04d720f6c8 only smart-nav on gentoo, and not on other systems, same with tmux navigation 2026-06-19 00:37:46 +02:00
9d0e106178 dont use cmd+enter for fullscreen in ghostty, add unified vim + hyprland navigation 2026-06-18 10:16:47 +02:00
Zam Kokott
5984d43664 update nvim 2026-06-05 10:51:12 +00:00
Zam Kokott
52369a36f5 delete fish 2026-06-05 10:18:46 +00:00
8e50bb2f46 Update some hypr config 2026-06-05 09:33:13 +02:00
Zam Kokott
451230051b Update .config/ghostty/config 2026-05-29 17:39:03 +02:00
eeb6d02462 Removed old .conf style 2026-05-17 15:16:15 +02:00
12e3fd6b74 update hyprland 2026-05-17 01:49:44 +02:00
84f687e9f1 Change to lua style for hyprland 2026-05-12 23:16:21 +02:00
66ed635dba python stuff 2026-05-04 23:40:16 +02:00
Zam Kokott
760dd789f2 Update .zshrc 2026-05-04 13:06:35 +02:00
Zam Kokott
fd222d8bfb Update .config/ghostty/config 2026-05-04 12:44:25 +02:00
Zam Kokott
2a37f5e7eb Update .zshrc 2026-05-04 10:42:16 +02:00
Zam Kokott
d4ba5ef449 Update .config/ghostty/config 2026-05-04 10:42:04 +02:00
Zam Kokott
b1b58b070d Update .config/ghostty/config 2026-05-04 10:41:18 +02:00
Zam Kokott
a22ace4d30 Update .config/ghostty/config 2026-05-04 10:41:03 +02:00
Zam Kokott
cbaff88903 Update .config/ghostty/config 2026-05-04 10:40:35 +02:00
Zam Kokott
def372f8b8 Change attributes of .config/ghostty/config 2026-05-04 10:36:57 +02:00
Zam Kokott
1fb5a934ca add chezmoiignore and remove fish config 2026-05-04 10:35:24 +02:00
Zam Kokott
b47ca1487f Update .zshrc 2026-05-04 10:23:19 +02:00
Zam Kokott
53d4c09803 zshrc template 2026-05-04 10:18:18 +02:00
Zam Kokott
7237aacc2b Update .zshrc 2026-05-04 10:13:39 +02:00
Zam Kokott
c4d7ac3103 Update .zshrc 2026-05-04 10:11:12 +02:00
Zam Kokott
bcf2cd8c9e Update .zshrc 2026-05-04 10:09:59 +02:00
Zam Kokott
eab9bdfe94 Update .zshrc 2026-05-04 10:06:34 +02:00
Zam Kokott
21d2e9b2de Change attributes of .zshrc 2026-05-04 10:01:12 +02:00
31ee269cab nvim 2026-04-29 17:57:20 +02:00
d0f14ed4a1 pyproject dependent linters 2026-04-28 17:07:18 +02:00
39 changed files with 957 additions and 1029 deletions

8
.chezmoiignore Normal file
View File

@@ -0,0 +1,8 @@
README.md
{{- if ne .chezmoi.hostname "gentoo" }}
.wallpaper
.config/dunst
.config/fuzzel
.config/hypr
.config/waybar
{{ end }}

View File

@@ -45,9 +45,9 @@ set -U fish_complete_path $fish_complete_path /nix/var/nix/profiles/default/shar
set -Ux EDITOR nvim
set -U fish_history_max 1000
{{ if eq .chezmoi.hostname "ubuntu" }}
fish_add_path /opt/nvim-linux-x86_64/bin
{{ end }}
{{ if eq .chezmoi.hostname "ubuntu" -}}
fish_add_path /opt/nvim-linux-x86_64/bin ~/.cargo/bin/
{{- end }}
alias vim='nvim'
alias cd='z'
@@ -60,4 +60,3 @@ chezmoi completion fish | source
direnv hook fish | source
zoxide init fish | source
starship init fish | source
chezmoi completion fish | source

View File

@@ -1,13 +1,17 @@
# Auto generated by chezmoi
theme = Catppuccin Mocha
font-feature=-calt
font-feature=-liga
font-feature=-dlig
{{ if eq .chezmoi.hostname "gentoo" }}
font-family = Hack Nerd Font Mono
background-opacity=0.75
background-opacity-cells = true
background-blur=true
{{ end }}
shell-integration-features = ssh-terminfo,ssh-env
@@ -21,9 +25,13 @@ keybind = cmd+opt+left=unbind
keybind = cmd+opt+right=unbind
keybind = alt+left=unbind
keybind = alt+right=unbind
keybind = ctrl+enter=ignore
keybind = ctrl+v=paste_from_clipboard
clipboard-paste-protection = false
clipboard-paste-bracketed-safe = true
window-padding-x = 0
window-padding-y = 0
window-padding-balance = true
@@ -31,3 +39,8 @@ window-padding-color = extend-always
window-vsync = false
shell-integration = zsh
{{ if eq .chezmoi.os "darwin" }}
macos-option-as-alt = left
macos-titlebar-style = transparent
{{ end }}

View File

@@ -0,0 +1,11 @@
hl.on("hyprland.start", function()
hl.exec_cmd("awww-daemon")
hl.exec_cmd("awww restore")
-- hl.exec_cmd("awww img ~/.wallpaper/cat.gif -o " .. SECONDARY_DISPLAY)
-- hl.exec_cmd("awww img ~/.wallpaper/train_station.gif -o " .. MAIN_DISPLAY)
hl.exec_cmd("gentoo-pipewire-launcher")
hl.exec_cmd("/usr/libexec/hyprpolkitagent")
hl.exec_cmd("dunst")
hl.exec_cmd("killall -q waybar; sleep .5 && env LC_TIME=de_DE.UTF-8 waybar")
hl.exec_cmd("hypridle")
end)

View File

@@ -1,110 +0,0 @@
source = programs.conf
$mainMod = SUPER # Sets "Windows" key as main modifier
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, T, exec, $terminal
bind = $mainMod, Q, killactive,
bind = $mainMod Control_L, Q, exit,
bind = $mainMod, E, exec, $fileManager
bind = $mainMod, V, togglefloating,
bind = $mainMod, R, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
# bind = $mainMod, J, togglesplit, # dwindle
bind = $mainMod, D, exec, $discord
bind = $mainMod, B, exec, $browser
bind = $mainMod, O, exec, $hyprlock
bind = $mainMod, G, exec, $steam
# loginctl lock-session
bind = $mainMod, M, exec, $spotify
bind = ,code:127,pass,class:(discord)
bind = $mainMod, code:51,pass,class:(discord)
# Bind multimedia keys
bindle=, XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
bindle=, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
# bindle=, XF86MonBrightnessUp, exec, bri --up
# bindle=, XF86MonBrightnessDown, exec, bri --down
bindle=, XF86Search, exec, launchpad
# bindl=, XF86AudioMute, exec, amixer set Master toggle
bindl=, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bindl=, XF86AudioPlay, exec, playerctl play-pause # the stupid key is called play , but it toggles
bindl= $mainMod CONTROL, p, exec, playerctl play-pause # the stupid key is called play , but it toggles
bindl=, XF86AudioNext, exec, playerctl next
bindl=, XF86AudioPrev, exec, playerctl previous
# also make sure you created a directory called screenshots in Pictures/ otherwise the screenshots won't appear anywhere
bind = $mainMod, S, exec, grim -o DP-3 "${HOME}/Pictures/screenshots/screenshot-$(date +%F-%T).png"
# screenshot + crop keybind
bind = $mainMod SHIFT, S, exec, grim -g "$(slurp)" - | wl-copy
# Move focus with mainMod + arrow keys
# Maybe H J K L
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
bind = $mainMod, H, movefocus, l
bind = $mainMod, L, movefocus, r
bind = $mainMod, K, movefocus, u
bind = $mainMod, J, movefocus, d
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
# bind = $mainMod SHIFT, S, movetoworkspace, special:magic
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
bind = $mainMod, F, fullscreen
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
bind = $mainMod SHIFT, H, movewindow, l
bind = $mainMod SHIFT, L, movewindow, r
bind = $mainMod SHIFT, K, movewindow, u
bind = $mainMod SHIFT, J, movewindow, d
bind = $mainMod SHIFT, left, movewindow, l
bind = $mainMod SHIFT, right, movewindow, r
bind = $mainMod SHIFT, up, movewindow, u
bind = $mainMod SHIFT, down, movewindow, d
binde = $mainMod CONTROL, H, resizeactive, -10 0
binde = $mainMod CONTROL, L, resizeactive, 10 0
binde = $mainMod CONTROL, K, resizeactive, 0 -10
binde = $mainMod CONTROL, J, resizeactive, 0 10
bind = , F10, pass, class:^(discord)$ # Send Super + Space to Discord

View File

@@ -0,0 +1,92 @@
local mainMod = "SUPER"
-- Quit Keys
hl.bind(mainMod .. " + Q", hl.dsp.window.close())
hl.bind(mainMod .. " + CTRL + Q", hl.dsp.exit())
-- Program keys
hl.bind(mainMod .. " + T", hl.dsp.exec_cmd(TERMINAL))
hl.bind(mainMod .. " + R", hl.dsp.exec_cmd(MENU))
hl.bind(mainMod .. " + B", hl.dsp.exec_cmd(BROWSER))
hl.bind(mainMod .. " + O", hl.dsp.exec_cmd(HYPRLOCK))
hl.bind(mainMod .. " + G", hl.dsp.exec_cmd(STEAM))
hl.bind(mainMod .. " + S",
hl.dsp.exec_cmd("grim -o" .. MAIN_DISPLAY .. " \"${HOME}/screenshots/screenshot-$(date +%F-%T).png\""))
hl.bind(mainMod .. " + SHIFT + S", hl.dsp.exec_cmd("grim -g \"$(slurp)\" - | wl-copy"))
local synth = {
left = false,
right = false,
up = false,
down = false,
}
local function smart_nav(direction)
return function()
if synth[direction] then
return
end
local win = hl.get_active_window()
if not win or win.class ~= "com.mitchellh.ghostty" or win.title ~= "vim" then
hl.dispatch(hl.dsp.focus({ direction = direction }))
return
end
hl.dispatch(hl.dsp.pass({ window = "activewindow" }))
synth[direction] = true
end
end
local function smart_nav_release(direction)
return function()
synth[direction] = false
end
end
local movement_keys = {
H = "left",
L = "right",
J = "down",
K = "up"
}
for key, dir in pairs(movement_keys) do
hl.bind(mainMod .. " + " .. key, smart_nav(dir))
hl.bind(mainMod .. " + " .. key, smart_nav_release(dir), { release = true })
end
hl.bind(mainMod .. " + SHIFT + H", hl.dsp.window.move({ direction = "left" }))
hl.bind(mainMod .. " + SHIFT + L", hl.dsp.window.move({ direction = "right" }))
hl.bind(mainMod .. " + SHIFT + J", hl.dsp.window.move({ direction = "down" }))
hl.bind(mainMod .. " + SHIFT + K", hl.dsp.window.move({ direction = "up" }))
hl.bind(mainMod .. " + CTRL + H", hl.dsp.window.resize({ x = -10, y = 0, relative = true }), { repeating = true })
hl.bind(mainMod .. " + CTRL + L", hl.dsp.window.resize({ x = 10, y = 0, relative = true }), { repeating = true })
hl.bind(mainMod .. " + CTRL + J", hl.dsp.window.resize({ x = 0, y = -10, relative = true }), { repeating = true })
hl.bind(mainMod .. " + CTRL + K", hl.dsp.window.resize({ x = 0, y = 10, relative = true }), { repeating = true })
for i = 1, 10 do
local key = i % 10
hl.bind(mainMod .. " + " .. key, hl.dsp.focus({ workspace = i }))
hl.bind(mainMod .. " + SHIFT + " .. key, hl.dsp.window.move({ workspace = i }))
end
-- Resize Keys
hl.bind(mainMod .. " + F", hl.dsp.window.fullscreen({ action = "toggle" }))
hl.bind(mainMod .. " + v", hl.dsp.window.float())
hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true })
hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true })
-- Multimedia Keys
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"),
{ locked = true, repeating = true })
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"),
{ locked = true, repeating = true })
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"))
hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
hl.bind("XF86AudioNext", hl.dsp.exec_cmd("playerctl next"), { locked = true })
hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("playerctl previous"), { locked = true })
-- hl.bind("code:51", hl.dsp.pass({ window = "class:^([Dd]iscord)$" }), { non_consuming = true })

View File

@@ -0,0 +1,8 @@
TERMINAL = "ghostty"
MENU = "fuzzel"
BROWSER = "firefox"
HYPRLOCK = "hyprlock"
STEAM = "steam"
MAIN_DISPLAY = "DP-7"
SECONDARY_DISPLAY = "DP-6"

View File

@@ -1,11 +0,0 @@
env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24
env = HYPRCURSOR_THEME,catppuccin-mocha-green-cursors
env = XCURSOR_THEME,catppuccin-mocha-green-cursors
env = LIBVA_DRIVER_NAME,nvidia
env = XDG_SESSION_TYPE,wayland
env = GBM_BACKEND,nvidia-drm
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
env = NVD_BACKEND,direct
env = WLR_NO_HARDWARE_CURSORS,1

View File

@@ -0,0 +1,10 @@
hl.env("XCURSOR_SIZE", "24")
hl.env("HYPRCURSOR_SIZE", "24")
hl.env("HYPRCURSOR_THEME", "catppuccin-mocha-green-cursors")
hl.env("XCURSOR_THEME", "catppuccin-mocha-green-cursors")
hl.env("LIBVA_DRIVER_NAME", "nvidia")
hl.env("XDG_SESSION_TYPE", "wayland")
hl.env("GBM_BACKEND", "nvidia-drm")
hl.env("__GLX_VENDOR_LIBRARY_NAME", "nvidia")
hl.env("NVD_BACKEND", "direct")
hl.env("WLR_NO_HARDWARE_CURSORS", "1")

View File

@@ -1,37 +0,0 @@
# Auto generated window rules for Games
windowrule = fullscreen on, match:title "Stardew Valley", match:class "Stardew Valley"
windowrule = monitor DP-3, match:title "Stardew Valley", match:class "Stardew Valley"
windowrule = allows_input on, match:title "Stardew Valley", match:class "Stardew Valley"
windowrule = tile on, match:initial_class "steam_app_.*"
windowrule = maximize on, match:initial_class "steam_app_.*"
windowrule = fullscreen on, match:initial_class "steam_app_.*"
windowrule = monitor DP-3, match:initial_class "steam_app_.*"
windowrule = allows_input on, match:initial_class "steam_app_.*"
windowrule = stay_focused on, match:title "ffxiv*", match:class "ffxiv*"
windowrule = fullscreen on, match:title "ffxiv*", match:class "ffxiv*"
windowrule = monitor DP-3, match:title "ffxiv*", match:class "ffxiv*"
windowrule = allows_input on, match:title "ffxiv*", match:class "ffxiv*"
windowrule = fullscreen on, match:title "Hollow Knight", match:class "Hollow Knight"
windowrule = monitor DP-3, match:title "Hollow Knight", match:class "Hollow Knight"
windowrule = allows_input on, match:title "Hollow Knight", match:class "Hollow Knight"
windowrule = fullscreen on, match:title "HELLDIVERS*", match:class "HELLDIVERS*"
windowrule = monitor DP-3, match:title "HELLDIVERS*", match:class "HELLDIVERS*"
windowrule = allows_input on, match:title "HELLDIVERS*", match:class "HELLDIVERS*"
windowrule = tile on, match:title "CS", match:class "CS"
windowrule = maximize on, match:title "CS", match:class "CS"
windowrule = fullscreen on, match:title "CS", match:class "CS"
windowrule = monitor DP-3, match:title "CS", match:class "CS"
windowrule = allows_input on, match:title "CS", match:class "CS"
windowrule = tile on, match:title "Warhammer 40.000: Darktide"
windowrule = maximize on, match:title "Warhammer 40.000: Darktide"
windowrule = fullscreen on, match:title "Warhammer 40.000: Darktide"
windowrule = monitor DP-3, match:title "Warhammer 40.000: Darktide"
windowrule = allows_input on, match:title "Warhammer 40.000: Darktide"

View File

@@ -1,110 +0,0 @@
monitor=DP-7,2560x1440@240,auto,1
workspace=DP-7,1
monitor=DP-6,1920x1200@60,auto-left,1,transform,1
workspace=DP-6,6
general {
gaps_in = 0
gaps_out = 0
border_size = 1
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.inactive_border = rgba(595959aa)
# Set to true enable resizing windows by clicking and dragging on borders and gaps
resize_on_border = false
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false
layout = dwindle
}
cursor {
no_hardware_cursors = true
}
# https://wiki.hyprland.org/Configuring/Variables/#decoration
decoration {
# rounding = 10
# Change transparency of focused and unfocused windows
active_opacity = 1.0
fullscreen_opacity = 1.0
# drop_shadow = true
# shadow_range = 4
# shadow_render_power = 3
# col.shadow = rgba(1a1a1aee)
# https://wiki.hyprland.org/Configuring/Variables/#blur
blur {
enabled = true
size = 3
passes = 1
vibrancy = 0.1696
}
}
# https://wiki.hyprland.org/Configuring/Variables/#animations
animations {
enabled = true
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
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 = borderangle, 1, 8, default
animation = fade, 1, 7, default
animation = workspaces, 1, 6, default
}
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
dwindle {
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true # You probably want this
}
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
master {
new_status = slave
}
# https://wiki.hyprland.org/Configuring/Variables/#misc
misc {
force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
focus_on_activate = false
}
#############
### INPUT ###
#############
# https://wiki.hyprland.org/Configuring/Variables/#input
input {
kb_layout = de
kb_variant = nodeadkeys
follow_mouse = 1
sensitivity = 0.2 # -1.0 - 1.0, 0 means no modification.
accel_profile = flat
force_no_accel=1
touchpad {
natural_scroll = false
}
}
device {
name = kinesis-kinesis-adv360-1
kb_layout = us
kb_variant =
}

View File

@@ -0,0 +1,132 @@
-- monitor stuff
hl.monitor({
output = MAIN_DISPLAY,
mode = "2560x1440@240",
position = "auto",
scale = "auto"
})
hl.monitor({
output = SECONDARY_DISPLAY,
mode = "preferred",
position = "auto-left",
scale = "auto",
transform = 1
})
-- backup monitor
hl.monitor({
output = "",
mode = "preferred",
position = "auto",
scale = "1"
})
-- general
hl.config({
general = {
gaps_in = 5,
gaps_out = 20,
border_size = 1,
col = {
active_border = { colors = { "rgba(33ccffee)", "rgba(00ff99ee)" }, angle = 45 },
inactive_border = "rgba(595959aa)",
},
resize_on_border = false,
layout = "dwindle",
allow_tearing = false,
},
decoration = {
rounding = 10,
rounding_power = 2,
active_opacity = 1.0,
fullscreen_opacity = 1.0,
blur = {
enabled = true,
size = 3,
passes = 1,
vibrancy = 0.1696,
}
},
animations = {
enabled = true,
},
cursor = {
no_hardware_cursors = 1,
no_warps = true,
hide_on_key_press = true
}
})
-- Animation stuff copied straight from docs
-- Default curves and animations, see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Animations/
hl.curve("easeOutQuint", { type = "bezier", points = { { 0.23, 1 }, { 0.32, 1 } } })
hl.curve("easeInOutCubic", { type = "bezier", points = { { 0.65, 0.05 }, { 0.36, 1 } } })
hl.curve("linear", { type = "bezier", points = { { 0, 0 }, { 1, 1 } } })
hl.curve("almostLinear", { type = "bezier", points = { { 0.5, 0.5 }, { 0.75, 1 } } })
hl.curve("quick", { type = "bezier", points = { { 0.15, 0 }, { 0.1, 1 } } })
-- Default springs
hl.curve("easy", { type = "spring", mass = 1, stiffness = 71.2633, dampening = 15.8273644 })
hl.animation({ leaf = "global", enabled = true, speed = 10, bezier = "default" })
hl.animation({ leaf = "border", enabled = true, speed = 5.39, bezier = "easeOutQuint" })
hl.animation({ leaf = "windows", enabled = true, speed = 4.79, spring = "easy" })
hl.animation({ leaf = "windowsIn", enabled = true, speed = 4.1, spring = "easy", style = "popin 87%" })
hl.animation({ leaf = "windowsOut", enabled = true, speed = 1.49, bezier = "linear", style = "popin 87%" })
hl.animation({ leaf = "fadeIn", enabled = true, speed = 1.73, bezier = "almostLinear" })
hl.animation({ leaf = "fadeOut", enabled = true, speed = 1.46, bezier = "almostLinear" })
hl.animation({ leaf = "fade", enabled = true, speed = 3.03, bezier = "quick" })
hl.animation({ leaf = "layers", enabled = true, speed = 3.81, bezier = "easeOutQuint" })
hl.animation({ leaf = "layersIn", enabled = true, speed = 4, bezier = "easeOutQuint", style = "fade" })
hl.animation({ leaf = "layersOut", enabled = true, speed = 1.5, bezier = "linear", style = "fade" })
hl.animation({ leaf = "fadeLayersIn", enabled = true, speed = 1.79, bezier = "almostLinear" })
hl.animation({ leaf = "fadeLayersOut", enabled = true, speed = 1.39, bezier = "almostLinear" })
hl.animation({ leaf = "workspaces", enabled = true, speed = 1.94, bezier = "almostLinear", style = "fade" })
hl.animation({ leaf = "workspacesIn", enabled = true, speed = 1.21, bezier = "almostLinear", style = "fade" })
hl.animation({ leaf = "workspacesOut", enabled = true, speed = 1.94, bezier = "almostLinear", style = "fade" })
hl.animation({ leaf = "zoomFactor", enabled = true, speed = 7, bezier = "quick" })
-- Layout stuff and misc
hl.config({
dwindle = {
preserve_split = true
}
})
hl.config({
misc = {
force_default_wallpaper = -1,
disable_hyprland_logo = false,
focus_on_activate = false,
}
})
-- Input
hl.config({
input = {
kb_layout = "de",
kb_variant = "nodeadkeys",
follow_mouse = 1,
sensitivity = 0,
-- force_no_accel = 1,
accel_profile = "flat",
}
})
-- Device specific
hl.device({
name = "kinesis-kinesis-adv360-1",
kb_layout = "us",
kb_variant = "",
})

View File

@@ -1,9 +0,0 @@
$terminal = ghostty
$menu = fuzzel
$browser = firefox
$discord = webcord
# LIBVA_DRIVER_NAME=nvidia discord --ignore-gpu-blocklist --disable-features=UseOzonePlatform --enable-features=VaapiVideoDecoder --use-gl=desktop --enable-gpu-rasterization --enable-zero-copy
$hyprlock = ~/.config/hypr/fix-hypr-lock.sh
$spotify = LIBVA_DRIVER_NAME=nvidia spotify-launcher
$obs = obs
$steam = steam

View File

@@ -1,37 +0,0 @@
# windowrule = suppress_event maximize, class:.* # You'll probably like this.
# Workspace rules
workspace=1,monitor:DP-7,default:true,persistent:true
workspace=2,monitor:DP-7,persistent:true
workspace=3,monitor:DP-7,persistent:true
workspace=4,monitor:DP-7,persistent:true
workspace=5,monitor:DP-7,persistent:true
workspace=6,monitor:DP-6,default:true,persistent:true
workspace=7,monitor:DP-6,persistent:true
workspace=8,monitor:DP-6,persistent:true
workspace=9,monitor:DP-6,persistent:true
workspace=10,monitor:DP-6,persistent:true
# Other
windowrule = stay_focused on, match:class swappy
windowrule = allows_input on, match:class discord
windowrule = monitor DP-6, match:class discord
windowrule {
name = steam
match:class = steam
monitor = DP-3
workspace = 7 silent
no_initial_focus = on
focus_on_activate = off
suppress_event = activatefocus
}
windowrule = no_focus on, no_initial_focus on, match:class ^(steam)$, match:title ^(notificationtoasts_*)$
windowrule = float on, match:class ^(jetbrains-.*)$, match:title ^(win[0-9]+)$
windowrule = no_focus on, match:class ^(jetbrains-.*)$, match:title ^(win[0-9]+)$

View File

@@ -0,0 +1,61 @@
-- No gaps when only window
hl.workspace_rule({ workspace = "w[tv1]", gaps_out = 0, gaps_in = 0 })
hl.workspace_rule({ workspace = "f[1]", gaps_out = 0, gaps_in = 0 })
hl.window_rule({
name = "no-gaps-wtv1",
match = { float = false, workspace = "w[tv1]" },
border_size = 0,
rounding = 0,
})
hl.window_rule({
name = "no-gaps-f1",
match = { float = false, workspace = "f[1]" },
border_size = 0,
rounding = 0,
})
-- Workspaces to monitors
for i = 1, 6 do
hl.workspace_rule({ workspace = tostring(i), monitor = MAIN_DISPLAY, persistent = true })
end
for i = 6, 10 do
hl.workspace_rule({ workspace = tostring(i), monitor = SECONDARY_DISPLAY, persistent = true })
end
hl.window_rule({
name = "steam",
match = {
class = "steam"
},
monitor = SECONDARY_DISPLAY,
workspace = "7 silent",
no_initial_focus = true,
focus_on_activate = false,
suppress_event = "activatefocus"
})
hl.window_rule({
name = "steam_notifications",
match = {
class = "^(steam)$",
title = "^(notificationtoasts_.*)$"
},
no_focus = true,
no_initial_focus = true,
focus_on_activate = false,
suppress_event = "activate activatefocus"
})
hl.window_rule({
name = "discord",
match = {
class = "[dD]iscord"
},
monitor = SECONDARY_DISPLAY,
workspace = "6 silent",
no_initial_focus = true,
focus_on_activate = false,
suppress_event = "active activatefocus"
})

View File

@@ -0,0 +1,10 @@
{
"workspace": {
"library": [
"/usr/share/hypr/stubs"
]
},
"diagnostics": {
"globals": ["hl"]
}
}

View File

@@ -1,8 +0,0 @@
#!/bin/bash
IS_LOCKED=$(ps -e | grep hyprlock)
if [ -z "$IS_LOCKED" ]
then
hyprlock
fi

View File

@@ -1,9 +0,0 @@
source = config/env.conf
source = config/autostart.conf
source = config/general.conf
source = config/binds.conf
# Dont source because it is sourced in binds.conf to set Program specific keybinds
# source = config/programs.conf
source = config/rules.conf
source = config/games.conf

View File

@@ -1,349 +0,0 @@
# #######################################################################################
# AUTOGENERATED HYPRLAND CONFIG.
# EDIT THIS CONFIG ACCORDING TO THE WIKI INSTRUCTIONS.
# #######################################################################################
autogenerated = 1 # remove this line to remove the warning
# This is an example Hyprland config file.
# Refer to the wiki for more information.
# https://wiki.hypr.land/Configuring/
# Please note not all available settings / options are set here.
# For a full list, see the wiki
# You can split this configuration into multiple files
# Create your files separately and then link them to this file like this:
# source = ~/.config/hypr/myColors.conf
################
### MONITORS ###
################
# See https://wiki.hypr.land/Configuring/Monitors/
monitor=,preferred,auto,auto
###################
### MY PROGRAMS ###
###################
# See https://wiki.hypr.land/Configuring/Keywords/
# Set programs that you use
$terminal = kitty
$fileManager = dolphin
$menu = hyprlauncher
#################
### AUTOSTART ###
#################
# Autostart necessary processes (like notifications daemons, status bars, etc.)
# Or execute your favorite apps at launch like this:
# exec-once = $terminal
# exec-once = nm-applet &
# exec-once = waybar & hyprpaper & firefox
#############################
### ENVIRONMENT VARIABLES ###
#############################
# See https://wiki.hypr.land/Configuring/Environment-variables/
env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24
###################
### PERMISSIONS ###
###################
# See https://wiki.hypr.land/Configuring/Permissions/
# Please note permission changes here require a Hyprland restart and are not applied on-the-fly
# for security reasons
# ecosystem {
# enforce_permissions = 1
# }
# permission = /usr/(bin|local/bin)/grim, screencopy, allow
# permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow
# permission = /usr/(bin|local/bin)/hyprpm, plugin, allow
#####################
### LOOK AND FEEL ###
#####################
# Refer to https://wiki.hypr.land/Configuring/Variables/
# https://wiki.hypr.land/Configuring/Variables/#general
general {
gaps_in = 5
gaps_out = 20
border_size = 2
# 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)
# 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
}
# https://wiki.hypr.land/Configuring/Variables/#decoration
decoration {
rounding = 10
rounding_power = 2
# Change transparency of focused and unfocused windows
active_opacity = 1.0
inactive_opacity = 1.0
shadow {
enabled = true
range = 4
render_power = 3
color = rgba(1a1a1aee)
}
# https://wiki.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, please :)
# 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
}
# 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 {
# name = no-gaps-wtv1
# match:float = false
# match:workspace = w[tv1]
#
# border_size = 0
# rounding = 0
# }
#
# windowrule {
# name = no-gaps-f1
# match:float = false
# match:workspace = f[1]
#
# border_size = 0
# rounding = 0
# }
# See https://wiki.hypr.land/Configuring/Dwindle-Layout/ for more
dwindle {
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true # You probably want this
}
# See https://wiki.hypr.land/Configuring/Master-Layout/ for more
master {
new_status = master
}
# https://wiki.hypr.land/Configuring/Variables/#misc
misc {
force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
}
#############
### INPUT ###
#############
# https://wiki.hypr.land/Configuring/Variables/#input
input {
kb_layout = us
kb_variant =
kb_model =
kb_options =
kb_rules =
follow_mouse = 1
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
touchpad {
natural_scroll = false
}
}
# See https://wiki.hypr.land/Configuring/Gestures
gesture = 3, horizontal, workspace
# Example per-device config
# See https://wiki.hypr.land/Configuring/Keywords/#per-device-input-configs for more
device {
name = epic-mouse-v1
sensitivity = -0.5
}
###################
### 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, C, 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, R, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, layoutmsg, togglesplit # dwindle
# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
# Laptop multimedia keys for volume and LCD brightness
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+
bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%-
# 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 windowrules that are useful
windowrule {
# Ignore maximize requests from all apps. You'll probably like this.
name = suppress-maximize-events
match:class = .*
suppress_event = maximize
}
windowrule {
# Fix some dragging issues with XWayland
name = fix-xwayland-drags
match:class = ^$
match:title = ^$
match:xwayland = true
match:float = true
match:fullscreen = false
match:pin = false
no_focus = true
}
# Hyprland-run windowrule
windowrule {
name = move-hyprland-run
match:class = hyprland-run
move = 20 monitor_h-120
float = yes
}

View File

@@ -0,0 +1,6 @@
require("config.constants")
require("config.env")
require("config.autostart")
require("config.binds")
require("config.general")
require("config.rules")

View File

@@ -1,90 +1,117 @@
# source = ~/.cache/wal/colors-hyprland.conf
$font = Noto Sans
# BACKGROUND
background {
monitor = DP-4
path = /home/zam/.config/wallpapers/wall0.png
blur_passes = 3
contrast = 0.8916
brightness = 0.8172
vibrancy = 0.1696
vibrancy_darkness = 0.0
}
background {
monitor = DP-3
path = /home/zam/.config/wallpapers/wall1.png
blur_passes = 3
contrast = 0.8916
brightness = 0.8172
vibrancy = 0.1696
vibrancy_darkness = 0.0
}
# GENERAL
general {
no_fade_in = false
grace = 0
disable_loading_bar = true
hide_cursor = true
}
# INPUT FIELD
input-field {
monitor = DP-4
size = 250, 60
outline_thickness = 2
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.2 # 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.5)
font_color = rgb(200, 200, 200)
fade_on_empty = false
# font_family = JetBrains Mono Nerd Font Mono
placeholder_text = <i><span foreground="##cdd6f4">Input Password...</span></i>
hide_input = false
position = 0, -120
halign = center
valign = center
animations {
enabled = true
bezier = ease, 0.25, 0.1, 0.25, 1.0
animation = fadeIn, 1, 4, ease
animation = fadeOut, 1, 4, ease
animation = inputFieldDots, 1, 2, ease
}
# TIME
background {
monitor = DP-7
path = screenshot
blur_passes = 4
contrast = 0.95
brightness = 0.55
vibrancy = 0.18
vibrancy_darkness = 0.2
}
background {
monitor = DP-6
path = screenshot
blur_passes = 4
contrast = 0.95
brightness = 0.50
vibrancy = 0.16
vibrancy_darkness = 0.25
}
# Main monitor: DP-7
label {
monitor = DP-4
text = cmd[update:1000] date +"%-I:%M%p"
# color = $foreground
color = rgba(255, 255, 255, 0.6)
font_size = 120
font_family = JetBrains Mono Nerd Font Mono ExtraBold
position = 0, -300
monitor = DP-7
text = $TIME
color = rgba(245, 247, 250, 0.92)
font_size = 96
font_family = $font
position = 0, -130
halign = center
valign = top
}
# USER
label {
monitor = DP-4
text = Hi there, Zam
# color = $foreground
color = rgba(255, 255, 255, 0.6)
font_size = 25
font_family = JetBrains Mono Nerd Font Mono
position = 0, -40
monitor = DP-7
text = cmd[update:60000] date +"%A, %d %B"
color = rgba(220, 225, 232, 0.78)
font_size = 24
font_family = $font
position = 0, -295
halign = center
valign = top
}
input-field {
monitor = DP-7
size = 420, 58
outline_thickness = 2
rounding = 14
outer_color = rgba(33ccffee) rgba(00ff99ee) 45deg
check_color = rgba(00ff99ee) rgba(33ccffee) 45deg
fail_color = rgba(ff6633ee) rgba(ff0066ee) 45deg
inner_color = rgba(12, 14, 18, 0.58)
font_color = rgba(245, 247, 250, 0.90)
font_family = $font
dots_size = 0.22
dots_spacing = 0.24
dots_center = true
fade_on_empty = false
placeholder_text = <span foreground="##dce1e8">Password</span>
fail_text = <span foreground="##ff8a8a">$PAMFAIL</span>
position = 0, -95
halign = center
valign = center
}
# CURRENT SONG
# label {
# monitor = DP-3
# text = cmd[update:1000] echo "$(~/Documents/Scripts/whatsong.sh)"
# color = $foreground
# #color = rgba(255, 255, 255, 0.6)
# font_size = 18
# font_family = JetBrainsMono, Font Awesome 6 Free Solid
# position = 0, -50
# halign = center
# valign = bottom
# }
#
label {
monitor = DP-7
text = $LAYOUT
color = rgba(220, 225, 232, 0.55)
font_size = 16
font_family = $font
position = -32, 28
halign = right
valign = bottom
}
# Secondary rotated monitor: DP-6
label {
monitor = DP-6
text = $TIME
color = rgba(245, 247, 250, 0.74)
font_size = 58
font_family = $font
position = 0, -80
halign = center
valign = center
}
label {
monitor = DP-6
text = cmd[update:60000] date +"%d %b"
color = rgba(220, 225, 232, 0.58)
font_size = 22
font_family = $font
position = 0, -145
halign = center
valign = center
}

View File

@@ -1,12 +0,0 @@
preload = ~/.config/wallpapers/wall0.jpg
preload = ~/.config/wallpapers/wall1.jpg
wallpaper {
monitor = DP-4
path = ~/.config/wallpapers/wall0.jpg
}
wallpaper {
monitor = DP-3
path = ~/.config/wallpapers/wall1.jpg
}

View File

@@ -1,110 +0,0 @@
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable", -- latest stable release
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
require("vim-options")
require("lazy").setup("plugins")
vim.o.number = true
vim.o.relativenumber = true
vim.filetype.add({
extension = {
gotmpl = 'gotmpl',
},
pattern = {
[".*%.gohtml"] = "gotmpl",
[".*%.gotmpl"] = "gotmpl"
}
})
-- Panes
vim.cmd.set("splitright")
vim.keymap.set("n", "<leader>/", function()
vim.cmd.vnew()
end, { desc = "Pane split right" })
vim.cmd.set("splitbelow")
vim.keymap.set("n", "<leader>-", function()
vim.cmd.new()
end, { desc = "Pane split down" })
-- vim.api.nvim_set_keymap('n', '<c-k>', ':wincmd k<CR>', { noremap = true, silent = true, desc = "Move to up windows" });
-- vim.api.nvim_set_keymap('n', '<c-h>', ':wincmd h<CR>', { noremap = true, silent = true, desc = "Move to left windows" });
-- vim.api.nvim_set_keymap('n', '<c-j>', ':wincmd j<CR>', { noremap = true, silent = true, desc = "Move to down windows" });
-- vim.api.nvim_set_keymap('n', '<c-l>', ':wincmd l<CR>', { noremap = true, silent = true, desc = "Move to right windows" });
vim.api.nvim_set_keymap('n', 'gb', ':bnext<CR>', { noremap = true, silent = true, desc = "Go back last buffer" });
vim.api.nvim_set_keymap('t', '<c-[><c-[>', '<C-\\><C-n>', { noremap = true, silent = true, desc = "Escape Terminal" });
vim.api.nvim_create_autocmd('TermOpen', {
group = vim.api.nvim_create_augroup('custom-term-open', { clear = true }),
callback = function()
vim.opt.number = false
vim.opt.relativenumber = false
end,
});
-- Telescope
local builtin = require("telescope.builtin")
vim.keymap.set('n', '<leader>fg', function() builtin.live_grep({ glob_pattern = "!*_templ.go" }) end,
{ desc = "Telescope live grep" })
vim.keymap.set('n', 'gl', builtin.lsp_references, { desc = "Telescope show references" })
vim.keymap.set('n', '<leader>fx', builtin.diagnostics, { desc = "Telescope open diagnostics" })
vim.keymap.set('n', '<leader>ff', builtin.find_files, { desc = "Telescope find files" })
vim.keymap.set('n', '<leader>fb', builtin.buffers, { desc = "Telescope open buffers" })
-- Formating
vim.keymap.set("n", "<leader>gf", function()
require("conform").format({ lsp_format = "fallback" })
end, { desc = "Format buffer" })
-- Filesystem
vim.keymap.set("n", "<leader>e", ":Oil<CR>", { desc = "Open file explorer: OIL" })
-- Neotest
local neotest = require("neotest")
vim.keymap.set("n", "<leader>ts", function()
neotest.summary.toggle()
end, { desc = "Neotest open summary" })
vim.keymap.set("n", "<leader>to", neotest.output.open, { desc = "Neotest open output" })
vim.keymap.set("n", "<leader>td", function() neotest.run.run({ suite = false, strategy = "dap" }) end,
{ desc = "Neotest debug closest test" })
vim.keymap.set("n", "<leader>tr", function() neotest.run.run({ suite = false }) end,
{ desc = "Neotest run closest test" })
-- Debugging
local dap = require("dap")
vim.keymap.set("n", "<leader>db", dap.toggle_breakpoint,
{ nowait = true, remap = false, desc = "Debug toggle breakpoint" })
vim.keymap.set("n", "<leader>dc", dap.continue, { nowait = true, remap = false, desc = "Debug continue" })
vim.keymap.set("n", "<leader>di", dap.step_into, { nowait = true, remap = false, desc = "Debug step into" })
vim.keymap.set("n", "<leader>do", dap.step_over, { nowait = true, remap = false, desc = "Debug step over" })
vim.keymap.set("n", "<leader>dr", dap.repl.open, { nowait = true, remap = false, desc = "Debug open repl" })
vim.keymap.set("n", "<leader>dq", function()
dap.terminate()
require("dapui").close()
require("nvim-dap-virtual-text").toggle()
end, { nowait = true, remap = false, desc = "Debug close" })
vim.keymap.set("n", "<leader>dl", dap.list_breakpoints, { nowait = true, remap = false, desc = "Debug list breakpoints" })
-- Lsp Config
vim.keymap.set("n", "K", vim.lsp.buf.hover, { desc = "Show hover information" })
vim.keymap.set("n", "gd", vim.lsp.buf.definition, { desc = "Goto definition" })
vim.keymap.set({ "n", "v" }, "<leader>ca", vim.lsp.buf.code_action, { desc = "LSP code action" })
vim.keymap.set("n", "<leader>cr", vim.lsp.buf.rename, { desc = "LSP rename" })
-- Motions
vim.keymap.set("n", "<C-d>", "<C-d>zz", {})
vim.keymap.set("n", "<C-u>", "<C-u>zz", {})

View File

@@ -0,0 +1,287 @@
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable", -- latest stable release
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
require("vim-options")
require("lazy").setup("plugins")
vim.o.number = true
vim.o.relativenumber = true
vim.filetype.add({
extension = {
gotmpl = 'gotmpl',
},
pattern = {
[".*%.gohtml"] = "gotmpl",
[".*%.gotmpl"] = "gotmpl"
}
})
-- Panes
vim.cmd.set("splitright")
vim.keymap.set("n", "<leader>/", function()
vim.cmd.vnew()
end, { desc = "Pane split right" })
vim.cmd.set("splitbelow")
vim.keymap.set("n", "<leader>-", function()
vim.cmd.new()
end, { desc = "Pane split down" })
-- Movement
{{ if eq .chezmoi.hostname "gentoo" }}
local function smart_move(direction, vim_cmd)
return function()
local before = vim.api.nvim_get_current_win()
vim.cmd("wincmd " .. vim_cmd)
if before == vim.api.nvim_get_current_win() then
vim.system({
"hyprctl",
"dispatch",
string.format(
"hl.dsp.focus({direction = '%s' })",
direction
)
})
end
end
end
vim.keymap.set({ 'n', 'i', 'v' }, '<D-h>', smart_move("left", "h"), { noremap = true, silent = false, desc = "Move to left windows" });
vim.keymap.set({ 'n', 'i', 'v' }, '<D-l>', smart_move("right", "l"), { noremap = true, silent = false, desc = "Move to right windows" });
vim.keymap.set({ 'n', 'i', 'v' }, '<D-j>', smart_move("down", "j"), { noremap = true, silent = false, desc = "Move to down window" });
vim.keymap.set({ 'n', 'i', 'v' }, '<D-k>', smart_move("up", "k"), { noremap = true, silent = false, desc = "Move to up window" });
{{ end }}
vim.api.nvim_set_keymap('n', 'gb', ':bnext<CR>', { noremap = true, silent = true, desc = "Go back last buffer" });
vim.api.nvim_set_keymap('t', '<c-[><c-[>', '<C-\\><C-n>', { noremap = true, silent = true, desc = "Escape Terminal" });
vim.api.nvim_create_autocmd('TermOpen', {
group = vim.api.nvim_create_augroup('custom-term-open', { clear = true }),
callback = function()
vim.opt_local.number = false
vim.opt_local.relativenumber = false
end,
});
-- Telescope
vim.keymap.set('n', '<leader>fg', function() require("telescope.builtin").live_grep({ glob_pattern = "!*_templ.go" }) end,
{ desc = "Telescope live grep" })
vim.keymap.set('n', 'gl', function() require("telescope.builtin").lsp_references() end,
{ desc = "Telescope show references" })
vim.keymap.set('n', '<leader>fx', function() require("telescope.builtin").diagnostics() end,
{ desc = "Telescope open diagnostics" })
vim.keymap.set('n', '<leader>ff', function() require("telescope.builtin").find_files() end,
{ desc = "Telescope find files" })
vim.keymap.set('n', '<leader>fb', function() require("telescope.builtin").buffers() end, { desc = "Telescope open buffers" })
-- Formating
vim.keymap.set("n", "<leader>gf", function()
require("conform").format({ lsp_format = "fallback" })
end, { desc = "Format buffer" })
-- Filesystem
vim.keymap.set("n", "<leader>e", ":Oil<CR>", { desc = "Open file explorer: OIL" })
-- Neotest
vim.keymap.set("n", "<leader>ts", function()
require("neotest").summary.toggle()
end, { desc = "Neotest open summary" })
vim.keymap.set("n", "<leader>to", function() require("neotest").output.open() end, { desc = "Neotest open output" })
vim.keymap.set("n", "<leader>td", function() require("neotest").run.run({ suite = false, strategy = "dap" }) end,
{ desc = "Neotest debug closest test" })
vim.keymap.set("n", "<leader>tr", function() require("neotest").run.run({ suite = false }) end,
{ desc = "Neotest run closest test" })
-- Debugging
vim.keymap.set("n", "<leader>db", function() require("dap").toggle_breakpoint() end,
{ nowait = true, remap = false, desc = "Debug toggle breakpoint" })
vim.keymap.set("n", "<leader>dc", function() require("dap").continue() end,
{ nowait = true, remap = false, desc = "Debug continue" })
vim.keymap.set("n", "<leader>di", function() require("dap").step_into() end,
{ nowait = true, remap = false, desc = "Debug step into" })
vim.keymap.set("n", "<leader>do", function() require("dap").step_over() end,
{ nowait = true, remap = false, desc = "Debug step over" })
vim.keymap.set("n", "<leader>dr", function() require("dap").repl.open() end,
{ nowait = true, remap = false, desc = "Debug open repl" })
vim.keymap.set("n", "<leader>dq", function()
local dap = require("dap")
dap.terminate()
require("dapui").close()
require("nvim-dap-virtual-text").toggle()
end, { nowait = true, remap = false, desc = "Debug close" })
vim.keymap.set("n", "<leader>dl", function() require("dap").list_breakpoints() end,
{ nowait = true, remap = false, desc = "Debug list breakpoints" })
local function read_pyproject()
local results = vim.fs.find("pyproject.toml", { upward = true, stop = vim.loop.os_homedir() })
local path = results[1]
if not path then
return nil
end
local ok, lines = pcall(vim.fn.readfile, path)
if not ok then
return nil
end
return table.concat(lines, "\n")
end
local function get_scripts_from_pyproject()
local pyproject = read_pyproject()
if not pyproject then
return {}
end
local scripts = {}
-- Match [tool.poetry.scripts]
for script_line in pyproject:gmatch("%[tool%.poetry%.scripts%][^\n]*\n([^%[]*)") do
for name, module in script_line:gmatch('([%w_%-]+)%s*=%s*"([^"]+)"') do
scripts[name] = module
end
end
-- Match [project.scripts]
for script_line in pyproject:gmatch("%[project%.scripts%][^\n]*\n([^%[]*)") do
for name, module in script_line:gmatch('([%w_%-]+)%s*=%s*"([^"]+)"') do
scripts[name] = module
end
end
return scripts
end
local function get_python_path()
local cwd = vim.fn.getcwd()
if vim.fn.executable(cwd .. "/venv/bin/python") == 1 then
return cwd .. "/venv/bin/python"
elseif vim.fn.executable(cwd .. "/.venv/bin/python") == 1 then
return cwd .. "/.venv/bin/python"
else
return vim.fn.exepath("python")
end
end
-- Store last used parameters for quick reuse
local last_params = {}
vim.keymap.set("n", "<leader>dps", function()
local scripts = get_scripts_from_pyproject()
if vim.tbl_isempty(scripts) then
vim.notify("No scripts found in pyproject.toml", vim.log.levels.WARN)
return
end
local script_names = vim.tbl_keys(scripts)
table.sort(script_names)
local function start_debug(script_name, module, args_str)
local package = module:match("^([^:]+)")
-- Parse arguments string into table
local args = {}
if args_str and args_str ~= "" then
for arg in args_str:gmatch("%S+") do
table.insert(args, arg)
end
end
-- Store for quick reuse
last_params[script_name] = args_str or ""
vim.notify(
"Debugging: " .. script_name .. (args_str and (" with args: " .. args_str) or ""),
vim.log.levels.INFO
)
require("dap").run({
type = "python",
request = "launch",
name = "Debug: " .. script_name,
module = package,
args = args,
pythonPath = get_python_path(),
justMyCode = false,
console = "integratedTerminal",
})
end
local function show_param_input(script_name, module)
-- Show input dialog for parameters
vim.ui.input({
prompt = "Arguments for " .. script_name .. ": ",
default = last_params[script_name] or "",
completion = "file",
}, function(args_str)
if args_str ~= nil then -- nil = cancelled, "" = empty input is OK
start_debug(script_name, module, args_str)
end
end)
end
local function select_script()
if #script_names == 1 then
show_param_input(script_names[1], scripts[script_names[1]])
else
vim.ui.select(script_names, {
prompt = "Select script to debug: ",
format_item = function(item)
return item .. " → " .. scripts[item]
end,
}, function(selected)
if selected then
show_param_input(selected, scripts[selected])
end
end)
end
end
select_script()
end, { desc = "Debug Python script from pyproject.toml" })
-- Lsp Config
vim.keymap.set("n", "K", vim.lsp.buf.hover, { desc = "Show hover information" })
vim.keymap.set("n", "gd", vim.lsp.buf.definition, { desc = "Goto definition" })
vim.keymap.set({ "n", "v" }, "<leader>ca", vim.lsp.buf.code_action, { desc = "LSP code action" })
vim.keymap.set("n", "<leader>cr", vim.lsp.buf.rename, { desc = "LSP rename" })
-- Motions
vim.keymap.set("n", "<C-d>", "<C-d>zz", {})
vim.keymap.set("n", "<C-u>", "<C-u>zz", {})
-- Disable unused
for _, key in ipairs({
"Q",
"q:",
"q/",
"q?",
"ZZ",
"ZQ",
"<C-z>",
"U",
"gQ",
"<Up>",
"<Down>",
"<Left>",
"<Right>",
"<S-Down>",
"<S-Up>"
}) do
vim.keymap.set("n", key, "<Nop>")
end

View File

@@ -1,36 +1,37 @@
{
"FixCursorHold.nvim": { "branch": "master", "commit": "1900f89dc17c603eec29960f57c00bd9ae696495" },
"autoclose.nvim": { "branch": "main", "commit": "3f86702b54a861a17d7994b2e32a7c648cb12fb1" },
"blink.cmp": { "branch": "main", "commit": "4b18c32adef2898f95cdef6192cbd5796c1a332d" },
"catppuccin": { "branch": "main", "commit": "0a5de4da015a175f416d6ef1eda84661623e0500" },
"conform.nvim": { "branch": "master", "commit": "e969e302bced7ffb9a0a0323629f31feb0ca35a6" },
"direnv.nvim": { "branch": "main", "commit": "564146278b3d5fe4ffa389cd103bab20f9b515d6" },
"fidget.nvim": { "branch": "main", "commit": "7fa433a83118a70fe24c1ce88d5f0bd3453c0970" },
"autoclose.nvim": { "branch": "main", "commit": "bafd0368716216fa6a7bb2a43ecd889b44efdb46" },
"blink.cmp": { "branch": "main", "commit": "78336bc89ee5365633bcf754d93df01678b5c08f" },
"catppuccin": { "branch": "main", "commit": "0303a7208dba448c459767486a38a6ec05c4216b" },
"conform.nvim": { "branch": "master", "commit": "619363c30309d29ffa631e67c8183f2a72caa373" },
"fidget.nvim": { "branch": "main", "commit": "82404b196e73a00b1727a91903beef5ddc319d22" },
"flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" },
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
"lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" },
"lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" },
"friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
"lazydev.nvim": { "branch": "main", "commit": "ff2cbcba459b637ec3fd165a2be59b7bbaeedf0d" },
"lualine.nvim": { "branch": "master", "commit": "221ce6b2d999187044529f49da6554a92f740a96" },
"mason-nvim-dap.nvim": { "branch": "main", "commit": "9a10e096703966335bd5c46c8c875d5b0690dade" },
"mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" },
"mini.icons": { "branch": "main", "commit": "5b9076dae1bfbe47ba4a14bc8b967cde0ab5d77e" },
"neotest": { "branch": "master", "commit": "deadfb1af5ce458742671ad3a013acb9a6b41178" },
"mason.nvim": { "branch": "main", "commit": "16ba83bfc8a25f52bb545134f5bee082b195c460" },
"mini.icons": { "branch": "main", "commit": "520995f1d75da0e4cc901ee95080b1ff2bc46b94" },
"mini.indentscope": { "branch": "main", "commit": "ad19b1f02223391f3d40440f7ff10607f0043585" },
"neotest": { "branch": "master", "commit": "ad991822b7076b1d940b33a9d6d0d30416d5df81" },
"neotest-go": { "branch": "main", "commit": "59b50505053f9c45a9febb79e11a56206c3e3901" },
"neotest-python": { "branch": "master", "commit": "b0d3a861bd85689d8ed73f0590c47963a7eb1bf9" },
"nvim-dap": { "branch": "master", "commit": "7b11f48753ea6a82f09485dadd08016e2a318cf6" },
"nvim-dap-ui": { "branch": "master", "commit": "cf91d5e2d07c72903d052f5207511bf7ecdb7122" },
"neotest-python": { "branch": "master", "commit": "e6df4f1892f6137f58135917db24d1655937d831" },
"nvim-dap": { "branch": "master", "commit": "531771530d4f82ad2d21e436e3cc052d68d7aebb" },
"nvim-dap-ui": { "branch": "master", "commit": "1a66cabaa4a4da0be107d5eda6d57242f0fe7e49" },
"nvim-dap-virtual-text": { "branch": "master", "commit": "fbdb48c2ed45f4a8293d0d483f7730d24467ccb6" },
"nvim-lint": { "branch": "master", "commit": "606b823a57b027502a9ae00978ebf4f5d5158098" },
"nvim-lspconfig": { "branch": "master", "commit": "ab5139c99df944479e5a26495a37840fcbb1d512" },
"nvim-lint": { "branch": "master", "commit": "d48f3a76189d03b2239f6df1b2f7e3fa8353743b" },
"nvim-lspconfig": { "branch": "master", "commit": "229b79051b380377664edc4cbd534930154921a1" },
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
"nvim-tmux-navigation": { "branch": "main", "commit": "4898c98702954439233fdaf764c39636681e2861" },
"nvim-treesitter": { "branch": "main", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
"nvim-web-devicons": { "branch": "master", "commit": "16d919d768b5bc2921bd7d5a4ee76f158f7ea1c0" },
"oil.nvim": { "branch": "master", "commit": "0fcc83805ad11cf714a949c98c605ed717e0b83e" },
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
"ripgrep": { "branch": "master", "commit": "cb66736f146f093497f4dc537b33d0826f9af33c" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "6fea601bd2b694c6f2ae08a6c6fab14930c60e2c" },
"nvim-treesitter": { "branch": "main", "commit": "4916d6592ede8c07973490d9322f187e07dfefac" },
"nvim-web-devicons": { "branch": "master", "commit": "dfbfaa967a6f7ec50789bead7ef87e336c1fa63c" },
"oil.nvim": { "branch": "master", "commit": "b73018b75affd13fa38e2fc94ef753b465f770d7" },
"plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" },
"ripgrep": { "branch": "master", "commit": "82313cf95849bfe425109ad9506a52154879b1b1" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "b25b749b9db64d375d782094e2b9dce53ad53a40" },
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
"telescope.nvim": { "branch": "master", "commit": "6312868392331c9c0f22725041f1ec2bef57c751" },
"tiny-inline-diagnostic.nvim": { "branch": "main", "commit": "ba133b3e932416e4b9507095731a6d7276878fe8" },
"telescope.nvim": { "branch": "master", "commit": "7d324792b7943e4aa16ad007212e6acc6f9fe335" },
"tiny-inline-diagnostic.nvim": { "branch": "main", "commit": "680762989e8b05a72e90769959d0fb9a557e6917" },
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
}

View File

@@ -1,6 +1,6 @@
return {
"saghen/blink.cmp",
dependecies = { "rafamadriz/friendly-snippets" },
dependencies = { "rafamadriz/friendly-snippets" },
version = "1.*",
---@module 'blink.cmp'
---@type blink.cmp.Config

View File

@@ -5,9 +5,23 @@ return
priority = 1000,
lazy = false,
config = function()
-- require("catppuccin").setup({
-- transparent_background = true,
-- })
require("catppuccin").setup({
transparent_background = false,
custom_highlights = function(colors)
return {
Normal = { bg = colors.base },
NormalNC = { bg = colors.mantle },
WinSeparator = { fg = colors.surface1, bg = colors.mantle },
StatusLine = { fg = colors.text, bg = colors.surface0 },
StatusLineNC = { fg = colors.overlay0, bg = colors.mantle },
CursorLine = { bg = colors.surface0 },
}
end
})
vim.cmd.colorscheme "catppuccin"
end

View File

@@ -6,7 +6,7 @@ return {
conform.setup {
formatters_by_ft = {
lua = { "stylua" },
python = { "isort", "black", lsp_format = "fallback" },
python = { "isort", "black", "ruff", lsp_format = "fallback" },
gotmpl = { "djlint" }
},
format_on_save = {

View File

@@ -27,8 +27,7 @@ return {
})
-- Configurations
dap.configurations = {
python = {
dap.configurations.python = {
{
-- The first three options are required by nvim-dap
type = "python", -- the type here established the link to the adapter definition: `dap.adapters.python`
@@ -48,11 +47,10 @@ return {
elseif vim.fn.executable(cwd .. "/.venv/bin/python") == 1 then
return cwd .. "/.venv/bin/python"
else
return "/usr/bin/python"
return vim.fn.exepath("python")
end
end,
},
},
}
-- Dap UI

View File

@@ -2,9 +2,43 @@ return {
'mfussenegger/nvim-lint',
config = function()
local lint = require("lint")
lint.linters_by_ft = {
python = { 'mypy' }
}
-- lint.linters_by_ft = {
-- python = { 'mypy' }
-- }
local function read_pyproject()
local results = vim.fs.find("pyproject.toml", { upward = true, stop = vim.loop.os_homedir() })
local path = results[1]
if not path then
return nil
end
local ok, lines = pcall(vim.fn.readfile, path)
if not ok then
return nil
end
return table.concat(lines, "\n")
end
local function python_linters()
local linters = {}
local pyproject = read_pyproject()
if pyproject then
if pyproject:match("%[tool%.ruff%]") then
table.insert(linters, "ruff")
end
if pyproject:match("%[tool%.mypy%]") then
table.insert(linters, "mypy")
end
end
return linters
end
lint.linters_by_ft.python = python_linters()
local lint_augroup = vim.api.nvim_create_augroup("lint", { clear = true })
vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, {

View File

@@ -1,12 +1,13 @@
return {
"neovim/nvim-lspconfig",
config = function()
vim.lsp.enable({ "lua_ls",
vim.lsp.enable({
"lua_ls",
"basedpyright",
"gopls",
"html",
"yamlls",
"svelte-language-server",
"svelte",
"clangd",
"ansiblels",
"vtsls",

View File

@@ -4,18 +4,8 @@ return {
config = function()
require('lualine').setup({
options = {
theme = 'catppuccin'
theme = 'catppuccin-mocha'
},
sections = {
lualine_x = {
function()
return require('direnv').statusline()
end,
'encoding',
'fileformat',
'filetype',
}
}
})
end
}

View File

@@ -1,15 +1,11 @@
return {
{
'nvim-telescope/telescope.nvim',
tag = '0.1.6',
dependencies = {
'nvim-lua/plenary.nvim',
'BurntSushi/ripgrep',
{ 'nvim-telescope/telescope-fzf-native.nvim', build = 'make' }
},
},
{
'nvim-telescope/telescope-ui-select.nvim',
config = function()
local telescope = require("telescope")
telescope.setup({
@@ -29,5 +25,8 @@ return {
telescope.load_extension("ui-select")
telescope.load_extension("fzf")
end
},
{
'nvim-telescope/telescope-ui-select.nvim',
}
}

View File

@@ -1,3 +1,4 @@
{{ if ne .chezmoi.hostname "gentoo" }}
return {
'alexghergh/nvim-tmux-navigation',
config = function()
@@ -13,3 +14,6 @@ return {
}
end
}
{{ else }}
return {}
{{ end }}

View File

@@ -1,25 +1,10 @@
return {
"nvim-treesitter/nvim-treesitter",
branch = "main",
lazy = false,
build = ":TSUpdate",
config = function()
require("nvim-treesitter.configs").setup({
ensure_installed = { "lua", "go", "zig", "markdown", "json", "yaml", "javascript",
"typescript", "bash", "python", "c_sharp", "cpp", "gleam", "svelte" },
indent = { enable = true },
sync_install = false,
highlight = { enable = true },
})
local treesitter_parser_config = require("nvim-treesitter.parsers").get_parser_configs()
treesitter_parser_config.templ = {
install_info = {
url = "https://github.com/vrischmann/tree-sitter-templ.git",
files = { "src/parser.c", "src/scanner.c" },
branch = "master",
},
}
vim.treesitter.language.register("templ", "templ")
local treesitter = require("nvim-treesitter")
treesitter.install({ "python", "go", "zig", "markdown", "json", "yaml", "javascript", "typescript", "bash", "python", "lua" })
end
}

View File

@@ -1,11 +1,7 @@
return {
"folke/which-key.nvim",
event = "VeryLazy",
opts = {
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
},
opts = {},
keys = {
{
"<leader>?",
@@ -15,8 +11,9 @@ return {
desc = "Buffer Local Keymaps (which-key)",
},
},
config = function()
config = function(_, opts)
local wk = require("which-key")
wk.setup(opts)
wk.add({
{ "<leader>d", group = "Debug" },
{ "<leader>f", group = "Telescope" },

View File

@@ -1,11 +1,23 @@
vim.g.mapleader = " "
vim.cmd("set tabstop=2")
vim.cmd("set softtabstop=2")
vim.cmd("set shiftwidth=2")
vim.cmd("set expandtab")
vim.cmd("set clipboard+=unnamedplus")
vim.cmd("highlight Normal guibg=none")
vim.cmd("highlight NonText guibg=none")
vim.cmd("highlight Normal ctermbg=none")
vim.cmd("highlight NonText ctermbg=none")
vim.opt.tabstop = 2
vim.opt.softtabstop = 2
vim.opt.shiftwidth = 2
vim.opt.expandtab = true
vim.opt.clipboard:append("unnamedplus")
-- vim.cmd("highlight Normal guibg=none")
-- vim.cmd("highlight NonText guibg=none")
-- vim.cmd("highlight Normal ctermbg=none")
-- vim.cmd("highlight NonText ctermbg=none")
vim.o.winborder = 'rounded'
vim.opt.undofile = true
vim.opt.smartindent = true
vim.opt.wrap = false
vim.opt.cursorline = true
vim.opt.signcolumn = "yes"
vim.opt.scrolloff = 8
vim.opt.sidescrolloff = 8

View File

@@ -1,42 +0,0 @@
autoload -Uz compinit
compinit
setopt correctall
autoload -U promptinit
promptinit; prompt gentoo
zstyle ':completion::complete:*' use-cache 1
export HISTFILE=~/.zsh_history
export SAVEHIST=1000
export HISTSIZE=1000
bindkey '^R' history-incremental-search-backward
bindkey '^r' history-incremental-pattern-search-backward
setopt hist_ignore_space
setopt hist_ignore_dups
setopt appendhistory
unsetopt beep
# zstyle :compinstall filename '/home/zam/.zshrc'
export EDITOR='nvim'
alias vim='nvim'
alias cd='z'
alias ls='eza --icons=always'
export path
type starship_zle-keymap-select >/dev/null || \
{
eval "$(starship init zsh)"
}
eval "$(zoxide init zsh)"
eval "$(direnv hook zsh)"
source /usr/share/zsh/site-functions/zsh-autosuggestions.zsh
source /usr/share/zsh/site-functions/zsh-syntax-highlighting.zsh
fastfetch

73
dot_zshrc.tmpl Normal file
View File

@@ -0,0 +1,73 @@
# Auto generated by chezmoi
{{ if eq .chezmoi.hostname "ubuntu" }}
if [ "$TMUX" = "" ]; then tmux new-session -A -s default; fi
{{ end }}
autoload -Uz compinit
compinit
setopt correctall
autoload -U promptinit
promptinit
{{ if eq .chezmoi.hostname "gentoo" }}
prompt gentoo
{{ end }}
zstyle ':completion::complete:*' use-cache 1
export HISTFILE=~/.zsh_history
export SAVEHIST=1000
export HISTSIZE=1000
bindkey '^R' history-incremental-search-backward
bindkey '^r' history-incremental-pattern-search-backward
setopt hist_ignore_space
setopt hist_ignore_dups
setopt appendhistory
unsetopt beep
export EDITOR='nvim'
alias vim='nvim'
alias cd='z'
alias ls='eza --icons=always'
{{ if eq .chezmoi.os "darwin" }}
PATH="/opt/homebrew/opt/gnu-sed/libexec/gnubin:$PATH"
export PATH
{{ else if eq .chezmoi.hostname "ubuntu" }}
path+=("/home/ubuntu/nvim-linux-x86_64/bin")
export PATH
{{ end }}
source <(chezmoi completion zsh)
eval "$(starship init zsh)"
eval "$(zoxide init zsh)"
{{ if eq .chezmoi.hostname "gentoo" }}
eval "$(direnv hook zsh)"
source /usr/share/zsh/site-functions/zsh-autosuggestions.zsh
source /usr/share/zsh/site-functions/zsh-syntax-highlighting.zsh
{{ else if eq .chezmoi.os "darwin" }}
eval "$(/opt/homebrew/bin/brew shellenv)"
source $(brew --prefix)/share/zsh-autosuggestions/zsh-autosuggestions.zsh
source <(kubectl completion zsh)
source <(kubebuilder completion zsh)
source $(brew --prefix)/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
{{ else if eq .chezmoi.hostname "ubuntu" }}
eval "$(direnv hook zsh)"
source /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh
{{ end }}
{{ if ne .chezmoi.hostname "ubuntu"}}
fastfetch
{{ end }}