From 8f09dd06b0efce55bfb54f63c886fd6d1bcd186d Mon Sep 17 00:00:00 2001 From: Daniel Flanagan Date: Tue, 30 Jul 2024 17:02:42 -0500 Subject: [PATCH] Make root a little more like me --- modules/home-manager/default.nix | 1 + .../fish/interactiveShellInit.fish | 9 ++++++-- modules/nixos/default.nix | 23 +++++++++++++++++++ nixos/beefcake.nix | 1 + 4 files changed, 32 insertions(+), 2 deletions(-) diff --git a/modules/home-manager/default.nix b/modules/home-manager/default.nix index 2ad9db6..884decb 100644 --- a/modules/home-manager/default.nix +++ b/modules/home-manager/default.nix @@ -1315,6 +1315,7 @@ programs.zellij = { # uses home manager's toKDL generator enable = true; + # This causes fish to start zellij immediately # enableFishIntegration = true; settings = { pane_frames = false; diff --git a/modules/home-manager/fish/interactiveShellInit.fish b/modules/home-manager/fish/interactiveShellInit.fish index b926649..f5ce75f 100644 --- a/modules/home-manager/fish/interactiveShellInit.fish +++ b/modules/home-manager/fish/interactiveShellInit.fish @@ -21,12 +21,17 @@ function preprocess_pwd | gawk '{n=split($0,p,"/");for(i=1;i<=n;i++){if(i==n){printf "/%s",p[i]}else{printf "/%.3s",p[i]}}}' end -function _maybe_sudo_prefix +function _maybe_elevated_access_prefix if set -q SUDO_USER set_color -b yellow black printf " SUDO " set_color -b normal normal printf " " + else if test $USER = root + set_color -b red black + printf " ROOT " + set_color -b normal normal + printf " " end end @@ -111,7 +116,7 @@ function fish_prompt set last_cmd_status $status _prompt_marker _prompt_prefix - _maybe_sudo_prefix + _maybe_elevated_access_prefix _user_and_host $last_cmd_status _cur_work_dir _maybe_git_summary diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index 824435e..a755a22 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -783,6 +783,28 @@ # networking.firewall.allowedTCPPortRanges = [ { from = 27036; to = 27037; } ]; }; + root = { + pkgs, + lib, + ... + }: { + users.users.root = { + home = "/root"; + createHome = true; + openssh.authorizedKeys.keys = [pubkey]; + shell = lib.mkForce pkgs.fish; + }; + home-manager.users.root = { + imports = [homeManagerModules.common]; + + home = { + username = "root"; + homeDirectory = "/root"; + stateVersion = pkgs.lib.mkDefault "24.05"; + }; + }; + }; + daniel = {pkgs, ...}: let username = "daniel"; in { @@ -887,6 +909,7 @@ mosh daniel + root ]; programs.gnupg.agent = { diff --git a/nixos/beefcake.nix b/nixos/beefcake.nix index 9a71bd7..179d846 100644 --- a/nixos/beefcake.nix +++ b/nixos/beefcake.nix @@ -765,6 +765,7 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00 "podman" "nix:docker://git.lyte.dev/lytedev/nix:latest" "beefcake:host" + "nixos-host:host" ]; tokenFile = config.sops.secrets."forgejo-runner.env".path; hostPackages = with pkgs; [