Compare commits
31 Commits
acdf747c02
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| b80cd3136b | |||
| 04d720f6c8 | |||
| 9d0e106178 | |||
|
|
5984d43664 | ||
|
|
52369a36f5 | ||
| 8e50bb2f46 | |||
|
|
451230051b | ||
| eeb6d02462 | |||
| 12e3fd6b74 | |||
| 84f687e9f1 | |||
| 66ed635dba | |||
|
|
760dd789f2 | ||
|
|
fd222d8bfb | ||
|
|
2a37f5e7eb | ||
|
|
d4ba5ef449 | ||
|
|
b1b58b070d | ||
|
|
a22ace4d30 | ||
|
|
cbaff88903 | ||
|
|
def372f8b8 | ||
|
|
1fb5a934ca | ||
|
|
b47ca1487f | ||
|
|
53d4c09803 | ||
|
|
7237aacc2b | ||
|
|
c4d7ac3103 | ||
|
|
bcf2cd8c9e | ||
|
|
eab9bdfe94 | ||
|
|
21d2e9b2de | ||
| 31ee269cab | |||
| d0f14ed4a1 | |||
| 68484156fc | |||
| 7eaec6d1d7 |
8
.chezmoiignore
Normal file
8
.chezmoiignore
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
README.md
|
||||||
|
{{- if ne .chezmoi.hostname "gentoo" }}
|
||||||
|
.wallpaper
|
||||||
|
.config/dunst
|
||||||
|
.config/fuzzel
|
||||||
|
.config/hypr
|
||||||
|
.config/waybar
|
||||||
|
{{ end }}
|
||||||
@@ -45,9 +45,9 @@ set -U fish_complete_path $fish_complete_path /nix/var/nix/profiles/default/shar
|
|||||||
set -Ux EDITOR nvim
|
set -Ux EDITOR nvim
|
||||||
set -U fish_history_max 1000
|
set -U fish_history_max 1000
|
||||||
|
|
||||||
{{ if eq .chezmoi.hostname "ubuntu" }}
|
{{ if eq .chezmoi.hostname "ubuntu" -}}
|
||||||
fish_add_path /opt/nvim-linux-x86_64/bin
|
fish_add_path /opt/nvim-linux-x86_64/bin ~/.cargo/bin/
|
||||||
{{ end }}
|
{{- end }}
|
||||||
|
|
||||||
alias vim='nvim'
|
alias vim='nvim'
|
||||||
alias cd='z'
|
alias cd='z'
|
||||||
@@ -60,4 +60,3 @@ chezmoi completion fish | source
|
|||||||
direnv hook fish | source
|
direnv hook fish | source
|
||||||
zoxide init fish | source
|
zoxide init fish | source
|
||||||
starship init fish | source
|
starship init fish | source
|
||||||
chezmoi completion fish | source
|
|
||||||
|
|||||||
@@ -1,24 +0,0 @@
|
|||||||
theme = Catppuccin Mocha
|
|
||||||
font-feature=-calt
|
|
||||||
font-feature=-liga
|
|
||||||
font-feature=-dlig
|
|
||||||
|
|
||||||
font-family = Hack Nerd Font Mono
|
|
||||||
|
|
||||||
background-opacity=0.75
|
|
||||||
background-blur=true
|
|
||||||
|
|
||||||
# shell-integration-features = ssh-terminfo,ssh-env
|
|
||||||
|
|
||||||
keybind = cmd+t=unbind
|
|
||||||
keybind = cmd+n=unbind
|
|
||||||
keybind = cmd+w=unbind
|
|
||||||
keybind = cmd+plus=unbind
|
|
||||||
keybind = cmd+minus=unbind
|
|
||||||
|
|
||||||
keybind = cmd+opt+left=unbind
|
|
||||||
keybind = cmd+opt+right=unbind
|
|
||||||
keybind = alt+left=unbind
|
|
||||||
keybind = alt+right=unbind
|
|
||||||
|
|
||||||
keybind = ctrl+v=paste_from_clipboard
|
|
||||||
46
dot_config/ghostty/config.tmpl
Normal file
46
dot_config/ghostty/config.tmpl
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
# 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
|
||||||
|
|
||||||
|
keybind = cmd+t=unbind
|
||||||
|
keybind = cmd+n=unbind
|
||||||
|
keybind = cmd+w=unbind
|
||||||
|
keybind = cmd+plus=unbind
|
||||||
|
keybind = cmd+minus=unbind
|
||||||
|
|
||||||
|
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
|
||||||
|
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 }}
|
||||||
11
dot_config/hypr/config/autostart.lua
Normal file
11
dot_config/hypr/config/autostart.lua
Normal 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)
|
||||||
@@ -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)" - | swappy -f -
|
|
||||||
|
|
||||||
# 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
|
|
||||||
92
dot_config/hypr/config/binds.lua
Normal file
92
dot_config/hypr/config/binds.lua
Normal 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 })
|
||||||
8
dot_config/hypr/config/constants.lua
Normal file
8
dot_config/hypr/config/constants.lua
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
TERMINAL = "ghostty"
|
||||||
|
MENU = "fuzzel"
|
||||||
|
BROWSER = "firefox"
|
||||||
|
HYPRLOCK = "hyprlock"
|
||||||
|
STEAM = "steam"
|
||||||
|
|
||||||
|
MAIN_DISPLAY = "DP-7"
|
||||||
|
SECONDARY_DISPLAY = "DP-6"
|
||||||
@@ -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
|
|
||||||
10
dot_config/hypr/config/env.lua
Normal file
10
dot_config/hypr/config/env.lua
Normal 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")
|
||||||
@@ -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"
|
|
||||||
|
|
||||||
@@ -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 = 2
|
|
||||||
gaps_out = 10
|
|
||||||
|
|
||||||
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 =
|
|
||||||
}
|
|
||||||
132
dot_config/hypr/config/general.lua
Normal file
132
dot_config/hypr/config/general.lua
Normal 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 = "",
|
||||||
|
})
|
||||||
@@ -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
|
|
||||||
@@ -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]+)$
|
|
||||||
61
dot_config/hypr/config/rules.lua
Normal file
61
dot_config/hypr/config/rules.lua
Normal 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"
|
||||||
|
})
|
||||||
10
dot_config/hypr/dot_luarc.json
Normal file
10
dot_config/hypr/dot_luarc.json
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"workspace": {
|
||||||
|
"library": [
|
||||||
|
"/usr/share/hypr/stubs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"diagnostics": {
|
||||||
|
"globals": ["hl"]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
IS_LOCKED=$(ps -e | grep hyprlock)
|
|
||||||
|
|
||||||
if [ -z "$IS_LOCKED" ]
|
|
||||||
then
|
|
||||||
hyprlock
|
|
||||||
fi
|
|
||||||
@@ -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
|
|
||||||
@@ -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
|
|
||||||
}
|
|
||||||
6
dot_config/hypr/hyprland.lua
Normal file
6
dot_config/hypr/hyprland.lua
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
require("config.constants")
|
||||||
|
require("config.env")
|
||||||
|
require("config.autostart")
|
||||||
|
require("config.binds")
|
||||||
|
require("config.general")
|
||||||
|
require("config.rules")
|
||||||
@@ -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 {
|
general {
|
||||||
no_fade_in = false
|
|
||||||
grace = 0
|
|
||||||
disable_loading_bar = true
|
|
||||||
hide_cursor = true
|
hide_cursor = true
|
||||||
}
|
}
|
||||||
|
|
||||||
# INPUT FIELD
|
animations {
|
||||||
input-field {
|
enabled = true
|
||||||
monitor = DP-4
|
bezier = ease, 0.25, 0.1, 0.25, 1.0
|
||||||
size = 250, 60
|
animation = fadeIn, 1, 4, ease
|
||||||
outline_thickness = 2
|
animation = fadeOut, 1, 4, ease
|
||||||
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
|
animation = inputFieldDots, 1, 2, ease
|
||||||
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
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# 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 {
|
label {
|
||||||
monitor = DP-4
|
monitor = DP-7
|
||||||
text = cmd[update:1000] date +"%-I:%M%p"
|
text = $TIME
|
||||||
# color = $foreground
|
color = rgba(245, 247, 250, 0.92)
|
||||||
color = rgba(255, 255, 255, 0.6)
|
font_size = 96
|
||||||
font_size = 120
|
font_family = $font
|
||||||
font_family = JetBrains Mono Nerd Font Mono ExtraBold
|
position = 0, -130
|
||||||
position = 0, -300
|
|
||||||
halign = center
|
halign = center
|
||||||
valign = top
|
valign = top
|
||||||
}
|
}
|
||||||
|
|
||||||
# USER
|
|
||||||
label {
|
label {
|
||||||
monitor = DP-4
|
monitor = DP-7
|
||||||
text = Hi there, Zam
|
text = cmd[update:60000] date +"%A, %d %B"
|
||||||
# color = $foreground
|
color = rgba(220, 225, 232, 0.78)
|
||||||
color = rgba(255, 255, 255, 0.6)
|
font_size = 24
|
||||||
font_size = 25
|
font_family = $font
|
||||||
font_family = JetBrains Mono Nerd Font Mono
|
position = 0, -295
|
||||||
position = 0, -40
|
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
|
halign = center
|
||||||
valign = center
|
valign = center
|
||||||
}
|
}
|
||||||
|
|
||||||
# CURRENT SONG
|
label {
|
||||||
# label {
|
monitor = DP-7
|
||||||
# monitor = DP-3
|
text = $LAYOUT
|
||||||
# text = cmd[update:1000] echo "$(~/Documents/Scripts/whatsong.sh)"
|
color = rgba(220, 225, 232, 0.55)
|
||||||
# color = $foreground
|
font_size = 16
|
||||||
# #color = rgba(255, 255, 255, 0.6)
|
font_family = $font
|
||||||
# font_size = 18
|
position = -32, 28
|
||||||
# font_family = JetBrainsMono, Font Awesome 6 Free Solid
|
halign = right
|
||||||
# position = 0, -50
|
valign = bottom
|
||||||
# halign = center
|
}
|
||||||
# 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
|
||||||
|
}
|
||||||
|
|||||||
@@ -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
|
|
||||||
}
|
|
||||||
@@ -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", {})
|
|
||||||
287
dot_config/nvim/init.lua.tmpl
Normal file
287
dot_config/nvim/init.lua.tmpl
Normal 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
|
||||||
@@ -1,35 +1,37 @@
|
|||||||
{
|
{
|
||||||
"FixCursorHold.nvim": { "branch": "master", "commit": "1900f89dc17c603eec29960f57c00bd9ae696495" },
|
"FixCursorHold.nvim": { "branch": "master", "commit": "1900f89dc17c603eec29960f57c00bd9ae696495" },
|
||||||
"autoclose.nvim": { "branch": "main", "commit": "3f86702b54a861a17d7994b2e32a7c648cb12fb1" },
|
"autoclose.nvim": { "branch": "main", "commit": "bafd0368716216fa6a7bb2a43ecd889b44efdb46" },
|
||||||
"blink.cmp": { "branch": "main", "commit": "4b18c32adef2898f95cdef6192cbd5796c1a332d" },
|
"blink.cmp": { "branch": "main", "commit": "78336bc89ee5365633bcf754d93df01678b5c08f" },
|
||||||
"catppuccin": { "branch": "main", "commit": "0a5de4da015a175f416d6ef1eda84661623e0500" },
|
"catppuccin": { "branch": "main", "commit": "0303a7208dba448c459767486a38a6ec05c4216b" },
|
||||||
"conform.nvim": { "branch": "master", "commit": "e969e302bced7ffb9a0a0323629f31feb0ca35a6" },
|
"conform.nvim": { "branch": "master", "commit": "619363c30309d29ffa631e67c8183f2a72caa373" },
|
||||||
"fidget.nvim": { "branch": "main", "commit": "7fa433a83118a70fe24c1ce88d5f0bd3453c0970" },
|
"fidget.nvim": { "branch": "main", "commit": "82404b196e73a00b1727a91903beef5ddc319d22" },
|
||||||
"flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" },
|
"flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" },
|
||||||
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
|
"friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
|
||||||
"lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" },
|
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
|
||||||
"lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" },
|
"lazydev.nvim": { "branch": "main", "commit": "ff2cbcba459b637ec3fd165a2be59b7bbaeedf0d" },
|
||||||
|
"lualine.nvim": { "branch": "master", "commit": "221ce6b2d999187044529f49da6554a92f740a96" },
|
||||||
"mason-nvim-dap.nvim": { "branch": "main", "commit": "9a10e096703966335bd5c46c8c875d5b0690dade" },
|
"mason-nvim-dap.nvim": { "branch": "main", "commit": "9a10e096703966335bd5c46c8c875d5b0690dade" },
|
||||||
"mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" },
|
"mason.nvim": { "branch": "main", "commit": "16ba83bfc8a25f52bb545134f5bee082b195c460" },
|
||||||
"mini.icons": { "branch": "main", "commit": "5b9076dae1bfbe47ba4a14bc8b967cde0ab5d77e" },
|
"mini.icons": { "branch": "main", "commit": "520995f1d75da0e4cc901ee95080b1ff2bc46b94" },
|
||||||
"neotest": { "branch": "master", "commit": "deadfb1af5ce458742671ad3a013acb9a6b41178" },
|
"mini.indentscope": { "branch": "main", "commit": "ad19b1f02223391f3d40440f7ff10607f0043585" },
|
||||||
|
"neotest": { "branch": "master", "commit": "ad991822b7076b1d940b33a9d6d0d30416d5df81" },
|
||||||
"neotest-go": { "branch": "main", "commit": "59b50505053f9c45a9febb79e11a56206c3e3901" },
|
"neotest-go": { "branch": "main", "commit": "59b50505053f9c45a9febb79e11a56206c3e3901" },
|
||||||
"neotest-python": { "branch": "master", "commit": "b0d3a861bd85689d8ed73f0590c47963a7eb1bf9" },
|
"neotest-python": { "branch": "master", "commit": "e6df4f1892f6137f58135917db24d1655937d831" },
|
||||||
"nvim-dap": { "branch": "master", "commit": "7b11f48753ea6a82f09485dadd08016e2a318cf6" },
|
"nvim-dap": { "branch": "master", "commit": "531771530d4f82ad2d21e436e3cc052d68d7aebb" },
|
||||||
"nvim-dap-ui": { "branch": "master", "commit": "cf91d5e2d07c72903d052f5207511bf7ecdb7122" },
|
"nvim-dap-ui": { "branch": "master", "commit": "1a66cabaa4a4da0be107d5eda6d57242f0fe7e49" },
|
||||||
"nvim-dap-virtual-text": { "branch": "master", "commit": "fbdb48c2ed45f4a8293d0d483f7730d24467ccb6" },
|
"nvim-dap-virtual-text": { "branch": "master", "commit": "fbdb48c2ed45f4a8293d0d483f7730d24467ccb6" },
|
||||||
"nvim-lint": { "branch": "master", "commit": "606b823a57b027502a9ae00978ebf4f5d5158098" },
|
"nvim-lint": { "branch": "master", "commit": "d48f3a76189d03b2239f6df1b2f7e3fa8353743b" },
|
||||||
"nvim-lspconfig": { "branch": "master", "commit": "ab5139c99df944479e5a26495a37840fcbb1d512" },
|
"nvim-lspconfig": { "branch": "master", "commit": "229b79051b380377664edc4cbd534930154921a1" },
|
||||||
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
|
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
|
||||||
"nvim-tmux-navigation": { "branch": "main", "commit": "4898c98702954439233fdaf764c39636681e2861" },
|
"nvim-tmux-navigation": { "branch": "main", "commit": "4898c98702954439233fdaf764c39636681e2861" },
|
||||||
"nvim-treesitter": { "branch": "main", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
|
"nvim-treesitter": { "branch": "main", "commit": "4916d6592ede8c07973490d9322f187e07dfefac" },
|
||||||
"nvim-web-devicons": { "branch": "master", "commit": "16d919d768b5bc2921bd7d5a4ee76f158f7ea1c0" },
|
"nvim-web-devicons": { "branch": "master", "commit": "dfbfaa967a6f7ec50789bead7ef87e336c1fa63c" },
|
||||||
"oil.nvim": { "branch": "master", "commit": "0fcc83805ad11cf714a949c98c605ed717e0b83e" },
|
"oil.nvim": { "branch": "master", "commit": "b73018b75affd13fa38e2fc94ef753b465f770d7" },
|
||||||
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
|
"plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" },
|
||||||
"ripgrep": { "branch": "master", "commit": "cb66736f146f093497f4dc537b33d0826f9af33c" },
|
"ripgrep": { "branch": "master", "commit": "82313cf95849bfe425109ad9506a52154879b1b1" },
|
||||||
"telescope-fzf-native.nvim": { "branch": "main", "commit": "6fea601bd2b694c6f2ae08a6c6fab14930c60e2c" },
|
"telescope-fzf-native.nvim": { "branch": "main", "commit": "b25b749b9db64d375d782094e2b9dce53ad53a40" },
|
||||||
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
|
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
|
||||||
"telescope.nvim": { "branch": "master", "commit": "6312868392331c9c0f22725041f1ec2bef57c751" },
|
"telescope.nvim": { "branch": "master", "commit": "7d324792b7943e4aa16ad007212e6acc6f9fe335" },
|
||||||
"tiny-inline-diagnostic.nvim": { "branch": "main", "commit": "ba133b3e932416e4b9507095731a6d7276878fe8" },
|
"tiny-inline-diagnostic.nvim": { "branch": "main", "commit": "680762989e8b05a72e90769959d0fb9a557e6917" },
|
||||||
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
|
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
return {
|
return {
|
||||||
"saghen/blink.cmp",
|
"saghen/blink.cmp",
|
||||||
dependecies = { "rafamadriz/friendly-snippets" },
|
dependencies = { "rafamadriz/friendly-snippets" },
|
||||||
version = "1.*",
|
version = "1.*",
|
||||||
---@module 'blink.cmp'
|
---@module 'blink.cmp'
|
||||||
---@type blink.cmp.Config
|
---@type blink.cmp.Config
|
||||||
|
|||||||
@@ -5,9 +5,23 @@ return
|
|||||||
priority = 1000,
|
priority = 1000,
|
||||||
lazy = false,
|
lazy = false,
|
||||||
config = function()
|
config = function()
|
||||||
-- require("catppuccin").setup({
|
require("catppuccin").setup({
|
||||||
-- transparent_background = true,
|
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"
|
vim.cmd.colorscheme "catppuccin"
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ return {
|
|||||||
conform.setup {
|
conform.setup {
|
||||||
formatters_by_ft = {
|
formatters_by_ft = {
|
||||||
lua = { "stylua" },
|
lua = { "stylua" },
|
||||||
python = { "isort", "black", lsp_format = "fallback" },
|
python = { "isort", "black", "ruff", lsp_format = "fallback" },
|
||||||
gotmpl = { "djlint" }
|
gotmpl = { "djlint" }
|
||||||
},
|
},
|
||||||
format_on_save = {
|
format_on_save = {
|
||||||
|
|||||||
@@ -27,8 +27,7 @@ return {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- Configurations
|
-- Configurations
|
||||||
dap.configurations = {
|
dap.configurations.python = {
|
||||||
python = {
|
|
||||||
{
|
{
|
||||||
-- The first three options are required by nvim-dap
|
-- The first three options are required by nvim-dap
|
||||||
type = "python", -- the type here established the link to the adapter definition: `dap.adapters.python`
|
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
|
elseif vim.fn.executable(cwd .. "/.venv/bin/python") == 1 then
|
||||||
return cwd .. "/.venv/bin/python"
|
return cwd .. "/.venv/bin/python"
|
||||||
else
|
else
|
||||||
return "/usr/bin/python"
|
return vim.fn.exepath("python")
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Dap UI
|
-- Dap UI
|
||||||
|
|||||||
@@ -2,9 +2,43 @@ return {
|
|||||||
'mfussenegger/nvim-lint',
|
'mfussenegger/nvim-lint',
|
||||||
config = function()
|
config = function()
|
||||||
local lint = require("lint")
|
local lint = require("lint")
|
||||||
lint.linters_by_ft = {
|
-- lint.linters_by_ft = {
|
||||||
python = { 'mypy' }
|
-- 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 })
|
local lint_augroup = vim.api.nvim_create_augroup("lint", { clear = true })
|
||||||
vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, {
|
vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, {
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
return {
|
return {
|
||||||
"neovim/nvim-lspconfig",
|
"neovim/nvim-lspconfig",
|
||||||
config = function()
|
config = function()
|
||||||
vim.lsp.enable({ "lua_ls",
|
vim.lsp.enable({
|
||||||
|
"lua_ls",
|
||||||
"basedpyright",
|
"basedpyright",
|
||||||
"gopls",
|
"gopls",
|
||||||
"html",
|
"html",
|
||||||
"yamlls",
|
"yamlls",
|
||||||
"svelte-language-server",
|
"svelte",
|
||||||
"clangd",
|
"clangd",
|
||||||
"ansiblels",
|
"ansiblels",
|
||||||
"vtsls",
|
"vtsls",
|
||||||
@@ -15,13 +16,18 @@ return {
|
|||||||
"rust_analyzer",
|
"rust_analyzer",
|
||||||
"templ",
|
"templ",
|
||||||
"tailwindcss",
|
"tailwindcss",
|
||||||
"nil_ls"
|
"nil_ls",
|
||||||
|
"gleam",
|
||||||
|
"ty"
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
-- Testing basedpyright atm, change to jedi idk
|
-- Testing basedpyright atm, change to jedi idk
|
||||||
vim.lsp.config("basedpyright", {
|
vim.lsp.config("basedpyright", {
|
||||||
settings = {
|
settings = {
|
||||||
|
python = {
|
||||||
|
pythonPath = vim.fn.exepath("python"),
|
||||||
|
},
|
||||||
['basedpyright'] = {
|
['basedpyright'] = {
|
||||||
analysis = {
|
analysis = {
|
||||||
typeCheckingMode = "basic",
|
typeCheckingMode = "basic",
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ return {
|
|||||||
config = function()
|
config = function()
|
||||||
require('lualine').setup({
|
require('lualine').setup({
|
||||||
options = {
|
options = {
|
||||||
theme = 'dracula'
|
theme = 'catppuccin-mocha'
|
||||||
}
|
},
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,10 @@ return {
|
|||||||
config = function()
|
config = function()
|
||||||
require("neotest").setup({
|
require("neotest").setup({
|
||||||
adapters = {
|
adapters = {
|
||||||
require("neotest-python"),
|
require("neotest-python")({
|
||||||
|
python = vim.fn.exepath("python"),
|
||||||
|
runner = "pytest",
|
||||||
|
}),
|
||||||
require("neotest-go")
|
require("neotest-go")
|
||||||
},
|
},
|
||||||
diagnostic = {
|
diagnostic = {
|
||||||
|
|||||||
@@ -1,15 +1,11 @@
|
|||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
'nvim-telescope/telescope.nvim',
|
'nvim-telescope/telescope.nvim',
|
||||||
tag = '0.1.6',
|
|
||||||
dependencies = {
|
dependencies = {
|
||||||
'nvim-lua/plenary.nvim',
|
'nvim-lua/plenary.nvim',
|
||||||
'BurntSushi/ripgrep',
|
'BurntSushi/ripgrep',
|
||||||
{ 'nvim-telescope/telescope-fzf-native.nvim', build = 'make' }
|
{ 'nvim-telescope/telescope-fzf-native.nvim', build = 'make' }
|
||||||
},
|
},
|
||||||
},
|
|
||||||
{
|
|
||||||
'nvim-telescope/telescope-ui-select.nvim',
|
|
||||||
config = function()
|
config = function()
|
||||||
local telescope = require("telescope")
|
local telescope = require("telescope")
|
||||||
telescope.setup({
|
telescope.setup({
|
||||||
@@ -29,5 +25,8 @@ return {
|
|||||||
telescope.load_extension("ui-select")
|
telescope.load_extension("ui-select")
|
||||||
telescope.load_extension("fzf")
|
telescope.load_extension("fzf")
|
||||||
end
|
end
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'nvim-telescope/telescope-ui-select.nvim',
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
{{ if ne .chezmoi.hostname "gentoo" }}
|
||||||
return {
|
return {
|
||||||
'alexghergh/nvim-tmux-navigation',
|
'alexghergh/nvim-tmux-navigation',
|
||||||
config = function()
|
config = function()
|
||||||
@@ -13,3 +14,6 @@ return {
|
|||||||
}
|
}
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
{{ else }}
|
||||||
|
return {}
|
||||||
|
{{ end }}
|
||||||
@@ -1,25 +1,10 @@
|
|||||||
return {
|
return {
|
||||||
"nvim-treesitter/nvim-treesitter",
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
branch = "main",
|
||||||
|
lazy = false,
|
||||||
build = ":TSUpdate",
|
build = ":TSUpdate",
|
||||||
config = function()
|
config = function()
|
||||||
require("nvim-treesitter.configs").setup({
|
local treesitter = require("nvim-treesitter")
|
||||||
ensure_installed = { "lua", "go", "zig", "markdown", "json", "yaml", "javascript",
|
treesitter.install({ "python", "go", "zig", "markdown", "json", "yaml", "javascript", "typescript", "bash", "python", "lua" })
|
||||||
"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")
|
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,7 @@
|
|||||||
return {
|
return {
|
||||||
"folke/which-key.nvim",
|
"folke/which-key.nvim",
|
||||||
event = "VeryLazy",
|
event = "VeryLazy",
|
||||||
opts = {
|
opts = {},
|
||||||
-- your configuration comes here
|
|
||||||
-- or leave it empty to use the default settings
|
|
||||||
-- refer to the configuration section below
|
|
||||||
},
|
|
||||||
keys = {
|
keys = {
|
||||||
{
|
{
|
||||||
"<leader>?",
|
"<leader>?",
|
||||||
@@ -15,8 +11,9 @@ return {
|
|||||||
desc = "Buffer Local Keymaps (which-key)",
|
desc = "Buffer Local Keymaps (which-key)",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
config = function()
|
config = function(_, opts)
|
||||||
local wk = require("which-key")
|
local wk = require("which-key")
|
||||||
|
wk.setup(opts)
|
||||||
wk.add({
|
wk.add({
|
||||||
{ "<leader>d", group = "Debug" },
|
{ "<leader>d", group = "Debug" },
|
||||||
{ "<leader>f", group = "Telescope" },
|
{ "<leader>f", group = "Telescope" },
|
||||||
|
|||||||
@@ -1,11 +1,23 @@
|
|||||||
vim.g.mapleader = " "
|
vim.g.mapleader = " "
|
||||||
vim.cmd("set tabstop=2")
|
|
||||||
vim.cmd("set softtabstop=2")
|
vim.opt.tabstop = 2
|
||||||
vim.cmd("set shiftwidth=2")
|
vim.opt.softtabstop = 2
|
||||||
vim.cmd("set expandtab")
|
vim.opt.shiftwidth = 2
|
||||||
vim.cmd("set clipboard+=unnamedplus")
|
vim.opt.expandtab = true
|
||||||
vim.cmd("highlight Normal guibg=none")
|
|
||||||
vim.cmd("highlight NonText guibg=none")
|
vim.opt.clipboard:append("unnamedplus")
|
||||||
vim.cmd("highlight Normal ctermbg=none")
|
|
||||||
vim.cmd("highlight NonText ctermbg=none")
|
-- 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.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
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
"modules-left": ["hyprland/workspaces"],
|
"modules-left": ["hyprland/workspaces"],
|
||||||
"modules-center": ["hyprland/window"],
|
"modules-center": ["hyprland/window"],
|
||||||
"modules-right": ["cpu", "memory", "network", "pulseaudio", "clock"],
|
"modules-right": ["cpu", "memory", "network", "privacy", "pulseaudio", "clock"],
|
||||||
|
|
||||||
"hyprland/workspaces": {
|
"hyprland/workspaces": {
|
||||||
"disable-scroll": true,
|
"disable-scroll": true,
|
||||||
@@ -31,8 +31,6 @@
|
|||||||
|
|
||||||
"network": {
|
"network": {
|
||||||
"format": " {bandwidthDownBits} {bandwidthUpBits}",
|
"format": " {bandwidthDownBits} {bandwidthUpBits}",
|
||||||
// "format-wifi": " {essid}",
|
|
||||||
// "format-ethernet": " eth",
|
|
||||||
"format-disconnected": "⚠ offline",
|
"format-disconnected": "⚠ offline",
|
||||||
"interval": 5
|
"interval": 5
|
||||||
},
|
},
|
||||||
@@ -40,11 +38,35 @@
|
|||||||
"pulseaudio": {
|
"pulseaudio": {
|
||||||
"format": " {volume}%",
|
"format": " {volume}%",
|
||||||
"format-muted": " muted",
|
"format-muted": " muted",
|
||||||
"on-click": "pavucontrol"
|
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||||
},
|
},
|
||||||
|
|
||||||
"clock": {
|
"clock": {
|
||||||
"format": " {:%H:%M}",
|
"interval": 60,
|
||||||
"tooltip-format": "{:%Y-%m-%d %H:%M:%S}"
|
"timezone": "Europe/Berlin",
|
||||||
|
"format": "{:%a %d.%m %R }",
|
||||||
|
"tooltip-format": "<tt><big>{calendar}</big></tt>",
|
||||||
|
"calendar": {
|
||||||
|
"mode" : "month",
|
||||||
|
"mode-mon-col" : 3,
|
||||||
|
"weeks-pos" : "right",
|
||||||
|
"on-scroll" : 1,
|
||||||
|
"on-click-right": "mode",
|
||||||
|
"format": {
|
||||||
|
"months": "<span color='#cba6f7'><b>{}</b></span>",
|
||||||
|
"days": "<span color='#cdd6f4'><b>{}</b></span>",
|
||||||
|
"weeks": "<span color='#94e2d5'>W{}</span>",
|
||||||
|
"weekdays": "<span color='#f9e2af'><b>{}</b></span>",
|
||||||
|
"today": "<span color='#f5e0dc'><b><u>{}</u></b></span>"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"actions": {
|
||||||
|
"on-click-right": "mode",
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"privacy": {
|
||||||
|
"icon-size": 16,
|
||||||
|
"spacing": 5
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,12 @@ window#waybar {
|
|||||||
color: #6c7086;
|
color: #6c7086;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#workspaces button.visible {
|
||||||
|
color: #cdd6f4;
|
||||||
|
}
|
||||||
|
|
||||||
#workspaces button.active {
|
#workspaces button.active {
|
||||||
|
background: #313244;
|
||||||
color: #89b4fa;
|
color: #89b4fa;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -28,7 +33,7 @@ window#waybar {
|
|||||||
color: #a6adc8;
|
color: #a6adc8;
|
||||||
}
|
}
|
||||||
|
|
||||||
#cpu, #memory, #network, #pulseaudio, #clock {
|
#cpu, #memory, #network, #pulseaudio, #clock, #tray {
|
||||||
padding: 0 10px;
|
padding: 0 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
42
dot_zshrc
42
dot_zshrc
@@ -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
73
dot_zshrc.tmpl
Normal 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 }}
|
||||||
Reference in New Issue
Block a user