Split into multiple configs (#10)

This commit is contained in:
Patrick Stevens
2022-11-24 20:07:50 +00:00
committed by GitHub
parent df297beff1
commit 36171014c8
5 changed files with 144 additions and 88 deletions

98
daily-home.nix Normal file
View File

@@ -0,0 +1,98 @@
{
nixpkgs,
username,
dotnet,
...
}: {
imports = [./rider];
rider = {
enable = true;
username = username;
dotnet = dotnet;
};
home.packages = [
# Broken on Apple Silicon
#nixpkgs.keepassxc
nixpkgs.rust-analyzer
nixpkgs.tmux
nixpkgs.wget
nixpkgs.youtube-dl
nixpkgs.yt-dlp
nixpkgs.cmake
nixpkgs.gnumake
nixpkgs.gcc
nixpkgs.gdb
nixpkgs.hledger
nixpkgs.hledger-web
dotnet
nixpkgs.docker
nixpkgs.jitsi-meet
#nixpkgs.handbrake
nixpkgs.ripgrep
nixpkgs.elan
nixpkgs.coreutils-prefixed
nixpkgs.shellcheck
nixpkgs.html-tidy
nixpkgs.hugo
#nixpkgs.agda
nixpkgs.pijul
nixpkgs.universal-ctags
nixpkgs.asciinema
nixpkgs.git-lfs
nixpkgs.imagemagick
nixpkgs.nixpkgs-fmt
nixpkgs.rnix-lsp
nixpkgs.grpc-tools
nixpkgs.element-desktop
];
programs.vscode = {
enable = true;
package = nixpkgs.vscodium;
extensions = import ./vscode-extensions.nix {pkgs = nixpkgs;};
userSettings = {
workbench.colorTheme = "Default High Contrast";
"files.Exclude" = {
"**/.git" = true;
"**/.DS_Store" = true;
"**/Thumbs.db" = true;
"**/*.olean" = true;
"**/result" = true;
};
"git.path" = "${nixpkgs.git}/bin/git";
"update.mode" = "none";
"docker.dockerPath" = "${nixpkgs.docker}/bin/docker";
"lean.leanpkgPath" = "/Users/${username}/.elan/toolchains/stable/bin/leanpkg";
"lean.executablePath" = "/Users/${username}/.elan/toolchains/stable/bin/lean";
#"lean.executablePath" = "/Users/${username}/.elan/toolchains/lean4/bin/lean";
"explorer.confirmDelete" = false;
"lean.memoryLimit" = 16384;
"latex-workshop.view.pdf.viewer" = "tab";
};
};
programs.zsh = {
shellAliases = {
cmake = "cmake -DCMAKE_MAKE_PROGRAM=${nixpkgs.gnumake}/bin/make -DCMAKE_AR=${nixpkgs.darwin.cctools}/bin/ar -DCMAKE_RANLIB=${nixpkgs.darwin.cctools}/bin/ranlib -DGMP_INCLUDE_DIR=${nixpkgs.gmp.dev}/include/ -DGMP_LIBRARIES=${nixpkgs.gmp}/lib/libgmp.10.dylib";
ar = "${nixpkgs.darwin.cctools}/bin/ar";
};
};
home.file.".ssh/config".source = ./ssh.config;
home.file.".ideavimrc".source = ./ideavimrc;
home.file.".config/youtube-dl/config".source = ./youtube-dl.conf;
home.file.".config/yt-dlp/config".source = ./youtube-dl.conf;
programs.emacs = {
enable = true;
package = nixpkgs.emacsNativeComp;
extraPackages = epkgs: [];
extraConfig = ''
(load-file (let ((coding-system-for-read 'utf-8))
(shell-command-to-string "agda-mode locate")))
'';
};
}

View File

@@ -28,7 +28,7 @@ in {
# Auto upgrade nix package and the daemon service.
services.nix-daemon.enable = true;
nix.package = pkgs.nixFlakes;
nix.package = pkgs.nixVersions.stable;
nix.gc.automatic = true;
# Sandbox causes failure: https://github.com/NixOS/nix/issues/4119

View File

@@ -25,27 +25,57 @@
home-manager,
...
} @ inputs: let
system = "aarch64-darwin";
in let
config = {
#contentAddressedByDefault = true;
};
in let
overlays = [emacs.overlay] ++ import ./overlays.nix;
in let
pkgs = import nixpkgs {inherit system config overlays;};
in {
darwinConfigurations = {
homeConfigurations = let
system = "x86_64-linux";
in let
pkgs = import nixpkgs {inherit system config overlays;};
in let
args = {
nixpkgs = pkgs;
username = "patrick";
dotnet = pkgs.dotnet-sdk_7;
};
in {
patrick = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
modules = [
(import ./home.nix args)
# home-manager.nixosModules.home-manager {
# home-manager.useGlobalPkgs = true;
# home-manager.useUserPackages = true;
# home-manager.users.patrick = pkgs.lib.mkMerge [(import ./server-home.nix args) (import ./home.nix args)];
# }
];
};
};
darwinConfigurations = let
system = "aarch64-darwin";
in let
pkgs = import nixpkgs {inherit system config overlays;};
in {
nixpkgs = pkgs;
patrick = darwin.lib.darwinSystem {
system = system;
modules = [
modules = let
args = {
nixpkgs = pkgs;
username = "patrick";
dotnet = pkgs.dotnet-sdk_7;
};
in [
./darwin-configuration.nix
home-manager.darwinModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.patrick = import ./home.nix {nixpkgs = pkgs;};
home-manager.users.patrick = pkgs.lib.mkMerge [(import ./daily-home.nix args) (import ./home.nix args)];
}
];
};

View File

@@ -1,7 +1,10 @@
{nixpkgs, ...}: let
{
nixpkgs,
username,
dotnet,
...
}: let
username = "patrick";
in let
dotnet = nixpkgs.dotnet-sdk_6;
in {
imports = [./rider];
@@ -28,65 +31,6 @@ in {
# changes in each release.
home.stateVersion = "22.05";
home.packages = [
# Broken on Apple Silicon
#nixpkgs.keepassxc
nixpkgs.rust-analyzer
nixpkgs.tmux
nixpkgs.wget
nixpkgs.youtube-dl
nixpkgs.yt-dlp
nixpkgs.cmake
nixpkgs.gnumake
nixpkgs.gcc
nixpkgs.gdb
nixpkgs.hledger
nixpkgs.hledger-web
dotnet
nixpkgs.docker
nixpkgs.jitsi-meet
#nixpkgs.handbrake
nixpkgs.ripgrep
nixpkgs.elan
nixpkgs.coreutils-prefixed
nixpkgs.shellcheck
nixpkgs.html-tidy
nixpkgs.hugo
#nixpkgs.agda
nixpkgs.pijul
nixpkgs.universal-ctags
nixpkgs.asciinema
nixpkgs.git-lfs
nixpkgs.imagemagick
nixpkgs.nixpkgs-fmt
nixpkgs.rnix-lsp
];
programs.vscode = {
enable = true;
package = nixpkgs.vscodium;
extensions = import ./vscode-extensions.nix {pkgs = nixpkgs;};
userSettings = {
workbench.colorTheme = "Default High Contrast";
"files.Exclude" = {
"**/.git" = true;
"**/.DS_Store" = true;
"**/Thumbs.db" = true;
"**/*.olean" = true;
"**/result" = true;
};
"git.path" = "${nixpkgs.git}/bin/git";
"update.mode" = "none";
"docker.dockerPath" = "${nixpkgs.docker}/bin/docker";
"lean.leanpkgPath" = "/Users/${username}/.elan/toolchains/stable/bin/leanpkg";
"lean.executablePath" = "/Users/${username}/.elan/toolchains/stable/bin/lean";
#"lean.executablePath" = "/Users/${username}/.elan/toolchains/lean4/bin/lean";
"explorer.confirmDelete" = false;
"lean.memoryLimit" = 16384;
"latex-workshop.view.pdf.viewer" = "tab";
};
};
programs.tmux = {
shell = "\${nixpkgs.zsh}/bin/zsh";
};
@@ -115,8 +59,6 @@ in {
vim = "nvim";
view = "vim -R";
nix-upgrade = "sudo -i sh -c 'nix-channel --update && nix-env -iA nixpkgs.nix && launchctl remove org.nixos.nix-daemon && launchctl load /Library/LaunchDaemons/org.nixos.nix-daemon.plist'";
cmake = "cmake -DCMAKE_MAKE_PROGRAM=${nixpkgs.gnumake}/bin/make -DCMAKE_AR=${nixpkgs.darwin.cctools}/bin/ar -DCMAKE_RANLIB=${nixpkgs.darwin.cctools}/bin/ranlib -DGMP_INCLUDE_DIR=${nixpkgs.gmp.dev}/include/ -DGMP_LIBRARIES=${nixpkgs.gmp}/lib/libgmp.10.dylib";
ar = "${nixpkgs.darwin.cctools}/bin/ar";
};
};
@@ -198,20 +140,4 @@ in {
programs.neovim.withPython3 = true;
programs.neovim.extraConfig = builtins.readFile ./init.vim;
home.file.".ssh/config".source = ./ssh.config;
home.file.".ideavimrc".source = ./ideavimrc;
home.file.".config/youtube-dl/config".source = ./youtube-dl.conf;
home.file.".config/yt-dlp/config".source = ./youtube-dl.conf;
programs.emacs = {
enable = true;
package = nixpkgs.emacsNativeComp;
extraPackages = epkgs: [];
extraConfig = ''
(load-file (let ((coding-system-for-read 'utf-8))
(shell-command-to-string "agda-mode locate")))
'';
};
}

2
server-home.nix Normal file
View File

@@ -0,0 +1,2 @@
{nixpkgs, ...}: {
}