diff --git a/MAC_VM_SETUP_GUIDE.md b/MAC_VM_SETUP_GUIDE.md new file mode 100644 index 0000000..b924f9b --- /dev/null +++ b/MAC_VM_SETUP_GUIDE.md @@ -0,0 +1,9 @@ +# Mac VM Setup Guide + +## First Install +### Install Nix +``` +sh <(curl -L https://nixos.org/nix/install) --no-daemon +``` +### Bootstrap + diff --git a/flake.lock b/flake.lock index 440fdd3..f7abfad 100644 --- a/flake.lock +++ b/flake.lock @@ -4,7 +4,7 @@ "inputs": { "flake-compat": "flake-compat", "nixpkgs": [ - "nixpkgs" + "nixpkgs-unstable" ], "utils": "utils" }, @@ -54,18 +54,39 @@ "type": "github" } }, - "home-manager": { + "home-manager-darwin": { "inputs": { "nixpkgs": [ - "nixpkgs" + "nixpkgs-darwin" ] }, "locked": { - "lastModified": 1645796113, - "narHash": "sha256-s1WSYeOSIO/I/rII6H9o68naHAWieLzvtqrp8w4ggbI=", + "lastModified": 1643933536, + "narHash": "sha256-yRmsWAG4DnLxLIUtlaZsl0kH7rN5xSoyNRlf0YZrcH4=", "owner": "nix-community", "repo": "home-manager", - "rev": "662350bee2090edc82b4c162b1415f76b4eee2f3", + "rev": "2860d7e3bb350f18f7477858f3513f9798896831", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "release-21.11", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager-unstable": { + "inputs": { + "nixpkgs": [ + "nixpkgs-unstable" + ] + }, + "locked": { + "lastModified": 1645970334, + "narHash": "sha256-6nn4YF9bPtkxkB7bM6yJO3m//p3sGilxNQFjm1epLEM=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "ea85f4b1fdf3f25cf97dc49f4a9ec4eafda2ea25", "type": "github" }, "original": { @@ -78,7 +99,7 @@ "inputs": { "flake-compat": "flake-compat_2", "nixpkgs": [ - "nixpkgs" + "nixpkgs-unstable" ], "utils": "utils_2" }, @@ -96,13 +117,50 @@ "type": "gitlab" } }, - "nixpkgs": { + "nix-darwin": { + "inputs": { + "nixpkgs": [ + "nixpkgs-darwin" + ] + }, "locked": { - "lastModified": 1645433236, - "narHash": "sha256-4va4MvJ076XyPp5h8sm5eMQvCrJ6yZAbBmyw95dGyw4=", + "lastModified": 1645293039, + "narHash": "sha256-PwdDu+SkX8dreeuJ/4av1sEluNZdrpdXv8JsRKKg1Yc=", + "owner": "lnl7", + "repo": "nix-darwin", + "rev": "1df878b6f8351795a3bebfbe4fd2d02e1e8b29d6", + "type": "github" + }, + "original": { + "owner": "lnl7", + "ref": "master", + "repo": "nix-darwin", + "type": "github" + } + }, + "nixpkgs-darwin": { + "locked": { + "lastModified": 1646044487, + "narHash": "sha256-2BN9xRr3NeLL9x9X66DiSATzm4nA/G0inc5D0+FtHTA=", "owner": "nixos", "repo": "nixpkgs", - "rev": "7f9b6e2babf232412682c09e57ed666d8f84ac2d", + "rev": "321b67a7448c79a110af2b9eceb0ad4b28f9db8c", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-21.11-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-unstable": { + "locked": { + "lastModified": 1646159311, + "narHash": "sha256-ILKckkiG074t3a0pwaPLjio8zVWgowpEp7AUwI5HjHE=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "18bd82edcc752d6a0e6cce1401ba0c81353a03ca", "type": "github" }, "original": { @@ -115,9 +173,12 @@ "root": { "inputs": { "deploy-rs": "deploy-rs", - "home-manager": "home-manager", + "home-manager-darwin": "home-manager-darwin", + "home-manager-unstable": "home-manager-unstable", "musicutil": "musicutil", - "nixpkgs": "nixpkgs" + "nix-darwin": "nix-darwin", + "nixpkgs-darwin": "nixpkgs-darwin", + "nixpkgs-unstable": "nixpkgs-unstable" } }, "utils": { diff --git a/flake.nix b/flake.nix index b061b49..b11a154 100644 --- a/flake.nix +++ b/flake.nix @@ -2,14 +2,23 @@ description = "NixOS configuration"; inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; - home-manager.url = "github:nix-community/home-manager"; - home-manager.inputs.nixpkgs.follows = "nixpkgs"; + # nixpkgs Unstable Inputs + nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; + home-manager-unstable.url = "github:nix-community/home-manager"; + home-manager-unstable.inputs.nixpkgs.follows = "nixpkgs-unstable"; + + # for darwin + nixpkgs-darwin.url = "github:nixos/nixpkgs/nixpkgs-21.11-darwin"; + home-manager-darwin.url = "github:nix-community/home-manager/release-21.11"; + home-manager-darwin.inputs.nixpkgs.follows = "nixpkgs-darwin"; + nix-darwin.url = "github:lnl7/nix-darwin/master"; + nix-darwin.inputs.nixpkgs.follows = "nixpkgs-darwin"; + deploy-rs.url = "github:serokell/deploy-rs"; - deploy-rs.inputs.nixpkgs.follows = "nixpkgs"; + deploy-rs.inputs.nixpkgs.follows = "nixpkgs-unstable"; + musicutil.url = "gitlab:ChaotiCryptidz/musicutil"; - #musicutil.url = "path:/home/chaos/Projects/musicutil"; - musicutil.inputs.nixpkgs.follows = "nixpkgs"; + musicutil.inputs.nixpkgs.follows = "nixpkgs-unstable"; }; outputs = { ... }@inputs: import ./outputs.nix inputs; diff --git a/home/programming/languages/go/go.nix b/home/programming/languages/go/go.nix index dc0f7ab..92cce20 100644 --- a/home/programming/languages/go/go.nix +++ b/home/programming/languages/go/go.nix @@ -1,6 +1,6 @@ { config, pkgs, ... }: { - home.packages = with pkgs; [ go gopls go-outline goimports ]; + home.packages = with pkgs; [ go gopls go-outline gotools ]; programs.vscode.extensions = with pkgs; [ vscode-extensions.golang.go ]; } diff --git a/hosts/default.nix b/hosts/default.nix index 1da3768..fbc914c 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -1,44 +1,61 @@ -{ self, home-manager, nixpkgs, tree, ... }@inputs: +{ self, nixpkgs-unstable, tree, ... }@inputs: let defaultModules = [ - home-manager.nixosModules.home-manager + # NO_INLINE tree.impure.modules.nixos tree.impure.profiles.base ]; + defaultModulesNixOSUnstable = defaultModules ++ [ + # NO_INLINE + inputs.home-manager-unstable.nixosModules.home-manager + ]; + defaultSpecialArgs = { tree = tree.impure; pureTree = tree.pure; - inherit inputs; }; + + defaultSpecialArgsNixOSUnstable = defaultSpecialArgs // { + inputs = inputs // { + # set these to the correct versions from inputs + nixpkgs = inputs.nixpkgs-unstable; + home-manager = inputs.home-manager-unstable; + }; + }; + + nixosUnstableSystem = nixpkgs-unstable.lib.nixosSystem; + in { - lappy = nixpkgs.lib.nixosSystem { - specialArgs = defaultSpecialArgs; + lappy = nixosUnstableSystem { + specialArgs = defaultSpecialArgsNixOSUnstable; system = "x86_64-linux"; - modules = defaultModules ++ [ ./lappy/lappy.nix ./lappy/hardware.nix ]; + modules = defaultModulesNixOSUnstable + ++ [ ./lappy/lappy.nix ./lappy/hardware.nix ]; }; - lappy-vm = nixpkgs.lib.nixosSystem { - specialArgs = defaultSpecialArgs; + lappy-vm = nixosUnstableSystem { + specialArgs = defaultSpecialArgsNixOSUnstable; system = "x86_64-linux"; - modules = defaultModules ++ [ ./lappy/lappy.nix ./lappy/vm.nix ]; + modules = defaultModulesNixOSUnstable + ++ [ ./lappy/lappy.nix ./lappy/vm.nix ]; }; - rescue-x86_64 = nixpkgs.lib.nixosSystem { - specialArgs = defaultSpecialArgs; + rescue-x86_64 = nixosUnstableSystem { + specialArgs = defaultSpecialArgsNixOSUnstable; system = "x86_64-linux"; - modules = defaultModules ++ [ ./rescue/rescue.nix ]; + modules = defaultModulesNixOSUnstable ++ [ ./rescue/rescue.nix ]; }; - hetzner-vm = nixpkgs.lib.nixosSystem { - specialArgs = defaultSpecialArgs; + hetzner-vm = nixosUnstableSystem { + specialArgs = defaultSpecialArgsNixOSUnstable; system = "x86_64-linux"; - modules = defaultModules ++ [ ./hetzner-vm/hetzner-vm.nix ]; + modules = defaultModulesNixOSUnstable ++ [ ./hetzner-vm/hetzner-vm.nix ]; }; # nix --no-sandbox build .#nixosConfigurations.raspberry.config.system.build.sdImage - raspberry = nixpkgs.lib.nixosSystem { - specialArgs = defaultSpecialArgs; + raspberry = nixosUnstableSystem { + specialArgs = defaultSpecialArgsNixOSUnstable; system = "aarch64-linux"; - modules = defaultModules ++ [ ./raspberry/raspberry.nix ]; + modules = defaultModulesNixOSUnstable ++ [ ./raspberry/raspberry.nix ]; }; } diff --git a/outputs.nix b/outputs.nix index 90ce9fc..57a4b73 100644 --- a/outputs.nix +++ b/outputs.nix @@ -1,7 +1,7 @@ -{ self, nixpkgs, home-manager, deploy-rs, ... }@inputs: +{ self, nixpkgs-unstable, deploy-rs, ... }@inputs: let - mkTree = import ./tree.nix { inherit (nixpkgs) lib; }; - pkgs-x86_64-linux = nixpkgs.legacyPackages.x86_64-linux; + mkTree = import ./tree.nix { inherit (nixpkgs-unstable) lib; }; + pkgs-x86_64-linux = nixpkgs-unstable.legacyPackages.x86_64-linux; tree = mkTree { inherit inputs; folder = ./.; diff --git a/profiles/sound/pipewire/default.nix b/profiles/sound/pipewire/default.nix index dee8b54..4224d0a 100644 --- a/profiles/sound/pipewire/default.nix +++ b/profiles/sound/pipewire/default.nix @@ -13,7 +13,7 @@ _: { "default.clock.rate" = "48000"; }; }; - + wireplumber.enable = false; media-session.enable = true; media-session.config.bluez-monitor.rules = [ { diff --git a/scripts/nixFlakes.sh b/scripts/nixFlakes.sh new file mode 100755 index 0000000..2e59f47 --- /dev/null +++ b/scripts/nixFlakes.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +nix-shell -p nixFlakes --run "nix --experimental-features \"nix-command flakes\" $@" \ No newline at end of file