desktop: swaylock -> gtklock (#89)
Some checks are pending
git-mirror / gitlab-sync (push) Waiting to run
nix-build / default-build (push) Waiting to run
nix-build / fallarbor-build (push) Waiting to run
nix-build / lavaridge-build (push) Waiting to run
nix-build / mauville-build (push) Waiting to run
nix-build / petalburg-build (push) Waiting to run
nix-build / rustboro-build (push) Waiting to run
nix-check / fmt-check (push) Waiting to run
nix-check / eval-check (push) Waiting to run

* nixos/desktop: add pam config for gtklock

* apps: add gtklock config

* nixos: fix duplicate pam settings

* desktop: switch to gtklock

* swayidle: switch to gtklock

* nixfmt

* desktop: simplify pam config with inherit
This commit is contained in:
Aly Raffauf 2024-08-12 01:05:07 -04:00 committed by GitHub
parent aea06d5eda
commit 62f2d5b1d0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 72 additions and 28 deletions

View file

@ -7,6 +7,7 @@
./fastfetch
./firefox
./fuzzel
./gtklock
./helix
./keepassxc
./kitty

View file

@ -0,0 +1,43 @@
{
config,
lib,
pkgs,
...
}: let
cfg = config.ar.home;
in {
config = lib.mkIf cfg.apps.gtklock.enable {
home.packages = with pkgs; [
gtklock
];
xdg.configFile = {
"gtklock/config.ini".text = ''
[main]
gtk-theme=adw-gtk3-dark
time-format=%I:%M%p
'';
"gtklock/style.css".text = ''
window {
background-image: url("${cfg.theme.wallpaper}");
background-size: cover;
background-repeat: no-repeat;
background-position: center;
background-color: black;
}
#clock-label {
margin-bottom: 50px;
font-size: 700%;
font-weight: bold;
color: ${cfg.theme.colors.text};
}
#input-label {
color: ${cfg.theme.colors.text};
}
'';
};
};
}

View file

@ -27,7 +27,7 @@ in {
bind =
[
"$mod CTRL,L,exec,${lib.getExe pkgs.swaylock}"
"$mod CTRL,L,exec,${lib.getExe pkgs.gtklock}"
"$mod SHIFT,G,togglegroup"
"$mod SHIFT,R,exec,${lib.getExe config.programs.rofi.package} -show run"
"$mod SHIFT,S,movetoworkspace,special:magic"

View file

@ -95,7 +95,7 @@ in {
"${modifier}+B" = "exec ${lib.getExe cfg.defaultApps.webBrowser}";
"${modifier}+C" = "kill";
"${modifier}+Comma" = "workspace prev";
"${modifier}+Control+L" = "exec ${lib.getExe pkgs.swaylock}";
"${modifier}+Control+L" = "exec ${lib.getExe pkgs.gtklock}";
"${modifier}+E" = "exec ${lib.getExe cfg.defaultApps.editor}";
"${modifier}+F" = "exec ${lib.getExe cfg.defaultApps.fileManager}";
"${modifier}+F11" = "exec pkill -SIGUSR1 waybar"; # Show/hide waybar

View file

@ -9,7 +9,7 @@
apps = {
kitty.enable = lib.mkDefault true;
rofi.enable = lib.mkDefault true;
swaylock.enable = lib.mkDefault true;
gtklock.enable = lib.mkDefault true;
};
services = {

View file

@ -36,6 +36,7 @@ in {
fastfetch.enable = lib.mkEnableOption "Fastfetch.";
firefox.enable = lib.mkEnableOption "Firefox web browser.";
fuzzel.enable = lib.mkEnableOption "Fuzzel app launcher.";
gtklock.enable = lib.mkEnableOption "GTK lockscreen based on gtkgreet.";
helix.enable = lib.mkEnableOption "Helix text editor.";
keepassxc = {

View file

@ -19,11 +19,11 @@ in {
}
{
event = "before-sleep";
command = "${lib.getExe pkgs.swaylock} && ${lib.getExe' pkgs.coreutils "sleep"} 2";
command = "${lib.getExe pkgs.gtklock} && ${lib.getExe' pkgs.coreutils "sleep"} 2";
}
{
event = "lock";
command = "${lib.getExe pkgs.swaylock}";
command = "${lib.getExe pkgs.gtklock}";
}
];
@ -42,7 +42,7 @@ in {
++ lib.optional (!cfg.desktop.autoSuspend)
{
timeout = 600;
command = "${lib.getExe pkgs.swaylock}";
command = "${lib.getExe pkgs.gtklock}";
}
++ lib.optional (!cfg.desktop.autoSuspend && cfg.desktop.hyprland.enable)
{

View file

@ -5,9 +5,7 @@
...
}: {
config = lib.mkIf (config.ar.desktop.hyprland.enable || config.ar.desktop.sway.enable) {
programs = {
gnupg.agent.pinentryPackage = lib.mkForce pkgs.pinentry-gnome3;
};
programs.gnupg.agent.pinentryPackage = lib.mkForce pkgs.pinentry-gnome3;
services = {
dbus.packages = [pkgs.gcr];
@ -15,29 +13,30 @@
udev.packages = [pkgs.swayosd];
};
security.pam.services = {
swaylock = {
text = ''
# Account management.
account required pam_unix.so # unix (order 10900)
security.pam.services = let
text = ''
# Account management.
account required pam_unix.so # unix (order 10900)
# Authentication management.
auth sufficient pam_unix.so likeauth try_first_pass likeauth nullok # unix (order 11500)
${
lib.strings.optionalString config.services.fprintd.enable
"auth sufficient ${pkgs.fprintd}/lib/security/pam_fprintd.so # fprintd (order 11300)"
}
# Authentication management.
auth sufficient pam_unix.so likeauth try_first_pass nullok # unix (order 11500)
${
lib.strings.optionalString config.services.fprintd.enable
"auth sufficient ${pkgs.fprintd}/lib/security/pam_fprintd.so # fprintd (order 11300)"
}
auth required pam_deny.so # deny (order 12300)
auth required pam_deny.so # deny (order 12300)
# Password management.
password sufficient pam_unix.so nullok yescrypt # unix (order 10200)
# Password management.
password sufficient pam_unix.so nullok yescrypt # unix (order 10200)
# Session management.
session required pam_env.so conffile=/etc/pam/environment readenv=0 # env (order 10100)
session required pam_unix.so # unix (order 10200)
'';
};
# Session management.
session required pam_env.so conffile=/etc/pam/environment readenv=0 # env (order 10100)
session required pam_unix.so # unix (order 10200)
'';
in {
gtklock = {inherit text;};
swaylock = {inherit text;};
};
};
}