mirror of
https://github.com/Smaug123/nix-dotfiles
synced 2025-10-06 06:58:41 +00:00
Add config for Earthworm (#19)
This commit is contained in:
115
daily-home.nix
115
daily-home.nix
@@ -1,115 +0,0 @@
|
|||||||
{
|
|
||||||
nixpkgs,
|
|
||||||
username,
|
|
||||||
dotnet,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = [./rider];
|
|
||||||
|
|
||||||
rider = {
|
|
||||||
enable = true;
|
|
||||||
username = username;
|
|
||||||
dotnet = dotnet;
|
|
||||||
};
|
|
||||||
|
|
||||||
home.packages = [
|
|
||||||
nixpkgs.keepassxc
|
|
||||||
# "Damaged and can't be opened"
|
|
||||||
#nixpkgs.bcompare
|
|
||||||
nixpkgs.rust-analyzer
|
|
||||||
nixpkgs.tmux
|
|
||||||
nixpkgs.wget
|
|
||||||
nixpkgs.youtube-dl
|
|
||||||
nixpkgs.yt-dlp
|
|
||||||
nixpkgs.cmake
|
|
||||||
nixpkgs.gnumake
|
|
||||||
nixpkgs.gcc
|
|
||||||
#nixpkgs.gdb
|
|
||||||
nixpkgs.lldb
|
|
||||||
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
|
|
||||||
nixpkgs.ihp-new
|
|
||||||
nixpkgs.direnv
|
|
||||||
nixpkgs.lnav
|
|
||||||
nixpkgs.age
|
|
||||||
nixpkgs.nodejs
|
|
||||||
nixpkgs.sqlitebrowser
|
|
||||||
nixpkgs.typst
|
|
||||||
nixpkgs.poetry
|
|
||||||
nixpkgs.woodpecker-agent
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.vscode = {
|
|
||||||
enable = true;
|
|
||||||
package = nixpkgs.vscode;
|
|
||||||
extensions = import ./vscode-extensions.nix {pkgs = nixpkgs;};
|
|
||||||
userSettings = {
|
|
||||||
workbench.colorTheme = "Default";
|
|
||||||
"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";
|
|
||||||
"explorer.confirmDelete" = false;
|
|
||||||
"lean.memoryLimit" = 16384;
|
|
||||||
"latex-workshop.view.pdf.viewer" = "tab";
|
|
||||||
"lean4.toolchainPath" = "/Users/${username}/.elan/toolchains/leanprover--lean4---nightly-2022-12-16";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
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";
|
|
||||||
grep = "${nixpkgs.ripgrep}/bin/rg";
|
|
||||||
};
|
|
||||||
sessionVariables = {
|
|
||||||
RIPGREP_CONFIG_PATH = "/Users/${username}/.config/ripgrep/config";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
home.file.".ssh/config".source = ./ssh.config;
|
|
||||||
home.file.".cargo/config.toml".source = ./cargo-config.toml;
|
|
||||||
|
|
||||||
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;
|
|
||||||
home.file.".config/ripgrep/config".source = ./ripgrep.conf;
|
|
||||||
programs.emacs = {
|
|
||||||
enable = true;
|
|
||||||
package = nixpkgs.emacs;
|
|
||||||
extraPackages = epkgs: [];
|
|
||||||
extraConfig = ''
|
|
||||||
(load-file (let ((coding-system-for-read 'utf-8))
|
|
||||||
(shell-command-to-string "agda-mode locate")))
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
114
flake.lock
generated
114
flake.lock
generated
@@ -1,5 +1,25 @@
|
|||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
|
"apple-silicon": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"rust-overlay": "rust-overlay"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1693064156,
|
||||||
|
"narHash": "sha256-EnZntHnlPqWZIoa593zDV4GSkfbLLAL6VAreMvM6JN4=",
|
||||||
|
"owner": "tpwrules",
|
||||||
|
"repo": "nixos-apple-silicon",
|
||||||
|
"rev": "bef25f9cdfd8513a42c175b88a1cb619e3ef5951",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tpwrules",
|
||||||
|
"repo": "nixos-apple-silicon",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"darwin": {
|
"darwin": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -30,11 +50,11 @@
|
|||||||
"nixpkgs-stable": "nixpkgs-stable"
|
"nixpkgs-stable": "nixpkgs-stable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1692762523,
|
"lastModified": 1693193430,
|
||||||
"narHash": "sha256-O+PXo3f2fwQSkip7Sup0BUi6v292/zMScs8Ebq/euJw=",
|
"narHash": "sha256-6qsW+c7CTlrOkY3PuZksNgNVrRSqUhlA/Uzq7Kb/3IY=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "emacs-overlay",
|
"repo": "emacs-overlay",
|
||||||
"rev": "c82b1bb82f4935d7b6d85d5ed8fe7cbade780c72",
|
"rev": "78ec4983ba820b37fc2e7c998ead39be6bec7f6d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -43,16 +63,31 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-compat": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1688025799,
|
||||||
|
"narHash": "sha256-ktpB4dRtnksm9F5WawoIkEneh1nrEvuxb5lJFt1iOyw=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "8bf105319d44f6b9f0d764efa4fdef9f1cc9ba1c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1689068808,
|
"lastModified": 1692799911,
|
||||||
"narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=",
|
"narHash": "sha256-3eihraek4qL744EvQXsK1Ha6C3CR7nnT8X2qWap4RNk=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4",
|
"rev": "f9e7cf818399d17d347f847525c5a5a8032e4e44",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -68,11 +103,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1692720545,
|
"lastModified": 1693187908,
|
||||||
"narHash": "sha256-DQDremUH7lRxiZEIVh6C6kQusuPe1vUKtiVl29nmP0E=",
|
"narHash": "sha256-cTcNpsqi1llmUFl9bmCdD0mTyfjhBrNFPhu2W12WXzA=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "8eb8c212e50e2fd95af5849585a2eb819add0a1e",
|
"rev": "8bde7a651b94ba30bd0baaa9c4a08aae88cc2e92",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -83,27 +118,27 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1692684269,
|
"lastModified": 1692913444,
|
||||||
"narHash": "sha256-zJk2pyF4Cuhtor0khtPlf+hfJIh22rzAUC+KU3Ob31Q=",
|
"narHash": "sha256-1SvMQm2DwofNxXVtNWWtIcTh7GctEVrS/Xel/mdc6iY=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "9d757ec498666cc1dcc6f2be26db4fd3e1e9ab37",
|
"rev": "18324978d632ffc55ef1d928e81630c620f4f447",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"ref": "nixpkgs-unstable",
|
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
|
"rev": "18324978d632ffc55ef1d928e81630c620f4f447",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1692698134,
|
"lastModified": 1693087214,
|
||||||
"narHash": "sha256-YtMmZWR/dlTypOcwiZfZTMPr3tj9fwr05QTStfSyDSg=",
|
"narHash": "sha256-Kn1SSqRfPpqcI1MDy82JXrPT1WI8c03TA2F0xu6kS+4=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "a16f7eb56e88c8985fcc6eb81dabd6cade4e425a",
|
"rev": "f155f0cf4ea43c4e3c8918d2d327d44777b6cad4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -115,11 +150,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-stable_2": {
|
"nixpkgs-stable_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1692492726,
|
"lastModified": 1693097136,
|
||||||
"narHash": "sha256-rld5qm2B4oRkDwcPD+yOSyTrZQdfCR6mzJGGkecjvTs=",
|
"narHash": "sha256-fBZSMdBaoZ0INFbyZ5s0DOF7zDNcLsLxgkwdDh3l9Pc=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "5e63e8bbc46bc4fc22254da1edaf42fc7549c18a",
|
"rev": "9117c4e9dc117a6cd0319cca40f2349ed333669d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -129,15 +164,48 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1693145325,
|
||||||
|
"narHash": "sha256-Gat9xskErH1zOcLjYMhSDBo0JTBZKfGS0xJlIRnj6Rc=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "cddebdb60de376c1bdb7a4e6ee3d98355453fe56",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"apple-silicon": "apple-silicon",
|
||||||
"darwin": "darwin",
|
"darwin": "darwin",
|
||||||
"emacs": "emacs",
|
"emacs": "emacs",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs_2",
|
||||||
"sops-nix": "sops-nix"
|
"sops-nix": "sops-nix"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"rust-overlay": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1686795910,
|
||||||
|
"narHash": "sha256-jDa40qRZ0GRQtP9EMZdf+uCbvzuLnJglTUI2JoHfWDc=",
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"rev": "5c2b97c0a9bc5217fc3dfb1555aae0fb756d99f9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"sops-nix": {
|
"sops-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -146,11 +214,11 @@
|
|||||||
"nixpkgs-stable": "nixpkgs-stable_2"
|
"nixpkgs-stable": "nixpkgs-stable_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1692728678,
|
"lastModified": 1693105804,
|
||||||
"narHash": "sha256-02MjG7Sb9k7eOi86CcC4GNWVOjT6gjmXFSqkRjZ8Xyk=",
|
"narHash": "sha256-nlqNjW7dfucUJQqRGuG08MKPOSME8fLOCx/bd9hiEPs=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "1b7b3a32d65dbcd69c217d7735fdf0a6b2184f45",
|
"rev": "0618c8f0ed5255ad74ee08d1618841ff5af85c86",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
66
flake.nix
66
flake.nix
@@ -20,6 +20,9 @@
|
|||||||
url = "github:Mic92/sops-nix";
|
url = "github:Mic92/sops-nix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
apple-silicon = {
|
||||||
|
url = "github:tpwrules/nixos-apple-silicon";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {
|
outputs = {
|
||||||
@@ -29,6 +32,7 @@
|
|||||||
nixpkgs,
|
nixpkgs,
|
||||||
home-manager,
|
home-manager,
|
||||||
sops-nix,
|
sops-nix,
|
||||||
|
apple-silicon,
|
||||||
...
|
...
|
||||||
} @ inputs: let
|
} @ inputs: let
|
||||||
config = {
|
config = {
|
||||||
@@ -37,30 +41,44 @@
|
|||||||
};
|
};
|
||||||
in let
|
in let
|
||||||
overlays = [emacs.overlay] ++ import ./overlays.nix;
|
overlays = [emacs.overlay] ++ import ./overlays.nix;
|
||||||
|
recursiveMerge = attrList: let
|
||||||
|
f = attrPath:
|
||||||
|
builtins.zipAttrsWith (n: values:
|
||||||
|
if builtins.tail values == []
|
||||||
|
then builtins.head values
|
||||||
|
else if builtins.all builtins.isList values
|
||||||
|
then nixpkgs.lib.unique (builtins.concatLists values)
|
||||||
|
else if builtins.all builtins.isAttrs values
|
||||||
|
then f (attrPath ++ [n]) values
|
||||||
|
else builtins.last values);
|
||||||
|
in
|
||||||
|
f [] attrList;
|
||||||
in {
|
in {
|
||||||
homeConfigurations = let
|
nixosConfigurations = {
|
||||||
system = "x86_64-linux";
|
earthworm = let
|
||||||
in let
|
system = "aarch64-linux";
|
||||||
pkgs = import nixpkgs {inherit system config overlays;};
|
in let
|
||||||
in let
|
pkgs = import nixpkgs {inherit system config overlays;};
|
||||||
args = {
|
in
|
||||||
nixpkgs = pkgs;
|
nixpkgs.lib.nixosSystem {
|
||||||
username = "patrick";
|
inherit system;
|
||||||
dotnet = pkgs.dotnet-sdk_7;
|
modules = let
|
||||||
};
|
args = {
|
||||||
in {
|
nixpkgs = pkgs;
|
||||||
patrick = home-manager.lib.homeManagerConfiguration {
|
username = "patrick";
|
||||||
inherit pkgs;
|
dotnet = pkgs.dotnet-sdk_7;
|
||||||
|
};
|
||||||
modules = [
|
in [
|
||||||
(import ./home.nix args)
|
./home-manager/earthworm-config.nix
|
||||||
# home-manager.nixosModules.home-manager {
|
apple-silicon.nixosModules.default
|
||||||
# home-manager.useGlobalPkgs = true;
|
home-manager.nixosModules.home-manager
|
||||||
# home-manager.useUserPackages = true;
|
{
|
||||||
# home-manager.users.patrick = pkgs.lib.mkMerge [(import ./server-home.nix args) (import ./home.nix args)];
|
home-manager.useGlobalPkgs = true;
|
||||||
# }
|
home-manager.useUserPackages = true;
|
||||||
];
|
home-manager.users.patrick = recursiveMerge [(import ./home-manager/earthworm.nix args) (import ./home-manager/home.nix args)];
|
||||||
};
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
darwinConfigurations = let
|
darwinConfigurations = let
|
||||||
system = "aarch64-darwin";
|
system = "aarch64-darwin";
|
||||||
@@ -83,7 +101,7 @@
|
|||||||
{
|
{
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.users.patrick = pkgs.lib.mkMerge [(import ./daily-home.nix args) (import ./home.nix args)];
|
home-manager.users.patrick = recursiveMerge [(import ./home-manager/darwin.nix args) (import ./home-manager/home.nix args)];
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
41
hardware/earthworm.nix
Normal file
41
hardware/earthworm.nix
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
|
# and may be overwritten by future invocations. Please make changes
|
||||||
|
# to /etc/nixos/configuration.nix instead.
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
modulesPath,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = ["usb_storage" "sdhci_pci"];
|
||||||
|
boot.initrd.kernelModules = [];
|
||||||
|
boot.kernelModules = [];
|
||||||
|
boot.extraModulePackages = [];
|
||||||
|
|
||||||
|
fileSystems."/" = {
|
||||||
|
device = "/dev/disk/by-uuid/49068d2d-13e6-43b5-a740-f23db6fbd6b2";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" = {
|
||||||
|
device = "/dev/disk/by-uuid/43ED-0FE7";
|
||||||
|
fsType = "vfat";
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [];
|
||||||
|
|
||||||
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
# still possible to use this option, but it's recommended to use it in conjunction
|
||||||
|
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||||
|
networking.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.wlan0.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux";
|
||||||
|
powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand";
|
||||||
|
}
|
40
home-manager/darwin.nix
Normal file
40
home-manager/darwin.nix
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
{
|
||||||
|
nixpkgs,
|
||||||
|
username,
|
||||||
|
dotnet,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [./rider];
|
||||||
|
|
||||||
|
rider = {
|
||||||
|
enable = true;
|
||||||
|
username = username;
|
||||||
|
dotnet = dotnet;
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = [
|
||||||
|
# "Damaged and can't be opened"
|
||||||
|
#nixpkgs.bcompare
|
||||||
|
#nixpkgs.gdb
|
||||||
|
#nixpkgs.handbrake
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.vscode = {
|
||||||
|
userSettings = {
|
||||||
|
"lean.leanpkgPath" = "/Users/${username}/.elan/toolchains/stable/bin/leanpkg";
|
||||||
|
"lean.executablePath" = "/Users/${username}/.elan/toolchains/stable/bin/lean";
|
||||||
|
"lean.memoryLimit" = 16384;
|
||||||
|
"latex-workshop.view.pdf.viewer" = "tab";
|
||||||
|
"lean4.toolchainPath" = "/Users/${username}/.elan/toolchains/leanprover--lean4---nightly-2022-12-16";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
56
home-manager/earthworm-config.nix
Normal file
56
home-manager/earthworm-config.nix
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
|
../hardware/earthworm.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
hardware.asahi.peripheralFirmwareDirectory = ../firmware;
|
||||||
|
|
||||||
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
boot.loader.efi.canTouchEfiVariables = false;
|
||||||
|
boot.extraModprobeConfig = ''
|
||||||
|
options hid_apple iso_layout=0
|
||||||
|
'';
|
||||||
|
|
||||||
|
networking = {
|
||||||
|
hostName = "earthworm";
|
||||||
|
networkmanager.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
time.timeZone = "Europe/London";
|
||||||
|
|
||||||
|
programs.sway.enable = true;
|
||||||
|
programs.zsh.enable = true;
|
||||||
|
|
||||||
|
# TODO: work out secrets management for password, then set mutableUsers to false
|
||||||
|
users.mutableUsers = true;
|
||||||
|
users.users.patrick = {
|
||||||
|
isNormalUser = true;
|
||||||
|
extraGroups = ["wheel" "networkManager"];
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = [
|
||||||
|
pkgs.vim
|
||||||
|
pkgs.wget
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.loginShellInit = ''
|
||||||
|
[[ "$(tty)" == /dev/tty1 ]] && sway
|
||||||
|
'';
|
||||||
|
|
||||||
|
services.openssh.enable = true;
|
||||||
|
|
||||||
|
system.stateVersion = "23.11";
|
||||||
|
nix.settings.experimental-features = ["nix-command" "flakes" "ca-derivations"];
|
||||||
|
|
||||||
|
nix.gc.automatic = true;
|
||||||
|
nix.extraOptions = ''
|
||||||
|
auto-optimise-store = true
|
||||||
|
max-jobs = auto
|
||||||
|
keep-outputs = true
|
||||||
|
keep-derivations = true
|
||||||
|
'';
|
||||||
|
}
|
29
home-manager/earthworm.nix
Normal file
29
home-manager/earthworm.nix
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
nixpkgs,
|
||||||
|
username,
|
||||||
|
dotnet,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
home.packages = [nixpkgs.firefox-wayland];
|
||||||
|
nixpkgs.config.firefox.speechSynthesisSupport = true;
|
||||||
|
|
||||||
|
wayland.windowManager.sway = {
|
||||||
|
enable = true;
|
||||||
|
config = {
|
||||||
|
focus = {followMouse = false;};
|
||||||
|
modifier = "Mod4";
|
||||||
|
terminal = "alacritty";
|
||||||
|
window = {border = 5;};
|
||||||
|
};
|
||||||
|
extraConfig = ''
|
||||||
|
output Unknown-1 scale 2
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
services.swayidle = {enable = true;};
|
||||||
|
services.cbatticon = {
|
||||||
|
lowLevelPercent = 20;
|
||||||
|
iconType = "standard";
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
}
|
@@ -3,17 +3,7 @@
|
|||||||
username,
|
username,
|
||||||
dotnet,
|
dotnet,
|
||||||
...
|
...
|
||||||
}: let
|
}: {
|
||||||
username = "patrick";
|
|
||||||
in {
|
|
||||||
imports = [./rider];
|
|
||||||
|
|
||||||
rider = {
|
|
||||||
enable = true;
|
|
||||||
username = username;
|
|
||||||
dotnet = dotnet;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Let Home Manager install and manage itself.
|
# Let Home Manager install and manage itself.
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
|
|
||||||
@@ -33,6 +23,9 @@ in {
|
|||||||
|
|
||||||
programs.tmux = {
|
programs.tmux = {
|
||||||
shell = "\${nixpkgs.zsh}/bin/zsh";
|
shell = "\${nixpkgs.zsh}/bin/zsh";
|
||||||
|
escapeTime = 50;
|
||||||
|
mouse = false;
|
||||||
|
prefix = "C-b";
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.zsh = {
|
programs.zsh = {
|
||||||
@@ -58,7 +51,10 @@ in {
|
|||||||
shellAliases = {
|
shellAliases = {
|
||||||
vim = "nvim";
|
vim = "nvim";
|
||||||
view = "vim -R";
|
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'";
|
grep = "${nixpkgs.ripgrep}/bin/rg";
|
||||||
|
};
|
||||||
|
sessionVariables = {
|
||||||
|
RIPGREP_CONFIG_PATH = "/Users/${username}/.config/ripgrep/config";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -111,6 +107,28 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
programs.vscode = {
|
||||||
|
enable = true;
|
||||||
|
enableExtensionUpdateCheck = true;
|
||||||
|
enableUpdateCheck = true;
|
||||||
|
package = nixpkgs.vscode;
|
||||||
|
extensions = import ./vscode-extensions.nix {pkgs = nixpkgs;};
|
||||||
|
userSettings = {
|
||||||
|
workbench.colorTheme = "Default";
|
||||||
|
"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";
|
||||||
|
"explorer.confirmDelete" = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
programs.neovim.enable = true;
|
programs.neovim.enable = true;
|
||||||
programs.neovim.plugins = with nixpkgs.vimPlugins; [
|
programs.neovim.plugins = with nixpkgs.vimPlugins; [
|
||||||
molokai
|
molokai
|
||||||
@@ -141,4 +159,62 @@ in {
|
|||||||
programs.neovim.withPython3 = true;
|
programs.neovim.withPython3 = true;
|
||||||
|
|
||||||
programs.neovim.extraConfig = builtins.readFile ./init.vim;
|
programs.neovim.extraConfig = builtins.readFile ./init.vim;
|
||||||
|
|
||||||
|
home.packages = [
|
||||||
|
nixpkgs.keepassxc
|
||||||
|
nixpkgs.rust-analyzer
|
||||||
|
nixpkgs.tmux
|
||||||
|
nixpkgs.wget
|
||||||
|
nixpkgs.yt-dlp
|
||||||
|
nixpkgs.cmake
|
||||||
|
nixpkgs.gnumake
|
||||||
|
nixpkgs.gcc
|
||||||
|
nixpkgs.lldb
|
||||||
|
nixpkgs.hledger
|
||||||
|
nixpkgs.hledger-web
|
||||||
|
dotnet
|
||||||
|
nixpkgs.docker
|
||||||
|
nixpkgs.jitsi-meet
|
||||||
|
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
|
||||||
|
nixpkgs.ihp-new
|
||||||
|
nixpkgs.direnv
|
||||||
|
nixpkgs.lnav
|
||||||
|
nixpkgs.age
|
||||||
|
nixpkgs.nodejs
|
||||||
|
nixpkgs.sqlitebrowser
|
||||||
|
nixpkgs.typst
|
||||||
|
nixpkgs.poetry
|
||||||
|
nixpkgs.woodpecker-agent
|
||||||
|
nixpkgs.alacritty
|
||||||
|
];
|
||||||
|
|
||||||
|
home.file.".ideavimrc".source = ./ideavimrc;
|
||||||
|
home.file.".config/yt-dlp/config".source = ./youtube-dl.conf;
|
||||||
|
home.file.".config/ripgrep/config".source = ./ripgrep.conf;
|
||||||
|
programs.emacs = {
|
||||||
|
enable = true;
|
||||||
|
package = nixpkgs.emacs;
|
||||||
|
extraPackages = epkgs: [];
|
||||||
|
extraConfig = ''
|
||||||
|
(load-file (let ((coding-system-for-read 'utf-8))
|
||||||
|
(shell-command-to-string "agda-mode locate")))
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
home.file.".cargo/config.toml".source = ./cargo-config.toml;
|
||||||
}
|
}
|
Reference in New Issue
Block a user