Add hyprland and kitty config

This commit is contained in:
2025-07-29 18:30:16 -07:00
parent e2e2cbd535
commit 6f51550be6
11 changed files with 454 additions and 11 deletions

3
.gitignore vendored
View File

@@ -1 +1,2 @@
nvim/lazylock.json
nvim/lazy-lock.json
hypr/hardware.conf

96
hypr/hyprbinds.conf Normal file
View File

@@ -0,0 +1,96 @@
# Window management
bind = SUPER_L, Q, killactive,
bind = SUPER_L, M, togglefloating,
bind = SUPER_L, M, centerwindow
bindr = SUPER, SUPER_L, exec, ~/.config/scripts/wofi-launch.sh
bind = SUPER_L, B, togglesplit
# Screen locking
bindl = SUPER_L, ESCAPE, exec, ~/.config/scripts/lock.sh
bind = , XF86Go, exec, ~/.config/scripts/idle-toggle.sh
bindl= ,switch:on:Lid Switch, exec, pgrep hyprlock || hyprlock & systemctl suspend
$select = winsel
# Move focus with mainMod + arrow keys
bind = SUPER_L, A, exec, $select 0
bind = SUPER_L, O, exec, $select 1
bind = SUPER_L, E, exec, $select 2
bind = SUPER_L, U, exec, $select 3
# Move windows around with mainMod + arrow keys
bind = SUPER_L, H, movewindow, l
bind = SUPER_L, T, movewindow, u
bind = SUPER_L, N, movewindow, d
bind = SUPER_L, S, movewindow, r
# Navigate multiple monitors
bind = SUPER_L, PERIOD, focusmonitor, -1
bind = SUPER_L, P, movecurrentworkspacetomonitor, -1
# Switch workspaces with mainMod + [0-9]
bind = SUPER_L, 1, workspace, 1
bind = SUPER_L, 2, workspace, 2
bind = SUPER_L, 3, workspace, 3
bind = SUPER_L, 4, workspace, 4
bind = SUPER_L, 5, workspace, 5
bind = SUPER_L, 6, workspace, 6
bind = SUPER_L, 7, workspace, 7
bind = SUPER_L, 8, workspace, 8
bind = SUPER_L, 9, workspace, 9
bind = SUPER_L, 0, exec, hyprctl activewindow | workspace0
bind = SUPER, apostrophe, hyprexpo:expo, toggle
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = SUPER_L SHIFT, 1, movetoworkspace, 1
bind = SUPER_L SHIFT, 2, movetoworkspace, 2
bind = SUPER_L SHIFT, 3, movetoworkspace, 3
bind = SUPER_L SHIFT, 4, movetoworkspace, 4
bind = SUPER_L SHIFT, 5, movetoworkspace, 5
bind = SUPER_L SHIFT, 6, movetoworkspace, 6
bind = SUPER_L SHIFT, 7, movetoworkspace, 7
bind = SUPER_L SHIFT, 8, movetoworkspace, 8
bind = SUPER_L SHIFT, 9, movetoworkspace, 9
bind = SUPER_L SHIFT, 0, movetoworkspace, 10
# Manage special workspace (scratchpad)
bind = SUPER_L, V, togglespecialworkspace
bind = SUPER_L, Z, movetoworkspacesilent, special
bind = SUPER_L, W, movewindow, mon:current
# Move/resize windows
bindm = SUPER_L, mouse:272, movewindow
bindm = SUPER_L, mouse:273, resizewindow
bind = SUPER_L, SPACE, fullscreen
# Resize windows with super + arrow keys
bind = SUPER_L ALT, h, resizeactive, -50 0
bind = SUPER_L ALT, t, resizeactive, 0 -50
bind = SUPER_L ALT, n, resizeactive, 0 50
bind = SUPER_L ALT, s, resizeactive, 50 0
# Open favourites
bind = SUPER_L, G, exec, zen-browser
bind = SUPER_L, C, exec, spotify-launcher
bind = SUPER_L, R, exec, secrets
bind = SUPER_L, L, exec, kitty
# Adjust brightness
bindle = , XF86MonBrightnessUp, exec, brillo -A 8% -q -u 500000
bindle = , XF86MonBrightnessDown, exec, brillo -U 8% -q -u 500000
bindle = SHIFT, XF86MonBrightnessDown, exec, brillo -S 0% -q -u 1000000
bind = , Cancel, exec, ~/.config/scripts/sunset-toggle.sh
# Adjust volume and media
bindle = , XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5%
bindle = , XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5%
bind = , XF86AudioMicMute, exec, playerctl next
bind = , XF86AudioMute, exec, playerctl play-pause
# Screen capturing
bind = SUPER_L, COMMA, exec, pgrep slurp || hyprshot -o ~/Pictures/Screenshots -z -s -m region
bind = SUPER_L ALT, COMMA, exec, pgrep slurp || hyprshot -o ~/Pictures/Screenshots -z -s -m window
bind = SUPER_L SHIFT, COMMA, exec, pgrep slurp || hyprshot -o ~/Pictures/Screenshots -z -s -m active -m output
bind = SUPER_L, SEMICOLON, exec, ~/.config/scripts/zoom.sh
bind = , XF86Display, exec, ~/.config/scripts/vnc-toggle.sh
bind = SHIFT, XF86Display, exec, killall gjs && ags run

