From 4953bc3e75dc49eaef899cb26a277964015fa7c3 Mon Sep 17 00:00:00 2001 From: "Jip J. Dekker" Date: Tue, 14 Jan 2025 20:34:03 +1100 Subject: [PATCH] Update and simplify the nix configuration --- .gitignore | 1 + bin/build | 22 ------ bin/darwin-build | 27 ------- bin/nixos-build | 29 -------- darwin/README.md | 11 --- darwin/casks.nix | 2 - darwin/default.nix | 114 ++++++++++++++++++++++++++--- darwin/files.nix | 8 -- darwin/home-manager.nix | 40 +++++----- darwin/packages.nix | 8 -- flake.lock | 24 +++--- flake.nix | 71 ++++++++---------- nixos/README.md | 9 --- nixos/default.nix | 19 +---- nixos/files.nix | 9 --- nixos/home-manager.nix | 18 ++--- nixos/packages.nix | 8 -- overlays/README.md | 6 -- shared/README.md | 16 ---- shared/cachix/default.nix | 2 +- shared/config/kitty/night-owl.conf | 46 ------------ shared/default.nix | 13 +--- shared/files.nix | 9 --- shared/home-manager.nix | 46 ++++-------- shared/packages.nix | 3 +- 25 files changed, 192 insertions(+), 369 deletions(-) create mode 100644 .gitignore delete mode 100755 bin/build delete mode 100755 bin/darwin-build delete mode 100644 bin/nixos-build delete mode 100644 darwin/README.md delete mode 100644 darwin/files.nix delete mode 100644 darwin/packages.nix delete mode 100644 nixos/README.md delete mode 100644 nixos/files.nix delete mode 100644 nixos/packages.nix delete mode 100644 overlays/README.md delete mode 100644 shared/README.md delete mode 100644 shared/config/kitty/night-owl.conf delete mode 100644 shared/files.nix diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b2be92b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +result diff --git a/bin/build b/bin/build deleted file mode 100755 index 5cd3f58..0000000 --- a/bin/build +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -e - -VERSION=1.0 -export args=$@ - -# Navigate to the directory of this script -cd $(dirname $(readlink -f $0)) -cd .. - -SYSTEM=$(uname) - -build() { - if [ $SYSTEM == "Darwin" ]; then - ./bin/darwin-build $args - elif [ $SYSTEM == "Linux" ]; then - ./bin/nixos-build $args - else - echo "Unknown platform" - fi -} - -build diff --git a/bin/darwin-build b/bin/darwin-build deleted file mode 100755 index b4eccef..0000000 --- a/bin/darwin-build +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh -e - -VERSION=1.0 - -GREEN='\033[1;32m' -RED='\033[1;31m' -NC='\033[0m' - -FLAKE="macos" -SYSTEM="darwinConfigurations.$FLAKE.system" - -export NIXPKGS_ALLOW_UNFREE=1 - -# Navigate to the directory of this script -cd $(dirname $(readlink -f $0)) -cd .. - -echo "${GREEN}Starting build...${NC}" -nix --experimental-features 'nix-command flakes' build .#$SYSTEM $@ - -echo "${GREEN}Switching to new generation...${NC}" -./result/sw/bin/darwin-rebuild switch --flake .#$FLAKE $@ - -echo "${GREEN}Cleaning up...${NC}" -unlink ./result - -echo "${GREEN}Switch to new generation complete!${NC}" diff --git a/bin/nixos-build b/bin/nixos-build deleted file mode 100644 index a8092c4..0000000 --- a/bin/nixos-build +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh -e - -VERSION=1.0 - -GREEN='\033[1;32m' -RED='\033[1;31m' -NC='\033[0m' - -SYSTEM=$(uname -m) - -case "$SYSTEM" in - x86_64) - FLAKE_TARGET="x86_64-linux" - ;; - aarch64) - FLAKE_TARGET="aarch64-linux" - ;; - *) - echo -e "${RED}Unsupported architecture: $SYSTEM${NC}" - exit 1 - ;; -esac - -echo -e "${GREEN}Starting...${NC}" - -# We pass SSH from user to root so root can download secrets from your private Github -sudo SSH_AUTH_SOCK=$SSH_AUTH_SOCK /run/current-system/sw/bin/nixos-rebuild switch --flake .#$FLAKE_TARGET $@ - -echo -e "${GREEN}Switch to new generation complete!${NC}" diff --git a/darwin/README.md b/darwin/README.md deleted file mode 100644 index 90ab44e..0000000 --- a/darwin/README.md +++ /dev/null @@ -1,11 +0,0 @@ - -## Layout -``` -. -├── dock # MacOS dock configuration -├── casks.nix # List of homebrew casks -├── default.nix # Defines module, system-level config -├── files.nix # Non-Nix, static configuration files (now immutable!) -├── home-manager.nix # Defines user programs -├── packages.nix # List of packages to install for MacOS -``` diff --git a/darwin/casks.nix b/darwin/casks.nix index a873922..049eb75 100644 --- a/darwin/casks.nix +++ b/darwin/casks.nix @@ -1,5 +1,4 @@ {}: - [ # Development Tools "docker" @@ -7,7 +6,6 @@ "qflipper" "sublime-merge" "vscodium" - "warp" "zed" # Communication Tools diff --git a/darwin/default.nix b/darwin/default.nix index 21ebf56..5a7c307 100644 --- a/darwin/default.nix +++ b/darwin/default.nix @@ -1,7 +1,4 @@ -{ config, pkgs, ... }: - -let user = "dekker1"; in - +{ pkgs, user, ... }: { imports = [ ./home-manager.nix @@ -9,9 +6,6 @@ let user = "dekker1"; in ../shared/cachix ]; - # Auto upgrade nix package and the daemon service. - services.nix-daemon.enable = true; - # Setup user, packages, programs nix = { package = pkgs.nix; @@ -34,20 +28,116 @@ let user = "dekker1"; in system.checks.verifyNixPath = false; # Load configuration that is shared across systems - environment.systemPackages = with pkgs; [ - ] ++ (import ../shared/packages.nix { inherit pkgs; }); + environment.systemPackages = import ../shared/packages.nix { inherit pkgs; } ++ [ + # MacOS specific packages + ]; # Setup MacOS specific services services = { - yabai = { + aerospace = { enable = true; - extraConfig = (builtins.readFile ./config/yabairc); + settings = { + mode.main.binding = { + # Open a new terminal window + alt-enter = "exec-and-forget /Users/dekker1/.nix-profile/bin/kitty --single-instance -d ~"; + # alt-enter = "exec-and-forget open \"warp://action/new_window?path=$HOME\""; + # Toggle between floating and tiling layout + alt-shift-space = "layout floating tiling"; + + ### Key mappings copied from the default config + # See: https://nikitabobko.github.io/AeroSpace/commands#layout + alt-slash = "layout tiles horizontal vertical"; + alt-comma = "layout accordion horizontal vertical"; + + # See: https://nikitabobko.github.io/AeroSpace/commands#focus + alt-h = "focus left"; + alt-j = "focus down"; + alt-k = "focus up"; + alt-l = "focus right"; + + # See: https://nikitabobko.github.io/AeroSpace/commands#move + alt-shift-h = "move left"; + alt-shift-j = "move down"; + alt-shift-k = "move up"; + alt-shift-l = "move right"; + + # See: https://nikitabobko.github.io/AeroSpace/commands#resize + alt-shift-minus = "resize smart -50"; + alt-shift-equal = "resize smart +50"; + + # See: https://nikitabobko.github.io/AeroSpace/commands#workspace + alt-1 = "workspace 1"; + alt-2 = "workspace 2"; + alt-3 = "workspace 3"; + alt-4 = "workspace 4"; + alt-5 = "workspace 5"; + alt-6 = "workspace 6"; + alt-7 = "workspace 7"; + alt-8 = "workspace 8"; + alt-9 = "workspace 9"; + + # See: https://nikitabobko.github.io/AeroSpace/commands#move-node-to-workspace + alt-shift-1 = "move-node-to-workspace 1"; + alt-shift-2 = "move-node-to-workspace 2"; + alt-shift-3 = "move-node-to-workspace 3"; + alt-shift-4 = "move-node-to-workspace 4"; + alt-shift-5 = "move-node-to-workspace 5"; + alt-shift-6 = "move-node-to-workspace 6"; + alt-shift-7 = "move-node-to-workspace 7"; + alt-shift-8 = "move-node-to-workspace 8"; + alt-shift-9 = "move-node-to-workspace 9"; + + # See: https://nikitabobko.github.io/AeroSpace/commands#workspace-back-and-forth + alt-tab = "workspace-back-and-forth"; + # See: https://nikitabobko.github.io/AeroSpace/commands#move-workspace-to-monitor + alt-shift-tab = "move-workspace-to-monitor --wrap-around next"; + + # See: https://nikitabobko.github.io/AeroSpace/commands#mode + alt-shift-semicolon = "mode service"; + }; + ### Service mode (from default config, with default keybindings) + mode.service.binding = { + esc = ["reload-config" "mode main"]; + r = ["flatten-workspace-tree" "mode main"]; # reset layout + f = ["layout floating tiling" "mode main"]; # Toggle between floating and tiling layout + backspace = ["close-all-windows-but-current" "mode main"]; + + # sticky is not yet supported https://github.com/nikitabobko/AeroSpace/issues/2 + #s = ["layout sticky tiling", "mode main"] + + alt-shift-h = ["join-with left" "mode main"]; + alt-shift-j = ["join-with down" "mode main"]; + alt-shift-k = ["join-with up" "mode main"]; + alt-shift-l = ["join-with right" "mode main"]; + + ## Version 0.16+ + # down = "volume down"; + # up = "volume up"; + # shift-down = ["volume set 0" "mode main"]; + }; + # on-window-detected = [ + # # Use floating mode for Sublime Merge + # { + # "if.app-id" = "com.sublimemerge"; + # run = "layout floating"; + # } + # ]; + + }; }; + # Auto upgrade nix package and the daemon service. + nix-daemon.enable = true; + skhd = { - enable = true; + enable = false; skhdConfig = (builtins.readFile ./config/skhdrc); }; + + yabai = { + enable = false; + extraConfig = (builtins.readFile ./config/yabairc); + }; }; system.stateVersion = 5; diff --git a/darwin/files.nix b/darwin/files.nix deleted file mode 100644 index 9f27c6a..0000000 --- a/darwin/files.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ user, config, pkgs, ... }: - -let - xdg_configHome = "${config.users.users.${user}.home}/.config"; - xdg_dataHome = "${config.users.users.${user}.home}/.local/share"; - xdg_stateHome = "${config.users.users.${user}.home}/.local/state"; -in -{ } diff --git a/darwin/home-manager.nix b/darwin/home-manager.nix index ed9e619..c022502 100644 --- a/darwin/home-manager.nix +++ b/darwin/home-manager.nix @@ -1,10 +1,4 @@ -{ config, pkgs, lib, home-manager, ... }: - -let - user = "dekker1"; - sharedFiles = import ../shared/files.nix { inherit config pkgs; }; - additionalFiles = import ./files.nix { inherit user config pkgs; }; -in +{ email, name, pkgs, sshSignKey, user, ... }: { # It me users.users.${user} = { @@ -24,6 +18,16 @@ in casks = pkgs.callPackage ./casks.nix { }; brews = [ "openssl" # Required by cargo-update (`LDFLAGS="-L/usr/local/opt/openssl@3/lib" CPPFLAGS="-I/usr/local/opt/openssl@3/include" cargo install cargo-update`) + + # MiniZinc solvers + "dekker1/minizinc/choco" + "dekker1/minizinc/flatzingo" + "dekker1/minizinc/geas" + "dekker1/minizinc/jacop" + "dekker1/minizinc/fzn-oscar-cbls" + "dekker1/minizinc/fzn-picat" + "dekker1/minizinc/pumpkin" + "dekker1/minizinc/yuck" "scip" ]; taps = [ @@ -58,24 +62,16 @@ in useGlobalPkgs = true; users.${user} = { pkgs, config, lib, ... }: { home.enableNixpkgsReleaseCheck = false; - home.packages = pkgs.callPackage ./packages.nix { }; - home.file = lib.mkMerge [ - sharedFiles - additionalFiles - ]; home.stateVersion = "21.11"; - programs = { + programs = lib.attrsets.recursiveUpdate (import ../shared/home-manager.nix { + inherit config email lib name pkgs sshSignKey user; + }) { + # MacOS specific home-manager program settings + git.extraConfig.gpg.ssh.program = "/Applications/1Password.app/Contents/MacOS/op-ssh-sign"; + skim.enable = true; - ssh.matchBlocks = { - "*" = { - extraOptions = { - "UseKeychain" = "yes"; - }; - }; - }; - } // import ../shared/home-manager.nix { - inherit config pkgs lib; + ssh.matchBlocks."*".extraOptions."UseKeychain" = "yes"; }; }; }; diff --git a/darwin/packages.nix b/darwin/packages.nix deleted file mode 100644 index 1c95401..0000000 --- a/darwin/packages.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ pkgs }: - -with pkgs; -let shared-packages = import ../shared/packages.nix { inherit pkgs; }; in -shared-packages ++ [ - # Encryption and security tools - pinentry_mac -] diff --git a/flake.lock b/flake.lock index 3bd607a..0abd8a8 100644 --- a/flake.lock +++ b/flake.lock @@ -7,16 +7,16 @@ ] }, "locked": { - "lastModified": 1731153869, - "narHash": "sha256-3Ftf9oqOypcEyyrWJ0baVkRpvQqroK/SVBFLvU3nPuc=", + "lastModified": 1736820923, + "narHash": "sha256-SDuKLOWAh8VJRXlNWQn9QE99bjeEUAAbYXqrKGbsiyk=", "owner": "LnL7", "repo": "nix-darwin", - "rev": "5c74ab862c8070cbf6400128a1b56abb213656da", + "rev": "944c2b181792ae7ae6b20c0df3f44879c11706c9", "type": "github" }, "original": { "owner": "LnL7", - "ref": "master", + "ref": "nix-darwin-24.11", "repo": "nix-darwin", "type": "github" } @@ -28,32 +28,32 @@ ] }, "locked": { - "lastModified": 1726989464, - "narHash": "sha256-Vl+WVTJwutXkimwGprnEtXc/s/s8sMuXzqXaspIGlwM=", + "lastModified": 1736373539, + "narHash": "sha256-dinzAqCjenWDxuy+MqUQq0I4zUSfaCvN9rzuCmgMZJY=", "owner": "nix-community", "repo": "home-manager", - "rev": "2f23fa308a7c067e52dfcc30a0758f47043ec176", + "rev": "bd65bc3cde04c16755955630b344bc9e35272c56", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-24.05", + "ref": "release-24.11", "repo": "home-manager", "type": "github" } }, "nixpkgs": { "locked": { - "lastModified": 1730891215, - "narHash": "sha256-i85DPrhDuvzgvIWCpJlbfM2UFtNYbapo20MtQXsvay4=", + "lastModified": 1736780541, + "narHash": "sha256-6AwU5WC45Ww5q5qVR/AzKS4CeZzgOhclBKi5H7zrCnI=", "owner": "nixos", "repo": "nixpkgs", - "rev": "c128e44a249d6180740d0a979b6480d5b795c013", + "rev": "31206f5a1d081808b14aef7b48f7c214d902b8c0", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixpkgs-24.05-darwin", + "ref": "nixpkgs-24.11-darwin", "repo": "nixpkgs", "type": "github" } diff --git a/flake.nix b/flake.nix index 21925a2..da132dd 100644 --- a/flake.nix +++ b/flake.nix @@ -2,62 +2,53 @@ description = "Dekker1's home manager configuation"; inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-24.05-darwin"; + nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-24.11-darwin"; home-manager = { - url = "github:nix-community/home-manager/release-24.05"; + url = "github:nix-community/home-manager/release-24.11"; inputs.nixpkgs.follows = "nixpkgs"; }; darwin = { - url = "github:LnL7/nix-darwin/master"; + url = "github:LnL7/nix-darwin/nix-darwin-24.11"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = - { self - , darwin + { darwin , home-manager , nixpkgs - } @inputs: + , ... + } @ inputs: let - user = "dekker1"; + # Systems that can be used linuxSystems = [ "x86_64-linux" "aarch64-linux" ]; - darwinSystems = [ "aarch64-darwin" ]; - forAllLinuxSystems = f: nixpkgs.lib.genAttrs linuxSystems (system: f system); - forAllDarwinSystems = f: nixpkgs.lib.genAttrs darwinSystems (system: f system); - forAllSystems = f: nixpkgs.lib.genAttrs (linuxSystems ++ darwinSystems) (system: f system); - devShell = system: - let - pkgs = nixpkgs.legacyPackages.${system}; - in - { - default = with pkgs; mkShell { - nativeBuildInputs = with pkgs; [ bashInteractive git ]; - shellHook = with pkgs; '' - ''; - }; - }; + darwinSystems = [ "aarch64-darwin" "x86_64-darwin" ]; + # Arguments that are passed into the system configuration + name = "Jip J. Dekker"; + email = "jip@dekker.one"; + sshSignKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMCC0liW47USr/Ic1rJ52V4eE07y42VG9Ols1zYBrPlc"; + user = "dekker1"; + # Special arguments that are passed into each system configuration + specialArgs = inputs // { inherit email name sshSignKey user; }; in { - devShells = forAllSystems devShell; - darwinConfigurations = let user = "dekker1"; in { - macos = darwin.lib.darwinSystem { - system = "aarch64-darwin"; - specialArgs = inputs; - modules = [ - home-manager.darwinModules.home-manager - ./darwin - ]; - }; - }; + darwinConfigurations = nixpkgs.lib.genAttrs darwinSystems (system: + darwin.lib.darwinSystem { + inherit system specialArgs; + modules = [ + home-manager.darwinModules.home-manager + ./darwin + ]; + } + ); nixosConfigurations = nixpkgs.lib.genAttrs linuxSystems (system: nixpkgs.lib.nixosSystem { - system = system; - specialArgs = inputs; + inherit system specialArgs; modules = [ - home-manager.nixosModules.home-manager - { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.users.${user} = import ./nixos/home-manager.nix; + home-manager.nixosModules.home-manager { + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + users.${user} = import ./nixos/home-manager.nix; + }; } ./nixos ]; diff --git a/nixos/README.md b/nixos/README.md deleted file mode 100644 index 7e81b50..0000000 --- a/nixos/README.md +++ /dev/null @@ -1,9 +0,0 @@ -## Layout -``` -. -├── config # Config files not written in Nix -├── default.nix # Defines module, system-level config, -├── files.nix # Non-Nix, static configuration files (now immutable!) -├── home-manager.nix # Defines user programs -├── packages.nix # List of packages to install for NixOS -``` diff --git a/nixos/default.nix b/nixos/default.nix index f4ec691..7c7d0c5 100644 --- a/nixos/default.nix +++ b/nixos/default.nix @@ -1,9 +1,4 @@ -{ config, inputs, pkgs, ... }: - -let - user = "dekker1"; - keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICwXNVel0w1f4nbmu2iJsqCoeiUsENzTLyhCZjSL+jT+" ]; -in +{ pkgs, user, ... }: { imports = [ ../shared @@ -30,18 +25,12 @@ in "wheel" # Enable ‘sudo’ for the user. ]; shell = pkgs.zsh; - openssh.authorizedKeys.keys = keys; }; - # My shell - programs.zsh.enable = true; - - fonts.packages = with pkgs; [ - ]; - - environment.systemPackages = with pkgs; [ + environment.systemPackages = import ../shared/packages.nix { inherit pkgs; } ++ (with pkgs; [ + # Linux specific packages gitAndTools.gitFull - ]; + ]); system.stateVersion = "21.05"; # Don't change this diff --git a/nixos/files.nix b/nixos/files.nix deleted file mode 100644 index 173b272..0000000 --- a/nixos/files.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ user, pkgs, ... }: - -let - home = builtins.getEnv "HOME"; - xdg_configHome = "${home}/.config"; - xdg_dataHome = "${home}/.local/share"; - xdg_stateHome = "${home}/.local/state"; -in -{ } diff --git a/nixos/home-manager.nix b/nixos/home-manager.nix index 978bf66..7a7076d 100644 --- a/nixos/home-manager.nix +++ b/nixos/home-manager.nix @@ -1,26 +1,18 @@ -{ config, pkgs, lib, ... }: - -let - user = "dekker1"; - xdg_configHome = "/home/${user}/.config"; - shared-programs = import ../shared/home-manager.nix { inherit config pkgs lib; }; - shared-files = import ../shared/files.nix { inherit config pkgs; }; -in +{ config, email, lib, name, pkgs, sshSignKey, user, ... }: { home = { enableNixpkgsReleaseCheck = false; username = "${user}"; homeDirectory = "/home/${user}"; - packages = // pkgs.callPackage ./packages.nix { }; - file = shared-files // import ./files.nix { inherit user; }; stateVersion = "21.05"; }; - programs = { + programs = lib.attrsets.recursiveUpdate (import ../shared/home-manager.nix { + inherit config email lib name pkgs sshSignKey user; + }) { firefox = { enable = true; package = pkgs.firefox-bin; }; - } // shared-programs; - + }; } diff --git a/nixos/packages.nix b/nixos/packages.nix deleted file mode 100644 index 149b2dd..0000000 --- a/nixos/packages.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ pkgs }: - -with pkgs; -let shared-packages = import ../shared/packages.nix { inherit pkgs; }; in -shared-packages ++ [ - # Encryption and security tools - pinentry -] diff --git a/overlays/README.md b/overlays/README.md deleted file mode 100644 index 6ffc5ce..0000000 --- a/overlays/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# Overlays - -Files in this directory run automatically as part of each build. Some common ways I've used overlays in the past: -* Applying patches -* Downloading different versions of files (locking to a version or trying a fork) -* Workarounds and stuff I need to run temporarily diff --git a/shared/README.md b/shared/README.md deleted file mode 100644 index 7194a6b..0000000 --- a/shared/README.md +++ /dev/null @@ -1,16 +0,0 @@ -## Shared -Much of the code running on MacOS or NixOS is actually found here. - -This configuration gets imported by both modules. Some configuration examples include `git`, `zsh`, `vim`, and `tmux`. - -## Layout -``` -. -├── config # Config files not written in Nix -├── cachix # Defines cachix, a global cache for builds -├── default.nix # Defines how we import overlays -├── files.nix # Non-Nix, static configuration files (now immutable!) -├── home-manager.nix # The goods; most all shared config lives here -├── packages.nix # List of packages to share - -``` diff --git a/shared/cachix/default.nix b/shared/cachix/default.nix index 37339e9..9c6ad27 100644 --- a/shared/cachix/default.nix +++ b/shared/cachix/default.nix @@ -1,4 +1,4 @@ -{ pkgs, lib, ... }: +{ ... }: { nix.settings = { substituters = [ diff --git a/shared/config/kitty/night-owl.conf b/shared/config/kitty/night-owl.conf deleted file mode 100644 index baa9f90..0000000 --- a/shared/config/kitty/night-owl.conf +++ /dev/null @@ -1,46 +0,0 @@ -# vim:ft=kitty -## name: Night Owl -## author: Luke Glazebrook -## license: MIT - -foreground #d6deeb -background #011627 -selection_foreground none -selection_background #1d3b53 - -#: Cursor colors -cursor #80a4c2 -cursor_text_color background - -#: The basic 16 colors -#: black -color0 #011627 -color8 #575656 - -#: red -color1 #ef5350 -color9 #ef5350 - -#: green -color2 #22da6e -color10 #22da6e - -#: yellow -color3 #addb67 -color11 #ffeb95 - -#: blue -color4 #82aaff -color12 #82aaff - -#: magenta -color5 #c792ea -color13 #c792ea - -#: cyan -color6 #21c7a8 -color14 #7fdbca - -#: white -color7 #ffffff -color15 #ffffff diff --git a/shared/default.nix b/shared/default.nix index bcaa49f..2144d4f 100644 --- a/shared/default.nix +++ b/shared/default.nix @@ -1,7 +1,5 @@ -{ config, pkgs, ... }: - +{ ... }: { - nixpkgs = { config = { allowUnfree = true; @@ -9,14 +7,5 @@ allowInsecure = false; allowUnsupportedSystem = true; }; - - overlays = - # Apply each overlay found in the /overlays directory - let path = ../overlays; in with builtins; - map (n: import (path + ("/" + n))) - (filter - (n: match ".*\\.nix" n != null || - pathExists (path + ("/" + n + "/default.nix"))) - (attrNames (readDir path))); }; } diff --git a/shared/files.nix b/shared/files.nix deleted file mode 100644 index b9dc2b4..0000000 --- a/shared/files.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ pkgs, config, ... }: - -{ - ".config/kitty/themes/night-owl.conf" = { - text = builtins.readFile ../shared/config/kitty/night-owl.conf; - }; -} - - diff --git a/shared/home-manager.nix b/shared/home-manager.nix index eba7977..72ab7cd 100644 --- a/shared/home-manager.nix +++ b/shared/home-manager.nix @@ -1,11 +1,9 @@ -{ config, pkgs, lib, ... }: - +{ pkgs, email, name, sshSignKey, ... }: let - name = "Jip J. Dekker"; - user = "dekker1"; - email = "jip@dekker.one"; in { + atuin.enable = true; + bat.enable = true; direnv = { @@ -65,30 +63,35 @@ in commit.gpgsign = true; gpg.format = "ssh"; - user.signingkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMCC0liW47USr/Ic1rJ52V4eE07y42VG9Ols1zYBrPlc"; - gpg.ssh.program = "/Applications/1Password.app/Contents/MacOS/op-ssh-sign"; + user.signingkey = sshSignKey; }; }; jujutsu = { enable = true; settings = { - email = "jip@dekker.one"; - name = "Jip J. Dekker"; + signing = { + sign-all = true; + backend = "ssh"; + key = sshSignKey; + }; + user = { inherit email name; }; + ui.editor = "zed -w"; }; }; kitty = { + darwinLaunchOptions = [ "--single-instance" ]; enable = true; font = { - name = "JetBrainsMono Nerd Font"; + name = "Berkeley Mono Variable Nerd Font"; size = 14; }; settings = { cursor_shape = "underline"; confirm_os_window_close = 0; }; - theme = "GitHub Light"; + themeFile = "Catppuccin-Latte"; }; # Shared shell configuration @@ -165,19 +168,6 @@ in ''; }; - # sapling = { - # enable = true; - # userName = "Jip J. Dekker"; - # userEmail = "jip@dekker.one"; - # extraConfig = { - # ui."ignore.userroot" = "~/.config/git/ignore"; - # isl = { - # hasShownGettingStarted = false; - # render-compact = false; - # }; - # }; - # }; - ssh = { enable = true; matchBlocks = { @@ -208,7 +198,7 @@ in settings = { misc.disable = [ "brew_cask" - "brew_formula" + # "brew_formula" "containers" "gem" "node" @@ -222,7 +212,7 @@ in misc.cleanup = true; misc.no_retry = true; pre_commands = { - "Home Manager" = "(cd ~/nix-config/ && nix flake update) && ~/nix-config/bin/build"; + "Home Manager" = "(cd ~/nix-config/ && nix flake update) && darwin-rebuild switch --flake ~/nix-config#aarch64-darwin"; }; }; }; @@ -260,7 +250,6 @@ in RUSTC_WRAPPER = "sccache"; }; initExtra = '' - zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}' # Load Homebrew shell environment if [[ -f "/opt/homebrew/bin/brew" && -x $(realpath "/opt/homebrew/bin/brew") ]]; then eval "$(/opt/homebrew/bin/brew shellenv)" @@ -268,8 +257,5 @@ in eval "$(/usr/local/bin/brew shellenv)" fi ''; - historySubstringSearch = { - enable = true; - }; }; } diff --git a/shared/packages.nix b/shared/packages.nix index 3ce8953..fb3cc47 100644 --- a/shared/packages.nix +++ b/shared/packages.nix @@ -1,5 +1,4 @@ { pkgs }: - with pkgs; [ # General packages for development and system management hut @@ -35,7 +34,7 @@ with pkgs; [ # Python development tools black - poetry + uv # Rust development tools rustup