migrate lock for oled

This commit is contained in:
soraefir
2026-06-16 18:55:43 +02:00
parent 60e8119c21
commit 0a5a0ad307
9 changed files with 134 additions and 74 deletions

View File

@@ -1 +1 @@
{ ... }: { imports = [ ./dunst ./eww ./kanshi ./waylock ./wofi ]; }
{ ... }: { imports = [ ./dunst ./eww ./kanshi ./lockscreen ./wofi ]; }

View File

@@ -1,3 +1,6 @@
#!/usr/bin/env bash
eww close popup 2>/dev/null
swaylock
eww close powermenu 2>/dev/null
# swaylock #swaylock-effects
hyprlock
# gtklock

View File

@@ -16,9 +16,9 @@
(pm-btn :icon "󰜉" :label "Reboot"
:onclick "systemctl reboot")
(pm-btn :icon "󰍁" :label "Lock"
:onclick "sleep 0.1 && gtklock & eww close powermenu &")
:onclick "scripts/lock")
(pm-btn :icon "󰤄" :label "Suspend"
:onclick "sleep 0.1 && gtklock & systemctl suspend & eww close powermenu &")
:onclick "scripts/lock & systemctl suspend")
(pm-btn :icon "󰗼" :label "Sign out"
:onclick "hyprctl eval \"hl.dispatch(hl.dsp.exit())\"")
(pm-btn :icon "󰅖" :label "Cancel"

View File

@@ -29,7 +29,7 @@ let
"scripts/radio" = mkScript "radio" ./bar/scripts/radio [ pkgs.eww pkgs.jq pkgs.curl pkgs.mpv pkgs.playerctl ];
"scripts/color-pick" = mkScript "color-pick" ./bar/scripts/color-pick [ pkgs.eww pkgs.hyprpicker ];
"scripts/media" = mkScript "media" ./bar/scripts/media [ pkgs.playerctl ];
"scripts/lock" = mkScript "lock" ./bar/scripts/lock [ pkgs.eww pkgs.swaylock-effects ];
"scripts/lock" = mkScript "lock" ./bar/scripts/lock [ pkgs.eww pkgs.hyprlock ];
"scripts/screenshot" = mkScript "screenshot" ./bar/scripts/screenshot [ pkgs.eww pkgs.hyprshot pkgs.satty pkgs.wl-clipboard ];
"scripts/sys/gpu" = mkScript "gpu" ./bar/scripts/sys/gpu [ pkgs.custom.amdgpu_top pkgs.jq ];
"scripts/sys/memory" = mkScript "memory" ./bar/scripts/sys/memory [ pkgs.ripgrep ];

View File

@@ -17,14 +17,14 @@ in {
settings = [
{output = baseOutput//{
criteria = "LG Electronics LG ULTRAGEAR+ 511NTDVGC194";
mode = "2560x1440@480.168";
# mode = "2560x1440x240.083";
# mode = "2560x1440@480.168";
mode = "2560x1440@240.083";
# mode = "1920x1080x240.084";
};}
{output = baseOutput//{
criteria = "AOC 24E1W1 GNSKCHA086899";
mode = "1920x1080@60.000";
transform = "90";
transform = "180";
};}
{output = baseOutput//{
criteria = "AOC 24E1W1 GNSKBHA080346";
@@ -51,7 +51,6 @@ in {
outputs = [
{
criteria = "AOC 24E1W1 GNSKCHA086899";
transform = "180";
position = "0,0";
}
{
@@ -101,7 +100,7 @@ in {
}
];
exec = [
"${pkgs.eww}/bin/eww open bar --screen 0"
"${pkgs.writeShellScript "kanshi-hyprland-init" ''
#!/usr/bin/env bash
${pkgs.hyprland}/bin/hyprctl eval '
@@ -119,6 +118,7 @@ in {
''}"
"${pkgs.awww}/bin/awww restore"
"${pkgs.eww}/bin/eww open bar --screen 0"
];
};}
{profile = {

View File

@@ -0,0 +1,113 @@
{ lib, pkgs, config, ... }: {
config = lib.mkIf (config.usercfg.wm == "Wayland") {
programs.hyprlock = {
enable = true;
settings = {
general = {
grace = 5; # grace=5
no_fade_in = false; # fade-in=0.2 (handled dynamically)
ignore_empty_input = true; # ignore-empty-password
};
background = [
# 1. OLED MONITOR (Pure Black)
{
monitor = "desc:LG Electronics LG ULTRAGEAR+ 511NTDVGC194";
color = "rgba(0,0,0,1.0)"; # Pure black OLED protection
path = ""; # Explicitly no screenshot
zindex = 0;
}
# 2. ALL OTHER MONITORS (Pixelated Screenshot)
{
monitor = "";
path = "screenshot"; # screenshots
blur_passes = 3; # effect-pixelate=5 approximation
blur_size = 8;
noise = 0.01;
zindex = -1;
}
];
input-field = {
monitor = "";
placeholder_text = "";
fail_text = "";
size = "200, 200"; # Custom sizing matching indicator-radius
outline_thickness = 30; # indicator-thickness=30
dots_size = 0.33;
dots_spacing = 0.15;
dots_center = true;
fade_on_empty = true;
hide_input = true;
dots_text_format = "*";
font_family = "IBM Plex Mono"; # font=IBM Plex Mono
# --- Outer Rings / Outline Colors ---
# key-hl-color, bs-hl-color, caps-lock-key-hl-color
check_color = "rgb(${config.colorScheme.palette.base0C})"; # key-hl
fail_color = "rgb(${config.colorScheme.palette.base0F})"; # inside-wrong
capslock_color = "rgb(${config.colorScheme.palette.base09})"; # caps-lock-key-hl
# --- Inner/Outer Core Colors ---
# Replicating your transparent rings with solid action states
outer_color = "rgba(${config.colorScheme.palette.base00}00)"; # ring-color (Transparent)
inner_color = "rgba(${config.colorScheme.palette.base0C}00)"; # inside-color (Transparent)
font_color = "rgba(${config.colorScheme.palette.base00}00)"; # text-color (Transparent)
fail_transition = 300;
};
};
};
xdg.configFile."swaylock/config".text = ''
screenshots
grace-no-mouse
grace-no-touch
grace=5
effect-pixelate=5
fade-in=0.2
ignore-empty-password
font=IBM Plex Mono
color=${config.colorScheme.palette.base00}00
indicator-radius=100
indicator-thickness=30
separator-color=${config.colorScheme.palette.base00}00
inside-color=${config.colorScheme.palette.base0C}00
inside-clear-color=${config.colorScheme.palette.base08}FF
inside-caps-lock-color=${config.colorScheme.palette.base09}00
inside-ver-color=${config.colorScheme.palette.base0C}FF
inside-wrong-color=${config.colorScheme.palette.base0F}FF
ring-color=${config.colorScheme.palette.base00}00
ring-clear-color=${config.colorScheme.palette.base00}00
ring-caps-lock-color=${config.colorScheme.palette.base00}00
ring-ver-color=${config.colorScheme.palette.base00}00
ring-wrong-color=${config.colorScheme.palette.base00}00
line-color=${config.colorScheme.palette.base00}00
line-clear-color=${config.colorScheme.palette.base00}00
line-caps-lock-color=${config.colorScheme.palette.base00}00
line-ver-color=${config.colorScheme.palette.base00}00
line-wrong-color=${config.colorScheme.palette.base00}00
text-color=${config.colorScheme.palette.base00}00
text-clear-color=${config.colorScheme.palette.base00}00
text-caps-lock-color=${config.colorScheme.palette.base00}00
text-ver-color=${config.colorScheme.palette.base00}00
text-wrong-color=${config.colorScheme.palette.base00}00
key-hl-color=${config.colorScheme.palette.base0C}FF
bs-hl-color=${config.colorScheme.palette.base08}FF
caps-lock-key-hl-color=${config.colorScheme.palette.base09}FF
caps-lock-bs-hl-color=${config.colorScheme.palette.base09}FF
'';
};
}

View File

@@ -1,54 +0,0 @@
{ lib, pkgs, config, ... }: {
config = lib.mkIf (config.usercfg.wm == "Wayland") {
xdg.configFile."swaylock/config".text = ''
screenshots
grace-no-mouse
grace-no-touch
grace=5
effect-pixelate=5
fade-in=0.2
ignore-empty-password
font=IBM Plex Mono
color=${config.colorScheme.palette.base00}00
indicator-radius=100
indicator-thickness=30
separator-color=${config.colorScheme.palette.base00}00
inside-color=${config.colorScheme.palette.base0C}00
inside-clear-color=${config.colorScheme.palette.base08}FF
inside-caps-lock-color=${config.colorScheme.palette.base09}00
inside-ver-color=${config.colorScheme.palette.base0C}FF
inside-wrong-color=${config.colorScheme.palette.base0F}FF
ring-color=${config.colorScheme.palette.base00}00
ring-clear-color=${config.colorScheme.palette.base00}00
ring-caps-lock-color=${config.colorScheme.palette.base00}00
ring-ver-color=${config.colorScheme.palette.base00}00
ring-wrong-color=${config.colorScheme.palette.base00}00
line-color=${config.colorScheme.palette.base00}00
line-clear-color=${config.colorScheme.palette.base00}00
line-caps-lock-color=${config.colorScheme.palette.base00}00
line-ver-color=${config.colorScheme.palette.base00}00
line-wrong-color=${config.colorScheme.palette.base00}00
text-color=${config.colorScheme.palette.base00}00
text-clear-color=${config.colorScheme.palette.base00}00
text-caps-lock-color=${config.colorScheme.palette.base00}00
text-ver-color=${config.colorScheme.palette.base00}00
text-wrong-color=${config.colorScheme.palette.base00}00
key-hl-color=${config.colorScheme.palette.base0C}FF
bs-hl-color=${config.colorScheme.palette.base08}FF
caps-lock-key-hl-color=${config.colorScheme.palette.base09}FF
caps-lock-bs-hl-color=${config.colorScheme.palette.base09}FF
'';
};
}