From 64342dd5c2bb94df3f7cbc7ca87acf47465039f0 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 5 Oct 2021 20:20:51 +0200 Subject: [PATCH 1/2] Started working on darwin integration --- flake.nix | 9 +++++++++ hosts/mbp/configuration.nix | 30 ++++++++++++++++++++++++++++++ hosts/mbp/default.nix | 8 ++++++++ users/andreaciceri/default.nix | 15 +++++++++++++++ users/profiles/zsh/default.nix | 5 ++++- 5 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 hosts/mbp/configuration.nix create mode 100644 hosts/mbp/default.nix create mode 100644 users/andreaciceri/default.nix diff --git a/flake.nix b/flake.nix index 11a075a..dad3494 100644 --- a/flake.nix +++ b/flake.nix @@ -52,6 +52,7 @@ , nixos , home , nixos-hardware + , darwin , pinebook-pro , pinebook-pro-kernel-latest , nixpkgs-wayland @@ -119,6 +120,7 @@ ]; }; hosts = { + # mbp is added bypassing Digga's mkFlake and adding a specific output to this flake pc = { system = "x86_64-linux"; }; @@ -179,5 +181,12 @@ // { budModules = { devos = import ./bud; }; # checks.aarch64-linux = { }; # this line will be uncommented by Github Action in order since it can't build aarch64 derivations + } + // { + darwinConfigurations."mbp" = darwin.lib.darwinSystem { + system = "x86_64-darwin"; + modules = [ home.darwinModules.home-manager ./hosts/mbp ]; + inputs = { inherit darwin; }; + }; }; } diff --git a/hosts/mbp/configuration.nix b/hosts/mbp/configuration.nix new file mode 100644 index 0000000..94fccdc --- /dev/null +++ b/hosts/mbp/configuration.nix @@ -0,0 +1,30 @@ +{pkgs, home-manager, ...}: +{ + imports = [ + ../../users/andreaciceri + ]; + + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + }; + + programs.gnupg.agent = { + enable = true; + enableSSHSupport = true; + }; + + nix = { + package = pkgs.nixUnstable; + extraOptions = '' + experimental-features = nix-command flakes flakes ca-references + keep-derivations = true + keep-outputs = true + ''; + gc = { + automatic = false; + user = "andreaciceri"; + options = "--delete-older-than 3d"; + }; + }; + } diff --git a/hosts/mbp/default.nix b/hosts/mbp/default.nix new file mode 100644 index 0000000..f8bb144 --- /dev/null +++ b/hosts/mbp/default.nix @@ -0,0 +1,8 @@ +{ pkgs, ...}: +{ + imports = [ + ./configuration.nix + ]; + + +} diff --git a/users/andreaciceri/default.nix b/users/andreaciceri/default.nix new file mode 100644 index 0000000..a1f2ed7 --- /dev/null +++ b/users/andreaciceri/default.nix @@ -0,0 +1,15 @@ +{ config, lib, pkgs, ... }: { + home-manager.users."andreaciceri" = {...}: { + imports = [ + ../profiles/bat + ../profiles/fzf + ../profiles/zsh + ../profiles/direnv + ../profiles/exa + ]; + home.packages = with pkgs; [ + yarn + ]; + }; + +} diff --git a/users/profiles/zsh/default.nix b/users/profiles/zsh/default.nix index a4a41ef..9fc4aae 100644 --- a/users/profiles/zsh/default.nix +++ b/users/profiles/zsh/default.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: +{ pkgs, config, ... }: { programs.zsh = { enable = true; @@ -55,5 +55,8 @@ PROMPT = "\\\${IN_NIX_SHELL:+[nix-shell] }$PROMPT"; }; loginExtra = "[[ -z $DISPLAY && $TTY = /dev/tty1 ]] && exec sway"; + initExtra = if pkgs.system == "x86_64-darwin" + then "if test -e /etc/static/bashrc; then source /etc/static/bashrc > /dev/null 2>&1; fi" + else ""; }; } From e8726246f6925570778427c096fcb87ba65bcfd3 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 6 Oct 2021 00:39:31 +0200 Subject: [PATCH 2/2] Build? --- flake.nix | 232 +++++++++++++++++++++++++++--------------------------- 1 file changed, 117 insertions(+), 115 deletions(-) diff --git a/flake.nix b/flake.nix index dad3494..159120c 100644 --- a/flake.nix +++ b/flake.nix @@ -63,130 +63,132 @@ , ... } @ inputs: - digga.lib.mkFlake - { - inherit self inputs; + digga.lib.mkFlake + { + inherit self inputs; - channelsConfig = { allowUnfree = true; }; + channelsConfig = { allowUnfree = true; }; - channels = - let - commonOverlays = [ - digga.overlays.patchedNix - nur.overlay - emacs-overlay.overlay - nvfetcher.overlay - deploy.overlay - nixpkgs-wayland.overlay - ./pkgs/default.nix - ]; - in - { - stable = { - imports = [ (digga.lib.importOverlays ./overlays) ]; - overlays = commonOverlays; - }; - unstable = { - imports = [ (digga.lib.importOverlays ./overlays) ]; - overlays = commonOverlays; - }; - }; - - lib = import ./lib { lib = digga.lib // nixos.lib; }; - - sharedOverlays = [ - ( - final: prev: { - __dontExport = true; - lib = prev.lib.extend ( - lfinal: lprev: { - our = self.lib; - } - ); - } - ) - ]; - - nixos = { - hostDefaults = { - channelName = "unstable"; - imports = [ (digga.lib.importModules ./modules) ]; - externalModules = [ - { lib.our = self.lib; } - digga.nixosModules.bootstrapIso - digga.nixosModules.nixConfig - home.nixosModules.home-manager - bud.nixosModules.bud - ]; + channels = + let + commonOverlays = [ + digga.overlays.patchedNix + nur.overlay + emacs-overlay.overlay + nvfetcher.overlay + deploy.overlay + nixpkgs-wayland.overlay + ./pkgs/default.nix + ]; + in + { + stable = { + imports = [ (digga.lib.importOverlays ./overlays) ]; + overlays = commonOverlays; }; - hosts = { - # mbp is added bypassing Digga's mkFlake and adding a specific output to this flake - pc = { - system = "x86_64-linux"; - }; - pbp = { - system = "aarch64-linux"; - modules = [ - "${pinebook-pro}/pinebook_pro.nix" - ]; - }; + unstable = { + imports = [ (digga.lib.importOverlays ./overlays) ]; + overlays = commonOverlays; }; - imports = [ (digga.lib.importHosts ./hosts) ]; - importables = rec { - profiles = digga.lib.rakeLeaves ./profiles // { - users = digga.lib.rakeLeaves ./users; - }; - suites = with profiles; rec { - base = [ core users.ccr users.root ]; - }; - pbpKernelLatest = ( - import pinebook-pro-kernel-latest { - system = "aarch64-linux"; - overlays = [ - (import "${pinebook-pro}/overlay.nix") - ]; - config.allowUnfree = true; + }; + + lib = import ./lib { lib = digga.lib // nixos.lib; }; + + sharedOverlays = [ + ( + final: prev: { + __dontExport = true; + lib = prev.lib.extend ( + lfinal: lprev: { + our = self.lib; } - ).pkgs.linuxPackages_pinebookpro_latest; + ); + } + ) + ]; + + nixos = { + hostDefaults = { + channelName = "unstable"; + imports = [ (digga.lib.importModules ./modules) ]; + externalModules = [ + { lib.our = self.lib; } + digga.nixosModules.bootstrapIso + digga.nixosModules.nixConfig + home.nixosModules.home-manager + bud.nixosModules.bud + ]; + }; + hosts = { + # mbp is added bypassing Digga's mkFlake and adding a specific output to this flake + pc = { + system = "x86_64-linux"; + imports = [{ modules = ./hosts/pc; }]; + }; + pbp = { + system = "aarch64-linux"; + imports = [{ modules = ./hosts/pbp; }]; + modules = [ + "${pinebook-pro}/pinebook_pro.nix" + ]; }; }; - - home = { - imports = [ (digga.lib.importModules ./users/modules) ]; - externalModules = []; - importables = rec { - profiles = digga.lib.rakeLeaves ./users/profiles; - suites = with profiles; rec { - base = [ direnv git zsh gpg password-store ]; - shell = [ zsh exa fzf ]; - gui = [ sway xdg gtk foot bat ]; - browser = [ firefox chromium qutebrowser ]; - multimedia = [ mpv zathura ]; - dev = [ vim emacs vscode lorri direnv ]; - }; + # imports = [ (digga.lib.importHosts ./hosts) ]; # same reason as above + importables = rec { + profiles = digga.lib.rakeLeaves ./profiles // { + users = digga.lib.rakeLeaves ./users; }; + suites = with profiles; rec { + base = [ core users.ccr users.root ]; + }; + pbpKernelLatest = ( + import pinebook-pro-kernel-latest { + system = "aarch64-linux"; + overlays = [ + (import "${pinebook-pro}/overlay.nix") + ]; + config.allowUnfree = true; + } + ).pkgs.linuxPackages_pinebookpro_latest; }; - - devshell = ./shell; - - homeConfigurations = digga.lib.mkHomeConfigurations self.nixosConfigurations; - - deploy.nodes = digga.lib.mkDeployNodes self.nixosConfigurations {}; - - defaultTemplate = self.templates.bud; - templates.bud.path = ./.; - templates.bud.description = "bud template"; - - } - // { - budModules = { devos = import ./bud; }; - # checks.aarch64-linux = { }; # this line will be uncommented by Github Action in order since it can't build aarch64 derivations - } - // { - darwinConfigurations."mbp" = darwin.lib.darwinSystem { - system = "x86_64-darwin"; - modules = [ home.darwinModules.home-manager ./hosts/mbp ]; - inputs = { inherit darwin; }; }; + + home = { + imports = [ (digga.lib.importModules ./users/modules) ]; + externalModules = [ ]; + importables = rec { + profiles = digga.lib.rakeLeaves ./users/profiles; + suites = with profiles; rec { + base = [ direnv git zsh gpg password-store ]; + shell = [ zsh exa fzf ]; + gui = [ sway xdg gtk foot bat ]; + browser = [ firefox chromium qutebrowser ]; + multimedia = [ mpv zathura ]; + dev = [ vim emacs vscode lorri direnv ]; + }; + }; + }; + + devshell = ./shell; + + homeConfigurations = digga.lib.mkHomeConfigurations self.nixosConfigurations; + + deploy.nodes = digga.lib.mkDeployNodes self.nixosConfigurations { }; + + defaultTemplate = self.templates.bud; + templates.bud.path = ./.; + templates.bud.description = "bud template"; + + } + // { + budModules = { devos = import ./bud; }; + # checks.aarch64-linux = { }; # this line will be uncommented by Github Action in order since it can't build aarch64 derivations + } + // { + darwinConfigurations."mbp" = darwin.lib.darwinSystem { + system = "x86_64-darwin"; + modules = [ home.darwinModules.home-manager ./hosts/mbp ]; + inputs = { inherit darwin; }; }; + }; }