3
hypr/hyprcolors.conf Normal file
View File

@@ -0,0 +1,3 @@
$primary = rgba(D89FD6ff)
$primary_container = rgba(4E2A79ff)
$background = rgba(090012ff)

8
hypr/hypridle.conf Normal file
View File

@@ -0,0 +1,8 @@
listener {
timeout = 100
on-timeout = notify-send -a 'Hummingbird' 'Hypridle' 'Suspending in 5 seconds...' -i gnome-suspend -t 1
}
listener {
timeout = 105
on-timeout = ~/.config/scripts/lock.sh
}

181
hypr/hyprland.conf Normal file
View File

@@ -0,0 +1,181 @@
source = ~/.config/hypr/hardware.conf
source = ~/.config/hypr/monitors.conf
source = ~/.config/hypr/hyprcolors.conf
monitor = , preferred, auto, 1.0
monitor = , addreserved, 36, 0, 0, 0
# Run stuff on launch
env = PATH, $PATH:$HOME/.local/bin:$HOME/.cargo/bin
exec-once = hyprlock
exec-once = hypridle
exec-once = nextcloud
exec-once = /lib/polkit-gnome/polkit-gnome-authentication-agent-1
exec-once = keyd-application-mapper -d
exec-once = ags run
exec-once = hyprpm reload
exec-once = tradjust
exec-once = swww-daemon
# Theming with envvars for some reason
env = XCURSOR_SIZE, 22
env = XCURSOR_THEME, GoogleDot-Black
env = HYPRCURSOR_SIZE, 22
env = HYPRCURSOR_THEME, GoogleDot-Hypr
envd = GTK_THEME, catppuccin-mocha-blue-standard+default
env = GTK_ICON_THEME, BeautyLine
envd = QT_QUICK_CONTROLS_STYLE=org.hyprland.style
envd = QT_QPA_PLATFORMTHEME,qt6ct
# envd = QT_STYLE_OVERRIDE,kvantum
env = QT_QPA_PLATFORM,wayland;xcb
env = FREETYPE_PROPERTIES,cff:no-stem-darkening=0 autofitter:no-stem-darkening=0
# Mouse and keyboard settings
input {
kb_layout = us
kb_variant = dvorak
repeat_delay = 600
touchpad {
natural_scroll = true
}
}
# Disable the trackpad in favour of thinkpad nub
general {
gaps_in = 3
gaps_out = 6
col.active_border = $primary
col.inactive_border = $primary_container
border_size = 2
layout = dwindle
no_focus_fallback = true
}
decoration {
rounding = 10
# active_opacity = 0.9
# inactive_opacity = 0.92
# fullscreen_opacity = 1.0
blur {
enabled = true
size = 6
passes = 3
new_optimizations = true
ignore_opacity = true
special = true
brightness = 1
xray = false;
}
}
workspace = special:special, gapsin:32, gapsout:64
animations {
enabled = yes
bezier = default , 0.16, 1 , 0.30, 1
bezier = easeOut , 0.22, 1 , 0.36, 1
bezier = easeIn , 0.64, 0 , 0.78, 0
animation = fadeIn , 1, 4, default
animation = fadeOut , 1, 3, default
animation = windowsIn , 1, 4, default, popin 85%
animation = windowsOut , 1, 4, default, popin 85%
animation = windowsMove , 1, 3, easeOut
animation = border , 1, 5, default
animation = layersIn , 1, 3, easeOut, slide
animation = layersOut , 1, 2, easeIn, slide
animation = fadeLayersIn , 1, 3, easeOut
animation = fadeLayersOut , 1, 2, easeIn
animation = workspaces , 1, 3, easeOut, slide
animation = specialWorkspace , 1, 4, default, slidevert
animation = zoomFactor , 1, 3, default
}
dwindle {
preserve_split = true
smart_split = false
use_active_for_splits = true
force_split = 2
}
plugin {
hyprexpo {
columns = 3
gap_size = 5
bg_col = rgb(111111)
workspace_method = first 1 # [center/first] [workspace] e.g. first 1 or center m+1
enable_gesture = true # laptop touchpad
gesture_fingers = 3 # 3 or 4
gesture_distance = 300 # how far is the "max"
gesture_positive = true # positive = swipe down. Negative = swipe up.
}
#dynamic-cursors {
# enabled = true
# mode = stretch
# stretch {
# limit = 3000
# function = linear
# }
#}
}
# Smart gaps
workspace = w[tv1] s[false], gapsout:0, gapsin:0
workspace = s[true], gapsout:64, gapsin:32
windowrulev2 = bordersize 0, floating:0, onworkspace:w[tv1]
windowrulev2 = rounding 0, floating:0, onworkspace:w[tv1] s[false]
# The bell doesn't fullscreen you, I do.
windowrulev2 = suppressevent fullscreen, class:.*
# Misc window rules
windowrulev2 = float, title:(Write:)
windowrulev2 = float, class:(xdg-desktop-portal-gtk)
windowrulev2 = noblur, title:(File Upload)
windowrulev2 = noblur, title:(Open File)
windowrulev2 = float, center, class:(eog)
windowrulev2 = fullscreen, class:steam_app*
# Misc layer rules
layerrule = animation slide, .*bar.*
layerrule = blur, logout_dialog
layerrule = animation fade, logout_dialog
layerrule = animation fade, selection
layerrule = animation fade, hyprpicker
layerrule = animation popin 40%, lazerpopup
layerrule = noanim, notification
layerrule = dimaround, notifpanel
layerrule = order 1, bar
layerrule = order 2, lazerpopup
layerrule = order 3, notifpanel
layerrule = order 4, notification
source = ~/.config/hypr/hyprbinds.conf
misc {
disable_hyprland_logo = true
animate_manual_resizes = true
disable_splash_rendering = false
new_window_takes_over_fullscreen = 2
key_press_enables_dpms = true
focus_on_activate = true
session_lock_xray = true
animate_manual_resizes = true
}
cursor {
persistent_warps = true
}
xwayland {
force_zero_scaling = true
}

