commit 27b28e997bbc3ee395fae7e893e03248e5ae8999
parent ee2730f757b449114b8997ee870e3db73f90b636
Author: Daniel Barlow <dan@telent.net>
Date: Fri, 1 Jul 2022 22:10:12 +0000
nixos module to start kiwmi at boot
this is here for my convenience, I make no claims of practicality
or beauty (it uses nix-shell and hardcodes pathnames)
Diffstat:
3 files changed, 66 insertions(+), 0 deletions(-)
diff --git a/module.nix b/module.nix
@@ -0,0 +1,58 @@
+{ config, lib, pkgs, ... }:
+{
+ systemd.services."eufon" = {
+ wants = [
+ "systemd-machined.service"
+ "accounts-daemon.service"
+ "systemd-udev-settle.service"
+ "dbus.socket"
+ ];
+ aliases = [ "display-manager.service" ];
+ after = [
+ "rc-local.service"
+ "systemd-machined.service"
+ "systemd-user-sessions.service"
+ "getty@tty2.service"
+ "plymouth-quit.service"
+ "plymouth-start.service"
+ "systemd-logind.service"
+ "systemd-udev-settle.service"
+ ];
+ conflicts = [
+ "getty@tty2.service"
+ "plymouth-quit.service"
+ ];
+ wantedBy = [ "multi-user.target" ];
+ serviceConfig =
+ let run-eufon = pkgs.writeScript "run-eufon" ''
+ #!${pkgs.bash}/bin/bash
+ source ${config.system.build.setEnvironment}
+ ${pkgs.dbus}/bin/dbus-run-session /home/dan/src/eufon/run.sh
+ systemd-cat echo "dbus-run-session $?"
+ '';
+ in {
+ WorkingDirectory = "/home/dan/src/eufon";
+ TTYPath = "/dev/tty2";
+ TTYReset = "yes";
+ TTYVHangup = "yes";
+ TTYVTDisallocate = "yes";
+ PAMName = "login";
+ StandardInput = "tty";
+ StandardError = "journal";
+ StandardOutput = "journal";
+ User = "dan";
+ ExecStart = run-eufon;
+ Restart = "always";
+ };
+ environment = {
+ NIX_PATH = "nixpkgs=${<nixpkgs>}";
+ };
+ };
+ environment.systemPackages = with pkgs; [
+ git
+ ];
+ networking.networkmanager.enable = true;
+ services.logind.extraConfig = ''
+ HandlePowerKey=ignore
+ '';
+}
diff --git a/run.sh b/run.sh
@@ -0,0 +1,2 @@
+#!/usr/bin/env bash
+nix-shell --run "start_eufon"
diff --git a/shell.nix b/shell.nix
@@ -5,5 +5,11 @@ in (p.overrideAttrs (o:{
shellHook = ''
export LUA_PATH=`lua -e 'print(package.path)'`
export LUA_CPATH=`lua -e 'print(package.cpath)'`
+ # this is a shell function mostly so that I can comment it out
+ # to experiment with starting sway or tinywl or something else
+ # to see how they behave if kiwmi is being weird
+ start_eufon(){
+ kiwmi -c init.lua;
+ }
'';
})).override { debug = true; }