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 -U fish_history_max 1000
|
||||
|
||||
{{ if eq .chezmoi.hostname "ubuntu" }}
|
||||
fish_add_path /opt/nvim-linux-x86_64/bin
|
||||
{{ end }}
|
||||
{{ if eq .chezmoi.hostname "ubuntu" -}}
|
||||
fish_add_path /opt/nvim-linux-x86_64/bin ~/.cargo/bin/
|
||||
{{- end }}
|
||||
|
||||
alias vim='nvim'
|
||||
alias cd='z'
|
||||
@@ -60,4 +60,3 @@ chezmoi completion fish | source
|
||||
direnv hook fish | source
|
||||
zoxide init fish | source
|
||||
starship init fish | source
|
||||
chezmoi completion fish | source
|
||||
|
||||
@@ -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 {
|
||||
no_fade_in = false
|
||||
grace = 0
|
||||
disable_loading_bar = true
|
||||
hide_cursor = true
|
||||
hide_cursor = true
|
||||
}
|
||||
|
||||
# INPUT FIELD
|
||||
input-field {
|
||||
monitor = DP-4
|
||||
size = 250, 60
|
||||
outline_thickness = 2
|
||||
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
|
||||
dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0
|
||||
dots_center = true
|
||||
outer_color = rgba(0, 0, 0, 0)
|
||||
inner_color = rgba(0, 0, 0, 0.5)
|
||||
font_color = rgb(200, 200, 200)
|
||||
fade_on_empty = false
|
||||
# font_family = JetBrains Mono Nerd Font Mono
|
||||
placeholder_text = <i><span foreground="##cdd6f4">Input Password...</span></i>
|
||||
hide_input = false
|
||||
position = 0, -120
|
||||
halign = center
|
||||
valign = center
|
||||
animations {
|
||||
enabled = true
|
||||
bezier = ease, 0.25, 0.1, 0.25, 1.0
|
||||
animation = fadeIn, 1, 4, ease
|
||||
animation = fadeOut, 1, 4, ease
|
||||
animation = inputFieldDots, 1, 2, ease
|
||||
}
|
||||
|
||||
# TIME
|
||||
background {
|
||||
monitor = DP-7
|
||||
path = screenshot
|
||||
blur_passes = 4
|
||||
contrast = 0.95
|
||||
brightness = 0.55
|
||||
vibrancy = 0.18
|
||||
vibrancy_darkness = 0.2
|
||||
}
|
||||
|
||||
background {
|
||||
monitor = DP-6
|
||||
path = screenshot
|
||||
blur_passes = 4
|
||||
contrast = 0.95
|
||||
brightness = 0.50
|
||||
vibrancy = 0.16
|
||||
vibrancy_darkness = 0.25
|
||||
}
|
||||
|
||||
# Main monitor: DP-7
|
||||
label {
|
||||
monitor = DP-4
|
||||
text = cmd[update:1000] date +"%-I:%M%p"
|
||||
# color = $foreground
|
||||
color = rgba(255, 255, 255, 0.6)
|
||||
font_size = 120
|
||||
font_family = JetBrains Mono Nerd Font Mono ExtraBold
|
||||
position = 0, -300
|
||||
monitor = DP-7
|
||||
text = $TIME
|
||||
color = rgba(245, 247, 250, 0.92)
|
||||
font_size = 96
|
||||
font_family = $font
|
||||
position = 0, -130
|
||||
halign = center
|
||||
valign = top
|
||||
}
|
||||
|
||||
# USER
|
||||
label {
|
||||
monitor = DP-4
|
||||
text = Hi there, Zam
|
||||
# color = $foreground
|
||||
color = rgba(255, 255, 255, 0.6)
|
||||
font_size = 25
|
||||
font_family = JetBrains Mono Nerd Font Mono
|
||||
position = 0, -40
|
||||
monitor = DP-7
|
||||
text = cmd[update:60000] date +"%A, %d %B"
|
||||
color = rgba(220, 225, 232, 0.78)
|
||||
font_size = 24
|
||||
font_family = $font
|
||||
position = 0, -295
|
||||
halign = center
|
||||
valign = top
|
||||
}
|
||||
|
||||
input-field {
|
||||
monitor = DP-7
|
||||
size = 420, 58
|
||||
outline_thickness = 2
|
||||
rounding = 14
|
||||
|
||||
outer_color = rgba(33ccffee) rgba(00ff99ee) 45deg
|
||||
check_color = rgba(00ff99ee) rgba(33ccffee) 45deg
|
||||
fail_color = rgba(ff6633ee) rgba(ff0066ee) 45deg
|
||||
|
||||
inner_color = rgba(12, 14, 18, 0.58)
|
||||
font_color = rgba(245, 247, 250, 0.90)
|
||||
font_family = $font
|
||||
|
||||
dots_size = 0.22
|
||||
dots_spacing = 0.24
|
||||
dots_center = true
|
||||
|
||||
fade_on_empty = false
|
||||
placeholder_text = <span foreground="##dce1e8">Password</span>
|
||||
fail_text = <span foreground="##ff8a8a">$PAMFAIL</span>
|
||||
|
||||
position = 0, -95
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# CURRENT SONG
|
||||
# label {
|
||||
# monitor = DP-3
|
||||
# text = cmd[update:1000] echo "$(~/Documents/Scripts/whatsong.sh)"
|
||||
# color = $foreground
|
||||
# #color = rgba(255, 255, 255, 0.6)
|
||||
# font_size = 18
|
||||
# font_family = JetBrainsMono, Font Awesome 6 Free Solid
|
||||
# position = 0, -50
|
||||
# halign = center
|
||||
# valign = bottom
|
||||
# }
|
||||
#
|
||||
label {
|
||||
monitor = DP-7
|
||||
text = $LAYOUT
|
||||
color = rgba(220, 225, 232, 0.55)
|
||||
font_size = 16
|
||||
font_family = $font
|
||||
position = -32, 28
|
||||
halign = right
|
||||
valign = bottom
|
||||
}
|
||||
|
||||
# Secondary rotated monitor: DP-6
|
||||
label {
|
||||
monitor = DP-6
|
||||
text = $TIME
|
||||
color = rgba(245, 247, 250, 0.74)
|
||||
font_size = 58
|
||||
font_family = $font
|
||||
position = 0, -80
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
label {
|
||||
monitor = DP-6
|
||||
text = cmd[update:60000] date +"%d %b"
|
||||
color = rgba(220, 225, 232, 0.58)
|
||||
font_size = 22
|
||||
font_family = $font
|
||||
position = 0, -145
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
@@ -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" },
|
||||
"autoclose.nvim": { "branch": "main", "commit": "3f86702b54a861a17d7994b2e32a7c648cb12fb1" },
|
||||
"blink.cmp": { "branch": "main", "commit": "4b18c32adef2898f95cdef6192cbd5796c1a332d" },
|
||||
"catppuccin": { "branch": "main", "commit": "0a5de4da015a175f416d6ef1eda84661623e0500" },
|
||||
"conform.nvim": { "branch": "master", "commit": "e969e302bced7ffb9a0a0323629f31feb0ca35a6" },
|
||||
"fidget.nvim": { "branch": "main", "commit": "7fa433a83118a70fe24c1ce88d5f0bd3453c0970" },
|
||||
"autoclose.nvim": { "branch": "main", "commit": "bafd0368716216fa6a7bb2a43ecd889b44efdb46" },
|
||||
"blink.cmp": { "branch": "main", "commit": "78336bc89ee5365633bcf754d93df01678b5c08f" },
|
||||
"catppuccin": { "branch": "main", "commit": "0303a7208dba448c459767486a38a6ec05c4216b" },
|
||||
"conform.nvim": { "branch": "master", "commit": "619363c30309d29ffa631e67c8183f2a72caa373" },
|
||||
"fidget.nvim": { "branch": "main", "commit": "82404b196e73a00b1727a91903beef5ddc319d22" },
|
||||
"flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
|
||||
"lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
|
||||
"lazydev.nvim": { "branch": "main", "commit": "ff2cbcba459b637ec3fd165a2be59b7bbaeedf0d" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "221ce6b2d999187044529f49da6554a92f740a96" },
|
||||
"mason-nvim-dap.nvim": { "branch": "main", "commit": "9a10e096703966335bd5c46c8c875d5b0690dade" },
|
||||
"mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" },
|
||||
"mini.icons": { "branch": "main", "commit": "5b9076dae1bfbe47ba4a14bc8b967cde0ab5d77e" },
|
||||
"neotest": { "branch": "master", "commit": "deadfb1af5ce458742671ad3a013acb9a6b41178" },
|
||||
"mason.nvim": { "branch": "main", "commit": "16ba83bfc8a25f52bb545134f5bee082b195c460" },
|
||||
"mini.icons": { "branch": "main", "commit": "520995f1d75da0e4cc901ee95080b1ff2bc46b94" },
|
||||
"mini.indentscope": { "branch": "main", "commit": "ad19b1f02223391f3d40440f7ff10607f0043585" },
|
||||
"neotest": { "branch": "master", "commit": "ad991822b7076b1d940b33a9d6d0d30416d5df81" },
|
||||
"neotest-go": { "branch": "main", "commit": "59b50505053f9c45a9febb79e11a56206c3e3901" },
|
||||
"neotest-python": { "branch": "master", "commit": "b0d3a861bd85689d8ed73f0590c47963a7eb1bf9" },
|
||||
"nvim-dap": { "branch": "master", "commit": "7b11f48753ea6a82f09485dadd08016e2a318cf6" },
|
||||
"nvim-dap-ui": { "branch": "master", "commit": "cf91d5e2d07c72903d052f5207511bf7ecdb7122" },
|
||||
"neotest-python": { "branch": "master", "commit": "e6df4f1892f6137f58135917db24d1655937d831" },
|
||||
"nvim-dap": { "branch": "master", "commit": "531771530d4f82ad2d21e436e3cc052d68d7aebb" },
|
||||
"nvim-dap-ui": { "branch": "master", "commit": "1a66cabaa4a4da0be107d5eda6d57242f0fe7e49" },
|
||||
"nvim-dap-virtual-text": { "branch": "master", "commit": "fbdb48c2ed45f4a8293d0d483f7730d24467ccb6" },
|
||||
"nvim-lint": { "branch": "master", "commit": "606b823a57b027502a9ae00978ebf4f5d5158098" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "ab5139c99df944479e5a26495a37840fcbb1d512" },
|
||||
"nvim-lint": { "branch": "master", "commit": "d48f3a76189d03b2239f6df1b2f7e3fa8353743b" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "229b79051b380377664edc4cbd534930154921a1" },
|
||||
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
|
||||
"nvim-tmux-navigation": { "branch": "main", "commit": "4898c98702954439233fdaf764c39636681e2861" },
|
||||
"nvim-treesitter": { "branch": "main", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "16d919d768b5bc2921bd7d5a4ee76f158f7ea1c0" },
|
||||
"oil.nvim": { "branch": "master", "commit": "0fcc83805ad11cf714a949c98c605ed717e0b83e" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
|
||||
"ripgrep": { "branch": "master", "commit": "cb66736f146f093497f4dc537b33d0826f9af33c" },
|
||||
"telescope-fzf-native.nvim": { "branch": "main", "commit": "6fea601bd2b694c6f2ae08a6c6fab14930c60e2c" },
|
||||
"nvim-treesitter": { "branch": "main", "commit": "4916d6592ede8c07973490d9322f187e07dfefac" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "dfbfaa967a6f7ec50789bead7ef87e336c1fa63c" },
|
||||
"oil.nvim": { "branch": "master", "commit": "b73018b75affd13fa38e2fc94ef753b465f770d7" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" },
|
||||
"ripgrep": { "branch": "master", "commit": "82313cf95849bfe425109ad9506a52154879b1b1" },
|
||||
"telescope-fzf-native.nvim": { "branch": "main", "commit": "b25b749b9db64d375d782094e2b9dce53ad53a40" },
|
||||
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "6312868392331c9c0f22725041f1ec2bef57c751" },
|
||||
"tiny-inline-diagnostic.nvim": { "branch": "main", "commit": "ba133b3e932416e4b9507095731a6d7276878fe8" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "7d324792b7943e4aa16ad007212e6acc6f9fe335" },
|
||||
"tiny-inline-diagnostic.nvim": { "branch": "main", "commit": "680762989e8b05a72e90769959d0fb9a557e6917" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
return {
|
||||
"saghen/blink.cmp",
|
||||
dependecies = { "rafamadriz/friendly-snippets" },
|
||||
dependencies = { "rafamadriz/friendly-snippets" },
|
||||
version = "1.*",
|
||||
---@module 'blink.cmp'
|
||||
---@type blink.cmp.Config
|
||||
|
||||
@@ -5,9 +5,23 @@ return
|
||||
priority = 1000,
|
||||
lazy = false,
|
||||
config = function()
|
||||
-- require("catppuccin").setup({
|
||||
-- transparent_background = true,
|
||||
-- })
|
||||
require("catppuccin").setup({
|
||||
transparent_background = false,
|
||||
|
||||
custom_highlights = function(colors)
|
||||
return {
|
||||
Normal = { bg = colors.base },
|
||||
NormalNC = { bg = colors.mantle },
|
||||
|
||||
WinSeparator = { fg = colors.surface1, bg = colors.mantle },
|
||||
|
||||
StatusLine = { fg = colors.text, bg = colors.surface0 },
|
||||
StatusLineNC = { fg = colors.overlay0, bg = colors.mantle },
|
||||
|
||||
CursorLine = { bg = colors.surface0 },
|
||||
}
|
||||
end
|
||||
})
|
||||
|
||||
vim.cmd.colorscheme "catppuccin"
|
||||
end
|
||||
|
||||
@@ -6,7 +6,7 @@ return {
|
||||
conform.setup {
|
||||
formatters_by_ft = {
|
||||
lua = { "stylua" },
|
||||
python = { "isort", "black", lsp_format = "fallback" },
|
||||
python = { "isort", "black", "ruff", lsp_format = "fallback" },
|
||||
gotmpl = { "djlint" }
|
||||
},
|
||||
format_on_save = {
|
||||
|
||||
@@ -27,31 +27,29 @@ return {
|
||||
})
|
||||
|
||||
-- Configurations
|
||||
dap.configurations = {
|
||||
python = {
|
||||
{
|
||||
-- The first three options are required by nvim-dap
|
||||
type = "python", -- the type here established the link to the adapter definition: `dap.adapters.python`
|
||||
request = "launch",
|
||||
name = "Launch file",
|
||||
dap.configurations.python = {
|
||||
{
|
||||
-- The first three options are required by nvim-dap
|
||||
type = "python", -- the type here established the link to the adapter definition: `dap.adapters.python`
|
||||
request = "launch",
|
||||
name = "Launch file",
|
||||
|
||||
-- Options below are for debugpy, see https://github.com/microsoft/debugpy/wiki/Debug-configuration-settings for supported options
|
||||
-- Options below are for debugpy, see https://github.com/microsoft/debugpy/wiki/Debug-configuration-settings for supported options
|
||||
|
||||
program = "${file}", -- This configuration will launch the current file if used.
|
||||
pythonPath = function()
|
||||
-- debugpy supports launching an application with a different interpreter then the one used to launch debugpy itself.
|
||||
-- The code below looks for a `venv` or `.venv` folder in the current directly and uses the python within.
|
||||
-- You could adapt this - to for example use the `VIRTUAL_ENV` environment variable.
|
||||
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 "/usr/bin/python"
|
||||
end
|
||||
end,
|
||||
},
|
||||
program = "${file}", -- This configuration will launch the current file if used.
|
||||
pythonPath = function()
|
||||
-- debugpy supports launching an application with a different interpreter then the one used to launch debugpy itself.
|
||||
-- The code below looks for a `venv` or `.venv` folder in the current directly and uses the python within.
|
||||
-- You could adapt this - to for example use the `VIRTUAL_ENV` environment variable.
|
||||
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,
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@@ -2,9 +2,43 @@ return {
|
||||
'mfussenegger/nvim-lint',
|
||||
config = function()
|
||||
local lint = require("lint")
|
||||
lint.linters_by_ft = {
|
||||
python = { 'mypy' }
|
||||
}
|
||||
-- lint.linters_by_ft = {
|
||||
-- python = { 'mypy' }
|
||||
-- }
|
||||
|
||||
local function read_pyproject()
|
||||
local results = vim.fs.find("pyproject.toml", { upward = true, stop = vim.loop.os_homedir() })
|
||||
|
||||
local path = results[1]
|
||||
if not path then
|
||||
return nil
|
||||
end
|
||||
|
||||
local ok, lines = pcall(vim.fn.readfile, path)
|
||||
if not ok then
|
||||
return nil
|
||||
end
|
||||
|
||||
return table.concat(lines, "\n")
|
||||
end
|
||||
|
||||
local function python_linters()
|
||||
local linters = {}
|
||||
local pyproject = read_pyproject()
|
||||
|
||||
if pyproject then
|
||||
if pyproject:match("%[tool%.ruff%]") then
|
||||
table.insert(linters, "ruff")
|
||||
end
|
||||
if pyproject:match("%[tool%.mypy%]") then
|
||||
table.insert(linters, "mypy")
|
||||
end
|
||||
end
|
||||
|
||||
return linters
|
||||
end
|
||||
|
||||
lint.linters_by_ft.python = python_linters()
|
||||
|
||||
local lint_augroup = vim.api.nvim_create_augroup("lint", { clear = true })
|
||||
vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, {
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
return {
|
||||
"neovim/nvim-lspconfig",
|
||||
config = function()
|
||||
vim.lsp.enable({ "lua_ls",
|
||||
vim.lsp.enable({
|
||||
"lua_ls",
|
||||
"basedpyright",
|
||||
"gopls",
|
||||
"html",
|
||||
"yamlls",
|
||||
"svelte-language-server",
|
||||
"svelte",
|
||||
"clangd",
|
||||
"ansiblels",
|
||||
"vtsls",
|
||||
@@ -15,13 +16,18 @@ return {
|
||||
"rust_analyzer",
|
||||
"templ",
|
||||
"tailwindcss",
|
||||
"nil_ls"
|
||||
"nil_ls",
|
||||
"gleam",
|
||||
"ty"
|
||||
})
|
||||
|
||||
|
||||
-- Testing basedpyright atm, change to jedi idk
|
||||
vim.lsp.config("basedpyright", {
|
||||
settings = {
|
||||
python = {
|
||||
pythonPath = vim.fn.exepath("python"),
|
||||
},
|
||||
['basedpyright'] = {
|
||||
analysis = {
|
||||
typeCheckingMode = "basic",
|
||||
|
||||
@@ -4,8 +4,8 @@ return {
|
||||
config = function()
|
||||
require('lualine').setup({
|
||||
options = {
|
||||
theme = 'dracula'
|
||||
}
|
||||
theme = 'catppuccin-mocha'
|
||||
},
|
||||
})
|
||||
end
|
||||
}
|
||||
|
||||
@@ -11,7 +11,10 @@ return {
|
||||
config = function()
|
||||
require("neotest").setup({
|
||||
adapters = {
|
||||
require("neotest-python"),
|
||||
require("neotest-python")({
|
||||
python = vim.fn.exepath("python"),
|
||||
runner = "pytest",
|
||||
}),
|
||||
require("neotest-go")
|
||||
},
|
||||
diagnostic = {
|
||||
|
||||
@@ -1,15 +1,11 @@
|
||||
return {
|
||||
{
|
||||
'nvim-telescope/telescope.nvim',
|
||||
tag = '0.1.6',
|
||||
dependencies = {
|
||||
'nvim-lua/plenary.nvim',
|
||||
'BurntSushi/ripgrep',
|
||||
{ 'nvim-telescope/telescope-fzf-native.nvim', build = 'make' }
|
||||
},
|
||||
},
|
||||
{
|
||||
'nvim-telescope/telescope-ui-select.nvim',
|
||||
config = function()
|
||||
local telescope = require("telescope")
|
||||
telescope.setup({
|
||||
@@ -29,5 +25,8 @@ return {
|
||||
telescope.load_extension("ui-select")
|
||||
telescope.load_extension("fzf")
|
||||
end
|
||||
},
|
||||
{
|
||||
'nvim-telescope/telescope-ui-select.nvim',
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{{ if ne .chezmoi.hostname "gentoo" }}
|
||||
return {
|
||||
'alexghergh/nvim-tmux-navigation',
|
||||
config = function()
|
||||
@@ -13,3 +14,6 @@ return {
|
||||
}
|
||||
end
|
||||
}
|
||||
{{ else }}
|
||||
return {}
|
||||
{{ end }}
|
||||
@@ -1,25 +1,10 @@
|
||||
return {
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
branch = "main",
|
||||
lazy = false,
|
||||
build = ":TSUpdate",
|
||||
config = function()
|
||||
require("nvim-treesitter.configs").setup({
|
||||
ensure_installed = { "lua", "go", "zig", "markdown", "json", "yaml", "javascript",
|
||||
"typescript", "bash", "python", "c_sharp", "cpp", "gleam", "svelte" },
|
||||
indent = { enable = true },
|
||||
sync_install = false,
|
||||
|
||||
highlight = { enable = true },
|
||||
})
|
||||
|
||||
local treesitter_parser_config = require("nvim-treesitter.parsers").get_parser_configs()
|
||||
treesitter_parser_config.templ = {
|
||||
install_info = {
|
||||
url = "https://github.com/vrischmann/tree-sitter-templ.git",
|
||||
files = { "src/parser.c", "src/scanner.c" },
|
||||
branch = "master",
|
||||
},
|
||||
}
|
||||
|
||||
vim.treesitter.language.register("templ", "templ")
|
||||
local treesitter = require("nvim-treesitter")
|
||||
treesitter.install({ "python", "go", "zig", "markdown", "json", "yaml", "javascript", "typescript", "bash", "python", "lua" })
|
||||
end
|
||||
}
|
||||
|
||||
@@ -1,11 +1,7 @@
|
||||
return {
|
||||
"folke/which-key.nvim",
|
||||
event = "VeryLazy",
|
||||
opts = {
|
||||
-- your configuration comes here
|
||||
-- or leave it empty to use the default settings
|
||||
-- refer to the configuration section below
|
||||
},
|
||||
opts = {},
|
||||
keys = {
|
||||
{
|
||||
"<leader>?",
|
||||
@@ -15,8 +11,9 @@ return {
|
||||
desc = "Buffer Local Keymaps (which-key)",
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
config = function(_, opts)
|
||||
local wk = require("which-key")
|
||||
wk.setup(opts)
|
||||
wk.add({
|
||||
{ "<leader>d", group = "Debug" },
|
||||
{ "<leader>f", group = "Telescope" },
|
||||
|
||||
@@ -1,11 +1,23 @@
|
||||
vim.g.mapleader = " "
|
||||
vim.cmd("set tabstop=2")
|
||||
vim.cmd("set softtabstop=2")
|
||||
vim.cmd("set shiftwidth=2")
|
||||
vim.cmd("set expandtab")
|
||||
vim.cmd("set clipboard+=unnamedplus")
|
||||
vim.cmd("highlight Normal guibg=none")
|
||||
vim.cmd("highlight NonText guibg=none")
|
||||
vim.cmd("highlight Normal ctermbg=none")
|
||||
vim.cmd("highlight NonText ctermbg=none")
|
||||
|
||||
vim.opt.tabstop = 2
|
||||
vim.opt.softtabstop = 2
|
||||
vim.opt.shiftwidth = 2
|
||||
vim.opt.expandtab = true
|
||||
|
||||
vim.opt.clipboard:append("unnamedplus")
|
||||
|
||||
-- vim.cmd("highlight Normal guibg=none")
|
||||
-- vim.cmd("highlight NonText guibg=none")
|
||||
-- vim.cmd("highlight Normal ctermbg=none")
|
||||
-- vim.cmd("highlight NonText ctermbg=none")
|
||||
|
||||
vim.o.winborder = 'rounded'
|
||||
|
||||
vim.opt.undofile = true
|
||||
vim.opt.smartindent = true
|
||||
vim.opt.wrap = false
|
||||
vim.opt.cursorline = true
|
||||
vim.opt.signcolumn = "yes"
|
||||
vim.opt.scrolloff = 8
|
||||
vim.opt.sidescrolloff = 8
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
"modules-left": ["hyprland/workspaces"],
|
||||
"modules-center": ["hyprland/window"],
|
||||
"modules-right": ["cpu", "memory", "network", "pulseaudio", "clock"],
|
||||
"modules-right": ["cpu", "memory", "network", "privacy", "pulseaudio", "clock"],
|
||||
|
||||
"hyprland/workspaces": {
|
||||
"disable-scroll": true,
|
||||
@@ -31,8 +31,6 @@
|
||||
|
||||
"network": {
|
||||
"format": " {bandwidthDownBits} {bandwidthUpBits}",
|
||||
// "format-wifi": " {essid}",
|
||||
// "format-ethernet": " eth",
|
||||
"format-disconnected": "⚠ offline",
|
||||
"interval": 5
|
||||
},
|
||||
@@ -40,11 +38,35 @@
|
||||
"pulseaudio": {
|
||||
"format": " {volume}%",
|
||||
"format-muted": " muted",
|
||||
"on-click": "pavucontrol"
|
||||
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||
},
|
||||
|
||||
"clock": {
|
||||
"format": " {:%H:%M}",
|
||||
"tooltip-format": "{:%Y-%m-%d %H:%M:%S}"
|
||||
"interval": 60,
|
||||
"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;
|
||||
}
|
||||
|
||||
#workspaces button.visible {
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
background: #313244;
|
||||
color: #89b4fa;
|
||||
}
|
||||
|
||||
@@ -28,7 +33,7 @@ window#waybar {
|
||||
color: #a6adc8;
|
||||
}
|
||||
|
||||
#cpu, #memory, #network, #pulseaudio, #clock {
|
||||
#cpu, #memory, #network, #pulseaudio, #clock, #tray {
|
||||
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