105
hypr/hyprlock.conf Normal file
View File

@@ -0,0 +1,105 @@
source = ~/.config/hypr/hyprcolors.conf
general {
hide_cursor = true
immediate_render = true
}
auth {
pam {
enabled = true
}
fingerprint {
enabled = true
}
}
animations {
bezier = default, 0.16, 1, 0.30, 1
animation = fadeIn, 1, 5, default
animation = fadeOut, 1, 3, default
animation = inputField, 1, 3, default
}
background {
monitor =
path = screenshot
color = rgba(181825aa)
blur_strength = 10
blur_passes = 3
brightness = 0.8
contrast = 0.8
}
shape {
monitor = eDP-1
size = 350, 200
color = $background
border_color = $primary
border_size = 4
rounding = 20
halign = center
valign = center
position = 0, 0
shadow_color = rgb(000000)
shadow_size = 2
shadow_passes = 4
shadow_boost = 0.6
}
image {
path = ~/.face
monitor = eDP-1
size = 100
border_color = $primary
border_size = 4
rounding = -1
halign = center
valign = center
position = 0, 100
}
input-field {
monitor = eDP-1
size = 310, 50
outline_thickness = 4
dots_size = 0.25
dots_spacing = 0.2
dots_center = true
inner_color = rgb(1e1e2e)
outer_color = rgb(313244)
font_color = rgb(cdd6f4)
font_size = 16
hide_input = false
rounding = 8
check_color = rgb(f9e2af)
fail_color = rgb(f38ba8)
fail_text = Do better.
fail_timeout = 1000
fail_transition = 200
fade_on_empty = false
font_family = sriracha
placeholder_text =
position = 0, -50
halign = center
valign = center
}
label {
monitor = eDP-1
text = o shit waddup!
text_align = center
color = rgb(cdd6f4)
font_size = 24
font_family = sriracha
position = 0, 15
halign = center
valign = center
}

