this repo has no description
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

a

+819 -473
+203 -133
flake.lock
··· 120 120 ] 121 121 }, 122 122 "locked": { 123 - "lastModified": 1653594315, 124 - "narHash": "sha256-kJ0ENmnQJ4qL2FeYKZba9kvv1KmIuB3NVpBwMeI7AJQ=", 123 + "lastModified": 1659725433, 124 + "narHash": "sha256-1ZxuK67TL29YLw88vQ18Y2Y6iYg8Jb7I6/HVzmNB6nM=", 125 125 "owner": "serokell", 126 126 "repo": "deploy-rs", 127 - "rev": "184349d8149436748986d1bdba087e4149e9c160", 127 + "rev": "41f15759dd8b638e7b4f299730d94d5aa46ab7eb", 128 128 "type": "github" 129 129 }, 130 130 "original": { ··· 151 151 }, 152 152 "devshell_2": { 153 153 "inputs": { 154 - "flake-utils": "flake-utils", 154 + "flake-utils": "flake-utils_2", 155 155 "nixpkgs": "nixpkgs" 156 156 }, 157 157 "locked": { ··· 201 201 } 202 202 }, 203 203 "discocss": { 204 + "inputs": { 205 + "flake-utils": "flake-utils", 206 + "nixpkgs": [ 207 + "nixpkgs" 208 + ] 209 + }, 210 + "locked": { 211 + "lastModified": 1657375072, 212 + "narHash": "sha256-kaRGVoiJJOAAvqlO++1yNexJHCBtCK3ROkAtAAZKt2s=", 213 + "owner": "fufexan", 214 + "repo": "discocss", 215 + "rev": "ca08c085637061366ed41c6f282d086e24dbf2ec", 216 + "type": "github" 217 + }, 218 + "original": { 219 + "owner": "fufexan", 220 + "ref": "flake", 221 + "repo": "discocss", 222 + "type": "github" 223 + } 224 + }, 225 + "discocss_2": { 204 226 "inputs": { 205 227 "flake-utils": [ 206 228 "fufexan", ··· 426 448 }, 427 449 "emacs-overlay": { 428 450 "inputs": { 429 - "flake-utils": "flake-utils_2", 451 + "flake-utils": "flake-utils_3", 430 452 "nixpkgs": "nixpkgs_2" 431 453 }, 432 454 "locked": { 433 - "lastModified": 1658833746, 434 - "narHash": "sha256-bm/FXx7lH8xaM1excP4SLexVBdaTKE5tZS8PyuibnsA=", 455 + "lastModified": 1659983351, 456 + "narHash": "sha256-FsTn0f0t2B7AKAtCDOYd34ztKa+XOUtzRa4FtO8HgDw=", 435 457 "owner": "nix-community", 436 458 "repo": "emacs-overlay", 437 - "rev": "4d03024af95e8338ccd4d238a46c4bbe01ecdb89", 459 + "rev": "a3770a9a619f508a0828df30cb10858663d4538b", 438 460 "type": "github" 439 461 }, 440 462 "original": { ··· 447 469 "inputs": { 448 470 "fenix": "fenix", 449 471 "flake-compat": "flake-compat_2", 450 - "flake-utils": "flake-utils_3", 472 + "flake-utils": "flake-utils_4", 451 473 "naersk": [ 452 474 "fufexan", 453 475 "naersk" ··· 458 480 ] 459 481 }, 460 482 "locked": { 461 - "lastModified": 1658741308, 462 - "narHash": "sha256-35ao8Xc1mEt8pPs6a0iI2NfKO7Dawq7+ZQ1jS64b1mU=", 483 + "lastModified": 1658940629, 484 + "narHash": "sha256-h5NoiiLolTjpeX73qU1j5fxscTIjN+BIo2bsaJY+Pts=", 463 485 "owner": "elkowar", 464 486 "repo": "eww", 465 - "rev": "962c06c0ee33e968c60ef7b1682e9d365a72e74f", 487 + "rev": "aac4c3aef4fa7dd42b3464be86d26debad66d7c1", 466 488 "type": "github" 467 489 }, 468 490 "original": { ··· 528 550 }, 529 551 "flake-utils": { 530 552 "locked": { 553 + "lastModified": 1619345332, 554 + "narHash": "sha256-qHnQkEp1uklKTpx3MvKtY6xzgcqXDsz5nLilbbuL+3A=", 555 + "owner": "numtide", 556 + "repo": "flake-utils", 557 + "rev": "2ebf2558e5bf978c7fb8ea927dfaed8fefab2e28", 558 + "type": "github" 559 + }, 560 + "original": { 561 + "owner": "numtide", 562 + "repo": "flake-utils", 563 + "type": "github" 564 + } 565 + }, 566 + "flake-utils_2": { 567 + "locked": { 531 568 "lastModified": 1642700792, 532 569 "narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=", 533 570 "owner": "numtide", ··· 541 578 "type": "github" 542 579 } 543 580 }, 544 - "flake-utils_2": { 581 + "flake-utils_3": { 545 582 "locked": { 546 - "lastModified": 1656928814, 547 - "narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=", 583 + "lastModified": 1659877975, 584 + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", 548 585 "owner": "numtide", 549 586 "repo": "flake-utils", 550 - "rev": "7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249", 587 + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", 551 588 "type": "github" 552 589 }, 553 590 "original": { ··· 556 593 "type": "github" 557 594 } 558 595 }, 559 - "flake-utils_3": { 596 + "flake-utils_4": { 560 597 "locked": { 561 598 "lastModified": 1634851050, 562 599 "narHash": "sha256-N83GlSGPJJdcqhUxSCS/WwW5pksYf3VP1M13cDRTSVA=", ··· 571 608 "type": "github" 572 609 } 573 610 }, 574 - "flake-utils_4": { 611 + "flake-utils_5": { 575 612 "locked": { 576 613 "lastModified": 1637014545, 577 614 "narHash": "sha256-26IZAc5yzlD9FlDT54io1oqG/bBoyka+FJk5guaX4x4=", ··· 586 623 "type": "github" 587 624 } 588 625 }, 589 - "flake-utils_5": { 626 + "flake-utils_6": { 590 627 "locked": { 591 628 "lastModified": 1637014545, 592 629 "narHash": "sha256-26IZAc5yzlD9FlDT54io1oqG/bBoyka+FJk5guaX4x4=", ··· 618 655 }, 619 656 "fu": { 620 657 "locked": { 621 - "lastModified": 1656928814, 622 - "narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=", 658 + "lastModified": 1659877975, 659 + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", 623 660 "owner": "numtide", 624 661 "repo": "flake-utils", 625 - "rev": "7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249", 662 + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", 626 663 "type": "github" 627 664 }, 628 665 "original": { ··· 635 672 "inputs": { 636 673 "deploy-rs": "deploy-rs", 637 674 "devshell": "devshell_2", 638 - "discocss": "discocss", 675 + "discocss": "discocss_2", 639 676 "emacs-overlay": "emacs-overlay", 640 677 "eww": "eww", 641 678 "fu": "fu", ··· 645 682 "hyprland-contrib": "hyprland-contrib", 646 683 "kmonad": "kmonad", 647 684 "naersk": "naersk", 685 + "nil": "nil", 648 686 "nix-colors": "nix-colors", 649 687 "nix-gaming": "nix-gaming", 650 688 "nixpkgs": "nixpkgs_4", 651 - "rnix-lsp": "rnix-lsp" 689 + "rnix-lsp": "rnix-lsp", 690 + "spicetify-nix": "spicetify-nix" 652 691 }, 653 692 "locked": { 654 - "lastModified": 1659195254, 655 - "narHash": "sha256-+broiZolVYTgduj+r3tN+zo9K0aWkI32eMlHfgnjg6k=", 693 + "lastModified": 1660172648, 694 + "narHash": "sha256-aysHb+76bnmgscx3Jgsgtn/fxCLnaH0GYfB+aB2HXeA=", 656 695 "owner": "fufexan", 657 696 "repo": "dotfiles", 658 - "rev": "c6296680001434b1d1f840b53324d31c5d5a7adc", 697 + "rev": "d8ef562706bca897af2b7e0f178deffb02aa9c08", 659 698 "type": "github" 660 699 }, 661 700 "original": { ··· 674 713 "rust-overlay": "rust-overlay_2" 675 714 }, 676 715 "locked": { 677 - "lastModified": 1658815512, 678 - "narHash": "sha256-q65cN1JuhJOfFve2A8Jyfe+wzgcbHpiNbUPOgwJRpZ8=", 716 + "lastModified": 1659892787, 717 + "narHash": "sha256-G0+P2ktmCtX3zcE8Qfnwc717xSPYlbj87i2vwvq9IDA=", 679 718 "owner": "helix-editor", 680 719 "repo": "helix", 681 - "rev": "3dd2196e4f42b23fd30b4e028b96d5b1862603d6", 720 + "rev": "3e11017ade8b25e580b20dab5187374fa3338bae", 682 721 "type": "github" 683 722 }, 684 723 "original": { ··· 693 732 "nixpkgs": [ 694 733 "nixpkgs" 695 734 ], 696 - "rust-overlay": "rust-overlay_3" 735 + "rust-overlay": "rust-overlay_4" 697 736 }, 698 737 "locked": { 699 - "lastModified": 1659072681, 700 - "narHash": "sha256-vvdQHhnJIxrIh8phbJRM/h8GgZBXj7Lc9yK05t52yCg=", 738 + "lastModified": 1660168643, 739 + "narHash": "sha256-1B/sWD7ltMs4k3DC6oxUD6mQYmKrCyrLVLIBK/5OL9w=", 701 740 "owner": "helix-editor", 702 741 "repo": "helix", 703 - "rev": "a8b123fe177d8cd7f5a610a0a50c16c9f64069bd", 742 + "rev": "d192d597535e50d3ce4a29fbd4dc13cb92320ea5", 704 743 "type": "github" 705 744 }, 706 745 "original": { ··· 718 757 "utils": "utils" 719 758 }, 720 759 "locked": { 721 - "lastModified": 1658751516, 722 - "narHash": "sha256-Y/3dHoTjbvYBtWd+TTBQJUIgDPO9d+Gqt05C5dyR7E4=", 760 + "lastModified": 1659978484, 761 + "narHash": "sha256-VkErPc8pXcuFQG7jkkaUOEMORe81oweRNlAYZJ2+aRI=", 723 762 "owner": "nix-community", 724 763 "repo": "home-manager", 725 - "rev": "dbed4c794d20d51027fc1107f063ec5be027dafc", 764 + "rev": "c1addfdad3825f75a66f8d73ec7d2f68c78ba6f8", 726 765 "type": "github" 727 766 }, 728 767 "original": { ··· 736 775 "nixpkgs": [ 737 776 "nixpkgs" 738 777 ], 739 - "utils": "utils_3" 778 + "utils": "utils_2" 740 779 }, 741 780 "locked": { 742 - "lastModified": 1657396086, 743 - "narHash": "sha256-4cQ6hEuewWoFkTBlu211JGxPQQ1Zyli8oEq1cu7cVeA=", 781 + "lastModified": 1659978484, 782 + "narHash": "sha256-VkErPc8pXcuFQG7jkkaUOEMORe81oweRNlAYZJ2+aRI=", 744 783 "owner": "nix-community", 745 784 "repo": "home-manager", 746 - "rev": "c645cc9f82c7753450d1fa4d1bc73b64960a9d7a", 785 + "rev": "c1addfdad3825f75a66f8d73ec7d2f68c78ba6f8", 747 786 "type": "github" 748 787 }, 749 788 "original": { ··· 787 826 "wlroots": "wlroots" 788 827 }, 789 828 "locked": { 790 - "lastModified": 1659194367, 791 - "narHash": "sha256-pxPBHj2B6EuljO0PekkHlKtWZLdDkjX4zF5sY7Q/lFk=", 829 + "lastModified": 1660148977, 830 + "narHash": "sha256-eR/qlC8eDY7A+bkkiF28xCG0cPJr4HilMcD3/QJ05TQ=", 792 831 "owner": "hyprwm", 793 832 "repo": "Hyprland", 794 - "rev": "59879e0bd1f30771b0dce57c324e1648a3ad1603", 833 + "rev": "f64f94ca565a2ec9f174f57a20fcfbfddb762cb8", 795 834 "type": "github" 796 835 }, 797 836 "original": { ··· 829 868 "wlroots": "wlroots_2" 830 869 }, 831 870 "locked": { 832 - "lastModified": 1657572680, 833 - "narHash": "sha256-NOy0iHEnOcL5yAA7fWXni++axbNSFaYDxLeAkmPtZaY=", 871 + "lastModified": 1660168160, 872 + "narHash": "sha256-dBfG89ugpHbWwqSexCtGqpHs4lZxO5zXWHAT5P2v06I=", 834 873 "owner": "hyprwm", 835 874 "repo": "Hyprland", 836 - "rev": "676e4c36c53c991f6950a0c51fbe7b41ee9a4db2", 875 + "rev": "cd75606f4232787a9faf55db0835b29e3bb45ae9", 837 876 "type": "github" 838 877 }, 839 878 "original": { ··· 873 912 ] 874 913 }, 875 914 "locked": { 876 - "lastModified": 1655042882, 877 - "narHash": "sha256-9BX8Fuez5YJlN7cdPO63InoyBy7dm3VlJkkmTt6fS1A=", 915 + "lastModified": 1659610603, 916 + "narHash": "sha256-LYgASYSPYo7O71WfeUOaEUzYfzuXm8c8eavJcel+pfI=", 878 917 "owner": "nmattia", 879 918 "repo": "naersk", 880 - "rev": "cddffb5aa211f50c4b8750adbec0bbbdfb26bb9f", 919 + "rev": "c6a45e4277fa58abd524681466d3450f896dc094", 881 920 "type": "github" 882 921 }, 883 922 "original": { ··· 886 925 "type": "github" 887 926 } 888 927 }, 889 - "naersk_2": { 890 - "inputs": { 891 - "nixpkgs": [ 892 - "fufexan", 893 - "rnix-lsp", 894 - "nixpkgs" 895 - ] 896 - }, 897 - "locked": { 898 - "lastModified": 1655042882, 899 - "narHash": "sha256-9BX8Fuez5YJlN7cdPO63InoyBy7dm3VlJkkmTt6fS1A=", 900 - "owner": "nix-community", 901 - "repo": "naersk", 902 - "rev": "cddffb5aa211f50c4b8750adbec0bbbdfb26bb9f", 903 - "type": "github" 904 - }, 905 - "original": { 906 - "owner": "nix-community", 907 - "repo": "naersk", 908 - "type": "github" 909 - } 910 - }, 911 928 "nci": { 912 929 "inputs": { 913 930 "devshell": "devshell", ··· 932 949 "type": "github" 933 950 } 934 951 }, 952 + "nil": { 953 + "inputs": { 954 + "flake-utils": [ 955 + "fufexan", 956 + "fu" 957 + ], 958 + "nixpkgs": [ 959 + "fufexan", 960 + "nixpkgs" 961 + ], 962 + "rust-overlay": "rust-overlay_3" 963 + }, 964 + "locked": { 965 + "lastModified": 1659996948, 966 + "narHash": "sha256-f91TFtsKVoejb7rW9zRs7WozGMqzDgHMxO/Q/gQKFpU=", 967 + "owner": "oxalica", 968 + "repo": "nil", 969 + "rev": "e222ab8363be9c02400eb94384837653930e4b8c", 970 + "type": "github" 971 + }, 972 + "original": { 973 + "owner": "oxalica", 974 + "repo": "nil", 975 + "type": "github" 976 + } 977 + }, 935 978 "nix-colors": { 936 979 "inputs": { 937 980 "base16-schemes": "base16-schemes", ··· 956 999 "nixpkgs": "nixpkgs_3" 957 1000 }, 958 1001 "locked": { 959 - "lastModified": 1658662574, 960 - "narHash": "sha256-NX3uQqN8kktKujIiQStqGZx9K+jJ5+M2a+GVrAe227w=", 1002 + "lastModified": 1659340932, 1003 + "narHash": "sha256-CEeGgZLN5ukOrbvwKTh66miEQ3cA2poH4tko6C7ULS4=", 961 1004 "owner": "fufexan", 962 1005 "repo": "nix-gaming", 963 - "rev": "065a6a44a301ba027d42b52d94db5bc39dd7ce6d", 1006 + "rev": "69b8118d92c5bd135f2d139d87fb01d34de9a244", 964 1007 "type": "github" 965 1008 }, 966 1009 "original": { ··· 1047 1090 }, 1048 1091 "nixos-hardware": { 1049 1092 "locked": { 1050 - "lastModified": 1656933710, 1051 - "narHash": "sha256-SVG8EqY1OTJWBRY4hpct2ZR2Rk0L8hCFkug3m0ABoZE=", 1093 + "lastModified": 1660030916, 1094 + "narHash": "sha256-KeVTmST6vAS85uUaSYlzv6OWhveawfIGhqX1SMq+L30=", 1052 1095 "owner": "nixos", 1053 1096 "repo": "nixos-hardware", 1054 - "rev": "3bf48d3587d3f34f745a19ebc968b002ef5b5c5a", 1097 + "rev": "3975d5158f00accda15a11180b2c08654cfb2807", 1055 1098 "type": "github" 1056 1099 }, 1057 1100 "original": { ··· 1109 1152 "nixpkgs_2": { 1110 1153 "locked": { 1111 1154 "lastModified": 0, 1112 - "narHash": "sha256-MWyfCH9K3eVTXJUxBi67OQSAh9jJAnvWklM6qm4j8w8=", 1113 - "path": "/nix/store/qdsi66bin3h3yimbn35fxbj7fwdpi739-source", 1155 + "narHash": "sha256-7Ye59iW/DUWb8PzptEqdyYPlv6y+IhqKecaoZl3q68A=", 1156 + "path": "/nix/store/3a2j1ra0ymsmrmibafh96gryipxidyy7-source", 1114 1157 "type": "path" 1115 1158 }, 1116 1159 "original": { ··· 1136 1179 }, 1137 1180 "nixpkgs_4": { 1138 1181 "locked": { 1139 - "lastModified": 1658644204, 1140 - "narHash": "sha256-MWyfCH9K3eVTXJUxBi67OQSAh9jJAnvWklM6qm4j8w8=", 1182 + "lastModified": 1659987637, 1183 + "narHash": "sha256-8l+5QiCkackVPu/F3vX7RCKHyYKxEsq/TKMuaG6UX5k=", 1141 1184 "owner": "NixOS", 1142 1185 "repo": "nixpkgs", 1143 - "rev": "2f0c3be57c348f4cfd8820f2d189e29a685d9c41", 1186 + "rev": "a47896bf817e7324471e687fc2bb2312fff682ce", 1144 1187 "type": "github" 1145 1188 }, 1146 1189 "original": { ··· 1152 1195 }, 1153 1196 "nixpkgs_5": { 1154 1197 "locked": { 1155 - "lastModified": 1656753965, 1156 - "narHash": "sha256-BCrB3l0qpJokOnIVc3g2lHiGhnjUi0MoXiw6t1o8H1E=", 1198 + "lastModified": 1660071133, 1199 + "narHash": "sha256-XX6T9wcvEZIVWY4TO5O1d2MgFyFrF2v4TpCFs7fjdn8=", 1157 1200 "owner": "nixos", 1158 1201 "repo": "nixpkgs", 1159 - "rev": "0ea7a8f1b939d74e5df8af9a8f7342097cdf69eb", 1160 - "type": "github" 1161 - }, 1162 - "original": { 1163 - "owner": "nixos", 1164 - "ref": "nixos-unstable", 1165 - "repo": "nixpkgs", 1166 - "type": "github" 1167 - } 1168 - }, 1169 - "nixpkgs_6": { 1170 - "locked": { 1171 - "lastModified": 1657447684, 1172 - "narHash": "sha256-FCP9AuU1q6PE3vOeM5SFf58f/UKPBAsoSGDUGamNBbo=", 1173 - "owner": "nixos", 1174 - "repo": "nixpkgs", 1175 - "rev": "5f43d8b088d3771274bcfb69d3c7435b1121ac88", 1202 + "rev": "36cc29d837e7232e3176e4651e8e117a6f231793", 1176 1203 "type": "github" 1177 1204 }, 1178 1205 "original": { ··· 1184 1211 }, 1185 1212 "nur": { 1186 1213 "locked": { 1187 - "lastModified": 1657563923, 1188 - "narHash": "sha256-gvouxQe93ynZzlUWBxGbk7TJRzAQ5w3wiyNRYODiFJM=", 1214 + "lastModified": 1660140306, 1215 + "narHash": "sha256-AXtZqd2elOoqSd57Jr3E5f86H8h4e+iNPtMHuj2R0Ps=", 1189 1216 "owner": "nix-community", 1190 1217 "repo": "NUR", 1191 - "rev": "ba9415d7c8ad896048d4d54d770f2d0c45791d1a", 1218 + "rev": "5a911c0997ddec558b0da1588fe0e8af4cb8e769", 1192 1219 "type": "github" 1193 1220 }, 1194 1221 "original": { ··· 1199 1226 }, 1200 1227 "rnix-lsp": { 1201 1228 "inputs": { 1202 - "naersk": "naersk_2", 1203 - "nixpkgs": "nixpkgs_5", 1204 - "utils": "utils_2" 1229 + "naersk": [ 1230 + "fufexan", 1231 + "naersk" 1232 + ], 1233 + "nixpkgs": [ 1234 + "fufexan", 1235 + "nixpkgs" 1236 + ], 1237 + "utils": [ 1238 + "fufexan", 1239 + "fu" 1240 + ] 1205 1241 }, 1206 1242 "locked": { 1207 - "lastModified": 1658492037, 1208 - "narHash": "sha256-i4TL1Tb/q7Y+Jk5JWk6FRWWei6yH0WtYVTnmmAr9B0c=", 1243 + "lastModified": 1658963292, 1244 + "narHash": "sha256-4OIpATLdPQvryyhRQPELeqNYC0n6PCyjD6LCPdwOztc=", 1209 1245 "owner": "nix-community", 1210 1246 "repo": "rnix-lsp", 1211 - "rev": "e6a41cbd317a21763ba61a19e594a3e1bf1023ca", 1247 + "rev": "ff18e04551a39ccdab0ff9c83926db3807b23478", 1212 1248 "type": "github" 1213 1249 }, 1214 1250 "original": { ··· 1221 1257 "inputs": { 1222 1258 "bernbot": "bernbot", 1223 1259 "blog": "blog", 1260 + "discocss": "discocss", 1224 1261 "fufexan": "fufexan", 1225 1262 "helix": "helix_2", 1226 1263 "home": "home", ··· 1228 1265 "nixinate": "nixinate", 1229 1266 "nixos-hardware": "nixos-hardware", 1230 1267 "nixos-persistence": "nixos-persistence", 1231 - "nixpkgs": "nixpkgs_6", 1268 + "nixpkgs": "nixpkgs_5", 1232 1269 "nur": "nur" 1233 1270 } 1234 1271 }, ··· 1267 1304 }, 1268 1305 "rust-overlay_2": { 1269 1306 "inputs": { 1270 - "flake-utils": "flake-utils_4", 1307 + "flake-utils": "flake-utils_5", 1271 1308 "nixpkgs": [ 1272 1309 "fufexan", 1273 1310 "helix", ··· 1290 1327 }, 1291 1328 "rust-overlay_3": { 1292 1329 "inputs": { 1293 - "flake-utils": "flake-utils_5", 1330 + "flake-utils": [ 1331 + "fufexan", 1332 + "nil", 1333 + "flake-utils" 1334 + ], 1335 + "nixpkgs": [ 1336 + "fufexan", 1337 + "nil", 1338 + "nixpkgs" 1339 + ] 1340 + }, 1341 + "locked": { 1342 + "lastModified": 1659599305, 1343 + "narHash": "sha256-htzFq5RffyoKSZxiLfpUq5CyhkQwycsXB5ptale5e78=", 1344 + "owner": "oxalica", 1345 + "repo": "rust-overlay", 1346 + "rev": "28cedcb8dfea9f1b96b0635cf99fe6bdca163f4e", 1347 + "type": "github" 1348 + }, 1349 + "original": { 1350 + "owner": "oxalica", 1351 + "repo": "rust-overlay", 1352 + "type": "github" 1353 + } 1354 + }, 1355 + "rust-overlay_4": { 1356 + "inputs": { 1357 + "flake-utils": "flake-utils_6", 1294 1358 "nixpkgs": [ 1295 1359 "helix", 1296 1360 "nixpkgs" ··· 1310 1374 "type": "github" 1311 1375 } 1312 1376 }, 1313 - "utils": { 1377 + "spicetify-nix": { 1378 + "inputs": { 1379 + "nixpkgs": [ 1380 + "fufexan", 1381 + "nixpkgs" 1382 + ] 1383 + }, 1314 1384 "locked": { 1315 - "lastModified": 1653893745, 1316 - "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", 1317 - "owner": "numtide", 1318 - "repo": "flake-utils", 1319 - "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", 1385 + "lastModified": 1660056496, 1386 + "narHash": "sha256-m7hREOZD/A2NIP970NsNG65NRMg+qpKqhLqRvjL4Kgs=", 1387 + "owner": "the-argus", 1388 + "repo": "spicetify-nix", 1389 + "rev": "ba37a751fb8a8d8b29271b354b6abb5d709b280e", 1320 1390 "type": "github" 1321 1391 }, 1322 1392 "original": { 1323 - "owner": "numtide", 1324 - "repo": "flake-utils", 1393 + "owner": "the-argus", 1394 + "repo": "spicetify-nix", 1325 1395 "type": "github" 1326 1396 } 1327 1397 }, 1328 - "utils_2": { 1398 + "utils": { 1329 1399 "locked": { 1330 - "lastModified": 1656928814, 1331 - "narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=", 1400 + "lastModified": 1653893745, 1401 + "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", 1332 1402 "owner": "numtide", 1333 1403 "repo": "flake-utils", 1334 - "rev": "7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249", 1404 + "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", 1335 1405 "type": "github" 1336 1406 }, 1337 1407 "original": { ··· 1340 1410 "type": "github" 1341 1411 } 1342 1412 }, 1343 - "utils_3": { 1413 + "utils_2": { 1344 1414 "locked": { 1345 1415 "lastModified": 1653893745, 1346 1416 "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", ··· 1359 1429 "flake": false, 1360 1430 "locked": { 1361 1431 "host": "gitlab.freedesktop.org", 1362 - "lastModified": 1656865312, 1363 - "narHash": "sha256-xtQ0zwJZwN8sciruveM10CzKz6TWxBY8SyXa8E4jly4=", 1432 + "lastModified": 1659738224, 1433 + "narHash": "sha256-bV3TLiCgptpKoUKLiH/5RMtiIsfn0hawdaCEHQFB6WY=", 1364 1434 "owner": "wlroots", 1365 1435 "repo": "wlroots", 1366 - "rev": "5dc1d4671dd2ca3c1f0f09587c463fdbb542f0a4", 1436 + "rev": "3baf2a6bcfc4cb86c364f5724aaec80f28715a01", 1367 1437 "type": "gitlab" 1368 1438 }, 1369 1439 "original": { ··· 1377 1447 "flake": false, 1378 1448 "locked": { 1379 1449 "host": "gitlab.freedesktop.org", 1380 - "lastModified": 1655824477, 1381 - "narHash": "sha256-1kskHOLsnisR3kqIL5IHrQbQG/4xoXxeEf1ExMV6/RU=", 1450 + "lastModified": 1659738224, 1451 + "narHash": "sha256-bV3TLiCgptpKoUKLiH/5RMtiIsfn0hawdaCEHQFB6WY=", 1382 1452 "owner": "wlroots", 1383 1453 "repo": "wlroots", 1384 - "rev": "5c4384a1330faedf975c8b8644881d50390f3613", 1454 + "rev": "3baf2a6bcfc4cb86c364f5724aaec80f28715a01", 1385 1455 "type": "gitlab" 1386 1456 }, 1387 1457 "original": {
+2
flake.nix
··· 23 23 blog.inputs.nixpkgs.follows = "nixpkgs"; 24 24 bernbot.url = "github:yusdacra/bernbot"; 25 25 bernbot.inputs.nixpkgs.follows = "nixpkgs"; 26 + discocss.url = "github:fufexan/discocss/flake"; 27 + discocss.inputs.nixpkgs.follows = "nixpkgs"; 26 28 }; 27 29 28 30 outputs = inputs: let
+1 -2
hosts/tkaronto/default.nix
··· 17 17 common-gpu-amd 18 18 common-cpu-amd 19 19 ../../modules/persist 20 + ../../modules/gamemode 20 21 ../../modules/network/iwd.nix 21 - #../../modules/develop/nixbuild 22 22 ../../users/root 23 23 ../../users/patriot 24 24 ]; ··· 171 171 autoMount = true; 172 172 }; 173 173 flatpak.enable = false; 174 - hardware.xow.enable = true; 175 174 }; 176 175 177 176 virtualisation = {
+7 -4
lib/default.nix
··· 3 3 defaultSystems = import ./systems.nix; 4 4 genSystems = lib.genAttrs self.defaultSystems; 5 5 6 - pkgBin = pkgs: id: 7 - if lib.isString id 8 - then "${pkgs.${id}}/bin/${id}" 9 - else "${pkgs.${id.name}}/bin/${id.bin}"; 6 + pkgBin = pkg: 7 + if (pkg.meta or {}) ? mainProgram 8 + then "${pkg}/bin/${pkg.meta.mainProgram}" 9 + else "${pkg}/bin/${pkg.pname}"; 10 + 11 + prefixStrings = prefix: strings: 12 + lib.forEach strings (string: "${prefix}${string}"); 10 13 })
+11 -10
modules/base/default.nix
··· 10 10 11 11 coreBin = v: "${pkgs.coreutils}/bin/${v}"; 12 12 nixBin = "${config.nix.package}/bin/nix"; 13 - pkgBin = tlib.pkgBin pkgs; 13 + pkgBin = tlib.pkgBin; 14 14 in { 15 15 imports = [ 16 16 ./nix.nix ··· 58 58 ]; 59 59 shellAliases = let 60 60 ifSudo = string: mkIf config.security.sudo.enable string; 61 + inherit (pkgs) git bat exa du-dust; 61 62 in { 62 - g = pkgBin "git"; 63 - git-optimize = "${pkgBin "git"} gc --aggressive --prune=now"; 64 - cat = "${pkgBin "bat"} -pp --theme=base16"; 63 + g = pkgBin git; 64 + git-optimize = "${pkgBin git} gc --aggressive --prune=now"; 65 + cat = "${pkgBin bat} -pp --theme=base16"; 65 66 c = "cat"; 66 - du = "${pkgs.du-dust}/bin/dust"; 67 + du = "${pkgBin du-dust}"; 67 68 df = "${coreBin "df"} -h"; 68 69 free = "${pkgs.procps}/bin/free -h"; 69 - ls = pkgBin "exa"; 70 - l = "${pkgBin "exa"} -lhg"; 71 - la = "${pkgBin "exa"} -lhg -a"; 72 - t = "${pkgBin "exa"} -lhg -T"; 73 - ta = "${pkgBin "exa"} -lhg -a -T"; 70 + ls = pkgBin exa; 71 + l = "${pkgBin exa} -lhg"; 72 + la = "${pkgBin exa} -lhg -a"; 73 + t = "${pkgBin exa} -lhg -T"; 74 + ta = "${pkgBin exa} -lhg -a -T"; 74 75 n = nixBin; 75 76 nf = "${nixBin} flake"; 76 77 nfu = "${nixBin} flake update";
+6 -2
modules/base/hm-system-defaults.nix
··· 1 1 { 2 2 config, 3 3 inputs, 4 + tlib, 4 5 ... 5 6 }: { 6 7 home-manager.useGlobalPkgs = true; 7 8 home-manager.useUserPackages = true; 8 9 home-manager.sharedModules = [ 9 10 { 10 - home.sessionVariables = {inherit (config.environment.sessionVariables) NIX_PATH;}; 11 + home = { 12 + inherit (config.environment) shellAliases sessionVariables; 13 + stateVersion = config.system.stateVersion; 14 + }; 11 15 xdg.configFile."nix/registry.json".text = config.environment.etc."nix/registry.json".text; 12 16 xdg.configFile."nix/nix.conf".source = config.environment.etc."nix/nix.conf".source; 13 17 xdg.configFile."nix/netrc".source = config.environment.etc."nix/netrc".source; 14 18 } 15 19 ]; 16 - home-manager.extraSpecialArgs = {inherit inputs;}; 20 + home-manager.extraSpecialArgs = {inherit inputs tlib;}; 17 21 }
+31
modules/gamemode/default.nix
··· 1 + { 2 + pkgs, 3 + inputs, 4 + ... 5 + }: let 6 + hyprland = inputs.fufexan.packages.${pkgs.system}.hyprland; 7 + 8 + startscript = pkgs.writeShellScript "gamemode-start" '' 9 + export HYPRLAND_INSTANCE_SIGNATURE=$(ls /tmp/hypr | sort | tail -n 1) 10 + ${hyprland}/bin/hyprctl --batch 'keyword decoration:blur 0 ; keyword animations:enabled 0 ; keyword misc:no_vfr 1' 11 + ''; 12 + 13 + endscript = pkgs.writeShellScript "gamemode-end" '' 14 + export HYPRLAND_INSTANCE_SIGNATURE=$(ls /tmp/hypr | sort | tail -n 1) 15 + ${hyprland}/bin/hyprctl --batch 'keyword decoration:blur 1 ; keyword animations:enabled 1 ; keyword misc:no_vfr 0' 16 + ''; 17 + in { 18 + programs.gamemode = { 19 + enable = true; 20 + settings = { 21 + general = { 22 + softrealtime = "auto"; 23 + renice = 15; 24 + }; 25 + custom = { 26 + start = "${startscript}"; 27 + end = "${endscript}"; 28 + }; 29 + }; 30 + }; 31 + }
+2 -1
pkgs-set/default.nix
··· 2 2 inputs, 3 3 system, 4 4 lib, 5 + tlib, 5 6 ... 6 7 }: let 7 8 l = lib; ··· 23 24 ${l.removeSuffix ".nix" name} = 24 25 prev.callPackage 25 26 "${./pkgs}/${name}" 26 - {inherit inputs;}; 27 + {inherit inputs tlib;}; 27 28 } 28 29 ) 29 30 (l.readDir ./pkgs);
-3
pkgs-set/overlays/hyprland.nix
··· 1 - {inputs}: final: prev: { 2 - hyprland = inputs.fufexan.packages.${prev.system}.hyprland; 3 - }
-24
pkgs-set/overlays/phantom.nix
··· 1 - final: prev: { 2 - phantomstyle = 3 - prev.stdenv.mkDerivation 4 - { 5 - pname = "phantomstyle"; 6 - version = "6e9580b"; 7 - src = 8 - builtins.fetchGit 9 - { 10 - url = "https://github.com/randrew/phantomstyle.git"; 11 - rev = "6e9580b72e372b5acecd616434eaf441bf73bcf4"; 12 - }; 13 - dontWrapQtApps = true; 14 - buildInputs = [prev.libsForQt5.qt5.qtbase]; 15 - buildPhase = '' 16 - cd src/styleplugin 17 - qmake && make 18 - ''; 19 - installPhase = '' 20 - mkdir -p $out/$qtPluginPrefix/styles 21 - mv libphantomstyleplugin.so $out/$qtPluginPrefix/styles 22 - ''; 23 - }; 24 - }
+14
pkgs-set/pkgs/comic-mono.nix
··· 1 + { 2 + fetchurl, 3 + runCommand, 4 + ... 5 + }: let 6 + ttf = fetchurl { 7 + url = "https://dtinth.github.io/comic-mono-font/ComicMono.ttf"; 8 + sha256 = "sha256-O8FCXpIqFqvw7HZ+/+TQJoQ5tMDc6YQy4H0V9drVcZY="; 9 + }; 10 + in 11 + runCommand "comic-mono" {} '' 12 + mkdir -p $out/share/fonts/truetype 13 + ln -s ${ttf} $out/share/fonts/truetype 14 + ''
+3 -2
pkgs-set/pkgs/generate-firefox-addons.nix
··· 2 2 nur, 3 3 treefmt, 4 4 writers, 5 + tlib, 5 6 ... 6 7 }: 7 8 writers.writeBashBin "generate-firefox-addons" '' 8 - ${nur.repos.rycee.firefox-addons-generator}/bin/nixpkgs-firefox-addons \ 9 + ${tlib.pkgBin nur.repos.rycee.mozilla-addons-to-nix} \ 9 10 users/modules/firefox/extensions.json \ 10 11 users/modules/firefox/extensions.nix 11 - ${treefmt}/bin/treefmt 12 + ${tlib.pkgBin treefmt} 12 13 ''
+15
users/modules/discord/default.nix
··· 1 + { 2 + inputs, 3 + pkgs, 4 + ... 5 + }: { 6 + imports = [inputs.discocss.hmModule]; 7 + 8 + programs.discocss = { 9 + enable = true; 10 + discord = 11 + inputs.fufexan.packages.${pkgs.system}.discord-electron-openasar; 12 + discordAlias = true; 13 + css = builtins.readFile ./theme.css; 14 + }; 15 + }
+215
users/modules/discord/theme.css
··· 1 + .theme-dark, 2 + .theme-light { 3 + --brand-experiment: #f5e0dc; 4 + --brand-experiment-560: #f5e0dc; 5 + --brand-experiment-200: #cdd6f4; 6 + --brand-experiment-15a: #585b70; 7 + --brand-experiment-600: #efcec8; 8 + --header-primary: #a6adc8; 9 + --header-secondary: #bac2de; 10 + --text-normal: #cdd6f4; 11 + --text-muted: #a6adc8; 12 + --text-link: #f5e0dc; 13 + --text-positive: #a6e3a1; 14 + --text-warning: #f9e2af; 15 + --text-danger: #f38ba8; 16 + --text-brand: #89b4fa; 17 + --interactive-normal: #9399b2; 18 + --interactive-hover: #9399b2; 19 + --interactive-active: #cdd6f4; 20 + --interactive-muted: #45475a; 21 + --background-primary: #1e1e2e; 22 + --background-secondary: #181825; 23 + --background-secondary-alt: #11111b; 24 + --background-tertiary: #11111b; 25 + --background-accent: #45475a; 26 + --background-floating: #181825; 27 + --background-nested-floating: #2f3136; 28 + --background-mobile-primary: #36393f; 29 + --background-mobile-secondary: #2f3136; 30 + --chat-background: #36393f; 31 + --chat-border: #202225; 32 + --chat-input-container-background: #36393f; 33 + --background-modifier-hover: #45475a; 34 + --background-modifier-active: #585b70; 35 + --background-modifier-selected: #585b70; 36 + --background-modifier-accent: rgba(79,84,92,0.48); 37 + --info-warning-background: rgba(249,226,175,0.1); 38 + --info-warning-foreground: #f9e2af; 39 + /*--info-warning-text: #fff; 40 + --info-danger-background: hsla(359,calc(var(--saturation-factor, 1)*82.6%),59.4%,0.1); 41 + --info-danger-foreground: hsl(359,calc(var(--saturation-factor, 1)*82.6%),59.4%); 42 + --info-danger-text: #fff; 43 + --info-help-background: hsla(197,calc(var(--saturation-factor, 1)*100%),47.8%,0.1); 44 + --info-help-foreground: hsl(197,calc(var(--saturation-factor, 1)*100%),47.8%); 45 + --info-help-text: #fff; 46 + --status-positive-background: hsl(139,calc(var(--saturation-factor, 1)*47.1%),33.3%); 47 + --status-positive-text: #fff; 48 + --status-warning-background: hsl(38,calc(var(--saturation-factor, 1)*95.7%),54.1%); 49 + --status-warning-text: #000;*/ 50 + --status-danger-background: #f38ba8; 51 + --status-danger-text: #cdd6f4; 52 + --status-danger: #f38ba8; 53 + --status-positive: #a6e3a1; 54 + --status-warning: #fab387; 55 + --button-danger-background: #f38ba8; 56 + --button-danger-background-hover: #f5a2b9; 57 + --button-danger-background-active: #f17497; 58 + --button-danger-background-disabled: #532c37; 59 + --button-positive-background: #a6e3a1; 60 + --button-positive-background-hover: #b9e9b5; 61 + --button-positive-background-active: #93dd8d; 62 + --button-positive-background-disabled: #404540; 63 + --button-secondary-background: #313244; 64 + --button-secondary-background-hover: #45475a; 65 + --button-secondary-background-active: #585b70; 66 + --button-secondary-background-disabled: #f00; 67 + --button-outline-danger-text: #cdd6f4; 68 + --button-outline-danger-border: #f38ba8; 69 + --button-outline-danger-background: #f38ba8; 70 + --button-outline-danger-background-hover: #f5a2b9; 71 + --button-outline-danger-text-hover: #1e1e2e; 72 + --button-outline-danger-border-hover: #f5a2b9; 73 + --button-outline-danger-background-active: #f17497; 74 + --button-outline-danger-text-active: #1e1e2e; 75 + --button-outline-danger-border-active: #f17497; 76 + --button-outline-positive-text: #fff; 77 + /*--button-outline-positive-border: hsl(139,calc(var(--saturation-factor, 1)*47.3%),43.9%); 78 + --button-outline-positive-background: hsla(0,0%,100%,0); 79 + --button-outline-positive-background-hover: hsl(139,calc(var(--saturation-factor, 1)*47.1%),33.3%); 80 + --button-outline-positive-text-hover: #fff; 81 + --button-outline-positive-border-hover: hsl(139,calc(var(--saturation-factor, 1)*47.1%),33.3%); 82 + --button-outline-positive-background-active: hsl(138,calc(var(--saturation-factor, 1)*46.8%),24.3%); 83 + --button-outline-positive-text-active: #fff; 84 + --button-outline-positive-border-active: hsl(138,calc(var(--saturation-factor, 1)*46.8%),24.3%); 85 + --button-outline-brand-text: #fff; 86 + --button-outline-brand-border: hsl(235,calc(var(--saturation-factor, 1)*85.6%),64.7%); 87 + --button-outline-brand-background: hsla(0,0%,100%,0); 88 + --button-outline-brand-background-hover: hsl(235,calc(var(--saturation-factor, 1)*85.6%),64.7%); 89 + --button-outline-brand-text-hover: #fff; 90 + --button-outline-brand-border-hover: hsl(235,calc(var(--saturation-factor, 1)*85.6%),64.7%); 91 + --button-outline-brand-background-active: hsl(235,calc(var(--saturation-factor, 1)*51.4%),52.4%); 92 + --button-outline-brand-text-active: #fff; 93 + --button-outline-brand-border-active: hsl(235,calc(var(--saturation-factor, 1)*51.4%),52.4%);*/ 94 + --button-outline-primary-text: #fff; 95 + --button-outline-primary-border: #4f545c; 96 + --button-outline-primary-background: rgba(255,255,255,0); 97 + --button-outline-primary-background-hover: #4f545c; 98 + --button-outline-primary-text-hover: #fff; 99 + --button-outline-primary-border-hover: #4f545c; 100 + --button-outline-primary-background-active: #686d73; 101 + --button-outline-primary-text-active: #fff; 102 + --button-outline-primary-border-active: #686d73; 103 + --modal-background: #181825; 104 + --modal-footer-background: #11111b; 105 + --scrollbar-thin-thumb: #313244; 106 + --scrollbar-thin-track: transparent; 107 + --scrollbar-auto-thumb: #313244; 108 + --scrollbar-auto-track: transparent; 109 + --scrollbar-auto-scrollbar-color-thumb: #313244; 110 + --scrollbar-auto-scrollbar-color-track: transparent; 111 + --input-background: #313244; 112 + --input-placeholder-text: #7f849c; 113 + --elevation-stroke: 0 0 0 1px rgba(4,4,5,0.15); 114 + --elevation-low: 0 1px 0 rgba(4,4,5,0.2), 0 1.5px 0 rgba(6,6,7,0.05), 0 2px 0 rgba(4,4,5,0.05); 115 + --elevation-medium: 0 4px 4px rgba(0,0,0,0.16); 116 + --elevation-high: 0 8px 16px rgba(0,0,0,0.24); 117 + --logo-primary: #fff; 118 + --background-mentioned: rgba(249,226,175,0.1); 119 + --background-mentioned-hover: rgba(249,226,175,0.08); 120 + --background-message-hover: rgba(24,24,37,0.25); 121 + --channels-default: #7f849c; 122 + --channel-icon: #a6adc8; 123 + --channel-text-area-placeholder: #72767d; 124 + --guild-header-text-shadow: 0 1px 1px rgba(0,0,0,0.4); 125 + --channeltextarea-background: #313244; 126 + --activity-card-background: #202225; 127 + --textbox-markdown-syntax: #8e9297; 128 + --spoiler-revealed-background: #292b2f; 129 + --spoiler-hidden-background: #202225; 130 + --android-navigation-bar-background: #121315; 131 + --deprecated-card-bg: #181825; 132 + --deprecated-card-editable-bg: rgba(32,34,37,0.3); 133 + --deprecated-store-bg: #36393f; 134 + --deprecated-quickswitcher-input-background: #72767d; 135 + --deprecated-quickswitcher-input-placeholder: rgba(255,255,255,0.3); 136 + --deprecated-text-input-bg: #202225; 137 + --deprecated-text-input-border: rgba(0,0,0,0.3); 138 + --deprecated-text-input-border-hover: #040405; 139 + --deprecated-text-input-border-disabled: #202225; 140 + --deprecated-text-input-prefix: #dcddde; 141 + } 142 + /* Reactions */ 143 + .reaction-3vwAF2 { 144 + background-color: #313244; 145 + } 146 + .reaction-3vwAF2:hover { 147 + background-color: #45475a; 148 + } 149 + /* Buttons */ 150 + .lookFilled-yCfaCM.colorBrand-I6CyqQ, 151 + .lookFilled-yCfaCM.colorRed-rQXKgM, 152 + .lookFilled-yCfaCM.colorGreen-3y-Z79, 153 + .selected-2Uns2B, 154 + .colorDefault-CDqZdO.focused-3qFvc8, 155 + .barButtonBase-Sk2mdB { 156 + color: #1e1e2e; 157 + } 158 + .colorDanger-3n-KnP:active:not(.hideInteraction-2jPGL_) { 159 + background-color: #f38ba8; 160 + color: #1e1e2e; 161 + } 162 + .lookFilled-yCfaCM.colorPrimary-2AuQVo { 163 + background-color: #313244; 164 + color: #cdd6f4; 165 + } 166 + /* Checkbox */ 167 + .checked-25WXMf { 168 + background-color: #a6e3a1 !important; 169 + } 170 + /* Bot tag */ 171 + .botTagRegular-kpctgU { 172 + color: #1e1e2e; 173 + } 174 + /* Message hover buttons */ 175 + .wrapper-2vIMkT { 176 + background-color: #313244; 177 + } 178 + /* DMs page */ 179 + .container-2cd8Mz { 180 + background-color: #1e1e2e !important; 181 + } 182 + /* Delete message pupup */ 183 + .theme-dark .message-G6O-Wv { 184 + background-color: #11111b; 185 + } 186 + .autocomplete-3NRXG8 { 187 + background: #1e1e2e !important; 188 + } 189 + .categoryHeader-OpJ1Ly { 190 + background: #181825; 191 + } 192 + rect[fill^="hsl(139"] { 193 + fill: #a6e3a1; 194 + } 195 + rect[fill^="hsl(38"] { 196 + fill: #f9e2af; 197 + } 198 + rect[fill^="hsl(359"] { 199 + fill: #f38ba8; 200 + } 201 + rect[fill^="hsl(214"] { 202 + fill: #a6adc8; 203 + } 204 + div[style^="background-color: hsl(139"] { 205 + background-color: #a6e3a1 !important; 206 + } 207 + div[style^="background-color: hsl(38"] { 208 + background-color: #f9e2af !important; 209 + } 210 + div[style^="background-color: hsl(359"] { 211 + background-color: #f38ba8 !important; 212 + } 213 + div[style^="background-color: hsl(214"] { 214 + background-color: #a6adc8 !important; 215 + }
+1
users/modules/firefox/extensions.nix
··· 12 12 sha256 = "d9453ae265608d3a1b17c812d77422ab2aaf357365e527812268a407643efa25"; 13 13 meta = with lib; { 14 14 description = "Firefox theme based on <a href=\"https://outgoing.prod.mozaws.net/v1/110954a3f2718cf03892676379416caed51099b639f643aaf12989b7e698f073/https%3A//github.com/catppuccin/catppuccin\" rel=\"nofollow\">https://github.com/catppuccin/catppuccin</a>"; 15 + license = licenses.cc-by-30; 15 16 platforms = platforms.all; 16 17 }; 17 18 };
+6
users/modules/fzf/default.nix
··· 1 + {config, ...}: { 2 + programs.fzf.enable = true; 3 + home.sessionVariables = { 4 + FZF_DEFAULT_OPTS = "--color=spinner:#F8BD96,hl:#F28FAD --color=fg:#D9E0EE,header:#F28FAD,info:#DDB6F2,pointer:#F8BD96 --color=marker:#F8BD96,fg+:#F2CDCD,prompt:#DDB6F2,hl+:#F28FAD"; 5 + }; 6 + }
+156 -147
users/modules/hyprland/default.nix
··· 1 - {pkgs, ...}: { 2 - systemd.user.targets.hyprland-session = { 3 - Unit = { 4 - Description = "hyprland compositor session"; 5 - Documentation = ["man:systemd.special(7)"]; 6 - BindsTo = ["graphical-session.target"]; 7 - Wants = ["graphical-session-pre.target"]; 8 - After = ["graphical-session-pre.target"]; 9 - }; 10 - }; 1 + { 2 + pkgs, 3 + inputs, 4 + ... 5 + }: { 6 + imports = [ 7 + ../wayland 8 + inputs.hyprland.homeManagerModules.default 9 + ]; 10 + 11 + home.packages = 12 + [ 13 + (import "${inputs.fufexan}/home/wayland/screenshot.nix" {inherit pkgs;}) 14 + ] 15 + ++ ( 16 + with pkgs; [ 17 + wf-recorder 18 + xorg.xprop 19 + ] 20 + ); 21 + 22 + wayland.windowManager.hyprland = { 23 + enable = true; 24 + package = inputs.fufexan.packages.${pkgs.system}.hyprland; 25 + extraConfig = let 26 + rofi = "${pkgs.rofi-wayland}/bin/rofi"; 27 + launcher = "${rofi} -show drun"; 28 + term = "${pkgs.wezterm}/bin/wezterm"; 29 + 30 + swaybg = "${pkgs.swaybg}/bin/swaybg"; 31 + light = "${pkgs.light}/bin/light"; 32 + playerctl = "${pkgs.playerctl}/bin/playerctl"; 33 + pulsemixer = "${pkgs.pulsemixer}/bin/pulsemixer"; 34 + wl-copy = "${pkgs.wl-clipboard}/bin/wl-copy"; 35 + notify-date = with pkgs; 36 + writers.writeBash "notify-date" '' 37 + ${libnotify}/bin/notify-send -t 1000 " $(${coreutils}/bin/date +'%H:%M %d/%m/%Y')" 38 + ''; 39 + in '' 40 + # should be configured per-profile 41 + monitor=,preferred,auto,1.6 42 + workspace=,1 43 + 44 + exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY DISPLAY HYPRLAND_INSTANCE_SIGNATURE 45 + exec-once=systemctl --user start hyprland-session.target 46 + exec-once=${swaybg} -i ~/.config/wallpaper 47 + 48 + input { 49 + kb_layout=tr 50 + follow_mouse=1 51 + force_no_accel=1 52 + touchpad { 53 + natural_scroll=1 54 + } 55 + } 56 + general { 57 + sensitivity=1 58 + main_mod=SUPER 59 + gaps_in=5 60 + gaps_out=5 61 + border_size=0 62 + damage_tracking=full 63 + } 64 + decoration { 65 + rounding=16 66 + blur=1 67 + blur_size=3 68 + blur_passes=3 69 + blur_new_optimizations=1 70 + drop_shadow=1 71 + shadow_ignore_window=1 72 + shadow_offset=2 2 73 + shadow_range=2 74 + shadow_render_power=1 75 + col.shadow=0x55000000 76 + } 77 + animations { 78 + enabled=1 79 + animation=windows,1,3,default,popin 80% 80 + animation=border,1,2,default 81 + animation=fade,1,2,default 82 + animation=workspaces,1,2,default,slide 83 + } 84 + dwindle { 85 + pseudotile=0 # enable pseudotiling on dwindle 86 + } 87 + 88 + bind=SUPER,RETURN,exec,${term} 89 + bind=SUPER,D,exec,${launcher} 90 + bind=SUPER,Q,killactive, 91 + bind=SUPERSHIFT,E,exec,pkill Hyprland 92 + bind=SUPER,F,fullscreen, 93 + bind=SUPER,P,pseudo, 94 + bind=SUPER,T,exec,${notify-date} 95 + bind=SUPERSHIFT,T,togglefloating, 96 + bind=,XF86AudioPlay,exec,${playerctl} play-pause 97 + bind=,XF86AudioPrev,exec,${playerctl} previous 98 + bind=,XF86AudioNext,exec,${playerctl} next 99 + bind=,XF86AudioRaiseVolume,exec,${pulsemixer} --change-volume +6 100 + bind=,XF86AudioLowerVolume,exec,${pulsemixer} --change-volume -6 101 + bind=,XF86AudioMute,exec,${pulsemixer} --toggle-mute 102 + bind=,XF86MonBrightnessUp,exec,${light} -A 5 103 + bind=,XF86MonBrightnessDown,exec,${light} -U 5 104 + 105 + # move focus 106 + bind=SUPER,left,movefocus,l 107 + bind=SUPER,right,movefocus,r 108 + bind=SUPER,up,movefocus,u 109 + bind=SUPER,down,movefocus,d 110 + 111 + # go to workspace 112 + bind=SUPER,1,workspace,1 113 + bind=SUPER,2,workspace,2 114 + bind=SUPER,3,workspace,3 115 + bind=SUPER,4,workspace,4 116 + bind=SUPER,5,workspace,5 117 + bind=SUPER,6,workspace,6 118 + bind=SUPER,7,workspace,7 119 + bind=SUPER,8,workspace,8 120 + bind=SUPER,9,workspace,9 121 + bind=SUPER,0,workspace,10 122 + 123 + # cycle workspaces 124 + bind=SUPER,bracketleft,workspace,m-1 125 + bind=SUPER,bracketright,workspace,m+1 126 + 127 + # cycle monitors 128 + bind=SUPERSHIFT,braceleft,focusmonitor,l 129 + bind=SUPERSHIFT,braceright,focusmonitor,r 130 + 131 + # move to workspace 132 + bind=SUPERSHIFT,1,movetoworkspace,1 133 + bind=SUPERSHIFT,2,movetoworkspace,2 134 + bind=SUPERSHIFT,3,movetoworkspace,3 135 + bind=SUPERSHIFT,4,movetoworkspace,4 136 + bind=SUPERSHIFT,5,movetoworkspace,5 137 + bind=SUPERSHIFT,6,movetoworkspace,6 138 + bind=SUPERSHIFT,7,movetoworkspace,7 139 + bind=SUPERSHIFT,8,movetoworkspace,8 140 + bind=SUPERSHIFT,9,movetoworkspace,9 141 + 142 + ## screenshot ## 143 + bind=,Print,exec,screenshot area 144 + bind=SUPERSHIFT,R,exec,screenshot area 145 + 146 + # monitor 147 + bind=CTRL,Print,exec,screenshot monitor 148 + bind=SUPERSHIFTCTRL,R,exec,screenshot monitor 11 149 12 - xdg.enable = true; 13 - xdg.configFile."hypr/hyprland.conf".text = let 14 - rofi = "${pkgs.rofi-wayland}/bin/rofi"; 15 - launcher = "${rofi} -show drun"; 16 - term = "${pkgs.wezterm}/bin/wezterm"; 150 + # all-monitors 151 + bind=ALT,Print,exec,screenshot all 152 + bind=SUPERSHIFTALT,R,exec,screenshot all 17 153 18 - swaybg = "${pkgs.swaybg}/bin/swaybg"; 19 - grim = "${pkgs.grim}/bin/grim"; 20 - light = "${pkgs.light}/bin/light"; 21 - playerctl = "${pkgs.playerctl}/bin/playerctl"; 22 - pulsemixer = "${pkgs.pulsemixer}/bin/pulsemixer"; 23 - slurp = "${pkgs.slurp}/bin/slurp"; 24 - wl-copy = "${pkgs.wl-clipboard}/bin/wl-copy"; 25 - notify-date = with pkgs; 26 - writers.writeBash "notify-date" '' 27 - ${libnotify}/bin/notify-send -t 1000 " $(${coreutils}/bin/date +'%H:%M %d/%m/%Y')" 28 - ''; 29 - in '' 30 - # should be configured per-profile 31 - monitor=,2560x1600@120,0x0,1.6 32 - workspace=,1 33 - exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY DISPLAY HYPRLAND_INSTANCE_SIGNATURE 34 - exec-once=systemctl --user start graphical-session-pre.target 35 - exec-once=systemctl --user start graphical-session.target 36 - exec-once=${swaybg} -i ~/.config/wallpaper 37 - exec-once=xprop -root -f _XWAYLAND_GLOBAL_OUTPUT_SCALE 32c -set _XWAYLAND_GLOBAL_OUTPUT_SCALE 1.6 38 - input { 39 - kb_layout=tr 40 - kb_variant= 41 - kb_model= 42 - kb_options= 43 - kb_rules= 44 - follow_mouse=1 45 - force_no_accel=1 46 - touchpad { 47 - natural_scroll=1 48 - } 49 - } 50 - general { 51 - sensitivity=1 52 - main_mod=SUPER 53 - gaps_in=5 54 - gaps_out=5 55 - border_size=0 56 - damage_tracking=full 57 - } 58 - decoration { 59 - rounding=16 60 - blur=1 61 - blur_size=3 # minimum 1 62 - blur_passes=3 # minimum 1, more passes = more resource intensive. 63 - # Your blur "amount" is blur_size * blur_passes, but high blur_size (over around 5-ish) will produce artifacts. 64 - # if you want heavy blur, you need to up the blur_passes. 65 - # the more passes, the more you can up the blur_size without noticing artifacts. 66 - } 67 - animations { 68 - enabled=1 69 - animation=windows,1,2,default 70 - animation=borders,1,2,default 71 - animation=fadein,1,2,default 72 - animation=workspaces,1,2,slide 73 - } 74 - dwindle { 75 - pseudotile=0 # enable pseudotiling on dwindle 76 - } 77 - # example window rules 78 - # for windows named/classed as abc and xyz 79 - #windowrule=move 69 420,abc 80 - #windowrule=size 420 69,abc 81 - #windowrule=tile,xyz 82 - #windowrule=float,abc 83 - #windowrule=pseudo,abc 84 - #windowrule=monitor 0,xyz 85 - bind=SUPER,RETURN,exec,${term} 86 - bind=SUPER,D,exec,${launcher} 87 - bind=SUPER,Q,killactive, 88 - bind=SUPERSHIFT,E,exec,pkill Hyprland 89 - bind=SUPER,F,fullscreen, 90 - bind=SUPER,P,pseudo, 91 - bind=SUPER,T,exec,${notify-date} 92 - bind=SUPERSHIFT,T,togglefloating, 93 - bind=,XF86AudioPlay,exec,${playerctl} play-pause 94 - bind=,XF86AudioPrev,exec,${playerctl} previous 95 - bind=,XF86AudioNext,exec,${playerctl} next 96 - bind=,XF86AudioRaiseVolume,exec,${pulsemixer} --change-volume +6 97 - bind=,XF86AudioLowerVolume,exec,${pulsemixer} --change-volume -6 98 - bind=,XF86AudioMute,exec,${pulsemixer} --toggle-mute 99 - bind=,XF86MonBrightnessUp,exec,${light} -A 5 100 - bind=,XF86MonBrightnessDown,exec,${light} -U 5 101 - # screenshot 102 - # selection 103 - $ssselection=${grim} -g "$(${slurp})" - | ${wl-copy} -t image/png 104 - bind=,Print,exec,$ssselection 105 - bind=SUPERSHIFT,R,exec,$ssselection 106 - # monitor 107 - $ssmonitor=${grim} -o "$(${slurp} -f %o -or)" - | ${wl-copy} -t image/png 108 - bind=CTRL,Print,exec,$ssmonitor 109 - bind=SUPERSHIFTCTRL,R,exec,$ssmonitor 110 - # all-monitors 111 - $ssall=${grim} - | ${wl-copy} -t image/png 112 - bind=ALT,Print,exec,$ssall 113 - bind=SUPERSHIFTALT,R,exec,$ssall 114 - # move focus 115 - bind=SUPER,left,movefocus,l 116 - bind=SUPER,right,movefocus,r 117 - bind=SUPER,up,movefocus,u 118 - bind=SUPER,down,movefocus,d 119 - # go to workspace 120 - bind=SUPER,grave,togglespecialworkspace,eDP-1 121 - bind=SUPER,1,workspace,1 122 - bind=SUPER,2,workspace,2 123 - bind=SUPER,3,workspace,3 124 - bind=SUPER,4,workspace,4 125 - bind=SUPER,5,workspace,5 126 - bind=SUPER,6,workspace,6 127 - bind=SUPER,7,workspace,7 128 - bind=SUPER,8,workspace,8 129 - bind=SUPER,9,workspace,9 130 - bind=SUPER,0,workspace,10 131 - # cycle workspaces 132 - bind=SUPER,bracketleft,workspace,m-1 133 - bind=SUPER,bracketright,workspace,m+1 134 - # cycle monitors 135 - bind=SUPERSHIFT,braceleft,focusmonitor,l 136 - bind=SUPERSHIFT,braceright,focusmonitor,r 137 - # move to workspace 138 - bind=SUPERSHIFT,asciitilde,movetoworkspace,special 139 - bind=SUPERSHIFT,exclam,movetoworkspace,1 140 - bind=SUPERSHIFT,at,movetoworkspace,2 141 - bind=SUPERSHIFT,numbersign,movetoworkspace,3 142 - bind=SUPERSHIFT,dollar,movetoworkspace,4 143 - bind=SUPERSHIFT,percent,movetoworkspace,5 144 - bind=SUPERSHIFT,asciicircum,movetoworkspace,6 145 - bind=SUPERSHIFT,ampersand,movetoworkspace,7 146 - bind=SUPERSHIFT,asterisk,movetoworkspace,8 147 - bind=SUPERSHIFT,parenleft,movetoworkspace,9 148 - bind=SUPERSHIFT,parenright,movetoworkspace,10 149 - ''; 154 + # screenrec 155 + bind=ALT,Print,exec,screenshot rec area 156 + bind=SUPERSHIFTALT,R,exec,screenshot rec area 157 + ''; 158 + }; 150 159 }
+17
users/modules/ssh/default.nix
··· 1 + {...}: { 2 + programs.ssh = { 3 + enable = true; 4 + compression = true; 5 + hashKnownHosts = true; 6 + userKnownHostsFile = "~/.local/share/ssh/known-hosts"; 7 + # Only needed for darcs hub 8 + # extraConfig = '' 9 + # Host hub.darcs.net 10 + # ControlMaster no 11 + # ForwardAgent no 12 + # ForwardX11 no 13 + # Ciphers +aes256-cbc 14 + # MACs +hmac-sha1 15 + # ''; 16 + }; 17 + }
+20
users/modules/wayland/default.nix
··· 1 + {pkgs, ...}: { 2 + home.packages = with pkgs; [ 3 + wl-clipboard 4 + ]; 5 + 6 + home.sessionVariables = { 7 + NIXOS_OZONE_WL = "1"; 8 + MOZ_ENABLE_WAYLAND = "1"; 9 + SDL_VIDEODRIVER = "wayland"; 10 + QT_QPA_PLATFORM = "wayland"; 11 + QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; 12 + }; 13 + 14 + services = { 15 + gammastep = { 16 + enable = true; 17 + provider = "geoclue2"; 18 + }; 19 + }; 20 + }
+56
users/modules/zsh/default.nix
··· 1 + { 2 + config, 3 + tlib, 4 + lib, 5 + pkgs, 6 + ... 7 + }: let 8 + pkgBin = tlib.pkgBin; 9 + in { 10 + programs.zsh = { 11 + enable = true; 12 + autocd = true; 13 + enableVteIntegration = true; 14 + enableAutosuggestions = true; 15 + enableCompletion = true; 16 + plugins = [ 17 + { 18 + name = "per-directory-history"; 19 + src = pkgs.fetchFromGitHub { 20 + owner = "jimhester"; 21 + repo = "per-directory-history"; 22 + rev = "d2e291dd6434e340d9be0e15e1f5b94f32771c06"; 23 + hash = "sha256-VHRgrVCqzILqOes8VXGjSgLek38BFs9eijmp0JHtD5Q="; 24 + }; 25 + } 26 + ]; 27 + # xdg compliant 28 + dotDir = ".config/zsh"; 29 + history.path = "${config.home.homeDirectory}/.local/share/zsh/history"; 30 + initExtra = '' 31 + ${ 32 + lib.optionalString 33 + (config.programs.ssh.enable && config.services.gpg-agent.enable) 34 + "export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)" 35 + } 36 + 37 + function tomp4 () { 38 + ${pkgBin pkgs.ffmpeg} -i $1 -c:v libx264 -preset slow -crf 30 -c:a aac -b:a 128k "$1.mp4" 39 + } 40 + 41 + function topng () { 42 + ${pkgBin pkgs.ffmpeg} -i $1 "$1.png" 43 + } 44 + 45 + # fix some key stuff 46 + bindkey "$terminfo[kRIT5]" forward-word 47 + bindkey "$terminfo[kLFT5]" backward-word 48 + 49 + # makes completions pog 50 + zstyle ':completion:*' menu select 51 + 52 + # which env we are in 53 + ${pkgBin pkgs.any-nix-shell} zsh --info-right | source /dev/stdin 54 + ''; 55 + }; 56 + }
+53 -145
users/patriot/default.nix
··· 6 6 inputs, 7 7 ... 8 8 } @ globalAttrs: let 9 - inherit (lib) mapAttrs' nameValuePair; 10 - inherit (builtins) readDir fetchGit; 11 9 l = lib // builtins; 12 10 13 - pkgBin = tlib.pkgBin pkgs; 14 11 nixosConfig = globalAttrs.config; 15 12 in { 16 - imports = [ 17 - inputs.hyprland.nixosModules.default 18 - ]; 19 - 20 13 users.users.patriot = { 21 14 isNormalUser = true; 22 15 createHome = true; ··· 33 26 }; 34 27 environment = { 35 28 persistence.${config.system.persistDir}.directories = l.flatten [ 36 - (lib.optional nixosConfig.programs.steam.enable "/home/patriot/.local/share/Steam") 29 + (l.optional nixosConfig.programs.steam.enable "/home/patriot/.local/share/Steam") 37 30 "/home/patriot/.cargo" 38 31 "/home/patriot/proj" 39 32 "/home/patriot/games" ··· 44 37 xdg.portal = { 45 38 enable = true; 46 39 wlr.enable = true; 47 - gtkUsePortal = true; 48 - extraPortals = with pkgs; [xdg-desktop-portal-gtk xdg-desktop-portal-wlr]; 40 + extraPortals = with pkgs; [ 41 + xdg-desktop-portal-gtk 42 + xdg-desktop-portal-wlr 43 + ]; 49 44 }; 50 45 programs = { 51 46 # this is needed for impermanence ··· 55 50 kdeconnect.enable = true; 56 51 # gnome stuffs 57 52 seahorse.enable = true; 58 - hyprland.enable = true; 59 - hyprland.extraPackages = []; 60 53 }; 61 54 # gnome keyring better fr fr 62 55 security.pam.services.patriot = { ··· 80 73 name = personal.name; 81 74 email = personal.emails.primary; 82 75 in { 83 - imports = [ 84 - ../modules/direnv 85 - ../modules/git 86 - ../modules/starship 87 - ../modules/helix 88 - ../modules/zoxide 89 - ../modules/wezterm 90 - ../modules/hyprland 91 - ../modules/rofi 92 - ../modules/mako 93 - ../modules/font 94 - ../modules/firefox 95 - ../../modules/persist 96 - # ../modules/smos 97 - inputs.nixos-persistence.nixosModules.home-manager.impermanence 98 - ]; 76 + imports = let 77 + modulesToEnable = l.flatten [ 78 + # desktop stuff 79 + ["firefox" "hyprland" "wezterm" "font" "rofi" "mako" "discord"] 80 + # cli stuff 81 + ["zoxide" "zsh" "fzf" "starship" "direnv"] 82 + # dev stuff 83 + ["helix" "git" "ssh"] 84 + ]; 85 + in 86 + l.flatten [ 87 + ../../modules/persist 88 + inputs.nixos-persistence.nixosModules.home-manager.impermanence 89 + (tlib.prefixStrings "${inputs.self}/users/modules/" modulesToEnable) 90 + ]; 99 91 100 92 system.persistDir = nixosConfig.system.persistDir; 101 93 102 94 home.persistence."${config.system.persistDir}${config.home.homeDirectory}" = let 103 - mkPaths = prefix: paths: 104 - builtins.map (n: "${prefix}/${n}") (l.flatten paths); 95 + mkPaths = pfx: paths: tlib.prefixStrings "${pfx}/" (l.flatten paths); 105 96 in { 106 97 directories = 107 98 l.flatten [ ··· 135 126 allowOther = true; 136 127 }; 137 128 138 - fonts.fontconfig.enable = lib.mkForce true; 129 + fonts.fontconfig.enable = l.mkForce true; 139 130 fonts.settings = { 140 131 enable = true; 141 132 name = "Comic Mono"; 142 133 size = 13; 143 - package = let 144 - ttf = pkgs.fetchurl { 145 - url = "https://dtinth.github.io/comic-mono-font/ComicMono.ttf"; 146 - sha256 = "sha256-O8FCXpIqFqvw7HZ+/+TQJoQ5tMDc6YQy4H0V9drVcZY="; 147 - }; 148 - in 149 - pkgs.runCommandNoCC "comic-mono" {} '' 150 - mkdir -p $out/share/fonts/truetype 151 - ln -s ${ttf} $out/share/fonts/truetype 152 - ''; 134 + package = pkgs.comic-mono; 153 135 }; 154 136 home = { 155 - stateVersion = nixosConfig.system.stateVersion; 156 137 homeDirectory = nixosConfig.users.users.patriot.home; 157 - packages = with pkgs; 158 - l.flatten [ 159 - # Font stuff 160 - noto-fonts-cjk 161 - font-awesome 162 - dejavu_fonts 163 - # Programs 164 - bitwarden 165 - cargo-outdated 166 - cargo-release 167 - cargo-udeps 168 - vulkan-tools 169 - krita 170 - cachix 171 - gnupg 172 - imv 173 - mpv 174 - ffmpeg 175 - mupdf 176 - xdg_utils 177 - wl-clipboard 178 - xclip 179 - rust-analyzer 180 - # polymc 181 - cloudflared 182 - lutris 183 - discord-open-asar 184 - gamescope 185 - protontricks 186 - genymotion 187 - ]; 188 - shellAliases = 189 - nixosConfig.environment.shellAliases 190 - // { 191 - harmony-ssh = '' 192 - ${pkgBin "mosh"} root@chat.harmonyapp.io 193 - ''; 194 - }; 195 - sessionVariables = 196 - nixosConfig.environment.sessionVariables 197 - // l.optionalAttrs config.programs.fzf.enable { 198 - FZF_DEFAULT_OPTS = "--color=spinner:#F8BD96,hl:#F28FAD --color=fg:#D9E0EE,header:#F28FAD,info:#DDB6F2,pointer:#F8BD96 --color=marker:#F8BD96,fg+:#F2CDCD,prompt:#DDB6F2,hl+:#F28FAD"; 199 - }; 138 + packages = with pkgs; [ 139 + # Font stuff 140 + noto-fonts-cjk 141 + font-awesome 142 + dejavu_fonts 143 + # Programs 144 + bitwarden 145 + cargo-outdated 146 + cargo-release 147 + cargo-udeps 148 + vulkan-tools 149 + krita 150 + cachix 151 + gnupg 152 + imv 153 + mpv 154 + ffmpeg 155 + mupdf 156 + xdg_utils 157 + rust-analyzer 158 + # polymc 159 + cloudflared 160 + lutris 161 + protontricks 162 + ]; 200 163 }; 201 164 programs = { 202 165 command-not-found.enable = ··· 209 172 userName = name; 210 173 userEmail = email; 211 174 }; 212 - ssh = { 213 - enable = true; 214 - compression = true; 215 - hashKnownHosts = true; 216 - userKnownHostsFile = "~/.local/share/ssh/known-hosts"; 217 - # Only needed for darcs hub 218 - # extraConfig = '' 219 - # Host hub.darcs.net 220 - # ControlMaster no 221 - # ForwardAgent no 222 - # ForwardX11 no 223 - # Ciphers +aes256-cbc 224 - # MACs +hmac-sha1 225 - # ''; 226 - }; 227 - zsh = { 228 - enable = true; 229 - autocd = true; 230 - enableVteIntegration = true; 231 - enableAutosuggestions = true; 232 - enableCompletion = true; 233 - plugins = [ 234 - { 235 - name = "per-directory-history"; 236 - src = pkgs.fetchFromGitHub { 237 - owner = "jimhester"; 238 - repo = "per-directory-history"; 239 - rev = "d2e291dd6434e340d9be0e15e1f5b94f32771c06"; 240 - hash = "sha256-VHRgrVCqzILqOes8VXGjSgLek38BFs9eijmp0JHtD5Q="; 241 - }; 242 - } 243 - ]; 244 - # xdg compliant 245 - dotDir = ".config/zsh"; 246 - history.path = "${config.home.homeDirectory}/.local/share/zsh/history"; 247 - initExtra = '' 248 - export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) 249 - 250 - function tomp4 () { 251 - ${pkgBin "ffmpeg"} -i $1 -c:v libx264 -preset slow -crf 30 -c:a aac -b:a 128k "$1.mp4" 252 - } 253 - 254 - function topng () { 255 - ${pkgBin "ffmpeg"} -i $1 "$1.png" 256 - } 257 - 258 - # fix some key stuff 259 - bindkey "$terminfo[kRIT5]" forward-word 260 - bindkey "$terminfo[kLFT5]" backward-word 261 - # makes completions pog 262 - zstyle ':completion:*' menu select 263 - ${pkgBin "any-nix-shell"} zsh --info-right | source /dev/stdin 264 - ''; 265 - loginExtra = '' 266 - if [[ "$(tty)" == "/dev/tty1" ]]; then 267 - exec Hyprland 268 - fi 269 - ''; 270 - }; 271 - fzf.enable = true; 175 + zsh.loginExtra = '' 176 + if [[ "$(tty)" == "/dev/tty1" ]]; then 177 + exec Hyprland 178 + fi 179 + ''; 272 180 }; 273 181 services = { 274 182 gpg-agent = let