summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKjetil Ørbekk <kj@orbekk.com>2019-07-25 14:57:39 -0400
committerKjetil Ørbekk <kj@orbekk.com>2019-07-25 14:57:39 -0400
commitb708b0608b704c4206d70ab1bc7162901ba71bf3 (patch)
treea4f628c4c3de769bd4b2a656c92dbd3a21d34984
parent86676d9a8459492acd1b3dbb7dceb85f834e7349 (diff)
Home m
-rw-r--r--home.nix40
1 files changed, 40 insertions, 0 deletions
diff --git a/home.nix b/home.nix
new file mode 100644
index 0000000..ee8f508
--- /dev/null
+++ b/home.nix
@@ -0,0 +1,40 @@
+{ config, pkgs, ... }:
+
+{
+ programs.home-manager.enable = true;
+
+ systemd.user.startServices = true;
+
+ systemd.user.services = {
+ weechat = {
+ Unit = {
+ Description = "Weechat";
+ After = [ "networking.target" ];
+ };
+
+ Service = {
+ Environment = ["TERM=${pkgs.rxvt_unicode.terminfo}" "TMUX_TMPDIR=/run/user/1000"];
+ Type = "oneshot";
+ RemainAfterExit = "yes";
+ ExecStart = "" + pkgs.writeScript "weechat-start" ''
+ #!${pkgs.stdenv.shell}
+ ${pkgs.tmux}/bin/tmux -2 new-session -d -s irc "${pkgs.weechat}/bin/weechat"
+ '';
+ ExecStop = "" + pkgs.writeScript "weechat-stop" ''
+ #!${pkgs.stdenv.shell}
+ pkill -SIGTERM -xf "${pkgs.weechat}/bin/weechat"
+ for i in {1..10}; do
+ echo "Waiting for weechat to stop... $i"
+ pgrep -xlf "${pkgs.weechat}/bin/weechat" || break
+ sleep 1
+ done
+ tmux kill-session -t irc || true
+ '';
+ };
+
+ Install = {
+ WantedBy = [ "default.target" ];
+ };
+ };
+ };
+}