commit 29906216f8f1ea14a7fca29106c4ec2f1aaef157 Author: nicholai Date: Mon Sep 8 16:15:21 2025 -0600 Initial commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..71e5478 --- /dev/null +++ b/README.md @@ -0,0 +1,21 @@ +# Arch Hyprland Configuration + +This repository contains my Hyprland configuration files for Arch Linux. + +## Files Included + +- `hyprland.conf` - Main Hyprland configuration +- `xdg-portal-hyprland` - XDG portal configuration +- `hong-kong-night.jpg` - Background image + +## Setup + +1. Clone this repository to your home directory +2. Symlink the configuration files to `~/.config/hypr/` +3. Restart Hyprland to apply changes + +## Features + +- Custom keybindings +- Wallpapers and themes +- Window management settings diff --git a/hong-kong-night.jpg b/hong-kong-night.jpg new file mode 100644 index 0000000..7632c48 Binary files /dev/null and b/hong-kong-night.jpg differ diff --git a/hyprland.conf b/hyprland.conf new file mode 100644 index 0000000..15ecc31 --- /dev/null +++ b/hyprland.conf @@ -0,0 +1,278 @@ +#NICHOLAIS CUSTOM HYPRLAND CONFIG + +#------------------------------------------------------------------ +# Monitor Setup +#------------------------------------------------------------------ + +#monitor=,preferred,auto,1 +monitor=eDP-1,preferred,auto,1 +monitor=HDMI-A-1,3840x2160@60.00,0x0,1 + +#------------------------------------------------------------------ +# AUTOSTART +#------------------------------------------------------------------ + +#based on the tutorial from My Linux For Work: +#exec-once = swww init +# exec-once = dunst +#exec-once = the updatewal-swww.sh file would go here +#exec-once = the gtk.sh file would go here + +exec-once = ~/.config/hypr/xdg-portal-hyprland +exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP +exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP +exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 +exec-once = waybar +exec-once = blueman-applet +exec-once = wl-paste --type text --watch cliphist store +exec-once = wl-paste --type image --watch cliphist store +# exec = swaybg -m fill -i ~/Pictures/GreenPond.jpg +exec-once = wal -R + +#------------------------------------------------------------------ +# Load Pywal color file +#------------------------------------------------------------------ +# Default Source: +# source = ~/.config/hypr/myColors.conf +source = ~/.cache/wal/colors-hyprland.conf + +# For all categories, see https://wiki.hyprland.org/Configuring/Variables/ +input { + kb_layout = us + kb_variant = + kb_model = + kb_options = + kb_rules = + + follow_mouse = 1 + + touchpad { + natural_scroll = yes + } + + sensitivity = 0 # 0 0, 0 means no modification. +} + +#------------------------------------------------------------------ +# GENERAL WINDOW LAYOUT AND COLORS +#------------------------------------------------------------------ + +general { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + gaps_in = 5 + gaps_out = 10 + border_size = 1 + #col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg + col.active_border=rgba(cdd6f4ee) + col.inactive_border = $color11 + layout = dwindle +} + + +#------------------------------------------------------------------ +# MISC SETTINGS +#------------------------------------------------------------------ + +misc { + disable_hyprland_logo = yes +} + + +#------------------------------------------------------------------ +# GENERAL WINDOW DECORATION +#------------------------------------------------------------------ + +decoration { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + rounding = 7 + + blur { + enabled = true + size = 7 + passes = 3 + } + active_opacity = 1.0 + inactive_opacity = .86 + fullscreen_opacity = 1.0 + +# drop_shadow = yes +# shadow_range = 4 +# shadow_render_power = 3 +# col.shadow = rgba(1a1a1aee) +} + +layerrule = blur, wofi +layerrule = ignorealpha 0.05, wofi +layerrule = blur, wlogout +layerrule = ignorealpha 0.05, wlogout + +#------------------------------------------------------------------ +# ANIMATIONS +#------------------------------------------------------------------ + +animations { + enabled = yes + + # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + + animation = windows, 1, 1, myBezier + animation = windowsOut, 1, 1, default, popin 80% + animation = border, 1, 1, default + animation = fade, 1, 1, default + animation = workspaces, 1, 1, default +} + + +#------------------------------------------------------------------ +# LAYOUTS +#------------------------------------------------------------------ + +dwindle { + # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more + pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = yes # you probably want this +} + +master { + # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more +# new_is_master = true +} + +gestures { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + workspace_swipe = off +} + +# Example per-device config +# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more +# device:epic mouse V1 { +# sensitivity = -0.5 +#} + +# Example windowrule v1 +# windowrule = float, ^(kitty)$ +# Example windowrule v2 +# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more +# rules below would make the specific app transparent +windowrulev2 = opacity 0.8 0.8,class:^(kitty)$ +windowrulev2 = opacity 0.9 0.9,class:^(thunar)$ +# windowrulev2 = opacity 0.8 0.8,class:^(chromium)$ +# windowrulev2 = opacity 0.85 0.85,class:^(code-oss)$ +windowrulev2 = opacity 0.8 0.8,class:^(marktext)$ +windowrulev2 = opacity 0.8 0.8,class:^(nextcloud)$ +windowrulev2 = opacity 0.8 0.8,class:^(nsxiv)$ +windowrulev2 = opacity 0.9 0.9,class:^(vesktop)$ +windowrulev2 = opacity 0.8 0.8,class:^(wofi)$ +# See https://wiki.hyprland.org/Configuring/Keywords/ for more +$mainMod = SUPER + +#----------------------------------------------------------------- +#__ ___ _ _ ____ _ ____ _____ ____ ____ +#\ \ / / \ | | | | | _ \ / \ | _ \| ____| _ \/ ___| +# \ \ /\ / / _ \ | | | | | |_) / _ \ | |_) | _| | |_) \___ \ +# \ V V / ___ \| |___| |___| __/ ___ \| __/| |___| _ < ___) | +# \_/\_/_/ \_\_____|_____|_| /_/ \_\_| |_____|_| \_\____/ +# + +#Wallpaper Menu +bind = $mainMod, W, exec, ~/scripts/pywal/wallpapermenu.sh +#Resort Wallpapers and sync to nextcloud +bind = $mainMod SHIFT, W, exec, ~/scripts/wallpapersync.sh + +#----------------------------------------------------------------- +# ____ _____ _____ +#/ ___|_ _|_ _| +#\___ \ | | | | +# ___) || | | | +#|____/ |_| |_| alsa_input.pci-0000_00_1f.3.analog-stereo + +#Start Transcription +bind = $mainMod, Y, exec, nerd-dictation begin --input PW-CAT --pulse-device-name alsa_input.pci-0000_00_1f.3.analog-stereo --vosk-model-dir ~/.config/nerd-dictation/model --sample-rate 48000 --simulate-input-tool WTYPE --output SIMULATE_INPUT --full-sentence --numbers-as-digits --numbers-use-separator --idle-time 0.05 --timeout 4 --delay-exit 0.7 + +#Cliphistory +bind = $mainMod SHIFT, H, exec, cliphist list | wofi --dmenu | cliphist decode | wl-copy +#Firefox +bind = $mainMod, B, exec, firefox +#open virtual machines +bind = $mainMod, T, exec, virt-manager +#NukeX +bind = $mainMod, N, exec, ~/foundry-nuke/Nuke15.2v4/Nuke15.2 --nukex >/dev/null 2>&1 & +#Waybar Start +# bind = $mainMod SHIFT, W, exec, waybar +#Waybar Kill +bind = $mainMod SHIFT, R, exec, killall -SIGUSR2 waybar +#Launch Minecraft +bind = $mainMod SHIFT, G, exec, prime-run minecraft-launcher +#Launch Discord +bind = $mainMod SHIFT, V, exec, vesktop +#launch parsec +bind = $mainMod, P, exec, parsecd +# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more +bind = $mainMod, Q, exec, kitty #open the terminal +bind = $mainMod SHIFT, X, killactive, # close the active window +bind = $mainMod, L, exec, swaylock # Lock the screen +bind = $mainMod, M, exec, wlogout --protocol layer-shell # show the logout window +bind = $mainMod SHIFT, M, exit, # Exit Hyprland all together no (force quit Hyprland) +bind = $mainMod, E, exec, thunar # Show the graphical file browser +bind = $mainMod, V, togglefloating, # Allow a window to float +bind = $mainMod, SPACE, exec, wofi --color +# ~/.cache/wal/colors.css # Show the graphicall app launcher +bind = $mainMod, P, pseudo, # dwindle +bind = $mainMod, J, togglesplit, # dwindle +bind = $mainMod, S, exec, grim -g "$(slurp)" - | swappy -f - # take a screenshot + +# ROG G15 Strix (2021) Specific binds +bind = ,156, exec, rog-control-center # ASUS Armory crate key +bind = ,211, exec, asusctl profile -n; pkill -SIGRTMIN+8 waybar # Fan Profile key switch between power profiles +bind = ,121, exec, pamixer -t # Speaker Mute FN+F1 +bind = ,122, exec, pamixer -d 5 # Volume lower key +bind = ,123, exec, pamixer -i 5 # Volume Higher key +bind = ,256, exec, pamixer --default-source -t # Mic mute key +bind = ,232, exec, brightnessctl set 10%- # Screen brightness down FN+F7 +bind = ,233, exec, brightnessctl set 10%+ # Screen brightness up FN+F8 +bind = ,237, exec, brightnessctl -d asus::kbd_backlight set 33%- # Keyboard brightness down FN+F2 +bind = ,238, exec, brightnessctl -d asus::kbd_backlight set 33%+ # Keyboard brightnes up FN+F3 +bind = ,210, exec, asusctl led-mode -n # Switch keyboard RGB profile FN+F4 + +# 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 + +# 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 diff --git a/xdg-portal-hyprland b/xdg-portal-hyprland new file mode 100755 index 0000000..8f692bf --- /dev/null +++ b/xdg-portal-hyprland @@ -0,0 +1,8 @@ +#!/bin/bash +sleep 1 +killall xdg-desktop-portal-hyprland +killall xdg-desktop-portal-wlr +killall xdg-desktop-portal +/usr/lib/xdg-desktop-portal-hyprland & +sleep 2 +/usr/lib/xdg-desktop-portal &