2
hypr/hyprpaper.conf Normal file
View File

@@ -0,0 +1,2 @@
preload=~/Pictures/Wallpapers/scarletTree.png
wallpaper = , ~/Pictures/Wallpapers/scarletTree.png

4
hypr/monitors.conf Normal file
View File

@@ -0,0 +1,4 @@
# Generated by nwg-displays on 2025-07-22 at 15:25:56. Do not edit manually.
monitor=eDP-1,1920x1200@60.0,0x1120,1.0
monitor=HDMI-A-1,1920x1080@60.0,0x0,1.0

28
kitty/colors.conf Normal file
View File

@@ -0,0 +1,28 @@
# foreground #F7E0D7
background #090012
#
# active_tab_foreground #090012
# active_tab_background #F7E0D7
# inactive_tab_foreground #F7E0D7
# inactive_tab_background #090012
#
# active_border_color #F7E0D7
# inactive_border_color #090012
# bell_border_color #4E2A79
#
# color0 #090012
# color8 #A48E84
# color1 #4E2A79
# color9 #4E2A79
# color2 #8E223D
# color10 #8E223D
# color3 #9661BB
# color11 #9661BB
# color4 #CC6268
# color12 #CC6268
# color5 #D89FD6
# color13 #D89FD6
# color6 #E7A78C
# color14 #E7A78C
# color7 #EBCBBD
# color15 #EBCBBD

15
kitty/kitty.conf Normal file
View File

@@ -0,0 +1,15 @@
include colors.conf
background_opacity 0.75
font_family ComicShannsMono Nerd Font
font_size 16
cursor #cdf
cursor_trail 1
cursor_trail_start_threshold 0
cursor_trail_decay 0 0.3
window_padding_width 4
confirm_os_window_close 0
enable_audio_bell no

View File

@@ -1,16 +1,16 @@
require('config.lazy')
vim.lsp.enable({
rust_analyzer,
jdtls,
qmlls,
clangd,
csharp_ls,
lua_ls,
html,
ts_ls,
css_ls,
tinymist,
"rust_analyzer",
"jdtls",
"qmlls",
"clangd",
"csharp_ls",
"lua_ls",
"html",
"ts_ls",
"css_ls",
"tinymist"
})