hyprlock
Some checks failed
Lint / lint (push) Has been cancelled

This commit is contained in:
Vivian 2024-12-27 14:38:41 +01:00
parent c9fb02840b
commit 8413ab2e0f
2 changed files with 137 additions and 39 deletions

View file

@ -6,7 +6,6 @@
inputs,
lib,
pkgs,
modulesPath,
...
}:
{
@ -24,8 +23,6 @@
users.users.vivian.extraGroups = [ "adbusers" ];
services.flatpak.enable = true;
# Bootloader.
boot = {
kernelParams = [
@ -48,36 +45,44 @@
};
home-manager.users.vivian = import ./home;
programs = {
nix-ld.enable = true;
nix-ld.libraries = with pkgs; [
# Add any missing dynamic libraries for unpackaged programs
programs.nix-ld.enable = true;
programs.nix-ld.libraries = with pkgs; [
# Add any missing dynamic libraries for unpackaged programs
# here, NOT in environment.systemPackages
];
# here, NOT in environment.systemPackages
];
programs.hyprland = {
enable = true;
withUWSM = true;
hyprland = {
enable = true;
withUWSM = true;
};
hyprlock.enable = true;
};
services.gnome.gnome-keyring.enable = true;
services = {
hypridle.enable = true;
services.ollama = {
enable = true;
acceleration = "rocm";
rocmOverrideGfx = "10.3.4";
};
flatpak.enable = true;
services.interception-tools = {
enable = true;
plugins = [ pkgs.interception-tools-plugins.caps2esc ];
udevmonConfig = ''
- JOB: "${pkgs.interception-tools}/bin/intercept -g $DEVNODE | ${pkgs.interception-tools-plugins.caps2esc}/bin/caps2esc | ${pkgs.interception-tools}/bin/uinput -d $DEVNODE"
DEVICE:
EVENTS:
EV_KEY: [KEY_CAPSLOCK, KEY_ESC]
'';
gnome.gnome-keyring.enable = true;
ollama = {
enable = true;
acceleration = "rocm";
rocmOverrideGfx = "10.3.4";
};
interception-tools = {
enable = true;
plugins = [ pkgs.interception-tools-plugins.caps2esc ];
udevmonConfig = ''
- JOB: "${pkgs.interception-tools}/bin/intercept -g $DEVNODE | ${pkgs.interception-tools-plugins.caps2esc}/bin/caps2esc | ${pkgs.interception-tools}/bin/uinput -d $DEVNODE"
DEVICE:
EVENTS:
EV_KEY: [KEY_CAPSLOCK, KEY_ESC]
'';
};
};
# Enable Ozone rendering for Chromium and Electron apps.

View file

@ -19,32 +19,117 @@ in
inputs.hyprland-qtutils.packages.${pkgs.system}.default
];
services = {
mako = {
enable = true;
defaultTimeout = 5000;
};
};
programs = {
rofi = {
enable = true;
package = pkgs.rofi-wayland;
};
hyprlock = {
enable = true;
settings =
let
color = "rgba(242, 243, 244, 0.75)";
in
{
auth.fingerprint.enabled = true;
background = {
path = "screenshot";
blur_passes = 3;
};
input-field = {
size = "500, 100";
outline_thickness = 0;
dots_size = 0.25; # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.55; # Scale of dots' absolute size, 0.0 - 1.0
dots_center = true;
dots_rounding = -1;
outer_color = "rgba(242, 243, 244, 0)";
inner_color = "rgba(242, 243, 244, 0)";
font_color = "rgba(242, 243, 244, 0.75)";
fade_on_empty = false;
placeholder_text = "Start typing or scan fingerprint"; # Text rendered in the input box when it's empty.
hide_input = false;
check_color = "rgba(204, 136, 34, 0)";
fail_color = "rgba(204, 34, 34, 0)"; # if authentication failed, changes outer_color and fail message color
fail_text = "$FAIL <b>($ATTEMPTS)</b>"; # can be set to empty
fail_transition = 300; # transition time in ms between normal outer_color and fail_color
capslock_color = -1;
numlock_color = -1;
bothlock_color = -1; # when both locks are active. -1 means don't change outer color (same for above)
invert_numlock = false; # change color if numlock is off
swap_font_color = false; # see below
# position = "0, -468";
position = "0, -900";
halign = "center";
valign = "center";
};
label = [
{
text = "$TIME";
inherit color;
shadow_passes = 1;
shadow_boost = 0.5;
font_size = 120;
# position = "0, 900";
halign = "center";
valign = "center";
}
];
};
};
# eww = {
# enable = true;
# configDir = ./eww;
# };
};
# Hack to ensure graphical dependent services start _after_ hyprland starts
# Needed as these services normally start after graphical-session-pre
systemd.user.services.hyprpaper.Unit.After = lib.mkForce "graphical-session.target";
systemd.user.services.waybar.Unit.After = lib.mkForce "graphical-session.target";
services = {
gnome-keyring.enable = true;
mako = {
enable = true;
defaultTimeout = 5000;
};
hypridle = {
enable = true;
settings = {
general = {
lock_cmd = "pidof hyprlock || hyprlock";
before_sleep_cmd = "loginctl lock-session";
after_sleep_cmd = "hyprctl dispatch dpms on";
};
listener = [
{
timeout = 150; # 2.5 mins
on-timeout = "${pkgs.brightnessctl}/bin/brightnessctl -s set 10";
on-resume = "${pkgs.brightnessctl}/bin/brightnessctl -r";
}
{
timeout = 150; # 2.5 mins
on-timeout = "${pkgs.brightnessctl}/bin/brightnessctl -sd tpacpi:kbd_backlight set 0";
on-resume = "${pkgs.brightnessctl}/bin/brightnessctl -rd tpacpi::kbd_backlight";
}
{
timeout = 300; # 5 mins
on-timeout = "loginctl lock-session";
}
{
timeout = 600; # 10 mins
on-timeout = "hyprctl dispatch dpms off";
on-resume = "hyprctl dispatch dpms on";
}
];
};
};
hyprpaper =
let
wallpaper = ../../../../assets/wallpaper-nix-pink.png;
@ -59,8 +144,14 @@ in
ipc = "off";
};
};
};
# Hack to ensure graphical dependent services start _after_ hyprland starts
# Needed as these services normally start after graphical-session-pre
systemd.user.services.hyprpaper.Unit.After = lib.mkForce "graphical-session.target";
systemd.user.services.waybar.Unit.After = lib.mkForce "graphical-session.target";
wayland.windowManager.hyprland =
let
toggle_mirror = pkgs.writeScriptBin "toggle_mirror.sh" ''
@ -210,6 +301,8 @@ in
"$mod, J, togglesplit, # dwindle"
"$mod,m,fullscreen"
"$mod, L, exec, loginctl lock-session"
"$mod, space, hyprexpo:expo, toggle"
# Move focus with arrow keys