From a033cda5da15534502d71c19734682f85bf2cf35 Mon Sep 17 00:00:00 2001 From: Michael Thomson Date: Thu, 8 May 2025 09:06:55 -0400 Subject: [PATCH] macvm --- flake.lock | 529 +++++++++++++++++++++-- flake.nix | 8 + hosts/macvm/configuration.nix | 73 ++++ hosts/macvm/hardware-configuration.nix | 35 ++ hosts/macvm/home.nix | 41 ++ modules/home-manager/hyprland.nix | 1 + modules/home-manager/i3/config | 95 ++-- modules/home-manager/kitty.nix | 166 +++---- modules/home-manager/nixcats/default.nix | 1 + modules/home-manager/nixcats/init.lua | 2 +- modules/home-manager/stylix.nix | 37 ++ modules/home-manager/sway.nix | 7 +- modules/home-manager/wezterm/default.nix | 29 +- modules/home-manager/wezterm/wezterm.lua | 4 +- modules/nixos/i3.nix | 2 +- modules/nixos/sway.nix | 13 + 16 files changed, 835 insertions(+), 208 deletions(-) create mode 100644 hosts/macvm/configuration.nix create mode 100644 hosts/macvm/hardware-configuration.nix create mode 100644 hosts/macvm/home.nix create mode 100644 modules/home-manager/stylix.nix diff --git a/flake.lock b/flake.lock index f022169..1ce4e49 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ ] }, "locked": { - "lastModified": 1744289235, - "narHash": "sha256-ZFkHLdimtFzQACsVVyZkZlfYdj4iNy3PkzXfrwmlse8=", + "lastModified": 1745357003, + "narHash": "sha256-jYwzQkv1r7HN/4qrAuKp+NR4YYNp2xDrOX5O9YVqkWo=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "c8282f4982b56dfa5e9b9f659809da93f8d37e7a", + "rev": "a19cf76ee1a15c1c12083fa372747ce46387289f", "type": "github" }, "original": { @@ -33,6 +33,89 @@ "type": "github" } }, + "base16": { + "inputs": { + "fromYaml": "fromYaml" + }, + "locked": { + "lastModified": 1745523430, + "narHash": "sha256-EAYWV+kXbwsH+8G/8UtmcunDeKwLwSOyfcmzZUkWE/c=", + "owner": "SenchoPens", + "repo": "base16.nix", + "rev": "58bfe2553d937d8af0564f79d5b950afbef69717", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "base16.nix", + "type": "github" + } + }, + "base16-fish": { + "flake": false, + "locked": { + "lastModified": 1622559957, + "narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=", + "owner": "tomyun", + "repo": "base16-fish", + "rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe", + "type": "github" + }, + "original": { + "owner": "tomyun", + "repo": "base16-fish", + "type": "github" + } + }, + "base16-helix": { + "flake": false, + "locked": { + "lastModified": 1736852337, + "narHash": "sha256-esD42YdgLlEh7koBrSqcT7p2fsMctPAcGl/+2sYJa2o=", + "owner": "tinted-theming", + "repo": "base16-helix", + "rev": "03860521c40b0b9c04818f2218d9cc9efc21e7a5", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-helix", + "type": "github" + } + }, + "base16-vim": { + "flake": false, + "locked": { + "lastModified": 1732806396, + "narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=", + "owner": "tinted-theming", + "repo": "base16-vim", + "rev": "577fe8125d74ff456cf942c733a85d769afe58b7", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-vim", + "rev": "577fe8125d74ff456cf942c733a85d769afe58b7", + "type": "github" + } + }, + "firefox-gnome-theme": { + "flake": false, + "locked": { + "lastModified": 1744642301, + "narHash": "sha256-5A6LL7T0lttn1vrKsNOKUk9V0ittdW0VEqh6AtefxJ4=", + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "rev": "59e3de00f01e5adb851d824cf7911bd90c31083a", + "type": "github" + }, + "original": { + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "type": "github" + } + }, "flake-compat": { "flake": false, "locked": { @@ -49,6 +132,21 @@ "type": "github" } }, + "flake-compat_2": { + "locked": { + "lastModified": 1733328505, + "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-parts": { "inputs": { "nixpkgs-lib": [ @@ -70,6 +168,28 @@ "type": "github" } }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "stylix", + "nur", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, "flake-utils": { "inputs": { "systems": "systems_2" @@ -88,6 +208,69 @@ "type": "github" } }, + "flake-utils_2": { + "inputs": { + "systems": [ + "stylix", + "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" + } + }, + "fromYaml": { + "flake": false, + "locked": { + "lastModified": 1731966426, + "narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=", + "owner": "SenchoPens", + "repo": "fromYaml", + "rev": "106af9e2f715e2d828df706c386a685698f3223b", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "fromYaml", + "type": "github" + } + }, + "git-hooks": { + "inputs": { + "flake-compat": [ + "stylix", + "flake-compat" + ], + "gitignore": "gitignore_2", + "nixpkgs": [ + "stylix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1742649964, + "narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, "gitignore": { "inputs": { "nixpkgs": [ @@ -110,6 +293,45 @@ "type": "github" } }, + "gitignore_2": { + "inputs": { + "nixpkgs": [ + "stylix", + "git-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" + } + }, + "gnome-shell": { + "flake": false, + "locked": { + "lastModified": 1732369855, + "narHash": "sha256-JhUWbcYPjHO3Xs3x9/Z9RuqXbcp5yhPluGjwsdE2GMg=", + "owner": "GNOME", + "repo": "gnome-shell", + "rev": "dadd58f630eeea41d645ee225a63f719390829dc", + "type": "github" + }, + "original": { + "owner": "GNOME", + "ref": "47.2", + "repo": "gnome-shell", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -117,11 +339,32 @@ ] }, "locked": { - "lastModified": 1745858959, - "narHash": "sha256-B1FQwPCFLL3cbHc2nxT3/UI1uprHp2h1EA6M2JVe0oQ=", + "lastModified": 1746413188, + "narHash": "sha256-i6BoiQP0PasExESQHszC0reQHfO6D4aI2GzOwZMOI20=", "owner": "nix-community", "repo": "home-manager", - "rev": "d0d9d0a1454d5a0200693570618084d80a8b336c", + "rev": "8a318641ac13d3bc0a53651feaee9560f9b2d89a", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_2": { + "inputs": { + "nixpkgs": [ + "stylix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1746369725, + "narHash": "sha256-m3ai7LLFYsymMK0uVywCceWfUhP0k3CALyFOfcJACqE=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "1a1793f6d940d22c6e49753548c5b6cb7dc5545d", "type": "github" }, "original": { @@ -146,11 +389,11 @@ ] }, "locked": { - "lastModified": 1742215578, - "narHash": "sha256-zfs71PXVVPEe56WEyNi2TJQPs0wabU4WAlq0XV7GcdE=", + "lastModified": 1745948457, + "narHash": "sha256-lzTV10FJTCGNtMdgW5YAhCAqezeAzKOd/97HbQK8GTU=", "owner": "hyprwm", "repo": "hyprcursor", - "rev": "2fd36421c21aa87e2fe3bee11067540ae612f719", + "rev": "ac903e80b33ba6a88df83d02232483d99f327573", "type": "github" }, "original": { @@ -204,11 +447,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1745867882, - "narHash": "sha256-kIdHBL/FUJGdnxqsZDggofW6slbfM7OciOiDEOqnfDI=", + "lastModified": 1746536008, + "narHash": "sha256-JCelAgqaJu8z5ESjxri7ogT/h3NhJWi1U7A1WEVLsKc=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "c505eb55ff967f2a0474e88a50803412ba550a61", + "rev": "708a7c24ef2c137c04c2473ee6b3f841ed5a1d8b", "type": "github" }, "original": { @@ -234,11 +477,11 @@ ] }, "locked": { - "lastModified": 1745610646, - "narHash": "sha256-R8rWH3oFV5/jwl87t7HyVoFgndrPw8QR/2pLwyKJLYM=", + "lastModified": 1746496640, + "narHash": "sha256-/QJ3WBWGj14Ll7d2C6pvabVZwznDk7E5XgVY1bI3VeY=", "owner": "hyprwm", "repo": "hyprland-plugins", - "rev": "61ab0385c8d9d456bf89539c76dd9e73becefde3", + "rev": "eab6921631b4943e78859714964d2b9bf81724eb", "type": "github" }, "original": { @@ -327,11 +570,11 @@ ] }, "locked": { - "lastModified": 1739048983, - "narHash": "sha256-REhTcXq4qs3B3cCDtLlYDz0GZvmsBSh947Ub6pQWGTQ=", + "lastModified": 1745951494, + "narHash": "sha256-2dModE32doiyQMmd6EDAQeZnz+5LOs6KXyE0qX76WIg=", "owner": "hyprwm", "repo": "hyprland-qtutils", - "rev": "3504a293c8f8db4127cb0f7cfc1a318ffb4316f8", + "rev": "4be1d324faf8d6e82c2be9f8510d299984dfdd2e", "type": "github" }, "original": { @@ -356,11 +599,11 @@ ] }, "locked": { - "lastModified": 1744468525, - "narHash": "sha256-9HySx+EtsbbKlZDlY+naqqOV679VdxP6x6fP3wxDXJk=", + "lastModified": 1745357019, + "narHash": "sha256-q/C3qj9FWHQenObXuw/nGIT8iIsWFjgmcQYcA+ZfpPs=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "f1000c54d266e6e4e9d646df0774fac5b8a652df", + "rev": "397600c42b8d7a443a5b4e92aa15f46650a90f18", "type": "github" }, "original": { @@ -381,11 +624,11 @@ ] }, "locked": { - "lastModified": 1743950287, - "narHash": "sha256-/6IAEWyb8gC/NKZElxiHChkouiUOrVYNq9YqG0Pzm4Y=", + "lastModified": 1745975815, + "narHash": "sha256-s3GzsRxBL/N/xYgUXZhQh4t62uR1BN4zxXgWBtJ3lWM=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "f2dc70e448b994cef627a157ee340135bd68fbc6", + "rev": "05878d9470c9e5cbc8807813f9ec2006627a0ca0", "type": "github" }, "original": { @@ -454,11 +697,11 @@ ] }, "locked": { - "lastModified": 1745816321, - "narHash": "sha256-Gyh/fkCDqVNGM0BWvk+4UAS17w2UI6iwnbQQCmc1TDI=", + "lastModified": 1746254942, + "narHash": "sha256-Y062AuRx6l+TJNX8wxZcT59SSLsqD9EedAY0mqgTtQE=", "owner": "LnL7", "repo": "nix-darwin", - "rev": "4515dacafb0ccd42e5395aacc49fd58a43027e01", + "rev": "760a11c87009155afa0140d55c40e7c336d62d7a", "type": "github" }, "original": { @@ -520,11 +763,11 @@ }, "nixCats": { "locked": { - "lastModified": 1745808494, - "narHash": "sha256-5Pr92pP0IaWaFCh6KLAzg+4PJ91HQGjnvvYAk8rxCL4=", + "lastModified": 1745981676, + "narHash": "sha256-KGkNQbZaX+1KKBjUoltOby36+rH2CPNLFpm1blZ5Li4=", "owner": "BirdeeHub", "repo": "nixCats-nvim", - "rev": "8b584f12aa289b00e653fe8a4e386109934d3a24", + "rev": "a4b78fc624b31b68536cdead4699c27bcb9e655a", "type": "github" }, "original": { @@ -535,11 +778,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1745503349, - "narHash": "sha256-bUGjvaPVsOfQeTz9/rLTNLDyqbzhl0CQtJJlhFPhIYw=", + "lastModified": 1746468201, + "narHash": "sha256-hSOSlrvMJwGr8hX/gc0mnhUf5UIClMDUAadfXlSXzfc=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "f7bee55a5e551bd8e7b5b82c9bc559bc50d868d1", + "rev": "6aabf68429c0a414221d1790945babfb6a0bd068", "type": "github" }, "original": { @@ -551,11 +794,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1744932701, - "narHash": "sha256-fusHbZCyv126cyArUwwKrLdCkgVAIaa/fQJYFlCEqiU=", + "lastModified": 1746141548, + "narHash": "sha256-IgBWhX7A2oJmZFIrpRuMnw5RAufVnfvOgHWgIdds+hc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b024ced1aac25639f8ca8fdfc2f8c4fbd66c48ef", + "rev": "f02fddb8acef29a8b32f10a335d44828d7825b78", "type": "github" }, "original": { @@ -599,11 +842,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1745526057, - "narHash": "sha256-ITSpPDwvLBZBnPRS2bUcHY3gZSwis/uTe255QgMtTLA=", + "lastModified": 1746461020, + "narHash": "sha256-7+pG1I9jvxNlmln4YgnlW4o+w0TZX24k688mibiFDUE=", "owner": "nixos", "repo": "nixpkgs", - "rev": "f771eb401a46846c1aebd20552521b233dd7e18b", + "rev": "3730d8a308f94996a9ba7c7138ede69c1b9ac4ae", "type": "github" }, "original": { @@ -613,6 +856,22 @@ "type": "github" } }, + "nixpkgs_3": { + "locked": { + "lastModified": 1745930157, + "narHash": "sha256-y3h3NLnzRSiUkYpnfvnS669zWZLoqqI6NprtLQ+5dck=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "46e634be05ce9dc6d4db8e664515ba10b78151ae", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nixvim": { "inputs": { "flake-parts": "flake-parts", @@ -622,11 +881,11 @@ "nuschtosSearch": "nuschtosSearch" }, "locked": { - "lastModified": 1745862845, - "narHash": "sha256-/Xhcd72wk5ZE9oRn2qM93eJc49y/n8dG0QfOtFW18fM=", + "lastModified": 1746536883, + "narHash": "sha256-EJax0aiJIVJlqF7QyAefZ9fi1HgGcm7U1rBkcm2Z3Ps=", "owner": "nix-community", "repo": "nixvim", - "rev": "29aa22c41a9b47d1d8aa78f4ef90475a24e17197", + "rev": "c26f5c2e31c1da895bf9289783ff8e2fe3637ca0", "type": "github" }, "original": { @@ -689,6 +948,29 @@ "type": "gitlab" } }, + "nur": { + "inputs": { + "flake-parts": "flake-parts_2", + "nixpkgs": [ + "stylix", + "nixpkgs" + ], + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1746056780, + "narHash": "sha256-/emueQGaoT4vu0QjU9LDOG5roxRSfdY0K2KkxuzazcM=", + "owner": "nix-community", + "repo": "NUR", + "rev": "d476cd0972dd6242d76374fcc277e6735715c167", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "NUR", + "type": "github" + } + }, "nuschtosSearch": { "inputs": { "flake-utils": "flake-utils", @@ -745,7 +1027,8 @@ "nixCats": "nixCats", "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs_2", - "nixvim": "nixvim" + "nixvim": "nixvim", + "stylix": "stylix" } }, "scss-reset": { @@ -764,6 +1047,41 @@ "type": "github" } }, + "stylix": { + "inputs": { + "base16": "base16", + "base16-fish": "base16-fish", + "base16-helix": "base16-helix", + "base16-vim": "base16-vim", + "firefox-gnome-theme": "firefox-gnome-theme", + "flake-compat": "flake-compat_2", + "flake-utils": "flake-utils_2", + "git-hooks": "git-hooks", + "gnome-shell": "gnome-shell", + "home-manager": "home-manager_2", + "nixpkgs": "nixpkgs_3", + "nur": "nur", + "systems": "systems_3", + "tinted-foot": "tinted-foot", + "tinted-kitty": "tinted-kitty", + "tinted-schemes": "tinted-schemes", + "tinted-tmux": "tinted-tmux", + "tinted-zed": "tinted-zed" + }, + "locked": { + "lastModified": 1746542234, + "narHash": "sha256-kBlPMNZXPzDG4HUmdqYpvjvVYkoDdDrVvO14cKgHaiU=", + "owner": "danth", + "repo": "stylix", + "rev": "965865bc36033ead241e107f486418e6f600d58b", + "type": "github" + }, + "original": { + "owner": "danth", + "repo": "stylix", + "type": "github" + } + }, "systems": { "locked": { "lastModified": 1689347949, @@ -794,6 +1112,125 @@ "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" + } + }, + "tinted-foot": { + "flake": false, + "locked": { + "lastModified": 1726913040, + "narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=", + "owner": "tinted-theming", + "repo": "tinted-foot", + "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-foot", + "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", + "type": "github" + } + }, + "tinted-kitty": { + "flake": false, + "locked": { + "lastModified": 1716423189, + "narHash": "sha256-2xF3sH7UIwegn+2gKzMpFi3pk5DlIlM18+vj17Uf82U=", + "owner": "tinted-theming", + "repo": "tinted-kitty", + "rev": "eb39e141db14baef052893285df9f266df041ff8", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-kitty", + "rev": "eb39e141db14baef052893285df9f266df041ff8", + "type": "github" + } + }, + "tinted-schemes": { + "flake": false, + "locked": { + "lastModified": 1744974599, + "narHash": "sha256-Fg+rdGs5FAgfkYNCs74lnl8vkQmiZVdBsziyPhVqrlY=", + "owner": "tinted-theming", + "repo": "schemes", + "rev": "28c26a621123ad4ebd5bbfb34ab39421c0144bdd", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "schemes", + "type": "github" + } + }, + "tinted-tmux": { + "flake": false, + "locked": { + "lastModified": 1745111349, + "narHash": "sha256-udV+nHdpqgkJI9D0mtvvAzbqubt9jdifS/KhTTbJ45w=", + "owner": "tinted-theming", + "repo": "tinted-tmux", + "rev": "e009f18a01182b63559fb28f1c786eb027c3dee9", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-tmux", + "type": "github" + } + }, + "tinted-zed": { + "flake": false, + "locked": { + "lastModified": 1725758778, + "narHash": "sha256-8P1b6mJWyYcu36WRlSVbuj575QWIFZALZMTg5ID/sM4=", + "owner": "tinted-theming", + "repo": "base16-zed", + "rev": "122c9e5c0e6f27211361a04fae92df97940eccf9", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-zed", + "type": "github" + } + }, + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "stylix", + "nur", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733222881, + "narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "49717b5af6f80172275d47a418c9719a31a78b53", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, "xdph": { "inputs": { "hyprland-protocols": [ @@ -822,11 +1259,11 @@ ] }, "locked": { - "lastModified": 1744644585, - "narHash": "sha256-p0D/e4J6Sv6GSb+9u8OQcVHSE2gPNYB5ygIfGDyEiXQ=", + "lastModified": 1745871725, + "narHash": "sha256-M24SNc2flblWGXFkGQfqSlEOzAGZnMc9QG3GH4K/KbE=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "be6771e754345f18244fb00aae5c9e5ab21ccc26", + "rev": "76bbf1a6b1378e4ab5230bad00ad04bc287c969e", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index a44b07a..8d09344 100644 --- a/flake.nix +++ b/flake.nix @@ -30,6 +30,7 @@ nixCats = { url = "github:BirdeeHub/nixCats-nvim"; }; + stylix.url = "github:danth/stylix"; }; outputs = inputs @ { @@ -53,6 +54,13 @@ ./hosts/thinkpad/configuration.nix ]; }; + macvm = nixpkgs.lib.nixosSystem { + system = "aarch64-linux"; + specialArgs = {inherit inputs;}; + modules = [ + ./hosts/macvm/configuration.nix + ]; + }; }; darwinConfigurations = { diff --git a/hosts/macvm/configuration.nix b/hosts/macvm/configuration.nix new file mode 100644 index 0000000..ca19122 --- /dev/null +++ b/hosts/macvm/configuration.nix @@ -0,0 +1,73 @@ +# 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’). +{ + config, + pkgs, + inputs, + ... +}: { + imports = [ + # Include the results of the hardware scan. + ./hardware-configuration.nix + inputs.home-manager.nixosModules.default + ../../modules/nixos/bootloader.nix + ../../modules/nixos/user.nix + ../../modules/nixos/ssh.nix + ../../modules/nixos/bluetooth.nix + ../../modules/nixos/1password.nix + #../../modules/nixos/hyprland.nix + #../../modules/nixos/sway.nix + ../../modules/nixos/i3.nix + ../../modules/nixos/nm.nix + ../../modules/nixos/sound.nix + #../../modules/nixos/steam.nix + ../../modules/nixos/env.nix + ../../modules/nixos/docker.nix + ]; + + virtualisation.vmware.guest.enable = true; + + networking.hostName = "macvm"; + + nix.settings = { + trusted-users = ["mthomson"]; + + substituters = [ + "https://cache.nixos.org" + "https://nix-community.cachix.org" + ]; + + trusted-public-keys = [ + "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" + ]; + }; + + time.timeZone = "America/Toronto"; + + i18n.defaultLocale = "en_CA.UTF-8"; + + nixpkgs.config.allowUnfree = true; + + nix.settings.experimental-features = ["nix-command" "flakes"]; + + environment.systemPackages = with pkgs; [ + wget + git + curl + lsof + mesa + dconf + ]; + + home-manager = { + extraSpecialArgs = {inherit inputs;}; + useGlobalPkgs = true; + useUserPackages = true; + users = { + mthomson = import ./home.nix; + }; + }; + + system.stateVersion = "23.11"; +} diff --git a/hosts/macvm/hardware-configuration.nix b/hosts/macvm/hardware-configuration.nix new file mode 100644 index 0000000..a5108ad --- /dev/null +++ b/hosts/macvm/hardware-configuration.nix @@ -0,0 +1,35 @@ +# 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 = [ ]; + + boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "sr_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/9b7313b6-1939-4f81-b8fc-b17217fc59e7"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/EB32-81A0"; + fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; + }; + + 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..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.ens160.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux"; +} diff --git a/hosts/macvm/home.nix b/hosts/macvm/home.nix new file mode 100644 index 0000000..4b1898a --- /dev/null +++ b/hosts/macvm/home.nix @@ -0,0 +1,41 @@ +{ + config, + pkgs, + ... +}: { + imports = [ + #../../modules/home-manager/hyprland.nix + #../../modules/home-manager/sway.nix + ../../modules/home-manager/i3 + ../../modules/home-manager/git.nix + ../../modules/home-manager/nixcats + ../../modules/home-manager/wezterm + ../../modules/home-manager/zsh.nix + ../../modules/home-manager/tmux.nix + ../../modules/home-manager/taskwarrior.nix + ../../modules/home-manager/stylix.nix + ../../modules/home-manager/email.nix + ../../modules/home-manager/syncthing.nix + ../../modules/home-manager/bitwarden.nix + ../../modules/home-manager/kubernetes.nix + ../../modules/home-manager/nix-index.nix + ../../modules/home-manager/bitwarden.nix + ../../modules/home-manager/direnv.nix + ../../modules/home-manager/jq.nix + ../../modules/home-manager/lazygit.nix + ../../modules/home-manager/man.nix + ../../modules/home-manager/gpg.nix + ../../modules/home-manager/latex.nix + #../../modules/home-manager/emacs + ]; + home.username = "mthomson"; + home.homeDirectory = "/home/mthomson"; + home.stateVersion = "23.11"; + + home.packages = with pkgs; [ + firefox + gcc + ]; + + programs.home-manager.enable = true; +} diff --git a/modules/home-manager/hyprland.nix b/modules/home-manager/hyprland.nix index 487b17d..33e911f 100644 --- a/modules/home-manager/hyprland.nix +++ b/modules/home-manager/hyprland.nix @@ -11,6 +11,7 @@ inputs, settings = { monitor = [ "eDP-1,1920x1080@60,0x0,1.00" + "Virtual-1,1920x1080@60,0x0,1.00" ]; exec-once = [ "waybar" diff --git a/modules/home-manager/i3/config b/modules/home-manager/i3/config index a58a394..33dded3 100644 --- a/modules/home-manager/i3/config +++ b/modules/home-manager/i3/config @@ -1,37 +1,38 @@ -set $rosewater #f5e0dc -set $flamingo #f2cdcd -set $pink #f5c2e7 -set $mauve #cba6f7 -set $red #f38ba8 -set $maroon #eba0ac -set $peach #fab387 -set $yellow #f9e2af -set $green #a6e3a1 -set $teal #94e2d5 -set $sky #89dceb -set $sapphire #74c7ec -set $blue #89b4fa -set $lavender #b4befe -set $text #cdd6f4 -set $subtext1 #bac2de -set $subtext0 #a6adc8 -set $overlay2 #9399b2 -set $overlay1 #7f849c -set $overlay0 #6c7086 -set $surface2 #585b70 -set $surface1 #45475a -set $surface0 #313244 -set $base #1e1e2e -set $mantle #181825 -set $crust #11111b +# set $rosewater #f5e0dc +# set $flamingo #f2cdcd +# set $pink #f5c2e7 +# set $mauve #cba6f7 +# set $red #f38ba8 +# set $maroon #eba0ac +# set $peach #fab387 +# set $yellow #f9e2af +# set $green #a6e3a1 +# set $teal #94e2d5 +# set $sky #89dceb +# set $sapphire #74c7ec +# set $blue #89b4fa +# set $lavender #b4befe +# set $text #cdd6f4 +# set $subtext1 #bac2de +# set $subtext0 #a6adc8 +# set $overlay2 #9399b2 +# set $overlay1 #7f849c +# set $overlay0 #6c7086 +# set $surface2 #585b70 +# set $surface1 #45475a +# set $surface0 #313244 +# set $base #1e1e2e +# set $mantle #181825 +# set $crust #11111b +# +# # target title bg text indicator border +# client.focused $lavender $base $text $rosewater $lavender +# client.focused_inactive $overlay0 $base $text $rosewater $overlay0 +# client.unfocused $overlay0 $base $text $rosewater $overlay0 +# client.urgent $peach $base $peach $overlay0 $peach +# client.placeholder $overlay0 $base $text $overlay0 $overlay0 +# client.background $base -# target title bg text indicator border -client.focused $lavender $base $text $rosewater $lavender -client.focused_inactive $overlay0 $base $text $rosewater $overlay0 -client.unfocused $overlay0 $base $text $rosewater $overlay0 -client.urgent $peach $base $peach $overlay0 $peach -client.placeholder $overlay0 $base $text $overlay0 $overlay0 -client.background $base # This file has been auto-generated by i3-config-wizard(1). # It will not be overwritten, so edit it as you like. # @@ -221,24 +222,24 @@ bindsym $mod+r mode "resize" # finds out, if available) bar { status_command i3status - colors { - background $base - statusline $text - focused_statusline $text - active_workspace $base $text $blue - focused_separator $base - focused_workspace $base $base $green - active_workspace $base $base $blue - inactive_workspace $base $base $surface1 - urgent_workspace $base $base $surface1 - binding_mode $base $base $surface1 - } + # colors { + # background $base + # statusline $text + # focused_statusline $text + # active_workspace $base $text $blue + # focused_separator $base + # focused_workspace $base $base $green + # active_workspace $base $base $blue + # inactive_workspace $base $base $surface1 + # urgent_workspace $base $base $surface1 + # binding_mode $base $base $surface1 + # } } # Gaps for_window [class="^.*"] border pixel 2 -gaps inner 10 -gaps outer -2 +gaps inner 0 +gaps outer 0 hide_edge_borders both # wallpaper diff --git a/modules/home-manager/kitty.nix b/modules/home-manager/kitty.nix index ce3e760..903f493 100644 --- a/modules/home-manager/kitty.nix +++ b/modules/home-manager/kitty.nix @@ -10,9 +10,9 @@ # size = 12; # }; font = { - name = "JetBrainsMono Nerd Font Mono"; + # name = "JetBrainsMono Nerd Font Mono"; size = 12; - package = pkgs.nerd-fonts.jetbrains-mono; + # package = pkgs.nerd-fonts.jetbrains-mono; }; shellIntegration = { enableZshIntegration = true; @@ -26,86 +26,86 @@ # background_blur = 5; hide_window_decorations = "titlebar-only"; }; - extraConfig = '' - # vim:ft=kitty - - ## name: Gruber-dark - ## author: ring0-rootkit - ## license: MIT - ## upstream: https://github.com/ring0-rootkit/gruber-darker-kitty/blob/main/gruber.conf - - - - # The basic colors - foreground #e4e4e4 - background #181818 - selection_foreground #181818 - selection_background #F5F5F5 - - # Cursor colors - cursor #FFDD33 - cursor_text_color #000000 - - # URL underline color when hovering with mouse - url_color #FF4F58 - - # Kitty window border colors - active_border_color #96A6C8 - inactive_border_color #565F73 - bell_border_color #C73C3F - - # OS Window titlebar colors - wayland_titlebar_color #181818 - macos_titlebar_color #181818 - - # Tab bar colors - active_tab_foreground #101010 - active_tab_background #F43841 - inactive_tab_foreground #E4E4E4 - inactive_tab_background #282828 - tab_bar_background #101010 - - # Colors for marks (marked text in the terminal) - mark1_foreground #181818 - mark1_background #96A6C8 - mark2_foreground #181818 - mark2_background #F43841 - mark3_foreground #181818 - mark3_background #73D936 - - # The 16 terminal colors - - # black - color0 #101010 - color8 #453D41 - - # red - color1 #F43841 - color9 #F43841 - - # green - color2 #73D936 - color10 #73D936 - - # yellow - color3 #FFDD33 - color11 #FFDD33 - - # blue - color4 #96A6C8 - color12 #96A6C8 - - # magenta - color5 #9E95C7 - color13 #9E95C7 - - # cyan - color6 #95A99F - color14 #95A99F - - # white - color7 #E4E4E4 - color15 #FFFFFF - ''; + # extraConfig = '' + # # vim:ft=kitty + # + # ## name: Gruber-dark + # ## author: ring0-rootkit + # ## license: MIT + # ## upstream: https://github.com/ring0-rootkit/gruber-darker-kitty/blob/main/gruber.conf + # + # + # + # # The basic colors + # foreground #e4e4e4 + # background #181818 + # selection_foreground #181818 + # selection_background #F5F5F5 + # + # # Cursor colors + # cursor #FFDD33 + # cursor_text_color #000000 + # + # # URL underline color when hovering with mouse + # url_color #FF4F58 + # + # # Kitty window border colors + # active_border_color #96A6C8 + # inactive_border_color #565F73 + # bell_border_color #C73C3F + # + # # OS Window titlebar colors + # wayland_titlebar_color #181818 + # macos_titlebar_color #181818 + # + # # Tab bar colors + # active_tab_foreground #101010 + # active_tab_background #F43841 + # inactive_tab_foreground #E4E4E4 + # inactive_tab_background #282828 + # tab_bar_background #101010 + # + # # Colors for marks (marked text in the terminal) + # mark1_foreground #181818 + # mark1_background #96A6C8 + # mark2_foreground #181818 + # mark2_background #F43841 + # mark3_foreground #181818 + # mark3_background #73D936 + # + # # The 16 terminal colors + # + # # black + # color0 #101010 + # color8 #453D41 + # + # # red + # color1 #F43841 + # color9 #F43841 + # + # # green + # color2 #73D936 + # color10 #73D936 + # + # # yellow + # color3 #FFDD33 + # color11 #FFDD33 + # + # # blue + # color4 #96A6C8 + # color12 #96A6C8 + # + # # magenta + # color5 #9E95C7 + # color13 #9E95C7 + # + # # cyan + # color6 #95A99F + # color14 #95A99F + # + # # white + # color7 #E4E4E4 + # color15 #FFFFFF + # ''; }; } diff --git a/modules/home-manager/nixcats/default.nix b/modules/home-manager/nixcats/default.nix index 2a3dd41..429b8df 100644 --- a/modules/home-manager/nixcats/default.nix +++ b/modules/home-manager/nixcats/default.nix @@ -65,6 +65,7 @@ in { vim-sleuth oil-nvim plenary-nvim + vim-tmux-navigator ]; }; diff --git a/modules/home-manager/nixcats/init.lua b/modules/home-manager/nixcats/init.lua index 0d587c7..cd6d0e3 100644 --- a/modules/home-manager/nixcats/init.lua +++ b/modules/home-manager/nixcats/init.lua @@ -123,7 +123,7 @@ vim.keymap.set({'n', 'v', 'x'}, 'p', '"+p', { noremap = true, silent = t vim.keymap.set('i', '', '+', { noremap = true, silent = true, desc = 'Paste from clipboard from within insert mode' }) vim.keymap.set("x", "P", '"_dP', { noremap = true, silent = true, desc = 'Paste over selection without erasing unnamed register' }) -vim.cmd.colorscheme('gruber-darker') +vim.cmd.colorscheme('gruvbox') require("oil").setup() vim.keymap.set("n", "fe", "Oil", { desc = 'Oil' }) diff --git a/modules/home-manager/stylix.nix b/modules/home-manager/stylix.nix new file mode 100644 index 0000000..99a48e3 --- /dev/null +++ b/modules/home-manager/stylix.nix @@ -0,0 +1,37 @@ +{ +inputs, +pkgs, +config, +lib, +... +}: { + imports = [ + inputs.stylix.homeManagerModules.stylix + ]; + + stylix = { + enable = true; + base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-hard.yaml"; + fonts = { + serif = { + package = pkgs.inter; + name = "Inter"; + }; + + sansSerif = { + package = pkgs.inter; + name = "Inter"; + }; + + monospace = { + package = pkgs.nerd-fonts.jetbrains-mono; + name = "JetBrainsMono Nerd Font Mono"; + }; + + emoji = { + package = pkgs.noto-fonts-emoji; + name = "Noto Color Emoji"; + }; + }; + }; +} diff --git a/modules/home-manager/sway.nix b/modules/home-manager/sway.nix index 8bbc748..b41f107 100644 --- a/modules/home-manager/sway.nix +++ b/modules/home-manager/sway.nix @@ -14,8 +14,13 @@ lib, terminal = "kitty"; startup = [ # Launch Firefox on start - {command = "firefox";} + {command = "kitty";} ]; + output = { + "Virtual-1" = { + mode = "1920x1080@60Hz"; + }; + }; }; }; diff --git a/modules/home-manager/wezterm/default.nix b/modules/home-manager/wezterm/default.nix index ca2fa1d..0317497 100644 --- a/modules/home-manager/wezterm/default.nix +++ b/modules/home-manager/wezterm/default.nix @@ -8,21 +8,14 @@ extraConfig = '' return { -- color_scheme = 'Ayu Dark (Gogh)', - font = wezterm.font('JetBrainsMono Nerd Font'), - font_size = 16, + -- font = wezterm.font('JetBrainsMono Nerd Font'), + font_size = 12, use_fancy_tab_bar = false, native_macos_fullscreen_mode = false, enable_scroll_bar = false, window_decorations = "RESIZE", enable_kitty_graphics = true, hide_tab_bar_if_only_one_tab = true, - keys = { - { - key = 'n', - mods = 'CMD|SHIFT', - action = wezterm.action.ToggleFullScreen, - }, - }, window_padding = { left = 0, right = 0, @@ -33,24 +26,6 @@ macos_window_background_blur = 0, front_end = "WebGpu", force_reverse_video_cursor = true, - colors = { - foreground = "#dcd7ba", - background = "#1f1f28", - - cursor_bg = "#c8c093", - cursor_fg = "#c8c093", - cursor_border = "#c8c093", - - selection_fg = "#c8c093", - selection_bg = "#2d4f67", - - scrollbar_thumb = "#16161d", - split = "#16161d", - - ansi = { "#090618", "#c34043", "#76946a", "#c0a36e", "#7e9cd8", "#957fb8", "#6a9589", "#c8c093" }, - brights = { "#727169", "#e82424", "#98bb6c", "#e6c384", "#7fb4ca", "#938aa9", "#7aa89f", "#dcd7ba" }, - indexed = { [16] = "#ffa066", [17] = "#ff5d62" }, - }, } ''; }; diff --git a/modules/home-manager/wezterm/wezterm.lua b/modules/home-manager/wezterm/wezterm.lua index c001f2d..e53d54a 100644 --- a/modules/home-manager/wezterm/wezterm.lua +++ b/modules/home-manager/wezterm/wezterm.lua @@ -1,9 +1,9 @@ local wezterm = require 'wezterm' return { - color_scheme = 'catppuccin-frappe', + -- color_scheme = 'catppuccin-frappe', font = wezterm.font('PragmataPro Liga'), - font_size = 16, + font_size = 14, use_fancy_tab_bar = false, native_macos_fullscreen_mode = false, enable_scroll_bar = false, diff --git a/modules/nixos/i3.nix b/modules/nixos/i3.nix index 1306ba9..a303169 100644 --- a/modules/nixos/i3.nix +++ b/modules/nixos/i3.nix @@ -9,7 +9,6 @@ displayManager = { defaultSession = "none+i3"; - lightdm.enable = true; }; windowManager.i3 = { @@ -22,6 +21,7 @@ i3blocks feh arandr + autorandr ]; }; diff --git a/modules/nixos/sway.nix b/modules/nixos/sway.nix index bb2f697..1f55785 100644 --- a/modules/nixos/sway.nix +++ b/modules/nixos/sway.nix @@ -2,4 +2,17 @@ { security.polkit.enable = true; + + programs = { + sway = { + enable = true; + wrapperFeatures.gtk = true; + }; + }; + + hardware.graphics = { + enable = true; + }; + + environment.sessionVariables.WLR_NO_HARDWARE_CURSORS = "1"; }