diff --git a/README.md b/README.md index cac7224..67dc19c 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ - [File structure](#-file-structure) - [Desktop preview](#%EF%B8%8F-desktop-preview) - [Hyprland](#-hyprland) - - [SwayFX](#-swayfx) + - [Sway](#-sway) - [Software](#-software) - [Network topology](#-network-topology) - [Hosts description](#%EF%B8%8F-hosts-description) @@ -71,18 +71,18 @@ The images below may not represent the final system. Some parts may differ. ![desktop3.png](assets/github/desktop3.png) -### 💪 SwayFX +### 💪 Sway -![swayfx0.png](assets/github/swayfx/image0.png) +![sway0.png](assets/github/sway/image0.png) -![swayfx1.png](assets/github/swayfx/image1.png) +![sway1.png](assets/github/sway/image1.png) -![swayfx2.png](assets/github/swayfx/image2.png) +![sway2.png](assets/github/sway/image2.png) ## 📘 Software - OS - [**`NixOS`**](https://nixos.org/) - - WM - [**`Hyprland`**](https://hyprland.org/) or [**`SwayFX`**](https://github.com/WillPower3309/swayfx) + - WM - [**`Hyprland`**](https://hyprland.org/) or [**`Sway`**](https://github.com/swaywm/sway) - Theme - [**`Nord`**](https://github.com/nordtheme/nord) - Wallpapers - [**`Grey wave`**](assets/grey_gradient.png) - Editor - [**`Neovim`**](https://neovim.io/) diff --git a/assets/Nix_Logo.svg b/assets/Nix_Logo.svg new file mode 100644 index 0000000..9a70a14 --- /dev/null +++ b/assets/Nix_Logo.svg @@ -0,0 +1,513 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/github/swayfx/image0.png b/assets/github/sway/image0.png similarity index 100% rename from assets/github/swayfx/image0.png rename to assets/github/sway/image0.png diff --git a/assets/github/swayfx/image1.png b/assets/github/sway/image1.png similarity index 100% rename from assets/github/swayfx/image1.png rename to assets/github/sway/image1.png diff --git a/assets/github/swayfx/image2.png b/assets/github/sway/image2.png similarity index 100% rename from assets/github/swayfx/image2.png rename to assets/github/sway/image2.png diff --git a/flake.lock b/flake.lock index 121ffe8..c6d5bce 100644 --- a/flake.lock +++ b/flake.lock @@ -86,30 +86,14 @@ "type": "github" } }, - "base16-foot": { - "flake": false, - "locked": { - "lastModified": 1696725948, - "narHash": "sha256-65bz2bUL/yzZ1c8/GQASnoiGwaF8DczlxJtzik1c0AU=", - "owner": "tinted-theming", - "repo": "base16-foot", - "rev": "eedbcfa30de0a4baa03e99f5e3ceb5535c2755ce", - "type": "github" - }, - "original": { - "owner": "tinted-theming", - "repo": "base16-foot", - "type": "github" - } - }, "base16-helix": { "flake": false, "locked": { - "lastModified": 1720809814, - "narHash": "sha256-numb3xigRGnr/deF7wdjBwVg7fpbTH7reFDkJ75AJkY=", + "lastModified": 1725860795, + "narHash": "sha256-Z2o8VBPW3I+KKTSfe25kskz0EUj7MpUh8u355Z1nVsU=", "owner": "tinted-theming", "repo": "base16-helix", - "rev": "34f41987bec14c0f3f6b2155c19787b1f6489625", + "rev": "7f795bf75d38e0eea9fed287264067ca187b88a9", "type": "github" }, "original": { @@ -118,38 +102,6 @@ "type": "github" } }, - "base16-kitty": { - "flake": false, - "locked": { - "lastModified": 1665001328, - "narHash": "sha256-aRaizTYPpuWEcvoYE9U+YRX+Wsc8+iG0guQJbvxEdJY=", - "owner": "kdrag0n", - "repo": "base16-kitty", - "rev": "06bb401fa9a0ffb84365905ffbb959ae5bf40805", - "type": "github" - }, - "original": { - "owner": "kdrag0n", - "repo": "base16-kitty", - "type": "github" - } - }, - "base16-tmux": { - "flake": false, - "locked": { - "lastModified": 1696725902, - "narHash": "sha256-wDPg5elZPcQpu7Df0lI5O8Jv4A3T6jUQIVg63KDU+3Q=", - "owner": "tinted-theming", - "repo": "base16-tmux", - "rev": "c02050bebb60dbb20cb433cd4d8ce668ecc11ba7", - "type": "github" - }, - "original": { - "owner": "tinted-theming", - "repo": "base16-tmux", - "type": "github" - } - }, "base16-vim": { "flake": false, "locked": { @@ -168,21 +120,18 @@ }, "chaotic": { "inputs": { - "compare-to": "compare-to", "fenix": "fenix", "flake-schemas": "flake-schemas", "home-manager": "home-manager", "jovian": "jovian", - "nixpkgs": "nixpkgs_2", - "systems": "systems_2", - "yafas": "yafas" + "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1725738693, - "narHash": "sha256-nqsRStEB29KcTsMC52NdKFzd0PSudQHY6w6oRrNyLCM=", + "lastModified": 1728001451, + "narHash": "sha256-Ost5YHSZZE4ZIKBcWsXC1c7g7n3kIqaNNjs5ula/lAI=", "owner": "chaotic-cx", "repo": "nyx", - "rev": "38451822a144faa53a7ee96d4f0478d94945b67a", + "rev": "25f420d9cf70929455ba14642b92ae715ae8d792", "type": "github" }, "original": { @@ -192,20 +141,6 @@ "type": "github" } }, - "compare-to": { - "locked": { - "lastModified": 1695341185, - "narHash": "sha256-htO6DSbWyCgaDkxi7foPjXwJFPzGjVt3RRUbPSpNtZY=", - "rev": "98b8e330823a3570d328720f87a1153f8a7f2224", - "revCount": 2, - "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/chaotic-cx/nix-empty-flake/0.1.2%2Brev-98b8e330823a3570d328720f87a1153f8a7f2224/018aba35-d228-7fa9-b205-7616c89ef4e0/source.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://flakehub.com/f/chaotic-cx/nix-empty-flake/%3D0.1.2.tar.gz" - } - }, "crane": { "inputs": { "flake-compat": [ @@ -246,11 +181,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1721700458, - "narHash": "sha256-mV/wLYhYQu0hAS7EhOpsoroEjTcOyggqBntJNQy9EMU=", + "lastModified": 1725955099, + "narHash": "sha256-CcDATbwdZTOlm3/NLu2wJ5U//pErNCsz4sQOBpSdAQI=", "owner": "SomeoneSerge", "repo": "pkgs", - "rev": "a3dc754b191c55b0d2256d3fe8a3d40219209246", + "rev": "6942b3e69f4955effb7159b3af65b1ddbc88be8d", "type": "github" }, "original": { @@ -266,11 +201,11 @@ ] }, "locked": { - "lastModified": 1725628909, - "narHash": "sha256-xI0OSqPHcs/c/utJsU0Zvcp1VhejMI9mgwr68uHHlPs=", + "lastModified": 1727999297, + "narHash": "sha256-LTJuQPCsSItZ/8TieFeP30iY+uaLoD0mT0tAj1gLeyQ=", "owner": "LnL7", "repo": "nix-darwin", - "rev": "76559183801030451e200c90a1627c1d82bb4910", + "rev": "8c8388ade72e58efdeae71b4cbb79e872c23a56b", "type": "github" }, "original": { @@ -309,11 +244,11 @@ ] }, "locked": { - "lastModified": 1725377834, - "narHash": "sha256-tqoAO8oT6zEUDXte98cvA1saU9+1dLJQe3pMKLXv8ps=", + "lastModified": 1727977578, + "narHash": "sha256-DBORKcmQ7ZjA4qE1MsnF1MmZSokOGrw4W9vTCioOv2U=", "owner": "nix-community", "repo": "disko", - "rev": "e55f9a8678adc02024a4877c2a403e3f6daf24fe", + "rev": "574400001b3ffe555c7a21e0ff846230759be2ed", "type": "github" }, "original": { @@ -354,11 +289,11 @@ "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "lastModified": 1725690497, - "narHash": "sha256-5fT+96rV7Hx29HG+4/oBbr3V+yExKuLN2vcBcPbVBlU=", + "lastModified": 1727937235, + "narHash": "sha256-Ih4RD65WZZDgtla9Uh8zm6gQJ1zgkXkiU4HKtEwQjvI=", "owner": "nix-community", "repo": "fenix", - "rev": "4b8d964df93d1f918ee6c4f003b3548c432cc866", + "rev": "381781f96b880c2ced9019a9e2406b31ccea82b4", "type": "github" }, "original": { @@ -422,11 +357,11 @@ ] }, "locked": { - "lastModified": 1725234343, - "narHash": "sha256-+ebgonl3NbiKD2UD0x4BszCZQ6sTfL4xioaM49o5B3Y=", + "lastModified": 1727826117, + "narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "567b938d64d4b4112ee253b9274472dc3a346eb6", + "rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1", "type": "github" }, "original": { @@ -458,16 +393,16 @@ }, "flake-schemas": { "locked": { - "lastModified": 1693491534, - "narHash": "sha256-ifw8Td8kD08J8DxFbYjeIx5naHcDLz7s2IFP3X42I/U=", - "rev": "c702cbb663d6d70bbb716584a2ee3aeb35017279", - "revCount": 21, + "lastModified": 1721999734, + "narHash": "sha256-G5CxYeJVm4lcEtaO87LKzOsVnWeTcHGKbKxNamNWgOw=", + "rev": "0a5c42297d870156d9c57d8f99e476b738dcd982", + "revCount": 75, "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.1.1/018a4c59-80e1-708a-bb4d-854930c20f72/source.tar.gz" + "url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.1.5/0190ef2f-61e0-794b-ba14-e82f225e55e6/source.tar.gz" }, "original": { "type": "tarball", - "url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%3D0.1.1.tar.gz" + "url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%3D0.1.5.tar.gz" } }, "flake-utils": { @@ -490,7 +425,7 @@ }, "flake-utils_2": { "inputs": { - "systems": "systems_4" + "systems": "systems_3" }, "locked": { "lastModified": 1681202837, @@ -508,7 +443,7 @@ }, "flake-utils_3": { "inputs": { - "systems": "systems_5" + "systems": "systems_4" }, "locked": { "lastModified": 1701680307, @@ -526,7 +461,7 @@ }, "flake-utils_4": { "inputs": { - "systems": "systems_6" + "systems": "systems_5" }, "locked": { "lastModified": 1710146030, @@ -565,7 +500,7 @@ }, "flake-utils_6": { "inputs": { - "systems": "systems_9" + "systems": "systems_8" }, "locked": { "lastModified": 1705309234, @@ -599,11 +534,11 @@ "fzf-zsh-completions": { "flake": false, "locked": { - "lastModified": 1708541691, - "narHash": "sha256-jm6Yd6sEJJ1eynpZa2yLzv6d5FGZZm4l6zMZ3DomY7o=", + "lastModified": 1727968409, + "narHash": "sha256-QIRZShypkl1c7UAQHVKJWrjvlpuKae1aaZIApjisjGg=", "owner": "chitoku-k", "repo": "fzf-zsh-completions", - "rev": "a0593dd3697c4f01918b333f379faf07af7ebc4d", + "rev": "8dde1cd4f006dc6c230e994f99e621ecef006ad6", "type": "github" }, "original": { @@ -681,11 +616,11 @@ ] }, "locked": { - "lastModified": 1725694918, - "narHash": "sha256-+HsjshXpqNiJHLaJaK0JnIicJ/a1NquKcfn4YZ3ILgg=", + "lastModified": 1727817100, + "narHash": "sha256-dlyV9/eiWkm/Y/t2+k4CFZ29tBvCANmJogEYaHeAOTw=", "owner": "nix-community", "repo": "home-manager", - "rev": "aaebdea769a5c10f1c6e50ebdf5924c1a13f0cda", + "rev": "437ec62009fa8ceb684eb447d455ffba25911cf9", "type": "github" }, "original": { @@ -701,11 +636,11 @@ ] }, "locked": { - "lastModified": 1725863684, - "narHash": "sha256-HmdTBpuCsw35Ii35JUKO6AE6nae+kJliQb0XGd4hoLE=", + "lastModified": 1727817100, + "narHash": "sha256-dlyV9/eiWkm/Y/t2+k4CFZ29tBvCANmJogEYaHeAOTw=", "owner": "nix-community", "repo": "home-manager", - "rev": "be47a2bdf278c57c2d05e747a13ed31cef54a037", + "rev": "437ec62009fa8ceb684eb447d455ffba25911cf9", "type": "github" }, "original": { @@ -772,7 +707,7 @@ "hyprutils": "hyprutils", "hyprwayland-scanner": "hyprwayland-scanner", "nixpkgs": "nixpkgs_4", - "systems": "systems_3", + "systems": "systems_2", "xdph": "xdph" }, "locked": { @@ -943,11 +878,11 @@ }, "impermanence": { "locked": { - "lastModified": 1725690722, - "narHash": "sha256-4qWg9sNh5g1qPGO6d/GV2ktY+eDikkBTbWSg5/iD2nY=", + "lastModified": 1727649413, + "narHash": "sha256-FA53of86DjFdeQzRDVtvgWF9o52rWK70VHGx0Y8fElQ=", "owner": "nix-community", "repo": "impermanence", - "rev": "63f4d0443e32b0dd7189001ee1894066765d18a5", + "rev": "d0b38e550039a72aff896ee65b0918e975e6d48e", "type": "github" }, "original": { @@ -965,11 +900,11 @@ ] }, "locked": { - "lastModified": 1725600800, - "narHash": "sha256-wst7p3RZ9kZUNzN22d27wU8YSBB7Grlx6Q03A7boRaU=", + "lastModified": 1727865565, + "narHash": "sha256-SBcqfosxb0XlKdIz6QGXCnK4W/TEVHLDZHkRHZ8Me60=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "2d050e65a71e02a1f19d1a35c086bd2e3dfb2cdb", + "rev": "703c0ac8432f3758987e0788248ddc1a8e0bf412", "type": "github" }, "original": { @@ -1007,11 +942,11 @@ }, "master": { "locked": { - "lastModified": 1725867797, - "narHash": "sha256-DW6NHvXHrWFUa0TY4TCf+M8uFIRhmV9H3smBZ2Pu7pk=", + "lastModified": 1728001490, + "narHash": "sha256-jyLDB1hREFhujapdfZNOyFGQ2+FlhsnhCBYa9YBWn+4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "cb97dfe6c051011be9cb13cd33103c907d9b2107", + "rev": "52cfd83eee767c5d02089efe79c4811ffc52a046", "type": "github" }, "original": { @@ -1165,11 +1100,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1725634671, - "narHash": "sha256-v3rIhsJBOMLR8e/RNWxr828tB+WywYIoajrZKFM+0Gg=", + "lastModified": 1727802920, + "narHash": "sha256-HP89HZOT0ReIbI7IJZJQoJgxvB2Tn28V6XS3MNKnfLs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "574d1eac1c200690e27b8eb4e24887f8df7ac27c", + "rev": "27e30d177e57d912d614c88c622dcfdb2e6e6515", "type": "github" }, "original": { @@ -1261,16 +1196,16 @@ }, "nixpkgs_8": { "locked": { - "lastModified": 1725103162, - "narHash": "sha256-Ym04C5+qovuQDYL/rKWSR+WESseQBbNAe5DsXNx5trY=", + "lastModified": 1726871744, + "narHash": "sha256-V5LpfdHyQkUF7RfOaDPrZDP+oqz88lTJrMT1+stXNwo=", "owner": "nixos", "repo": "nixpkgs", - "rev": "12228ff1752d7b7624a54e9c1af4b222b3c1073b", + "rev": "a1d92660c6b3b7c26fb883500a80ea9d33321be2", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-unstable", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } @@ -1291,14 +1226,29 @@ "type": "github" } }, + "nur": { + "locked": { + "lastModified": 1727999300, + "narHash": "sha256-y18q4rFuWZ5z1OllpZnNGtYZfIWPYta8V3MI+liB+d8=", + "owner": "nix-community", + "repo": "NUR", + "rev": "2eaa6a4b8f589bc82805ec76506e9264e3acec9a", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "NUR", + "type": "github" + } + }, "powerlevel10k": { "flake": false, "locked": { - "lastModified": 1725532669, - "narHash": "sha256-1NfhbCMox666KPprJqC+yDPPAZi/5p7FSTtwbhKcYoI=", + "lastModified": 1727947006, + "narHash": "sha256-C0QgZ/DNA6YwQAUv7HHLo+18xrx+C+pUiU9uoD2/AvQ=", "owner": "romkatv", "repo": "powerlevel10k", - "rev": "d71edb83f9c7f045a0d528eeff3445ec3d518d71", + "rev": "c64a13361685fc4ec38a55b41256e28494a5d567", "type": "github" }, "original": { @@ -1424,6 +1374,7 @@ "nixpkgs": [ "unstable" ], + "nur": "nur", "powerlevel10k": "powerlevel10k", "sops-nix": "sops-nix", "stable": "stable", @@ -1441,11 +1392,11 @@ "rust-analyzer-src": { "flake": false, "locked": { - "lastModified": 1725630423, - "narHash": "sha256-gNCLk3Zg7JlAwmWbVHTH6f3+iqdeQ4fheOotCZy8x5M=", + "lastModified": 1727778987, + "narHash": "sha256-OTI1eKQ3WIkj6q8PROpPY1vhaxYRdiS1btSfBowQPps=", "owner": "rust-lang", "repo": "rust-analyzer", - "rev": "08c7bbc2dbe4dcc8968484f1a0e1e6fe7a1d4f6d", + "rev": "e1a76671af2fbc74c84c18ba18fcda5e653d7531", "type": "github" }, "original": { @@ -1509,11 +1460,11 @@ "nixpkgs-stable": "nixpkgs-stable_3" }, "locked": { - "lastModified": 1725765163, - "narHash": "sha256-rfd2c47iVSFI6bRYy5l8wRijRBaYDeU7dM8XCDUGqlA=", + "lastModified": 1727734513, + "narHash": "sha256-i47LQwoGCVQq4upV2YHV0OudkauHNuFsv306ualB/Sw=", "owner": "Mic92", "repo": "sops-nix", - "rev": "b68757cd2c3fa66d6ccaa0d046ce42a9324e0070", + "rev": "3198a242e547939c5e659353551b0668ec150268", "type": "github" }, "original": { @@ -1524,11 +1475,11 @@ }, "stable": { "locked": { - "lastModified": 1725693463, - "narHash": "sha256-ZPzhebbWBOr0zRWW10FfqfbJlan3G96/h3uqhiFqmwg=", + "lastModified": 1727907660, + "narHash": "sha256-QftbyPoieM5M50WKUMzQmWtBWib/ZJbHo7mhj5riQec=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "68e7dce0a6532e876980764167ad158174402c6f", + "rev": "5966581aa04be7eff830b9e1457d56dc70a0b798", "type": "github" }, "original": { @@ -1542,24 +1493,24 @@ "inputs": { "base16": "base16", "base16-fish": "base16-fish", - "base16-foot": "base16-foot", "base16-helix": "base16-helix", - "base16-kitty": "base16-kitty", - "base16-tmux": "base16-tmux", "base16-vim": "base16-vim", "flake-compat": "flake-compat_3", "flake-utils": "flake-utils_5", "gnome-shell": "gnome-shell", "home-manager": "home-manager_3", "nixpkgs": "nixpkgs_7", - "systems": "systems_7" + "systems": "systems_6", + "tinted-foot": "tinted-foot", + "tinted-kitty": "tinted-kitty", + "tinted-tmux": "tinted-tmux" }, "locked": { - "lastModified": 1725290973, - "narHash": "sha256-+jwXF9KI0HfvDgpsoJGvOdfOGGSKOrID1wQB79zjUbo=", + "lastModified": 1727723275, + "narHash": "sha256-k4HrG8TJQ0RqDS1tlDz71kvWFBNQ7qZI9T5Z0qLR85Y=", "owner": "danth", "repo": "stylix", - "rev": "ef81ad9e85e60420cc83d4642619c14b57139d33", + "rev": "e7e97059776da7e34b739415a7bc8f80f606b803", "type": "github" }, "original": { @@ -1599,21 +1550,6 @@ } }, "systems_3": { - "locked": { - "lastModified": 1689347949, - "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", - "owner": "nix-systems", - "repo": "default-linux", - "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default-linux", - "type": "github" - } - }, - "systems_4": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -1628,7 +1564,7 @@ "type": "github" } }, - "systems_5": { + "systems_4": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -1643,7 +1579,7 @@ "type": "github" } }, - "systems_6": { + "systems_5": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -1658,7 +1594,7 @@ "type": "github" } }, - "systems_7": { + "systems_6": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -1673,7 +1609,7 @@ "type": "github" } }, - "systems_8": { + "systems_7": { "locked": { "lastModified": 1689347949, "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", @@ -1688,7 +1624,7 @@ "type": "github" } }, - "systems_9": { + "systems_8": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -1703,16 +1639,64 @@ "type": "github" } }, + "tinted-foot": { + "flake": false, + "locked": { + "lastModified": 1696725948, + "narHash": "sha256-65bz2bUL/yzZ1c8/GQASnoiGwaF8DczlxJtzik1c0AU=", + "owner": "tinted-theming", + "repo": "tinted-foot", + "rev": "eedbcfa30de0a4baa03e99f5e3ceb5535c2755ce", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-foot", + "type": "github" + } + }, + "tinted-kitty": { + "flake": false, + "locked": { + "lastModified": 1665001328, + "narHash": "sha256-aRaizTYPpuWEcvoYE9U+YRX+Wsc8+iG0guQJbvxEdJY=", + "owner": "tinted-theming", + "repo": "tinted-kitty", + "rev": "06bb401fa9a0ffb84365905ffbb959ae5bf40805", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-kitty", + "type": "github" + } + }, + "tinted-tmux": { + "flake": false, + "locked": { + "lastModified": 1696725902, + "narHash": "sha256-wDPg5elZPcQpu7Df0lI5O8Jv4A3T6jUQIVg63KDU+3Q=", + "owner": "tinted-theming", + "repo": "tinted-tmux", + "rev": "c02050bebb60dbb20cb433cd4d8ce668ecc11ba7", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-tmux", + "type": "github" + } + }, "treefmt-nix": { "inputs": { "nixpkgs": "nixpkgs_8" }, "locked": { - "lastModified": 1725271838, - "narHash": "sha256-VcqxWT0O/gMaeWTTjf1r4MOyG49NaNxW4GHTO3xuThE=", + "lastModified": 1727984844, + "narHash": "sha256-xpRqITAoD8rHlXQafYZOLvUXCF6cnZkPfoq67ThN0Hc=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "9fb342d14b69aefdf46187f6bb80a4a0d97007cd", + "rev": "4446c7a6fc0775df028c5a3f6727945ba8400e64", "type": "github" }, "original": { @@ -1723,11 +1707,11 @@ }, "unstable": { "locked": { - "lastModified": 1725634671, - "narHash": "sha256-v3rIhsJBOMLR8e/RNWxr828tB+WywYIoajrZKFM+0Gg=", + "lastModified": 1727802920, + "narHash": "sha256-HP89HZOT0ReIbI7IJZJQoJgxvB2Tn28V6XS3MNKnfLs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "574d1eac1c200690e27b8eb4e24887f8df7ac27c", + "rev": "27e30d177e57d912d614c88c622dcfdb2e6e6515", "type": "github" }, "original": { @@ -1744,7 +1728,7 @@ "nixpkgs": [ "nixpkgs" ], - "systems": "systems_8" + "systems": "systems_7" }, "locked": { "lastModified": 1704466722, @@ -1791,31 +1775,6 @@ "type": "github" } }, - "yafas": { - "inputs": { - "flake-schemas": [ - "chaotic", - "flake-schemas" - ], - "systems": [ - "chaotic", - "systems" - ] - }, - "locked": { - "lastModified": 1695926485, - "narHash": "sha256-wNFFnItckgSs8XeYhhv8vlJs2WF09fSQaWgw4xkDqHQ=", - "owner": "UbiqueLambda", - "repo": "yafas", - "rev": "7772afd6686458ca0ddbc599a52cf5d337367653", - "type": "github" - }, - "original": { - "owner": "UbiqueLambda", - "repo": "yafas", - "type": "github" - } - }, "yandex-music": { "inputs": { "flake-utils": "flake-utils_6", @@ -1823,11 +1782,11 @@ "ymExe": "ymExe" }, "locked": { - "lastModified": 1725496778, - "narHash": "sha256-c+OKyhbgpXMryc6QQH4b5cePlqyHeSfDh4kT2rU+Tpo=", + "lastModified": 1727974068, + "narHash": "sha256-+tNKENP5wgpfjaCaEvQBXhUp1j0xf9Ygyt2/O0g/Q/w=", "owner": "cucumber-sp", "repo": "yandex-music-linux", - "rev": "98fed92683e2e5a49999d04b5559edd02eddf627", + "rev": "4d8753bf03e9faf68ec0fd716c0a55450848e5cf", "type": "github" }, "original": { @@ -1839,13 +1798,13 @@ "ymExe": { "flake": false, "locked": { - "narHash": "sha256-JcdIfz+evOf0D5YlQsmOEzGVkCgcGHoEpbGzTIwkmgw=", + "narHash": "sha256-PFrV8F2KlkAsxEGSf8Wg1e67dnP2M+iNLNuR5AyJGuE=", "type": "file", - "url": "https://music-desktop-application.s3.yandex.net/stable/Yandex_Music_x64_5.15.0.exe" + "url": "https://music-desktop-application.s3.yandex.net/stable/Yandex_Music_x64_5.20.2.exe" }, "original": { "type": "file", - "url": "https://music-desktop-application.s3.yandex.net/stable/Yandex_Music_x64_5.15.0.exe" + "url": "https://music-desktop-application.s3.yandex.net/stable/Yandex_Music_x64_5.20.2.exe" } }, "zsh-auto-notify": { diff --git a/flake.nix b/flake.nix index 2ffa581..47c7358 100644 --- a/flake.nix +++ b/flake.nix @@ -57,6 +57,10 @@ url = "github:oddlama/nix-topology"; }; + nur = { + url = "github:nix-community/NUR"; + }; + # MacOS configuration darwin = { url = "github:LnL7/nix-darwin/master"; @@ -140,6 +144,7 @@ imports = [ ./parts + # ./docs ]; flake = { diff --git a/home/default.nix b/home/default.nix index 6e78cb5..95ecd9b 100644 --- a/home/default.nix +++ b/home/default.nix @@ -30,8 +30,9 @@ let sshModuleExistPath = builtins.pathExists sshModulePath; in { home-manager = { - useGlobalPkgs = true; - useUserPackages = true; + useGlobalPkgs = true; + useUserPackages = true; + backupFileExtension = "backup-" + pkgs.lib.readFile "${pkgs.runCommand "timestamp" {} "echo -n `date '+%Y%m%d%H%M%S'` > $out"}"; extraSpecialArgs = { inherit @@ -55,6 +56,7 @@ in { imports = [ inputs.impermanence.nixosModules.home-manager.impermanence inputs.sops-nix.homeManagerModules.sops + inputs.nur.nixosModules.nur "${commonModules}" "${homeModules}" @@ -62,8 +64,6 @@ in { ++ lib.optional userConfigurationPathExist userConfigurationPath ++ lib.optional userModulesPathExist userModulesPath; - programs.home-manager.enable = true; - home = { inherit username; inherit stateVersion; diff --git a/home/modules/alacritty/default.nix b/home/modules/alacritty/default.nix index 0074a62..a60520f 100644 --- a/home/modules/alacritty/default.nix +++ b/home/modules/alacritty/default.nix @@ -20,33 +20,12 @@ in { settings = { env.TERM = "xterm-256color"; - /* font = { - size = 10; - - normal = { - family = "JetBrainsMono Nerd Font Mono"; - style = "Regular"; - }; - - bold = { - family = "JetBrainsMono Nerd Font Mono"; - style = "Bold"; - }; - - italic = { - family = "JetBrainsMono Nerd Font Mono"; - style = "Italic"; - }; - - bold_italic = { - family = "JetBrainsMono Nerd Font Mono"; - style = "Bold Italic"; - }; - }; */ + cursor.style = { + shape = "Beam"; + blinking = "off"; + }; window = { - # opacity = 0.95; - dimensions = { lines = 27; columns = 115; @@ -58,37 +37,6 @@ in { }; }; - /*colors = { - draw_bold_text_with_bright_colors = true; - - primary = { - background = "0x282a33"; - foreground = "0xe1e2e6"; - }; - - normal = { - black = "0x29414f"; - blue = "0x6699cc"; - cyan = "0x5fb3b3"; - green = "0x99c794"; - magenta = "0xc594c5"; - red = "0xec5f67"; - white = "0x65737e"; - yellow = "0xfac863"; - }; - - bright = { - black = "0x405860"; - blue = "0x6699cc"; - cyan = "0x5fb3b3"; - green = "0x99c794"; - magenta = "0xc594c5"; - red = "0xec5f67"; - white = "0xadb5c0"; - yellow = "0xfac863"; - }; - };*/ - keyboard.bindings = [ { action = "Copy"; diff --git a/home/modules/doom-emacs/default.nix b/home/modules/doom-emacs/default.nix deleted file mode 100644 index d7f95fa..0000000 --- a/home/modules/doom-emacs/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ config -, lib -, pkgs -, ... -}: - -with lib; - -let - cfg = config.module.doom-emacs; -in { - options = { - module.doom-emacs.enable = mkEnableOption "Enable doom-emacs"; - }; - - config = mkIf cfg.enable { - home.packages = with pkgs; [ - emacs - emacsPackages.vterm - emacsPackages.python - emacsPackages.emacsql - emacsPackages.emacsql-sqlite - emacsPackages.pdf-tools - - fd - nil - ]; - }; -} - diff --git a/home/modules/emacs/default.nix b/home/modules/emacs/default.nix new file mode 100644 index 0000000..cd56e98 --- /dev/null +++ b/home/modules/emacs/default.nix @@ -0,0 +1,30 @@ +{ config +, lib +, pkgs +, ... +}: + +with lib; + +let + cfg = config.module.emacs; +in { + options = { + module.emacs.enable = mkEnableOption "Enable emacs"; + }; + + config = mkIf cfg.enable { + programs.emacs = { + enable = true; + package = pkgs.emacs30-pgtk; + }; + + services.emacs = { + enable = true; + package = pkgs.emacs30-pgtk; + client.enable = true; + socketActivation.enable = true; + }; + }; +} + diff --git a/home/modules/fastfetch/default.nix b/home/modules/fastfetch/default.nix new file mode 100644 index 0000000..f02770d --- /dev/null +++ b/home/modules/fastfetch/default.nix @@ -0,0 +1,75 @@ +{ lib +, config +, ... +}: + +with lib; + +let + cfg = config.module.fastfetch; +in { + options = { + module.fastfetch = { + enable = mkEnableOption "Enable fastfetch"; + }; + }; + + config = mkIf cfg.enable { + programs.fastfetch = { + enable = true; + + settings = { + logo = { + type = "builtin"; + source = "NixOS"; + }; + + display = { + color = { + keys = "blue"; + title = "blue"; + }; + }; + + modules = [ + "title" + "separator" + { + type = "os"; + key = "Distro"; + format = "{3}"; + } + { + type = "kernel"; + key = "Kernel Version"; + format = "{2}"; + } + { + type = "packages"; + format = "{9}"; + } + "shell" + "wm" + "separator" + { + type = "cpu"; + format = "{1} - {3} Cores"; + } + { + type = "gpu"; + key = "GPU"; + hideType = "integrated"; + format = "{2}"; + } + { + type = "memory"; + } + { + type = "disk"; + } + ]; + }; + }; + }; +} + diff --git a/home/modules/fish/default.nix b/home/modules/fish/default.nix index d983387..1e03cd2 100644 --- a/home/modules/fish/default.nix +++ b/home/modules/fish/default.nix @@ -25,9 +25,14 @@ in { interactiveShellInit = '' set fish_greeting + set fish_cursor_default block blink + set fish_cursor_insert line blink + set fish_cursor_replace_one underscore blink + set fish_cursor_visual block function fish_user_key_bindings - fish_vi_key_bindings + fish_default_key_bindings -M insert + fish_vi_key_bindings --no-erase insert end ''; @@ -69,7 +74,6 @@ in { # Others "gopenssl" = "/opt/cryptopack3/bin/openssl"; "fuck" = "_ !!"; - "sudo" = "doas"; }; plugins = [ diff --git a/home/modules/fish/starship/default.nix b/home/modules/fish/starship/default.nix index 43c8a91..3ed961e 100644 --- a/home/modules/fish/starship/default.nix +++ b/home/modules/fish/starship/default.nix @@ -5,13 +5,23 @@ settings = { add_newline = false; + format = '' - [┌ ](bold blue)$username[@](bold blue)$hostname$kubernetes$directory$git_branch$git_commit$git_state$git_status$docker_context$package$golang$helm$java$cmake$julia$kotlin$lua$nim$nodejs$python$ruby$rust$swift$terraform$aws$gcloud$azure$nix_shell$fill$status$cmd_duration$time + [┌ ](bold blue)$username[@](bold blue)$hostname$kubernetes$directory$git_branch$git_commit$git_state$git_status$docker_context$package$golang$helm$java$cmake$julia$kotlin$lua$nim$nodejs$python$ruby$rust$swift$terraform$aws$gcloud$azure$nix_shell$fill$character$cmd_duration$time [└─> ](bold blue) ''; fill.symbol = " "; + character = { + error_symbol = "[](bold red)"; + success_symbol = "[](bold green)"; + vimcmd_symbol = "[N](bold blue)"; + vimcmd_visual_symbol = "[V](bold red)"; + vimcmd_replace_one_symbol = "[R](bold purple)"; + vimcmd_replace_symbol = "[R](bold purple)"; + }; + username = { style_user = "blue bold"; style_root = "red bold"; diff --git a/home/modules/foot/default.nix b/home/modules/foot/default.nix index c6c9925..907623b 100644 --- a/home/modules/foot/default.nix +++ b/home/modules/foot/default.nix @@ -22,7 +22,12 @@ in { term = "xterm-256color"; workers = 32; initial-window-size-chars = "115x24"; - pad = "0x4"; + pad = "4x4 center"; + }; + + cursor = { + style = "beam"; + beam-thickness = 1; }; mouse = { diff --git a/home/modules/hypridle/default.nix b/home/modules/hypridle/default.nix index e02cbf7..1073359 100644 --- a/home/modules/hypridle/default.nix +++ b/home/modules/hypridle/default.nix @@ -15,7 +15,7 @@ let suspendCmd = "${pkgs.systemd}/bin/systemctl suspend"; hyprctlCmd = "${inputs.hyprland.packages.${pkgs.system}.hyprland}/bin/hyprctl"; - swaymsg = "${pkgs.swayfx}/bin/swaymsg"; + swaymsg = "${pkgs.sway}/bin/swaymsg"; hyprlockCmd = "${config.programs.hyprlock.package}/bin/hyprlock"; swaylockCmd = "${pkgs.swaylock}/bin/swaylock"; diff --git a/home/modules/hyprland/binds/default.nix b/home/modules/hyprland/binds/default.nix index bf1866d..a37a738 100644 --- a/home/modules/hyprland/binds/default.nix +++ b/home/modules/hyprland/binds/default.nix @@ -14,7 +14,7 @@ let brightnessControl = "${pkgs.brightnessctl}/bin/brightnessctl"; screenshotArea = "${pkgs.grimblast}/bin/grimblast --notify --freeze copy area"; screenshotScreen = "${pkgs.grimblast}/bin/grimblast --notify --freeze copy output"; - appLauncher = "${pkgs.fuzzel}/bin/fuzzel -T ${terminal}"; + appLauncher = "${pkgs.wofi}/bin/wofi --show drun"; cliphist = "${pkgs.cliphist}/bin/cliphist list | ${appLauncher} -d | ${pkgs.cliphist}/bin/cliphist decode | ${pkgs.wl-clipboard}/bin/wl-copy"; in { options = { diff --git a/home/modules/hyprland/default.nix b/home/modules/hyprland/default.nix index 82f9139..3680785 100644 --- a/home/modules/hyprland/default.nix +++ b/home/modules/hyprland/default.nix @@ -43,6 +43,7 @@ in { env = [ "XDG_CURRENT_DESKTOP,Hyprland" "XDG_SESSION_DESKTOP,Hyprland" + "GTK_CSD,0" ]; animations = { diff --git a/home/modules/lazygit/default.nix b/home/modules/lazygit/default.nix new file mode 100644 index 0000000..42f9995 --- /dev/null +++ b/home/modules/lazygit/default.nix @@ -0,0 +1,21 @@ +{ lib +, config +, ... +}: + +with lib; + +let + cfg = config.module.lazygit; +in { + options = { + module.lazygit.enable = mkEnableOption "Enables lazygit"; + }; + + config = mkIf cfg.enable { + programs.lazygit = { + enable = true; + }; + }; +} + diff --git a/home/modules/librewolf/default.nix b/home/modules/librewolf/default.nix new file mode 100644 index 0000000..85d6c0e --- /dev/null +++ b/home/modules/librewolf/default.nix @@ -0,0 +1,31 @@ +{ lib +, config +, ... +}: + +with lib; + +let + cfg = config.module.librewolf; +in { + options = { + module.librewolf.enable = mkEnableOption "Enables librewolf"; + }; + + config = mkIf cfg.enable { + programs.librewolf = { + enable = true; + + settings = { + "webgl.disabled" = false; + "privacy.resistFingerprinting" = false; + "privacy.clearOnShutdown.history" = false; + "privacy.clearOnShutdown.cookies" = false; + "network.cookie.lifetimePolicy" = 0; + + "browser.fullscreen.autohide" = false; + }; + }; + }; +} + diff --git a/home/modules/neovim/config/init.lua b/home/modules/neovim/config/init.lua index fb236bc..6933571 100644 --- a/home/modules/neovim/config/init.lua +++ b/home/modules/neovim/config/init.lua @@ -1,4 +1,2 @@ -require('base/main') -require('keys/main') -require('lazyInit') +require('config') diff --git a/home/modules/neovim/config/lua/base/main.lua b/home/modules/neovim/config/lua/base/main.lua deleted file mode 100644 index 01f50f4..0000000 --- a/home/modules/neovim/config/lua/base/main.lua +++ /dev/null @@ -1,3 +0,0 @@ -require('base/tabs') -require('base/other') - diff --git a/home/modules/neovim/config/lua/base/other.lua b/home/modules/neovim/config/lua/base/other.lua deleted file mode 100644 index f5272ba..0000000 --- a/home/modules/neovim/config/lua/base/other.lua +++ /dev/null @@ -1,11 +0,0 @@ -vim.opt.mouse = "a" -vim.opt.colorcolumn = "79" -vim.opt.encoding = "utf-8" -vim.opt.clipboard = "unnamedplus" -vim.opt.fileformat = "unix" -vim.opt.number = true -vim.opt.relativenumber = true -vim.opt.swapfile = false -vim.opt.scrolloff = 7 --- vim.g.nord_italic = false - diff --git a/home/modules/neovim/config/lua/base/tabs.lua b/home/modules/neovim/config/lua/config/autocmds.lua similarity index 57% rename from home/modules/neovim/config/lua/base/tabs.lua rename to home/modules/neovim/config/lua/config/autocmds.lua index cce89a8..f09261f 100644 --- a/home/modules/neovim/config/lua/base/tabs.lua +++ b/home/modules/neovim/config/lua/config/autocmds.lua @@ -1,9 +1,4 @@ -vim.opt.tabstop = 2 -vim.opt.shiftwidth = 2 -vim.opt.softtabstop = 2 -vim.opt.expandtab = true -vim.opt.smartindent = true -vim.g.editorconfig = false +local autocmd = vim.api.nvim_create_autocmd local function check_git_repo() local cmd = "git rev-parse --is-inside-work-tree" @@ -13,9 +8,14 @@ local function check_git_repo() end end -vim.api.nvim_create_autocmd({ "VimEnter", "DirChanged" }, { +autocmd({ "VimEnter", "DirChanged" }, { callback = function() vim.schedule(check_git_repo) end, }) +autocmd({"VimLeave", "VimSuspend"}, { + pattern = "*", + command = "set guicursor=a:ver25" +}) + diff --git a/home/modules/neovim/config/lua/config/init.lua b/home/modules/neovim/config/lua/config/init.lua new file mode 100644 index 0000000..56262d2 --- /dev/null +++ b/home/modules/neovim/config/lua/config/init.lua @@ -0,0 +1,5 @@ +require('config.options') +require('config.lazy') +require('config.keymaps') +require('config.autocmds') + diff --git a/home/modules/neovim/config/lua/keys/barbar.lua b/home/modules/neovim/config/lua/config/keymaps.lua similarity index 53% rename from home/modules/neovim/config/lua/keys/barbar.lua rename to home/modules/neovim/config/lua/config/keymaps.lua index 7324051..8d471f4 100644 --- a/home/modules/neovim/config/lua/keys/barbar.lua +++ b/home/modules/neovim/config/lua/config/keymaps.lua @@ -1,6 +1,37 @@ -local map = vim.api.nvim_set_keymap +local map = vim.keymap.set local opts = { noremap = true, silent = true } +local builtin = require('telescope.builtin') +local function escape(str) + local escape_chars = [[;,."|\]] + return vim.fn.escape(str, escape_chars) +end + +-- Russian layout +local en_shift = [[~QWERTYUIOP{}ASDFGHJKL:"ZXCVBNM<>]] +local ru_shift = [[ËЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ]] +local en = [[`qwertyuiop[]asdfghjkl;'zxcvbnm]] +local ru = [[ёйцукенгшщзхъфывапролджэячсмить]] + +vim.opt.langmap = vim.fn.join({ + escape(ru_shift) .. ';' .. escape(en_shift), + escape(ru) .. ';' .. escape(en), +}, ',') + +-- Base +-- nnoremap , :nohlsearch +map('n', ',', 'nohlsearch') --, opts) +map({ "n", "x" }, "H", "^", { desc = "Go to start line" }) +map({ "n", "x" }, "L", "g_", { desc = "Go to end line" }) +map("n", "", "ggG", { desc = "Select All" }) + +map("n", "", ":wincmd h", { silent = true, desc = "Focus Right" }) +map("n", "", ":wincmd l", { silent = true, desc = "Focus Left" }) +map("n", "", ":wincmd j", { silent = true, desc = "Focus Bottom" }) +map("n", "", ":wincmd k", { silent = true, desc = "Focus Top" }) +map("n", "gn", ":Neogit", { silent = true }) + +-- BarBar -- Move to previous/next map('n', '', 'BufferPrevious', opts) map('n', '', 'BufferNext', opts) @@ -43,3 +74,15 @@ map('n', 'bw', 'BufferOrderByWindowNumber', opts) -- :BarbarEnable - enables barbar (enabled by default) -- :BarbarDisable - very bad command, should never be used +-- NeoGit +map("n", "gn", ":Neogit", { silent = true }) + +-- Nvim Tree +map("n", "", ":NvimTreeToggle", { silent = true }) + +-- Telescope +map('n', 'ff', builtin.find_files, {}) +map('n', 'fg', builtin.live_grep, {}) +map('n', 'fb', builtin.buffers, {}) +map('n', 'fh', builtin.help_tags, {}) + diff --git a/home/modules/neovim/config/lua/lazyInit.lua b/home/modules/neovim/config/lua/config/lazy.lua similarity index 93% rename from home/modules/neovim/config/lua/lazyInit.lua rename to home/modules/neovim/config/lua/config/lazy.lua index 1edbb16..8c1ec71 100644 --- a/home/modules/neovim/config/lua/lazyInit.lua +++ b/home/modules/neovim/config/lua/config/lazy.lua @@ -19,7 +19,9 @@ require("lazy").setup( { defaults = { - lazy = true, + lazy = true, + autocmds = true, + keymaps = true, }, rocks = { diff --git a/home/modules/neovim/config/lua/config/options.lua b/home/modules/neovim/config/lua/config/options.lua new file mode 100644 index 0000000..bcd2efa --- /dev/null +++ b/home/modules/neovim/config/lua/config/options.lua @@ -0,0 +1,22 @@ +local opt = vim.opt +local g = vim.g + +opt.mouse = "a" +opt.colorcolumn = "79" +opt.encoding = "utf-8" +opt.clipboard = "unnamedplus" +opt.fileformat = "unix" +opt.number = true +opt.relativenumber = true +opt.swapfile = false +opt.scrolloff = 7 +opt.tabstop = 2 +opt.shiftwidth = 2 +opt.softtabstop = 2 +opt.expandtab = true +opt.smartindent = true + +g.mapleader = "," +g.editorconfig = false +-- g.nord_italic = false + diff --git a/home/modules/neovim/config/lua/keys/base.lua b/home/modules/neovim/config/lua/keys/base.lua deleted file mode 100644 index 9f2d66e..0000000 --- a/home/modules/neovim/config/lua/keys/base.lua +++ /dev/null @@ -1,13 +0,0 @@ -vim.g.mapleader = "," --- nnoremap , :nohlsearch -vim.keymap.set('n', ',', 'nohlsearch') --, opts) -vim.keymap.set({ "n", "x" }, "H", "^", { desc = "Go to start line" }) -vim.keymap.set({ "n", "x" }, "L", "g_", { desc = "Go to end line" }) -vim.keymap.set("n", "", "ggG", { desc = "Select All" }) - -vim.keymap.set("n", "", ":wincmd h", { silent = true, desc = "Focus Right" }) -vim.keymap.set("n", "", ":wincmd l", { silent = true, desc = "Focus Left" }) -vim.keymap.set("n", "", ":wincmd j", { silent = true, desc = "Focus Bottom" }) -vim.keymap.set("n", "", ":wincmd k", { silent = true, desc = "Focus Top" }) -vim.keymap.set("n", "gn", ":Neogit", { silent = true }) - diff --git a/home/modules/neovim/config/lua/keys/git.lua b/home/modules/neovim/config/lua/keys/git.lua deleted file mode 100644 index 617e33d..0000000 --- a/home/modules/neovim/config/lua/keys/git.lua +++ /dev/null @@ -1,2 +0,0 @@ -vim.keymap.set("n", "gn", ":Neogit", { silent = true }) - diff --git a/home/modules/neovim/config/lua/keys/main.lua b/home/modules/neovim/config/lua/keys/main.lua deleted file mode 100644 index 990b794..0000000 --- a/home/modules/neovim/config/lua/keys/main.lua +++ /dev/null @@ -1,7 +0,0 @@ -require('keys/base') -require('keys/nvimTree') -require('keys/ruLayout') -require('keys/barbar') -require('keys/git') --- require('keys/telescope') - diff --git a/home/modules/neovim/config/lua/keys/nvimTree.lua b/home/modules/neovim/config/lua/keys/nvimTree.lua deleted file mode 100644 index c2f68e8..0000000 --- a/home/modules/neovim/config/lua/keys/nvimTree.lua +++ /dev/null @@ -1,2 +0,0 @@ -vim.keymap.set("n", "", ":NvimTreeToggle", { silent = true }) - diff --git a/home/modules/neovim/config/lua/keys/ruLayout.lua b/home/modules/neovim/config/lua/keys/ruLayout.lua deleted file mode 100644 index edc551e..0000000 --- a/home/modules/neovim/config/lua/keys/ruLayout.lua +++ /dev/null @@ -1,20 +0,0 @@ -local function escape(str) - -- Эти символы должны быть экранированы, если встречаются в langmap - local escape_chars = [[;,."|\]] - return vim.fn.escape(str, escape_chars) -end - --- Наборы символов, введенных с зажатым шифтом -local en_shift = [[~QWERTYUIOP{}ASDFGHJKL:"ZXCVBNM<>]] -local ru_shift = [[ËЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ]] --- Наборы символов, введенных как есть --- Здесь я не добавляю ',.' и 'бю', чтобы впоследствии не было рекурсивного вызова комманды -local en = [[`qwertyuiop[]asdfghjkl;'zxcvbnm]] -local ru = [[ёйцукенгшщзхъфывапролджэячсмить]] -vim.opt.langmap = vim.fn.join({ - -- ; - разделитель, который не нужно экранировать - -- | - escape(ru_shift) .. ';' .. escape(en_shift), - escape(ru) .. ';' .. escape(en), -}, ',') - diff --git a/home/modules/neovim/config/lua/keys/telescope.lua b/home/modules/neovim/config/lua/keys/telescope.lua deleted file mode 100644 index 4b68a8b..0000000 --- a/home/modules/neovim/config/lua/keys/telescope.lua +++ /dev/null @@ -1,7 +0,0 @@ -local builtin = require('telescope.builtin') - -vim.keymap.set('n', 'ff', builtin.find_files, {}) -vim.keymap.set('n', 'fg', builtin.live_grep, {}) -vim.keymap.set('n', 'fb', builtin.buffers, {}) -vim.keymap.set('n', 'fh', builtin.help_tags, {}) - diff --git a/home/modules/neovim/config/lua/lsp/init.lua b/home/modules/neovim/config/lua/lsp/init.lua index 68585b4..83fefca 100644 --- a/home/modules/neovim/config/lua/lsp/init.lua +++ b/home/modules/neovim/config/lua/lsp/init.lua @@ -7,7 +7,7 @@ end local servers = { "gopls" - , "nil_ls" + -- , "nil_ls" , "lua_ls" , "jsonls" , "pyright" @@ -16,6 +16,7 @@ local servers = { , "helm_ls" , "dockerls" , "docker_compose_language_service" + , "nixd" -- , "gitlab-ci-ls" } diff --git a/home/modules/neovim/config/lua/lsp/settings/nil_ls.lua b/home/modules/neovim/config/lua/lsp/settings/nil_ls.lua index e87c0a5..3ca5647 100644 --- a/home/modules/neovim/config/lua/lsp/settings/nil_ls.lua +++ b/home/modules/neovim/config/lua/lsp/settings/nil_ls.lua @@ -1,4 +1,4 @@ -return { +--[[ return { settings = { ["nil"] = { nix = { @@ -10,4 +10,4 @@ return { }, }, } - +]]-- diff --git a/home/modules/neovim/config/lua/plugins/mini.lua b/home/modules/neovim/config/lua/plugins/mini.lua new file mode 100644 index 0000000..c59d414 --- /dev/null +++ b/home/modules/neovim/config/lua/plugins/mini.lua @@ -0,0 +1,10 @@ +return { + { + "echasnovski/mini.nvim", + event = { "BufReadPre" }, + config = function() + require('mini.align').setup() + end, + }, +} + diff --git a/home/modules/neovim/default.nix b/home/modules/neovim/default.nix index 7018db5..3ff65f2 100644 --- a/home/modules/neovim/default.nix +++ b/home/modules/neovim/default.nix @@ -38,6 +38,7 @@ in { cmake-language-server helm-ls nil + nixd lua-language-server stylua pyright diff --git a/home/modules/sway/default.nix b/home/modules/sway/default.nix index 5af651c..9c56418 100644 --- a/home/modules/sway/default.nix +++ b/home/modules/sway/default.nix @@ -26,19 +26,26 @@ in { }; home.sessionVariables = { - XDG_CURRENT_DESKTOP = "sway"; - XDG_SESSION_DESKTOP = "sway"; + XDG_CURRENT_DESKTOP = "sway"; + XDG_SESSION_DESKTOP = "sway"; + GTK_CSD = 0; + }; + + gtk = { + gtk3.extraConfig = { + gtk-decoration-layout = ":"; + }; }; wayland.windowManager.sway = { enable = true; - package = pkgs.swayfx; + package = pkgs.sway; checkConfig = false; # Swayfx settings - extraConfig = '' + /* extraConfig = '' corner_radius 3 - ''; + ''; */ config = { focus.mouseWarping = "container"; @@ -74,16 +81,17 @@ in { }; startup = [ + { command = "${pkgs.blueman}/bin/blueman-applet"; } { command = "${pkgs.wl-clipboard}/bin/wl-paste --type text --watch cliphist store"; } { command = "${pkgs.wl-clipboard}/bin/wl-paste --type image --watch cliphist store"; } - { command = "${pkgs.swayfx}/bin/swaymsg 'workspace 1; exec ${pkgs.firefox}/bin/firefox'"; } - { command = "${pkgs.swayfx}/bin/swaymsg 'workspace 2; exec ${pkgs.telegram-desktop}/bin/telegram-desktop'"; } - { command = "${pkgs.swayfx}/bin/swaymsg 'workspace 4; exec ${pkgs.obsidian}/bin/obsidian'"; } - { command = "${pkgs.swayfx}/bin/swaymsg 'workspace 5; exec ${pkgs.foot}/bin/foot'"; } - { command = "${pkgs.swayfx}/bin/swaymsg 'workspace 5; exec ${pkgs.foot}/bin/foot'"; } - { command = "${pkgs.swayfx}/bin/swaymsg 'workspace 5; exec ${pkgs.foot}/bin/foot'"; } - { command = "${pkgs.swayfx}/bin/swaymsg 'workspace 6; exec ${pkgs.firefox}/bin/firefox -P work'"; } - { command = "${pkgs.swayfx}/bin/swaymsg 'workspace 8; exec ${pkgs.vesktop}/bin/vesktop'"; } + { command = "${pkgs.sway}/bin/swaymsg 'workspace 1; exec ${pkgs.librewolf}/bin/librewolf'"; } + { command = "${pkgs.sway}/bin/swaymsg 'workspace 2; exec ${pkgs.telegram-desktop}/bin/telegram-desktop'"; } + { command = "${pkgs.sway}/bin/swaymsg 'workspace 4; exec ${pkgs.obsidian}/bin/obsidian'"; } + { command = "${pkgs.sway}/bin/swaymsg 'workspace 5; exec ${pkgs.foot}/bin/foot'"; } + { command = "${pkgs.sway}/bin/swaymsg 'workspace 5; exec ${pkgs.foot}/bin/foot'"; } + { command = "${pkgs.sway}/bin/swaymsg 'workspace 5; exec ${pkgs.foot}/bin/foot'"; } + { command = "${pkgs.sway}/bin/swaymsg 'workspace 6; exec ${pkgs.librewolf}/bin/librewolf -P work'"; } + { command = "${pkgs.sway}/bin/swaymsg 'workspace 8; exec ${pkgs.vesktop}/bin/vesktop'"; } ]; }; }; diff --git a/home/modules/sway/keybinds/default.nix b/home/modules/sway/keybinds/default.nix index a1b27ab..1b33e40 100644 --- a/home/modules/sway/keybinds/default.nix +++ b/home/modules/sway/keybinds/default.nix @@ -26,11 +26,33 @@ let terminal = "${pkgs.foot}/bin/foot"; screenshotArea = "${pkgs.slurp}/bin/slurp | ${pkgs.grim}/bin/grim -g - - | ${pkgs.wl-clipboard}/bin/wl-copy "; screenshotScreen = "${pkgs.grim}/bin/grim -o $(swaymsg -t get_outputs | ${pkgs.jq}/bin/jq -r '.[] | select(.focused) | .name') - | ${pkgs.wl-clipboard}/bin/wl-copy"; - appLauncher = "${pkgs.fuzzel}/bin/fuzzel -T ${terminal}"; + appLauncher = "${pkgs.wofi}/bin/wofi --show drun"; audioControl = "${pkgs.pulseaudio}/bin/pactl"; brightnessControl = "${pkgs.brightnessctl}/bin/brightnessctl"; clipHist = "${pkgs.cliphist}/bin/cliphist list | ${appLauncher} -d | ${pkgs.cliphist}/bin/cliphist decode | ${pkgs.wl-clipboard}/bin/wl-copy"; notificationsApp = "${pkgs.swaynotificationcenter}/bin/swaync-client -t -sw"; + + powerMenu = pkgs.writeShellScriptBin "powerMenu.sh" '' + #!/usr/bin/env bash + + op=$(echo -e " Poweroff\n Reboot\n Suspend\n Lock\n Logout" | ${pkgs.wofi}/bin/wofi -i --dmenu | ${pkgs.gawk}/bin/awk '{print tolower($2)}') + + case $op in + poweroff) + ;& + reboot) + ;& + suspend) + systemctl $op + ;; + lock) + swaylock + ;; + logout) + swaymsg exit + ;; + esac + ''; in { options.module.sway.keybindings = { enable = mkEnableOption "Enable sway keybindings"; @@ -54,6 +76,9 @@ in { # Kill active window "--to-code ${super}+q" = "kill"; + # PowerMenu + "--to-code ${super}+p" = "exec ${powerMenu}/bin/powerMenu.sh"; + # Change focus # Vim like "--to-code ${super}+h" = "focus left"; @@ -104,6 +129,9 @@ in { # Fullscreen mode "--to-code ${super}+f" = "fullscreen"; + # Float mode + "--to-code ${super}+Space" = "floating toggle"; + # Resize mode "--to-code ${super}+r" = "mode resize"; diff --git a/home/modules/sway/outputs/default.nix b/home/modules/sway/outputs/default.nix index 1edddfd..14ddc34 100644 --- a/home/modules/sway/outputs/default.nix +++ b/home/modules/sway/outputs/default.nix @@ -9,60 +9,56 @@ with lib; let cfg = config.module.sway.outputs; - pcboxOutputs = { - DP-1 = { - resolution = "1920x1080@144Hz"; - position = "0 0"; - }; - - DP-2 = { - resolution = "1920x1080@144Hz"; - position = "1920 0"; + outputs = { + default = { }; + + pcbox = { + DP-1 = { + resolution = "1920x1080@144Hz"; + position = "0 0"; + }; + + DP-2 = { + resolution = "1920x1080@144Hz"; + position = "1920 0"; + }; }; - }; - nboxOutputs = { - eDP-1 = { - resolution = "2880x1800@120Hz"; - position = "0 0"; + nbox = { + eDP-1 = { + resolution = "2880x1800@120Hz"; + position = "0 0"; + }; }; }; - outputsByHostname = if hostname == "pcbox" - then pcboxOutputs - else if hostname == "nbox" - then nboxOutputs - else {}; + workspaces = { + default = [ ]; - pcboxWorkspaces = [ - { workspace = "1"; output = "DP-2"; } - { workspace = "2"; output = "DP-2"; } - { workspace = "3"; output = "DP-2"; } - { workspace = "4"; output = "DP-2"; } - { workspace = "5"; output = "DP-2"; } - { workspace = "6"; output = "DP-2"; } - { workspace = "7"; output = "DP-1"; } - { workspace = "8"; output = "DP-1"; } - { workspace = "9"; output = "DP-1"; } - { workspace = "10"; output = "DP-1"; } - { workspace = "11"; output = "DP-1"; } - { workspace = "12"; output = "DP-1"; } - ]; + pcbox = [ + { workspace = "1"; output = "DP-2"; } + { workspace = "2"; output = "DP-2"; } + { workspace = "3"; output = "DP-2"; } + { workspace = "4"; output = "DP-2"; } + { workspace = "5"; output = "DP-2"; } + { workspace = "6"; output = "DP-2"; } + { workspace = "7"; output = "DP-1"; } + { workspace = "8"; output = "DP-1"; } + { workspace = "9"; output = "DP-1"; } + { workspace = "10"; output = "DP-1"; } + { workspace = "11"; output = "DP-1"; } + { workspace = "12"; output = "DP-1"; } + ]; - nboxWorkspaces = [ - { workspace = "1"; output = "eDP-1"; } - { workspace = "2"; output = "eDP-1"; } - { workspace = "3"; output = "eDP-1"; } - { workspace = "4"; output = "eDP-1"; } - { workspace = "5"; output = "eDP-1"; } - { workspace = "6"; output = "eDP-1"; } - ]; - - workspacesByHostname = if hostname == "pcbox" - then pcboxWorkspaces - else if hostname == "nbox" - then nboxWorkspaces - else []; + nbox = [ + { workspace = "1"; output = "eDP-1"; } + { workspace = "2"; output = "eDP-1"; } + { workspace = "3"; output = "eDP-1"; } + { workspace = "4"; output = "eDP-1"; } + { workspace = "5"; output = "eDP-1"; } + { workspace = "6"; output = "eDP-1"; } + ]; + }; in { options.module.sway.outputs = { enable = mkEnableOption "Enable sway outputs"; @@ -70,9 +66,9 @@ in { config = mkIf cfg.enable { wayland.windowManager.sway.config = { - output = outputsByHostname; + output = outputs.${hostname}; - workspaceOutputAssign = workspacesByHostname; + workspaceOutputAssign = workspaces.${hostname}; }; }; } diff --git a/home/modules/thunderbird/default.nix b/home/modules/thunderbird/default.nix new file mode 100644 index 0000000..6e37ffa --- /dev/null +++ b/home/modules/thunderbird/default.nix @@ -0,0 +1,33 @@ +{ lib +, config +, ... +}: + +with lib; + +let + cfg = config.module.thunderbird; +in { + options = { + module.thunderbird.enable = mkEnableOption "Enables thunderbird"; + }; + + config = mkIf cfg.enable { + programs.thunderbird = { + enable = true; + + profiles = { + "main" = { + isDefault = true; + + settings = { + "calendar.alarms.showmissed" = false; + "calendar.alarms.playsound" = false; + "calendar.alarms.show" = false; + }; + }; + }; + }; + }; +} + diff --git a/home/modules/waybar/default.nix b/home/modules/waybar/default.nix index 3b822f6..d370afb 100644 --- a/home/modules/waybar/default.nix +++ b/home/modules/waybar/default.nix @@ -1,4 +1,5 @@ -{ pkgs +{ self +, pkgs , config , lib , homeModules @@ -35,7 +36,7 @@ in { margin-right = 7; modules-left = [ - "custom/nixlogo" + "image#nixlogo" "${wm}/workspaces" ]; @@ -56,9 +57,15 @@ in { # Logo "custom/nixlogo" = { - format = " "; + format = ""; tooltip = false; - on-click = "rofi -show"; + on-click = "${pkgs.wofi}/bin/wofi --show drun"; + }; + + "image#nixlogo" = { + path = "${self}/assets/Nix_Logo.svg"; + tooltip = false; + on-click = "${pkgs.wofi}/bin/wofi --show drun"; }; # Workspaces @@ -73,6 +80,7 @@ in { "sway/workspaces" = { all-outputs = true; + disable-scroll = true; }; # Clock & Calendar @@ -88,7 +96,7 @@ in { # Tray tray = { - icon-size = 18; + icon-size = 15; show-passive-items = true; spacing = 8; }; @@ -142,7 +150,7 @@ in { # Battery battery = { - format = "{icon} {capacity}%"; + format = "{icon} {capacity}%"; format-charging = "{icon} {capacity}%"; format-icons = ["" "" "" "" ""]; format-plugged = " {power} W"; diff --git a/home/modules/waybar/style.css b/home/modules/waybar/style.css index 1c1526a..92740c2 100644 --- a/home/modules/waybar/style.css +++ b/home/modules/waybar/style.css @@ -1,19 +1,5 @@ -@define-color background-alt rgba(137, 180, 250, 0.05); -@define-color background-focus rgba(255, 255, 255, 0.1); -@define-color border rgba(205, 214, 244, 0.2); -@define-color red rgb( 243, 139, 168); -@define-color orange rgb( 250, 179, 135); -@define-color yellow rgb( 249, 226, 175 ); -@define-color green rgb( 166, 227, 161 ); -@define-color blue rgb( 137, 180, 250 ); -@define-color gray rgb( 108, 112, 134 ); -@define-color black rgb( 49, 50, 68 ); -@define-color white rgb( 205, 214, 244 ); - * { all: unset; - /* font: - 10pt "JetBrains Mono Nerd Font"*/ } /* Button */ @@ -47,12 +33,12 @@ window#waybar { /* Left Modules */ .modules-left { - padding-left: 0.5rem; + padding-left: 0.2rem; } /* Right Modules */ .modules-right { - padding-right: 0.5rem; + padding-right: 0.2rem; } /* Modules */ @@ -64,23 +50,16 @@ window#waybar { #network, #battery, #custom-notification, +#workspaces button, +#custom-nixlogo, +#image, #clock { color: @base05; background: @base01; border: 1px solid @base03; border-radius: 5px; - margin: 0.7rem 0.35rem; - padding: 0.4rem 0.8rem 0.4rem 0.8rem; -} - -#custom-nixlogo { - color: @base05; - background: @base01; - border: 1px solid @base03; - border-radius: 5px; - margin: 0.7rem 0.35rem; - padding: 0.4rem 0.45rem 0.4rem 0.7rem ; - font: 10pt "JetBrains Mono Nerd Font"; + margin: 0.35rem 0.25rem; + padding: 0.2rem 0.6rem 0.2rem 0.6rem; } .modules-left #workspaces button { @@ -106,13 +85,7 @@ window#waybar { } #workspaces button { - background: @base01; - color: @base05; - border: 1px solid @base03; border-radius: 3px; - padding: 0.4rem 0.8rem 0.4rem 0.8rem; - margin-right: 0.8rem; - margin: 0.7rem 0.35rem; transition: 200ms linear; } @@ -122,7 +95,7 @@ window#waybar { #workspaces button:hover { background: lighter(@base05); - color: @black; + color: @base00; } #workspaces button.empty { @@ -157,17 +130,17 @@ window#waybar { #workspaces button.active { background: @base0D; - color: @black; + color: @base00; } #workspaces button.active:hover { background: lighter(@base0D); - color: @black; + color: @base00; } #workspaces button.current_output.focused { background: @base0D; - color: @black; + color: @base00; } /* Systray */ @@ -229,7 +202,3 @@ menu menuitem:only-child { } } -#network { - padding: 0.4rem 1.0rem 0.4rem 0.8rem; -} - diff --git a/home/modules/wofi/default.nix b/home/modules/wofi/default.nix index 87aacf7..0aff498 100644 --- a/home/modules/wofi/default.nix +++ b/home/modules/wofi/default.nix @@ -17,6 +17,12 @@ in { config = mkIf cfg.enable { programs.wofi = { enable = true; + + settings = { + allow_images = true; + insensitive = true; + width = "30%"; + }; }; }; } diff --git a/home/users/maxmur/default.nix b/home/users/maxmur/default.nix index 9766c77..b629a4d 100644 --- a/home/users/maxmur/default.nix +++ b/home/users/maxmur/default.nix @@ -15,16 +15,18 @@ }; module = { - alacritty.enable = isWorkstation; - vscode.enable = isWorkstation; - doom-emacs.enable = isWorkstation; - zathura.enable = isWorkstation; - stylix.enable = isWorkstation; + alacritty.enable = isWorkstation; + vscode.enable = isWorkstation; + emacs.enable = isWorkstation; + zathura.enable = isWorkstation; + stylix.enable = isWorkstation; - chrome.enable = isLinux && isWorkstation; - firefox.enable = isLinux && isWorkstation; - foot.enable = isLinux && isWorkstation; - ssh.enable = isLinux && isWorkstation; + chrome.enable = isLinux && isWorkstation; + firefox.enable = isLinux && isWorkstation; + librewolf.enable = isLinux && isWorkstation; + thunderbird.enable = isLinux && isWorkstation; + foot.enable = isLinux && isWorkstation; + ssh.enable = isLinux && isWorkstation; hyprland.enable = hyprlandEnable && isLinux && isWorkstation; hyprlock.enable = hyprlandEnable && isLinux && isWorkstation; @@ -35,6 +37,7 @@ hypridle.enable = wmEnable && isLinux && isWorkstation; waybar.enable = wmEnable && isLinux && isWorkstation; fuzzel.enable = wmEnable && isLinux && isWorkstation; + wofi.enable = wmEnable && isLinux && isWorkstation; swaync.enable = wmEnable && isLinux && isWorkstation; btop.enable = true; @@ -43,7 +46,9 @@ fzf.enable = true; htop.enable = true; ripgrep.enable = true; + lazygit.enable = true; neofetch.enable = true; + fastfetch.enable = true; nvim.enable = true; helix.enable = true; password-store.enable = true; diff --git a/home/users/maxmur/modules/impermanence/default.nix b/home/users/maxmur/modules/impermanence/default.nix index 4dfbb96..cda0f40 100644 --- a/home/users/maxmur/modules/impermanence/default.nix +++ b/home/users/maxmur/modules/impermanence/default.nix @@ -39,6 +39,7 @@ in { ".kube" ".m2" ".mozilla" + ".librewolf" ".thunderbird" ".obsidian" ".openvpn" @@ -58,6 +59,7 @@ in { ".config/nvim" ".config/syncthing" ".config/pulse" + ".local/share/chat.fluffy.fluffychat" ".local/share/zoxide" ".local/share/fish" ".local/share/nix" diff --git a/home/users/maxmur/modules/packages/default.nix b/home/users/maxmur/modules/packages/default.nix index d0b8849..0a70ef7 100644 --- a/home/users/maxmur/modules/packages/default.nix +++ b/home/users/maxmur/modules/packages/default.nix @@ -41,11 +41,6 @@ in { # Text Editors obsidian - # Security - semgrep - grype - syft - # Fonts (nerdfonts.override { fonts = [ "JetBrainsMono" "UbuntuMono" "Iosevka" ]; }) corefonts @@ -60,11 +55,10 @@ in { kubernetes-helm ansible ansible-lint - terraform - vagrant # Chats telegram-desktop + fluffychat vesktop # Office diff --git a/home/users/maxmur/modules/xdg/default.nix b/home/users/maxmur/modules/xdg/default.nix index e4bc657..8b79754 100644 --- a/home/users/maxmur/modules/xdg/default.nix +++ b/home/users/maxmur/modules/xdg/default.nix @@ -20,11 +20,11 @@ in { "text/markdown" = "nvim.desktop"; "text/plain" = "nvim.desktop"; - "text/html" = "firefox.desktop"; - "x-scheme-handler/http" = "firefox.desktop"; - "x-scheme-handler/https" = "firefox.desktop"; - "x-scheme-handler/about" = "firefox.desktop"; - "x-scheme-handler/unknown" = "firefox.desktop"; + "text/html" = "librewolf.desktop"; + "x-scheme-handler/http" = "librewolf.desktop"; + "x-scheme-handler/https" = "librewolf.desktop"; + "x-scheme-handler/about" = "librewolf.desktop"; + "x-scheme-handler/unknown" = "librewolf.desktop"; "image/png" = "org.gnome.eog.desktop"; "image/jpeg" = "org.gnome.eog.desktop"; diff --git a/modules/nix/default.nix b/modules/nix/default.nix index 38fa6e6..3c0298b 100644 --- a/modules/nix/default.nix +++ b/modules/nix/default.nix @@ -31,6 +31,8 @@ in { "electron-27.3.11" "electron-25.9.0" "electron-19.1.9" + "fluffychat-linux-1.20.0" + "olm-3.2.16" ]; }; diff --git a/modules/stylix/default.nix b/modules/stylix/default.nix index abf27e4..b8819cd 100644 --- a/modules/stylix/default.nix +++ b/modules/stylix/default.nix @@ -58,7 +58,7 @@ in { monospace = { inherit (config.stylix.fonts.serif) package; - name = "Iosevka Term"; + name = "Iosevka Nerd Font Mono"; }; emoji = config.stylix.fonts.serif; diff --git a/system/default.nix b/system/default.nix index 31960d9..641b3de 100644 --- a/system/default.nix +++ b/system/default.nix @@ -21,6 +21,7 @@ inputs.lanzaboote.nixosModules.lanzaboote inputs.chaotic.nixosModules.default inputs.nix-topology.nixosModules.default + inputs.nur.nixosModules.nur "${commonModules}" "${systemModules}" diff --git a/system/machine/nbox/default.nix b/system/machine/nbox/default.nix index 2bd5985..724082d 100644 --- a/system/machine/nbox/default.nix +++ b/system/machine/nbox/default.nix @@ -1,11 +1,10 @@ -{ hyprlandEnable -, ... -}: +_: { module = { sound.enable = true; lanzaboote.enable = true; + bluetooth.enable = true; locales.enable = true; network.enable = true; timedate.enable = true; @@ -15,6 +14,7 @@ stylix.enable = true; minimal.enable = true; nixos-ng.enable = true; + plymouth.enable = true; chaotic = { enable = true; @@ -36,11 +36,9 @@ syncthing.enable = true; udev.enable = true; zram.enable = true; - greetd-tui.enable = true; + greetd.enable = true; ollama.enable = true; netbird.enable = true; - - hyprland.enable = hyprlandEnable; }; programs = { diff --git a/system/machine/pcbox/default.nix b/system/machine/pcbox/default.nix index 719068e..3086a77 100644 --- a/system/machine/pcbox/default.nix +++ b/system/machine/pcbox/default.nix @@ -1,5 +1,4 @@ -{ hyprlandEnable -, config +{ config , ... }: @@ -7,6 +6,7 @@ module = { sound.enable = true; boot.enable = true; + bluetooth.enable = true; locales.enable = true; network.enable = true; timedate.enable = true; @@ -16,6 +16,7 @@ stylix.enable = true; minimal.enable = true; nixos-ng.enable = true; + plymouth.enable = true; chaotic = { enable = true; @@ -29,17 +30,15 @@ }; services = { - bolt.enable = true; - fwupd.enable = true; - polkit.enable = true; - printing.enable = true; - syncthing.enable = true; - udev.enable = true; - greetd-tui.enable = true; - qmk.enable = true; - netbird.enable = true; - - hyprland.enable = hyprlandEnable; + bolt.enable = true; + fwupd.enable = true; + polkit.enable = true; + printing.enable = true; + syncthing.enable = true; + udev.enable = true; + greetd.enable = true; + qmk.enable = true; + netbird.enable = true; ollama = { enable = true; diff --git a/system/machine/pcbox/modules/hardware/network/default.nix b/system/machine/pcbox/modules/hardware/network/default.nix index 986c296..f066169 100644 --- a/system/machine/pcbox/modules/hardware/network/default.nix +++ b/system/machine/pcbox/modules/hardware/network/default.nix @@ -5,7 +5,7 @@ _: enable = true; networks.eth0 = { - matchConfig.Name = "eth0"; + matchConfig.Name = "enp0s31f6"; address = [ "192.168.1.50/24" ]; dns = [ "192.168.1.8" ]; }; diff --git a/system/machine/rasp/modules/hardware/default.nix b/system/machine/rasp/modules/hardware/default.nix index dc7b401..f173a87 100644 --- a/system/machine/rasp/modules/hardware/default.nix +++ b/system/machine/rasp/modules/hardware/default.nix @@ -34,7 +34,9 @@ in { libraspberrypi ]; - services.openssh.enable = true; + services.openssh = { + enable = true; + }; hardware.enableRedistributableFirmware = true; } diff --git a/system/machine/rasp/modules/hardware/network/default.nix b/system/machine/rasp/modules/hardware/network/default.nix index 410400b..bfa1cea 100644 --- a/system/machine/rasp/modules/hardware/network/default.nix +++ b/system/machine/rasp/modules/hardware/network/default.nix @@ -25,6 +25,7 @@ 53 80 443 + 3000 4224 5335 8053 diff --git a/system/machine/rasp/modules/temp-control/default.nix b/system/machine/rasp/modules/temp-control/default.nix index 08a2323..db1eda2 100644 --- a/system/machine/rasp/modules/temp-control/default.nix +++ b/system/machine/rasp/modules/temp-control/default.nix @@ -57,8 +57,8 @@ def main() -> int: try: - tempOn = 60 - controlPin = 14 + tempOn = 75 + controlPin = 512 + 14 pinState = False try: subprocess.run(f"echo {controlPin} > /sys/class/gpio/export", shell=True, check=True) diff --git a/system/modules/bluetooth/default.nix b/system/modules/bluetooth/default.nix new file mode 100644 index 0000000..b1985bd --- /dev/null +++ b/system/modules/bluetooth/default.nix @@ -0,0 +1,26 @@ +{ lib +, config +, ... +}: + +with lib; + +let + cfg = config.module.bluetooth; +in { + options = { + module.bluetooth = { + enable = mkEnableOption "Enables bluetooth"; + }; + }; + + config = mkIf cfg.enable { + services.blueman.enable = true; + + hardware.bluetooth = { + enable = true; + powerOnBoot = true; + }; + }; +} + diff --git a/system/modules/locales/default.nix b/system/modules/locales/default.nix index 7574f76..99193e9 100644 --- a/system/modules/locales/default.nix +++ b/system/modules/locales/default.nix @@ -16,20 +16,7 @@ in { # Locale settings i18n = { defaultLocale = "en_US.UTF-8"; - - extraLocaleSettings = { - LC_ALL = "en_US.UTF-8"; - LC_CTYPE = "en_US.UTF-8"; - LC_ADDRESS = "en_US.UTF-8"; - LC_IDENTIFICATION = "en_US.UTF-8"; - LC_MEASUREMENT = "en_US.UTF-8"; - LC_MONETARY = "en_US.UTF-8"; - LC_NAME = "en_US.UTF-8"; - LC_NUMERIC = "en_US.UTF-8"; - LC_PAPER = "en_US.UTF-8"; - LC_TELEPHONE = "en_US.UTF-8"; - LC_TIME = "en_US.UTF-8"; - }; + supportedLocales = [ "all" ]; }; }; } diff --git a/system/modules/network/default.nix b/system/modules/network/default.nix index 0fa59c0..1f373b6 100644 --- a/system/modules/network/default.nix +++ b/system/modules/network/default.nix @@ -15,6 +15,7 @@ in { config = mkIf cfg.enable { systemd.services.NetworkManager-wait-online.enable = false; + systemd.services.systemd-networkd-wait-online.enable = mkForce false; networking = { networkmanager = { diff --git a/system/modules/nixos-ng/default.nix b/system/modules/nixos-ng/default.nix index 8e9b91d..345f5cc 100644 --- a/system/modules/nixos-ng/default.nix +++ b/system/modules/nixos-ng/default.nix @@ -16,17 +16,23 @@ in { config = mkIf cfg.enable { boot.initrd.systemd.enable = true; - # systemd.sysusers.enable = true; ### break - system.switch = { - enable = false; - enableNg = true; + services = { + userborn.enable = true; + dbus.implementation = "broker"; }; - # system.etc.overlay = { - # enable = true; - # mutable = false; - # }; + system = { + switch = { + enable = false; + enableNg = true; + }; + + /* etc.overlay = { + enable = true; + mutable = true; + }; */ + }; }; } diff --git a/system/modules/plymouth/default.nix b/system/modules/plymouth/default.nix new file mode 100644 index 0000000..044efb6 --- /dev/null +++ b/system/modules/plymouth/default.nix @@ -0,0 +1,23 @@ +{ lib +, config +, ... +}: + +with lib; + +let + cfg = config.module.plymouth; +in { + options = { + module.plymouth = { + enable = mkEnableOption "Enables plymouth"; + }; + }; + + config = mkIf cfg.enable { + boot.plymouth = { + enable = true; + }; + }; +} + diff --git a/system/modules/programs/gnupg/default.nix b/system/modules/programs/gnupg/default.nix index 40f47b1..6f9fdff 100644 --- a/system/modules/programs/gnupg/default.nix +++ b/system/modules/programs/gnupg/default.nix @@ -16,7 +16,6 @@ in { programs.gnupg.agent = { enable = true; enableSSHSupport = true; - # pinentryPackage = lib.mkForce pkgs.pinentry-qt; }; }; } diff --git a/system/modules/programs/systemPackages/default.nix b/system/modules/programs/systemPackages/default.nix index a368930..9a9385e 100644 --- a/system/modules/programs/systemPackages/default.nix +++ b/system/modules/programs/systemPackages/default.nix @@ -23,7 +23,6 @@ in { environment.systemPackages = with pkgs; [ # Utils git - home-manager nvd nix-output-monitor curl @@ -60,8 +59,6 @@ in { cacert ] ++ optionals isWorkstation [ # Themes - orchis-theme - vimix-cursors tela-circle-icon-theme # Hardware @@ -76,7 +73,6 @@ in { # Utils dconf-editor - grim ]; }; } diff --git a/system/modules/security/default.nix b/system/modules/security/default.nix index 0aa7489..e641e14 100644 --- a/system/modules/security/default.nix +++ b/system/modules/security/default.nix @@ -18,19 +18,18 @@ in { config = mkIf cfg.enable { security = { - sudo.enable = true; - pam.services.swaylock = {}; + sudo.enable = false; - doas = { + pam.services = { + gtklock = {}; + swaylock = {}; + hyprlock = {}; + }; + + sudo-rs = { enable = true; - extraRules = [ - { - groups = [ "wheel" ]; - noPass = false; - keepEnv = true; - persist = true; - } - ]; + execWheelOnly = true; + wheelNeedsPassword = true; }; }; @@ -106,7 +105,7 @@ in { # Ignore outgoing ICMP redirects (this is ipv4 only) "net.ipv4.conf.all.send_redirects" = false; "net.ipv4.conf.default.send_redirects" = false; - } // optionals cfg.disableIPV6 { + } // optionalAttrs cfg.disableIPV6 { # Disable ipv6 "net.ipv6.conf.all.disable_ipv6" = true; "net.ipv6.conf.default.disable_ipv6" = true; diff --git a/system/modules/services/greetd-tui/default.nix b/system/modules/services/greetd/default.nix similarity index 73% rename from system/modules/services/greetd-tui/default.nix rename to system/modules/services/greetd/default.nix index 8aad4c9..f780e09 100644 --- a/system/modules/services/greetd-tui/default.nix +++ b/system/modules/services/greetd/default.nix @@ -10,17 +10,17 @@ with lib; let - cfg = config.module.services.greetd-tui; + cfg = config.module.services.greetd; cmd = if wm == "hyprland" then "${inputs.hyprland.packages.${pkgs.system}.hyprland}/bin/Hyprland" else if wm == "sway" - then "${pkgs.swayfx}/bin/sway" + then "${pkgs.sway}/bin/sway" else ""; in { options = { - module.services.greetd-tui = { - enable = mkEnableOption "Enable greetd-tui"; + module.services.greetd = { + enable = mkEnableOption "Enable greetd"; }; }; @@ -29,9 +29,14 @@ in { enableGnomeKeyring = true; }; + programs.regreet = { + enable = true; + cageArgs = [ "-s" "-m" "last" ]; + }; + services.greetd = { enable = true; - vt = 2; + vt = 7; settings = { default_session = { diff --git a/system/modules/users/default.nix b/system/modules/users/default.nix index 6102d17..d7468ef 100644 --- a/system/modules/users/default.nix +++ b/system/modules/users/default.nix @@ -19,15 +19,22 @@ in { users = { mutableUsers = false; + groups = { + ${username} = { + gid = 1000; + }; + }; + users = { ${username} = { - description = "${username}"; - home = "/home/${username}"; - shell = pkgs.fish; + uid = 1000; + home = "/home/${username}"; + shell = pkgs.fish; + group = "${username}"; + createHome = true; + description = "${username}"; + isSystemUser = true; hashedPasswordFile = "${self}/secrets/hashes/${username}.hash"; - createHome = true; - group = "users"; - isSystemUser = true; extraGroups = [ "audio"