diff --git a/README.md b/README.md
new file mode 100644
index 0000000..25cd24e
--- /dev/null
+++ b/README.md
@@ -0,0 +1,7 @@
+# Bootstrap
+
+```
+sudo nix run --extra-experimental-features "nix-command flakes" github:nix-darwin/nix-darwin -- switch --flake .#<hostname> \
+ --option "extra-substituters" "https://virby-nix-darwin.cachix.org" \
+ --option "extra-trusted-public-keys" "virby-nix-darwin.cachix.org-1:z9GiEZeBU5bEeoDQjyfHPMGPBaIQJOOvYOOjGMKIlLo="
+```
diff --git a/flake.lock b/flake.lock
index 09985fe..c225dc2 100644
--- a/flake.lock
+++ b/flake.lock
@@ -3,16 +3,16 @@
"brew-src": {
"flake": false,
"locked": {
- "lastModified": 1781226006,
- "narHash": "sha256-w4ZTuOnhYiDxjaynrMTASzp802QblBWmo3wpB8wVN4Y=",
+ "lastModified": 1785146564,
+ "narHash": "sha256-Sa7/HrfB04H32OJ7/ofxXjiZEbkWtCNOriONYYTL1OA=",
"owner": "Homebrew",
"repo": "brew",
- "rev": "109191be4988470b51a60a5ef1998520aa24c01b",
+ "rev": "b2cfc03346d482f79886de108fee5dc49a6efc10",
"type": "github"
},
"original": {
"owner": "Homebrew",
- "ref": "6.0.1",
+ "ref": "6.0.13",
"repo": "brew",
"type": "github"
}
@@ -24,11 +24,11 @@
]
},
"locked": {
- "lastModified": 1781242433,
- "narHash": "sha256-bchLZZ3sRn740zyvD2icZSnNoTaanN0nw7l6fjVXO+E=",
+ "lastModified": 1785389976,
+ "narHash": "sha256-0tLW8Ff5yt8AH97jw4ZpFJ0OCJ122zIlgWGDmOfU/VU=",
"owner": "nix-darwin",
"repo": "nix-darwin",
- "rev": "aabb2037edfc0f210723b72cd5f528aab5dd3f0b",
+ "rev": "15abb8c98f336cd8bd840d71059adebabe60bf04",
"type": "github"
},
"original": {
@@ -45,11 +45,11 @@
]
},
"locked": {
- "lastModified": 1781189114,
- "narHash": "sha256-5inaamLgUMWy+MOBE9ChF9QAF1o/74LFuHkI0W/9rqc=",
+ "lastModified": 1785531816,
+ "narHash": "sha256-vkMnV0JIyw+g/NmcfoajlGaAO+9a0ezia+FZohQJrik=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "486595d2cf49cfcd649b58a284fa11ac0e34da22",
+ "rev": "bf9ce9fec78f95f374e8dd3b503863a3ec128ebe",
"type": "github"
},
"original": {
@@ -61,11 +61,11 @@
"homebrew-cask": {
"flake": false,
"locked": {
- "lastModified": 1782355557,
- "narHash": "sha256-LjoFTRTn/SxBKSPLX5c1FPJrh0fcR6CPRa2OoRDx6dA=",
+ "lastModified": 1785635183,
+ "narHash": "sha256-m5oRXbzWWRmdr1hwfzRcK6vvvT5qiaDG3M4blTWdCRQ=",
"owner": "homebrew",
"repo": "homebrew-cask",
- "rev": "dabdc97cde3fc9b28db4864dc94697670aab42c3",
+ "rev": "dae004070bf51388a7f9a5160ff5e7da78feeae5",
"type": "github"
},
"original": {
@@ -77,11 +77,11 @@
"homebrew-core": {
"flake": false,
"locked": {
- "lastModified": 1782356982,
- "narHash": "sha256-yhSKSuq4qlcrgxxtRqvdNYJaS5PiLS11Sj+rYrcz134=",
+ "lastModified": 1785632252,
+ "narHash": "sha256-cPRVTvfzohGsJqrytd6QSDn10O00q1NxMajK7pkqPbI=",
"owner": "homebrew",
"repo": "homebrew-core",
- "rev": "3c02d2ed3e52772e24ec557142d3a575e574ab5b",
+ "rev": "bb71705fd502d9d1b6b20be0febe5d4984077336",
"type": "github"
},
"original": {
@@ -90,16 +90,68 @@
"type": "github"
}
},
+ "homebrew-felixkratz": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1780547371,
+ "narHash": "sha256-QGCVV5N1QC56GQK3ck2YJ6J6/S8SQ6rTElz69y58078=",
+ "owner": "FelixKratz",
+ "repo": "homebrew-formulae",
+ "rev": "70b2071488b61c14f773ce9e1bf6626ee851981a",
+ "type": "github"
+ },
+ "original": {
+ "owner": "FelixKratz",
+ "repo": "homebrew-formulae",
+ "type": "github"
+ }
+ },
+ "homebrew-netbird": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1785527306,
+ "narHash": "sha256-EODXrWyUFqBmWJn0tFJ9AmRmqYPfA8eveuBuLW+/6Ds=",
+ "owner": "netbirdio",
+ "repo": "homebrew-tap",
+ "rev": "9ad629107a808a37e5770854ab96574d1e96a8f0",
+ "type": "github"
+ },
+ "original": {
+ "owner": "netbirdio",
+ "repo": "homebrew-tap",
+ "type": "github"
+ }
+ },
+ "netbird-tui": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1784513029,
+ "narHash": "sha256-m9sIguYjsuHz3IWwmNOlvuVTT0Cspe61Y9UyjM3pRVk=",
+ "ref": "refs/heads/main",
+ "rev": "efa74d02ad42ee7aeaf5c97240929063118c6252",
+ "revCount": 1,
+ "type": "git",
+ "url": "https://git.rschanz.org/netbird-tui-flake"
+ },
+ "original": {
+ "type": "git",
+ "url": "https://git.rschanz.org/netbird-tui-flake"
+ }
+ },
"nix-homebrew": {
"inputs": {
"brew-src": "brew-src"
},
"locked": {
- "lastModified": 1781389246,
- "narHash": "sha256-ORqLAo/hoJdsZC7UPAuEHev6S0+XIqKEC7vjo5prz1k=",
+ "lastModified": 1785544760,
+ "narHash": "sha256-qV6OoNuly4ntqpCg7esIeJjUboxSnQNlLPxz+y5h9/o=",
"owner": "zhaofengli",
"repo": "nix-homebrew",
- "rev": "de7953a08ed4bb9245be043e468561c17b89130d",
+ "rev": "937ce52c7d046310571f3a070713804ead496843",
"type": "github"
},
"original": {
@@ -110,11 +162,27 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1781229721,
- "narHash": "sha256-ORvqDbb/LYxiJljGIejapjkc/kJbVote2N1WSb9W45I=",
+ "lastModified": 1785542685,
+ "narHash": "sha256-sjfvXMbG5pCFgpvw2OZAFcZiTvrppCWvnB6cuGrSY08=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "173d0ad7a974f8543a9ab01d2271b2e290341b33",
+ "rev": "f8e81fc7eb063db454f563cdd596fb96a5ad1497",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nixos",
+ "ref": "nixpkgs-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_2": {
+ "locked": {
+ "lastModified": 1782821651,
+ "narHash": "sha256-D5jO0ME1lA9bDHnd5kVawBwItG/N4oZr3FlXmMzLec8=",
+ "owner": "nixos",
+ "repo": "nixpkgs",
+ "rev": "e52c192be9d7b2c4bd4aed326c8731b35f8bb75c",
"type": "github"
},
"original": {
@@ -130,11 +198,33 @@
"home-manager": "home-manager",
"homebrew-cask": "homebrew-cask",
"homebrew-core": "homebrew-core",
+ "homebrew-felixkratz": "homebrew-felixkratz",
+ "homebrew-netbird": "homebrew-netbird",
+ "netbird-tui": "netbird-tui",
"nix-homebrew": "nix-homebrew",
"nixpkgs": "nixpkgs",
+ "virby": "virby",
"zen-browser": "zen-browser"
}
},
+ "virby": {
+ "inputs": {
+ "nixpkgs": "nixpkgs_2"
+ },
+ "locked": {
+ "lastModified": 1782970342,
+ "narHash": "sha256-5oVThXJjEFPiCTm6jzAmSCVRuDRi4AG3HgLLjpgLYXA=",
+ "owner": "quinneden",
+ "repo": "virby-nix-darwin",
+ "rev": "a52216470a97ef5970939acf697a00ec61beb0c6",
+ "type": "github"
+ },
+ "original": {
+ "owner": "quinneden",
+ "repo": "virby-nix-darwin",
+ "type": "github"
+ }
+ },
"zen-browser": {
"inputs": {
"home-manager": [
@@ -145,11 +235,11 @@
]
},
"locked": {
- "lastModified": 1781426426,
- "narHash": "sha256-yzxJMNgv/sLishhCT9G2lm7W9CjHSlXWkfbWC7vfjqc=",
+ "lastModified": 1785569296,
+ "narHash": "sha256-ux2+60xcjl4LloKPevqrkP+uY4DNZXhzVd+TYrfE2+w=",
"owner": "0xc000022070",
"repo": "zen-browser-flake",
- "rev": "df336067c1a8af3bfce3f0b88b66dc1c57411b4e",
+ "rev": "945e834a12a97a5e3b08869960e35c7ccfde6f69",
"type": "github"
},
"original": {
diff --git a/flake.nix b/flake.nix
index b48ab94..023a368 100644
--- a/flake.nix
+++ b/flake.nix
@@ -11,7 +11,13 @@
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
- zen-browser = { # Used exclusively for HM module, Zen is installed via cask
+ # My packages
+ netbird-tui = {
+ url = "git+https://git.rschanz.org/netbird-tui-flake";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
+ # End my packages
+ zen-browser = { # Used exclusively for HM module, Zen is installed via cask (on macos)
url = "github:0xc000022070/zen-browser-flake";
inputs = {
nixpkgs.follows = "nixpkgs";
@@ -27,6 +33,16 @@
url = "github:homebrew/homebrew-cask";
flake = false;
};
+ # Linux builder on macos
+ virby.url = "github:quinneden/virby-nix-darwin";
+ homebrew-netbird = {
+ url = "github:netbirdio/homebrew-tap";
+ flake = false;
+ };
+ homebrew-felixkratz = {
+ url = "github:FelixKratz/homebrew-formulae";
+ flake = false;
+ };
};
outputs = { nixpkgs, home-manager, ... }@inputs: {
@@ -34,7 +50,9 @@
system = "aarch64-darwin";
specialArgs = { inherit inputs; };
modules = [
- { nixpkgs.config.allowUnfree = true; }
+ { nixpkgs.config.allowUnfree = true;
+ nixpkgs.overlays = [ inputs.netbird-tui.overlays.default ]; }
+ inputs.virby.darwinModules.default
./hosts/RyanMac/configuration.nix
home-manager.darwinModules.home-manager
{
diff --git a/hosts/RyanMac/configuration.nix b/hosts/RyanMac/configuration.nix
index e5b38ca..e8339e6 100644
--- a/hosts/RyanMac/configuration.nix
+++ b/hosts/RyanMac/configuration.nix
@@ -4,7 +4,10 @@ let
defaultBrowser = "zen";
- thirdPartyTaps = import ./taps.nix;
+ thirdPartyTaps = {
+ "netbirdio/homebrew-tap" = inputs.homebrew-netbird;
+ "FelixKratz/homebrew-formulae" = inputs.homebrew-felixkratz;
+ };
pinnedNixpkgs = pkgs.writeText "flake-registry.json" (builtins.toJSON {
version = 2;
@@ -77,7 +80,7 @@ in {
bottom_padding = "10";
left_padding = "10";
right_padding = "10";
- window_gap = "5";
+ window_gap = "10";
mouse_modifier = "alt";
mouse_drop_action = "swap";
mouse_action1 = "move";
@@ -124,15 +127,28 @@ in {
../../files/CACerts/RyanCA.crt
];
- nix = {
+ # Virby linux builder
+ services.virby = {
enable = true;
- linux-builder = {
- enable = false; # mkfs.erofs seems to be looping
- ephemeral = true;
+ cores = 4;
+ diskSize = "50GiB";
+ onDemand = {
+ enable = true;
+ ttl = 30;
};
+ rosetta = true;
+ };
+
+ nix = {
+ enable = true;
settings = {
flake-registry = "/etc/nix/flake-registry.json";
- trusted-users = [ "@admin" ];
+ extra-substituters = [
+ "https://virby-nix-darwin.cachix.org"
+ ];
+ extra-trusted-public-keys = [
+ "virby-nix-darwin.cachix.org-1:z9GiEZeBU5bEeoDQjyfHPMGPBaIQJOOvYOOjGMKIlLo="
+ ];
"extra-experimental-features" = [ "nix-command" "flakes" ];
};
};
@@ -151,7 +167,10 @@ in {
enableRosetta = true;
user = "${username}";
mutableTaps = false;
- taps = thirdPartyTaps;
+ taps = {
+ "homebrew/homebrew-core" = inputs.homebrew-core;
+ "homebrew/homebrew-cask" = inputs.homebrew-cask;
+ } // thirdPartyTaps;
trust.taps = builtins.attrNames thirdPartyTaps;
};
@@ -160,16 +179,14 @@ in {
enable = true;
onActivation = {
- cleanup = "zap";
+ #extraFlags = [ "--force-cleanup" ];
};
global.brewfile = true;
- taps = builtins.attrNames thirdPartyTaps;
+ taps = builtins.attrNames config.nix-homebrew.taps;
- brews = [
- "mqttx-cli"
- ];
+ brews = [ ];
casks = [
"utm"
@@ -180,6 +197,9 @@ in {
"netbird-ui"
"ubersicht"
"hammerspoon"
+ "gimp"
+ "kdenlive"
+ "rustdesk"
];
};
@@ -241,8 +261,8 @@ in {
AppleInterfaceStyle = "Dark";
# Key repeat rate
- KeyRepeat = 4;
- InitialKeyRepeat = 30;
+ KeyRepeat = 2;
+ InitialKeyRepeat = 35;
# Swap F1-12 to be default
"com.apple.keyboard.fnState" = true;
@@ -402,7 +422,7 @@ in {
# this is fragile so it goes at the bottom
echo "Reloading skhd..."
- sudo -iu ${username} ${pkgs.skhd}/bin/skhd -r
+ sudo -iu ${username} ${pkgs.skhd}/bin/skhd -r || echo "Failed to reload skhd; continuing anyway..."
# Notes if we are running for the first time and writes a message for actions that may need to be done on macOS or linux
MARK="/opt/.nix-complete"
diff --git a/hosts/RyanMac/taps.nix b/hosts/RyanMac/taps.nix
deleted file mode 100644
index 12235d8..0000000
--- a/hosts/RyanMac/taps.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "netbirdio/homebrew-tap" = builtins.fetchGit {
- url = "https://github.com/netbirdio/homebrew-tap";
- rev = "98a5d193c8d2c03b639aad03159004c64496c3e7";
- };
-
- "FelixKratz/homebrew-formulae" = builtins.fetchGit {
- url = "https://github.com/FelixKratz/homebrew-formulae";
- rev = "70b2071488b61c14f773ce9e1bf6626ee851981a";
- };
-
- "emqx/homebrew-mqttx" = builtins.fetchGit {
- url = "https://github.com/emqx/homebrew-mqttx";
- rev = "9889d741ba44940340d12dcad31fe867f62e7ea8";
- };
-}
diff --git a/users/ryan/home.nix b/users/ryan/home.nix
index 1c77723..ec3fd1e 100644
--- a/users/ryan/home.nix
+++ b/users/ryan/home.nix
@@ -123,6 +123,7 @@
shellAliases = {
cat = "bat --paging=never";
diff = "delta";
+ brew = "env -u XDG_CONFIG_HOME brew";
rebuild = "sudo darwin-rebuild switch --flake ~/.config/nix/.";
};
};
@@ -147,6 +148,9 @@
ffmpeg
blender
nerd-fonts.anonymice
+ jujutsu
+ netbird-tui
+ prismlauncher
];
# Home Manager is pretty good at managing dotfiles. The primary way to manage
@@ -162,6 +166,10 @@
# org.gradle.console=verbose
# org.gradle.daemon.idletimeout=3600000
# '';
+ ".config/homebrew" = {
+ enable = pkgs.stdenv.isDarwin;
+ source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/.homebrew";
+ };
};
# Install User apps to subdir for dock stuff
diff --git a/users/ryan/modules/sketchybar/bar-config/sketchybarrc b/users/ryan/modules/sketchybar/bar-config/sketchybarrc
index 446da25..34238b2 100755
--- a/users/ryan/modules/sketchybar/bar-config/sketchybarrc
+++ b/users/ryan/modules/sketchybar/bar-config/sketchybarrc
@@ -8,8 +8,6 @@ PLUGIN_DIR="$CONFIG_DIR/plugins"
source "$CONFIG_DIR/colors.sh"
source "$CONFIG_DIR/icons.sh"
-env
-
FONT="AnonymicePro Nerd Font"
# ---- bar --------------------------------------------------------------------
@@ -61,7 +59,7 @@ add_popup() {
# LEFT — hyprland/workspaces -> yabai spaces
# (hyprland/submap has no yabai/macOS analog -> omitted)
# ============================================================================
-for sid in 1 2 3 4 5 6 7 8 9 10; do
+for sid in 1 2 3 4 5 6 7 8 9; do
sketchybar --add space space.$sid left \
--set space.$sid \
space=$sid \
@@ -72,13 +70,13 @@ for sid in 1 2 3 4 5 6 7 8 9 10; do
background.drawing=off \
padding_left=5 padding_right=5 \
script="$PLUGIN_DIR/space.sh" \
- click_script="yabai -m space --focus $sid 2>/dev/null"
+ click_script="osascript -e 'tell application \"System Events\" to key code ${sid} using option down'"
done
# ============================================================================
# CENTER — hyprland/window -> front_app
# ============================================================================
-sketchybar --add item front_app center \
+sketchybar --add item front_app left \
--set front_app \
icon.drawing=off \
label.max_chars=80 \
diff --git a/users/ryan/modules/sketchybar/default.nix b/users/ryan/modules/sketchybar/default.nix
index 8179f18..6d7c264 100644
--- a/users/ryan/modules/sketchybar/default.nix
+++ b/users/ryan/modules/sketchybar/default.nix
@@ -12,7 +12,7 @@ in
# Enable the service
programs.sketchybar = {
enable = true;
- extraPackages = [ pkgs.jq ];
+ extraPackages = with pkgs; [ jq blueutil ];
config = { source = ./bar-config; recursive = true; };
};
};
diff --git a/users/ryan/zen/zenPolicies.nix b/users/ryan/zen/zenPolicies.nix
index 1fbb5e1..8d39689 100644
--- a/users/ryan/zen/zenPolicies.nix
+++ b/users/ryan/zen/zenPolicies.nix
@@ -117,6 +117,7 @@ in
"xpinstall.whitelist.required" = lock-true;
"dom.webgpu.enabled" = lock-true;
"media.eme.enabled" = lock-true;
+ "ui.preferReducedMotion" = lock-false;
"general.autoScroll" = lock-true;
"general.smoothScroll" = lock-true;
"browser.crashReports.unsubmittedCheck.autoSubmit2" = lock-false;