From 27b28e997bbc3ee395fae7e893e03248e5ae8999 Mon Sep 17 00:00:00 2001 From: Daniel Barlow Date: Fri, 1 Jul 2022 22:10:12 +0000 Subject: [PATCH] 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) --- module.nix | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ run.sh | 2 ++ shell.nix | 6 ++++++ 3 files changed, 66 insertions(+) create mode 100644 module.nix create mode 100644 run.sh diff --git a/module.nix b/module.nix new file mode 100644 index 0000000..f1cf9e9 --- /dev/null +++ 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=${}"; + }; + }; + environment.systemPackages = with pkgs; [ + git + ]; + networking.networkmanager.enable = true; + services.logind.extraConfig = '' + HandlePowerKey=ignore + ''; +} diff --git a/run.sh b/run.sh new file mode 100644 index 0000000..68ceec7 --- /dev/null +++ b/run.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +nix-shell --run "start_eufon" diff --git a/shell.nix b/shell.nix index ec2e0c5..c3d61ce 100644 --- 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; }