fix: hyprland keys

This commit is contained in:
2026-01-18 20:28:46 -05:00
parent 3a67a3fe99
commit 00a486c5e6
5 changed files with 181 additions and 165 deletions

View File

@@ -31,12 +31,12 @@ in
graphical = { graphical = {
wms.hyprland = { wms.hyprland = {
enable = true; enable = true;
monitors = [ mainMod = "ALT";
",highres,auto,2" # Optional - 1.68 monitors = [ ",highres,auto,2" ]; # Alternatively - 1.68
];
}; };
ghostty = enabled; ghostty = enabled;
ghidra = enabled; ghidra = enabled;
gimp = enabled;
browsers.firefox = { browsers.firefox = {
enable = true; enable = true;
gpuAcceleration = true; gpuAcceleration = true;

View File

@@ -1,4 +1,9 @@
{ pkgs, lib, config, namespace, ... }: { pkgs
, lib
, config
, namespace
, ...
}:
let let
inherit (lib) mkIf mkEnableOption; inherit (lib) mkIf mkEnableOption;
@@ -11,7 +16,9 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
home.packages = with pkgs; [ home.packages = with pkgs; [
darktable
gimp-with-plugins gimp-with-plugins
gthumb
]; ];
}; };
} }

View File

@@ -44,7 +44,6 @@ decoration {
} }
# https://wiki.hyprland.org/Configuring/Variables/#animations # https://wiki.hyprland.org/Configuring/Variables/#animations
#https://wiki.hyprland.org/Configuring/Animations/
animations { animations {
enabled = yes, please :) enabled = yes, please :)

View File

