authorgravatar for git@paperclover.netclover caruso <git@paperclover.net> 2025-09-24 11:59:26-07:00
committergravatar for git@paperclover.netclover caruso <git@paperclover.net> 2025-09-24 12:11:14-07:00
log168c36042b1a70c406e4d195d34c20c482a3cde3
tree7e89798aadbe4e982e316bb235b0591d6f69fe19
parentf4817e31485e763cdf2dad6b021895f964033aba
signature Signed by SSH key SHA256:xbd+BjjhyBfwk7GVoURf9Yx0gzDerHbvYv7SddNWmAs

clover: setup work environment

switch command gets some new features to account for the fact my work device hostname contains info about the company i work for.

6 files changed, 49 insertions(+), 20 deletions(-)

.gitignore+2-1
......@@ -1,4 +1,5 @@
1flake.lock
21.DS_STORE
2.hostname
3flake.lock
34result
45result-*
flake.nix+6
......@@ -133,6 +133,12 @@
133133 host = "paperback";
134134 system = "aarch64-darwin";
135135 };
136 # clover's work macbook pro
137 darwinConfigurations.clover-work-mac = mkSystem "clover-work-mac" {
138 user = "clover";
139 host = "work";
140 system = "aarch64-darwin";
141 };
136142
137143 # fish's cattop
138144 nixosConfigurations.cattop = mkSystem "cattop" {
switch+16-5
......@@ -1,12 +1,23 @@
11#!/bin/sh
22nh_subcommand="os"
33fallback_command="nixos-rebuild"
4if [ "$(uname -o)" = "darwin" ]; then
5 nh_subcommand="darwin"
6 fallback_command="nix run .#darwin-rebuild"
4hostname_file="$(dirname "$0")/.hostname"
5if [ -n "$1" ]; then
6 hostname="$1"
7elif [ -f "$hostname_file" ]; then
8 hostname=$(cat "$hostname_file")
9fi
10if [ -z "$hostname" ]; then
11 hostname="$(hostname)"
12fi
13printf "%s" "$hostname" >"$hostname_file"
14if [ "$(uname -o)" = "Darwin" ]; then
15 nh_subcommand="darwin"
16 fallback_command="nix run .#darwin-rebuild"
17 hostname="darwinConfigurations.$hostname"
718fi
819if command -v nh >/dev/null; then
9 nh $nh_subcommand switch .
20 nh $nh_subcommand switch '.#'"$hostname"
1021else
11 $fallback_command -- switch --flake .
22 $fallback_command -- switch --flake '.#'"$hostname"
1223fi
users/clover/home.nix+2-10
......@@ -10,9 +10,7 @@ in
1010 let
1111 # packages to always install
1212 all = [
13 (ffmpeg.override {
14 withSvtav1 = true;
15 })
13 ffmpeg-full
1614 ripgrep
1715 uv
1816 nh
......@@ -22,6 +20,7 @@ in
2220 desktop = [
2321 git-town
2422 lazygit
23 jjui
2524 ];
2625 # packages to install on all servers
2726 server = [ ];
......@@ -278,12 +277,5 @@ in
278277 "nas.paperclover.net" = zenith;
279278 };
280279 };
281 neovide = {
282 enable = !hostServer;
283 settings = {
284 font.normal = "AT Name Mono";
285 font.size = 13;
286 };
287 };
288280 };
289281}
users/clover/paperback/home.nix-4
......@@ -3,7 +3,6 @@
33 # these programs are not globally installed to reduce distractions.
44 # most of these are needed for my work environment.
55 programs = {
6 bun.enable = true;
76 zsh.profileExtra = ''
87 _bun() {
98 local context state line
......@@ -12,7 +11,6 @@
1211 '';
1312 };
1413 home.packages = with pkgs; [
15 doppler
1614 deno
1715 nodejs_22
1816 rustup
......@@ -22,7 +20,5 @@
2220 yt-dlp
2321 spotdl
2422 zig
25 ssm-session-manager-plugin
26 awscli
2723 ];
2824}
users/clover/work/home.nix created+23
......@@ -0,0 +1,23 @@
1{ pkgs, ... }:
2{
3 programs = {
4 zsh.profileExtra = ''
5 _bun() {
6 local context state line
7 _arguments -C '*:file:_files'
8 }
9 '';
10 };
11 home.packages = with pkgs; [
12 (bun.overrideAttrs (_: {
13 version = "1.1.17"; # blocked on bugs
14 }))
15 doppler
16 deno
17 nodejs_24
18 rustup
19 typescript
20 ssm-session-manager-plugin
21 awscli
22 ];
23}