diff --git a/common/nixos/common.nix b/common/nixos/common.nix index acf063a..f3dc8ed 100644 --- a/common/nixos/common.nix +++ b/common/nixos/common.nix @@ -16,30 +16,58 @@ ../../common/style/stylix.nix ]; # - nixpkgs.config.allowUnfree = true; - - nix.settings.experimental-features = [ - "nix-command" - "flakes" + security.sudo.extraRules = [ + { + users = [ "gwg313" ]; + commands = [ + { + command = "/run/current-system/sw/bin/nixos-rebuild"; + options = [ "NOPASSWD" ]; + } + ]; + } ]; + nixpkgs.config = { + allowUnfree = true; + }; + nix = { + settings = { + substituters = [ + "https://cache.nixos.org?priority=10" + "https://hyprland.cachix.org" + "https://nix-community.cachix.org" + "https://cache.garnix.io" + "https://numtide.cachix.org" + ]; + trusted-public-keys = [ + "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" + "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" + "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g=" + "numtide.cachix.org-1:2ps1kLBUWjxIneOy1Ik6cQjb41X0iXVXeHigGmycPPE=" + ]; + experimental-features = [ + "nix-command" + "flakes" + ]; + auto-optimise-store = true; + trusted-users = [ "${user}" ]; + }; + optimise.automatic = true; + gc = { + automatic = true; + dates = "daily"; + options = "--delete-older-than 14d"; + }; - nix.settings.auto-optimise-store = true; - nix.optimise.automatic = true; - - nix.settings.trusted-users = [ "${user}" ]; + }; + services = { + fstrim.enable = true; + }; # Disable so comma can be installed programs.command-not-found.enable = false; programs.nix-index-database.comma.enable = true; - nix.gc = { - automatic = true; - dates = "daily"; - options = "--delete-older-than 14d"; - }; - - services.fstrim.enable = true; - # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions # on your system we e ere taken. It's perfectly fine and recommended to leave diff --git a/common/nixos/documentation.nix b/common/nixos/documentation.nix index 9700df8..19d8e1e 100644 --- a/common/nixos/documentation.nix +++ b/common/nixos/documentation.nix @@ -13,6 +13,6 @@ }; environment.sessionVariables = { - MANPAGER = "sh -c 'sed -u -e \"s/\\x1B\[[0-9;]*m//g; s/.\\x08//g\" | bat -p -lman'"; + MANPAGER = "sh -c '${pkgs.gnugrep}/bin/sed -u -e \"s/\\x1B\[[0-9\;]*m//g; s/.\\x08//g\" | ${pkgs.bat}/bin/bat -p -lman'"; }; } diff --git a/common/nixos/packages.nix b/common/nixos/packages.nix index 5fa894b..626311c 100644 --- a/common/nixos/packages.nix +++ b/common/nixos/packages.nix @@ -15,6 +15,10 @@ enableSSHSupport = true; }; + environment.sessionVariables = { + SSH_AUTH_SOCK = "/run/user/1000/gnupg/S.gpg-agent.ssh"; + }; + # List packages installed in system profile. To search, run: # $ nix search wget environment.systemPackages = with pkgs; [ diff --git a/flake.lock b/flake.lock index a627056..15e0036 100644 --- a/flake.lock +++ b/flake.lock @@ -61,11 +61,11 @@ ] }, "locked": { - "lastModified": 1742213273, - "narHash": "sha256-0l0vDb4anfsBu1rOs94bC73Hub+xEivgBAo6QXl2MmU=", + "lastModified": 1743265529, + "narHash": "sha256-QbjP15/2N+VJl0b5jxrrTc+VOt39aU4XrDvtP0Lz5ik=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "484b732195cc53f4536ce4bd59a5c6402b1e7ccf", + "rev": "1d2dbd72c2bbaceab031c592d4810f744741d203", "type": "github" }, "original": { @@ -235,11 +235,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1737621947, - "narHash": "sha256-8HFvG7fvIFbgtaYAY2628Tb89fA55nPm2jSiNs0/Cws=", + "lastModified": 1742042642, + "narHash": "sha256-D0gP8srrX0qj+wNYNPdtVJsQuFzIng3q43thnHXQ/es=", "owner": "cachix", "repo": "cachix", - "rev": "f65a3cd5e339c223471e64c051434616e18cc4f5", + "rev": "a624d3eaf4b1d225f918de8543ed739f2f574203", "type": "github" }, "original": { @@ -282,11 +282,11 @@ ] }, "locked": { - "lastModified": 1742931579, - "narHash": "sha256-FUru0FYrHekRpSQW+QazYIdhcU2pnGOvy+YpYnGt5IE=", + "lastModified": 1743783972, + "narHash": "sha256-5wPsNCnWmeLpLxavsftA9L7tnYgtlexV7FwLegxtpy4=", "owner": "cachix", "repo": "devenv", - "rev": "d15c0bd7389fe6e49a8dd487c734ed7cf76cb1fe", + "rev": "2f53e2f867e0c2ba18b880e66169366e5f8ca554", "type": "github" }, "original": { @@ -299,11 +299,11 @@ "firefox-gnome-theme": { "flake": false, "locked": { - "lastModified": 1741628778, - "narHash": "sha256-RsvHGNTmO2e/eVfgYK7g+eYEdwwh7SbZa+gZkT24MEA=", + "lastModified": 1743774811, + "narHash": "sha256-oiHLDHXq7ymsMVYSg92dD1OLnKLQoU/Gf2F1GoONLCE=", "owner": "rafaelmardojai", "repo": "firefox-gnome-theme", - "rev": "5a81d390bb64afd4e81221749ec4bffcbeb5fa80", + "rev": "df53a7a31872faf5ca53dd0730038a62ec63ca9e", "type": "github" }, "original": { @@ -467,11 +467,11 @@ ] }, "locked": { - "lastModified": 1741352980, - "narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=", + "lastModified": 1743550720, + "narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9", + "rev": "c621e8422220273271f52058f618c94e405bb0f5", "type": "github" }, "original": { @@ -602,11 +602,11 @@ ] }, "locked": { - "lastModified": 1740849354, - "narHash": "sha256-oy33+t09FraucSZ2rZ6qnD1Y1c8azKKmQuCvF2ytUko=", + "lastModified": 1742649964, + "narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "4a709a8ce9f8c08fa7ddb86761fe488ff7858a07", + "rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82", "type": "github" }, "original": { @@ -628,11 +628,11 @@ ] }, "locked": { - "lastModified": 1741379162, - "narHash": "sha256-srpAbmJapkaqGRE3ytf3bj4XshspVR5964OX5LfjDWc=", + "lastModified": 1742649964, + "narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "b5a62751225b2f62ff3147d0a334055ebadcd5cc", + "rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82", "type": "github" }, "original": { @@ -797,14 +797,15 @@ "inputs": { "nixpkgs": [ "nixpkgs" - ] + ], + "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1742957044, - "narHash": "sha256-gwW0tBIA77g6qq45y220drTy0DmThF3fJMwVFUtYV9c=", + "lastModified": 1744127405, + "narHash": "sha256-Cqkmsb3CDcUREjszRe2/qkvztFzEujkaaqV5/nqfdlk=", "owner": "nix-community", "repo": "home-manager", - "rev": "ce287a5cd3ef78203bc78021447f937a988d9f6f", + "rev": "fefb6ae1b301b620a81645789e19945092b079da", "type": "github" }, "original": { @@ -822,11 +823,11 @@ ] }, "locked": { - "lastModified": 1741635347, - "narHash": "sha256-2aYfV44h18alHXopyfL4D9GsnpE5XlSVkp4MGe586VU=", + "lastModified": 1743869639, + "narHash": "sha256-Xhe3whfRW/Ay05z9m1EZ1/AkbV1yo0tm1CbgjtCi4rQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "7fb8678716c158642ac42f9ff7a18c0800fea551", + "rev": "d094c6763c6ddb860580e7d3b4201f8f496a6836", "type": "github" }, "original": { @@ -973,11 +974,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1742952129, - "narHash": "sha256-A/62kt6kxVvD6PSpZrUDXqZRfN/ScBo1W/KlX2ZMOIo=", + "lastModified": 1744134195, + "narHash": "sha256-Y98IIVaoOuZy1T/+2l7ljp9vhNOkR99PZotVKu4QxA8=", "ref": "refs/heads/main", - "rev": "3fc3521a97eba0fa67da80f17ae7872b1073f08d", - "revCount": 5932, + "rev": "ea852965ffd4bf2bd2a74c0e821ba6190021eb31", + "revCount": 5980, "submodules": true, "type": "git", "url": "https://github.com/hyprwm/Hyprland" @@ -1000,11 +1001,11 @@ ] }, "locked": { - "lastModified": 1738422629, - "narHash": "sha256-5v+bv75wJWvahyM2xcMTSNNxmV8a7hb01Eey5zYnBJw=", + "lastModified": 1743714874, + "narHash": "sha256-yt8F7NhMFCFHUHy/lNjH/pjZyIDFNk52Q4tivQ31WFo=", "owner": "hyprwm", "repo": "hyprland-protocols", - "rev": "755aef8dab49d0fc4663c715fa4ad221b2aedaed", + "rev": "3a5c2bda1c1a4e55cc1330c782547695a93f05b2", "type": "github" }, "original": { @@ -1336,11 +1337,11 @@ "nixpkgs": "nixpkgs_6" }, "locked": { - "lastModified": 1742881618, - "narHash": "sha256-4C5Zzo4S9zD+4ZL7MKLE7FqJEMVkOTvfIV9uEBQ8fDY=", + "lastModified": 1744085671, + "narHash": "sha256-u2y/IRs0zfIsiCyKsdpDjQMtmMEgjxSJ00MeHtgqsrY=", "owner": "Jas-SinghFSU", "repo": "HyprPanel", - "rev": "7b5c339e9363187e249fa2f6eadbb295b0e8c6ff", + "rev": "a48b072b53a9ed2490867e366ea31c019a117fd1", "type": "github" }, "original": { @@ -1357,11 +1358,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1739049006, - "narHash": "sha256-AlvqgzQTaSWepmfNHugQM+aSuhsNaLUU95y5VzdbuI8=", + "lastModified": 1743791843, + "narHash": "sha256-51ws0OsHlYUvn9sXOegd6JcPg3nnJRvpz8vaqg4kYo0=", "owner": "hyprwm", "repo": "hyprpolkitagent", - "rev": "3bef8bf8fcac95339d1e8cab3addbe83a7f99d57", + "rev": "352638edcd400253dff375c36075ec9548ae1d32", "type": "github" }, "original": { @@ -1401,11 +1402,11 @@ ] }, "locked": { - "lastModified": 1741534688, - "narHash": "sha256-EV3945SnjOCuRVbGRghsWx/9D89FyshnSO1Q6/TuQ14=", + "lastModified": 1743950287, + "narHash": "sha256-/6IAEWyb8gC/NKZElxiHChkouiUOrVYNq9YqG0Pzm4Y=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "dd1f720cbc2dbb3c71167c9598045dd3261d27b3", + "rev": "f2dc70e448b994cef627a157ee340135bd68fbc6", "type": "github" }, "original": { @@ -1652,11 +1653,11 @@ ] }, "locked": { - "lastModified": 1742701275, - "narHash": "sha256-AulwPVrS9859t+eJ61v24wH/nfBEIDSXYxlRo3fL/SA=", + "lastModified": 1743911143, + "narHash": "sha256-4j4JPwr0TXHH4ZyorXN5yIcmqIQr0WYacsuPA4ktONo=", "owner": "Mic92", "repo": "nix-index-database", - "rev": "36dc43cb50d5d20f90a28d53abb33a32b0a2aae6", + "rev": "a36f6a7148aec2c77d78e4466215cceb2f5f4bfb", "type": "github" }, "original": { @@ -1670,14 +1671,14 @@ "flake-compat": "flake-compat_5", "nixpkgs": "nixpkgs_9", "systems": "systems_4", - "treefmt-nix": "treefmt-nix" + "treefmt-nix": "treefmt-nix_2" }, "locked": { - "lastModified": 1742915532, - "narHash": "sha256-LJ9rlcyOyL4RIG5FgOG8FhCnoJrh83Wqu5yOQkGe0Z0=", + "lastModified": 1743833482, + "narHash": "sha256-tUV7MhS/JFOEp3JQxiyvo8K3aS5zP5jcF/Buk57yWDo=", "owner": "kaylorben", "repo": "nixcord", - "rev": "eb7f65e995720ccde1928fedad335fd468bc152a", + "rev": "2903d897d5939324a758bd3f2cee1fbcb118b5d1", "type": "github" }, "original": { @@ -1720,11 +1721,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1742669843, - "narHash": "sha256-G5n+FOXLXcRx+3hCJ6Rt6ZQyF1zqQ0DL0sWAMn2Nk0w=", + "lastModified": 1743964447, + "narHash": "sha256-nEo1t3Q0F+0jQ36HJfbJtiRU4OI+/0jX/iITURKe3EE=", "owner": "nixos", "repo": "nixpkgs", - "rev": "1e5b653dff12029333a6546c11e108ede13052eb", + "rev": "063dece00c5a77e4a0ea24e5e5a5bd75232806f8", "type": "github" }, "original": { @@ -1736,11 +1737,11 @@ }, "nixpkgs_10": { "locked": { - "lastModified": 1742669843, - "narHash": "sha256-G5n+FOXLXcRx+3hCJ6Rt6ZQyF1zqQ0DL0sWAMn2Nk0w=", + "lastModified": 1743964447, + "narHash": "sha256-nEo1t3Q0F+0jQ36HJfbJtiRU4OI+/0jX/iITURKe3EE=", "owner": "nixos", "repo": "nixpkgs", - "rev": "1e5b653dff12029333a6546c11e108ede13052eb", + "rev": "063dece00c5a77e4a0ea24e5e5a5bd75232806f8", "type": "github" }, "original": { @@ -1752,11 +1753,11 @@ }, "nixpkgs_11": { "locked": { - "lastModified": 1742800061, - "narHash": "sha256-oDJGK1UMArK52vcW9S5S2apeec4rbfNELgc50LqiPNs=", + "lastModified": 1744032190, + "narHash": "sha256-KSlfrncSkcu1YE+uuJ/PTURsSlThoGkRqiGDVdbiE/k=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1750f3c1c89488e2ffdd47cab9d05454dddfb734", + "rev": "b0b4b5f8f621bfe213b8b21694bab52ecfcbf30b", "type": "github" }, "original": { @@ -1768,11 +1769,11 @@ }, "nixpkgs_12": { "locked": { - "lastModified": 1742578646, - "narHash": "sha256-GiQ40ndXRnmmbDZvuv762vS+gew1uDpFwOfgJ8tLiEs=", + "lastModified": 1743689281, + "narHash": "sha256-y7Hg5lwWhEOgflEHRfzSH96BOt26LaYfrYWzZ+VoVdg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "94c4dbe77c0740ebba36c173672ca15a7926c993", + "rev": "2bfc080955153be0be56724be6fa5477b4eefabb", "type": "github" }, "original": { @@ -1800,11 +1801,11 @@ }, "nixpkgs_14": { "locked": { - "lastModified": 1742422364, - "narHash": "sha256-mNqIplmEohk5jRkqYqG19GA8MbQ/D4gQSK0Mu4LvfRQ=", + "lastModified": 1743583204, + "narHash": "sha256-F7n4+KOIfWrwoQjXrL2wD9RhFYLs2/GGe/MQY1sSdlE=", "owner": "nixos", "repo": "nixpkgs", - "rev": "a84ebe20c6bc2ecbcfb000a50776219f48d134cc", + "rev": "2c8d3f48d33929642c1c12cd243df4cc7d2ce434", "type": "github" }, "original": { @@ -1864,11 +1865,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1742669843, - "narHash": "sha256-G5n+FOXLXcRx+3hCJ6Rt6ZQyF1zqQ0DL0sWAMn2Nk0w=", + "lastModified": 1743827369, + "narHash": "sha256-rpqepOZ8Eo1zg+KJeWoq1HAOgoMCDloqv5r2EAa9TSA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1e5b653dff12029333a6546c11e108ede13052eb", + "rev": "42a1c966be226125b48c384171c44c651c236c22", "type": "github" }, "original": { @@ -1949,11 +1950,11 @@ "nuschtosSearch": "nuschtosSearch" }, "locked": { - "lastModified": 1742916868, - "narHash": "sha256-2eN75OsaNpL3FzAs3hz9Xm3+htIP3iLdfRP6PGfOoS8=", + "lastModified": 1744119992, + "narHash": "sha256-XtwL/QfMjJtqO//mAjEfiC7noaAtH/gtQttcBE8dufs=", "owner": "nix-community", "repo": "nixvim", - "rev": "6b95b825529aa2d8536f7684fe64382ef4d15d84", + "rev": "7114362f36123a8401f4905c2e833fd9a0c2ddd1", "type": "github" }, "original": { @@ -1969,14 +1970,14 @@ "stylix", "nixpkgs" ], - "treefmt-nix": "treefmt-nix_2" + "treefmt-nix": "treefmt-nix_3" }, "locked": { - "lastModified": 1741693509, - "narHash": "sha256-emkxnsZstiJWmGACimyAYqIKz2Qz5We5h1oBVDyQjLw=", + "lastModified": 1743884191, + "narHash": "sha256-foVcginhVvjg8ZnTzY5wwMeZ4wjJ8yX66PW5kgyivPE=", "owner": "nix-community", "repo": "NUR", - "rev": "5479646b2574837f1899da78bdf9a48b75a9fb27", + "rev": "fde90f5f52e13eed110a0e53a2818a2b09e4d37c", "type": "github" }, "original": { @@ -1995,11 +1996,11 @@ ] }, "locked": { - "lastModified": 1742659553, - "narHash": "sha256-i/JCrr/jApVorI9GkSV5to+USrRCa0rWuQDH8JSlK2A=", + "lastModified": 1743683223, + "narHash": "sha256-LdXtHFvhEC3S64dphap1pkkzwjErbW65eH1VRerCUT0=", "owner": "NuschtOS", "repo": "search", - "rev": "508752835128a3977985a4d5225ff241f7756181", + "rev": "56a49ffef2908dad1e9a8adef1f18802bc760962", "type": "github" }, "original": { @@ -2121,11 +2122,11 @@ "nixpkgs": "nixpkgs_12" }, "locked": { - "lastModified": 1742700801, - "narHash": "sha256-ZGlpUDsuBdeZeTNgoMv+aw0ByXT2J3wkYw9kJwkAS4M=", + "lastModified": 1744103455, + "narHash": "sha256-SR6+qjkPjGQG+8eM4dCcVtss8r9bre/LAxFMPJpaZeU=", "owner": "Mic92", "repo": "sops-nix", - "rev": "67566fe68a8bed2a7b1175fdfb0697ed22ae8852", + "rev": "69d5a5a4635c27dae5a742f36108beccc506c1ba", "type": "github" }, "original": { @@ -2174,11 +2175,11 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1742926290, - "narHash": "sha256-63joFDrDekkI8papsDPwObKCCYSZ7t/1t94M398BxLY=", + "lastModified": 1744127443, + "narHash": "sha256-8E4hqLYI4zJbEVPQBq5zzJDsiHGOU4+0htGKexwXRPw=", "owner": "danth", "repo": "stylix", - "rev": "61a5f77f2202f3a79797089752713e16b1ab5b10", + "rev": "a2f8840bed6daade6b980426c9f72dd672e92329", "type": "github" }, "original": { @@ -2195,11 +2196,11 @@ "nixpkgs": "nixpkgs_13" }, "locked": { - "lastModified": 1742951573, - "narHash": "sha256-Sbe2mWbThDwFk6qIq3TiXZZj8GpQCHxPD1UL+Kkj70o=", + "lastModified": 1744116296, + "narHash": "sha256-MBUeztCsuziIE0vmVi19Eg1UQ+HHDATb+gK6SoU6v4M=", "owner": "MHNightCat", "repo": "superfile", - "rev": "74c1cc6129e78440b9c9a7ea7d40d03bc28e0533", + "rev": "2854a6bfa77384f2453a6e469d73cf7cba9a89da", "type": "github" }, "original": { @@ -2349,11 +2350,11 @@ "tinted-schemes": { "flake": false, "locked": { - "lastModified": 1741468895, - "narHash": "sha256-YKM1RJbL68Yp2vESBqeZQBjTETXo8mCTTzLZyckCfZk=", + "lastModified": 1742851696, + "narHash": "sha256-sR4K+OVFKeUOvNIqcCr5Br7NLxOBEwoAgsIyjsZmb8s=", "owner": "tinted-theming", "repo": "schemes", - "rev": "47c8c7726e98069cade5827e5fb2bfee02ce6991", + "rev": "c37771c4ae8ff1667e27ddcf24991ebeb94a4e77", "type": "github" }, "original": { @@ -2365,11 +2366,11 @@ "tinted-tmux": { "flake": false, "locked": { - "lastModified": 1740877430, - "narHash": "sha256-zWcCXgdC4/owfH/eEXx26y5BLzTrefjtSLFHWVD5KxU=", + "lastModified": 1743296873, + "narHash": "sha256-8IQulrb1OBSxMwdKijO9fB70ON//V32dpK9Uioy7FzY=", "owner": "tinted-theming", "repo": "tinted-tmux", - "rev": "d48ee86394cbe45b112ba23ab63e33656090edb4", + "rev": "af5152c8d7546dfb4ff6df94080bf5ff54f64e3a", "type": "github" }, "original": { @@ -2395,6 +2396,27 @@ } }, "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "home-manager", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1743748085, + "narHash": "sha256-uhjnlaVTWo5iD3LXics1rp9gaKgDRQj6660+gbUU3cE=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "815e4121d6a5d504c0f96e5be2dd7f871e4fd99d", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, + "treefmt-nix_2": { "inputs": { "nixpkgs": [ "nixcord", @@ -2415,7 +2437,7 @@ "type": "github" } }, - "treefmt-nix_2": { + "treefmt-nix_3": { "inputs": { "nixpkgs": [ "stylix", @@ -2530,11 +2552,11 @@ "nixpkgs": "nixpkgs_14" }, "locked": { - "lastModified": 1742602442, - "narHash": "sha256-jwOKx/hQZONnlRvCRmV0KUj/98S8okScWRgWNGsV3yQ=", + "lastModified": 1743854785, + "narHash": "sha256-Dfirlfzi40NZVBZuO3JVBoWrS0mZSWi6r4us2M+2YX8=", "ref": "refs/heads/main", - "rev": "1d0b9424a10f78d2bcf056f36ad21cd11a01ed3e", - "revCount": 81, + "rev": "be66251224e6fc81cb5f2274aecd0bb91ae9aa16", + "revCount": 85, "type": "git", "url": "https://git.sr.ht/~canasta/zen-browser-flake/" }, diff --git a/home-manager/machines/candlekeep.nix b/home-manager/machines/candlekeep.nix index 563fd1b..b92539b 100644 --- a/home-manager/machines/candlekeep.nix +++ b/home-manager/machines/candlekeep.nix @@ -32,9 +32,9 @@ ../modules/ags.nix ../modules/neovim ../modules/yazi.nix - ../modules/hyprpanel.nix - ../modules/hyprlock.nix - ../modules/hypridle.nix + # ../modules/hyprpanel.nix + # ../modules/hyprlock.nix + # ../modules/hypridle.nix # ../modules/hyprspace.nix ../modules/qutebrowser.nix ../scripts/default.nix diff --git a/home-manager/modules/fzf.nix b/home-manager/modules/fzf.nix index 9e35d00..dea844c 100644 --- a/home-manager/modules/fzf.nix +++ b/home-manager/modules/fzf.nix @@ -20,7 +20,7 @@ in defaultOptions = [ "--margin=1" "--layout=reverse" - "--border=rounded" + "--border=none" "--info='hidden'" "--header=''" "--prompt='/ '" diff --git a/home-manager/modules/git.nix b/home-manager/modules/git.nix index b1e2b82..fce6e22 100644 --- a/home-manager/modules/git.nix +++ b/home-manager/modules/git.nix @@ -115,6 +115,22 @@ rebasemain = "git pull origin main --rebase"; hist = ''log --pretty=format:"%Cgreen%h %Creset%cd %Cblue[%cn] %Creset%s%C(yellow)%d%C(reset)" --graph --date=relative --decorate --all''; llog = ''log --graph --name-status --pretty=format:"%C(red)%h %C(reset)(%cd) %C(green)%an %Creset%s %C(yellow)%d%Creset" --date=relative''; + g = "lazygit"; + ga = "git add"; + gc = "git commit"; + gcu = "git add . && git commit -m 'Update'"; + gp = "git push"; + gpl = "git pull"; + gs = "git status"; + gd = "git diff"; + gco = "git checkout"; + gcb = "git checkout -b"; + gbr = "git branch"; + grs = "git reset HEAD~1"; + grh = "git reset --hard HEAD~1"; + + gaa = "git add ."; + gcm = "git commit -m"; }; }; diff --git a/home-manager/modules/hyprland.nix b/home-manager/modules/hyprland.nix index 7c1a7da..afc4eb3 100644 --- a/home-manager/modules/hyprland.nix +++ b/home-manager/modules/hyprland.nix @@ -27,9 +27,7 @@ touchpad = { natural_scroll = true; scroll_factor = 0.38; - tap-and-drag = true; - middle_button_emulation = true; - tap-to-click = true; + clickfinger_behavior = true; }; }; diff --git a/home-manager/modules/hyprland/default.nix b/home-manager/modules/hyprland/default.nix index bf895a9..baf4ba5 100644 --- a/home-manager/modules/hyprland/default.nix +++ b/home-manager/modules/hyprland/default.nix @@ -20,6 +20,9 @@ in ./animations.nix ./bindings.nix ./polkitagent.nix + ./hyprlock.nix + ./hypridle.nix + ./hyprpanel.nix # ./hyprspace.nix ]; diff --git a/home-manager/modules/hyprland/hypridle.nix b/home-manager/modules/hyprland/hypridle.nix new file mode 100644 index 0000000..f7e4bf6 --- /dev/null +++ b/home-manager/modules/hyprland/hypridle.nix @@ -0,0 +1,28 @@ +# Hypridle is a daemon that listens for user activity and runs commands when the user is idle. +{ pkgs, ... }: +{ + services.hypridle = { + enable = true; + settings = { + + general = { + ignore_dbus_inhibit = false; + lock_cmd = "pidof hyprlock || ${pkgs.hyprlock}/bin/hyprlock"; + before_sleep_cmd = "loginctl lock-session"; + after_sleep_cmd = "hyprctl dispatch dpms on"; + }; + + listener = [ + { + timeout = 600; + on-timeout = "pidof hyprlock || ${pkgs.hyprlock}/bin/hyprlock"; + } + + { + timeout = 660; + on-timeout = "systemctl suspend"; + } + ]; + }; + }; +} diff --git a/home-manager/modules/hyprland/hyprlock.nix b/home-manager/modules/hyprland/hyprlock.nix new file mode 100644 index 0000000..26d4117 --- /dev/null +++ b/home-manager/modules/hyprland/hyprlock.nix @@ -0,0 +1,89 @@ +{ config, lib, ... }: +let + foreground = "rgba(216, 222, 233, 0.70)"; + imageStr = toString config.stylix.image; + font = config.stylix.fonts.serif.name; +in +{ + programs.hyprlock = { + enable = true; + settings = { + general = { + grace = 5; + no_fade_in = false; + disable_loading_bar = false; + }; + + # BACKGROUND + background = { + monitor = ""; + # path = imageStr; + blur_passes = 0; + contrast = 0.8916; + brightness = 0.7172; + vibrancy = 0.1696; + vibrancy_darkness = 0.0; + }; + + label = [ + { + # Day-Month-Date + monitor = ""; + text = ''cmd[update:1000] echo -e "$(date +"%A, %B %d")"''; + color = foreground; + font_size = 28; + font_family = font + " Bold"; + position = "0, 490"; + halign = "center"; + valign = "center"; + } + # Time + { + monitor = ""; + text = ''cmd[update:1000] echo "$(date +"%I:%M")"''; + color = foreground; + font_size = 160; + font_family = "steelfish outline regular"; + position = "0, 370"; + halign = "center"; + valign = "center"; + } + # USER + { + monitor = ""; + text = " $USER"; + color = foreground; + outline_thickness = 2; + dots_size = 0.2; # Scale of input-field height, 0.2 - 0.8 + dots_spacing = 0.2; # Scale of dots' absolute size, 0.0 - 1.0 + dots_center = true; + font_size = 18; + font_family = font + " Bold"; + position = "0, -180"; + halign = "center"; + valign = "center"; + } + ]; + + # INPUT FIELD + input-field = lib.mkForce { + monitor = ""; + size = "300, 60"; + outline_thickness = 2; + dots_size = 0.2; # Scale of input-field height, 0.2 - 0.8 + dots_spacing = 0.2; # Scale of dots' absolute size, 0.0 - 1.0 + dots_center = true; + outer_color = "rgba(255, 255, 255, 0)"; + inner_color = "rgba(255, 255, 255, 0.1)"; + font_color = foreground; + fade_on_empty = false; + font_family = font + " Bold"; + placeholder_text = "🔒 Enter Password"; + hide_input = false; + position = "0, -250"; + halign = "center"; + valign = "center"; + }; + }; + }; +} diff --git a/home-manager/modules/hyprland/hyprpanel.nix b/home-manager/modules/hyprland/hyprpanel.nix new file mode 100644 index 0000000..f5a8996 --- /dev/null +++ b/home-manager/modules/hyprland/hyprpanel.nix @@ -0,0 +1,186 @@ +# Hyprpanel is the bar on top of the screen +# Display informations like workspaces, battery, wifi, ... +{ inputs, config, ... }: +let + transparentButtons = config.var.theme.bar.transparentButtons; + + accent = "#${config.lib.stylix.colors.base0D}"; + accent-alt = "#${config.lib.stylix.colors.base03}"; + background = "#${config.lib.stylix.colors.base00}"; + background-alt = "#${config.lib.stylix.colors.base01}"; + foreground = "#${config.lib.stylix.colors.base05}"; + font = "${config.stylix.fonts.serif.name}"; + fontSize = "${toString config.stylix.fonts.sizes.desktop}"; + + rounding = config.var.theme.rounding; + border-size = config.var.theme.border-size; + + gaps-out = config.var.theme.gaps-out; + gaps-in = config.var.theme.gaps-in; + + floating = config.var.theme.bar.floating; + transparent = config.var.theme.bar.transparent; + position = config.var.theme.bar.position; + + location = config.var.location; +in +{ + + imports = [ inputs.hyprpanel.homeManagerModules.hyprpanel ]; + + programs.hyprpanel = { + enable = true; + systemd.enable = true; + hyprland.enable = true; + overwrite.enable = true; + overlay.enable = true; + settings = { + layout = { + "bar.layouts" = { + "0" = { + "left" = [ + "dashboard" + "workspaces" + "windowtitle" + ]; + "middle" = [ "media" ]; + "right" = [ + "systray" + "volume" + "bluetooth" + "battery" + "network" + "clock" + "notifications" + ]; + }; + }; + }; + }; + override = { + "theme.font.name" = "${font}"; + "theme.font.size" = "${fontSize}px"; + "theme.bar.outer_spacing" = "${if floating && transparent then "0" else "8"}px"; + "theme.bar.buttons.y_margins" = "${if floating && transparent then "0" else "8"}px"; + "theme.bar.buttons.spacing" = "0.3em"; + "theme.bar.buttons.radius" = "${ + if transparent then toString rounding else toString (rounding - 8) + }px"; + "theme.bar.floating" = "${if floating then "true" else "false"}"; + "theme.bar.buttons.padding_x" = "0.8rem"; + "theme.bar.buttons.padding_y" = "0.4rem"; + "theme.bar.buttons.workspaces.hover" = "${accent-alt}"; + "theme.bar.buttons.workspaces.active" = "${accent}"; + "theme.bar.buttons.workspaces.available" = "${accent-alt}"; + "theme.bar.buttons.workspaces.occupied" = "${accent-alt}"; + "theme.bar.margin_top" = "${if position == "top" then toString (gaps-in * 2) else "0"}px"; + "theme.bar.margin_bottom" = "${if position == "top" then "0" else toString (gaps-in * 2)}px"; + "theme.bar.margin_sides" = "${toString gaps-out}px"; + "theme.bar.border_radius" = "${toString rounding}px"; + "bar.launcher.icon" = ""; + "theme.bar.transparent" = "${if transparent then "true" else "false"}"; + "bar.workspaces.show_numbered" = false; + "bar.workspaces.workspaces" = 5; + "bar.workspaces.hideUnoccupied" = false; + "bar.windowtitle.label" = true; + "bar.volume.label" = false; + "bar.network.truncation_size" = 12; + "bar.bluetooth.label" = false; + "bar.clock.format" = "%a %b %d %I:%M %p"; + "bar.notifications.show_total" = true; + "theme.notification.border_radius" = "${toString rounding}px"; + "theme.osd.enable" = true; + "theme.osd.orientation" = "vertical"; + "theme.osd.location" = "left"; + "theme.osd.radius" = "${toString rounding}px"; + "theme.osd.margins" = "0px 0px 0px 10px"; + "theme.osd.muted_zero" = true; + "menus.clock.weather.location" = "${location}"; + "menus.clock.weather.unit" = "metric"; + "menus.dashboard.powermenu.confirmation" = false; + + "menus.dashboard.shortcuts.left.shortcut1.icon" = "îȘź"; + "menus.dashboard.shortcuts.left.shortcut1.command" = "zen"; + "menus.dashboard.shortcuts.left.shortcut1.tooltip" = "Zen"; + "menus.dashboard.shortcuts.left.shortcut2.icon" = "󰅶"; + "menus.dashboard.shortcuts.left.shortcut2.command" = "caffeine"; + "menus.dashboard.shortcuts.left.shortcut2.tooltip" = "Caffeine"; + "menus.dashboard.shortcuts.left.shortcut3.icon" = "󰖔"; + "menus.dashboard.shortcuts.left.shortcut3.command" = "night-shift"; + "menus.dashboard.shortcuts.left.shortcut3.tooltip" = "Night-shift"; + "menus.dashboard.shortcuts.left.shortcut4.icon" = ""; + "menus.dashboard.shortcuts.left.shortcut4.command" = "menu"; + "menus.dashboard.shortcuts.left.shortcut4.tooltip" = "Search Apps"; + "menus.dashboard.shortcuts.right.shortcut1.icon" = ""; + "menus.dashboard.shortcuts.right.shortcut1.command" = "hyprpicker -a"; + "menus.dashboard.shortcuts.right.shortcut1.tooltip" = "Color Picker"; + "menus.dashboard.shortcuts.right.shortcut3.icon" = "󰄀"; + "menus.dashboard.shortcuts.right.shortcut3.command" = "screenshot region swappy"; + "menus.dashboard.shortcuts.right.shortcut3.tooltip" = "Screenshot"; + + "theme.bar.menus.monochrome" = true; + "wallpaper.enable" = false; + "theme.bar.menus.background" = "${background}"; + "theme.bar.menus.cards" = "${background-alt}"; + "theme.bar.menus.card_radius" = "${toString rounding}px"; + "theme.bar.menus.label" = "${foreground}"; + "theme.bar.menus.text" = "${foreground}"; + "theme.bar.menus.border.size" = "${toString border-size}px"; + "theme.bar.menus.border.color" = "${accent}"; + "theme.bar.menus.border.radius" = "${toString rounding}px"; + "theme.bar.menus.popover.text" = "${foreground}"; + "theme.bar.menus.popover.background" = "${background-alt}"; + "theme.bar.menus.listitems.active" = "${accent}"; + "theme.bar.menus.icons.active" = "${accent}"; + "theme.bar.menus.switch.enabled" = "${accent}"; + "theme.bar.menus.check_radio_button.active" = "${accent}"; + "theme.bar.menus.buttons.default" = "${accent}"; + "theme.bar.menus.buttons.active" = "${accent}"; + "theme.bar.menus.iconbuttons.active" = "${accent}"; + "theme.bar.menus.progressbar.foreground" = "${accent}"; + "theme.bar.menus.slider.primary" = "${accent}"; + "theme.bar.menus.tooltip.background" = "${background-alt}"; + "theme.bar.menus.tooltip.text" = "${foreground}"; + "theme.bar.menus.dropdownmenu.background" = "${background-alt}"; + "theme.bar.menus.dropdownmenu.text" = "${foreground}"; + "theme.bar.background" = "${background + (if transparentButtons && transparent then "00" else "")}"; + "theme.bar.buttons.style" = "default"; + "theme.bar.buttons.monochrome" = true; + "theme.bar.buttons.text" = "${foreground}"; + "theme.bar.buttons.background" = "${ + (if transparent then background else background-alt) + (if transparentButtons then "00" else "") + }"; + "theme.bar.buttons.icon" = "${accent}"; + "theme.bar.buttons.notifications.background" = "${background-alt}"; + "theme.bar.buttons.hover" = "${background}"; + "theme.bar.buttons.notifications.hover" = "${background}"; + "theme.bar.buttons.notifications.total" = "${accent}"; + "theme.bar.buttons.notifications.icon" = "${accent}"; + "theme.notification.background" = "${background-alt}"; + "theme.notification.actions.background" = "${accent}"; + "theme.notification.actions.text" = "${foreground}"; + "theme.notification.label" = "${accent}"; + "theme.notification.border" = "${background-alt}"; + "theme.notification.text" = "${foreground}"; + "theme.notification.labelicon" = "${accent}"; + "theme.osd.bar_color" = "${accent}"; + "theme.osd.bar_overflow_color" = "${accent-alt}"; + "theme.osd.icon" = "${background}"; + "theme.osd.icon_container" = "${accent}"; + "theme.osd.label" = "${accent}"; + "theme.osd.bar_container" = "${background-alt}"; + "theme.bar.menus.menu.media.background.color" = "${background-alt}"; + "theme.bar.menus.menu.media.card.color" = "${background-alt}"; + "theme.bar.menus.menu.media.card.tint" = 90; + "bar.customModules.updates.pollingInterval" = 1440000; + "bar.media.show_active_only" = true; + "theme.bar.location" = "${position}"; + "bar.workspaces.numbered_active_indicator" = "color"; + "bar.workspaces.monitorSpecific" = false; + "bar.workspaces.applicationIconEmptyWorkspace" = ""; + "bar.workspaces.showApplicationIcons" = true; + "bar.workspaces.showWsIcons" = true; + "theme.bar.dropdownGap" = "4.5em"; + }; + }; +} diff --git a/home-manager/modules/hyprland/hyprspace.nix b/home-manager/modules/hyprland/hyprspace.nix index a39ecc5..2e0f98a 100644 --- a/home-manager/modules/hyprland/hyprspace.nix +++ b/home-manager/modules/hyprland/hyprspace.nix @@ -1,19 +1,20 @@ { inputs, pkgs, ... }: { - wayland.windowManager.hyprland = { plugins = [ inputs.hyprspace.packages.${pkgs.system}.Hyprspace ]; settings = { plugin = { overview = { + centerAligned = true; + hideTopLayers = true; + hideOverlayLayers = true; + showNewWorkspace = true; + exitOnClick = true; + exitOnSwitch = true; + drawActiveWorkspace = true; autoDrag = false; }; }; - - bind = [ - "$mod,TAB, overview:toggle" - - ]; }; }; } diff --git a/home-manager/modules/hyprpanel.nix b/home-manager/modules/hyprpanel.nix index 9ca3db9..f5a8996 100644 --- a/home-manager/modules/hyprpanel.nix +++ b/home-manager/modules/hyprpanel.nix @@ -34,28 +34,29 @@ in hyprland.enable = true; overwrite.enable = true; overlay.enable = true; - layout = { - "bar.layouts" = { - "0" = { - "left" = [ - "dashboard" - "workspaces" - "windowtitle" - ]; - "middle" = [ "media" ]; - "right" = [ - "systray" - "volume" - "bluetooth" - "battery" - "network" - "clock" - "notifications" - ]; + settings = { + layout = { + "bar.layouts" = { + "0" = { + "left" = [ + "dashboard" + "workspaces" + "windowtitle" + ]; + "middle" = [ "media" ]; + "right" = [ + "systray" + "volume" + "bluetooth" + "battery" + "network" + "clock" + "notifications" + ]; + }; }; }; }; - override = { "theme.font.name" = "${font}"; "theme.font.size" = "${fontSize}px"; diff --git a/home-manager/modules/hyprspace.nix b/home-manager/modules/hyprspace.nix index 7ea8bfb..2e0f98a 100644 --- a/home-manager/modules/hyprspace.nix +++ b/home-manager/modules/hyprspace.nix @@ -5,6 +5,13 @@ settings = { plugin = { overview = { + centerAligned = true; + hideTopLayers = true; + hideOverlayLayers = true; + showNewWorkspace = true; + exitOnClick = true; + exitOnSwitch = true; + drawActiveWorkspace = true; autoDrag = false; }; }; diff --git a/home-manager/modules/kitty.nix b/home-manager/modules/kitty.nix index ef85e02..b88e3e6 100644 --- a/home-manager/modules/kitty.nix +++ b/home-manager/modules/kitty.nix @@ -17,11 +17,13 @@ remember_window_size = "no"; disable_ligatures = "never"; url_style = "curly"; + copy_on_select = "clipboard"; cursor_shape = "Underline"; cursor_underline_thickness = 3; cursor_trail = 3; cursor_trail_decay = "0.1 0.4"; window_padding_width = 10; + open_url_with = "default"; }; font = { # name = lib.mkForce "Comic Code"; diff --git a/home-manager/modules/thunar.nix b/home-manager/modules/thunar.nix index c1a415f..3a8cfed 100644 --- a/home-manager/modules/thunar.nix +++ b/home-manager/modules/thunar.nix @@ -1,5 +1,5 @@ # Thunar is a file explorer -{ pkgs, ... }: +{ pkgs, user, ... }: { # ctrl + m to toggle the menubar home.packages = with pkgs.xfce; [ @@ -9,6 +9,26 @@ thunar-archive-plugin thunar-volman ]; + gtk = { + iconTheme = { + name = "WhiteSur"; + package = pkgs.whitesur-icon-theme.override { + boldPanelIcons = true; + alternativeIcons = true; + }; + }; + }; + + home.sessionVariables = { + XDG_ICON_DIR = "${pkgs.whitesur-icon-theme}/share/icons/WhiteSur"; + }; + + # bookmarks for the side pane + gtk.gtk3.bookmarks = [ + "file:///home/gwg313/Documents Documents" + "file:///home/gwg313/Downloads Downloads" + "file:///home/gwg313/repos Repositories" + ]; home.file.".config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml".text = '' diff --git a/home-manager/modules/zsh.nix b/home-manager/modules/zsh.nix index 11331c6..9e6698d 100644 --- a/home-manager/modules/zsh.nix +++ b/home-manager/modules/zsh.nix @@ -11,6 +11,14 @@ enableCompletion = true; autosuggestion.enable = true; syntaxHighlighting.enable = true; + syntaxHighlighting.highlighters = [ + "main" + "brackets" + "pattern" + "regexp" + "root" + "line" + ]; historySubstringSearch.enable = true; shellAliases = { update = "sudo nixos-rebuild switch";