diff --git a/flake.lock b/flake.lock index 1b63c93..8c9fb05 100644 --- a/flake.lock +++ b/flake.lock @@ -5,11 +5,11 @@ "fromYaml": "fromYaml" }, "locked": { - "lastModified": 1755819240, - "narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=", + "lastModified": 1746562888, + "narHash": "sha256-YgNJQyB5dQiwavdDFBMNKk1wyS77AtdgDk/VtU6wEaI=", "owner": "SenchoPens", "repo": "base16.nix", - "rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6", + "rev": "806a1777a5db2a1ef9d5d6f493ef2381047f2b89", "type": "github" }, "original": { @@ -21,28 +21,28 @@ "base16-fish": { "flake": false, "locked": { - "lastModified": 1765809053, - "narHash": "sha256-XCUQLoLfBJ8saWms2HCIj4NEN+xNsWBlU1NrEPcQG4s=", + "lastModified": 1754405784, + "narHash": "sha256-l9xHIy+85FN+bEo6yquq2IjD1rSg9fjfjpyGP1W8YXo=", "owner": "tomyun", "repo": "base16-fish", - "rev": "86cbea4dca62e08fb7fd83a70e96472f92574782", + "rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561", "type": "github" }, "original": { "owner": "tomyun", "repo": "base16-fish", - "rev": "86cbea4dca62e08fb7fd83a70e96472f92574782", + "rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561", "type": "github" } }, "base16-helix": { "flake": false, "locked": { - "lastModified": 1760703920, - "narHash": "sha256-m82fGUYns4uHd+ZTdoLX2vlHikzwzdu2s2rYM2bNwzw=", + "lastModified": 1748408240, + "narHash": "sha256-9M2b1rMyMzJK0eusea0x3lyh3mu5nMeEDSc4RZkGm+g=", "owner": "tinted-theming", "repo": "base16-helix", - "rev": "d646af9b7d14bff08824538164af99d0c521b185", + "rev": "6c711ab1a9db6f51e2f6887cc3345530b33e152e", "type": "github" }, "original": { @@ -79,11 +79,11 @@ ] }, "locked": { - "lastModified": 1765831383, - "narHash": "sha256-P5F/VPjjGw7s0AOTPb3z3gxqtH0YkAnd/c9P6QdWrEU=", + "lastModified": 1760299432, + "narHash": "sha256-OEsLiZvC+WOssGIzUx0miuKsODlp7IGax8XVhNCw8wY=", "owner": "HeitorAugustoLN", "repo": "cosmic-manager", - "rev": "819d4d21fb90460dd11416d81d2cff65a53b8a59", + "rev": "a61b25313a83d32de4769fbb4026d93bde00b256", "type": "github" }, "original": { @@ -95,11 +95,11 @@ "firefox-gnome-theme": { "flake": false, "locked": { - "lastModified": 1764724327, - "narHash": "sha256-OkFLrD3pFR952TrjQi1+Vdj604KLcMnkpa7lkW7XskI=", + "lastModified": 1748383148, + "narHash": "sha256-pGvD/RGuuPf/4oogsfeRaeMm6ipUIznI2QSILKjKzeA=", "owner": "rafaelmardojai", "repo": "firefox-gnome-theme", - "rev": "66b7c635763d8e6eb86bd766de5a1e1fbfcc1047", + "rev": "4eb2714fbed2b80e234312611a947d6cb7d70caf", "type": "github" }, "original": { @@ -137,11 +137,11 @@ ] }, "locked": { - "lastModified": 1765835352, - "narHash": "sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw=", + "lastModified": 1759362264, + "narHash": "sha256-wfG0S7pltlYyZTM+qqlhJ7GMw2fTF4mLKCIVhLii/4M=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "a34fae9c08a15ad73f295041fec82323541400a9", + "rev": "758cf7296bee11f1706a574c77d072b8a7baa881", "type": "github" }, "original": { @@ -158,11 +158,11 @@ ] }, "locked": { - "lastModified": 1763759067, - "narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=", + "lastModified": 1749398372, + "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0", + "rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569", "type": "github" }, "original": { @@ -208,20 +208,18 @@ "gnome-shell": { "flake": false, "locked": { - "host": "gitlab.gnome.org", - "lastModified": 1764524476, - "narHash": "sha256-bTmNn3Q4tMQ0J/P0O5BfTQwqEnCiQIzOGef9/aqAZvk=", + "lastModified": 1744584021, + "narHash": "sha256-0RJ4mJzf+klKF4Fuoc8VN8dpQQtZnKksFmR2jhWE1Ew=", "owner": "GNOME", "repo": "gnome-shell", - "rev": "c0e1ad9f0f703fd0519033b8f46c3267aab51a22", - "type": "gitlab" + "rev": "52c517c8f6c199a1d6f5118fae500ef69ea845ae", + "type": "github" }, "original": { - "host": "gitlab.gnome.org", "owner": "GNOME", - "ref": "gnome-49", + "ref": "48.1", "repo": "gnome-shell", - "type": "gitlab" + "type": "github" } }, "home-manager": { @@ -231,16 +229,16 @@ ] }, "locked": { - "lastModified": 1767280655, - "narHash": "sha256-YmaYMduV5ko8zURUT1VLGDbVC1L/bxHS0NsiPoZ6bBM=", + "lastModified": 1758463745, + "narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=", "owner": "nix-community", "repo": "home-manager", - "rev": "d49d2543f02dbd789ed032188c84570d929223cb", + "rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-25.11", + "ref": "release-25.05", "repo": "home-manager", "type": "github" } @@ -278,11 +276,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1764554060, - "narHash": "sha256-vewrwjGqublgja1bvlIybRnlltKHLNlnP7WYDg+9h1Y=", + "lastModified": 1756852730, + "narHash": "sha256-qPere4RBHoZxiEGl8zXU8gjroZg4gkYGEwaAbKmL4vE=", "owner": "musnix", "repo": "musnix", - "rev": "599562080b2901046829ca69e0d1461041d27b32", + "rev": "7ccc92050e43dc92309396c6f2fe1f542214a242", "type": "github" }, "original": { @@ -303,11 +301,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1767257541, - "narHash": "sha256-eAZD0o5eC85jES3k8S0e1NlJJv+rTgofhl0QajhFjyM=", + "lastModified": 1761187190, + "narHash": "sha256-5ln16iOeWpEX5MO7M3jzFEBNFE42gpFsCvSvPjtF6tQ=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "0eb70f38f02923ff59743a0978fed88f04c98c7d", + "rev": "77a07f5d3b775fba67550c38122ebb8d3ee3ba1c", "type": "github" }, "original": { @@ -336,11 +334,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1767160009, - "narHash": "sha256-aTj88rDBdhmzaGXoFPOsHjXYM2OjNttixsGftT/X0dI=", + "lastModified": 1760940149, + "narHash": "sha256-KbM47vD6E0cx+v4jYQZ8mD5N186AKm2CQlyh34TW58U=", "owner": "YaLTeR", "repo": "niri", - "rev": "cf0b4bc0ca93ab5c18b562ada1d8609b67b3c4e3", + "rev": "b3245b81a6ed8edfaf5388a74d2e0a23c24941e5", "type": "github" }, "original": { @@ -351,11 +349,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1764242076, - "narHash": "sha256-sKoIWfnijJ0+9e4wRvIgm/HgE27bzwQxcEmo2J/gNpI=", + "lastModified": 1756542300, + "narHash": "sha256-tlOn88coG5fzdyqz6R93SQL5Gpq+m/DsWpekNFhqPQk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2fad6eac6077f03fe109c4d4eb171cf96791faa4", + "rev": "d7600c775f877cd87b4f5a831c28aa94137377aa", "type": "github" }, "original": { @@ -367,42 +365,42 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1767047869, - "narHash": "sha256-tzYsEzXEVa7op1LTnrLSiPGrcCY6948iD0EcNLWcmzo=", + "lastModified": 1761016216, + "narHash": "sha256-G/iC4t/9j/52i/nm+0/4ybBmAF4hzR8CNHC75qEhjHo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "89dbf01df72eb5ebe3b24a86334b12c27d68016a", + "rev": "481cf557888e05d3128a76f14c76397b7d7cc869", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-25.11", + "ref": "nixos-25.05", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_2": { "locked": { - "lastModified": 1767047869, - "narHash": "sha256-tzYsEzXEVa7op1LTnrLSiPGrcCY6948iD0EcNLWcmzo=", + "lastModified": 1761016216, + "narHash": "sha256-G/iC4t/9j/52i/nm+0/4ybBmAF4hzR8CNHC75qEhjHo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "89dbf01df72eb5ebe3b24a86334b12c27d68016a", + "rev": "481cf557888e05d3128a76f14c76397b7d7cc869", "type": "github" }, "original": { "id": "nixpkgs", - "ref": "nixos-25.11", + "ref": "nixos-25.05", "type": "indirect" } }, "nixpkgs_3": { "locked": { - "lastModified": 1766070988, - "narHash": "sha256-G/WVghka6c4bAzMhTwT2vjLccg/awmHkdKSd2JrycLc=", + "lastModified": 1761114652, + "narHash": "sha256-f/QCJM/YhrV/lavyCVz8iU3rlZun6d+dAiC3H+CDle4=", "owner": "nixos", "repo": "nixpkgs", - "rev": "c6245e83d836d0433170a16eb185cefe0572f8b8", + "rev": "01f116e4df6a15f4ccdffb1bcd41096869fb385c", "type": "github" }, "original": { @@ -422,16 +420,16 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1766849711, - "narHash": "sha256-gtLBwhgjERca1UCzGkFplD5epIVRiNkePHVVtyFr73g=", + "lastModified": 1760795571, + "narHash": "sha256-gi+tWWAknKuTNso3yMeKsT9nj0jx+tuYF7g7nmLUWT8=", "owner": "nix-community", "repo": "nixvim", - "rev": "cae79c48e93bd61e478dfc12456bf68b1ce66074", + "rev": "6c945865ba5de87fa2d0dd8a0e66ca572ddf9043", "type": "github" }, "original": { "owner": "nix-community", - "ref": "nixos-25.11", + "ref": "nixos-25.05", "repo": "nixvim", "type": "github" } @@ -445,14 +443,15 @@ "nixpkgs": [ "stylix", "nixpkgs" - ] + ], + "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1764773531, - "narHash": "sha256-mCBl7MD1WZ7yCG6bR9MmpPO2VydpNkWFgnslJRIT1YU=", + "lastModified": 1751320053, + "narHash": "sha256-3m6RMw0FbbaUUa01PNaMLoO7D99aBClmY5ed9V3vz+0=", "owner": "nix-community", "repo": "NUR", - "rev": "1d9616689e98beded059ad0384b9951e967a17fa", + "rev": "cbde1735782f9c2bb2c63d5e05fba171a14a4670", "type": "github" }, "original": { @@ -471,11 +470,11 @@ ] }, "locked": { - "lastModified": 1761730856, - "narHash": "sha256-t1i5p/vSWwueZSC0Z2BImxx3BjoUDNKyC2mk24krcMY=", + "lastModified": 1760652422, + "narHash": "sha256-C88Pgz38QIl9JxQceexqL2G7sw9vodHWx1Uaq+NRJrw=", "owner": "NuschtOS", "repo": "search", - "rev": "e29de6db0cb3182e9aee75a3b1fd1919d995d85b", + "rev": "3ebeebe8b6a49dfb11f771f761e0310f7c48d726", "type": "github" }, "original": { @@ -504,11 +503,11 @@ ] }, "locked": { - "lastModified": 1766894905, - "narHash": "sha256-pn8AxxfajqyR/Dmr1wnZYdUXHgM3u6z9x0Z1Ijmz2UQ=", + "lastModified": 1760998189, + "narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=", "owner": "Mic92", "repo": "sops-nix", - "rev": "61b39c7b657081c2adc91b75dd3ad8a91d6f07a7", + "rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3", "type": "github" }, "original": { @@ -538,16 +537,16 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1766603740, - "narHash": "sha256-F0BovrhzY/siRQYBRUFn2sZH7TJEuwetOJiGgKtITjk=", + "lastModified": 1760478648, + "narHash": "sha256-Y4l+Y3zUvqIDbyLrtOrzNvp1o50Fp9TYK+iwtwweFU4=", "owner": "danth", "repo": "stylix", - "rev": "cfe89cabaae6ea1bbf80709bd53181494566a1b0", + "rev": "1ec254101285777db13922303cc47ded06e10bb3", "type": "github" }, "original": { "owner": "danth", - "ref": "release-25.11", + "ref": "release-25.05", "repo": "stylix", "type": "github" } @@ -633,11 +632,11 @@ "tinted-schemes": { "flake": false, "locked": { - "lastModified": 1763914658, - "narHash": "sha256-Hju0WtMf3iForxtOwXqGp3Ynipo0EYx1AqMKLPp9BJw=", + "lastModified": 1750770351, + "narHash": "sha256-LI+BnRoFNRa2ffbe3dcuIRYAUcGklBx0+EcFxlHj0SY=", "owner": "tinted-theming", "repo": "schemes", - "rev": "0f6be815d258e435c9b137befe5ef4ff24bea32c", + "rev": "5a775c6ffd6e6125947b393872cde95867d85a2a", "type": "github" }, "original": { @@ -649,11 +648,11 @@ "tinted-tmux": { "flake": false, "locked": { - "lastModified": 1764465359, - "narHash": "sha256-lbSVPqLEk2SqMrnpvWuKYGCaAlfWFMA6MVmcOFJjdjE=", + "lastModified": 1751159871, + "narHash": "sha256-UOHBN1fgHIEzvPmdNMHaDvdRMgLmEJh2hNmDrp3d3LE=", "owner": "tinted-theming", "repo": "tinted-tmux", - "rev": "edf89a780e239263cc691a987721f786ddc4f6aa", + "rev": "bded5e24407cec9d01bd47a317d15b9223a1546c", "type": "github" }, "original": { @@ -665,11 +664,11 @@ "tinted-zed": { "flake": false, "locked": { - "lastModified": 1764464512, - "narHash": "sha256-rCD/pAhkMdCx6blsFwxIyvBJbPZZ1oL2sVFrH07lmqg=", + "lastModified": 1751158968, + "narHash": "sha256-ksOyv7D3SRRtebpXxgpG4TK8gZSKFc4TIZpR+C98jX8=", "owner": "tinted-theming", "repo": "base16-zed", - "rev": "907dbba5fb8cf69ebfd90b00813418a412d0a29a", + "rev": "86a470d94204f7652b906ab0d378e4231a5b3384", "type": "github" }, "original": { @@ -678,6 +677,28 @@ "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" + } + }, "xwayland-satellite-stable": { "flake": false, "locked": { @@ -698,11 +719,11 @@ "xwayland-satellite-unstable": { "flake": false, "locked": { - "lastModified": 1766429945, - "narHash": "sha256-9Kv4gWagx/u4RfZJzBMAoagW9ava5waxd+XoTkzqF7E=", + "lastModified": 1761173223, + "narHash": "sha256-FumZh+fPRaKXkl9Y1uTh5KV7Io/AyOZso+UkqLhLArs=", "owner": "Supreeeme", "repo": "xwayland-satellite", - "rev": "0dde7ca1d3a8e8c5082533d76084e2aa02bef70e", + "rev": "bf745144acda1343934e9a094cf9458a54d57889", "type": "github" }, "original": { @@ -716,11 +737,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1767307876, - "narHash": "sha256-d5EKvUnfr6tdhymIThz0WGG0JHT2cCZzbZK4t2CwYuc=", + "lastModified": 1761192367, + "narHash": "sha256-HdAtNWms1rrswlfuX5NUR9RYCMLUJHEzF986hQ0tUCw=", "owner": "youwen5", "repo": "zen-browser-flake", - "rev": "c5bffaf433e6137fe80cd1930584836f11119b26", + "rev": "1ce32754f78d1d7d6bf9cb44a48a06dac8bb6785", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index f0cb5b8..f7c8766 100644 --- a/flake.nix +++ b/flake.nix @@ -1,14 +1,14 @@ { description = "A flake using my config"; inputs = { - nixpkgs.url = "nixpkgs/nixos-25.11"; + nixpkgs.url = "nixpkgs/nixos-25.05"; musnix.url = "github:musnix/musnix"; home-manager = { - url = "github:nix-community/home-manager/release-25.11"; + url = "github:nix-community/home-manager/release-25.05"; inputs.nixpkgs.follows = "nixpkgs"; }; stylix = { - url = "github:danth/stylix/release-25.11"; + url = "github:danth/stylix/release-25.05"; inputs.nixpkgs.follows = "nixpkgs"; }; sops-nix = { @@ -16,7 +16,7 @@ inputs.nixpkgs.follows = "nixpkgs"; }; nixvim = { - url = "github:nix-community/nixvim/nixos-25.11"; + url = "github:nix-community/nixvim/nixos-25.05"; inputs.nixpkgs.follows = "nixpkgs"; }; zen-browser = { @@ -49,7 +49,7 @@ zenix = mkConf { nixos-modules = [ ./hardware/zenix.nix - ./nixos/programs/hyprland.nix + ./nixos/programs/niri.nix ./nixos/programs/gamer.nix ./nixos/programs/personal.nix ./nixos/services/musnix.nix @@ -67,11 +67,13 @@ ./hardware/framework-13.nix ./nixos/workstation.nix ./nixos/modules/work.nix + ./nixos/programs/cosmic.nix ./nixos/programs/niri.nix ]; home-modules = [ ./home/programs/work.nix ./home/programs/graphical.nix + ./home/desktop/cosmic/. ]; }; diff --git a/hardware/framework-13.nix b/hardware/framework-13.nix index dd70137..120e188 100644 --- a/hardware/framework-13.nix +++ b/hardware/framework-13.nix @@ -57,8 +57,6 @@ networking.hostName = "framework-13"; - services.hardware.bolt.enable = true; - system.stateVersion = "24.11"; # do not change home-manager.users.${config.user}.imports = [ { @@ -79,41 +77,6 @@ } ''; }; - - programs.niri.settings.outputs = { - # Laptop display - "eDP-1" = { - mode = { - width = 2256; - height = 1504; - refresh = 59.999; - }; - }; - "HP Inc. HP 24x 1CR9500W9Q" = { - mode = { - width = 1920; - height = 1080; - refresh = 144.001; - }; - scale = 1.0; - position = { - x = 2256; - y = 0; - }; - }; - "Ancor Communications Inc ASUS VS228 F3LMTF154813" = { - mode = { - width = 1920; - height = 1080; - refresh = 60.0; - }; - scale = 1.0; - position = { - x = 2256 + 1920; - y = 0; - }; - }; - }; } ]; diff --git a/hardware/zenix.nix b/hardware/zenix.nix index 4c8da19..daba723 100644 --- a/hardware/zenix.nix +++ b/hardware/zenix.nix @@ -68,6 +68,10 @@ hardware.amdgpu = { opencl.enable = true; + amdvlk = { + enable = true; + support32Bit.enable = true; + }; }; networking.hostName = "zenix"; @@ -81,26 +85,26 @@ home-manager.users.${user}.imports = [ { home.stateVersion = "22.05"; - # programs.niri.settings = { - # outputs."HP Inc. HP 24x 1CR9500W9Q" = { - # mode = { - # width = 1920; - # height = 1080; - # refresh = 143.855; - # }; - # variable-refresh-rate = true; - # scale = 1.0; - # }; - # outputs."HDMI-A-1" = { - # mode = { - # width = 3840; - # height = 2160; - # refresh = 120.0; - # }; - # variable-refresh-rate = true; - # scale = 2.5; - # }; - # }; + programs.niri.settings = { + outputs."HP Inc. HP 24x 1CR9500W9Q" = { + mode = { + width = 1920; + height = 1080; + refresh = 143.855; + }; + variable-refresh-rate = true; + scale = 1.0; + }; + outputs."HDMI-A-1" = { + mode = { + width = 3840; + height = 2160; + refresh = 120.0; + }; + variable-refresh-rate = true; + scale = 2.5; + }; + }; } ]; } diff --git a/home/default.nix b/home/default.nix index b68866f..824d722 100644 --- a/home/default.nix +++ b/home/default.nix @@ -29,7 +29,7 @@ mosh ripgrep usbutils - dust + du-dust htop btop libsixel diff --git a/home/desktop/hyprland/default.nix b/home/desktop/hyprland/default.nix index 2bb165c..81efc71 100644 --- a/home/desktop/hyprland/default.nix +++ b/home/desktop/hyprland/default.nix @@ -33,10 +33,11 @@ in { scroll_factor = 0.5; }; kb_options = lib.mkDefault "caps:escape"; - kb_layout = lib.mkDefault "us"; - kb_variant = lib.mkDefault "dvorak"; + kb_layout = lib.mkDefault "gb"; numlock_by_default = true; - accel_profile = "flat"; + }; + gestures = { + workspace_swipe = true; }; decoration = { rounding = 0; diff --git a/home/desktop/utils/waybar.nix b/home/desktop/utils/waybar.nix index 2c3d23c..5248e7e 100644 --- a/home/desktop/utils/waybar.nix +++ b/home/desktop/utils/waybar.nix @@ -42,12 +42,17 @@ on-click = "pwvucontrol"; }; mpris = { - format = "▶️ {title}"; - format-paused = "⏸️ {title}"; + format = "{player_icon} {title}"; + format-paused = "⏸️ {player_icon} {title}"; + player-icons = { + default = "▶️"; + mpd = "🎵"; + kdeconnect = "☎️"; + }; }; battery = { format = "{icon} {capacity}%"; - format-icons = ["🪫" "🔋" "🔋"]; + format-icons = ["🤏" "🪫" "🔋" "🔋"]; format-charging = "🔌 {capacity}%"; states = { warning = 30; diff --git a/home/modules/email.nix b/home/modules/email.nix index 5a55dd6..ccd0249 100644 --- a/home/modules/email.nix +++ b/home/modules/email.nix @@ -35,9 +35,9 @@ in { } ]; - programs.git.settings.user = { - name = config.home.userFullname; - email = cfg.email; + programs.git = { + userName = config.home.userFullname; + userEmail = cfg.email; }; accounts.email.accounts.${cfg.email} = lib.mkIf cfg.terminal { diff --git a/home/programs/gamer.nix b/home/programs/gamer.nix index 99e8627..e58aa94 100644 --- a/home/programs/gamer.nix +++ b/home/programs/gamer.nix @@ -2,7 +2,7 @@ home.packages = with pkgs; [ # Games airshipper - luanti + minetest superTuxKart xonotic diff --git a/home/programs/git.nix b/home/programs/git.nix index f950f88..cc2b2ab 100644 --- a/home/programs/git.nix +++ b/home/programs/git.nix @@ -6,11 +6,11 @@ }: { programs.git = { enable = true; - settings = { + extraConfig = { rerere.enabled = true; rebase.updateRefs = true; }; - settings.aliases = { + aliases = { ui = "!lazygit"; graph = "log --oneline --all --graph"; amend = "commit --amend --no-edit"; @@ -44,8 +44,10 @@ git fetch origin $opts ''}/bin/bare-clone"; }; + difftastic = { + enable = true; + }; }; - programs.difftastic = {enable = true;}; programs.lazygit = { enable = true; diff --git a/home/programs/graphical.nix b/home/programs/graphical.nix index 78b8460..9cb3e2c 100644 --- a/home/programs/graphical.nix +++ b/home/programs/graphical.nix @@ -28,7 +28,7 @@ # other element-desktop - bitwarden-desktop + bitwarden inputs.zen-browser.packages.x86_64-linux.default ]; @@ -67,4 +67,12 @@ ]; }; + programs.zed-editor = { + enable = true; + extensions = ["tsgo" "nix" "ansible" "helm"]; + userSettings = { + vim_mode = true; + }; + extraPackages = [pkgs.nixd pkgs.vtsls]; + }; } diff --git a/home/programs/personal/default.nix b/home/programs/personal/default.nix index 8d4c32d..e1ec3a1 100644 --- a/home/programs/personal/default.nix +++ b/home/programs/personal/default.nix @@ -38,6 +38,7 @@ krita organicmaps anki + bookworm jellyfin-mpv-shim ]; } diff --git a/home/programs/work.nix b/home/programs/work.nix index 410713c..65a96ff 100644 --- a/home/programs/work.nix +++ b/home/programs/work.nix @@ -1,7 +1,6 @@ { config, pkgs, - lib, ... }: let modifier = config.windowManager.modifierKey; @@ -14,7 +13,7 @@ in { email = "tristan.beedell@cryoserver.com"; terminal = false; }; - programs.git.settings.extraConfig = { + programs.git.extraConfig = { "includeIf \"gitdir:~/Documents/personal/\"" = { path = "~/Documents/personal/.gitconfig"; }; @@ -44,8 +43,13 @@ in { home.sessionVariables = { CYPRESS_INSTALL_BINARY = 0; CYPRESS_RUN_BINARY = "${pkgs.cypress}/bin/Cypress"; + MONGOMS_SYSTEM_BINARY = "${pkgs.callPackage ../../pkgs/mongodb.nix pkgs}/bin/mongod"; }; + gtk.gtk3.bookmarks = [ + "file:///home/tristan/OneDrive/ OneDrive" + ]; + programs.vscode = { package = pkgs.vscode; profiles.default.extensions = with pkgs; [ diff --git a/home/programs/zsh.nix b/home/programs/zsh.nix index e5056e5..2978de1 100644 --- a/home/programs/zsh.nix +++ b/home/programs/zsh.nix @@ -7,7 +7,7 @@ programs.starship.enable = true; programs.zsh = { enable = true; - dotDir = "${config.xdg.configHome}/zsh"; + dotDir = ".config/zsh"; history = { path = "${config.xdg.dataHome}/zsh/zsh_history"; }; diff --git a/home/workstation.nix b/home/workstation.nix index f4e68c0..2e9b0c2 100644 --- a/home/workstation.nix +++ b/home/workstation.nix @@ -28,6 +28,7 @@ playerctl quickemu devenv + bottles ]; services.udiskie = { diff --git a/lib/mkconf.nix b/lib/mkconf.nix index 2c40ce7..972a413 100644 --- a/lib/mkconf.nix +++ b/lib/mkconf.nix @@ -30,7 +30,7 @@ in users.${user}.imports = home-modules ++ [ - nixvim.homeModules.nixvim + nixvim.homeManagerModules.nixvim ../home/. { options.home.userFullname = nixpkgs.lib.mkOption {default = userFullname;}; diff --git a/lib/nixvim.nix b/lib/nixvim.nix index a716d1e..1248388 100644 --- a/lib/nixvim.nix +++ b/lib/nixvim.nix @@ -294,6 +294,7 @@ in { }; yamlls.enable = true; gopls.enable = true; + ansiblels.enable = true; }; keymaps = { lspBuf = { @@ -358,6 +359,27 @@ in { enable = true; folding = true; }; + treesitter-textobjects = { + enable = true; + select = { + enable = true; + lookahead = true; + keymaps = { + "af" = { + query = "@function.outer"; + desc = "Function Outer"; + }; + "ac" = { + query = "@comment.outer"; + desc = "Comment Outer"; + }; + "if" = { + query = "@function.inner"; + desc = "Function Inner"; + }; + }; + }; + }; oil = { enable = true; diff --git a/nixos/modules/work.nix b/nixos/modules/work.nix index 2669124..cd358c3 100644 --- a/nixos/modules/work.nix +++ b/nixos/modules/work.nix @@ -11,10 +11,11 @@ in { "vscode" "steam-run" "postman" - "drawio" + "drawio" # the creator had a hissyfit over a negative review: https://github.com/jgraph/drawio/discussions/4623 ]; nixpkgs.config.permittedInsecurePackages = [ + "openssl-1.1.1w" # required for mongodb "electron-27.3.11" ]; @@ -29,6 +30,8 @@ in { nixpkgs.overlays = [(import ../../lib/cypress.nix)]; + services.onedrive.enable = true; + users.users.${user}.extraGroups = ["docker"]; virtualisation.docker = { enable = true; diff --git a/nixos/programs/gamer.nix b/nixos/programs/gamer.nix index ffd64c0..e1ddbec 100644 --- a/nixos/programs/gamer.nix +++ b/nixos/programs/gamer.nix @@ -1,4 +1,4 @@ -{pkgs, ...}: { +{...}: { allowUnfreePkgNames = [ "steam" "steam-unwrapped" @@ -27,15 +27,4 @@ capSysNice = true; }; programs.gamemode.enable = true; - nixpkgs.config.permittedInsecurePackages = [ - "mbedtls-2.28.10" - ]; - services.xserver.desktopManager.retroarch = { - enable = true; - package = pkgs.retroarch.withCores (cores: - with cores; [ - bsnes - beetle-psx-hw - ]); - }; } diff --git a/nixos/programs/personal.nix b/nixos/programs/personal.nix index 40f5cbd..2a937b6 100644 --- a/nixos/programs/personal.nix +++ b/nixos/programs/personal.nix @@ -1,4 +1,4 @@ -{pkgs, ...}: { +{...}: { i18n.supportedLocales = [ "eo/UTF-8" "en_GB.UTF-8/UTF-8" @@ -9,8 +9,4 @@ enable = true; }; }; - environment.systemPackages = with pkgs; [ - warpinator - ]; - networking.firewall.allowedTCPPorts = [42000 42001]; } diff --git a/nixos/services/authentik.nix b/nixos/services/authentik.nix index 186ca42..3f95bab 100644 --- a/nixos/services/authentik.nix +++ b/nixos/services/authentik.nix @@ -10,7 +10,7 @@ }; authentik-config = { autoStart = true; - image = "ghcr.io/goauthentik/server:2025.8.4"; + image = "ghcr.io/goauthentik/server:2025.6.3"; volumes = ["/home/tristan/pods/authentik/media:/media"]; environment = { AUTHENTIK_POSTGRESQL__USER = postgres.user; diff --git a/nixos/services/grafana.nix b/nixos/services/grafana.nix index 9c8497d..c6790ba 100644 --- a/nixos/services/grafana.nix +++ b/nixos/services/grafana.nix @@ -1,27 +1,15 @@ -{ - config, - lib, - pkgs, - ... -}: let +{config, lib, pkgs, ...}: let cfg = config.services.grafana; secrets = config.sops.secrets; - mkDashboards = dashboards: - pkgs.symlinkJoin { - name = "dashboards"; - paths = map mkDashboard dashboards; - }; - mkDashboard = { - name, - url, - sha256, - patch ? lib.id, - }: - pkgs.writeTextFile { - inherit name; - text = patch (builtins.readFile (builtins.fetchurl {inherit url sha256;})); - destination = "/dash/${name}.json"; - }; + mkDashboards = dashboards: pkgs.symlinkJoin { + name = "dashboards"; + paths = map mkDashboard dashboards; + }; + mkDashboard = {name, url, sha256, patch ? lib.id}: pkgs.writeTextFile { + inherit name; + text = patch (builtins.readFile ( builtins.fetchurl {inherit url sha256;} )); + destination = "/dash/${name}.json"; + }; in { sops.secrets."grafana/oidc_client_secret" = { owner = "grafana"; @@ -46,26 +34,24 @@ in { role_attribute_path = "contains(groups[*], 'Grafana Admins') && 'Admin' || contains(groups[*], 'Grafana Editors') && 'Editor' || 'Viewer'"; }; }; - provision.dashboards.settings.providers = [ + provision.dashboards.settings.providers = [{ + name = "Node Exporter"; + type = "file"; + options.path = mkDashboards [ { - name = "Node Exporter"; - type = "file"; - options.path = mkDashboards [ - { - name = "node-exporter"; - url = "https://grafana.com/api/dashboards/1860/revisions/37/download"; - sha256 = "sha256:0qza4j8lywrj08bqbww52dgh2p2b9rkhq5p313g72i57lrlkacfl"; - # https://github.com/rfmoz/grafana-dashboards/issues/169 - patch = builtins.replaceStrings ["$__rate_interval"] ["$__range"]; - } - { - name = "synapse"; - url = "https://raw.githubusercontent.com/element-hq/synapse/refs/heads/master/contrib/grafana/synapse.json"; - sha256 = "sha256:0yzj1i4zbjy9cms75ip6ad8qyjgv9kka42gxsbzyzr2syznsmqw0"; - } - ]; + name = "node-exporter"; + url = "https://grafana.com/api/dashboards/1860/revisions/37/download"; + sha256 = "sha256:0qza4j8lywrj08bqbww52dgh2p2b9rkhq5p313g72i57lrlkacfl"; + # https://github.com/rfmoz/grafana-dashboards/issues/169 + patch = builtins.replaceStrings ["$__rate_interval"] ["$__range"]; } - ]; + { + name = "synapse"; + url = "https://raw.githubusercontent.com/element-hq/synapse/refs/heads/master/contrib/grafana/synapse.json"; + sha256 = "sha256:16fl81sx1by0wldw4vda0zr1pvbq1dpih1fikzwlvmk63mpc80kb"; + } + ]; + }]; }; services.nginx.virtualHosts = { ${cfg.settings.server.domain} = { diff --git a/nixos/services/jellyfin.nix b/nixos/services/jellyfin.nix index 3a74d6f..91c4347 100644 --- a/nixos/services/jellyfin.nix +++ b/nixos/services/jellyfin.nix @@ -1,11 +1,10 @@ -{pkgs, ...}: { +{ users.groups.media = {}; services.jellyfin = { enable = true; group = "media"; # access to user stuff openFirewall = true; }; - environment.variables.JELLYFIN_FFMPEG = "${pkgs.jellyfin-ffmpeg}/bin/ffmpeg"; services.nginx.virtualHosts."movies.tristans.cloud" = { forceSSL = true; enableACME = true; diff --git a/nixos/services/mautrix/signal.nix b/nixos/services/mautrix/signal.nix index 10a782a..45f45d1 100644 --- a/nixos/services/mautrix/signal.nix +++ b/nixos/services/mautrix/signal.nix @@ -1,13 +1,10 @@ -{ - config, - lib, - ... -}: let +{config, lib, ...}: let inherit (import ./lib.nix) toAppRegistration; inherit (config.sops) templates placeholder; in { + virtualisation.oci-containers.containers.mautrix-signal = { - image = "dock.mau.dev/mautrix/signal:v25.10"; + image = "dock.mau.dev/mautrix/signal:v0.8.3"; dependsOn = ["mautrix-signal-psql"]; volumes = [ "/home/tristan/pods/signal-bridge/mautrix-signal:/data:z" @@ -18,15 +15,16 @@ in { ]; }; - # when you get around to backing this up - # 1. stop the server. - # 2. backup the db. - # 3. migrate to newer version of postgres - # 4. migrate db to local +# when you get around to backing this up +# 1. stop the server. +# 2. backup the db. +# 3. migrate to newer version of postgres +# 4. migrate db to local virtualisation.oci-containers.containers.mautrix-signal-psql = { image = "docker.io/postgres:14-alpine"; - ports = ["5435:5432"]; - volumes = ["/home/tristan/pods/signal-bridge/db:/var/lib/postgresql/data"]; + # ports = [ "127.0.0.1:5435:5432" ]; + ports = [ "5435:5432" ]; + volumes = [ "/home/tristan/pods/signal-bridge/db:/var/lib/postgresql/data" ]; environmentFiles = [templates."mautrix-signal/psql.env".path]; }; sops.templates = { @@ -60,4 +58,5 @@ in { services.matrix-synapse.settings.app_service_config_files = [ templates."mautrix-signal/appservice.yaml".path ]; + } diff --git a/nixos/services/mautrix/whatsapp.nix b/nixos/services/mautrix/whatsapp.nix index 786e4d9..59e6da8 100644 --- a/nixos/services/mautrix/whatsapp.nix +++ b/nixos/services/mautrix/whatsapp.nix @@ -1,4 +1,5 @@ -{config, ...}: { +{config, ...}: +{ nixpkgs.config.permittedInsecurePackages = [ "olm-3.2.16" ]; @@ -6,9 +7,9 @@ enable = true; registerToSynapse = true; settings = { - database = { - type = "sqlite3-fk-wal"; - uri = "file:/var/lib/mautrix-whatsapp/mautrix-whatsapp.db?_txlock=immediate"; + appservice.database = { + type = "sqlite3"; + uri = "/var/lib/mautrix-whatsapp/mautrix-whatsapp.db"; }; homeserver = { address = "http://localhost:8008"; @@ -19,13 +20,12 @@ "tristans.cloud" = "user"; "@tristan:tristans.cloud" = "admin"; }; + encryption = { + allow = true; + appservice = false; + }; personal_filtering_spaces = true; }; - encryption = { - allow = true; - appservice = false; - pickle_key = "maunium.net/go/mautrix-whatsapp"; - }; }; }; } diff --git a/nixos/services/monero.nix b/nixos/services/monero.nix index 6fdf924..c502f0d 100644 --- a/nixos/services/monero.nix +++ b/nixos/services/monero.nix @@ -8,13 +8,9 @@ extraConfig = '' prune-blockchain=1 confirm-external-bind=1 - out-peers=8 - in-peers=16 + out-peers=64 # This will enable much faster sync and tx awareness; the default 8 is suboptimal nowadays + in-peers=1024 # The default is unlimited; we prefer to put a cap on this zmq-pub=tcp://localhost:18083 - add-priority-node=p2pmd.xmrvsbeast.com:18080 - add-priority-node=nodes.hashvault.pro:18080 - enable-dns-blocklist=1 - enforce-dns-checkpointing=1 ''; }; } diff --git a/nixos/services/prometheus.nix b/nixos/services/prometheus.nix index fb29da9..bae5c9f 100644 --- a/nixos/services/prometheus.nix +++ b/nixos/services/prometheus.nix @@ -3,7 +3,7 @@ nodes = [ "alpine" "100.106.49.128" # laptop - "100.78.76.10" # gaming pc + "100.65.29.110" # gaming pc ]; addPort = ip: "${ip}:${toString prometheus.exporters.node.port}"; in { @@ -68,13 +68,11 @@ in { configuration = { route = { receiver = "alertmanager-ntfy"; - routes = [ - { - matchers = [ - ''node_filesystem_device_error != 0'' - ]; - } - ]; + routes = [{ + matchers = [ + ''node_filesystem_device_error != 0'' + ]; + }]; }; }; }; diff --git a/nixos/services/synapse/default.nix b/nixos/services/synapse/default.nix index c80c8d8..229063e 100644 --- a/nixos/services/synapse/default.nix +++ b/nixos/services/synapse/default.nix @@ -36,11 +36,6 @@ in { "synapse/secrets.yaml" = { owner = "matrix-synapse"; content = builtins.toJSON { - jwt_config = { - enabled = true; - secret = sops.placeholder."synapse/oidc_client_secret"; - algorithm = "RS256"; - }; oidc_providers = [ { idp_id = "authentik"; @@ -89,21 +84,6 @@ in { ]; } ]; - # log_config = pkgs.writeTextFile { - # name = "synapse-logging.json"; - # text = builtins.toJSON { - # version = 1; - # root = { - # level = "INFO"; - # handlers = ["console"]; - # }; - # formatters.precise.format = "%(levelname)s - %(name)s - %(message)s"; - # handlers.console = { - # class = "logging.StreamHandler"; - # formatter = "precise"; - # }; - # }; - # }; }; }; diff --git a/nixos/workstation.nix b/nixos/workstation.nix index 8d36e30..daf35cd 100644 --- a/nixos/workstation.nix +++ b/nixos/workstation.nix @@ -22,7 +22,6 @@ hardware.bluetooth.enable = true; services.blueman.enable = true; - services.power-profiles-daemon.enable = true; services.gnome.gnome-keyring.enable = true; @@ -69,7 +68,7 @@ }; emoji = { - package = pkgs.noto-fonts-color-emoji; + package = pkgs.noto-fonts-emoji; name = "Noto Color Emoji"; }; }; diff --git a/pkgs/mpv-skipsilence.nix b/pkgs/mpv-skipsilence.nix index c7e318b..1391603 100644 --- a/pkgs/mpv-skipsilence.nix +++ b/pkgs/mpv-skipsilence.nix @@ -10,7 +10,7 @@ buildLua { src = fetchgit { url = "https://codeberg.org/ferreum/mpv-skipsilence.git"; - hash = "sha256-XmrVZRJAQctIiuznw/fQzs+9+QKOyTnJI2JOEWBWnVA="; + hash = "sha256-+sOMWFFumJUk5gFE1iCTvWub3PWzYOkulXJLCGS4fYA="; }; passthru.updateScript = gitUpdater {};