Compare commits

...

19 Commits

Author SHA1 Message Date
Sweetbread bbd84a0903 Rias: change mount type 2026-05-21 22:09:06 +03:00
Sweetbread 7a9f10ffb5 Update 2026-05-21 22:09:06 +03:00
Sweetbread 7d5b12ba34 ygg: change node 2026-05-21 22:09:06 +03:00
Sweetbread 13b4e7b1a8 Impreza: add wallpaper 2026-05-21 22:09:06 +03:00
Sweetbread 731a95289a nvidia: fix backlight 2026-05-21 22:09:06 +03:00
Chest 1deef1e46b waybar for mee<3 2026-05-21 22:09:06 +03:00
Chest 42d3628e35 vpn for gpt 2026-05-21 22:09:06 +03:00
Sweetbread 48d90fac39 vpn: change engine 2026-05-21 22:09:06 +03:00
Sweetbread d460f0c8d5 Update system 2026-05-21 22:09:05 +03:00
Sweetbread 22572128fc wip: cava 2026-05-21 22:08:48 +03:00
Sweetbread aa3fb4b2ce starship: fix os icon 2026-04-03 04:39:25 +03:00
Sweetbread ec6558a6ee hyprland: add zoom 2026-04-03 04:39:25 +03:00
Sweetbread 1a89460348 tty: fix Cyrillic 2026-04-03 04:39:25 +03:00
Sweetbread 79574a4238 ssh: keepalive 2026-04-03 04:39:25 +03:00
Sweetbread 7fc241affc Replace AGS with waybar 2026-04-03 04:39:25 +03:00
Sweetbread 37fc953d3a Update system 2026-04-03 04:39:25 +03:00
Sweetbread f189ff1d40 Style hyprland 2026-03-17 19:22:08 +03:00
Sweetbread 258a155c00 Make VPN list via flake
Wow, I didn't know I can do this...
2026-03-17 19:22:08 +03:00
Sweetbread efc3a7fbc8 Update system 2026-03-17 19:22:08 +03:00
36 changed files with 1178 additions and 277 deletions
Generated
+194 -183
View File
@@ -7,11 +7,11 @@
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1771029844,
"narHash": "sha256-fY6UGNKCQcYkflnkdzNRbuGNJiavQzokZjMCMVfUgCg=",
"lastModified": 1778493762,
"narHash": "sha256-PG7vz7Dk3U3hB8OXtIS3bJ4QmJEw08ycFprJuAO7YS0=",
"owner": "ezKEa",
"repo": "aagl-gtk-on-nix",
"rev": "c3b9c0ab9e24d1648ed29040164704a1cd8fa3c9",
"rev": "75aac6845b47e913b53c2a0af7fd124fdb8fe84a",
"type": "github"
},
"original": {
@@ -23,7 +23,7 @@
"ags": {
"inputs": {
"astal": "astal",
"nixpkgs": "nixpkgs_3"
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1744557573,
@@ -60,11 +60,11 @@
]
},
"locked": {
"lastModified": 1762356719,
"narHash": "sha256-qwd/xdoOya1m8FENle+4hWnydCtlXUWLAW/Auk6WL7s=",
"lastModified": 1772460678,
"narHash": "sha256-NYaWs8fYJ38IgFld0hGSdT2LEVhrgO8SiRReBjIH7YY=",
"owner": "hyprwm",
"repo": "aquamarine",
"rev": "6d0b3567584691bf9d8fedb5d0093309e2f979c7",
"rev": "5d2cb726b16ee349df443f84b64cff53221b6983",
"type": "github"
},
"original": {
@@ -132,11 +132,11 @@
"base16-helix": {
"flake": false,
"locked": {
"lastModified": 1760703920,
"narHash": "sha256-m82fGUYns4uHd+ZTdoLX2vlHikzwzdu2s2rYM2bNwzw=",
"lastModified": 1776754714,
"narHash": "sha256-E3OAK27smtATTmX45uoTSRsVD+Y+ZiVVfgM/tjpbtYg=",
"owner": "tinted-theming",
"repo": "base16-helix",
"rev": "d646af9b7d14bff08824538164af99d0c521b185",
"rev": "4d508123037e7851ad36ebf7d9c48b0e9e1eb581",
"type": "github"
},
"original": {
@@ -165,11 +165,11 @@
"firefox-gnome-theme": {
"flake": false,
"locked": {
"lastModified": 1764873433,
"narHash": "sha256-1XPewtGMi+9wN9Ispoluxunw/RwozuTRVuuQOmxzt+A=",
"lastModified": 1776136500,
"narHash": "sha256-r0gN2brVWA351zwMV0Flmlcd6SGMvYqFbvC3DfKFM8Y=",
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"rev": "f7ffd917ac0d253dbd6a3bf3da06888f57c69f92",
"rev": "0f8ba203d475587f477e7ae12661bd8459e225b7",
"type": "github"
},
"original": {
@@ -197,15 +197,15 @@
"flake-compat_2": {
"flake": false,
"locked": {
"lastModified": 1747046372,
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"owner": "edolstra",
"lastModified": 1767039857,
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
"owner": "NixOS",
"repo": "flake-compat",
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
"type": "github"
},
"original": {
"owner": "edolstra",
"owner": "NixOS",
"repo": "flake-compat",
"type": "github"
}
@@ -218,11 +218,11 @@
]
},
"locked": {
"lastModified": 1767609335,
"narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=",
"lastModified": 1775087534,
"narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "250481aafeb741edfe23d29195671c19b36b6dca",
"rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b",
"type": "github"
},
"original": {
@@ -290,20 +290,18 @@
"gnome-shell": {
"flake": false,
"locked": {
"host": "gitlab.gnome.org",
"lastModified": 1767737596,
"narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=",
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "ef02db02bf0ff342734d525b5767814770d85b49",
"type": "gitlab"
"type": "github"
},
"original": {
"host": "gitlab.gnome.org",
"owner": "GNOME",
"ref": "gnome-49",
"repo": "gnome-shell",
"type": "gitlab"
"rev": "ef02db02bf0ff342734d525b5767814770d85b49",
"type": "github"
}
},
"home-manager": {
@@ -313,11 +311,11 @@
]
},
"locked": {
"lastModified": 1771037579,
"narHash": "sha256-NX5XuhGcsmk0oEII2PEtMRgvh2KaAv3/WWQsOpxAgR4=",
"lastModified": 1778954430,
"narHash": "sha256-oaNyOr05lblaQdtbkbN1wO0b2KLIL2O1LkmwDgdQp4I=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "05e6dc0f6ed936f918cb6f0f21f1dad1e4c53150",
"rev": "26aaab785b0bab4af60a2c42b22760fa906ef22a",
"type": "github"
},
"original": {
@@ -342,11 +340,11 @@
]
},
"locked": {
"lastModified": 1753964049,
"narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=",
"lastModified": 1772461003,
"narHash": "sha256-pVICsV7FtcEeVwg5y/LFh3XFUkVJninm/P1j/JHzEbM=",
"owner": "hyprwm",
"repo": "hyprcursor",
"rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5",
"rev": "b62396457b9cfe2ebf24fe05404b09d2a40f8ed7",
"type": "github"
},
"original": {
@@ -371,11 +369,11 @@
]
},
"locked": {
"lastModified": 1762462052,
"narHash": "sha256-6roLYzcDf4V38RUMSqycsOwAnqfodL6BmhRkUtwIgdA=",
"lastModified": 1772461523,
"narHash": "sha256-mI6A51do+hEUzeJKk9YSWfVHdI/SEEIBi2tp5Whq5mI=",
"owner": "hyprwm",
"repo": "hyprgraphics",
"rev": "ffc999d980c7b3bca85d3ebd0a9fbadf984a8162",
"rev": "7d63c04b4a2dd5e59ef943b4b143f46e713df804",
"type": "github"
},
"original": {
@@ -393,23 +391,24 @@
"hyprland-protocols": "hyprland-protocols",
"hyprlang": "hyprlang",
"hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner_2",
"nixpkgs": "nixpkgs_4",
"hyprwayland-scanner": "hyprwayland-scanner",
"hyprwire": "hyprwire",
"nixpkgs": "nixpkgs_3",
"pre-commit-hooks": "pre-commit-hooks",
"systems": "systems",
"xdph": "xdph"
},
"locked": {
"lastModified": 1762731096,
"narHash": "sha256-Kma5MxOipSBamO6DnwBeqJNjJ+VwEO73zh9h1hs/2Aw=",
"lastModified": 1773149218,
"narHash": "sha256-m5Ewi+rgn18qPP54Um4O2zwZ02oiomlZssHvXYEUv3U=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "967c3c7404d4fa00234e29c70df3e263386d2597",
"rev": "59f9f2688ac508a0584d1462151195a6c4992f99",
"type": "github"
},
"original": {
"owner": "hyprwm",
"ref": "v0.52.1-b",
"ref": "v0.54.2-b",
"repo": "Hyprland",
"type": "github"
}
@@ -433,6 +432,10 @@
"hyprland",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
@@ -443,11 +446,11 @@
]
},
"locked": {
"lastModified": 1762465111,
"narHash": "sha256-dS13YZdWjgGGLBjpT4FHB6xf8I/WiAU+mgNWXsZgDUs=",
"lastModified": 1772467975,
"narHash": "sha256-kipyuDBxrZq+beYpZqWzGvFWm4QbayW9agAvi94vDXY=",
"owner": "hyprwm",
"repo": "hyprland-guiutils",
"rev": "a415eba866a953f3096d661318f771aa0082eb98",
"rev": "5e1c6b9025aaf4d578f3eff7c0eb1f0c197a9507",
"type": "github"
},
"original": {
@@ -473,11 +476,11 @@
]
},
"locked": {
"lastModified": 1770899531,
"narHash": "sha256-UBrWjh0DR8db60aLNkTnZTJ9F4kWK0Y7rUDNJC88W7A=",
"lastModified": 1778926589,
"narHash": "sha256-IX6e5ggQi60UChhDJx6wsczbPRCEE8WZbEtlDMazLmU=",
"owner": "hyprwm",
"repo": "hyprland-plugins",
"rev": "e03c34ccd51280a44ea6d1f5c040cd81ecca25ed",
"rev": "f1569efa6a939fd68cee605d2a34d0db3af5d879",
"type": "github"
},
"original": {
@@ -498,11 +501,11 @@
]
},
"locked": {
"lastModified": 1759610243,
"narHash": "sha256-+KEVnKBe8wz+a6dTLq8YDcF3UrhQElwsYJaVaHXJtoI=",
"lastModified": 1772460177,
"narHash": "sha256-/6G/MsPvtn7bc4Y32pserBT/Z4SUUdBd4XYJpOEKVR4=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
"rev": "bd153e76f751f150a09328dbdeb5e4fab9d23622",
"rev": "1cb6db5fd6bb8aee419f4457402fa18293ace917",
"type": "github"
},
"original": {
@@ -527,11 +530,11 @@
]
},
"locked": {
"lastModified": 1758927902,
"narHash": "sha256-LZgMds7M94+vuMql2bERQ6LiFFdhgsEFezE4Vn+Ys3A=",
"lastModified": 1772459629,
"narHash": "sha256-/iwvNUYShmmnwmz/czEUh6+0eF5vCMv0xtDW0STPIuM=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "4dafa28d4f79877d67a7d1a654cddccf8ebf15da",
"rev": "7615ee388de18239a4ab1400946f3d0e498a8186",
"type": "github"
},
"original": {
@@ -562,7 +565,11 @@
"hyprland-guiutils",
"hyprutils"
],
"hyprwayland-scanner": "hyprwayland-scanner",
"hyprwayland-scanner": [
"hyprland",
"hyprland-guiutils",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"hyprland-guiutils",
@@ -575,11 +582,11 @@
]
},
"locked": {
"lastModified": 1762463729,
"narHash": "sha256-2fYkU/mdz8WKY3dkDPlE/j6hTxIwqultsx4gMMsMns0=",
"lastModified": 1772462885,
"narHash": "sha256-5pHXrQK9zasMnIo6yME6EOXmWGFMSnCITcfKshhKJ9I=",
"owner": "hyprwm",
"repo": "hyprtoolkit",
"rev": "88483bdee5329ec985f0c8f834c519cd18cfe532",
"rev": "9af245a69fa6b286b88ddfc340afd288e00a6998",
"type": "github"
},
"original": {
@@ -600,11 +607,11 @@
]
},
"locked": {
"lastModified": 1762387740,
"narHash": "sha256-gQ9zJ+pUI4o+Gh4Z6jhJll7jjCSwi8ZqJIhCE2oqwhQ=",
"lastModified": 1772459870,
"narHash": "sha256-xxkK2Cvqxpf/4UGcJ/TyCwrvmiNWsKsJfFzHMp2bxis=",
"owner": "hyprwm",
"repo": "hyprutils",
"rev": "926689ddb9c0a8787e58c02c765a62e32d63d1f7",
"rev": "e63f3a79334dec49f8eb1691f66f18115df04085",
"type": "github"
},
"original": {
@@ -617,23 +624,19 @@
"inputs": {
"nixpkgs": [
"hyprland",
"hyprland-guiutils",
"hyprtoolkit",
"nixpkgs"
],
"systems": [
"hyprland",
"hyprland-guiutils",
"hyprtoolkit",
"systems"
]
},
"locked": {
"lastModified": 1755184602,
"narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=",
"lastModified": 1772459835,
"narHash": "sha256-978jRz/y/9TKmZb/qD4lEYHCQGHpEXGqy+8X2lFZsak=",
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d",
"rev": "0a692d4a645165eebd65f109146b8861e3a925e7",
"type": "github"
},
"original": {
@@ -642,8 +645,12 @@
"type": "github"
}
},
"hyprwayland-scanner_2": {
"hyprwire": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
@@ -654,26 +661,26 @@
]
},
"locked": {
"lastModified": 1755184602,
"narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=",
"lastModified": 1772463520,
"narHash": "sha256-GIjASzYnV4fK19HnyJKmHyqyxHxIpjusK9foEA4Yo+4=",
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d",
"repo": "hyprwire",
"rev": "4e1933ae5602b350c5b6633f5c932549c9b8aca2",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"repo": "hyprwire",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1770841267,
"narHash": "sha256-9xejG0KoqsoKEGp2kVbXRlEYtFFcDTHjidiuX8hGO44=",
"lastModified": 1777268161,
"narHash": "sha256-bxrdOn8SCOv8tN4JbTF/TXq7kjo9ag4M+C8yzzIRYbE=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "ec7c70d12ce2fc37cb92aff673dcdca89d187bae",
"rev": "1c3fe55ad329cbcb28471bb30f05c9827f724c76",
"type": "github"
},
"original": {
@@ -701,11 +708,11 @@
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1770770419,
"narHash": "sha256-iKZMkr6Cm9JzWlRYW/VPoL0A9jVKtZYiU4zSrVeetIs=",
"lastModified": 1778737229,
"narHash": "sha256-6xWoytx8jFW4PF1GjRm/i/53trbpKGfz6zjzQGBr4cI=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "6c5e707c6b5339359a9a9e215c5e66d6d802fd7a",
"rev": "d7a713c0b7e47c908258e71cba7a2d77cc8d71d5",
"type": "github"
},
"original": {
@@ -716,22 +723,6 @@
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1744536153,
"narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1743583204,
"narHash": "sha256-F7n4+KOIfWrwoQjXrL2wD9RhFYLs2/GGe/MQY1sSdlE=",
@@ -747,13 +738,13 @@
"type": "github"
}
},
"nixpkgs_4": {
"nixpkgs_3": {
"locked": {
"lastModified": 1762363567,
"narHash": "sha256-YRqMDEtSMbitIMj+JLpheSz0pwEr0Rmy5mC7myl17xs=",
"lastModified": 1772542754,
"narHash": "sha256-WGV2hy+VIeQsYXpsLjdr4GvHv5eECMISX1zKLTedhdg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "ae814fd3904b621d8ab97418f1d0f2eb0d3716f4",
"rev": "8c809a146a140c5c8806f13399592dbcb1bb5dc4",
"type": "github"
},
"original": {
@@ -763,29 +754,29 @@
"type": "github"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1776718653,
"narHash": "sha256-eU5yaR3OY3jrvxpQlKUWyGzYovBZ0UB4EdZelq1Hq1g=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "5a5f98738120adbb3d2753087b17839a45701cbe",
"type": "github"
},
"original": {
"owner": "nixos",
"repo": "nixpkgs",
"rev": "5a5f98738120adbb3d2753087b17839a45701cbe",
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1771008912,
"narHash": "sha256-gf2AmWVTs8lEq7z/3ZAsgnZDhWIckkb+ZnAo5RzSxJg=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "a82ccc39b39b621151d6732718e3e250109076fa",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_6": {
"locked": {
"lastModified": 1770380644,
"narHash": "sha256-P7dWMHRUWG5m4G+06jDyThXO7kwSk46C1kgjEWcybkE=",
"lastModified": 1775888245,
"narHash": "sha256-nwASzrRDD1JBEu/o8ekKYEXm/oJW6EMCzCRdrwcLe90=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "ae67888ff7ef9dff69b3cf0cc0fbfbcd3a722abe",
"rev": "13043924aaa7375ce482ebe2494338e058282925",
"type": "github"
},
"original": {
@@ -795,13 +786,13 @@
"type": "github"
}
},
"nixpkgs_7": {
"nixpkgs_6": {
"locked": {
"lastModified": 1767767207,
"narHash": "sha256-Mj3d3PfwltLmukFal5i3fFt27L6NiKXdBezC1EBuZs4=",
"lastModified": 1777268161,
"narHash": "sha256-bxrdOn8SCOv8tN4JbTF/TXq7kjo9ag4M+C8yzzIRYbE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "5912c1772a44e31bf1c63c0390b90501e5026886",
"rev": "1c3fe55ad329cbcb28471bb30f05c9827f724c76",
"type": "github"
},
"original": {
@@ -811,13 +802,13 @@
"type": "github"
}
},
"nixpkgs_8": {
"nixpkgs_7": {
"locked": {
"lastModified": 1768875095,
"narHash": "sha256-dYP3DjiL7oIiiq3H65tGIXXIT1Waiadmv93JS0sS+8A=",
"lastModified": 1776329215,
"narHash": "sha256-a8BYi3mzoJ/AcJP8UldOx8emoPRLeWqALZWu4ZvjPXw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "ed142ab1b3a092c4d149245d0c4126a5d7ea00b0",
"rev": "b86751bc4085f48661017fa226dee99fab6c651b",
"type": "github"
},
"original": {
@@ -839,11 +830,11 @@
]
},
"locked": {
"lastModified": 1767810917,
"narHash": "sha256-ZKqhk772+v/bujjhla9VABwcvz+hB2IaRyeLT6CFnT0=",
"lastModified": 1777598946,
"narHash": "sha256-X239dAGaU1+gfDj8jKH8GzlqKMcxaVfXOio+uzBOkeE=",
"owner": "nix-community",
"repo": "NUR",
"rev": "dead29c804adc928d3a69dfe7f9f12d0eec1f1a4",
"rev": "5d55af01c0f86be583931fe99207fc56c14134b3",
"type": "github"
},
"original": {
@@ -862,11 +853,11 @@
]
},
"locked": {
"lastModified": 1762441963,
"narHash": "sha256-j+rNQ119ffYUkYt2YYS6rnd6Jh/crMZmbqpkGLXaEt0=",
"lastModified": 1772024342,
"narHash": "sha256-+eXlIc4/7dE6EcPs9a2DaSY3fTA9AE526hGqkNID3Wg=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "8e7576e79b88c16d7ee3bbd112c8d90070832885",
"rev": "6e34e97ed9788b17796ee43ccdbaf871a5c2b476",
"type": "github"
},
"original": {
@@ -882,24 +873,46 @@
"home-manager": "home-manager",
"hyprland": "hyprland",
"hyprland-plugins": "hyprland-plugins",
"nixpkgs": "nixpkgs_5",
"nixpkgs": "nixpkgs_4",
"nixpkgs-pinned": "nixpkgs-pinned",
"nixpkgs-stable": "nixpkgs-stable",
"russia-blocked-geoip": "russia-blocked-geoip",
"sops-nix": "sops-nix",
"stylix": "stylix",
"yazi": "yazi"
"yazi": "yazi",
"yazi-plugins": "yazi-plugins"
}
},
"russia-blocked-geoip": {
"flake": false,
"locked": {
"lastModified": 1777481212,
"narHash": "sha256-NCkYOw4OM3xBv/TCmhGCm7lH+QkpetbUOYbQnOs9nRg=",
"owner": "runetfreedom",
"repo": "russia-blocked-geoip",
"rev": "bbe32b96712342ae479ac598fb1a939b59d586c2",
"type": "github"
},
"original": {
"owner": "runetfreedom",
"repo": "russia-blocked-geoip",
"rev": "bbe32b96712342ae479ac598fb1a939b59d586c2",
"type": "github"
}
},
"rust-overlay": {
"inputs": {
"nixpkgs": "nixpkgs_2"
"nixpkgs": [
"aagl",
"nixpkgs"
]
},
"locked": {
"lastModified": 1770952264,
"narHash": "sha256-CjymNrJZWBtpavyuTkfPVPaZkwzIzGaf0E/3WgcwM14=",
"lastModified": 1777605393,
"narHash": "sha256-Hjp0VOOHgHcTrX23iVvnfAudPcuCmfkfpQNFwv2v/ks=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "ec6a3d5cdf14bb5a1dd03652bd3f6351004d2188",
"rev": "ff88db34cfa486fc4964a6991cab1678d82eee8c",
"type": "github"
},
"original": {
@@ -916,11 +929,11 @@
]
},
"locked": {
"lastModified": 1769091129,
"narHash": "sha256-Jj/vIHjiu4OdDIrDXZ3xOPCJrMZZKzhE2UIVXV/NYzY=",
"lastModified": 1776741231,
"narHash": "sha256-k9G98qzn+7npROUaks8VqCFm7cFtEG8ulQLBBo5lItg=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "131e22d6a6d54ab72aeef6a5a661ab7005b4c596",
"rev": "02061303f7c4c964f7b4584dabd9e985b4cd442b",
"type": "github"
},
"original": {
@@ -931,14 +944,14 @@
},
"sops-nix": {
"inputs": {
"nixpkgs": "nixpkgs_6"
"nixpkgs": "nixpkgs_5"
},
"locked": {
"lastModified": 1770683991,
"narHash": "sha256-xVfPvXDf9QN3Eh9dV+Lw6IkWG42KSuQ1u2260HKvpnc=",
"lastModified": 1777944972,
"narHash": "sha256-VfGRo1qTBKOe3s2gOv8LSoA6Fk19PvBlwQ1ECN0Evn8=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "8b89f44c2cc4581e402111d928869fe7ba9f7033",
"rev": "c591bf665727040c6cc5cb409079acb22dcce33c",
"type": "github"
},
"original": {
@@ -956,21 +969,20 @@
"firefox-gnome-theme": "firefox-gnome-theme",
"flake-parts": "flake-parts",
"gnome-shell": "gnome-shell",
"nixpkgs": "nixpkgs_7",
"nixpkgs": "nixpkgs_6",
"nur": "nur",
"systems": "systems_2",
"tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes",
"tinted-tmux": "tinted-tmux",
"tinted-zed": "tinted-zed"
},
"locked": {
"lastModified": 1770914701,
"narHash": "sha256-QHFYyngohNhih4w+3IqQty5DV+p1txsx1kkk6XJWar8=",
"lastModified": 1778776709,
"narHash": "sha256-YhnEcpiY6+l3RFA+cPmdTaeODGvNRuqE8B7VBjPVIxo=",
"owner": "danth",
"repo": "stylix",
"rev": "db03fed72e5ca02be34e1d24789345a943329738",
"rev": "e8ea85b4f7dddda9603e0f1ac86cd92cee3b2819",
"type": "github"
},
"original": {
@@ -1024,23 +1036,6 @@
"type": "github"
}
},
"tinted-foot": {
"flake": false,
"locked": {
"lastModified": 1726913040,
"narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=",
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github"
}
},
"tinted-kitty": {
"flake": false,
"locked": {
@@ -1060,11 +1055,11 @@
"tinted-schemes": {
"flake": false,
"locked": {
"lastModified": 1767710407,
"narHash": "sha256-+W1EB79Jl0/gm4JqmO0Nuc5C7hRdp4vfsV/VdzI+des=",
"lastModified": 1777041405,
"narHash": "sha256-BAGZ7ObFV/9Z61OJZun7ifPyhkuHqNuW1QIhQ8LuzCo=",
"owner": "tinted-theming",
"repo": "schemes",
"rev": "2800e2b8ac90f678d7e4acebe4fa253f602e05b2",
"rev": "5f868b3a338b6904c47f3833b9c411be641983a8",
"type": "github"
},
"original": {
@@ -1076,11 +1071,11 @@
"tinted-tmux": {
"flake": false,
"locked": {
"lastModified": 1767489635,
"narHash": "sha256-e6nnFnWXKBCJjCv4QG4bbcouJ6y3yeT70V9MofL32lU=",
"lastModified": 1777169200,
"narHash": "sha256-h7dDbIzP5hDr9v97w9PL6jdAgXawmj6krcH+959rqpU=",
"owner": "tinted-theming",
"repo": "tinted-tmux",
"rev": "3c32729ccae99be44fe8a125d20be06f8d7d8184",
"rev": "f798c2dce44ef815bb6b8f05a82135c7942d35ac",
"type": "github"
},
"original": {
@@ -1092,11 +1087,11 @@
"tinted-zed": {
"flake": false,
"locked": {
"lastModified": 1767488740,
"narHash": "sha256-wVOj0qyil8m+ouSsVZcNjl5ZR+1GdOOAooAatQXHbuU=",
"lastModified": 1777463218,
"narHash": "sha256-Bhkozqtq3BKLqWTlmKm8uAptfX4aRGI8QX3eEL54Vpc=",
"owner": "tinted-theming",
"repo": "base16-zed",
"rev": "11abb0b282ad3786a2aae088d3a01c60916f2e40",
"rev": "5768d08ed2e7944a26a958868cdb073cb8856dae",
"type": "github"
},
"original": {
@@ -1133,11 +1128,11 @@
]
},
"locked": {
"lastModified": 1761431178,
"narHash": "sha256-xzjC1CV3+wpUQKNF+GnadnkeGUCJX+vgaWIZsnz9tzI=",
"lastModified": 1772476586,
"narHash": "sha256-N/ZwsRLULLpBP5ecvAUzNq8E/CgLRwPwSrHyY3xB5KM=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "4b8801228ff958d028f588f0c2b911dbf32297f9",
"rev": "eb6c02a2ead882f3474f3d7f2fbe966b64ed5110",
"type": "github"
},
"original": {
@@ -1149,15 +1144,15 @@
"yazi": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs_8",
"nixpkgs": "nixpkgs_7",
"rust-overlay": "rust-overlay_2"
},
"locked": {
"lastModified": 1770959024,
"narHash": "sha256-r2fZFW+xZxEdyORsAipCrnuxQblGGldtZcx0iSQI1ZQ=",
"lastModified": 1778801438,
"narHash": "sha256-TtawbMZ+tgKAiDpkJJw7m2OLOJHUbRZB0xLDXBxTPck=",
"owner": "sxyazi",
"repo": "yazi",
"rev": "13bdb164a473091b46e857d37599e7e1ae22665e",
"rev": "3f5cc47a4852cbffbd8536507ae7499d3da1f0b7",
"type": "github"
},
"original": {
@@ -1165,6 +1160,22 @@
"repo": "yazi",
"type": "github"
}
},
"yazi-plugins": {
"flake": false,
"locked": {
"lastModified": 1778691457,
"narHash": "sha256-cZlnrlgv8+SFeNgIW69q//i/apcpvAv41q5W8bJwVaI=",
"owner": "yazi-rs",
"repo": "plugins",
"rev": "5d5c4803dd12bab4e4f19d606f8db0c871e6bec5",
"type": "github"
},
"original": {
"owner": "yazi-rs",
"repo": "plugins",
"type": "github"
}
}
},
"root": "root",
+13 -3
View File
@@ -20,15 +20,20 @@
inputs = {
aagl.url = "github:ezKEa/aagl-gtk-on-nix";
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs.url = "github:nixos/nixpkgs/5a5f98738120adbb3d2753087b17839a45701cbe";
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-25.11";
nixpkgs-pinned.url = "github:nixos/nixpkgs/2d293cbfa5a793b4c50d17c05ef9e385b90edf6c";
sops-nix.url = "github:Mic92/sops-nix";
stylix.url = "github:danth/stylix";
ags.url = "github:Aylur/ags/3ed9737bdbc8fc7a7c7ceef2165c9109f336bff6";
yazi.url = "github:sxyazi/yazi";
hyprland.url = "github:hyprwm/Hyprland/v0.52.1-b";
yazi.url = "github:sxyazi/yazi";
yazi-plugins = {
url = "github:yazi-rs/plugins";
flake = false;
};
hyprland.url = "github:hyprwm/Hyprland/v0.54.2-b";
hyprland-plugins = {
url = "github:hyprwm/hyprland-plugins";
inputs.hyprland.follows = "hyprland";
@@ -38,6 +43,11 @@
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
russia-blocked-geoip = {
url = "github:runetfreedom/russia-blocked-geoip/bbe32b96712342ae479ac598fb1a939b59d586c2";
flake = false;
};
};
outputs = { self, nixpkgs, nixpkgs-stable, nixpkgs-pinned, home-manager, ... }@inputs: let
File diff suppressed because one or more lines are too long
+15
View File
@@ -0,0 +1,15 @@
{ pkgs, lib, ... }: {
wayland.windowManager.hyprland = let
wallpaper = pkgs.fetchurl {
name = "miku_wallpaper.jpg";
url = "https://c.lair.moe/pub/miku_wallpaper.jpeg?raw";
hash = "sha256-inK4X5KzQk5FHwDw2DYy43nm7XtXlC6I0S1PkYUv+3w=";
};
in {
settings = {
exec-once = [
"${lib.getExe pkgs.swww} img -o eDP-1 ${wallpaper}"
];
};
};
}
+1
View File
@@ -3,6 +3,7 @@
./secrets/secrets.nix
./modules/grub.nix
./modules/syncthing.nix
./modules/torrent.nix
../modules/gpu/nvidia.nix
(import ../modules/common.nix {
+1 -1
View File
@@ -24,7 +24,7 @@
fileSystems."/mnt/D" = {
device = "/dev/disk/by-label/Data";
fsType = "ntfs";
fsType = "ntfs3";
options = ["umask=0022" "gid=100" "uid=1000" "nofail" ];
};
+5
View File
@@ -39,6 +39,11 @@
''$mainMod, F2, exec, ${lib.getExe monitor-switcher} mirror''
''$mainMod, F3, exec, ${lib.getExe monitor-switcher}''
];
workspace = [
"2, layout:scrolling"
"4, layout:monocle"
];
};
};
}
+10
View File
@@ -0,0 +1,10 @@
{ pkgs, ... }: {
services.transmission = {
enable = true; # Включаем демон
package = pkgs.transmission_4;
openRPCPort = true; # Открываем порт для веб-интерфейса
settings = {
download-dir = "/home/sweetbread/Downloads"; # Папка для загрузок
};
};
}
File diff suppressed because one or more lines are too long
+1
View File
@@ -24,6 +24,7 @@
hardware.bluetooth.enable = true;
host.laptop = true;
host.nvidia.prime.enable = true;
environment.systemPackages = [ pkgs.dbgate ];
}
+17 -1
View File
@@ -7,7 +7,23 @@
];
options = {
host.laptop = lib.mkEnableOption "laptop mode";
host = {
laptop = lib.mkEnableOption "laptop mode";
nvidia.prime = {
enable = lib.mkEnableOption "NVIDIA PRIME offload for hybrid graphics";
intelBusId = lib.mkOption {
type = lib.types.str;
default = "PCI:0:2:0";
description = "Intel/iGPU Bus ID used by NVIDIA PRIME.";
};
nvidiaBusId = lib.mkOption {
type = lib.types.str;
default = "PCI:1:0:0";
description = "NVIDIA dGPU Bus ID used by NVIDIA PRIME.";
};
};
};
};
config = {
+27 -10
View File
@@ -1,6 +1,16 @@
{ config, pkgs-stable, lib, ... }: {
boot.kernelParams = [ "nvidia-drm.modeset=1" ];
services.xserver.videoDrivers = [ "nvidia" ];
{ config, pkgs-stable, lib, ... }: let
primeCfg = config.host.nvidia.prime;
isPrimeOffload = primeCfg.enable;
in {
boot = {
kernelParams = [ "nvidia-drm.modeset=1" ];
initrd.kernelModules = lib.optionals isPrimeOffload [ "i915" ];
};
services.xserver.videoDrivers =
if isPrimeOffload
then [ "modesetting" "nvidia" ]
else [ "nvidia" ];
hardware = {
graphics = {
@@ -11,7 +21,7 @@
intel-media-driver
libvdpau-va-gl
];
extraPackages32 = with pkgs-stable.pkgsi686Linux; [nvidia-vaapi-driver intel-media-driver];
extraPackages32 = with pkgs-stable.pkgsi686Linux; [ nvidia-vaapi-driver intel-media-driver ];
};
nvidia = {
@@ -24,21 +34,28 @@
nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.stable;
prime = lib.optionalAttrs config.host.laptop {
intelBusId = "PCI:0:2:0";
nvidiaBusId = "PCI:1:0:0";
prime = lib.optionalAttrs isPrimeOffload {
offload = {
enable = true;
enableOffloadCmd = true;
};
intelBusId = primeCfg.intelBusId;
nvidiaBusId = primeCfg.nvidiaBusId;
};
};
};
environment.sessionVariables = {
__GL_VRR_ALLOWED = 1;
ELECTRON_OZONE_PLATFORM_HINT = "auto";
NIXOS_OZONE_WL = 1;
} // lib.optionalAttrs isPrimeOffload {
LIBVA_DRIVER_NAME = "iHD";
} // lib.optionalAttrs (!isPrimeOffload) {
WLR_NO_HARDWARE_CURSORS = 1;
WLR_DRM_NO_ATOMIC = 1;
GBM_BACKEND = "nvidia-drm";
LIBVA_DRIVER_NAME = "nvidia";
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
__GL_VRR_ALLOWED = 1;
ELECTRON_OZONE_PLATFORM_HINT = "auto";
NIXOS_OZONE_WL = 1;
};
}
+2 -2
View File
@@ -1,6 +1,6 @@
{ pkgs, ... }: {
{
console = {
font = "${pkgs.kbd}/share/consolefonts/LatArCyrHeb-19.psfu.gz";
font = "LatArCyrHeb-19";
colors = [
"16161E"
"1A1B26"
+2 -2
View File
@@ -1,4 +1,4 @@
{ config, pkgs, lib, ... }:
{ config, pkgs, pkgs-stable, lib, ... }:
lib.mkIf config.programs.gamemode.enable {
programs.steam = {
@@ -10,7 +10,7 @@ lib.mkIf config.programs.gamemode.enable {
mangohud
protonup-ng
bottles
heroic
pkgs-stable.heroic
prismlauncher
];
+3 -7
View File
@@ -1,4 +1,4 @@
{ pkgs, config, ... }: {
{ inputs, pkgs, config, ... }: {
systemd.services.v2raya = {
enable = true;
description = "v2rayA gui client";
@@ -11,18 +11,14 @@
wantedBy = [ "multi-user.target" ];
environment = {
V2RAYA_LOG_FILE = "/var/log/v2raya/v2raya.log";
V2RAYA_V2RAY_BIN = pkgs.lib.getExe pkgs.xray;
V2RAY_LOCATION_ASSET = "/etc/v2raya";
XRAY_LOCATION_ASSET = "/etc/v2raya";
};
};
environment.etc = {
"v2raya/ru_geoip.dat".source = pkgs.fetchurl {
name = "geoip.dat";
url = "https://github.com/runetfreedom/russia-blocked-geoip/releases/download/202602271541/geoip.dat";
hash = "sha256-j+Cjq8OeZFWTyb+QvXTbWDoLaVHPcqQLNSc5Y+p5c/8=";
};
"v2raya/ru_geoip.dat".source = "${inputs.russia-blocked-geoip}/geoip.dat";
"v2raya/bolt.db".source = config.sops.secrets.vpn_bolt.path;
};
}
+40
View File
@@ -0,0 +1,40 @@
{ pkgs, inputs, ... }:
{
# Важно: портал должен быть собран под тот же Hyprland, что и сам Hyprland
# (есть отдельная опция именно для этого).
programs.hyprland = {
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
};
xdg.portal = {
enable = true;
# Делает так, что xdg-open идёт через портал (часто полезно для sandbox/FHS/wrappers).
# Опция есть в NixOS как xdg.portal.xdgOpenUsePortal :contentReference[oaicite:2]{index=2}
xdgOpenUsePortal = true;
# Два бэкенда: Hyprland (композитор-специфичное) + GTK (интеграция/диалоги/OpenURI)
extraPortals = [
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland
pkgs.xdg-desktop-portal-gtk
];
# Роутинг интерфейсов по portals.conf(5):
# xdg-desktop-portal выбирает конфиг по XDG_CURRENT_DESKTOP (с lower-case) :contentReference[oaicite:3]{index=3}
config = {
common = {
default = [ "gtk" ];
"org.freedesktop.impl.portal.FileChooser" = [ "gtk" ];
"org.freedesktop.impl.portal.ScreenCast" = [ "hyprland" ];
"org.freedesktop.impl.portal.Screenshot" = [ "hyprland" ];
"org.freedesktop.impl.portal.GlobalShortcuts" = [ "hyprland" ];
};
# Если XDG_CURRENT_DESKTOP=Hyprland присутствует — предпочитаем Hyprland,
# но оставляем gtk как fallback для интерфейсов, которых нет у hyprland-портала.
hyprland.default = [ "hyprland" "gtk" ];
};
};
}
+1 -1
View File
@@ -4,7 +4,7 @@
persistentKeys = true;
settings = {
Peers = [
"tcp://lair.moe:5001"
"tls://ip4.01.ekb.ru.dioni.su:9003"
];
};
};
+1 -2
View File
@@ -1,6 +1,5 @@
{ config, lib, ... }: {
imports = [
./user/ags.nix
./user/btop.nix
./user/fuzzel.nix
./user/ghostty.nix
@@ -11,12 +10,12 @@
./user/neofetch.nix
./user/qt.nix
./user/sops.nix
./user/ssh.nix
./user/yazi.nix
./user/zsh.nix
./user/packages/art.nix
./user/packages/desktop.nix
./user/packages/coding.nix
./user/packages/utils.nix
];
}
+1 -1
View File
@@ -6,7 +6,7 @@
configDir = null;
extraPackages = with inputs.ags.packages.${pkgs.system}; [
extraPackages = with inputs.ags.packages.${pkgs.stdenv.hostPlatform.system}; [
battery
mpris
hyprland
+34 -14
View File
@@ -2,7 +2,9 @@
optImport = path: lib.optional (builtins.pathExists path) path;
hostname = osConfig.networking.hostName;
in {
imports =
imports = [
./hyprland/zoom.nix
] ++
optImport ../../host/${hostname}/modules/hyprland.nix ++
optImport ../../user/${username}/modules/hyprland.nix;
@@ -13,16 +15,18 @@ in {
wl-clipboard
wl-clip-persist
xclip
awww
];
wayland.windowManager.hyprland = let
colors = config.lib.stylix.colors;
in {
enable = true;
configType = "hyprlang";
xwayland.enable = true;
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
plugins = with inputs.hyprland-plugins.packages.${pkgs.system}; [
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
plugins = with inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}; [
# hyprbars # Version mismatch
];
@@ -54,6 +58,13 @@ in {
enable_stdout_logs = true;
};
general = {
"col.inactive_border" = lib.mkForce "rgba(00000000)";
};
decoration.inactive_opacity = lib.mkDefault .95;
decoration.border_part_of_window = false;
misc = {
focus_on_activate = true;
};
@@ -82,21 +93,29 @@ in {
"3, horizontal, workspace"
];
workspace = [
"w[t1], gapsout:0"
];
windowrule = [
"float, class:^(imv)$"
"float, class:^(feh)$"
"float, class:^(mpv)$"
"float, title:^(Список друзей)"
"move onscreen cursor -50% -50%, class:^(dragon-drop)$"
"float, title:(nmtui)"
"float, title:(pulsemixer)"
"float, title:(clipse)"
"size 622 652, title:(clipse)"
"match:class imv, float 1"
"match:class feh, float 1"
"match:class mpv, float 1"
"match:title Список друзей, float 1"
"match:title nmtui, float 1"
"match:title pulsemixer, float 1"
"match:title clipse, float 1"
"match:title clipse, size 622 652"
"match:focus 1, rounding 0"
"match:float 0, match:workspace w[t1], border_size 0"
];
exec-once = lib.mkBefore [
"systemctl --user start plasma-polkit-agent"
"${lib.getExe' pkgs.swww "swww-daemon"}"
"awww-daemon"
"wl-clip-persist --clipboard both"
"clipse -listen"
"${lib.getExe' pkgs.udiskie "udiskie"}"
@@ -112,7 +131,8 @@ in {
"$mainMod, F, togglefloating,"
"$mainMod, D, exec, fuzzel"
"$mainMod, P, pseudo, # dwindle"
"$mainMod, J, togglesplit, # dwindle"
"$mainMod, J, layoutmsg, togglesplit"
"$mainMod, K, layoutmsg, swapsplit"
# Move focus with mainMod + arrow keys
"$mainMod, left, movefocus, l"
+21
View File
@@ -0,0 +1,21 @@
{
wayland.windowManager.hyprland.settings = {
bind = [
# "$mainMod, mouse_down, exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '.float * 1.1')"
# "$mainMod, mouse_up , exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '(.float * 0.9) | if . < 1 then 1 else . end')"
"$mainMod SHIFT, mouse_up , exec, hyprctl -q keyword cursor:zoom_factor 1"
"$mainMod SHIFT, mouse_down , exec, hyprctl -q keyword cursor:zoom_factor 1"
"$mainMod SHIFT, minus , exec, hyprctl -q keyword cursor:zoom_factor 1"
"$mainMod SHIFT, KP_SUBTRACT, exec, hyprctl -q keyword cursor:zoom_factor 1"
"$mainMod SHIFT, 0 , exec, hyprctl -q keyword cursor:zoom_factor 1"
];
binde = [
"$mainMod, equal , exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '.float * 1.1')"
"$mainMod, minus , exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '(.float * 0.9) | if . < 1 then 1 else . end')"
"$mainMod, KP_ADD , exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '.float * 1.1')"
"$mainMod, KP_SUBTRACT, exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '(.float * 0.9) | if . < 1 then 1 else . end')"
];
};
}
-6
View File
@@ -1,6 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
jetbrains.idea-oss
android-studio
];
}
+3 -2
View File
@@ -1,9 +1,10 @@
{ pkgs, pkgs-pinned, inputs, ... }: {
{ pkgs, ... }: {
home.packages = with pkgs; [
pkgs-pinned.ayugram-desktop
ayugram-desktop
vesktop
obs-studio
mpv
imhex
obsidian
qbittorrent
thunderbird
+1
View File
@@ -21,6 +21,7 @@
mtr
imagemagick
wl-clipboard
pkgsCross.mingw32.wine-discord-ipc-bridge
];
xdg.mimeApps = {
+12
View File
@@ -0,0 +1,12 @@
{
programs.ssh = {
enable = true;
enableDefaultConfig = false;
matchBlocks = {
"*" = {
serverAliveInterval = 30;
serverAliveCountMax = 5;
};
};
};
}
+38 -11
View File
@@ -3,6 +3,10 @@
( ouch.override { enableUnfree = true; } )
];
wayland.windowManager.hyprland.settings.windowrule = [
"match:class dragon-drop, move cursor_x-window_w/2 cursor_y-window_h/2"
];
programs.yazi = {
package = inputs.yazi.packages
.${pkgs.stdenv.hostPlatform.system}.default
@@ -21,7 +25,7 @@
};
plugin = {
preloaders = [
{ name = "*.crdownload"; run = "noop"; }
{ url = "*.crdownload"; run = "noop"; }
];
prepend_previewers = [
@@ -33,28 +37,51 @@
];
prepend_fetchers = [
{ id = "git"; mime = "*"; run = "git"; }
{ group = "git"; url = "*"; run = "git"; }
];
};
};
plugins = with pkgs.yaziPlugins; {
plugins = let
yaziPlugin = name: pkgs.stdenvNoCC.mkDerivation {
pname = "${name}.yazi";
version = "unstable";
src = inputs.yazi-plugins;
installPhase = ''
runHook preInstall
mkdir -p $out
cp -r ${name}.yazi/* $out/
rm -f $out/LICENSE
cp LICENSE $out/LICENSE
runHook postInstall
'';
};
in with pkgs.yaziPlugins; {
inherit
chmod
ouch
full-border
starship
mount
git
toggle-pane
;
full-border = {
package = yaziPlugin "full-border";
setup = true;
};
starship = {
package = starship;
setup = true;
};
git = {
package = git;
setup = true;
};
};
initLua = ''
require("git"):setup()
require("full-border"):setup()
require("starship"):setup()
Status:children_add(function()
local h = cx.active.current.hovered
if not h or ya.target_family() ~= "unix" then
@@ -79,7 +106,7 @@
}
{
on = "Y";
run = ''shell -- for path in "$@"; do echo "file://$path"; done | wl-copy -t text/uri-list'';
run = ''shell -- for path in %s; do echo "file://$path"; done | wl-copy -t text/uri-list'';
desc = "Copy files into system clipboard";
}
{
+9 -4
View File
@@ -1,5 +1,6 @@
{ config, pkgs, ... }: {
{ config, osConfig, pkgs, lib, ... }: {
home.packages = [ pkgs.nh ];
programs = {
zoxide.enable = true;
fzf.enable = true;
@@ -36,7 +37,10 @@
read_only = " RO";
};
nix_shell.format = "[nix-shell]($style) ";
os.disabled = false;
os = {
disabled = false;
style = "white";
};
python = {
symbol = "py ";
python_binary = ["python3" "python"];
@@ -62,11 +66,12 @@
cd = "z";
lg = "lazygit";
s = "nix-shell . --run zsh";
} // lib.optionalAttrs osConfig.boot.loader.grub.useOSProber {
win = "sudo grub-reboot 2; sudo reboot";
};
initContent = ''
initContent = /*bash*/ ''
eval "$(zoxide init zsh)"
eval "$(nh completions zsh)"
source "$(fzf-share)/key-bindings.zsh"
source "$(fzf-share)/completion.zsh"
'';
+73
View File
@@ -0,0 +1,73 @@
#!/usr/bin/env bash
SUBSTITUTERS=(
"https://cache.garnix.io"
"https://cache.m7.rs"
"https://cache.nixos.org"
"https://cache.soopy.moe"
"https://chaotic-nyx.cachix.org"
"https://colmena.cachix.org"
"https://hyprland.cachix.org"
"https://mirrors.tuna.tsinghua.edu.cn/nix-channels/store"
"https://mirrors.ustc.edu.cn/nix-channels/store"
"https://nix-community.cachix.org"
"https://nix-gaming.cachix.org"
"https://nixos-cache-proxy.cofob.dev"
"https://nixos.snix.store"
"https://nixos.tvix.store"
)
TEST_HASH="sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
clean_url() {
echo "$1" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//'
}
check_speed() {
local url=$(clean_url "$1")
local cache_info=$(curl -s -o /dev/null -w "%{http_code},%{time_total}" -L "${url}/nix-cache-info" --max-time 10 --insecure)
IFS=',' read -r code time_info <<< "$cache_info"
if [[ "$code" == "200" ]]; then
echo -e "\033[1;32m✓ nix-cache-info: ${time_info}s\033[0m"
local narinfo_time=$(curl -s -o /dev/null -w "%{time_total}" -L "${url}/${TEST_HASH}.narinfo" --max-time 10 --insecure)
echo -e " .narinfo: \033[1;33m${narinfo_time}s\033[0m"
local nar_time=$(curl -s -o /dev/null -w "%{time_total}" -L "${url}/nar/${TEST_HASH}.nar.xz" --max-time 10 --insecure)
echo -e " .nar.xz: \033[1;33m${nar_time}s\033[0m"
local speed=$(curl -s -o /dev/null -w "%{speed_download}" -L "${url}/nix-cache-info" --max-time 10 --insecure)
echo -e " СКОРОСТЬ: \033[1;36m$(numfmt --to=iec-i --suffix=B/s $speed | sed 's/Bi *//')\033[0m"
return 0
else
echo -e "\033[1;31m✗ nix-cache-info: $code (${time_info}s)\033[0m"
return 1
fi
}
main() {
echo "🚀 Тест скорости Nix Substituters ($(date '+%H:%M:%S'))"
echo "=============================================="
local working=()
for url in "${SUBSTITUTERS[@]}"; do
local clean_url=$(clean_url "$url")
echo -e "\n\033[1;34m=== $clean_url ===\033[0m"
if check_speed "$url"; then
working+=("$clean_url")
fi
echo "----------------------------------------"
done
echo -e "\n\033[1;36m🏆 РЕКОМЕНДУЕМЫЙ ПОРЯДОК (по скорости):\033[0m"
printf 'nix.settings.substituters = [\n'
for url in "${working[@]}"; do
printf ' "%s"\n' "$url"
done
printf '];\n'
}
main
+1 -2
View File
@@ -2,11 +2,10 @@
imports = [
../../modules/user/packages/cs_utils.nix
];
disabledModules = [
../../modules/user/packages/art.nix
../../modules/user/packages/coding.nix
];
home.packages = with pkgs; [
nautilus
python3
+2
View File
@@ -80,6 +80,8 @@
in {
stylix = {
enable = true;
overlays.enable = false;
targets = {
hyprland.enable = false;
waybar.enable = false;
+321
View File
@@ -0,0 +1,321 @@
{ osConfig, config, pkgs, lib, ... }: {
home.packages = with pkgs; [
font-awesome
nerd-fonts.symbols-only
playerctl
cava
pulsemixer
];
programs.waybar = {
enable = true;
systemd.enable = true;
settings.mainBar = {
modules-center = [
"group/left"
"group/center"
"group/right"
];
"group/left" = {
orientation = "inherit";
modules = [
"hyprland/workspaces"
"custom/sep-left"
"hyprland/language"
"keyboard-state"
];
};
"group/center" = {
orientation = "inherit";
modules = [
"cava"
"mpris"
];
};
"group/right" = {
orientation = "inherit";
modules = [
"tray"
"custom/sep-left"
"group/system"
"custom/sep-left"
"pulseaudio"
"custom/sep-left"
"battery"
"clock"
];
};
cava = {
bars = 9;
bar_delimiter = 0;
stereo = false;
input_delay = 0;
format-icons = [" " "" "" "" "" "" "" "" ""];
};
clock = {
tooltip = false;
interval = 5;
format = "{:L%d %b - %H:%M %a}";
};
pulseaudio = {
format = "{icon} {volume}%";
format-icons = {
headphone = "";
hands-free = "";
headset = "";
phone = "";
phone-muted = "";
portable = "";
car = "";
default = ["" ""];
};
on-click = "ghostty --title=pulsemixer -e pulsemixer";
};
mpris = {
format = "{dynamic}";
dynamic-len = if osConfig.host.laptop then 16 else 32;
dynamic-order = [ "title" "artist" "album" ];
};
battery = {
interval = 5;
states = {
warning = 30;
critical = 15;
};
format = "{icon} {capacity}% | ";
format-icons = {
default = ["󰂎" "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"];
charging = ["󰢟" "󰢜" "󰂆" "󰂇" "󰂈" "󰢝" "󰂉" "󰢞" "󰂊" "󰂋" "󰂅"];
};
};
"custom/sep-left" = {
format = " | ";
tooltip = false;
};
"keyboard-state" = {
capslock = true;
format = "{icon}";
format-icons = {
locked = "CAPS";
unlocked = "";
};
};
"hyprland/language" = {
format-en = "en";
format-ru = "ru";
};
"group/system" = {
orientation = "inherit";
drawer = {
transition-duration = 500;
transition-left-to-right = false;
};
modules = [
"network"
"custom/mem"
"cpu"
"temperature"
];
};
network = {
format = "{ifname}";
format-wifi = " {essid} ({signalStrength}%)";
format-ethernet = "{ifname}";
format-disconnected = "";
tooltip-format = "{ipaddr}";
max-length = 50;
on-click = "ghostty --title=nmtui -e nmtui";
};
"custom/weather" = {
format = "{}";
tooltip = true;
interval = 1800;
exec = "python3 $HOME/.config/waybar/scripts/wttr.py";
return-type = "json";
};
"custom/mem" = {
format = "{} ";
interval = 3;
exec = "free -h | awk '/Mem:/{printf $3}'";
tooltip = false;
};
cpu = {
interval = 2;
format = "{usage}% ";
min-length = 6;
};
temperature = {
hwmon-path = "/sys/class/hwmon/hwmon5/temp1_input";
critical-threshold = 80;
format = "{temperatureC}°C {icon}";
format-icons = ["" "" "" "" ""];
tooltip = false;
};
};
style = let
colors = config.lib.stylix.colors.withHashtag;
accent = colors.base0E;
scssFile = pkgs.writeText "waybar.scss" /*scss*/ ''
window#waybar {
background: transparent;
color: ${colors.base05};
font-weight: bold;
font-size: .85em;
& > * { padding: 0 0 6px 0; }
}
.modules-center {
background: ${colors.base01}CC;
border-radius: 12px;
padding: 10px;
box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.4);
}
#left,
#right,
#center {
background: ${colors.base02};
padding: 0 2px;
margin: 0 8px;
border-radius: 8px;
}
#left { margin-left: 0; }
#right { margin-right: 0; }
#clock { padding-right: 10px; }
#cava { padding: 0 10px; }
#language { padding: 8px; }
#workspaces button {
color: ${colors.base05};
padding: 0 2px;
border-radius: 999px;
border: 1pt solid transparent;
min-width: 20px;
&:hover { background: ${colors.base03}; }
&.active {
background: ${accent};
color: ${colors.base00};
min-width: 25px;
&:hover {
border-color: ${accent};
background: ${colors.base03};
color: ${accent};
}
}
}
#mpris {
border-radius: 8px;
padding: 4px;
&:hover { background: ${colors.base03}; }
&.playing {
border: 2px solid ${accent};
padding: 2px;
}
}
#tray {
widget {
border: 1pt solid transparent;
&:hover { background: ${colors.base03}; }
& > image { padding: 8px; }
}
& > .passive { border-color: ${colors.base03}; }
& > .needs-attention { border-color: ${colors.base09}; }
}
#pulseaudio {
&:hover { background: ${colors.base03}; }
&.muted {
background: ${colors.base08};
color: ${colors.base01};
&:hover {
color: ${colors.base08};
background: ${colors.base03};
}
}
}
#network {
&:hover { background: ${colors.base02}; }
&.disconnected {
color: ${colors.base00};
background: ${colors.base08};
}
}
#system .drawer-child > * {
margin-right: 4px
}
#keyboard-state label.locked {
color: ${colors.base08};
}
#battery {
&.plugged { color: ${colors.base0D}; }
&.charging { color: ${colors.base0B}; }
&:not(.charging) {
&.warning {
color: ${colors.base00};
background-color: ${colors.base09};
}
&.critical {
background-color: ${colors.base08};
color: ${colors.base00};
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
}
&.full {
color: ${colors.base00};
background: ${colors.base0B};
}
}
@keyframes blink {
to {
background-color: ${colors.base00};
color: ${colors.base08};
}
}
'';
cssFile = pkgs.runCommand "waybar.css" {
nativeBuildInputs = [ pkgs.dart-sass ];
} "sass ${scssFile} $out";
in builtins.readFile cssFile;
};
}
+2 -1
View File
@@ -22,6 +22,7 @@
../modules/user.nix
./${name}/modules/git.nix
./${name}/modules/style.nix
./${name}/modules/waybar.nix
./${name}/home.nix
];
@@ -56,7 +57,7 @@
services.greetd = let
tuigreet = lib.getExe pkgs.tuigreet;
session = lib.getExe inputs.hyprland.packages.${pkgs.system}.default;
session = lib.getExe' inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.default "start-hyprland";
in {
enable = true;
settings = {
+2
View File
@@ -4,7 +4,9 @@
];
programs.hyprlock.enable = true;
home.packages = with pkgs; [
android-studio
vivaldi
weechat
];
xdg.mimeApps = {
+9 -11
View File
@@ -1,4 +1,4 @@
{ pkgs, lib, config, inputs, ... }: {
{ pkgs, lib, config, osConfig, inputs, ... }: {
wayland.windowManager.hyprland = let
colors = config.lib.stylix.colors;
@@ -13,7 +13,10 @@
notify = lambda s: system(f"notify-desktop Wallpaper '{s}'")
folder = "${config.home.homeDirectory}/Wallpapers"
url = "https://wallhaven.cc/api/v1/collections/sweetbread/1764377"
url = "https://wallhaven.cc/api/v1/collections/sweetbread/${
if osConfig.networking.hostName == "Rias" then "1764377"
else "2108577"
}"
with open("${config.sops.secrets."tokens/apis/wallhaven".path}") as f:
token = f.read()
@@ -46,16 +49,15 @@
filename = choice(listdir(folder))
finally:
system(f"${lib.getExe pkgs.swww} img {folder}/{filename} --transition-type center")
system(f"awww img {folder}/{filename} --transition-type center")
'';
in {
settings = {
general = {
gaps_in = 5;
gaps_in = 2;
gaps_out = 10;
border_size = 3;
"col.active_border" = lib.mkForce "rgba(${colors.base0C}ee) rgba(${colors.base0B}ee) 45deg";
"col.inactive_border" = lib.mkForce "rgba(${colors.base05}aa)";
"col.active_border" = lib.mkForce "rgba(${colors.base0C}aa) rgba(${colors.base0B}aa) 45deg";
layout = "dwindle";
};
@@ -70,11 +72,7 @@
new_optimizations = true;
};
shadow = {
enabled = true;
range = 4;
render_power = 3;
};
shadow.enabled = false;
};
animations = {
+6 -1
View File
@@ -83,6 +83,8 @@ in {
# {
stylix = {
enable = true;
overlays.enable = false;
targets = {
hyprpaper.enable = lib.mkForce false;
waybar.enable = false;
@@ -142,9 +144,12 @@ in {
};
gtk = {
gtk4.extraConfig = {
gtk4 = {
theme = null;
extraConfig = {
gtk-application-prefer-dark-theme = true;
};
};
gtk3.extraConfig = {
gtk-application-prefer-dark-theme = true;
};
+298
View File
@@ -0,0 +1,298 @@
{ osConfig, config, pkgs, lib, ... }: {
home.packages = with pkgs; [
font-awesome
nerd-fonts.symbols-only
playerctl
cava
pulsemixer
];
programs.waybar = {
enable = true;
systemd.enable = true;
settings.mainBar = {
spacing = 8;
modules-left = [
"hyprland/workspaces"
"hyprland/language"
"keyboard-state"
"cava"
];
modules-center = [
"mpris"
];
modules-right = [
"tray"
"group/system"
"pulseaudio"
"battery"
"clock"
];
cava = {
bars = 14;
sleep_timer = 5;
hide_on_silence = true;
bar_delimiter = 0;
input_delay = 0;
format-icons = [" " "" "" "" "" "" "" "" ""];
};
clock = {
tooltip = false;
interval = 5;
format = "{:L%d %b - %H:%M %a}";
};
pulseaudio = {
format = "{icon} {volume}%";
format-icons = {
headphone = "";
hands-free = "";
headset = "";
phone = "";
phone-muted = "";
portable = "";
car = "";
default = ["" ""];
};
on-click = "ghostty --title=pulsemixer -e pulsemixer";
};
mpris = {
format = "{dynamic}";
dynamic-len = if osConfig.host.laptop then 32 else 64;
dynamic-order = [ "title" "artist" "album" ];
};
battery = {
interval = 5;
states = {
warning = 30;
critical = 15;
};
format = "{icon} {capacity}%";
format-icons = {
default = ["󰂎" "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"];
charging = ["󰢟" "󰢜" "󰂆" "󰂇" "󰂈" "󰢝" "󰂉" "󰢞" "󰂊" "󰂋" "󰂅"];
};
};
"keyboard-state" = {
capslock = true;
format = "{icon}";
format-icons = {
locked = "CAPS";
unlocked = "";
};
};
"hyprland/language" = {
format-en = "en";
format-ru = "ru";
};
"group/system" = {
orientation = "inherit";
drawer = {
transition-duration = 500;
transition-left-to-right = false;
};
modules = [
"network"
"custom/mem"
"cpu"
"temperature"
];
};
network = {
format = "{ifname}";
format-wifi = " {essid} ({signalStrength}%)";
format-ethernet = "{ifname}";
format-disconnected = "";
tooltip-format = "{ipaddr}";
max-length = 50;
on-click = "ghostty --title=nmtui -e nmtui";
};
"custom/weather" = {
format = "{}";
tooltip = true;
interval = 1800;
exec = "python3 $HOME/.config/waybar/scripts/wttr.py";
return-type = "json";
};
"custom/mem" = {
format = "{} ";
interval = 3;
exec = "free -h | awk '/Mem:/{printf $3}'";
tooltip = false;
};
cpu = {
interval = 2;
format = "{usage}% ";
min-length = 6;
};
temperature = {
hwmon-path = "/sys/class/hwmon/hwmon5/temp1_input";
critical-threshold = 80;
format = "{temperatureC}°C {icon}";
format-icons = ["" "" "" "" ""];
tooltip = false;
};
};
style = let
colors = config.lib.stylix.colors.withHashtag;
radius = "6px";
scssFile = pkgs.writeText "waybar.scss" /*scss*/ ''
window#waybar {
background: transparent;
color: ${colors.base05};
border-radius: ${radius};
font-weight: bold;
font-size: .85em;
& > * { padding: 8px; }
}
#cava,
#language,
#mpris,
#pulseaudio,
#network,
#battery,
#cpu,
#temperature,
#keyboard-state label.locked,
#custom-mem,
#clock {
background: ${colors.base00};
border-radius: ${radius};
padding: 8px;
}
#workspaces,
#tray {
background: ${colors.base00};
border-radius: ${radius};
}
#workspaces button {
color: ${colors.base05};
padding: 4px;
border-radius: ${radius};
border: 1pt solid transparent;
&:hover { background: ${colors.base01}; }
&.active {
background: ${colors.base0B};
color: ${colors.base00};
&:hover {
border-color: ${colors.base0B};
background: ${colors.base01};
color: ${colors.base0B};
}
}
}
#mpris {
&:hover { background: ${colors.base01}; }
&.paused { opacity: .5; }
}
#tray {
widget {
border: 1pt solid transparent;
border-radius: ${radius};
&:hover { background: ${colors.base01}; }
& > image { padding: 8px; }
}
& > .passive { border-color: ${colors.base02}; }
& > .needs-attention { border-color: ${colors.base09}; }
}
#pulseaudio {
&:hover { background: ${colors.base01}; }
&.muted {
background: ${colors.base08};
color: ${colors.base00};
&:hover {
color: ${colors.base08};
background: ${colors.base01};
}
}
}
#network {
&:hover { background: ${colors.base01}; }
&.disconnected {
color: ${colors.base00};
background: ${colors.base08};
}
}
#system .drawer-child > * {
margin-right: 4px
}
#keyboard-state label.locked {
background-color: ${colors.base00};
color: ${colors.base08};
}
#battery {
&.plugged { color: ${colors.base0D}; }
&.charging { color: ${colors.base0B}; }
&:not(.charging) {
&.warning {
color: ${colors.base00};
background-color: ${colors.base09};
}
&.critical {
background-color: ${colors.base08};
color: ${colors.base00};
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
}
&.full {
color: ${colors.base00};
background: ${colors.base0B};
}
}
@keyframes blink {
to {
background-color: ${colors.base00};
color: ${colors.base08};
}
}
'';
cssFile = pkgs.runCommand "waybar.css" {
nativeBuildInputs = [ pkgs.dart-sass ];
} "sass ${scssFile} $out";
in builtins.readFile cssFile;
};
wayland.windowManager.hyprland.settings.layerrule = [
"blur on, match:namespace waybar"
];
}