@@ -1,4 +1,9 @@
{ lib, pkgs, config, namespace, ... }: { lib
, pkgs
, config
, namespace
, ...
}:
let let
inherit (lib) types mkIf; inherit (lib) types mkIf;
inherit (lib.${namespace}) mkOpt enabled; inherit (lib.${namespace}) mkOpt enabled;
@@ -8,10 +13,9 @@ in
{ {
options.${namespace}.programs.graphical.wms.hyprland = { options.${namespace}.programs.graphical.wms.hyprland = {
enable = lib.mkEnableOption "Hyprland"; enable = lib.mkEnableOption "Hyprland";
mainMod = mkOpt types.str "SUPER" "Hyprland main modifier key"; mainMod = mkOpt types.str "SUPER" "main modifier key";
monitors = mkOpt (with types; listOf str) [ menuMod = mkOpt types.str "SUPER" "menu modifier key (i.e. menuMod + space)";
", preferred, auto, 1" monitors = mkOpt (with types; listOf str) [ ", preferred, auto, 1" ] "monitor configuration";
] "Hyprland monitor configuration";
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
@@ -22,19 +26,20 @@ in
extraConfig = builtins.readFile ./config/hyprland.conf; extraConfig = builtins.readFile ./config/hyprland.conf;
settings = { settings = {
"$mainMod" = cfg.mainMod; "$mainMod" = cfg.mainMod;
"$menuMod" = cfg.menuMod;
"$terminal" = "ghostty"; "$terminal" = "ghostty";
"$menu" = "wofi --show drun"; "$menu" = "wofi --show drun";
monitor = cfg.monitors; monitor = cfg.monitors;
bind = [ bind = [
# Super Bindings (macOS Transition) # Menu Mod Bindings (macOS Transition - Spotlight & Screenshots)
"ALT_SHIFT, 1, exec, hyprshot -m output" "$menuMod, SPACE, exec, $menu"
"ALT_SHIFT, 2, exec, hyprshot -m window" "$menuMod SHIFT, 1, exec, hyprshot -m output"
"ALT_SHIFT, 3, exec, hyprshot -m region" "$menuMod SHIFT, 2, exec, hyprshot -m window"
"$menuMod SHIFT, 3, exec, hyprshot -m region"
# Primary Bindings # Primary Bindings
"$mainMod, SPACE, exec, $menu"
"$mainMod, RETURN, exec, $terminal" "$mainMod, RETURN, exec, $terminal"
"$mainMod, Q, killactive" "$mainMod, Q, killactive"
"$mainMod, M, exit" "$mainMod, M, exit"
@@ -91,8 +96,8 @@ in
",XF86MonBrightnessDown, exec, brightnessctl s 10%-" ",XF86MonBrightnessDown, exec, brightnessctl s 10%-"
# macOS Keyboard Brightness # macOS Keyboard Brightness
"ALT, XF86MonBrightnessUp, exec, brightnessctl -d kbd_backlight s 10%+" "$menuMod, XF86MonBrightnessUp, exec, brightnessctl -d kbd_backlight s 10%+"
"ALT, XF86MonBrightnessDown, exec, brightnessctl -d kbd_backlight s 10%-" "$menuMod, XF86MonBrightnessDown, exec, brightnessctl -d kbd_backlight s 10%-"
]; ];
bindl = [ bindl = [
# Player Controls # Player Controls
@@ -107,153 +112,161 @@ in
programs.waybar = { programs.waybar = {
enable = true; enable = true;
style = builtins.readFile ./config/waybar-style.css; style = builtins.readFile ./config/waybar-style.css;
settings = [{ settings = [
layer = "top"; {
position = "top"; layer = "top";
mod = "dock"; position = "top";
exclusive = true; mod = "dock";
passtrough = false; exclusive = true;
gtk-layer-shell = true; passtrough = false;
height = 0; gtk-layer-shell = true;
modules-left = [ height = 0;
"hyprland/workspaces" modules-left = [
"hyprland/window" "hyprland/workspaces"
]; "hyprland/window"
# modules-center = [ "hyprland/window" ];
modules-right = [
"tray"
"cpu"
"memory"
"pulseaudio"
"network"
"backlight"
"battery"
"clock"
];
"hyprland/window" = { format = "{}"; };
"wlr/workspaces" = {
on-scroll-up = "hyprctl dispatch workspace e+1";
on-scroll-down = "hyprctl dispatch workspace e-1";
all-outputs = true;
on-click = "activate";
};
battery = {
states = {
warning = 30;
critical = 15;
};
format = "{icon}";
format-charging = "󰂄";
format-plugged = "󰂄";
format-alt = "{icon}";
format-icons = [
"󰂃"
"󰁺"
"󰁻"
"󰁼"
"󰁽"
"󰁾"
"󰁾"
"󰁿"
"󰂀"
"󰂁"
"󰂂"
"󰁹"
]; ];
}; # modules-center = [ "hyprland/window" ];
cpu = { modules-right = [
interval = 10; "tray"
format = " {}%"; "cpu"
max-length = 10; "memory"
on-click = ""; "pulseaudio"
}; "network"
memory = { "backlight"
interval = 30; "battery"
format = " {}%"; "clock"
format-alt = " {used:0.1f}G";
max-length = 10;
};
backlight = {
format = "{icon}";
format-icons = [
"󰋙"
"󰫃"
"󰫄"
"󰫅"
"󰫆"
"󰫇"
"󰫈"
]; ];
on-scroll-up = "brightnessctl s 1%-"; "hyprland/window" = {
on-scroll-down = "brightnessctl s +1%"; format = "{}";
};
tray = {
icon-size = 13;
tooltip = false;
spacing = 10;
};
network = {
interval = 1;
format-wifi = "󰖩";
format-ethernet = "󰈀";
format-linked = "󰈁";
format-disconnected = "";
on-click-right = "${pkgs.networkmanagerapplet}/bin/nm-connection-editor";
# tooltip-format = ''
# <big>Network Details</big>
# <tt><small>Interface: {ifname}</small></tt>
# <tt><small>IP: {ipaddr}/{cidr}</small></tt>
# <tt><small>Gateway: {gwaddr}</small></tt>
# <tt><small>󰜷 {bandwidthUpBytes}\n󰜮 {bandwidthDownBytes}</small></tt>'';
tooltip-format = ''
<big>Network Details</big>
<small>
Interface: {ifname}
SSID: {essid}
IP Address: {ipaddr}/{cidr}
Gateway: {gwaddr}
󰜷 {bandwidthUpBytes} / 󰜮 {bandwidthDownBytes}
</small>'';
};
clock = {
format = " {:%Y-%m-%d %H:%M:%S}";
interval = 1;
tooltip-format = ''
<big>{:%Y %B}</big>
<tt><small>{calendar}</small></tt>'';
};
pulseaudio = {
format = "{icon} {volume}%";
tooltip = false;
format-muted = " Muted";
on-click = "pamixer -t";
on-scroll-up = "pamixer -i 5";
on-scroll-down = "pamixer -d 5";
scroll-step = 5;
format-icons = {
headphone = "";
hands-free = "";
headset = "";
phone = "";
portable = "";
car = "";
default = [ "" "" "" ];
}; };
}; "wlr/workspaces" = {
"pulseaudio#microphone" = { on-scroll-up = "hyprctl dispatch workspace e+1";
format = "{format_source}"; on-scroll-down = "hyprctl dispatch workspace e-1";
tooltip = false; all-outputs = true;
format-source = " {volume}%"; on-click = "activate";
format-source-muted = " Muted"; };
on-click = "pamixer --default-source -t"; battery = {
on-scroll-up = "pamixer --default-source -i 5"; states = {
on-scroll-down = "pamixer --default-source -d 5"; warning = 30;
scroll-step = 5; critical = 15;
}; };
}]; format = "{icon}";
format-charging = "󰂄";
format-plugged = "󰂄";
format-alt = "{icon}";
format-icons = [
"󰂃"
"󰁺"
"󰁻"
"󰁼"
"󰁽"
"󰁾"
"󰁾"
"󰁿"
"󰂀"
"󰂁"
"󰂂"
"󰁹"
];
};
cpu = {
interval = 10;
format = " {}%";
max-length = 10;
on-click = "";
};
memory = {
interval = 30;
format = " {}%";
format-alt = " {used:0.1f}G";
max-length = 10;
};
backlight = {
format = "{icon}";
format-icons = [
"󰋙"
"󰫃"
"󰫄"
"󰫅"
"󰫆"
"󰫇"
"󰫈"
];
on-scroll-up = "brightnessctl s 1%-";
on-scroll-down = "brightnessctl s +1%";
};
tray = {
icon-size = 13;
tooltip = false;
spacing = 10;
};
network = {
interval = 1;
format-wifi = "󰖩";
format-ethernet = "󰈀";
format-linked = "󰈁";
format-disconnected = "";
on-click-right = "${pkgs.networkmanagerapplet}/bin/nm-connection-editor";
# tooltip-format = ''
# <big>Network Details</big>
# <tt><small>Interface: {ifname}</small></tt>
# <tt><small>IP: {ipaddr}/{cidr}</small></tt>
# <tt><small>Gateway: {gwaddr}</small></tt>
# <tt><small>󰜷 {bandwidthUpBytes}\n󰜮 {bandwidthDownBytes}</small></tt>'';
tooltip-format = ''
<big>Network Details</big>
<small>
Interface: {ifname}
SSID: {essid}
IP Address: {ipaddr}/{cidr}
Gateway: {gwaddr}
󰜷 {bandwidthUpBytes} / 󰜮 {bandwidthDownBytes}
</small>'';
};
clock = {
format = " {:%Y-%m-%d %H:%M:%S}";
interval = 1;
tooltip-format = ''
<big>{:%Y %B}</big>
<tt><small>{calendar}</small></tt>'';
};
pulseaudio = {
format = "{icon} {volume}%";
tooltip = false;
format-muted = " Muted";
on-click = "pamixer -t";
on-scroll-up = "pamixer -i 5";
on-scroll-down = "pamixer -d 5";
scroll-step = 5;
format-icons = {
headphone = "";
hands-free = "";
headset = "";
phone = "";
portable = "";
car = "";
default = [
""
""
""
];
};
};
"pulseaudio#microphone" = {
format = "{format_source}";
tooltip = false;
format-source = " {volume}%";
format-source-muted = " Muted";
on-click = "pamixer --default-source -t";
on-scroll-up = "pamixer --default-source -i 5";
on-scroll-down = "pamixer --default-source -d 5";
scroll-step = 5;
};
}
];
}; };
home.packages = with pkgs; [ home.packages = with pkgs; [

View File

@@ -40,10 +40,7 @@ in
services = { services = {
avahi = enabled; avahi = enabled;
printing = { printing = enabled;
enable = true;
drivers = [ pkgs.gutenprint ];
};
tailscale = enabled; tailscale = enabled;
ydotool = enabled; ydotool = enabled;
}; };