mirror of
https://github.com/javalsai/lidm.git
synced 2025-08-30 09:58:00 +02:00
fmt(nix): add nix fmt
, fmt and update flake.lock
This commit is contained in:
@@ -1,13 +1,20 @@
|
|||||||
{ cfg, src, lib, ... }:
|
{
|
||||||
|
cfg,
|
||||||
|
src,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
maker = import ./make-cfg.nix {
|
maker = import ./make-cfg.nix {
|
||||||
inherit lib;
|
inherit lib;
|
||||||
keys-h-file = builtins.readFile "${src}/include/keys.h";
|
keys-h-file = builtins.readFile "${src}/include/keys.h";
|
||||||
};
|
};
|
||||||
in builtins.toFile "lidm.conf" (
|
in
|
||||||
if builtins.isString cfg
|
builtins.toFile "lidm.conf" (
|
||||||
then builtins.readFile "${src}/themes/${cfg}.ini"
|
if builtins.isString cfg then
|
||||||
else if builtins.isAttrs cfg
|
builtins.readFile "${src}/themes/${cfg}.ini"
|
||||||
then maker.make cfg
|
else if builtins.isAttrs cfg then
|
||||||
else builtins.throw "invalid cfg type, expected str or attrs"
|
maker.make cfg
|
||||||
|
else
|
||||||
|
builtins.throw "invalid cfg type, expected str or attrs"
|
||||||
)
|
)
|
||||||
|
@@ -1,35 +1,44 @@
|
|||||||
{ config, pkgs, lib, ...}:
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
cfg-file = if config.cfg != null then
|
cfg-file =
|
||||||
import ./get-cfg-file.nix {
|
if config.cfg != null then
|
||||||
inherit lib;
|
import ./get-cfg-file.nix {
|
||||||
inherit (config) cfg src;
|
inherit lib;
|
||||||
}
|
inherit (config) cfg src;
|
||||||
else null;
|
}
|
||||||
|
else
|
||||||
|
null;
|
||||||
in
|
in
|
||||||
pkgs.stdenv.mkDerivation rec {
|
pkgs.stdenv.mkDerivation rec {
|
||||||
pname = "lidm";
|
pname = "lidm";
|
||||||
version = config.version;
|
version = config.version;
|
||||||
src = config.src;
|
src = config.src;
|
||||||
|
|
||||||
nativeBuildInputs = with pkgs; [
|
nativeBuildInputs = with pkgs; [
|
||||||
gcc
|
gcc
|
||||||
gnumake
|
gnumake
|
||||||
linux-pam
|
linux-pam
|
||||||
];
|
];
|
||||||
|
|
||||||
makeFlags = [
|
makeFlags =
|
||||||
"DESTDIR=$(out)"
|
[
|
||||||
"PREFIX="
|
"DESTDIR=$(out)"
|
||||||
|
"PREFIX="
|
||||||
]
|
]
|
||||||
++ lib.optional (config.xsessions != null)
|
++ lib.optional (
|
||||||
"CPPFLAGS+=-DSESSIONS_XSESSIONS=\\\"${config.xsessions}\\\""
|
config.xsessions != null
|
||||||
++ lib.optional (config.wayland-sessions != null)
|
) "CPPFLAGS+=-DSESSIONS_XSESSIONS=\\\"${config.xsessions}\\\""
|
||||||
"CPPFLAGS+=-DSESSIONS_WAYLAND=\\\"${config.wayland-sessions}\\\""
|
++ lib.optional (
|
||||||
++ lib.optional (cfg-file != null)
|
config.wayland-sessions != null
|
||||||
"CPPFLAGS+=-DLIDM_CONF_PATH=\\\"${cfg-file}\\\"";
|
) "CPPFLAGS+=-DSESSIONS_WAYLAND=\\\"${config.wayland-sessions}\\\""
|
||||||
|
++ lib.optional (cfg-file != null) "CPPFLAGS+=-DLIDM_CONF_PATH=\\\"${cfg-file}\\\"";
|
||||||
|
|
||||||
fixupPhase = ''
|
fixupPhase = ''
|
||||||
rm -rf $out/etc
|
rm -rf $out/etc
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
@@ -1,70 +1,73 @@
|
|||||||
{ lib, keys-h-file }:
|
{ lib, keys-h-file }:
|
||||||
|
|
||||||
let
|
let
|
||||||
double-match-to-nameval = dmatch: { name = builtins.elemAt dmatch 0; value = builtins.elemAt dmatch 1; };
|
double-match-to-nameval = dmatch: {
|
||||||
|
name = builtins.elemAt dmatch 0;
|
||||||
|
value = builtins.elemAt dmatch 1;
|
||||||
|
};
|
||||||
|
|
||||||
keys-enum = let
|
keys-enum =
|
||||||
key-names = builtins.replaceStrings ["\n" " "] ["" ""] (
|
let
|
||||||
builtins.elemAt (
|
key-names = builtins.replaceStrings [ "\n" " " ] [ "" "" ] (
|
||||||
builtins.match
|
builtins.elemAt (builtins.match ".*KEY_NAMES\\[][[:blank:]]*=[[:blank:]]*\\{([^}]*)}.*" keys-h-file) 0
|
||||||
".*KEY_NAMES\\[][[:blank:]]*=[[:blank:]]*\\{([^}]*)}.*"
|
);
|
||||||
keys-h-file
|
|
||||||
) 0
|
|
||||||
);
|
|
||||||
|
|
||||||
keys-2d-list = builtins.map
|
keys-2d-list = builtins.map (builtins.match "\\[(.*)]=\"(.*)\"") (
|
||||||
(builtins.match "\\[(.*)]=\"(.*)\"")
|
builtins.filter (s: builtins.isString s && s != "") (builtins.split "," key-names)
|
||||||
(builtins.filter
|
);
|
||||||
(s: builtins.isString s && s != "")
|
|
||||||
(builtins.split "," key-names)
|
|
||||||
);
|
|
||||||
|
|
||||||
in builtins.listToAttrs (
|
in
|
||||||
builtins.map
|
builtins.listToAttrs (
|
||||||
(k: k // { value = { __enum_key = k.value; }; })
|
builtins.map (
|
||||||
(builtins.map double-match-to-nameval keys-2d-list)
|
k:
|
||||||
|
k
|
||||||
|
// {
|
||||||
|
value = {
|
||||||
|
__enum_key = k.value;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
) (builtins.map double-match-to-nameval keys-2d-list)
|
||||||
);
|
);
|
||||||
in {
|
in
|
||||||
inherit keys-enum;
|
{
|
||||||
make = let
|
inherit keys-enum;
|
||||||
name-val-to-attrs = (name: value: { inherit name value; } );
|
make =
|
||||||
map-attrs = attrset: fn: lib.map fn
|
let
|
||||||
(lib.attrsets.mapAttrsToList name-val-to-attrs attrset);
|
name-val-to-attrs = (name: value: { inherit name value; });
|
||||||
|
map-attrs = attrset: fn: lib.map fn (lib.attrsets.mapAttrsToList name-val-to-attrs attrset);
|
||||||
|
|
||||||
try-foldl' = op: nul: list:
|
try-foldl' =
|
||||||
if (builtins.length list) == 0 then ""
|
op: nul: list:
|
||||||
else builtins.foldl' op nul list;
|
if (builtins.length list) == 0 then "" else builtins.foldl' op nul list;
|
||||||
concat-with = sepr: list: try-foldl'
|
concat-with = sepr: list: try-foldl' (x: y: if x == null then y else x + sepr + y) null list;
|
||||||
(x: y: if x == null then y else x + sepr + y)
|
|
||||||
null
|
|
||||||
list;
|
|
||||||
|
|
||||||
ser-bool = bool: if bool then "true" else "false";
|
ser-bool = bool: if bool then "true" else "false";
|
||||||
ser-str = str: "\"${builtins.replaceStrings ["\n" "\""] ["\\n" "\\\""] str}\"";
|
ser-str = str: "\"${builtins.replaceStrings [ "\n" "\"" ] [ "\\n" "\\\"" ] str}\"";
|
||||||
ser-kvs = { name, value }: if builtins.isList value then
|
ser-kvs =
|
||||||
concat-with "\n" (
|
{ name, value }:
|
||||||
builtins.map
|
if builtins.isList value then
|
||||||
(value: ser-kvs { inherit name value; })
|
concat-with "\n" (builtins.map (value: ser-kvs { inherit name value; }) value)
|
||||||
value
|
else
|
||||||
)
|
"${name} = ${
|
||||||
else "${name} = ${
|
|
||||||
if builtins.isString value then
|
if builtins.isString value then
|
||||||
ser-str value
|
ser-str value
|
||||||
else if builtins.isInt value then
|
else if builtins.isInt value then
|
||||||
builtins.toString value
|
builtins.toString value
|
||||||
else if builtins.isBool value then
|
else if builtins.isBool value then
|
||||||
ser-bool value
|
ser-bool value
|
||||||
else if builtins.isAttrs value then
|
else if builtins.isAttrs value then
|
||||||
value.__enum_key
|
value.__enum_key
|
||||||
else builtins.throw "type not supported"
|
else
|
||||||
}";
|
builtins.throw "type not supported"
|
||||||
|
}";
|
||||||
|
|
||||||
ser-table = table': let
|
ser-table =
|
||||||
tname = table'.name;
|
table':
|
||||||
table = table'.value;
|
let
|
||||||
|
tname = table'.name;
|
||||||
|
table = table'.value;
|
||||||
in
|
in
|
||||||
"[${tname}]\n" + (
|
"[${tname}]\n" + (concat-with "\n" (map-attrs table ser-kvs));
|
||||||
concat-with "\n" (map-attrs table ser-kvs)
|
in
|
||||||
);
|
cfg: concat-with "\n\n" (map-attrs cfg ser-table);
|
||||||
in cfg: concat-with "\n\n" (map-attrs cfg ser-table);
|
|
||||||
}
|
}
|
||||||
|
@@ -1,55 +1,65 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.services.lidm;
|
cfg = config.services.lidm;
|
||||||
|
|
||||||
dmcfg = config.services.displayManager;
|
dmcfg = config.services.displayManager;
|
||||||
desktops = dmcfg.sessionData.desktops;
|
desktops = dmcfg.sessionData.desktops;
|
||||||
|
|
||||||
version = "1.2.1";
|
version = "1.2.1";
|
||||||
lidmPkg = pkgs.callPackage ./lidm.nix {
|
lidmPkg = pkgs.callPackage ./lidm.nix {
|
||||||
inherit pkgs;
|
inherit pkgs;
|
||||||
config = {
|
config = {
|
||||||
inherit version lib;
|
inherit version lib;
|
||||||
cfg = cfg.config;
|
cfg = cfg.config;
|
||||||
src = pkgs.fetchFromGitHub {
|
src = pkgs.fetchFromGitHub {
|
||||||
owner = "javalsai";
|
owner = "javalsai";
|
||||||
repo = "lidm";
|
repo = "lidm";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-3CgUI8PUs4c1bfBrykPw87SSa4lzrh4E4Hug7cGRKFk=";
|
sha256 = "sha256-3CgUI8PUs4c1bfBrykPw87SSa4lzrh4E4Hug7cGRKFk=";
|
||||||
};
|
};
|
||||||
|
|
||||||
xsessions = "${desktops}/share/xsessions";
|
xsessions = "${desktops}/share/xsessions";
|
||||||
wayland-sessions = "${desktops}/share/wayland-sessions";
|
wayland-sessions = "${desktops}/share/wayland-sessions";
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.services.lidm.config = lib.mkOption {
|
options.services.lidm.config = lib.mkOption {
|
||||||
type = with lib.types; oneOf [ str attrs ];
|
type =
|
||||||
default = {};
|
with lib.types;
|
||||||
description = "Config options for lidm | Either attr tree or name of bundled themes";
|
oneOf [
|
||||||
};
|
str
|
||||||
config = {
|
attrs
|
||||||
services.displayManager.defaultSession = "lidm";
|
];
|
||||||
|
default = { };
|
||||||
|
description = "Config options for lidm | Either attr tree or name of bundled themes";
|
||||||
|
};
|
||||||
|
config = {
|
||||||
|
services.displayManager.defaultSession = "lidm";
|
||||||
|
|
||||||
systemd.services.lidm = {
|
systemd.services.lidm = {
|
||||||
description = "TUI display manager";
|
description = "TUI display manager";
|
||||||
aliases = [ "display-manager.service" ];
|
aliases = [ "display-manager.service" ];
|
||||||
after = [
|
after = [
|
||||||
"systemd-user-sessions.service"
|
"systemd-user-sessions.service"
|
||||||
"plymouth-quit-wait.service"
|
"plymouth-quit-wait.service"
|
||||||
];
|
];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "idle";
|
Type = "idle";
|
||||||
ExecStart = "${lidmPkg}/bin/lidm 7";
|
ExecStart = "${lidmPkg}/bin/lidm 7";
|
||||||
StandardInput = "tty";
|
StandardInput = "tty";
|
||||||
StandardOutput = "tty";
|
StandardOutput = "tty";
|
||||||
StandardError = "tty";
|
StandardError = "tty";
|
||||||
TTYPath = "/dev/tty7";
|
TTYPath = "/dev/tty7";
|
||||||
TTYReset = "yes";
|
TTYReset = "yes";
|
||||||
TTYVHangup = "yes";
|
TTYVHangup = "yes";
|
||||||
};
|
};
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
12
flake.lock
generated
12
flake.lock
generated
@@ -5,11 +5,11 @@
|
|||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1710146030,
|
"lastModified": 1731533236,
|
||||||
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -20,11 +20,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1724224976,
|
"lastModified": 1751637120,
|
||||||
"narHash": "sha256-Z/ELQhrSd7bMzTO8r7NZgi9g5emh+aRKoCdaAv5fiO0=",
|
"narHash": "sha256-xVNy/XopSfIG9c46nRmPaKfH1Gn/56vQ8++xWA8itO4=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "c374d94f1536013ca8e92341b540eba4c22f9c62",
|
"rev": "5c724ed1388e53cc231ed98330a60eb2f7be4be3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
14
flake.nix
14
flake.nix
@@ -7,16 +7,18 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
{ flake-utils, nixpkgs, ... }:
|
{
|
||||||
|
flake-utils,
|
||||||
|
nixpkgs,
|
||||||
|
self,
|
||||||
|
}:
|
||||||
flake-utils.lib.eachDefaultSystem (
|
flake-utils.lib.eachDefaultSystem (
|
||||||
system:
|
system:
|
||||||
let
|
let
|
||||||
pkgs = import nixpkgs { inherit system; };
|
pkgs = import nixpkgs { inherit system; };
|
||||||
|
|
||||||
name = "lidm";
|
name = "lidm";
|
||||||
version = builtins.elemAt (
|
version = builtins.elemAt (builtins.match "VERSION[[:blank:]]*=[[:space:]]*([^\n]*)\n.*" (builtins.readFile ./Makefile)) 0;
|
||||||
builtins.match "VERSION[[:blank:]]*=[[:space:]]*([^\n]*)\n.*" (builtins.readFile ./Makefile)
|
|
||||||
) 0;
|
|
||||||
|
|
||||||
lidm = pkgs.callPackage assets/pkg/nix/lidm.nix {
|
lidm = pkgs.callPackage assets/pkg/nix/lidm.nix {
|
||||||
inherit pkgs;
|
inherit pkgs;
|
||||||
@@ -35,8 +37,10 @@
|
|||||||
defaultApp = flake-utils.lib.mkApp { drv = defaultPackage; };
|
defaultApp = flake-utils.lib.mkApp { drv = defaultPackage; };
|
||||||
defaultPackage = lidm;
|
defaultPackage = lidm;
|
||||||
devShell = pkgs.mkShell { buildInputs = lidm.nativeBuildInputs ++ [ pkgs.clang-tools ]; };
|
devShell = pkgs.mkShell { buildInputs = lidm.nativeBuildInputs ++ [ pkgs.clang-tools ]; };
|
||||||
|
formatter = nixpkgs.legacyPackages.${system}.nixfmt-tree;
|
||||||
}
|
}
|
||||||
) // {
|
)
|
||||||
|
// {
|
||||||
nixosModules.lidm = assets/pkg/nix/module.nix;
|
nixosModules.lidm = assets/pkg/nix/module.nix;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user