Update configuration to first deployed version
This commit is contained in:
parent
a022c8a7da
commit
81bb8b446a
@ -11,13 +11,11 @@
|
||||
|
||||
# Communication Tools
|
||||
"discord"
|
||||
"signal"
|
||||
"zoom"
|
||||
"zulip"
|
||||
|
||||
# Utility Tools
|
||||
"calibre"
|
||||
"mirrorop"
|
||||
|
||||
# Productivity Tools
|
||||
"alfred"
|
||||
|
@ -12,6 +12,24 @@ let user = "dekker1"; in
|
||||
# Auto upgrade nix package and the daemon service.
|
||||
services.nix-daemon.enable = true;
|
||||
|
||||
# Setup user, packages, programs
|
||||
nix = {
|
||||
package = pkgs.nixUnstable;
|
||||
settings.trusted-users = [ "@admin" "${user}" ];
|
||||
|
||||
gc = {
|
||||
user = "root";
|
||||
automatic = true;
|
||||
interval = { Weekday = 0; Hour = 2; Minute = 0; };
|
||||
options = "--delete-older-than 30d";
|
||||
};
|
||||
|
||||
# Turn this on to make command line easier
|
||||
extraOptions = ''
|
||||
experimental-features = nix-command flakes
|
||||
'';
|
||||
};
|
||||
|
||||
# Turn off NIX_PATH warnings now that we're using flakes
|
||||
system.checks.verifyNixPath = false;
|
||||
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
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
|
||||
{}
|
||||
xdg_dataHome = "${config.users.users.${user}.home}/.local/share";
|
||||
xdg_stateHome = "${config.users.users.${user}.home}/.local/state";
|
||||
in
|
||||
{ }
|
||||
|
@ -14,8 +14,12 @@ in
|
||||
shell = pkgs.zsh;
|
||||
};
|
||||
|
||||
homebrew.enable = false;
|
||||
homebrew.casks = pkgs.callPackage ./casks.nix {};
|
||||
homebrew.enable = true;
|
||||
homebrew.casks = pkgs.callPackage ./casks.nix { };
|
||||
homebrew.brews = [
|
||||
"yabai"
|
||||
"skhd"
|
||||
];
|
||||
|
||||
# These app IDs are from using the mas CLI app
|
||||
# mas = mac app store
|
||||
@ -47,15 +51,15 @@ in
|
||||
# Enable home-manager
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
users.${user} = { pkgs, config, lib, ... }:{
|
||||
users.${user} = { pkgs, config, lib, ... }: {
|
||||
home.enableNixpkgsReleaseCheck = false;
|
||||
home.packages = pkgs.callPackage ./packages.nix {};
|
||||
home.packages = pkgs.callPackage ./packages.nix { };
|
||||
home.file = lib.mkMerge [
|
||||
sharedFiles
|
||||
additionalFiles
|
||||
];
|
||||
home.stateVersion = "21.11";
|
||||
programs = {} // import ../shared/home-manager.nix { inherit config pkgs lib; };
|
||||
programs = { } // import ../shared/home-manager.nix { inherit config pkgs lib; };
|
||||
};
|
||||
};
|
||||
}
|
||||
|
62
flake.lock
generated
62
flake.lock
generated
@ -61,11 +61,11 @@
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1702195734,
|
||||
"narHash": "sha256-MvQa1qT+10dqJyMKtACCpFOcFYIv9i/REek1bHaIhS4=",
|
||||
"lastModified": 1702203126,
|
||||
"narHash": "sha256-4BhN2Vji19MzRC7SUfPZGmtZ2WZydQeUk/ogfRBIZMs=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "9a00befa13126e318fa4b895adeb84d383c9ab3f",
|
||||
"rev": "defbb9c5857e157703e8fc7cf3c2ceb01cb95883",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -93,11 +93,11 @@
|
||||
"homebrew-cask": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1702174207,
|
||||
"narHash": "sha256-P7mCkLiuqnnjfle3mDc0oFhQreubAnCP0DWKt3ksLDs=",
|
||||
"lastModified": 1702255628,
|
||||
"narHash": "sha256-Q46Mgw3oLVafoo2mRzDdR6IQ9hdCnfk59uaWoiaAnjE=",
|
||||
"owner": "homebrew",
|
||||
"repo": "homebrew-cask",
|
||||
"rev": "f9965c0cadc974f2b8706ecab78c5ff0972cd5a9",
|
||||
"rev": "204e8eea0c0f3f1a26bf6f3f238595fdd3fc869c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -106,14 +106,30 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"homebrew-cask-fonts": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1702265088,
|
||||
"narHash": "sha256-pU63NGMzYZ/4m4JWu5HmxZCU9pKJoUK++W46awmGtdc=",
|
||||
"owner": "homebrew",
|
||||
"repo": "homebrew-cask-fonts",
|
||||
"rev": "a7fb1a6146ccd9a8d164c4c7f529da56d56310e9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "homebrew",
|
||||
"repo": "homebrew-cask-fonts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"homebrew-core": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1702193388,
|
||||
"narHash": "sha256-fqUIwK1YXIYGu3ZU1g/gRmfaOy8ZKyUgJhGSvSsYAyU=",
|
||||
"lastModified": 1702252550,
|
||||
"narHash": "sha256-QMPC/VNrE706F1sWXokP5k5npM7blXMLc8g8R0iqvHA=",
|
||||
"owner": "homebrew",
|
||||
"repo": "homebrew-core",
|
||||
"rev": "75ca7b621f326dcafe2ff834e9cde10d354d7080",
|
||||
"rev": "fe91ea92d9b89f099209ab8252623c337ac13cd7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -122,6 +138,22 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"homebrew-koekeishiya": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1699812011,
|
||||
"narHash": "sha256-1pXKOdZz1KADlAU3410afYq97Icxq0At5c9HClwLeFo=",
|
||||
"owner": "koekeishiya",
|
||||
"repo": "homebrew-formulae",
|
||||
"rev": "d4c95802ca991ea41512320af412072e775c1eb7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "koekeishiya",
|
||||
"repo": "homebrew-formulae",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-darwin": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
@ -150,13 +182,13 @@
|
||||
"locked": {
|
||||
"lastModified": 1695057498,
|
||||
"narHash": "sha256-wn3j7u5tOgLLbNxZC542rJiP5iX323m+CoGPMgPOxp4=",
|
||||
"owner": "zhaofengli-wip",
|
||||
"owner": "zhaofengli",
|
||||
"repo": "nix-homebrew",
|
||||
"rev": "6ab33c5e9249e74401144a7c667d96a757c5d341",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "zhaofengli-wip",
|
||||
"owner": "zhaofengli",
|
||||
"repo": "nix-homebrew",
|
||||
"type": "github"
|
||||
}
|
||||
@ -208,11 +240,11 @@
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1701718080,
|
||||
"narHash": "sha256-6ovz0pG76dE0P170pmmZex1wWcQoeiomUZGggfH9XPs=",
|
||||
"lastModified": 1702151865,
|
||||
"narHash": "sha256-9VAt19t6yQa7pHZLDbil/QctAgVsA66DLnzdRGqDisg=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "2c7f3c0fb7c08a0814627611d9d7d45ab6d75335",
|
||||
"rev": "666fc80e7b2afb570462423cb0e1cf1a3a34fedd",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -228,7 +260,9 @@
|
||||
"home-manager": "home-manager",
|
||||
"homebrew-bundle": "homebrew-bundle",
|
||||
"homebrew-cask": "homebrew-cask",
|
||||
"homebrew-cask-fonts": "homebrew-cask-fonts",
|
||||
"homebrew-core": "homebrew-core",
|
||||
"homebrew-koekeishiya": "homebrew-koekeishiya",
|
||||
"nix-homebrew": "nix-homebrew",
|
||||
"nixpkgs": "nixpkgs_4"
|
||||
}
|
||||
|
62
flake.nix
62
flake.nix
@ -1,4 +1,3 @@
|
||||
|
||||
{
|
||||
description = "Starter Configuration for NixOS and MacOS";
|
||||
|
||||
@ -10,22 +9,41 @@
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
nix-homebrew = {
|
||||
url = "github:zhaofengli-wip/nix-homebrew";
|
||||
url = "github:zhaofengli/nix-homebrew";
|
||||
};
|
||||
homebrew-bundle = {
|
||||
url = "github:homebrew/homebrew-bundle";
|
||||
flake = false;
|
||||
};
|
||||
homebrew-core = {
|
||||
url = "github:homebrew/homebrew-core";
|
||||
flake = false;
|
||||
};
|
||||
homebrew-cask = {
|
||||
url = "github:homebrew/homebrew-cask";
|
||||
flake = false;
|
||||
};
|
||||
homebrew-cask-fonts = {
|
||||
url = "github:homebrew/homebrew-cask-fonts";
|
||||
flake = false;
|
||||
};
|
||||
homebrew-core = {
|
||||
url = "github:homebrew/homebrew-core";
|
||||
flake = false;
|
||||
};
|
||||
homebrew-koekeishiya = {
|
||||
url = "github:koekeishiya/homebrew-formulae";
|
||||
flake = false;
|
||||
};
|
||||
};
|
||||
outputs = { self, darwin, nix-homebrew, homebrew-bundle, homebrew-core, homebrew-cask, home-manager, nixpkgs } @inputs:
|
||||
outputs =
|
||||
{ self
|
||||
, darwin
|
||||
, home-manager
|
||||
, homebrew-bundle
|
||||
, homebrew-cask
|
||||
, homebrew-cask-fonts
|
||||
, homebrew-core
|
||||
, homebrew-koekeishiya
|
||||
, nix-homebrew
|
||||
, nixpkgs
|
||||
} @inputs:
|
||||
let
|
||||
user = "dekker1";
|
||||
linuxSystems = [ "x86_64-linux" "aarch64-linux" ];
|
||||
@ -33,16 +51,17 @@
|
||||
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; ''
|
||||
devShell = system:
|
||||
let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
in
|
||||
{
|
||||
default = with pkgs; mkShell {
|
||||
nativeBuildInputs = with pkgs; [ bashInteractive git ];
|
||||
shellHook = with pkgs; ''
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
devShells = forAllSystems devShell;
|
||||
@ -55,12 +74,14 @@
|
||||
home-manager.darwinModules.home-manager
|
||||
{
|
||||
nix-homebrew = {
|
||||
enable = false;
|
||||
enable = true;
|
||||
user = "${user}";
|
||||
taps = {
|
||||
"homebrew/homebrew-core" = homebrew-core;
|
||||
"homebrew/homebrew-cask" = homebrew-cask;
|
||||
"homebrew/homebrew-bundle" = homebrew-bundle;
|
||||
"homebrew/homebrew-cask-fonts" = homebrew-cask-fonts;
|
||||
"homebrew/homebrew-bundle" = homebrew-bundle;
|
||||
"koekeishiya/homebrew-formulae" = homebrew-koekeishiya;
|
||||
};
|
||||
mutableTaps = false;
|
||||
autoMigrate = true;
|
||||
@ -74,13 +95,14 @@
|
||||
system = system;
|
||||
specialArgs = inputs;
|
||||
modules = [
|
||||
home-manager.nixosModules.home-manager {
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users.${user} = import ./nixos/home-manager.nix;
|
||||
}
|
||||
./nixos
|
||||
];
|
||||
});
|
||||
};
|
||||
});
|
||||
};
|
||||
}
|
||||
|
@ -1,7 +1,9 @@
|
||||
{ config, inputs, pkgs, ... }:
|
||||
|
||||
let user = "dekker1";
|
||||
keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICwXNVel0w1f4nbmu2iJsqCoeiUsENzTLyhCZjSL+jT+" ]; in
|
||||
let
|
||||
user = "dekker1";
|
||||
keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICwXNVel0w1f4nbmu2iJsqCoeiUsENzTLyhCZjSL+jT+" ];
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
../shared
|
||||
|
@ -1,9 +1,9 @@
|
||||
{ user, ... }:
|
||||
{ user, pkgs, ... }:
|
||||
|
||||
let
|
||||
home = builtins.getEnv "HOME";
|
||||
home = builtins.getEnv "HOME";
|
||||
xdg_configHome = "${home}/.config";
|
||||
xdg_dataHome = "${home}/.local/share";
|
||||
xdg_stateHome = "${home}/.local/state"; in
|
||||
{
|
||||
}
|
||||
xdg_dataHome = "${home}/.local/share";
|
||||
xdg_stateHome = "${home}/.local/state";
|
||||
in
|
||||
{ }
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
let
|
||||
user = "dekker1";
|
||||
xdg_configHome = "/home/${user}/.config";
|
||||
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
|
||||
@ -11,11 +11,11 @@ in
|
||||
enableNixpkgsReleaseCheck = false;
|
||||
username = "${user}";
|
||||
homeDirectory = "/home/${user}";
|
||||
packages = pkgs.callPackage ./packages.nix {};
|
||||
packages = pkgs.callPackage ./packages.nix { };
|
||||
file = shared-files // import ./files.nix { inherit user; };
|
||||
stateVersion = "21.05";
|
||||
};
|
||||
|
||||
programs = shared-programs // {};
|
||||
programs = shared-programs // { };
|
||||
|
||||
}
|
||||
|
@ -14,8 +14,9 @@
|
||||
# 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)));
|
||||
(filter
|
||||
(n: match ".*\\.nix" n != null ||
|
||||
pathExists (path + ("/" + n + "/default.nix")))
|
||||
(attrNames (readDir path)));
|
||||
};
|
||||
}
|
||||
|
@ -1,4 +1,3 @@
|
||||
{ pkgs, config, ... }:
|
||||
|
||||
{
|
||||
}
|
||||
{ }
|
||||
|
@ -1,8 +1,10 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
let name = "Jip J. Dekker";
|
||||
user = "dekker1";
|
||||
email = "jip@dekker.one"; in
|
||||
let
|
||||
name = "Jip J. Dekker";
|
||||
user = "dekker1";
|
||||
email = "jip@dekker.one";
|
||||
in
|
||||
{
|
||||
|
||||
git = {
|
||||
@ -37,7 +39,7 @@ let name = "Jip J. Dekker";
|
||||
pull.ff = true;
|
||||
push.default = "simple";
|
||||
rebase.autoStash = true;
|
||||
|
||||
|
||||
credential.helper = "osxkeychain";
|
||||
|
||||
commit.gpgsign = true;
|
||||
@ -50,6 +52,75 @@ let name = "Jip J. Dekker";
|
||||
# Shared shell configuration
|
||||
nushell = {
|
||||
enable = true;
|
||||
shellAliases = {
|
||||
edit = "^($env.VISUAL)";
|
||||
start = "^open";
|
||||
less = "bat";
|
||||
set-light-theme = "kitty +kitten themes Catppuccin-Latte";
|
||||
set-dark-theme = "kitty +kitten themes Night Owl";
|
||||
brew-backup = "brew bundle dump --global --no-lock --formula --cask --mas --tap --force";
|
||||
brew-cleanup = "brew bundle cleanup --global --no-lock --force --zap";
|
||||
brew-restore = "brew bundle install --global --no-lock";
|
||||
};
|
||||
environmentVariables = {
|
||||
# Set default editor
|
||||
EDITOR = ''"nvim"'';
|
||||
VISUAL = ''"codium"'';
|
||||
# DISABLE VI INDICATORS
|
||||
PROMPT_INDICATOR_VI_INSERT = ''""'';
|
||||
PROMPT_INDICATOR_VI_NORMAL = ''""'';
|
||||
# Alias for Monash compute cluster
|
||||
OPTCLUSTER = ''"compute.optimisation-2020.cloud.edu.au"'';
|
||||
# CMake settings
|
||||
CMAKE_EXPORT_COMPILE_COMMANDS = ''"1"''; # output compile-commands.json for clangd
|
||||
CMAKE_GENERATOR = ''"Ninja Multi-Config"''; # use Ninja generator by default
|
||||
CMAKE_C_COMPILER_LAUNCHER = ''"ccache"'';
|
||||
CMAKE_CXX_COMPILER_LAUNCHER = ''"ccache"'';
|
||||
# Homebrew shell setup (brew shellenv)
|
||||
HOMEBREW_PREFIX = ''"/opt/homebrew"'';
|
||||
HOMEBREW_CELLAR = ''"/opt/homebrew/Cellar"'';
|
||||
HOMEBREW_REPOSITORY = ''"/opt/homebrew"'';
|
||||
INFOPATH = ''"/opt/homebrew/share/info"'';
|
||||
# Set MANPATH
|
||||
MANPATH = ''"/usr/share/man:/usr/local/share/man:/Library/TeX/Distributions/.DefaultTeX/Contents/Man:/opt/homebrew/share/man"'';
|
||||
NIX_PROFILES = ''$"/nix/var/nix/profiles/default:($env.HOME)/.nix-profile"'';
|
||||
};
|
||||
envFile.text = ''
|
||||
if not 'config' in $env {
|
||||
$env.config = ([] | into record)
|
||||
}
|
||||
$env.config = ($env.config | upsert show_banner false)
|
||||
$env.config = ($env.config | upsert rm.always_trash true)
|
||||
$env.config = ($env.config | upsert edit_mode vi)
|
||||
$env.config = ($env.config | upsert history.max_size 100000)
|
||||
$env.config = ($env.config | upsert footer_mode auto)
|
||||
$env.config = ($env.config | upsert history.file_format "sqlite")
|
||||
'';
|
||||
configFile.text = ''
|
||||
# Specifies how environment variables are:
|
||||
# - converted from a string to a value on Nushell startup (from_string)
|
||||
# - converted from a value back to a string when running external commands (to_string)
|
||||
# Note: The conversions happen *after* config.nu is loaded
|
||||
$env.ENV_CONVERSIONS = {
|
||||
"PATH": {
|
||||
from_string: { |s| $s | split row (char esep) | path expand --no-symlink }
|
||||
to_string: { |v| $v | path expand --no-symlink | str join (char esep) }
|
||||
}
|
||||
}
|
||||
|
||||
# Add entries to PATH:
|
||||
# From MacOS helper (/usr/libexec/path_helper)
|
||||
$env.PATH = ($env.PATH | split row (char esep) | append $"($env.HOME)/.nix-profile/bin")
|
||||
$env.PATH = ($env.PATH | split row (char esep) | append "/nix/var/nix/profiles/default/bin")
|
||||
$env.PATH = ($env.PATH | split row (char esep) | append "/Library/TeX/texbin")
|
||||
$env.PATH = ($env.PATH | split row (char esep) | append "/Library/Apple/usr/bin")
|
||||
$env.PATH = ($env.PATH | split row (char esep) | append "/opt/homebrew/bin")
|
||||
$env.PATH = ($env.PATH | split row (char esep) | append "/opt/homebrew/sbin")
|
||||
$env.PATH = ($env.PATH | split row (char esep) | append "/usr/local/bin")
|
||||
# Other package managers
|
||||
$env.PATH = ($env.PATH | split row (char esep) | prepend $"($env.HOME)/.local/bin")
|
||||
$env.PATH = ($env.PATH | split row (char esep) | prepend $"($env.HOME)/.cargo/bin")
|
||||
'';
|
||||
};
|
||||
|
||||
starship = {
|
||||
|
@ -17,15 +17,12 @@ with pkgs; [
|
||||
|
||||
# Text and terminal utilities
|
||||
bat
|
||||
eza
|
||||
neovim
|
||||
zoxide
|
||||
|
||||
# C(++) development tools
|
||||
bison
|
||||
ccache
|
||||
cmake
|
||||
flex
|
||||
llvm
|
||||
ninja
|
||||
|
||||
@ -38,6 +35,10 @@ with pkgs; [
|
||||
gecode
|
||||
# or-tools
|
||||
|
||||
# Nix development tools
|
||||
nixpkgs-fmt
|
||||
nixd
|
||||
|
||||
# Node.js development tools
|
||||
nodePackages.prettier
|
||||
nodePackages.npm # globally install npm
|
||||
|
Loading…
x
Reference in New Issue
Block a user