diff --git a/flake.lock b/flake.lock index c4745fc..436200b 100644 --- a/flake.lock +++ b/flake.lock @@ -37,11 +37,11 @@ "base16-helix": { "flake": false, "locked": { - "lastModified": 1725860795, - "narHash": "sha256-Z2o8VBPW3I+KKTSfe25kskz0EUj7MpUh8u355Z1nVsU=", + "lastModified": 1736852337, + "narHash": "sha256-esD42YdgLlEh7koBrSqcT7p2fsMctPAcGl/+2sYJa2o=", "owner": "tinted-theming", "repo": "base16-helix", - "rev": "7f795bf75d38e0eea9fed287264067ca187b88a9", + "rev": "03860521c40b0b9c04818f2218d9cc9efc21e7a5", "type": "github" }, "original": { @@ -53,37 +53,33 @@ "base16-vim": { "flake": false, "locked": { - "lastModified": 1731949548, - "narHash": "sha256-XIDexXM66sSh5j/x70e054BnUsviibUShW7XhbDGhYo=", + "lastModified": 1732806396, + "narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=", "owner": "tinted-theming", "repo": "base16-vim", - "rev": "61165b1632409bd55e530f3dbdd4477f011cadc6", + "rev": "577fe8125d74ff456cf942c733a85d769afe58b7", "type": "github" }, "original": { "owner": "tinted-theming", "repo": "base16-vim", + "rev": "577fe8125d74ff456cf942c733a85d769afe58b7", "type": "github" } }, - "devshell": { - "inputs": { - "nixpkgs": [ - "nixvim", - "nixpkgs" - ] - }, + "firefox-gnome-theme": { + "flake": false, "locked": { - "lastModified": 1728330715, - "narHash": "sha256-xRJ2nPOXb//u1jaBnDP56M7v5ldavjbtR6lfGqSvcKg=", - "owner": "numtide", - "repo": "devshell", - "rev": "dd6b80932022cea34a019e2bb32f6fa9e494dfef", + "lastModified": 1743774811, + "narHash": "sha256-oiHLDHXq7ymsMVYSg92dD1OLnKLQoU/Gf2F1GoONLCE=", + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "rev": "df53a7a31872faf5ca53dd0730038a62ec63ca9e", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", "type": "github" } }, @@ -105,26 +101,11 @@ }, "flake-compat_2": { "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", - "revCount": 57, - "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" - } - }, - "flake-compat_3": { - "flake": false, - "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "lastModified": 1733328505, + "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", "owner": "edolstra", "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", "type": "github" }, "original": { @@ -140,6 +121,28 @@ "nixpkgs" ] }, + "locked": { + "lastModified": 1743550720, + "narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "c621e8422220273271f52058f618c94e405bb0f5", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "stylix", + "nur", + "nixpkgs" + ] + }, "locked": { "lastModified": 1733312601, "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", @@ -212,25 +215,21 @@ "git-hooks": { "inputs": { "flake-compat": [ - "nixvim", + "stylix", "flake-compat" ], "gitignore": "gitignore", "nixpkgs": [ - "nixvim", - "nixpkgs" - ], - "nixpkgs-stable": [ - "nixvim", + "stylix", "nixpkgs" ] }, "locked": { - "lastModified": 1734425854, - "narHash": "sha256-nzE5UbJ41aPEKf8R2ZFYtLkqPmF7EIUbNEdHMBLg0Ig=", + "lastModified": 1742649964, + "narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "0ddd26d0925f618c3a5d85a4fa5eb1e23a09491d", + "rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82", "type": "github" }, "original": { @@ -242,7 +241,7 @@ "gitignore": { "inputs": { "nixpkgs": [ - "nixvim", + "stylix", "git-hooks", "nixpkgs" ] @@ -343,11 +342,11 @@ ] }, "locked": { - "lastModified": 1734808199, - "narHash": "sha256-MxlUcLjE8xLbrI1SJ2B2jftlg4wdutEILa3fgqwA98I=", + "lastModified": 1745033012, + "narHash": "sha256-KjBMsjCzIOWgDqTZMYIriPFmHiQcCb2RhuDh5JF0VVc=", "owner": "nix-community", "repo": "home-manager", - "rev": "f342df3ad938f205a913973b832f52c12546aac6", + "rev": "ae84885d9b6b62dc58ccd300e9ab321a3fd9f9c7", "type": "github" }, "original": { @@ -358,27 +357,6 @@ } }, "home-manager_3": { - "inputs": { - "nixpkgs": [ - "nixvim", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1734622215, - "narHash": "sha256-OOfI0XhSJGHblfdNDhfnn8QnZxng63rWk9eeJ2tCbiI=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "1395379a7a36e40f2a76e7b9936cc52950baa1be", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "home-manager", - "type": "github" - } - }, - "home-manager_4": { "inputs": { "nixpkgs": [ "stylix", @@ -386,11 +364,11 @@ ] }, "locked": { - "lastModified": 1733085484, - "narHash": "sha256-dVmNuUajnU18oHzBQWZm1BQtANCHaqNuxTHZQ+GN0r8=", + "lastModified": 1743869639, + "narHash": "sha256-Xhe3whfRW/Ay05z9m1EZ1/AkbV1yo0tm1CbgjtCi4rQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "c1fee8d4a60b89cae12b288ba9dbc608ff298163", + "rev": "d094c6763c6ddb860580e7d3b4201f8f496a6836", "type": "github" }, "original": { @@ -432,11 +410,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1734127708, - "narHash": "sha256-fXDr93nc3zUDCGS5qhrXAtwBJfiI40jIdoMncLAzbUY=", + "lastModified": 1741303672, + "narHash": "sha256-eRKbKccBu3PK/oJpmUuLo+0v45d0SEjosE8tVsHbpeA=", "owner": "musnix", "repo": "musnix", - "rev": "0a2bbd1e2ec78ef268698eb682f39015c1f3ca1d", + "rev": "d56a15f30329f304151e4e05fa82264d127da934", "type": "github" }, "original": { @@ -445,27 +423,6 @@ "type": "github" } }, - "nix-darwin": { - "inputs": { - "nixpkgs": [ - "nixvim", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1733570843, - "narHash": "sha256-sQJAxY1TYWD1UyibN/FnN97paTFuwBw3Vp3DNCyKsMk=", - "owner": "lnl7", - "repo": "nix-darwin", - "rev": "a35b08d09efda83625bef267eb24347b446c80b8", - "type": "github" - }, - "original": { - "owner": "lnl7", - "repo": "nix-darwin", - "type": "github" - } - }, "nixos-cosmic": { "inputs": { "flake-compat": "flake-compat", @@ -474,11 +431,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1734745015, - "narHash": "sha256-HGl0yR/qfGTO99NfiB5bqTe2nPKmD57opzB/TwhJSW0=", + "lastModified": 1744974542, + "narHash": "sha256-Cut7jOutHRegoBokTz5/kaVs2efwfMgX7dl8lhO67D8=", "owner": "lilyinstarlight", "repo": "nixos-cosmic", - "rev": "1c922245aec471610533c7a225bf9c20e7002ff2", + "rev": "f8bfb2836ab9d4429fc6b2c7337357d8c0d8cc9c", "type": "github" }, "original": { @@ -505,11 +462,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1734600368, - "narHash": "sha256-nbG9TijTMcfr+au7ZVbKpAhMJzzE2nQBYmRvSdXUD8g=", + "lastModified": 1744440957, + "narHash": "sha256-FHlSkNqFmPxPJvy+6fNLaNeWnF1lZSgqVCl/eWaJRc4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b47fd6fa00c6afca88b8ee46cfdb00e104f50bca", + "rev": "26d499fc9f1d567283d5d56fcf367edd815dba1d", "type": "github" }, "original": { @@ -521,11 +478,11 @@ }, "nixpkgs-stable_2": { "locked": { - "lastModified": 1734529975, - "narHash": "sha256-ze3IJksru9dN0keqUxY0WNf8xrwfs8Ty/z9v/keyBbg=", + "lastModified": 1735563628, + "narHash": "sha256-OnSAY7XDSx7CtDoqNh8jwVwh4xNL/2HaJxGjryLWzX8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "72d11d40b9878a67c38f003c240c2d2e1811e72a", + "rev": "b134951a4c9f3c995fd7be05f3243f8ecd65d798", "type": "github" }, "original": { @@ -552,11 +509,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1733392399, - "narHash": "sha256-kEsTJTUQfQFIJOcLYFt/RvNxIK653ZkTBIs4DG+cBns=", + "lastModified": 1740695751, + "narHash": "sha256-D+R+kFxy1KsheiIzkkx/6L63wEHBYX21OIwlFV8JvDs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d0797a04b81caeae77bcff10a9dde78bc17f5661", + "rev": "6313551cd05425cd5b3e63fe47dbc324eabb15e4", "type": "github" }, "original": { @@ -568,11 +525,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1734424634, - "narHash": "sha256-cHar1vqHOOyC7f1+tVycPoWTfKIaqkoe1Q6TnKzuti4=", + "lastModified": 1744463964, + "narHash": "sha256-LWqduOgLHCFxiTNYi3Uj5Lgz0SR+Xhw3kr/3Xd0GPTM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d3c42f187194c26d9f0309a8ecc469d6c878ce33", + "rev": "2631b0b7abcea6e640ce31cd78ea58910d31e650", "type": "github" }, "original": { @@ -584,11 +541,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1731763621, - "narHash": "sha256-ddcX4lQL0X05AYkrkV2LMFgGdRvgap7Ho8kgon3iWZk=", + "lastModified": 1744502386, + "narHash": "sha256-QAd1L37eU7ktL2WeLLLTmI6P9moz9+a/ONO8qNBYJgM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c69a9bffbecde46b4b939465422ddc59493d3e4d", + "rev": "f6db44a8daa59c40ae41ba6e5823ec77fe0d2124", "type": "github" }, "original": { @@ -600,40 +557,34 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1732238832, - "narHash": "sha256-sQxuJm8rHY20xq6Ah+GwIUkF95tWjGRd1X8xF+Pkk38=", + "lastModified": 1743583204, + "narHash": "sha256-F7n4+KOIfWrwoQjXrL2wD9RhFYLs2/GGe/MQY1sSdlE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "8edf06bea5bcbee082df1b7369ff973b91618b8d", + "rev": "2c8d3f48d33929642c1c12cd243df4cc7d2ce434", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-unstable", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, "nixvim": { "inputs": { - "devshell": "devshell", - "flake-compat": "flake-compat_2", "flake-parts": "flake-parts", - "git-hooks": "git-hooks", - "home-manager": "home-manager_3", - "nix-darwin": "nix-darwin", "nixpkgs": [ "nixpkgs" ], - "nuschtosSearch": "nuschtosSearch", - "treefmt-nix": "treefmt-nix" + "nuschtosSearch": "nuschtosSearch" }, "locked": { - "lastModified": 1734798432, - "narHash": "sha256-JVU+WjrRZUJnUKQ/iXP9O8eQ0L3YkqV1DpFMS4kLZog=", + "lastModified": 1744874965, + "narHash": "sha256-eOnMgAWsjqOhGRoY9smkKlNQcCz9R89mgiKwLrCIYBE=", "owner": "nix-community", "repo": "nixvim", - "rev": "6a4b4221c4ebf1140f73f8df769e97f1828d90fa", + "rev": "500b56f023e0f095ffee2d4f79e58aa09e6b0719", "type": "github" }, "original": { @@ -642,6 +593,29 @@ "type": "github" } }, + "nur": { + "inputs": { + "flake-parts": "flake-parts_2", + "nixpkgs": [ + "stylix", + "nixpkgs" + ], + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1743884191, + "narHash": "sha256-foVcginhVvjg8ZnTzY5wwMeZ4wjJ8yX66PW5kgyivPE=", + "owner": "nix-community", + "repo": "NUR", + "rev": "fde90f5f52e13eed110a0e53a2818a2b09e4d37c", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "NUR", + "type": "github" + } + }, "nuschtosSearch": { "inputs": { "flake-utils": "flake-utils", @@ -652,11 +626,11 @@ ] }, "locked": { - "lastModified": 1733773348, - "narHash": "sha256-Y47y+LesOCkJaLvj+dI/Oa6FAKj/T9sKVKDXLNsViPw=", + "lastModified": 1743683223, + "narHash": "sha256-LdXtHFvhEC3S64dphap1pkkzwjErbW65eH1VRerCUT0=", "owner": "NuschtOS", "repo": "search", - "rev": "3051be7f403bff1d1d380e4612f0c70675b44fc9", + "rev": "56a49ffef2908dad1e9a8adef1f18802bc760962", "type": "github" }, "original": { @@ -689,11 +663,11 @@ ] }, "locked": { - "lastModified": 1734661750, - "narHash": "sha256-BI58NBdimxu1lnpOrG9XxBz7Cwqy+qIf99zunWofX5w=", + "lastModified": 1744943606, + "narHash": "sha256-VL4swGy4uBcHvX+UR5pMeNE9uQzXfA7B37lkwet1EmA=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "7d3d910d5fd575e6e8c5600d83d54e5c47273bfe", + "rev": "ec22cd63500f4832d1f3432d2425e0b31b0361b1", "type": "github" }, "original": { @@ -707,11 +681,11 @@ "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1734546875, - "narHash": "sha256-6OvJbqQ6qPpNw3CA+W8Myo5aaLhIJY/nNFDk3zMXLfM=", + "lastModified": 1744669848, + "narHash": "sha256-pXyanHLUzLNd3MX9vsWG+6Z2hTU8niyphWstYEP3/GU=", "owner": "Mic92", "repo": "sops-nix", - "rev": "ed091321f4dd88afc28b5b4456e0a15bd8374b4d", + "rev": "61154300d945f0b147b30d24ddcafa159148026a", "type": "github" }, "original": { @@ -726,22 +700,27 @@ "base16-fish": "base16-fish", "base16-helix": "base16-helix", "base16-vim": "base16-vim", - "flake-compat": "flake-compat_3", + "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_4", + "home-manager": "home-manager_3", "nixpkgs": "nixpkgs_6", + "nur": "nur", "systems": "systems_2", "tinted-foot": "tinted-foot", "tinted-kitty": "tinted-kitty", - "tinted-tmux": "tinted-tmux" + "tinted-schemes": "tinted-schemes", + "tinted-tmux": "tinted-tmux", + "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1734531336, - "narHash": "sha256-BWwJTAiWmZudUdUbyets7e3zQfjvZYtkU51blBnUBjw=", + "lastModified": 1744910471, + "narHash": "sha256-HItOUMA2whFnPMJuyN2XHq9TZttgrgOAZcoUXsaD4Js=", "owner": "danth", "repo": "stylix", - "rev": "a2d66f25478103ac9b4adc6d6713794f7005221e", + "rev": "8d5cd725ad591890c0cd804bf68cc842b8afca51", "type": "github" }, "original": { @@ -814,14 +793,30 @@ "type": "github" } }, + "tinted-schemes": { + "flake": false, + "locked": { + "lastModified": 1742851696, + "narHash": "sha256-sR4K+OVFKeUOvNIqcCr5Br7NLxOBEwoAgsIyjsZmb8s=", + "owner": "tinted-theming", + "repo": "schemes", + "rev": "c37771c4ae8ff1667e27ddcf24991ebeb94a4e77", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "schemes", + "type": "github" + } + }, "tinted-tmux": { "flake": false, "locked": { - "lastModified": 1729501581, - "narHash": "sha256-1ohEFMC23elnl39kxWnjzH1l2DFWWx4DhFNNYDTYt54=", + "lastModified": 1743296873, + "narHash": "sha256-8IQulrb1OBSxMwdKijO9fB70ON//V32dpK9Uioy7FzY=", "owner": "tinted-theming", "repo": "tinted-tmux", - "rev": "f0e7f7974a6441033eb0a172a0342e96722b4f14", + "rev": "af5152c8d7546dfb4ff6df94080bf5ff54f64e3a", "type": "github" }, "original": { @@ -830,19 +825,36 @@ "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": [ - "nixvim", + "stylix", + "nur", "nixpkgs" ] }, "locked": { - "lastModified": 1734704479, - "narHash": "sha256-MMi74+WckoyEWBRcg/oaGRvXC9BVVxDZNRMpL+72wBI=", + "lastModified": 1733222881, + "narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "65712f5af67234dad91a5a4baee986a8b62dbf8f", + "rev": "49717b5af6f80172275d47a418c9719a31a78b53", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index a0d8b16..320b3bf 100644 --- a/flake.nix +++ b/flake.nix @@ -64,6 +64,21 @@ ./home/programs/mpd.nix ./home/programs/work.nix ./home/programs/graphical.nix + ./home/desktop/cosmic/laptop.nix + ]; + }; + + framework-13 = mkConf { + nixos-modules = [ + ./hardware/framework-13.nix + ./nixos/workstation.nix + ./nixos/modules/work.nix + ./nixos/programs/hyprland.nix + (import ./nixos/programs/auto-login.nix "hyprland") + ]; + home-modules = [ + ./home/programs/work.nix + ./home/programs/graphical.nix ]; }; diff --git a/hardware/framework-13.nix b/hardware/framework-13.nix new file mode 100644 index 0000000..72e8c3a --- /dev/null +++ b/hardware/framework-13.nix @@ -0,0 +1,88 @@ +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/mapper/crypted"; + fsType = "btrfs"; + options = [ "subvol=@root" ]; + }; + + boot.initrd.luks.devices."crypted".device = "/dev/disk/by-uuid/84ad0e15-0056-4d46-801d-7735c2c6a5f6"; + + fileSystems."/home" = + { device = "/dev/mapper/crypted"; + fsType = "btrfs"; + options = [ "subvol=@home" ]; + }; + + fileSystems."/nix" = + { device = "/dev/mapper/crypted"; + fsType = "btrfs"; + neededForBoot = true; + options = [ "subvol=@nix" "noatime" ]; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-label/BOOT"; + fsType = "vfat"; + }; + + swapDevices = + [ { device = "/dev/disk/by-label/SWAP"; } + ]; + + # 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.wlp166s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + + + networking.hostName = "framework-13"; + + system.stateVersion = "24.11"; # do not change + home-manager.users.${config.user}.imports = [ + { + home.stateVersion = "24.11"; + + wayland.windowManager.hyprland = { + settings = { + bind = [ + "SUPER_SHIFT, Q, killactive," + ]; + }; + extraConfig = '' + device { + name = at-translated-set-2-keyboard + kb_variant = dvorak, + kb_layout = gb,gb + kb_options = grp:alt_shift_toggle,caps:escape + } + ''; + }; + } + ]; + + + stylix.fonts.sizes = { + applications = 12; + desktop = 10; + terminal = 15; + }; + +} + + diff --git a/hardware/zenix.nix b/hardware/zenix.nix index e3fe37a..1076e79 100644 --- a/hardware/zenix.nix +++ b/hardware/zenix.nix @@ -57,6 +57,11 @@ in { fsType = "vfat"; }; + fileSystems."/mnt/hdd" = { + device = "/dev/disk/by-uuid/50d1b0ee-9eb1-4493-acea-4e5bd4b127c8"; + fsType = "ext4"; + }; + boot.plymouth.enable = true; boot.initrd.verbose = false; boot.consoleLogLevel = 1; diff --git a/home/default.nix b/home/default.nix index 0c5f5ff..3b09170 100644 --- a/home/default.nix +++ b/home/default.nix @@ -65,5 +65,10 @@ }; }; + programs.fzf = { + enable = true; + enableZshIntegration = true; + }; + programs.direnv.enable = true; } diff --git a/home/desktop/cosmic/default.nix b/home/desktop/cosmic/default.nix index a51d14d..0dab645 100644 --- a/home/desktop/cosmic/default.nix +++ b/home/desktop/cosmic/default.nix @@ -6,7 +6,7 @@ }: let inherit (config.lib.cosmic) Actions mapBinds; SpawnTerminal = name: pkg: - Actions.Spawn (pkgs.writeShellScriptBin name "${lib.getExe pkgs.alacritty} -e ${lib.getExe pkg}"); + Actions.Spawn (pkgs.writeShellScriptBin name "${lib.getExe config.programs.terminal} -e ${lib.getExe pkg}"); in { programs.cosmic = { enable = true; @@ -43,7 +43,7 @@ in { Super.Shift. "y" = Actions.ToggleSticky; # System Super. "d" = Actions.Spawn config.programs.menu.drunCommand; - Super. "Return" = Actions.Spawn pkgs.alacritty; + Super. "Return" = Actions.Spawn config.programs.terminal; Super. "e" = SpawnTerminal "aerc" config.programs.aerc.package; Super. "o" = Actions.System "HomeFolder"; Super.Shift. "s" = Actions.System "Screenshot"; diff --git a/home/desktop/cosmic/laptop.nix b/home/desktop/cosmic/laptop.nix new file mode 100644 index 0000000..c51036b --- /dev/null +++ b/home/desktop/cosmic/laptop.nix @@ -0,0 +1,7 @@ +{ + programs.cosmic = { + panels.Bar.applets.end = [ + "com.system76.CosmicAppletBattery" + ]; + }; +} diff --git a/home/desktop/hyprland/default.nix b/home/desktop/hyprland/default.nix index df36e65..7e7311d 100644 --- a/home/desktop/hyprland/default.nix +++ b/home/desktop/hyprland/default.nix @@ -30,7 +30,7 @@ in { enable = true; settings = { general = { - before_sleep_cmd = "rbw lock"; + before_sleep_cmd = "rbw lock; hyprlock"; after_sleep_cmd = "hyprctl dispatch dpms on"; ignore_dbus_inhibit = false; lock_cmd = "pidof ${lock_cmd} || ${lock_cmd}"; @@ -152,8 +152,7 @@ in { "${modifier}_SHIFT, Y, movetoworkspace, special" # applications - "${modifier}, slash, focuswindow, brave-browser" - "${modifier}, n, focuswindow, Logseq" + "${modifier}, slash, exec, ${lib.getExe config.programs.chromium.package}" # workspaces "${modifier}, 1, workspace,1" @@ -193,11 +192,7 @@ in { "XDG_SESSION_DESKTOP,Hyprland" "QT_AUTO_SCREEN_SCALE_FACTOR,1" "QT_WAYLAND_DISABLE_WINDOWDECORATION,1" - ]; - windowrule = [ - "float, title:wlogout" - "idleinhibit always, vrmonitor" - "idleinhibit focus, steam_app" + "NIXOS_OZONE_WL,1" ]; workspace = [ "11, default:true" diff --git a/home/desktop/hyprland/hycov.nix b/home/desktop/hyprland/hycov.nix deleted file mode 100644 index cf62e31..0000000 --- a/home/desktop/hyprland/hycov.nix +++ /dev/null @@ -1,25 +0,0 @@ -{pkgs, ...}: { - wayland.windowManager.hyprland = { - plugins = with pkgs; [ - hycov - ]; - settings.plugin.hycov = { - overview_gappo = 20; - }; - settings.bind = [ - # bind key to toggle overview(normal mode) - "ALT,tab,hycov:toggleoverview" - - # bind key to toggle overview(force mode,no affected by `only_active_workspace` and `only_active_monitor`) - "ALT,grave,hycov:toggleoverview,forceall" #grave key is the '~' key - - # The direction switch shortcut key binding. - # calculate the window closest to the direction to switch focus. - # This keybind is applicable not only to the overview but also to the general layout - "ALT,h,hycov:movefocus,l" - "ALT,l,hycov:movefocus,r" - "ALT,k,hycov:movefocus,u" - "ALT,j,hycov:movefocus,d" - ]; - }; -} diff --git a/home/modules/terminal.nix b/home/modules/terminal.nix index 5942e2b..903e1c2 100644 --- a/home/modules/terminal.nix +++ b/home/modules/terminal.nix @@ -4,7 +4,7 @@ ... }: { options.programs = { - terminal = lib.mkPackageOption pkgs "alacritty" {}; + terminal = lib.mkPackageOption pkgs "foot" {}; }; config = { @@ -16,5 +16,9 @@ }; }; }; + + programs.foot = { + enable = true; + }; }; } diff --git a/home/programs/gamer.nix b/home/programs/gamer.nix index 74d0e60..cbfeba7 100644 --- a/home/programs/gamer.nix +++ b/home/programs/gamer.nix @@ -16,6 +16,5 @@ protontricks protonup-qt oversteer - xboxdrv ]; } diff --git a/home/programs/graphical.nix b/home/programs/graphical.nix index b174cfb..54c2b04 100644 --- a/home/programs/graphical.nix +++ b/home/programs/graphical.nix @@ -1,6 +1,5 @@ {pkgs, ...}: { imports = [ - ./pcmanfm.nix ./mpv.nix ./vscode.nix ]; @@ -11,6 +10,7 @@ easyeffects pwvucontrol helvum + cosmic-files # tools inkscape @@ -27,13 +27,7 @@ youtube-music # other - element-desktop-wayland - (makeDesktopItem { - name = "element-desktop-wayland"; - desktopName = "Element"; - exec = "${element-desktop-wayland}/bin/element-desktop"; - }) - brave + element-desktop bitwarden ]; @@ -60,4 +54,9 @@ "file:///home/tristan/Downloads" ]; }; + + programs.chromium = { + enable = true; + package = pkgs.brave; + }; } diff --git a/home/programs/lf/preview.sh b/home/programs/lf/preview.sh index 7f9f441..936bf5e 100755 --- a/home/programs/lf/preview.sh +++ b/home/programs/lf/preview.sh @@ -13,7 +13,7 @@ image () { [ ! -f "$CACHE" ] && \ chafa -f sixel -s "$2x$3" --animate off --polite on "$1" > "$CACHE" cat "$CACHE" - exit 1 + exit 0 } case "$(file -Lb --mime-type -- "$file")" in diff --git a/home/programs/neovim/default.nix b/home/programs/neovim/default.nix index 31d7b51..d102885 100644 --- a/home/programs/neovim/default.nix +++ b/home/programs/neovim/default.nix @@ -11,8 +11,8 @@ // (import ../../../lib/nixvim.nix input); programs.vscode = { - extensions = [pkgs.vscode-extensions.asvetliakov.vscode-neovim]; - userSettings = { + profiles.default.extensions = [pkgs.vscode-extensions.asvetliakov.vscode-neovim]; + profiles.default.userSettings = { "vscode-neovim.neovimExecutablePaths.linux" = lib.getExe config.programs.nixvim.package; "extensions.experimental.affinity" = { diff --git a/home/programs/personal/kodi.nix b/home/programs/personal/kodi.nix index f1e09a7..ed42f8b 100644 --- a/home/programs/personal/kodi.nix +++ b/home/programs/personal/kodi.nix @@ -4,9 +4,6 @@ ... } : { - home.packages = with pkgs; [ - xboxdrv - ]; programs.kodi = { enable = true; package = diff --git a/home/programs/scripts.nix b/home/programs/scripts.nix index f0943e0..57cd89f 100644 --- a/home/programs/scripts.nix +++ b/home/programs/scripts.nix @@ -1,6 +1,7 @@ { config, pkgs, + lib, ... }: let modifier = config.windowManager.modifierKey; @@ -9,6 +10,7 @@ my-deps = { notify-send = "${pkgs.libnotify}/bin/notify-send"; playerctl = "${pkgs.playerctl}/bin/playerctl"; + brightnessctl = lib.getExe pkgs.brightnessctl; grim = "${pkgs.grim}/bin/grim"; slurp = "${pkgs.slurp}/bin/slurp"; amixer = "${pkgs.alsa-utils}/bin/amixer"; @@ -20,7 +22,7 @@ xargs = "${pkgs.findutils}/bin/xargs"; menu = config.programs.menu.dmenuCommand; runmenu = config.programs.menu.drunCommand; - fileman = "${pkgs.pcmanfm}/bin/pcmanfm"; + fileman = lib.getExe pkgs.cosmic-files; gawk = "${pkgs.gawk}/bin/awk"; hyprpicker = "${pkgs.hyprpicker}/bin/hyprpicker"; sed = "${pkgs.gnused}/bin/sed"; @@ -103,44 +105,35 @@ in { ]; } { - name = "brightness-down"; + name = "brightness"; text = '' - light -U $1 - ${my-deps.notify-send} "Brightness" -h int:value:$(light) -a brightness-down -t 1000 + percent=$(${my-deps.brightnessctl} set $1 -m | awk -F, '{print $4}') + + ${my-deps.notify-send} "Brightness" -h "int:value:$percent" -h string:x-canonical-private-synchronous:brightness -t 3000 ''; hotkeys = [ { modifier = ""; key = "XF86MonBrightnessDown"; - args = "10"; + args = "10%-"; } { modifier = "SHIFT"; key = "XF86MonBrightnessDown"; - args = "1"; + args = "1%-"; } - ]; - install = false; - } - { - name = "brightness-up"; - text = '' - light -A $1 - ${my-deps.notify-send} "Brightness" -h int:value:$(light) -a brightness-up -t 1000 - ''; - hotkeys = [ { modifier = ""; key = "XF86MonBrightnessUp"; - args = "10"; + args = "+10%"; } { modifier = "SHIFT"; key = "XF86MonBrightnessUp"; - args = "1"; + args = "+1%"; } ]; - install = false; + install = true; } { name = "picker"; diff --git a/home/programs/tmux.nix b/home/programs/tmux.nix index f2b301d..4d645ca 100644 --- a/home/programs/tmux.nix +++ b/home/programs/tmux.nix @@ -10,7 +10,8 @@ extraConfig = '' bind -n M-s split-window -v bind -n M-v split-window -h - bind -n M-Enter split-window -h + bind -n M-S-s split-window -h -c "#{pane_current_path}" + bind -n M-S-v split-window -h -c "#{pane_current_path}" bind -n M-h select-pane -L bind -n M-j select-pane -D bind -n M-k select-pane -U @@ -22,22 +23,10 @@ bind -n M-+ resize-pane -U 10 bind -n M-z resize-pane -Z bind -n M-u copy-mode - bind -n M-p paste-buffer + bind -n M-p previous-window bind -n M-n next-window set-option -g renumber-windows on ''; }; - - # programs.kitty = { - # enable = true; - # keybindings = { - # "alt+h" = "neighboring_window left"; - # "alt+l" = "neighboring_window right"; - # "alt+j" = "neighboring_window down"; - # "alt+k" = "neighboring_window up"; - # "alt+enter" = "new_window"; - # }; - # shellIntegration.enableZshIntegration = true; - # }; } diff --git a/home/programs/vscode.nix b/home/programs/vscode.nix index 5be9d65..a3bd464 100644 --- a/home/programs/vscode.nix +++ b/home/programs/vscode.nix @@ -4,15 +4,13 @@ config, ... }: let - pkg = config.programs.vscode.package; + code = lib.getExe config.programs.vscode.package; menu = config.programs.menu.dmenuCommand; - editorCmd = "NIXOS_OZONE_WL= ${pkg}/bin/${pkg.executableName}"; in { programs.vscode = { enable = true; package = lib.mkDefault pkgs.vscodium; - extensions = []; - userSettings = { + profiles.default.userSettings = { "keyboard.dispatch" = "keyCode"; "terminal.integrated.sendKeybindingsToShell" = true; "aws.telemetry" = false; @@ -32,7 +30,7 @@ in { code_dir=~/Documents/code cd $code_dir repo=$(ls | ${menu}) - [ -e "$repo" ] && ${editorCmd} $repo + [ -e "$repo" ] && ${code} $repo ''; install = false; hotkeys = [{key = "C";}]; diff --git a/home/programs/work.nix b/home/programs/work.nix index 7417aba..c90572c 100644 --- a/home/programs/work.nix +++ b/home/programs/work.nix @@ -4,11 +4,6 @@ ... }: let modifier = config.windowManager.modifierKey; - browser = "${pkgs.brave}/opt/brave.com/brave/brave-browser"; - pwa = { - slack = "mpagibdhafmlkgpemeicgogjnhclenoc"; - teams = "cifhbcnohmdccbgoicgdjpfamggdegmo"; - }; in { roles.email = { enable = true; @@ -26,16 +21,6 @@ in { pkgs.thunderbird pkgs.remmina pkgs.postman - (import ../../lib/mkapp.nix "slack" { - inherit pkgs browser; - desktopName = "Slack"; - app-id = pwa.slack; - }) - (import ../../lib/mkapp.nix "teams" { - inherit pkgs browser; - app-id = pwa.teams; - desktopName = "Microsoft Teams"; - }) pkgs.devcontainer (pkgs.writeShellScriptBin "devcontainer-open" ( let @@ -64,21 +49,20 @@ in { programs.vscode = { package = pkgs.vscode; - extensions = with pkgs; [ + profiles.default.extensions = with pkgs; [ vscode-extensions.ms-azuretools.vscode-docker ]; - userSettings = { - "aws.telemetry" = false; - "gitlens.telemetry.enabled" = false; - "redhat.telemetry.enabled" = false; - }; }; wayland.windowManager.hyprland.settings = { bind = [ "${modifier}, e, focuswindow, thunderbird" - "${modifier}, t, focuswindow, brave-${pwa.teams}-Profile_2" - "${modifier}, s, focuswindow, brave-${pwa.slack}-Profile_2" + ]; + }; + + programs.chromium = { + extensions = [ + {id = "bfogiafebfohielmmehodmfbbebbbpei";} ]; }; } diff --git a/home/workstation.nix b/home/workstation.nix index 125e657..7b5b109 100644 --- a/home/workstation.nix +++ b/home/workstation.nix @@ -48,30 +48,6 @@ } ] ''; - xdg.configFile."pipewire/pipewire.conf.d/raop-sink.conf".text = '' - context.modules = [ - { name = libpipewire-module-raop-sink - args = { - # Set the remote address to tunnel to - raop.ip = "127.0.0.1" - raop.port = 8190 - raop.name = "my-raop-device" - raop.hostname = "My Service" - #raop.transport = "udp" - raop.encryption.type = "RSA" - #raop.audio.codec = "PCM" - #raop.password = "****" - #audio.format = "S16" - #audio.rate = 44100 - #audio.channels = 2 - #audio.position = [ FL FR ] - stream.props = { - # extra sink properties - } - } - } - ] - ''; services.gnome-keyring.enable = true; } diff --git a/lib/nixvim.nix b/lib/nixvim.nix index e6fdace..48ae658 100644 --- a/lib/nixvim.nix +++ b/lib/nixvim.nix @@ -26,6 +26,7 @@ in { smartindent = true; scrolloff = 4; smoothscroll = true; + ignorecase = true; undofile = true; undodir = lua ''vim.fn.expand("$HOME/.local/share/nvim/undo")''; @@ -176,11 +177,6 @@ in { action = ""; options.desc = "LSP"; } - { - key = "h"; - action = ""; - options.desc = "Harpoon"; - } { key = ""; action = luaFunc "require('dap').continue()"; @@ -282,7 +278,6 @@ in { settings = { nixpkgs.expr = ''import {}''; options.zenix.expr = ''(builtins.getFlake "git+https://git.tristans.cloud/tristan/nix").nixosConfigurations.zenix.options''; - options.alpine.expr = ''(builtins.getFlake "git+https://git.tristans.cloud/tristan/nix").nixosConfigurations.alpine.options''; formatting.command = [(lib.getExe pkgs.alejandra)]; }; }; @@ -302,13 +297,12 @@ in { dap = { enable = true; - extensions.dap-go = { - enable = true; - # tests.verbose = true; # ??? - }; - extensions.dap-ui = { - enable = true; - }; + }; + dap-go = { + enable = true; + }; + dap-ui = { + enable = true; }; cmp = { @@ -346,15 +340,6 @@ in { lazygit.enable = true; which-key.enable = true; - harpoon = { - enable = true; - keymaps = { - addFile = "ha"; - toggleQuickMenu = "hf"; - navNext = "n"; - }; - }; - vim-css-color.enable = true; treesitter = { diff --git a/nixos/default.nix b/nixos/default.nix index eb67452..0269d20 100644 --- a/nixos/default.nix +++ b/nixos/default.nix @@ -22,10 +22,16 @@ in { enable = true; device = "nodev"; efiSupport = true; + configurationLimit = 50; }; boot.loader.efi.canTouchEfiVariables = true; + boot.tmp.useTmpfs = true; networking.networkmanager.enable = true; + programs.nm-applet = { + enable = true; + indicator = true; + }; # fix nixos-containers networking.nat.enable = true; @@ -83,6 +89,7 @@ in { services.gvfs.enable = true; environment.systemPackages = with pkgs; [ + networkmanagerapplet tealdeer alsa-utils trash-cli diff --git a/nixos/programs/gamer.nix b/nixos/programs/gamer.nix index 96e3a16..62452f1 100644 --- a/nixos/programs/gamer.nix +++ b/nixos/programs/gamer.nix @@ -17,7 +17,11 @@ dedicatedServer.openFirewall = true; gamescopeSession = { enable = true; - args = ["-r" "144" "-O" "DP-1" "--rt"]; + args = ["-r" "120" "-W" "3840" "-H" "2160" "-O" "HDMI-A-1" "--rt" "--hdr-enabled" "--adaptive-sync"]; + env = { + ENABLE_HDR_WSI = "1"; + DXVK_HDR = "1"; + }; }; }; programs.gamescope = { diff --git a/nixos/programs/hyprland.nix b/nixos/programs/hyprland.nix index 0b00516..62e969b 100644 --- a/nixos/programs/hyprland.nix +++ b/nixos/programs/hyprland.nix @@ -1,5 +1,8 @@ {config, ...}: { - programs.hyprland.enable = true; + programs.hyprland = { + enable = true; + withUWSM = true; + }; security.pam.services.hyprlock = {}; imports = [ diff --git a/nixos/programs/pipewire.nix b/nixos/programs/pipewire.nix index 4650c3c..18cadfc 100644 --- a/nixos/programs/pipewire.nix +++ b/nixos/programs/pipewire.nix @@ -1,5 +1,4 @@ {pkgs, ...}: { - hardware.pulseaudio.enable = false; security.rtkit.enable = true; services.pipewire = { enable = true; diff --git a/nixos/services/musnix.nix b/nixos/services/musnix.nix index 9bbd89d..95cc14a 100644 --- a/nixos/services/musnix.nix +++ b/nixos/services/musnix.nix @@ -4,7 +4,6 @@ musnix = { enable = true; rtcqs.enable = true; - kernel.realtime = true; }; environment.systemPackages = with pkgs; [ ardour diff --git a/nixos/workstation.nix b/nixos/workstation.nix index b3e428d..a8da182 100644 --- a/nixos/workstation.nix +++ b/nixos/workstation.nix @@ -35,6 +35,7 @@ enable = true; image = ../images/nix-soft.png; base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-hard.yaml"; + polarity = "dark"; opacity = { terminal = 0.9; applications = 0.9; @@ -46,14 +47,11 @@ package = pkgs.vanilla-dmz; size = 24; }; + # autoEnable = true; targets = { - gtk.enable = false; # fails to switch with cosmic overriding it (grr) - gnome.enable = false; + qt.enable = true; grub = { - useImage = true; - }; - nixvim = { - enable = false; + useWallpaper = true; }; }; };