From d6fb0e2c1cbf3773f9250f17aa4ca4c4e19a9d34 Mon Sep 17 00:00:00 2001 From: Malte Brandy Date: Mon, 19 Oct 2020 15:32:40 +0200 Subject: [PATCH] Autostart --- home-manager/machines.nix | 29 ++++++++++++-------- home-manager/roles/desktop/desktop-items.nix | 11 ++++++-- home-manager/roles/laptop.nix | 13 +++++++-- home-manager/roles/zsh/zshrc | 3 ++ overlays/writeHaskellScript.nix | 1 + 5 files changed, 41 insertions(+), 16 deletions(-) diff --git a/home-manager/machines.nix b/home-manager/machines.nix index a985f953..7be606e1 100644 --- a/home-manager/machines.nix +++ b/home-manager/machines.nix @@ -7,6 +7,11 @@ let }; in { apollo = let + makeAutostart = name: + { config, ... }: { + config.home.file.".config/autostart/${name}.desktop".source = + "${config.home.path}/share/applications/${name}.desktop"; + }; setStartpage = startpage: { ... }: { programs.firefox.profiles."fz2sm95u.default".settings = { @@ -15,18 +20,15 @@ in { }; makeBlock = list: { pkgs, lib, ... }: { - systemd.user = { - services.blockserver = { - Unit = { Description = "Serve a blocklist"; }; - Service = { - ExecStart = "${pkgs.python3}/bin/python -m http.server 8842 -d ${ - pkgs.writeTextDir "blocklist" - (lib.concatStringsSep "\r\n" list) - }"; - Restart = "always"; - }; - Install = { WantedBy = [ "default.target" ]; }; + systemd.user.services.blockserver = { + Unit.Description = "Serve a blocklist"; + Service = { + ExecStart = "${pkgs.python3}/bin/python -m http.server 8842 -d ${ + pkgs.writeTextDir "blocklist" (lib.concatStringsSep "\r\n" list) + }"; + Restart = "always"; }; + Install.WantedBy = [ "default.target" ]; }; }; tinkerPages = [ @@ -81,6 +83,8 @@ in { ./roles/chat.nix (setStartpage "https://stats.maralorn.de/d/health-status") (makeBlock [ ]) + (makeAutostart "firefox") + (makeAutostart "chat") ]; in { unrestricted = apolloConfig unrestricted; @@ -90,6 +94,9 @@ in { ./roles/pythia.nix (setStartpage "https://habitica.com") (makeBlock (tinkerPages ++ leisurePages)) + (makeAutostart "firefox") + (makeAutostart "kassandra") + (makeAutostart "kassandra2") ]; research = apolloConfig [ ./roles/research.nix diff --git a/home-manager/roles/desktop/desktop-items.nix b/home-manager/roles/desktop/desktop-items.nix index 5d6427f4..91dff7b2 100644 --- a/home-manager/roles/desktop/desktop-items.nix +++ b/home-manager/roles/desktop/desktop-items.nix @@ -17,6 +17,13 @@ let terminalDesktopItem = name: namedTerminalDesktopItem name name; in { - home.packages = map superSimpleDesktopItem [ "kassandra2" ] - ++ map terminalDesktopItem [ "maintenance" "ncmpcpp" "kassandra" "hotkeys" "vim" "gw2" "chat" ]; + home.packages = map superSimpleDesktopItem [ "kassandra2" "gw2" "chat" ] + ++ map terminalDesktopItem [ + "maintenance" + "ncmpcpp" + "kassandra" + "hotkeys" + "vim" + "select-mode" + ]; } diff --git a/home-manager/roles/laptop.nix b/home-manager/roles/laptop.nix index 0c58d90e..51e24c8d 100644 --- a/home-manager/roles/laptop.nix +++ b/home-manager/roles/laptop.nix @@ -52,7 +52,7 @@ in { ''; quickUpdateMode = pkgs.writeHaskellScript { name = "quick-update-mode"; - bins = [ updateModes pkgs.git pkgs.home-manager pkgs.nix-output-monitor]; + bins = [ updateModes pkgs.git pkgs.home-manager pkgs.nix-output-monitor ]; } '' getMode :: IO Text getMode = decodeUtf8 <$> (cat "/home/maralorn/volatile/mode" |> captureTrim) @@ -66,7 +66,13 @@ in { ''; selectMode = pkgs.writeHaskellScript { name = "select-mode"; - bins = [ pkgs.dialog activateMode pkgs.ncurses pkgs.sway pkgs.gnome3.gnome-session ]; + bins = [ + pkgs.dialog + activateMode + pkgs.ncurses + pkgs.sway + pkgs.gnome3.gnome-session + ]; } '' main = do mode <- decodeUtf8 <$> (dialog "--menu" "Select Mode" "20" "80" "5" ${ @@ -75,7 +81,8 @@ in { clear writeFile "/home/maralorn/volatile/mode" mode activate_mode - concurrently_ (swaymsg "exit") gnome_session_quit + void $ (try $ swaymsg "exit" :: IO (Either SomeException ())) + void $ (try $ gnome_session_quit "--no-prompt" :: IO (Either SomeException ())) ''; inherit (pkgs.gnome3) nautilus; diff --git a/home-manager/roles/zsh/zshrc b/home-manager/roles/zsh/zshrc index faef2abc..622a88ed 100644 --- a/home-manager/roles/zsh/zshrc +++ b/home-manager/roles/zsh/zshrc @@ -1,6 +1,9 @@ if [[ -n "$SSH_CONNECTION" && -z "$TMUX" ]] { exec mytmux } +if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then + exec sway +fi mkdir -p /var/run/user/$UID/tmp/downloads setopt prompt_subst diff --git a/overlays/writeHaskellScript.nix b/overlays/writeHaskellScript.nix index 664c9424..8da25a70 100644 --- a/overlays/writeHaskellScript.nix +++ b/overlays/writeHaskellScript.nix @@ -21,6 +21,7 @@ self: super: { {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE TupleSections #-} + {-# LANGUAGE PartialTypeSignatures #-} import Shh import Relude