···11-{ config, lib, pkgs, ... }:
11+{
22+ config,
33+ lib,
44+ pkgs,
55+ ...
66+}:
2738let
49···1722 };
18231924 config = lib.mkIf (ldmcfg.enable && cfg.enable) {
2525+ # Lomiri greeter == Lomiri shell in special mode, need some basics setup at least
2626+ services.desktopManager.lomiri.basics = true;
2727+2028 services.xserver.displayManager.lightdm.greeters.gtk.enable = false;
21292230 services.xserver.displayManager.lightdm.greeter = lib.mkDefault {
+9-12
nixos/tests/lomiri.nix
···7272 inherit description password;
7373 };
74747575- services.desktopManager.lomiri.enable = lib.mkForce true;
7676- services.displayManager.defaultSession = lib.mkForce "lomiri";
7777-7878- # Help with OCR
7979- fonts.packages = [ pkgs.inconsolata ];
7575+ services.xserver.enable = true;
7676+ services.xserver.windowManager.icewm.enable = true;
7777+ services.xserver.displayManager.lightdm = {
7878+ enable = true;
7979+ greeters.lomiri.enable = true;
8080+ };
8181+ services.displayManager.defaultSession = lib.mkForce "none+icewm";
8082 };
81838284 enableOCR = true;
···110112111113 # Login
112114 machine.send_chars("${password}\n")
113113- machine.wait_until_succeeds("pgrep -u ${user} -f 'lomiri --mode=full-shell'")
114114-115115- # Output rendering from Lomiri has started when it starts printing performance diagnostics
116116- machine.wait_for_console_text("Last frame took")
117117- # Look for datetime's clock, one of the last elements to load
118118- wait_for_text(r"(AM|PM)")
119119- machine.screenshot("lomiri_launched")
115115+ machine.wait_for_x()
116116+ machine.screenshot("session_launched")
120117 '';
121118 }
122119 );
+61
pkgs/by-name/ad/ad/package.nix
···11+{
22+ lib,
33+ rustPlatform,
44+ fetchFromGitHub,
55+ installShellFiles,
66+ versionCheckHook,
77+}:
88+99+rustPlatform.buildRustPackage rec {
1010+ pname = "ad";
1111+ version = "0.1.3";
1212+1313+ src = fetchFromGitHub {
1414+ owner = "sminez";
1515+ repo = "ad";
1616+ rev = "refs/tags/${version}";
1717+ hash = "sha256-l1SyrJW3lZIvoFZG57Bj134sUcoq60xfeXjzVaZPfzs=";
1818+ };
1919+2020+ cargoHash = "sha256-wpR9wZA5SGyLI1ScfZwSENuUMI/iX3YS0P/o9drIwoo=";
2121+2222+ nativeBuildInputs = [ installShellFiles ];
2323+2424+ checkFlags = [
2525+ # both assume `/usr/bin/sh` exists
2626+ "--skip=buffer::tests::try_expand_known_works::file_that_exists_abs_path"
2727+ "--skip=buffer::tests::try_expand_known_works::file_that_exists_abs_path_with_addr"
2828+ ];
2929+3030+ postInstall = ''
3131+ installManPage doc/man/ad.1
3232+ '';
3333+3434+ nativeInstallCheckInputs = [
3535+ versionCheckHook
3636+ ];
3737+3838+ doInstallCheck = true;
3939+4040+ meta = {
4141+ description = "Adaptable text editor";
4242+ longDescription = ''
4343+ ad (pronounced A.D.) is an attempt at combining a modal
4444+ editing interface of likes of vi and kakoune with the
4545+ approach to extensibility of Plan9's Acme. Inside
4646+ of ad text is something you can execute as well as edit.
4747+4848+ It is primarily intended as playground for experimenting
4949+ with implementing various text editor features and
5050+ currently is not at all optimised or feature complete
5151+ enough for use as your main text editor.
5252+ '';
5353+ homepage = "https://github.com/sminez/ad";
5454+ license = lib.licenses.mit;
5555+ mainProgram = "ad";
5656+ maintainers = with lib.maintainers; [ aleksana ];
5757+ # rely on unix domain socket
5858+ # https://github.com/sminez/ad/issues/28
5959+ platforms = lib.platforms.unix;
6060+ };
6161+}