diff --git a/configuration.nix b/configuration.nix index 9a69eaa..47137fa 100644 --- a/configuration.nix +++ b/configuration.nix @@ -1,15 +1,10 @@ -# Edit this configuration file to define what should be installed on -# your system. Help is available in the configuration.nix(5) man page -# and in the NixOS manual (accessible by running ‘nixos-help’). - -build-conf: { config, pkgs, ... }: let conf = build-conf; in { nix = { - package = pkgs.nixFlakes; + package = pkgs.nixVersions.stable; optimise.automatic = true; extraOptions = '' experimental-features = nix-command flakes diff --git a/darwin.nix b/darwin.nix new file mode 100644 index 0000000..229a61a --- /dev/null +++ b/darwin.nix @@ -0,0 +1,40 @@ +{ pkgs, inputs, ... }: +{ + system.stateVersion = 4; + nixpkgs.hostPlatform = "aarch64-darwin"; + nixpkgs.config.allowUnfree = true; + services.nix-daemon.enable = true; + + users.users.clark = { + name = "clark"; + home = "/Users/clark"; + }; + + home-manager.useUserPackages = true; + home-manager.useGlobalPkgs = true; + + nix = { + package = pkgs.nixVersions.stable; + optimise.automatic = true; + extraOptions = '' + experimental-features = nix-command flakes + ''; + settings = { + substituters = [ + "https://nix-community.cachix.org" + "https://lean4.cachix.org" + ]; + trusted-public-keys = [ + "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" + "lean4.cachix.org-1:mawtxSxcaiWE24xCXXgh3qnvlTkyU7evRRnGeAhD4Wk=" + ]; + }; + }; + + environment.variables.EDITOR = "nvim"; + environment.variables.SHELL = "fish"; + environment.variables.TERM = "kitty"; + # BAD IDEA! I DON'T HAVE A CONCRETE REASON, MAINLY JUST VIBES + # STILL MILES BETTER THAN NIX_AUTO_INSTALL THOUGH + environment.variables.NIX_AUTO_RUN = "1"; +} diff --git a/fish.conf.nix b/fish.conf.nix index edbeb5a..c6f6b75 100644 --- a/fish.conf.nix +++ b/fish.conf.nix @@ -132,7 +132,7 @@ alias zbt "zig build test" # nix alias nrb "sudo nixos-rebuild" #### END ALIASES #### -export PATH="$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$HOME/.local/bin:$HOME/.emacs.d/bin:$PATH:$HOME/.ghcup/bin:$HOME/.cabal/bin:$HOME/hs/bin:$HOME/.cargo/bin:$HOME/.deno/bin:$HOME/Aims/curlfire" +export PATH="/etc/profiles/per-user/clark/bin:/run/current-system/sw/bin:$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$HOME/.local/bin:$HOME/.emacs.d/bin:$PATH:$HOME/.ghcup/bin:$HOME/.cabal/bin:$HOME/hs/bin:$HOME/.cargo/bin:$HOME/.deno/bin:$HOME/Aims/curlfire:$HOME/.npm-global/bin" # [ -f ~/.fzf.bash ] && source ~/.fzf.bash # setopt autocd diff --git a/flake.lock b/flake.lock index 59d4ac4..f06b7b2 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,38 @@ { "nodes": { + "aquamarine": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1731774881, + "narHash": "sha256-1Dxryiw8u2ejntxrrv3sMtIE8WHKxmlN4KeH+uMGbmc=", + "owner": "hyprwm", + "repo": "aquamarine", + "rev": "b31a6a4da8199ae3489057db7d36069a70749a56", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "aquamarine", + "type": "github" + } + }, "fenix": { "inputs": { "nixpkgs": [ @@ -9,31 +42,31 @@ "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "narHash": "sha256-0dZpggYjjmWEk+rGixiBHOHuQfLzEzNfrtjSig04s6Q=", - "rev": "9ccae1754eec0341b640d5705302ac0923d22875", - "revCount": 1618, + "lastModified": 1727764514, + "narHash": "sha256-tvN9v5gTxLI5zOKsNvYl1aUxIitHm8Nj3vKdXNfJo50=", + "rev": "a9d2e5fa8d77af05240230c9569bbbddd28ccfaf", + "revCount": 2029, "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/nix-community/fenix/0.1.1618%2Brev-9ccae1754eec0341b640d5705302ac0923d22875/018aea4c-03c9-7734-95d5-b84cc8881e3d/source.tar.gz" + "url": "https://api.flakehub.com/f/pinned/nix-community/fenix/0.1.2029%2Brev-a9d2e5fa8d77af05240230c9569bbbddd28ccfaf/01924729-44b5-7df4-a70d-d5e64656e243/source.tar.gz" }, "original": { "type": "tarball", - "url": "https://flakehub.com/f/nix-community/fenix/0.1.1565.tar.gz" + "url": "https://flakehub.com/f/nix-community/fenix/0.1.1584.tar.gz" } }, "fh": { "inputs": { "fenix": "fenix", - "flake-compat": "flake-compat", "naersk": "naersk", "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1718572120, - "narHash": "sha256-zmnW3n1Adg47MaoBTIXDDcgFy4HCxcgNuc8LrmPK4F0=", - "rev": "5b7e079a747f22ee1d2450c0c972d466308a928a", - "revCount": 455, + "lastModified": 1730931274, + "narHash": "sha256-QFlNSjrXU4vdiAYylS4UmDmaOcqcz9ujo0mkj4LStAo=", + "rev": "46c28563e3025b7d9fe3598c9ff07c700cce07ff", + "revCount": 642, "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/DeterminateSystems/fh/0.1.12/019022e3-a731-7729-af25-f7717f950ec4/source.tar.gz" + "url": "https://api.flakehub.com/f/pinned/DeterminateSystems/fh/0.1.19/0193038e-7bda-7db1-954f-cbb2e2963d0f/source.tar.gz" }, "original": { "type": "tarball", @@ -41,16 +74,19 @@ } }, "flake-compat": { + "flake": false, "locked": { + "lastModified": 1696426674, "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", - "revCount": 57, - "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz" + "type": "github" }, "original": { - "type": "tarball", - "url": "https://flakehub.com/f/edolstra/flake-compat/1.0.1.tar.gz" + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" } }, "flake-schemas": { @@ -70,6 +106,24 @@ "inputs": { "systems": "systems" }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "inputs": { + "systems": "systems_3" + }, "locked": { "lastModified": 1710146030, "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", @@ -84,6 +138,28 @@ "type": "github" } }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "hyprland", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -91,11 +167,11 @@ ] }, "locked": { - "lastModified": 1719037157, - "narHash": "sha256-aOKd8+mhBsLQChCu1mn/W5ww79ta5cXVE59aJFrifM8=", + "lastModified": 1731968878, + "narHash": "sha256-+hTCwETOE9N8voTAaF+IzdUZz28Ws3LDpH90FWADrEE=", "owner": "nix-community", "repo": "home-manager", - "rev": "cd886711998fe5d9ff7979fdd4b4cbd17b1f1511", + "rev": "a42fa14b53ceab66274a21da480c9f8e06204173", "type": "github" }, "original": { @@ -120,11 +196,11 @@ ] }, "locked": { - "lastModified": 1718450675, - "narHash": "sha256-jpsns6buS4bK+1sF8sL8AaixAiCRjA+nldTKvcwmvUs=", + "lastModified": 1728669738, + "narHash": "sha256-EDNAU9AYcx8OupUzbTbWE1d3HYdeG0wO6Msg3iL1muk=", "owner": "hyprwm", "repo": "hyprcursor", - "rev": "66d5b46ff94efbfa6fa3d1d1b66735f1779c34a6", + "rev": "0264e698149fcb857a66a53018157b41f8d97bb0", "type": "github" }, "original": { @@ -135,20 +211,23 @@ }, "hyprland": { "inputs": { + "aquamarine": "aquamarine", "hyprcursor": "hyprcursor", + "hyprland-protocols": "hyprland-protocols", "hyprlang": "hyprlang", "hyprutils": "hyprutils", "hyprwayland-scanner": "hyprwayland-scanner", "nixpkgs": "nixpkgs_2", + "pre-commit-hooks": "pre-commit-hooks", "systems": "systems_2", "xdph": "xdph" }, "locked": { - "lastModified": 1719093162, - "narHash": "sha256-WA48JNc8e3Irz0gpSE/vby67RlC+m+MJlQ6sZQId1EI=", + "lastModified": 1731978971, + "narHash": "sha256-iwELdS0z0Yr8e3zRIBw07ug451T0rkEfGo3+vA5/Gg0=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "7f09646ab8b5b6d9f835681d0af5d7a0dc29d8f1", + "rev": "67cee430061626ccd73dc6d30eed9db289053608", "type": "github" }, "original": { @@ -161,21 +240,19 @@ "inputs": { "nixpkgs": [ "hyprland", - "xdph", "nixpkgs" ], "systems": [ "hyprland", - "xdph", "systems" ] }, "locked": { - "lastModified": 1714869498, - "narHash": "sha256-vbLVOWvQqo4n1yvkg/Q70VTlPbMmTiCQfNTgcWDCfJM=", + "lastModified": 1728345020, + "narHash": "sha256-xGbkc7U/Roe0/Cv3iKlzijIaFBNguasI31ynL2IlEoM=", "owner": "hyprwm", "repo": "hyprland-protocols", - "rev": "e06482e0e611130cd1929f75e8c1cf679e57d161", + "rev": "a7c183800e74f337753de186522b9017a07a8cee", "type": "github" }, "original": { @@ -200,11 +277,11 @@ ] }, "locked": { - "lastModified": 1717881852, - "narHash": "sha256-XeeVoKHQgfKuXoP6q90sUqKyl7EYy3ol2dVZGM+Jj94=", + "lastModified": 1728168612, + "narHash": "sha256-AnB1KfiXINmuiW7BALYrKqcjCnsLZPifhb/7BsfPbns=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "ec6938c66253429192274d612912649a0cfe4d28", + "rev": "f054f2e44d6a0b74607a6bc0f52dba337a3db38e", "type": "github" }, "original": { @@ -225,11 +302,11 @@ ] }, "locked": { - "lastModified": 1718804078, - "narHash": "sha256-CqRZne63BpYlPd/i8lXV0UInUt59oKogiwdVtBRHt60=", + "lastModified": 1731702627, + "narHash": "sha256-+JeO9gevnXannQxMfR5xzZtF4sYmSlWkX/BPmPx0mWk=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "4f1351295c55a8f51219b25aa4a6497a067989d0", + "rev": "e911361a687753bbbdfe3b6a9eab755ecaf1d9e1", "type": "github" }, "original": { @@ -250,11 +327,11 @@ ] }, "locked": { - "lastModified": 1718119275, - "narHash": "sha256-nqDYXATNkyGXVmNMkT19fT4sjtSPBDS1LLOxa3Fueo4=", + "lastModified": 1726874836, + "narHash": "sha256-VKR0sf0PSNCB0wPHVKSAn41mCNVCnegWmgkrneKDhHM=", "owner": "hyprwm", "repo": "hyprwayland-scanner", - "rev": "1419520d5f7f38d35e05504da5c1b38212a38525", + "rev": "500c81a9e1a76760371049a8d99e008ea77aa59e", "type": "github" }, "original": { @@ -263,6 +340,29 @@ "type": "github" } }, + "leanpkgs": { + "inputs": { + "flake-utils": "flake-utils_2", + "nixpkgs": [ + "nixpkgs" + ], + "nixpkgs-cadical": "nixpkgs-cadical", + "nixpkgs-old": "nixpkgs-old" + }, + "locked": { + "lastModified": 1731981752, + "narHash": "sha256-EjshM4rodYInqktJbyjAIxZ9p7SvXvLpBK6MVyGg0sE=", + "owner": "leanprover", + "repo": "lean4", + "rev": "7ccdfc30ffab9ad2059d89aa03627fd549e4e7f4", + "type": "github" + }, + "original": { + "owner": "leanprover", + "repo": "lean4", + "type": "github" + } + }, "naersk": { "inputs": { "nixpkgs": [ @@ -271,25 +371,45 @@ ] }, "locked": { - "lastModified": 1713520724, - "narHash": "sha256-CO8MmVDmqZX2FovL75pu5BvwhW+Vugc7Q6ze7Hj8heI=", - "rev": "c5037590290c6c7dae2e42e7da1e247e54ed2d49", - "revCount": 335, + "lastModified": 1721727458, + "narHash": "sha256-r/xppY958gmZ4oTfLiHN0ZGuQ+RSTijDblVgVLFi1mw=", + "rev": "3fb418eaf352498f6b6c30592e3beb63df42ef11", + "revCount": 345, "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/nix-community/naersk/0.1.335%2Brev-c5037590290c6c7dae2e42e7da1e247e54ed2d49/018ef76d-0fd8-71be-8bed-58aa46d5dc3a/source.tar.gz" + "url": "https://api.flakehub.com/f/pinned/nix-community/naersk/0.1.345%2Brev-3fb418eaf352498f6b6c30592e3beb63df42ef11/0190def5-5fc0-7c65-9b14-61402f53cd47/source.tar.gz" }, "original": { "type": "tarball", - "url": "https://flakehub.com/f/nix-community/naersk/0.1.335.tar.gz" + "url": "https://flakehub.com/f/nix-community/naersk/0.1.345.tar.gz" + } + }, + "nix-darwin": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1731885500, + "narHash": "sha256-ZrztYfSOS33J+ewq5alBOSdnIyZ0/sr1iy7FyBe9zIg=", + "owner": "LnL7", + "repo": "nix-darwin", + "rev": "c60b5c924c6188a0b3ca2e139ead3d0f92ae5db5", + "type": "github" + }, + "original": { + "owner": "LnL7", + "repo": "nix-darwin", + "type": "github" } }, "nixlib": { "locked": { - "lastModified": 1712450863, - "narHash": "sha256-K6IkdtMtq9xktmYPj0uaYc8NsIqHuaAoRBaMgu9Fvrw=", + "lastModified": 1731805462, + "narHash": "sha256-yhEMW4MBi+IAyEJyiKbnFvY1uARyMKJpLUhkczI49wk=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "3c62b6a12571c9a7f65ab037173ee153d539905f", + "rev": "b9f04e3cf71c23bea21d2768051e6b3068d44734", "type": "github" }, "original": { @@ -306,11 +426,11 @@ ] }, "locked": { - "lastModified": 1718025593, - "narHash": "sha256-WZ1gdKq/9u1Ns/oXuNsDm+W0salonVA0VY1amw8urJ4=", + "lastModified": 1731892054, + "narHash": "sha256-BJtD9NGUWaBe4OZ1JO77w8qBP9yHDJJUjsxkG/milFc=", "owner": "nix-community", "repo": "nixos-generators", - "rev": "35c20ba421dfa5059e20e0ef2343c875372bdcf3", + "rev": "15a87ccb45e06d24a9fd5f99a49782efe11b23f0", "type": "github" }, "original": { @@ -321,24 +441,74 @@ }, "nixpkgs": { "locked": { - "narHash": "sha256-9NJcFF9CEYPvHJ5ckE8kvINvI84SZZ87PvqMbH6pro0=", - "rev": "5e4c2ada4fcd54b99d56d7bd62f384511a7e2593", - "revCount": 534806, + "lastModified": 1729665710, + "narHash": "sha256-AlcmCXJZPIlO5dmFzV3V2XF6x/OpNWUV8Y/FMPGd8Z4=", + "rev": "2768c7d042a37de65bb1b5b3268fc987e534c49d", + "revCount": 696158, "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.534806%2Brev-5e4c2ada4fcd54b99d56d7bd62f384511a7e2593/018b29e9-ae6d-72f2-993b-19cb9a64a3b5/source.tar.gz" + "url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.696158%2Brev-2768c7d042a37de65bb1b5b3268fc987e534c49d/0192bd28-d6c0-735c-ab86-8ab9d12f7d62/source.tar.gz" }, "original": { "type": "tarball", - "url": "https://flakehub.com/f/NixOS/nixpkgs/0.1.514192.tar.gz" + "url": "https://flakehub.com/f/NixOS/nixpkgs/0.1.650378.tar.gz" + } + }, + "nixpkgs-cadical": { + "locked": { + "lastModified": 1722221733, + "narHash": "sha256-sga9SrrPb+pQJxG1ttJfMPheZvDOxApFfwXCFO0H9xw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "12bf09802d77264e441f48e25459c10c93eada2e", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "12bf09802d77264e441f48e25459c10c93eada2e", + "type": "github" + } + }, + "nixpkgs-old": { + "flake": false, + "locked": { + "lastModified": 1581379743, + "narHash": "sha256-i1XCn9rKuLjvCdu2UeXKzGLF6IuQePQKFt4hEKRU5oc=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "34c7eb7545d155cc5b6f499b23a7cb1c96ab4d59", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-19.03", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1730741070, + "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "d063c1dd113c91ab27959ba540c0d9753409edf3", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.05", + "repo": "nixpkgs", + "type": "github" } }, "nixpkgs_2": { "locked": { - "lastModified": 1718530797, - "narHash": "sha256-pup6cYwtgvzDpvpSCFh1TEUjw2zkNpk8iolbKnyFmmU=", + "lastModified": 1731676054, + "narHash": "sha256-OZiZ3m8SCMfh3B6bfGC/Bm4x3qc1m2SVEAlkV6iY7Yg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b60ebf54c15553b393d144357375ea956f89e9a9", + "rev": "5e4fbfb6b3de1aa2872b76d49fafc942626e2add", "type": "github" }, "original": { @@ -350,11 +520,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1718983919, - "narHash": "sha256-+1xgeIow4gJeiwo4ETvMRvWoircnvb0JOt7NS9kUhoM=", + "lastModified": 1731890469, + "narHash": "sha256-D1FNZ70NmQEwNxpSSdTXCSklBH1z2isPR84J6DQrJGs=", "owner": "nixos", "repo": "nixpkgs", - "rev": "90338afd6177fc683a04d934199d693708c85a3b", + "rev": "5083ec887760adfe12af64830a66807423a859a7", "type": "github" }, "original": { @@ -385,12 +555,38 @@ "url": "https://g.pyrope.net/pesterchum" } }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": "flake-compat", + "gitignore": "gitignore", + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable" + }, + "locked": { + "lastModified": 1731363552, + "narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, "root": { "inputs": { "fh": "fh", "flake-utils": "flake-utils", "home-manager": "home-manager", "hyprland": "hyprland", + "leanpkgs": "leanpkgs", + "nix-darwin": "nix-darwin", "nixos-generators": "nixos-generators", "nixpkgs": "nixpkgs_3", "pesterchum": "pesterchum" @@ -399,11 +595,11 @@ "rust-analyzer-src": { "flake": false, "locked": { - "lastModified": 1696050837, - "narHash": "sha256-2K3Aq4gjPZBDnkAMJaMA4ElE+BNbmrqtSBWtt9kPGaM=", + "lastModified": 1727706011, + "narHash": "sha256-xxgUHwwJ+1xQQoUWvLDo807IZ0MDldkfr9N1G4fvNJU=", "owner": "rust-lang", "repo": "rust-analyzer", - "rev": "0840038f02daec6ba3238f05d8caa037d28701a0", + "rev": "28830ff2f1158ee92f4852ef3ec35af0935d1562", "type": "github" }, "original": { @@ -443,13 +639,39 @@ "type": "github" } }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "xdph": { "inputs": { - "hyprland-protocols": "hyprland-protocols", + "hyprland-protocols": [ + "hyprland", + "hyprland-protocols" + ], "hyprlang": [ "hyprland", "hyprlang" ], + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], "nixpkgs": [ "hyprland", "nixpkgs" @@ -460,11 +682,11 @@ ] }, "locked": { - "lastModified": 1718619174, - "narHash": "sha256-FWW68AVYmB91ZDQnhLMBNCUUTCjb1ZpO2k2KIytHtkA=", + "lastModified": 1731703417, + "narHash": "sha256-rheDc/7C+yI+QspYr9J2z9kQ5P9F4ATapI7qyFAe1XA=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "c7894aa54f9a7dbd16df5cd24d420c8af22d5623", + "rev": "8070f36deec723de71e7557441acb17e478204d3", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 9df056e..8e0c0e3 100644 --- a/flake.nix +++ b/flake.nix @@ -22,6 +22,9 @@ # for l8r :::;) #homeage.url = "github:jordanisaacs/homeage"; #homeage.inputs.nixpkgs.follows = "nixpkgs"; + + nix-darwin.url = "github:LnL7/nix-darwin"; + nix-darwin.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = inputs@{ @@ -60,8 +63,7 @@ ]; in { - nixosConfigurations = - { + nixosConfigurations = { nix = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; inherit modules; @@ -78,6 +80,21 @@ ] else modules; }; + darwinConfigurations = { + mac = nix-darwin.lib.darwinSystem { + modules = [ + ./darwin.nix + home-manager.darwinModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.clark = import ./home.nix {inherit conf; darwin = true;}; + } + ]; + specialArgs = { inherit inputs; }; + }; + }; + # meh, doesn't rly work packages.x86_64-linux = { iso = nixos-generators.nixosGenerate { diff --git a/home.nix b/home.nix index e7a541b..4023a46 100644 --- a/home.nix +++ b/home.nix @@ -1,18 +1,12 @@ -{ conf, more-packages ? [] }: +{ conf, more-packages ? [], leanpkgs ? false, darwin ? false }: { config, pkgs, ... }: let wm = conf.wm; in { - /* The home.stateVersion option does not have a default and must be set */ home.stateVersion = "22.05"; home.packages = with pkgs; [ - firefox - - # ugh - chromium - # bsdgames # CRITICAL THREE fortune @@ -22,17 +16,11 @@ in # mono5 nethack angband - brogue + brogue-ce # cataclysm-dda - keeperrl # adom - openrct2 # not yet # celeste64 - tetrio-desktop - # foliate - # thunderbird - prismlauncher starship eza @@ -59,18 +47,18 @@ in chez guile gambit - racket clojure ruby_3_3 - julia + ruby-lsp + rubocop lua - gcc + maxima zls - cargo - clippy - rustc - rustfmt + # ocaml + # ocamlPackages.utop + # ocamlPackages.ocaml-lsp + # ocamlPackages.ocamlformat idris2 # might as well use it consistently @@ -78,62 +66,91 @@ in haskell-language-server typst - discord - steam - steam-run - gamemode - rare - minigalaxy slipstream - obs-studio # drm more like pooprm # might as well use a newer version #(itch.override {electron_11 = electron_22;}) fzf - kolourpaint # yeah - audacious audacity ffmpeg libjxl exiftool - godot_4 - blender - akku ripgrep tldr htop pv helix - numbat + # numbat hyperfine - lm_sensors libnotify hunspell aspell - libsForQt5.krunner-symbols - libsForQt5.khotkeys - libsForQt5.kio - mpv yt-dlp qbittorrent - lmms - helm - obsidian (nerdfonts.override { fonts = [ "JetBrainsMono" ]; }) lmmath julia-mono - # glow and gum are a good example of something that should really be in a flake.nix or whatever - ] ++ more-packages; + ] ++ more-packages + ++ (if leanpkgs then [leanpkgs.lean4-mode leanpkgs.lean-all] else []) + ++ (if darwin then [ + m-cli + libiconvReal + # (racket-minimal.overrideAttrs (finalAttrs: previousAttrs: { + # configureFlags = [ + # "--enable-${previousAttrs.shared}" + # "--enable-lt=${pkgs.libtool}/bin/libtool" + # "--enable-macprefix" + # ]; + # })) + pkg-config + rustup + podman + ] else [ + racket + mpv + gcc + julia + godot_4 + blender + firefox + chromium + steam + steam-run + gamemode + rare + minigalaxy + openrct2 + obs-studio + kolourpaint + audacious + lm_sensors + libsForQt5.krunner-symbols + libsForQt5.khotkeys + libsForQt5.kio + lmms + helm + cargo + clippy + rustc + rustfmt + ]); + + home.file = { + ".config/kitty/kitty.app.png".source = pkgs.fetchurl { + url = "https://raw.githubusercontent.com/samholmes/whiskers/main/whiskers.png"; + hash = "sha256-By6sRGNyK5Myk608crIO2vrnixZ0dJjoW26Y1I23Dto="; + }; + }; programs.fish = { enable = true; @@ -141,12 +158,14 @@ in shellInit = import ./fish.conf.nix; }; + programs.zsh.enable = true; + programs.vscode = { enable = true; enableUpdateCheck = false; # i prefer to let vscode manage stuff mutableExtensionsDir = true; - userSettings = (import ./vscode-settings.nix) { rust-analyzer = pkgs.rust-analyzer; }; + userSettings = (import ./vscode-settings.nix) { inherit pkgs; }; }; programs.neovim = { @@ -250,6 +269,7 @@ in directory = "*"; }; core.autocrlf = false; + init.defaultBranch = "main"; }; }; @@ -343,6 +363,8 @@ in haskell-mode zig-mode + quack + which-key all-the-icons-ivy bind-key @@ -370,6 +392,7 @@ in geiser-chez geiser-guile geiser-gambit + geiser-racket macrostep-geiser evil evil-leader @@ -389,6 +412,8 @@ in direnv esup + + maxima ]; # apparently errors in the config matter? nvm? extraConfig = (import ./init.el.nix) pkgs; @@ -397,8 +422,10 @@ in programs.direnv.enable = true; programs.direnv.nix-direnv.enable = true; - # services.syncthing = { - # enable = true; - # tray.enable = true; - # }; + programs.home-manager.enable = true; + + services.syncthing = { + enable = true; + tray.enable = !darwin; + }; } diff --git a/init.el.nix b/init.el.nix index d45ae6a..58e948b 100644 --- a/init.el.nix +++ b/init.el.nix @@ -770,7 +770,7 @@ If the new path's directories does not exist, create them." ; (use-package geiser-chez ; :ensure t ; :config - (setq geiser-active-implementations '(chez guile gambit)) + (setq geiser-active-implementations '(chez guile gambit racket)) ;(setq geiser-chez-binary "/usr/bin/chez") (setq geiser-repl-query-on-kill-p nil) ; ) @@ -825,16 +825,6 @@ If the new path's directories does not exist, create them." (add-hook 'sly-db-hook 'turn-off-evil-mode) -;;; Emacs Bedrock -;;; -;;; Extra config: Vim emulation - -;;; Usage: Append or require this file from init.el for bindings in Emacs. - -;;; Contents: -;;; -;;; - Core Packages - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; Core Packages @@ -1069,4 +1059,13 @@ If the new path's directories does not exist, create them." ; yay (setq confirm-kill-processes nil) (setq auto-save-interval 100) + +(use-package maxima + :init + (setq org-format-latex-options (plist-put org-format-latex-options :scale 2.0) + maxima-display-maxima-buffer nil) + (add-to-list 'auto-mode-alist + (cons "\\.mac\\'" 'maxima-mode)) + (add-to-list 'interpreter-mode-alist + (cons "maxima" 'maxima-mode))) '' diff --git a/map-right.rkt b/map-right.rkt new file mode 100644 index 0000000..53f133f --- /dev/null +++ b/map-right.rkt @@ -0,0 +1,12 @@ +#lang pie + +(claim Either.mapRight + (Pi ([L U] [OldRightT U] [NewRightT U] ) + (-> (-> OldRightT NewRightT) (Either L OldRightT) + (Either L NewRightT)))) +(define Either.mapRight (lambda (L _b OldRightT) (lambda (f either) + (ind-Either + either + (lambda (oldEither) (Either L NewRightT)) + (lambda (l) (left l)) + (lambda (r) (right (f r))))))) diff --git a/vscode-settings.nix b/vscode-settings.nix index d4275a7..a7dddca 100644 --- a/vscode-settings.nix +++ b/vscode-settings.nix @@ -1,4 +1,4 @@ -{ rust-analyzer }: +{ pkgs }: { "C_Cpp.clang_format_fallbackStyle" = "WebKit"; "[c]" = { @@ -128,7 +128,7 @@ "ruby.codeCompletion" = "rcodetools"; "ruby.format" = "prettier"; "ruby.intellisense" = "rubyLocate"; - "rust-analyzer.server.path" = "${rust-analyzer}/bin/rust-analyzer"; + "rust-analyzer.server.path" = "${pkgs.rust-analyzer}/bin/rust-analyzer"; "rust-analyzer.checkOnSave.command" = "clippy"; "rust-analyzer.checkOnSave.extraArgs" = [ "--" "-W" "clippy::pedantic" ]; "rust-analyzer.debug.openDebugPane" = true; @@ -168,7 +168,7 @@ "vim.easymotion" = true; "vim.handleKeys" = { "" = false; }; "vim.highlightedyank.enable" = true; - "vim.leader" = ";"; + "vim.leader" = " "; "vim.normalModeKeyBindings" = [ { after = [ "g" "j" ]; @@ -350,4 +350,5 @@ "zig.zls.enabled" = true; "zig.zls.path" = "/home/mbk/.config/Code/User/globalStorage/ziglang.vscode-zig/zls_install/zls"; + "purescript.exportsCodeLens" = false; }