From 0befb11f09ccf12d451f989d8155fb60d628eae3 Mon Sep 17 00:00:00 2001 From: Prad Nukala Date: Mon, 24 Aug 2026 10:17:20 -0500 Subject: [PATCH] mise ~/.config/mise/config.toml tools: crush@0.91.0 feat(config): add Hyprland configuration files --- dot_config/hypr/autostart.lua | 2 ++ dot_config/hypr/bindings.lua | 61 +++++++++++++++++++++++++++++++++ dot_config/hypr/dot_luarc.json | 11 ++++++ dot_config/hypr/hyprland.lua | 29 ++++++++++++++++ dot_config/hypr/hyprsunset.conf | 14 ++++++++ dot_config/hypr/input.lua | 57 ++++++++++++++++++++++++++++++ dot_config/hypr/looknfeel.lua | 50 +++++++++++++++++++++++++++ dot_config/hypr/monitors.lua | 14 ++++++++ dot_config/hypr/xdph.conf | 4 +++ 9 files changed, 242 insertions(+) create mode 100644 dot_config/hypr/autostart.lua create mode 100644 dot_config/hypr/bindings.lua create mode 100644 dot_config/hypr/dot_luarc.json create mode 100644 dot_config/hypr/hyprland.lua create mode 100644 dot_config/hypr/hyprsunset.conf create mode 100644 dot_config/hypr/input.lua create mode 100644 dot_config/hypr/looknfeel.lua create mode 100644 dot_config/hypr/monitors.lua create mode 100644 dot_config/hypr/xdph.conf diff --git a/dot_config/hypr/autostart.lua b/dot_config/hypr/autostart.lua new file mode 100644 index 0000000..de1a69a --- /dev/null +++ b/dot_config/hypr/autostart.lua @@ -0,0 +1,2 @@ +-- Extra autostart processes. +-- o.launch_on_start("my-service") diff --git a/dot_config/hypr/bindings.lua b/dot_config/hypr/bindings.lua new file mode 100644 index 0000000..8b966dc --- /dev/null +++ b/dot_config/hypr/bindings.lua @@ -0,0 +1,61 @@ +-- Keep only your personal keybinding overrides here. Add new bindings or +-- unbind defaults before replacing them. + +-- See current bindings and descriptions: +-- omarchy menu keybindings --print + +-- To disable every Omarchy default binding, set this in +-- ~/.config/hypr/hyprland.lua before require("default.hypr.omarchy"), then add +-- only the bindings you want below: +-- omarchy_default_bindings = false + +-- To disable all preinstalled app/webapp bindings, set: +-- omarchy_preinstalled_bindings = false + +-- Add a new binding. +-- o.bind("SUPER + SHIFT + R", "SSH", "alacritty -e ssh your-server") + +-- Change an existing binding by unbinding it first, then binding the key again. +-- This example changes SUPER+SPACE from the launcher to the Omarchy root menu. +-- hl.unbind("SUPER + SPACE") +-- o.bind("SUPER + SPACE", "Omarchy menu", "omarchy-menu toggle root") + +-- Disable a default binding without replacing it. +-- hl.unbind("SUPER + SHIFT + B") + +-- Logitech MX Keys examples: +-- o.bind("SUPER + SHIFT + S", nil, "omarchy-capture-screenshot") +-- o.bind("SUPER + H", nil, "voxtype record toggle") +-- o.bind("SUPER + PERIOD", nil, "omarchy-shell shell toggle omarchy.emojis") + +-- Quit the focused application. +hl.unbind("SUPER + Q") +o.bind("SUPER + Q", "Close window", hl.dsp.window.close()) + +-- Layout toggle (dwindle <-> scrolling) moves to SUPER+W. +hl.unbind("SUPER + W") -- was: close window (SUPER+Q still closes) +o.bind("SUPER + W", "Toggle workspace layout", "omarchy-hyprland-workspace-layout-toggle") + +-- Vim-style focus. Free the keys first. +hl.unbind("SUPER + J") -- was: toggle window split +hl.unbind("SUPER + K") -- was: keybindings menu +hl.unbind("SUPER + L") -- was: toggle workspace layout + +o.bind("SUPER + H", "Focus on left window", hl.dsp.focus({ direction = "l" })) +o.bind("SUPER + J", "Focus on below window", hl.dsp.focus({ direction = "d" })) +o.bind("SUPER + K", "Focus on above window", hl.dsp.focus({ direction = "u" })) +o.bind("SUPER + L", "Focus on right window", hl.dsp.focus({ direction = "r" })) + +-- Optional: put the keybindings menu back on a free key. +-- o.bind("SUPER + SHIFT + /", "Keybindings", "omarchy-menu-keybindings") + +-- Optional: move windows with the same keys plus SHIFT. +hl.unbind("SUPER + SHIFT + K") +o.bind("SUPER + SHIFT + H", "Swap window to the left", hl.dsp.window.swap({ direction = "l" })) +o.bind("SUPER + SHIFT + J", "Swap window down", hl.dsp.window.swap({ direction = "d" })) +o.bind("SUPER + SHIFT + K", "Swap window up", hl.dsp.window.swap({ direction = "u" })) +o.bind("SUPER + SHIFT + L", "Swap window to the right", hl.dsp.window.swap({ direction = "r" })) + +-- Omarchy App Cycling +o.bind("SUPER + CTRL + ALT + J", "Cycle terminals", "omarchy-cycle-terminal") +o.bind("SUPER + CTRL + ALT + K", "Cycle browsers", "omarchy-cycle-browser") diff --git a/dot_config/hypr/dot_luarc.json b/dot_config/hypr/dot_luarc.json new file mode 100644 index 0000000..afb4466 --- /dev/null +++ b/dot_config/hypr/dot_luarc.json @@ -0,0 +1,11 @@ +{ + "workspace": { + "library": [ + "/usr/share/hypr/stubs" + ], + "checkThirdParty": false + }, + "diagnostics": { + "globals": ["hl", "o"] + } +} diff --git a/dot_config/hypr/hyprland.lua b/dot_config/hypr/hyprland.lua new file mode 100644 index 0000000..45c9b66 --- /dev/null +++ b/dot_config/hypr/hyprland.lua @@ -0,0 +1,29 @@ +-- Learn how to configure Hyprland: https://wiki.hypr.land/Configuring/Start/ + +-- Omarchy's bootstrap keeps path setup out of this user config. +dofile((os.getenv("OMARCHY_PATH") or "/usr/share/omarchy") .. "/default/hypr/bootstrap.lua") + +-- Disable all Omarchy default bindings. Add your own in hypr/bindings.lua. +-- omarchy_default_bindings = false +-- +-- Or disable only bindings for Omarchy's preinstalled apps/web apps while +-- keeping core window-manager bindings: +-- omarchy_preinstalled_bindings = false + +-- Load Omarchy defaults. +require("default.hypr.omarchy") + +-- Put your personal overrides in these files. They're loaded after Omarchy's +-- defaults so package updates can improve the defaults without rewriting your +-- ~/.config/hypr files. +require("hypr.monitors") +require("hypr.input") +require("hypr.bindings") +require("hypr.looknfeel") +require("hypr.autostart") + +-- Toggle config flags dynamically. +require("default.hypr.toggles") + +-- Add any other personal Hyprland configuration below. +-- o.window("qemu", { workspace = "5" }) diff --git a/dot_config/hypr/hyprsunset.conf b/dot_config/hypr/hyprsunset.conf new file mode 100644 index 0000000..a3ba208 --- /dev/null +++ b/dot_config/hypr/hyprsunset.conf @@ -0,0 +1,14 @@ +# Makes hyprsunset do nothing to the screen by default +# Without this, the default applies some tint to the monitor +profile { + time = 07:00 + identity = true +} + +# To enable auto switch to nightlight, add to your .config/hypr/autostart.lua: +# o.launch_on_start("hyprsunset") +# and use the following: +# profile { +# time = 20:00 +# temperature = 4000 +# } diff --git a/dot_config/hypr/input.lua b/dot_config/hypr/input.lua new file mode 100644 index 0000000..d20be92 --- /dev/null +++ b/dot_config/hypr/input.lua @@ -0,0 +1,57 @@ +-- Keep only your personal input overrides here. Uncommented settings below +-- replace Omarchy's defaults. + +-- Keyboard layout and options. +-- See https://wiki.hypr.land/Configuring/Basics/Variables/#input +-- hl.config({ +-- input = { +-- -- Use multiple keyboard layouts and switch between them with Left Alt + Right Alt. +-- kb_layout = "us,dk,eu", +-- kb_options = "compose:caps,shift:both_capslock_cancel,grp:alts_toggle", +-- +-- -- Use a specific keyboard variant if needed (e.g. intl for international keyboards). +-- kb_variant = "intl", +-- +-- -- Change speed of keyboard repeat. +-- repeat_rate = 40, +-- repeat_delay = 250, +-- +-- -- Start with numlock on by default. +-- numlock_by_default = true, +-- +-- -- Increase sensitivity for mouse/trackpad (default: 0). +-- sensitivity = 0.35, +-- +-- -- Turn off mouse acceleration (default: adaptive). +-- accel_profile = "flat", +-- +-- touchpad = { +-- -- Use natural (inverse) scrolling. +-- natural_scroll = true, +-- +-- -- Use two-finger clicks for right-click instead of lower-right corner. +-- clickfinger_behavior = true, +-- +-- -- Control the speed of your scrolling. +-- scroll_factor = 0.4, +-- +-- -- Enable the touchpad while typing. +-- disable_while_typing = false, +-- +-- -- Left-click-and-drag with three fingers. +-- drag_3fg = 1, +-- }, +-- }, +-- }) + +-- App-specific touchpad scroll speeds. +-- o.window("(Alacritty|kitty|foot)", { scroll_touchpad = 1.5 }) +-- o.window("com.mitchellh.ghostty", { scroll_touchpad = 0.2 }) + +-- Enable touchpad gestures for changing workspaces. +-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Gestures/ +-- hl.gesture({ fingers = 3, direction = "horizontal", action = "workspace" }) + +-- Enable touchpad gestures for moving focus (helpful on scrolling layout). +-- hl.gesture({ fingers = 3, direction = "left", action = function() hl.dispatch(hl.dsp.focus({ direction = "l" })) end }) +-- hl.gesture({ fingers = 3, direction = "right", action = function() hl.dispatch(hl.dsp.focus({ direction = "r" })) end }) diff --git a/dot_config/hypr/looknfeel.lua b/dot_config/hypr/looknfeel.lua new file mode 100644 index 0000000..a86d053 --- /dev/null +++ b/dot_config/hypr/looknfeel.lua @@ -0,0 +1,50 @@ +-- Change the default Omarchy look'n'feel. + +-- https://wiki.hypr.land/Configuring/Basics/Variables/#general +-- hl.config({ +-- general = { +-- -- No gaps between windows or borders. +-- gaps_in = 0, +-- gaps_out = 0, +-- border_size = 0, +-- +-- -- Change to niri-like side-scrolling layout. +-- layout = "scrolling", +-- }, +-- }) + +-- https://wiki.hypr.land/Configuring/Basics/Variables/#decoration +-- hl.config({ +-- decoration = { +-- -- Use round window corners. +-- rounding = 8, +-- +-- -- Dim unfocused windows (0.0 = no dim, 1.0 = fully dimmed). +-- dim_inactive = true, +-- dim_strength = 0.15, +-- }, +-- }) + +-- https://wiki.hypr.land/Configuring/Basics/Variables/#animations +-- hl.config({ +-- animations = { +-- -- Disable all animations. +-- enabled = false, +-- }, +-- }) + +-- https://wiki.hypr.land/Configuring/Basics/Variables/#layout +-- hl.config({ +-- layout = { +-- -- Avoid overly wide single-window layouts on wide screens. +-- single_window_aspect_ratio = { 1, 1 }, +-- }, +-- }) + +-- https://wiki.hypr.land/Configuring/Layouts/Scrolling-Layout/ +-- hl.config({ +-- scrolling = { +-- -- See only one column per screen instead of two. +-- column_width = 0.97, +-- }, +-- }) diff --git a/dot_config/hypr/monitors.lua b/dot_config/hypr/monitors.lua new file mode 100644 index 0000000..683e0ad --- /dev/null +++ b/dot_config/hypr/monitors.lua @@ -0,0 +1,14 @@ +-- See https://wiki.hypr.land/Configuring/Basics/Monitors/ +-- List current monitors and supported resolutions with: hyprctl monitors all + +local omarchy_gdk_scale = 2 +local omarchy_monitor_scale = 2 + +hl.env("GDK_SCALE", tostring(omarchy_gdk_scale)) +hl.monitor({ output = "", mode = "preferred", position = "auto", scale = omarchy_monitor_scale }) + +-- Configure a specific monitor. +-- hl.monitor({ output = "DP-2", mode = "2560x1440@144", position = "0x0", scale = 1 }) + +-- Portrait/rotated secondary monitor (transform: 1 = 90°, 3 = 270°). +-- hl.monitor({ output = "DP-2", mode = "preferred", position = "auto", scale = 1, transform = 1 }) diff --git a/dot_config/hypr/xdph.conf b/dot_config/hypr/xdph.conf new file mode 100644 index 0000000..63b66be --- /dev/null +++ b/dot_config/hypr/xdph.conf @@ -0,0 +1,4 @@ +screencopy { + allow_token_by_default = true + custom_picker_binary = hyprland-preview-share-picker +}