108 lines
3.3 KiB
Nix
108 lines
3.3 KiB
Nix
{ theme, ... }: {
|
|
home.file = {
|
|
".config/hypr/hyprland.conf" = {
|
|
enable = true;
|
|
text = ''
|
|
|
|
# Laptop specific:
|
|
monitor=,highrr,auto,1.25
|
|
$mainMod = SUPER
|
|
|
|
# Set up the FN keys:
|
|
|
|
# F1 - Mute
|
|
# bind = , XF86AudioMute, exec, amixer set Master toggle && swayosd --output-volume=mute-toggle
|
|
bind = , XF86AudioMute, exec, swayosd --output-volume=mute-toggle
|
|
|
|
# F2 - Volume Down
|
|
# binde = , XF86AudioLowerVolume, exec, amixer set Master 3%-
|
|
binde = , XF86AudioLowerVolume, exec, swayosd --output-volume=lower
|
|
|
|
# F3 - Volume Up
|
|
# binde = , XF86AudioRaiseVolume, exec, amixer set Master 3%+
|
|
binde = , XF86AudioRaiseVolume, exec, swayosd --output-volume=raise
|
|
|
|
# F4 - Previous Track
|
|
# bind = , XF86AudioMicMute, exec, amixer set Capture toggle
|
|
bind = , XF86AudioPrev, exec, playerctl previous
|
|
|
|
# F5 - Play/Pause
|
|
# binde = , XF86MonBrightnessDown, exec, light -U 5
|
|
binde = , XF86AudioPlay, exec, playerctl play-pause
|
|
|
|
# F6 - Next Track
|
|
# binde = , XF86MonBrightnessUp, exec, light -A 5
|
|
binde = , XF86AudioNext, exec, playerctl next
|
|
|
|
# F7 - Brightness Down
|
|
# bind = , XF86
|
|
binde = , XF86MonBrightnessDown, exec, light -U 5
|
|
|
|
# F8 - Brightness Up
|
|
# bind = , XF86
|
|
binde = , XF86MonBrightnessUp, exec, light -A 5
|
|
|
|
# F9 - External Displays
|
|
# bind = , XF86
|
|
|
|
# F10 - Airplane Mode
|
|
# bind = , XF86
|
|
|
|
# F11 - PRT SCR
|
|
# bind = , XF86
|
|
|
|
# F12 - "Framework Button"
|
|
# bind = , XF86
|
|
|
|
# Use rofi as an alt-tab switcher
|
|
# bind = ALT, TAB, exec, rofi -show window
|
|
|
|
# Lid closure:
|
|
# trigger when the switch is toggled
|
|
# bindl=,switch:[switch name],exec,swaylock
|
|
# trigger when the switch is turning on
|
|
bindl=,switch:on:1241ec0,exec,hyprctl keyword monitor "eDP-1, 2560x1600, 0x0, 1"
|
|
# trigger when the switch is turning off
|
|
bindl=,switch:off:1241ec0,exec,hyprctl keyword monitor "eDP-1, disable"
|
|
|
|
# Start the config:
|
|
exec-once=bash ~/.config/hypr/start.sh
|
|
'';
|
|
};
|
|
# Set the custom launcher script
|
|
".config/hypr/start.sh" = {
|
|
enable = true;
|
|
executable = true;
|
|
text = ''
|
|
#!/usr/bin/env bash
|
|
# https://wiki.hyprland.org/FAQ/#some-of-my-apps-take-a-really-long-time-to-open
|
|
dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &
|
|
|
|
# Set the wallpaper
|
|
swww init
|
|
|
|
# Waybar
|
|
waybar &
|
|
|
|
# Set up the idle management daemon
|
|
swayidle -w \
|
|
timeout 120 'swaylock -f && playerctl pause' \
|
|
timeout 180 'hyprctl dispatch dpms off' \
|
|
timeout 300 'systemctl suspend-then-hibernate' \
|
|
resume 'hyprctl dispatch dpms on' \
|
|
before-sleep 'swaylock -f' \
|
|
before-sleep 'playerctl pause' &
|
|
|
|
# Automatic device mounting
|
|
udiskie &
|
|
|
|
DIR=/etc/nixos/git/wallpapers/${theme}
|
|
IMG=`ls $DIR | shuf -n 1`
|
|
swww img $DIR/$IMG -t random &
|
|
|
|
# Notification listener
|
|
mako
|
|
'';
|
|
};
|
|
};
|
|
}
|