Compare commits
616 commits
de06caa440
...
3140843098
Author | SHA1 | Date | |
---|---|---|---|
Manuel Thalmann | 3140843098 | ||
Manuel Thalmann | 620687c1f3 | ||
Manuel Thalmann | 6a5f7f4d85 | ||
Manuel Thalmann | 66bc662e54 | ||
Manuel Thalmann | ad22040fbb | ||
Manuel Thalmann | 5410109d2d | ||
Manuel Thalmann | ea90b326ae | ||
Manuel Thalmann | d129267047 | ||
Manuel Thalmann | 0e7e66ce12 | ||
Manuel Thalmann | 262eb20474 | ||
Manuel Thalmann | 9b522725d6 | ||
Manuel Thalmann | 0a41dcb7f3 | ||
Manuel Thalmann | 1a4f832c39 | ||
Manuel Thalmann | 48e7eb0880 | ||
Manuel Thalmann | b5d94fea09 | ||
Manuel Thalmann | 69f7e42524 | ||
Manuel Thalmann | c4bfccf85c | ||
Manuel Thalmann | bcb7da8ebd | ||
Manuel Thalmann | 698d706aa0 | ||
Manuel Thalmann | dc9f21805e | ||
Manuel Thalmann | e5723181a3 | ||
Manuel Thalmann | e8421152fb | ||
Manuel Thalmann | 5475b60078 | ||
Manuel Thalmann | acd4c58692 | ||
Manuel Thalmann | 0d7178aa6b | ||
Manuel Thalmann | 93ceb7d9f4 | ||
Manuel Thalmann | ad4e6e45a1 | ||
Manuel Thalmann | 29cbba1138 | ||
Manuel Thalmann | ce2d8ad3e7 | ||
Manuel Thalmann | 5a30b42737 | ||
Manuel Thalmann | ba93ad277d | ||
Manuel Thalmann | e69b016be4 | ||
Manuel Thalmann | 12979f006a | ||
Manuel Thalmann | 1fda16b331 | ||
Manuel Thalmann | 353a69efdb | ||
Manuel Thalmann | 48908e33e9 | ||
Manuel Thalmann | aa795d8ac4 | ||
Manuel Thalmann | 2c0a1f5ca0 | ||
Manuel Thalmann | 4aec05b7d7 | ||
Manuel Thalmann | e5252cd9af | ||
Manuel Thalmann | 5bafb8057e | ||
Manuel Thalmann | 337f87ed3f | ||
Manuel Thalmann | 5225a62a3b | ||
Manuel Thalmann | 1efe4bb432 | ||
Manuel Thalmann | 60025040e9 | ||
Manuel Thalmann | 96888c97df | ||
Manuel Thalmann | 761bcd3213 | ||
Manuel Thalmann | cfd3cfc12f | ||
Manuel Thalmann | ca2da30384 | ||
Manuel Thalmann | a1d45730ab | ||
Manuel Thalmann | 9f7bd40ed5 | ||
Manuel Thalmann | c3ccc92910 | ||
Manuel Thalmann | fcabb8a4d6 | ||
Manuel Thalmann | 750a27af69 | ||
Manuel Thalmann | 0e36efda0f | ||
Manuel Thalmann | ef991cdf78 | ||
Manuel Thalmann | 26f39d4a64 | ||
Manuel Thalmann | 5248e5d0b7 | ||
Manuel Thalmann | cb3e16005d | ||
Manuel Thalmann | 86a3f87f70 | ||
Manuel Thalmann | 4f5c39df66 | ||
Manuel Thalmann | 3c26cd7c02 | ||
Manuel Thalmann | e75f0cfaf0 | ||
Manuel Thalmann | ab33b56ca3 | ||
Manuel Thalmann | a0a1816a76 | ||
Manuel Thalmann | c2d1487dd9 | ||
Manuel Thalmann | 9a304e50a9 | ||
Manuel Thalmann | 3ef4f0a811 | ||
Manuel Thalmann | 57138db12c | ||
Manuel Thalmann | dbd9cc24c9 | ||
Manuel Thalmann | a9155c6567 | ||
Manuel Thalmann | 3e82230fd3 | ||
Manuel Thalmann | 68caf78c27 | ||
Manuel Thalmann | 6e818ea9f6 | ||
Manuel Thalmann | 8898e30eae | ||
Manuel Thalmann | 490bf8b31f | ||
Manuel Thalmann | f52bf04c96 | ||
Manuel Thalmann | f6aeee7605 | ||
Manuel Thalmann | f8748a2ec9 | ||
Manuel Thalmann | ec4cbf6348 | ||
Manuel Thalmann | 43b590f8b6 | ||
Manuel Thalmann | e8b51e5b08 | ||
Manuel Thalmann | cc2deaed77 | ||
Manuel Thalmann | f563dee72e | ||
Manuel Thalmann | f2139b1667 | ||
Manuel Thalmann | 6361b03bb8 | ||
Manuel Thalmann | 4061bb56c5 | ||
Manuel Thalmann | e0854b90f6 | ||
Manuel Thalmann | 4c9d3a78d3 | ||
Manuel Thalmann | 90db794e42 | ||
Manuel Thalmann | 6ea42ba180 | ||
Manuel Thalmann | 0b1998d335 | ||
Manuel Thalmann | c6a677b9ff | ||
Manuel Thalmann | f23efeb0ca | ||
Manuel Thalmann | eb40f0ebdf | ||
Manuel Thalmann | 72687afa9d | ||
Manuel Thalmann | 38085572f2 | ||
Manuel Thalmann | 0e435f9c9a | ||
Manuel Thalmann | acf938cc96 | ||
Manuel Thalmann | 5217107999 | ||
Manuel Thalmann | b2fc26185d | ||
Manuel Thalmann | 4f8df6b406 | ||
Manuel Thalmann | df06202c5f | ||
Manuel Thalmann | 33e28e7ca9 | ||
Manuel Thalmann | 481dbde675 | ||
Manuel Thalmann | 89d37fa714 | ||
Manuel Thalmann | 8a43c0bc5b | ||
Manuel Thalmann | 7e619be1a9 | ||
Manuel Thalmann | 6ba44e524b | ||
Manuel Thalmann | 2abe8a5dd0 | ||
Manuel Thalmann | f2996a6b94 | ||
Manuel Thalmann | a79b178854 | ||
Manuel Thalmann | 057d242124 | ||
Manuel Thalmann | a61ef921bd | ||
Manuel Thalmann | de60bf5795 | ||
Manuel Thalmann | 14f348722e | ||
Manuel Thalmann | 341a828c43 | ||
Manuel Thalmann | 9362c0d1c3 | ||
Manuel Thalmann | 5a38d19ae6 | ||
Manuel Thalmann | 6775e59366 | ||
Manuel Thalmann | 6dea884c9b | ||
Manuel Thalmann | 3de2384f8e | ||
Manuel Thalmann | 13f46f285f | ||
Manuel Thalmann | 0e5319f454 | ||
Manuel Thalmann | 324fa9a0e6 | ||
Manuel Thalmann | 03fab82de4 | ||
Manuel Thalmann | 2c88b03fc6 | ||
Manuel Thalmann | 8502d4a59b | ||
Manuel Thalmann | 41f7f06125 | ||
Manuel Thalmann | cf3971890d | ||
Manuel Thalmann | 14c509d7a8 | ||
Manuel Thalmann | 4548f5bf53 | ||
Manuel Thalmann | c9e30bf3de | ||
Manuel Thalmann | 7b4126667a | ||
Manuel Thalmann | 9a3a7fe950 | ||
Manuel Thalmann | b451f52f04 | ||
Manuel Thalmann | 3c6dc16b8f | ||
Manuel Thalmann | bf61ea0c1a | ||
Manuel Thalmann | 2c2e858974 | ||
Manuel Thalmann | 335804d384 | ||
Manuel Thalmann | 8ada6c8d4a | ||
Manuel Thalmann | 50078286b3 | ||
Manuel Thalmann | a8976e49f4 | ||
Manuel Thalmann | 02822687e2 | ||
Manuel Thalmann | bef29e8a75 | ||
Manuel Thalmann | 63701a6c81 | ||
Manuel Thalmann | 5cc5dac24b | ||
Manuel Thalmann | 6b46b3f53c | ||
Manuel Thalmann | db8380750a | ||
Manuel Thalmann | 0021245415 | ||
Manuel Thalmann | cf60f5f88e | ||
Manuel Thalmann | 677e8d34ab | ||
Manuel Thalmann | f9b937032e | ||
Manuel Thalmann | 32c7be700a | ||
Manuel Thalmann | 7b04566b80 | ||
Manuel Thalmann | aff634ab8b | ||
Manuel Thalmann | 884f7467b8 | ||
Manuel Thalmann | 55e48613a3 | ||
Manuel Thalmann | 8749d9c230 | ||
Manuel Thalmann | 655d44a1dc | ||
Manuel Thalmann | 8d239ff26e | ||
Manuel Thalmann | 0d53ba8b01 | ||
Manuel Thalmann | ea9a5408d2 | ||
Manuel Thalmann | f893911bc0 | ||
Manuel Thalmann | de9404f0a9 | ||
Manuel Thalmann | 055eb1d2cd | ||
Manuel Thalmann | 138c6ac33d | ||
Manuel Thalmann | 70a14ff012 | ||
Manuel Thalmann | 9308a24cae | ||
Manuel Thalmann | c7cec608cb | ||
Manuel Thalmann | 24426d42f5 | ||
Manuel Thalmann | e604edfd9c | ||
Manuel Thalmann | a2bb546935 | ||
Manuel Thalmann | 6796263a7f | ||
Manuel Thalmann | 4cfaf27888 | ||
Manuel Thalmann | 9c7307d293 | ||
Manuel Thalmann | fb29aa6efa | ||
Manuel Thalmann | dbaccc0648 | ||
Manuel Thalmann | 372ff26ded | ||
Manuel Thalmann | f567fbe4d3 | ||
Manuel Thalmann | 1bf8de27b4 | ||
Manuel Thalmann | ca2f3753c9 | ||
Manuel Thalmann | 01a62a705d | ||
Manuel Thalmann | 51f33c072f | ||
Manuel Thalmann | 1a887a51b2 | ||
Manuel Thalmann | b6bd865b6e | ||
Manuel Thalmann | 8812b00b2e | ||
Manuel Thalmann | 23d25111ea | ||
Manuel Thalmann | d87636175a | ||
Manuel Thalmann | 6525181781 | ||
Manuel Thalmann | 1eb6142d37 | ||
Manuel Thalmann | 8629ed08fa | ||
Manuel Thalmann | dfaac9ff98 | ||
Manuel Thalmann | 0da67dca87 | ||
Manuel Thalmann | 44a01ffef1 | ||
Manuel Thalmann | 1bbd8e53e6 | ||
Manuel Thalmann | 3a713ef1fe | ||
Manuel Thalmann | c7ab490e27 | ||
Manuel Thalmann | a2f91c2287 | ||
Manuel Thalmann | 3f1eeba9dc | ||
Manuel Thalmann | 0345ae5a72 | ||
Manuel Thalmann | 00eff57e5b | ||
Manuel Thalmann | a61c8c92b4 | ||
Manuel Thalmann | c2a8a5e8ef | ||
Manuel Thalmann | 9c36c70150 | ||
Manuel Thalmann | 2720bb4361 | ||
Manuel Thalmann | 72c595b0e0 | ||
Manuel Thalmann | ccf31fcd08 | ||
Manuel Thalmann | be1126444b | ||
Manuel Thalmann | c7f1b94654 | ||
Manuel Thalmann | 8ba7e2b210 | ||
Manuel Thalmann | 9cf18d32bc | ||
Manuel Thalmann | c29cff4c78 | ||
Manuel Thalmann | 73d427b305 | ||
Manuel Thalmann | 9dd831b084 | ||
Manuel Thalmann | fbb6b008ac | ||
Manuel Thalmann | ab490a401d | ||
Manuel Thalmann | 5d37181875 | ||
Manuel Thalmann | d910b7f66f | ||
Manuel Thalmann | 11e993f78a | ||
Manuel Thalmann | 63935d1ff3 | ||
Manuel Thalmann | 20508973c5 | ||
Manuel Thalmann | a5ab376624 | ||
Manuel Thalmann | 5d34ea69da | ||
Manuel Thalmann | f7ced22e9d | ||
Manuel Thalmann | 5e7d97c21f | ||
Manuel Thalmann | f082b219ec | ||
Manuel Thalmann | dd4925c16a | ||
Manuel Thalmann | 9e77d57b8c | ||
Manuel Thalmann | 1925a79c5b | ||
Manuel Thalmann | 3e36dc8876 | ||
Manuel Thalmann | dbb16df8e1 | ||
Manuel Thalmann | 871eafe5db | ||
Manuel Thalmann | 9c2ebaf858 | ||
Manuel Thalmann | 515a256bd4 | ||
Manuel Thalmann | 74fb20d6b1 | ||
Manuel Thalmann | 49a133e76a | ||
Manuel Thalmann | 0f048cbb9e | ||
Manuel Thalmann | 6aab5d5d64 | ||
Manuel Thalmann | 6bce599029 | ||
Manuel Thalmann | df363ce38c | ||
Manuel Thalmann | 3b662e76e0 | ||
Manuel Thalmann | 725f01a572 | ||
Manuel Thalmann | a89ef2b8a7 | ||
Manuel Thalmann | a43a4890f3 | ||
Manuel Thalmann | 9daaf4cee8 | ||
Manuel Thalmann | a42865a480 | ||
Manuel Thalmann | 93bad7fc73 | ||
Manuel Thalmann | b630f3da24 | ||
Manuel Thalmann | 9de3de5bb2 | ||
Manuel Thalmann | 89abeada06 | ||
Manuel Thalmann | adff725fbd | ||
Manuel Thalmann | e743af0944 | ||
Manuel Thalmann | ad01cd2470 | ||
Manuel Thalmann | b8582e6432 | ||
Manuel Thalmann | 1452871873 | ||
Manuel Thalmann | 4f52273757 | ||
Manuel Thalmann | 4a7b3ef411 | ||
Manuel Thalmann | 2b8a386f79 | ||
Manuel Thalmann | ff9a3eeedc | ||
Manuel Thalmann | 9aaefb2cf0 | ||
Manuel Thalmann | ca1d4be8fc | ||
Manuel Thalmann | e83e501fe5 | ||
Manuel Thalmann | 9c47271f95 | ||
Manuel Thalmann | 4eb61d8604 | ||
Manuel Thalmann | 29a52b02de | ||
Manuel Thalmann | 171dee2216 | ||
Manuel Thalmann | d758864fdc | ||
Manuel Thalmann | 026b236783 | ||
Manuel Thalmann | e4883badcc | ||
Manuel Thalmann | 14055fcca3 | ||
Manuel Thalmann | b1b06bb152 | ||
Manuel Thalmann | 17b8a79adf | ||
Manuel Thalmann | 3c0771e96b | ||
Manuel Thalmann | 3accbc7bfb | ||
Manuel Thalmann | e42341151d | ||
Manuel Thalmann | f93032a6e4 | ||
Manuel Thalmann | 1a5dbd7b2d | ||
Manuel Thalmann | 8562946aff | ||
Manuel Thalmann | 950e6dc761 | ||
Manuel Thalmann | c58cc3bbc5 | ||
Manuel Thalmann | 12ea3e0a51 | ||
Manuel Thalmann | 9acbee077c | ||
Manuel Thalmann | 93cdf65779 | ||
Manuel Thalmann | 135cd8e218 | ||
Manuel Thalmann | e55e6a5a5a | ||
Manuel Thalmann | de7ac289fb | ||
Manuel Thalmann | db0f62541e | ||
Manuel Thalmann | 3d85667773 | ||
Manuel Thalmann | 98d1ddb4d3 | ||
Manuel Thalmann | 9dbed50916 | ||
Manuel Thalmann | fbeeb6532e | ||
Manuel Thalmann | ef6c2b4a1b | ||
Manuel Thalmann | 2f63463912 | ||
Manuel Thalmann | a0ddf0c8aa | ||
Manuel Thalmann | 845072bff9 | ||
Manuel Thalmann | faee0ec687 | ||
Manuel Thalmann | f4babf06d6 | ||
Manuel Thalmann | 92a7b89523 | ||
Manuel Thalmann | 9e19daced2 | ||
Manuel Thalmann | 2ed68c6c30 | ||
Manuel Thalmann | b0cc36559c | ||
Manuel Thalmann | 6db73090bd | ||
Manuel Thalmann | cc84c185af | ||
Manuel Thalmann | f217f8bd49 | ||
Manuel Thalmann | 03e41982a4 | ||
Manuel Thalmann | 9dc4380a2c | ||
Manuel Thalmann | 084058c266 | ||
Manuel Thalmann | ee2a745308 | ||
Manuel Thalmann | 1a0ecce652 | ||
Manuel Thalmann | 951700b298 | ||
Manuel Thalmann | 4d31b476cb | ||
Manuel Thalmann | dd1bc94d75 | ||
Manuel Thalmann | 976fec72ad | ||
Manuel Thalmann | 99aae05304 | ||
Manuel Thalmann | 8916c3b544 | ||
Manuel Thalmann | 0297a7d8d5 | ||
Manuel Thalmann | c1ae5de780 | ||
Manuel Thalmann | d3c5810149 | ||
Manuel Thalmann | 99e9542053 | ||
Manuel Thalmann | 049f7771d2 | ||
Manuel Thalmann | 6111236dc0 | ||
Manuel Thalmann | de30c36dd5 | ||
Manuel Thalmann | 85c9436eec | ||
Manuel Thalmann | 20267c21ac | ||
Manuel Thalmann | 2584798683 | ||
Manuel Thalmann | 2abec73f45 | ||
Manuel Thalmann | c8c3b03773 | ||
Manuel Thalmann | 940e63376c | ||
Manuel Thalmann | b45f27adf6 | ||
Manuel Thalmann | b7ff8f8cac | ||
Manuel Thalmann | 92df913e97 | ||
Manuel Thalmann | a172b50077 | ||
Manuel Thalmann | 9a0ccd4064 | ||
Manuel Thalmann | 425b364df2 | ||
Manuel Thalmann | 97a2826f9a | ||
Manuel Thalmann | db7d4cd4fd | ||
Manuel Thalmann | 1d0523dd4e | ||
Manuel Thalmann | 6216f8ec9d | ||
Manuel Thalmann | e63c3251d8 | ||
Manuel Thalmann | d9a4ad03dd | ||
Manuel Thalmann | 5656d97f13 | ||
Manuel Thalmann | 21e0ff7c1a | ||
Manuel Thalmann | beecfde14b | ||
Manuel Thalmann | f8f9d82f01 | ||
Manuel Thalmann | 673d7f980c | ||
Manuel Thalmann | a7e56d8a5d | ||
Manuel Thalmann | eefeb87743 | ||
Manuel Thalmann | 99ccd9b481 | ||
Manuel Thalmann | 5da514091d | ||
Manuel Thalmann | e53fc96437 | ||
Manuel Thalmann | 01350c4305 | ||
Manuel Thalmann | d594f78cb2 | ||
Manuel Thalmann | dafb161cbe | ||
Manuel Thalmann | c004ffd3fa | ||
Manuel Thalmann | 687c47fc99 | ||
Manuel Thalmann | ddb25b43b5 | ||
Manuel Thalmann | 87cfe2b54e | ||
Manuel Thalmann | 734cd48f9b | ||
Manuel Thalmann | b9a7f4cffd | ||
Manuel Thalmann | f2dc82e2b7 | ||
Manuel Thalmann | 80e5c435a3 | ||
Manuel Thalmann | 5ceb3c205b | ||
Manuel Thalmann | a25783a44a | ||
Manuel Thalmann | c500883386 | ||
Manuel Thalmann | c15b72d5b1 | ||
Manuel Thalmann | 3598a10216 | ||
Manuel Thalmann | bb3a37c3ec | ||
Manuel Thalmann | 63aa399f91 | ||
Manuel Thalmann | f7aec5253e | ||
Manuel Thalmann | fb4f30018c | ||
Manuel Thalmann | 82a28e1323 | ||
Manuel Thalmann | 77afa05acd | ||
Manuel Thalmann | fbf3c049b1 | ||
Manuel Thalmann | ae8b9ac43f | ||
Manuel Thalmann | a1a6909a12 | ||
Manuel Thalmann | e10241c12c | ||
Manuel Thalmann | 89fa04aab6 | ||
Manuel Thalmann | 39608e51ea | ||
Manuel Thalmann | 68691e38e1 | ||
Manuel Thalmann | 57a44a42a7 | ||
Manuel Thalmann | 3694eca1c8 | ||
Manuel Thalmann | 7b38c7bc37 | ||
Manuel Thalmann | 1eeb391454 | ||
Manuel Thalmann | c9fc08dfd6 | ||
Manuel Thalmann | d96408a32e | ||
Manuel Thalmann | 00e5ecba1f | ||
Manuel Thalmann | d34e074d57 | ||
Manuel Thalmann | 3d9db2c5c3 | ||
Manuel Thalmann | 3876ca99e0 | ||
Manuel Thalmann | 6900cf65e2 | ||
Manuel Thalmann | 25e0a560ba | ||
Manuel Thalmann | df7798fb26 | ||
Manuel Thalmann | 49c83dd364 | ||
Manuel Thalmann | 4e4d273cc7 | ||
Manuel Thalmann | f4f568dafe | ||
Manuel Thalmann | e9751cafa9 | ||
Manuel Thalmann | 2fd4d5a726 | ||
Manuel Thalmann | e7f6540815 | ||
Manuel Thalmann | 1f4e7a7720 | ||
Manuel Thalmann | b11dc31403 | ||
Manuel Thalmann | 9f71d9f644 | ||
Manuel Thalmann | 58c8b7b542 | ||
Manuel Thalmann | 13b430bf79 | ||
Manuel Thalmann | fd000aa78b | ||
Manuel Thalmann | 3fecc04ed0 | ||
Manuel Thalmann | 6a25230444 | ||
Manuel Thalmann | 7d13434496 | ||
Manuel Thalmann | e05cf27941 | ||
Manuel Thalmann | f6d81c14b5 | ||
Manuel Thalmann | 6cf83d1a70 | ||
Manuel Thalmann | 129b79d33c | ||
Manuel Thalmann | 06297fd9eb | ||
Manuel Thalmann | e722160669 | ||
Manuel Thalmann | 8b0471d049 | ||
Manuel Thalmann | b25b760f7d | ||
Manuel Thalmann | 7f0e9df340 | ||
Manuel Thalmann | cc2cbcaecb | ||
Manuel Thalmann | 05820920a0 | ||
Manuel Thalmann | c3f79fe92b | ||
Manuel Thalmann | 329458caa7 | ||
Manuel Thalmann | e7c6c8106c | ||
Manuel Thalmann | 775e88ad82 | ||
Manuel Thalmann | ea94c6fa10 | ||
Manuel Thalmann | edd9168b10 | ||
Manuel Thalmann | 1fcf4ef21e | ||
Manuel Thalmann | 9b59ae9c5a | ||
Manuel Thalmann | 379970e3f6 | ||
Manuel Thalmann | 7ae59c021a | ||
Manuel Thalmann | 066b9b8b7e | ||
Manuel Thalmann | c1ac5d2669 | ||
Manuel Thalmann | e8b7977d2a | ||
Manuel Thalmann | fa67e12fa3 | ||
Manuel Thalmann | 4807c6f8e8 | ||
Manuel Thalmann | 15acc53389 | ||
Manuel Thalmann | f8fe78936c | ||
Manuel Thalmann | c952b1701d | ||
Manuel Thalmann | 1a4e294750 | ||
Manuel Thalmann | 3602cbbf83 | ||
Manuel Thalmann | 600ad30a55 | ||
Manuel Thalmann | 33297747b8 | ||
Manuel Thalmann | bd6964a37b | ||
Manuel Thalmann | bdf5254f66 | ||
Manuel Thalmann | d48d4a08df | ||
Manuel Thalmann | 9921890e4d | ||
Manuel Thalmann | b97ccd863c | ||
Manuel Thalmann | 0adace7d6e | ||
Manuel Thalmann | 6793736c3a | ||
Manuel Thalmann | e67122b20b | ||
Manuel Thalmann | 54b8d227ff | ||
Manuel Thalmann | 2ead5ea7ad | ||
Manuel Thalmann | 7fcb36dd1c | ||
Manuel Thalmann | f0f43a30bd | ||
Manuel Thalmann | 76cb8e5125 | ||
Manuel Thalmann | a4b88c183d | ||
Manuel Thalmann | d6919a2c98 | ||
Manuel Thalmann | 5de8554b13 | ||
Manuel Thalmann | ed3455ffb1 | ||
Manuel Thalmann | 3f6700b98e | ||
Manuel Thalmann | add008c791 | ||
Manuel Thalmann | c0b215bcce | ||
Manuel Thalmann | 73dbb502ba | ||
Manuel Thalmann | 3f24abdb89 | ||
Manuel Thalmann | 08a8ef4b96 | ||
Manuel Thalmann | 3be5bd7535 | ||
Manuel Thalmann | 9a2a78fb76 | ||
Manuel Thalmann | 87ef1167fe | ||
Manuel Thalmann | aa958b2656 | ||
Manuel Thalmann | 01ae7ce2d0 | ||
Manuel Thalmann | 069c8a3330 | ||
Manuel Thalmann | 882aac5c30 | ||
Manuel Thalmann | 0da7130de1 | ||
Manuel Thalmann | 87c5c5d140 | ||
Manuel Thalmann | a2b8c2b395 | ||
Manuel Thalmann | 4c9aca739d | ||
Manuel Thalmann | 40fefb9f36 | ||
Manuel Thalmann | a7595096ba | ||
Manuel Thalmann | 4101a6105f | ||
Manuel Thalmann | f6671515dd | ||
Manuel Thalmann | 4326044af9 | ||
Manuel Thalmann | 69ac0b990c | ||
Manuel Thalmann | 4daf222ec3 | ||
Manuel Thalmann | 1a0b63a181 | ||
Manuel Thalmann | b5e798564b | ||
Manuel Thalmann | 566a3f025b | ||
Manuel Thalmann | 18b4405441 | ||
Manuel Thalmann | a790f16c7f | ||
Manuel Thalmann | 0b21d0af7c | ||
Manuel Thalmann | 07ba5dfeb6 | ||
Manuel Thalmann | 58e97cb051 | ||
Manuel Thalmann | 712980ed67 | ||
Manuel Thalmann | b7a6131732 | ||
Manuel Thalmann | 60931884a0 | ||
Manuel Thalmann | dc0f8e08f1 | ||
Manuel Thalmann | 6fef809d62 | ||
Manuel Thalmann | c8a3969f02 | ||
Manuel Thalmann | 0b6dc6415a | ||
Manuel Thalmann | 6147037a97 | ||
Manuel Thalmann | dae62d599a | ||
Manuel Thalmann | 4865c35a92 | ||
Manuel Thalmann | 5b6db497e4 | ||
Manuel Thalmann | 25fc71c379 | ||
Manuel Thalmann | 198679d8d5 | ||
Manuel Thalmann | fd259f11cb | ||
Manuel Thalmann | e47c516928 | ||
Manuel Thalmann | 3a937d84ed | ||
Manuel Thalmann | 5653cea25a | ||
Manuel Thalmann | 61865cd615 | ||
Manuel Thalmann | 96e1bde7a0 | ||
Manuel Thalmann | 4418e99219 | ||
Manuel Thalmann | 2d90b90114 | ||
Manuel Thalmann | 02e4c18f6c | ||
Manuel Thalmann | 0fba56a299 | ||
Manuel Thalmann | f267b9d023 | ||
Manuel Thalmann | 2354dcf412 | ||
Manuel Thalmann | 913daa8b6d | ||
Manuel Thalmann | 42263d82dd | ||
Manuel Thalmann | 9ebbca3b3c | ||
Manuel Thalmann | a72fd9d045 | ||
Manuel Thalmann | 62a9c1e577 | ||
Manuel Thalmann | 1e3d8d8338 | ||
Manuel Thalmann | 7c10903947 | ||
Manuel Thalmann | 6274ec1012 | ||
Manuel Thalmann | 566f0d711f | ||
Manuel Thalmann | dfdc053acf | ||
Manuel Thalmann | f56c6ec7a6 | ||
Manuel Thalmann | 4143dbff02 | ||
Manuel Thalmann | 0579819444 | ||
Manuel Thalmann | bf50ee7d59 | ||
Manuel Thalmann | df3ba81e12 | ||
Manuel Thalmann | 68703e2353 | ||
Manuel Thalmann | 75f1839275 | ||
Manuel Thalmann | e8a752eb4c | ||
Manuel Thalmann | ffa8c19358 | ||
Manuel Thalmann | c073db286f | ||
Manuel Thalmann | d79edb4127 | ||
Manuel Thalmann | 34523d0ae3 | ||
Manuel Thalmann | a2848a3965 | ||
Manuel Thalmann | 501aa51876 | ||
Manuel Thalmann | 074784fec2 | ||
Manuel Thalmann | 527aa8c43b | ||
Manuel Thalmann | 6bd2844efb | ||
Manuel Thalmann | af53a09b17 | ||
Manuel Thalmann | d90db841e8 | ||
Manuel Thalmann | 069d72d081 | ||
Manuel Thalmann | d6839aa6c4 | ||
Manuel Thalmann | 34d55d376d | ||
Manuel Thalmann | 67f28b5b79 | ||
Manuel Thalmann | 3567eee45f | ||
Manuel Thalmann | 9d50d587c8 | ||
Manuel Thalmann | 902fc64993 | ||
Manuel Thalmann | 61258ef835 | ||
Manuel Thalmann | 05f96a97d3 | ||
Manuel Thalmann | 2a6f3ea5f8 | ||
Manuel Thalmann | 303082fcc4 | ||
Manuel Thalmann | 4b37950bc8 | ||
Manuel Thalmann | 4d0c64a8da | ||
Manuel Thalmann | 35e77dd7e6 | ||
Manuel Thalmann | d26786c576 | ||
Manuel Thalmann | 60af9361c8 | ||
Manuel Thalmann | e2e5b9a02d | ||
Manuel Thalmann | 7461c19802 | ||
Manuel Thalmann | 1aaebb4743 | ||
Manuel Thalmann | 18dc5894a8 | ||
Manuel Thalmann | 2a997ab16e | ||
Manuel Thalmann | a4099a6639 | ||
Manuel Thalmann | 8cd8ccf4b5 | ||
Manuel Thalmann | a2cf20b9ff | ||
Manuel Thalmann | 49502a7055 | ||
Manuel Thalmann | 8199394711 | ||
Manuel Thalmann | a3fea2f5cc | ||
Manuel Thalmann | 2674c93f68 | ||
Manuel Thalmann | 5aa296ca7c | ||
Manuel Thalmann | 2846db7056 | ||
Manuel Thalmann | 3981a49810 | ||
Manuel Thalmann | 122fe67a85 | ||
Manuel Thalmann | f570c554f5 | ||
Manuel Thalmann | e0d41f96cf | ||
Manuel Thalmann | cd5f68d0ef | ||
Manuel Thalmann | f4f74a6aaa | ||
Manuel Thalmann | d6f7816840 | ||
Manuel Thalmann | 33d6077b9c | ||
Manuel Thalmann | 6f3ed5b63a | ||
Manuel Thalmann | 19f06da930 | ||
Manuel Thalmann | 802e8c6ff5 | ||
Manuel Thalmann | 01e19d03e4 | ||
Manuel Thalmann | ecb925a6fd | ||
Manuel Thalmann | 864a920ba7 | ||
Manuel Thalmann | 0d909f5a5a | ||
Manuel Thalmann | a27d43bc7a | ||
Manuel Thalmann | 447d09fa7e | ||
Manuel Thalmann | 7eccacc078 | ||
Manuel Thalmann | ebb96129f0 | ||
Manuel Thalmann | 24b9c7a0a9 | ||
Manuel Thalmann | 75c29a7b86 | ||
Manuel Thalmann | 2427b82411 | ||
Manuel Thalmann | 8822cee673 | ||
Manuel Thalmann | e1c01175df | ||
Manuel Thalmann | c8e133fedc | ||
Manuel Thalmann | 0ff3a74378 | ||
Manuel Thalmann | 95daef9ac9 | ||
Manuel Thalmann | dc2f8ef3c3 | ||
Manuel Thalmann | a3d2bed4cf | ||
Manuel Thalmann | 474ac2d94b | ||
Manuel Thalmann | 8979ad11e4 | ||
Manuel Thalmann | 26c219a520 | ||
Manuel Thalmann | b9081b9af4 | ||
Manuel Thalmann | b75bcb3e1a | ||
Manuel Thalmann | e6beab8438 | ||
Manuel Thalmann | d3ea49dba5 | ||
Manuel Thalmann | f993f4da5e | ||
Manuel Thalmann | 4b63af36ca | ||
Manuel Thalmann | 2edd854b44 | ||
Manuel Thalmann | 77abdd244c | ||
Manuel Thalmann | 3a84881981 | ||
Manuel Thalmann | 36030e6eed |
2
.gitattributes
vendored
Normal file
2
.gitattributes
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
*.fish text eol=lf
|
||||
*.sh text eol=lf
|
|
@ -10,6 +10,10 @@
|
|||
{
|
||||
"name": "archiso-valhalla",
|
||||
"path": "./archiso"
|
||||
},
|
||||
{
|
||||
"name": "winiso-valhalla",
|
||||
"path": "./winiso"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ automated_script() {
|
|||
sleep 1
|
||||
done
|
||||
printf '%s: downloading %s\n' "$0" "${script}"
|
||||
curl "${script}" --location --retry-connrefused --retry 10 -s -o /tmp/startup_script
|
||||
curl "${script}" --location --retry-connrefused --retry 10 --fail -s -o /tmp/startup_script
|
||||
rt=$?
|
||||
else
|
||||
cp "${script}" /tmp/startup_script
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
extra-experimental-features = nix-command flakes
|
|
@ -14,6 +14,7 @@ pushd "PortValhalla" > /dev/null
|
|||
|
||||
git diff -p -R --no-ext-diff --no-color --diff-filter=M \
|
||||
| grep -E "^(diff|(old|new) mode)" --color=never \
|
||||
| sed "/^diff/{ x; d; }; x; /./{ p; z; }; x;" \
|
||||
| git apply
|
||||
|
||||
popd > /dev/null
|
||||
|
|
|
@ -17,8 +17,8 @@ begin
|
|||
git -C "$projectDir" ls-files
|
||||
git -C "$projectDir" ls-files --exclude-standard --others
|
||||
end | \
|
||||
rsync -r --include-from=/dev/stdin --exclude={.gitignore,README.md,scripts,LICENSE,valhalla.patch} "$dir/.." "$contextRoot"
|
||||
end 2>&1 > /dev/null;
|
||||
rsync --files-from=/dev/stdin --exclude={.gitignore,README.md,scripts,LICENSE,valhalla.patch} "$dir/.." "$contextRoot"
|
||||
end &> /dev/null;
|
||||
|
||||
and git -C "$contextRoot" diff
|
||||
end
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
diff --git a/airootfs/root/.zlogin b/airootfs/root/.zlogin
|
||||
index bf6bc8f..76e5893 100755
|
||||
index bf6bc8f..a0dae7b 100755
|
||||
--- a/airootfs/root/.zlogin
|
||||
+++ b/airootfs/root/.zlogin
|
||||
@@ -4,3 +4,18 @@ if grep -Fqa 'accessibility=' /proc/cmdline &> /dev/null; then
|
||||
@@ -4,3 +4,19 @@ if grep -Fqa 'accessibility=' /proc/cmdline &> /dev/null; then
|
||||
fi
|
||||
|
||||
~/.automated_script.sh
|
||||
|
@ -16,13 +16,14 @@ index bf6bc8f..76e5893 100755
|
|||
+
|
||||
+git diff -p -R --no-ext-diff --no-color --diff-filter=M \
|
||||
+ | grep -E "^(diff|(old|new) mode)" --color=never \
|
||||
+ | sed "/^diff/{ x; d; }; x; /./{ p; z; }; x;" \
|
||||
+ | git apply
|
||||
+
|
||||
+popd > /dev/null
|
||||
+
|
||||
+loadkeys de_CH-latin1
|
||||
diff --git a/packages.x86_64 b/packages.x86_64
|
||||
index 9e876e7..b89ab30 100755
|
||||
index 9e876e7..c5db92a 100755
|
||||
--- a/packages.x86_64
|
||||
+++ b/packages.x86_64
|
||||
@@ -30,8 +30,10 @@ ethtool
|
||||
|
@ -36,7 +37,15 @@ index 9e876e7..b89ab30 100755
|
|||
gnu-netcat
|
||||
gpart
|
||||
gpm
|
||||
@@ -75,6 +77,7 @@ nbd
|
||||
@@ -45,6 +47,7 @@ irssi
|
||||
iw
|
||||
iwd
|
||||
jfsutils
|
||||
+jq
|
||||
kitty-terminfo
|
||||
ldns
|
||||
less
|
||||
@@ -75,6 +78,7 @@ nbd
|
||||
ndisc6
|
||||
nfs-utils
|
||||
nilfs-utils
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
flake-utils.url = "github:numtide/flake-utils?ref=b1d9ab70662946ef0850d488da1c9019f3a9752a";
|
||||
};
|
||||
|
||||
outputs = { self, flake-utils, nixpkgs }: flake-utils.lib.eachDefaultSystem (
|
||||
outputs = { self, flake-utils, nixpkgs }: (flake-utils.lib.eachDefaultSystem (
|
||||
system:
|
||||
let
|
||||
pkgs = import nixpkgs {
|
||||
|
@ -32,5 +32,10 @@
|
|||
packages = {
|
||||
archiso = pkgs.archiso;
|
||||
};
|
||||
});
|
||||
})) // {
|
||||
valhalla = {
|
||||
DerGeret = import ./profiles/machines/manuel/DerGeret/Arch/config.nix;
|
||||
ManuSurface = import ./profiles/machines/manuel/ManuSurface/Arch/config.nix;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
15
lib/eval-attribute.nix
Normal file
15
lib/eval-attribute.nix
Normal file
|
@ -0,0 +1,15 @@
|
|||
let
|
||||
inherit (nixpkgs) lib;
|
||||
nixpkgs = import <nixpkgs> { config = {}; overlay = []; };
|
||||
property = (builtins.getEnv "PROPERTY");
|
||||
processor = if (builtins.stringLength property > 0)
|
||||
then
|
||||
(_: lib.attrsets.getAttrFromPath (lib.strings.splitString "." property) _)
|
||||
else
|
||||
(_: _);
|
||||
in
|
||||
_: processor (lib.evalModules {
|
||||
modules = [
|
||||
_
|
||||
];
|
||||
}).config
|
16
lib/eval-module.nix
Normal file
16
lib/eval-module.nix
Normal file
|
@ -0,0 +1,16 @@
|
|||
let
|
||||
inherit (nixpkgs) lib;
|
||||
nixpkgs = import <nixpkgs> { config = {}; overlay = []; };
|
||||
file = (builtins.getEnv "FILE");
|
||||
property = (builtins.getEnv "PROPERTY");
|
||||
processor = if (builtins.stringLength property > 0)
|
||||
then
|
||||
(_: lib.attrsets.getAttrFromPath (lib.strings.splitString "." property) _)
|
||||
else
|
||||
(_: _);
|
||||
in
|
||||
processor (lib.evalModules {
|
||||
modules = [
|
||||
(import file)
|
||||
];
|
||||
}).config
|
55
lib/modules/hardware.nix
Normal file
55
lib/modules/hardware.nix
Normal file
|
@ -0,0 +1,55 @@
|
|||
{ lib, ... }:
|
||||
let
|
||||
inherit (lib)
|
||||
mkOption
|
||||
types
|
||||
;
|
||||
in {
|
||||
options = {
|
||||
valhalla = {
|
||||
hardware = {
|
||||
components = mkOption {
|
||||
type = types.listOf types.str;
|
||||
description = "The names of the hardware components of the computer.";
|
||||
default = [];
|
||||
};
|
||||
|
||||
eyeX = mkOption {
|
||||
type = types.bool;
|
||||
description = "A value indicating whether a Tobii EyeX device is present.";
|
||||
default = false;
|
||||
};
|
||||
|
||||
amdCPU = mkOption {
|
||||
type = types.bool;
|
||||
description = "A value indicating whether an AMD CPU is present.";
|
||||
default = false;
|
||||
};
|
||||
|
||||
nvidiaGPU = mkOption {
|
||||
type = types.bool;
|
||||
description = "A value indicating whether an NVIDIA GPU is present.";
|
||||
default = false;
|
||||
};
|
||||
|
||||
corsairDevice = mkOption {
|
||||
type = types.bool;
|
||||
description = "A value indicating whether a Corsair device is present.";
|
||||
default = false;
|
||||
};
|
||||
|
||||
elgatoWave = mkOption {
|
||||
type = types.bool;
|
||||
description = "A value indicating whether an Elgato Wave device is present.";
|
||||
default = false;
|
||||
};
|
||||
|
||||
logitechG = mkOption {
|
||||
type = types.bool;
|
||||
description = "A value indicating whether a Logitech G device is present.";
|
||||
default = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
52
lib/modules/os.nix
Normal file
52
lib/modules/os.nix
Normal file
|
@ -0,0 +1,52 @@
|
|||
{ lib, ... }:
|
||||
let
|
||||
inherit (lib)
|
||||
mkOption
|
||||
types
|
||||
;
|
||||
in {
|
||||
options = {
|
||||
valhalla = mkOption {
|
||||
type = types.submodule (
|
||||
{ extendModules, ... }:
|
||||
let
|
||||
osVariant = extendModules {
|
||||
modules = [
|
||||
({ config, ... }: {
|
||||
options = {
|
||||
config = mkOption {
|
||||
type = types.attrs;
|
||||
description = "The configuration of the Operating System.";
|
||||
default = builtins.removeAttrs config ["_module" "config" "linux" "windows"];
|
||||
visible = false;
|
||||
};
|
||||
};
|
||||
})
|
||||
];
|
||||
};
|
||||
|
||||
linuxVariant = osVariant.extendModules { };
|
||||
windowsVariant = osVariant.extendModules { };
|
||||
in {
|
||||
options = {
|
||||
linux = mkOption {
|
||||
inherit (linuxVariant) type;
|
||||
description = "The options for setting up Linux.";
|
||||
default = {};
|
||||
visible = "shallow";
|
||||
};
|
||||
|
||||
windows = mkOption {
|
||||
inherit (windowsVariant) type;
|
||||
description = "The options for setting up Windows.";
|
||||
default = {};
|
||||
visible = "shallow";
|
||||
};
|
||||
};
|
||||
});
|
||||
|
||||
description = "Configuration for PortValhalla.";
|
||||
default = {};
|
||||
};
|
||||
};
|
||||
}
|
59
lib/modules/packages/git.nix
Normal file
59
lib/modules/packages/git.nix
Normal file
|
@ -0,0 +1,59 @@
|
|||
{ lib, ... }:
|
||||
let
|
||||
inherit (lib)
|
||||
mkOption
|
||||
types
|
||||
;
|
||||
|
||||
gitType = types.submodule (
|
||||
{ ... }: {
|
||||
options = {
|
||||
defaultBranch = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
description = "The name of the default branch in newly created repositories.";
|
||||
default = null;
|
||||
};
|
||||
|
||||
flow = {
|
||||
mainBranch = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
description = "The name of the stable branch in git flow.";
|
||||
default = null;
|
||||
};
|
||||
|
||||
devBranch = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
description = "The name of the development branch in git flow.";
|
||||
default = null;
|
||||
};
|
||||
};
|
||||
|
||||
aliases = mkOption {
|
||||
type = types.attrsOf types.str;
|
||||
description = "The git command aliases to install.";
|
||||
default = {};
|
||||
};
|
||||
};
|
||||
});
|
||||
|
||||
gitOption = mkOption {
|
||||
type = gitType;
|
||||
description = "The git related options.";
|
||||
default = {};
|
||||
};
|
||||
in {
|
||||
options = {
|
||||
valhalla = {
|
||||
git = gitOption;
|
||||
|
||||
users = mkOption {
|
||||
type = types.attrsOf (types.submodule (
|
||||
{ ... }: {
|
||||
options = {
|
||||
git = gitOption;
|
||||
};
|
||||
}));
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
44
lib/modules/packages/nextcloud.nix
Normal file
44
lib/modules/packages/nextcloud.nix
Normal file
|
@ -0,0 +1,44 @@
|
|||
{ lib, ... }:
|
||||
let
|
||||
inherit (lib)
|
||||
mkEnableOption
|
||||
mkOption
|
||||
types
|
||||
;
|
||||
|
||||
syncType = types.submodule (
|
||||
{ ... }: {
|
||||
options = {
|
||||
remotePath = mkOption {
|
||||
type = types.str;
|
||||
description = "The path to the folder on the cloud to sync.";
|
||||
};
|
||||
|
||||
localPath = mkOption {
|
||||
type = types.str;
|
||||
description = "The path to sync the cloud content to.";
|
||||
};
|
||||
|
||||
virtualFiles = (mkEnableOption "virtual file support") // {
|
||||
default = true;
|
||||
};
|
||||
};
|
||||
});
|
||||
in {
|
||||
options = {
|
||||
valhalla.windows.users = mkOption {
|
||||
type = types.attrsOf (types.submodule (
|
||||
{ ... }: {
|
||||
options = {
|
||||
nextcloud = {
|
||||
folderSyncs = mkOption {
|
||||
type = types.listOf syncType;
|
||||
description = "The folders to synchronize.";
|
||||
default = [];
|
||||
};
|
||||
};
|
||||
};
|
||||
}));
|
||||
};
|
||||
};
|
||||
}
|
55
lib/modules/packages/oh-my-posh.nix
Normal file
55
lib/modules/packages/oh-my-posh.nix
Normal file
|
@ -0,0 +1,55 @@
|
|||
{ lib, ... }:
|
||||
let
|
||||
inherit (lib)
|
||||
mkOption
|
||||
types
|
||||
;
|
||||
|
||||
themeType = types.submodule (
|
||||
{ config, ... }: {
|
||||
options = {
|
||||
source = mkOption {
|
||||
type = types.path;
|
||||
description = "The path to the oh-my-posh theme to use.";
|
||||
};
|
||||
|
||||
name = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
description = "The name of the theme.";
|
||||
default = lib.strings.removeSuffix ".omp" (lib.strings.removeSuffix ".json" (builtins.baseNameOf config.source));
|
||||
};
|
||||
};
|
||||
});
|
||||
|
||||
ompType = types.submodule (
|
||||
{ config, ... }: {
|
||||
options = {
|
||||
theme = mkOption {
|
||||
type = types.nullOr (types.either types.str themeType);
|
||||
description = "The default theme.";
|
||||
default = null;
|
||||
};
|
||||
|
||||
additionalThemes = mkOption {
|
||||
type = types.listOf themeType;
|
||||
description = "A set of additional themes to install.";
|
||||
default = [];
|
||||
};
|
||||
};
|
||||
});
|
||||
in {
|
||||
options = {
|
||||
valhalla.users = mkOption {
|
||||
type = types.attrsOf (types.submodule (
|
||||
{ ... }: {
|
||||
options = {
|
||||
oh-my-posh = mkOption {
|
||||
type = ompType;
|
||||
description = "The Oh My Posh configuration to apply.";
|
||||
default = {};
|
||||
};
|
||||
};
|
||||
}));
|
||||
};
|
||||
};
|
||||
}
|
40
lib/modules/packages/rclone.nix
Normal file
40
lib/modules/packages/rclone.nix
Normal file
|
@ -0,0 +1,40 @@
|
|||
{ lib, ... }:
|
||||
let
|
||||
inherit (lib)
|
||||
mkOption
|
||||
types
|
||||
;
|
||||
|
||||
syncType = types.submodule (
|
||||
{ ... }: {
|
||||
options = {
|
||||
dirName = mkOption {
|
||||
type = types.str;
|
||||
description = "The name of the directory to sync the remote files to.";
|
||||
};
|
||||
|
||||
cacheDuration = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
description = "The amount of time to keep cached files.";
|
||||
default = null;
|
||||
};
|
||||
};
|
||||
});
|
||||
in {
|
||||
options = {
|
||||
valhalla.linux.users = mkOption {
|
||||
type = types.attrsOf (types.submodule (
|
||||
{ ... }: {
|
||||
options = {
|
||||
rclone = {
|
||||
configurations = mkOption {
|
||||
type = types.attrsOf syncType;
|
||||
description = "The configurations of the rclone mounts.";
|
||||
default = {};
|
||||
};
|
||||
};
|
||||
};
|
||||
}));
|
||||
};
|
||||
};
|
||||
}
|
|
@ -8,6 +8,7 @@
|
|||
fs = import ./fs.nix;
|
||||
|
||||
diskListVarName = "myDisks";
|
||||
probeScript = "partprobe 2> /dev/null || true";
|
||||
isSwap = partition: builtins.elem partition.type [fs.swap 19];
|
||||
|
||||
mkDiskType = osDisk: types.submodule (
|
||||
|
@ -136,18 +137,12 @@
|
|||
|
||||
create = lib.strings.concatLines [
|
||||
(appendScript "${toString index}: \"$(${sizeOption})\" type=${mkType type}")
|
||||
# Wait for partition to be detected
|
||||
''
|
||||
while true;
|
||||
do
|
||||
[ -b ${partVar} ] && break;
|
||||
done;
|
||||
''
|
||||
probeScript
|
||||
"sudo ${formatScripts.${format}}"
|
||||
];
|
||||
|
||||
fallback = ''
|
||||
if ! { ls "${diskVar}"?(p)${toString index} 2>&1; } > /dev/null
|
||||
if ! { ls "${partVar}" 2>&1; } > /dev/null
|
||||
then
|
||||
${create}
|
||||
fi
|
||||
|
@ -326,14 +321,20 @@
|
|||
partitions = (builtins.concatMap (_: (builtins.attrValues _.partitions)) disks);
|
||||
|
||||
mountScript = lib.strings.concatLines (
|
||||
builtins.map
|
||||
(_: builtins.concatStringsSep " " [
|
||||
"sudo"
|
||||
"mount"
|
||||
"--mkdir"
|
||||
(builtins.concatStringsSep " " (builtins.map (_: "-o ${_}") _.mountOptions))
|
||||
(partPath _)
|
||||
(normalizePath "/${rootDir}/${_.mountPoint}")
|
||||
builtins.concatMap
|
||||
(_: [
|
||||
probeScript
|
||||
(builtins.concatStringsSep " " ([
|
||||
"sudo"
|
||||
"mount"
|
||||
"--mkdir"
|
||||
] ++ (lib.optionals (_.format == "ntfs") [
|
||||
"-t" "ntfs3"
|
||||
]) ++ [
|
||||
(builtins.concatStringsSep " " (builtins.map (_: "-o ${_}") _.mountOptions))
|
||||
(partPath _)
|
||||
(normalizePath "/${rootDir}/${_.mountPoint}")
|
||||
]))
|
||||
])
|
||||
(lib.lists.sortOn
|
||||
(_: normalizePath "/${_.mountPoint}")
|
||||
|
@ -341,13 +342,20 @@
|
|||
|
||||
swapScript = lib.strings.concatLines (
|
||||
builtins.map
|
||||
(_: "sudo swapon ${partPath _}")
|
||||
(_: ''
|
||||
${probeScript}
|
||||
sudo swapon ${partPath _}
|
||||
'')
|
||||
(builtins.filter (_: _.useSwap) partitions));
|
||||
in lib.strings.concatLines (
|
||||
(builtins.map (_: _.deviceScript) disks) ++ lib.optionals ((builtins.length disks) > 0) [
|
||||
in lib.strings.concatLines ([
|
||||
"#!/bin/bash"
|
||||
"set -o errexit"
|
||||
] ++
|
||||
(builtins.map (_: _.deviceScript) disks) ++
|
||||
lib.optionals ((builtins.length disks) > 0) [
|
||||
". ${./../../../scripts/Common/Scripts/is-truthy.sh}"
|
||||
''echo "$(tput setaf 3)==== WARNING ====$(tput sgr0)"''
|
||||
(''echo "Continuing this script will wipe the contents of '' + (
|
||||
(''echo "Continuing this script will alter the partitions of '' + (
|
||||
lib.strings.concatStringsSep ", " (builtins.map (_: "${_.deviceVariable}") (lib.lists.init disks))
|
||||
) + (if (builtins.length disks) > 1 then " and " else "") + (lib.lists.last disks).deviceVariable + ''"'')
|
||||
''read -p "Are you sure you want to continue? [y/n] " answer''
|
||||
|
|
96
lib/modules/software.nix
Normal file
96
lib/modules/software.nix
Normal file
|
@ -0,0 +1,96 @@
|
|||
{ lib, config, ... }:
|
||||
let
|
||||
inherit (lib)
|
||||
mkOption
|
||||
types
|
||||
;
|
||||
|
||||
cfg = config.valhalla;
|
||||
in {
|
||||
options = {
|
||||
valhalla = {
|
||||
software =
|
||||
let
|
||||
inherit (cfg.software)
|
||||
coding
|
||||
common
|
||||
desktopExperience
|
||||
school
|
||||
server
|
||||
;
|
||||
in {
|
||||
essential = mkOption {
|
||||
type = types.bool;
|
||||
description = "A value indicating whether essentials should be installed.";
|
||||
default = true;
|
||||
};
|
||||
|
||||
common = mkOption {
|
||||
type = types.bool;
|
||||
description = "A value indicating whether common software should be installed.";
|
||||
default = true;
|
||||
};
|
||||
|
||||
server = mkOption {
|
||||
type = types.bool;
|
||||
description = "A value indicating whether server applications should be installed.";
|
||||
default = false;
|
||||
};
|
||||
|
||||
desktopExperience = mkOption {
|
||||
type = types.bool;
|
||||
description = "A value indicating whether GUI apps should be installed.";
|
||||
default = common && !server;
|
||||
};
|
||||
|
||||
fileSync = mkOption {
|
||||
type = types.bool;
|
||||
description = "A value indicating whether file syncs should be installed.";
|
||||
default = common && !server;
|
||||
};
|
||||
|
||||
school = mkOption {
|
||||
type = types.bool;
|
||||
description = "A value indicating whether software for studies should be installed.";
|
||||
default = false;
|
||||
};
|
||||
|
||||
productivity = mkOption {
|
||||
type = types.bool;
|
||||
description = "A value indicating whether productivity apps should be installed.";
|
||||
default = common || school;
|
||||
};
|
||||
|
||||
socialMedia = mkOption {
|
||||
type = types.bool;
|
||||
description = "A value indicating whether social media apps should be installed.";
|
||||
default = common && desktopExperience;
|
||||
};
|
||||
|
||||
media = mkOption {
|
||||
type = types.bool;
|
||||
description = "A value indicating whether media apps should be installed.";
|
||||
default = common && desktopExperience;
|
||||
};
|
||||
|
||||
gaming = mkOption {
|
||||
type = types.bool;
|
||||
description = "A value indicating whether gaming apps should be installed.";
|
||||
default = common && desktopExperience;
|
||||
};
|
||||
|
||||
coding = mkOption {
|
||||
type = types.bool;
|
||||
description = "A value indicating whether development apps should be installed.";
|
||||
default = common;
|
||||
};
|
||||
|
||||
python = mkOption {
|
||||
type = types.bool;
|
||||
description = "A value indicating whether apps for coding python should be installed.";
|
||||
default = coding;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
91
lib/modules/users.nix
Normal file
91
lib/modules/users.nix
Normal file
|
@ -0,0 +1,91 @@
|
|||
{ lib, ... }:
|
||||
let
|
||||
inherit (lib)
|
||||
mkOption
|
||||
types
|
||||
;
|
||||
|
||||
capitalize = (import ../text.nix { inherit lib; }).capitalize;
|
||||
|
||||
userType = types.submodule (
|
||||
{ ... } : {
|
||||
options = {
|
||||
displayName = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
description = "The human-readable name of the user.";
|
||||
default = null;
|
||||
};
|
||||
|
||||
mailAddress = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
description = "The mail address of the user.";
|
||||
default = null;
|
||||
};
|
||||
|
||||
groups = mkOption {
|
||||
type = types.listOf types.str;
|
||||
description = "The additional groups of the user.";
|
||||
default = [];
|
||||
};
|
||||
};
|
||||
});
|
||||
|
||||
linuxUserType = types.submodule (
|
||||
{ ... }: {
|
||||
options = {
|
||||
defaultShell = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
description = "The default shell of the user.";
|
||||
default = null;
|
||||
};
|
||||
};
|
||||
});
|
||||
|
||||
winUserType = types.submodule (
|
||||
{ ... }: {
|
||||
options = {
|
||||
microsoftAccount = mkOption {
|
||||
type = types.bool;
|
||||
description = "A value indicating whether this user is a Microsoft Account.";
|
||||
default = false;
|
||||
};
|
||||
};
|
||||
});
|
||||
in {
|
||||
options = {
|
||||
valhalla = {
|
||||
users = mkOption {
|
||||
type = types.attrsOf userType;
|
||||
description = "The users to create on the machine.";
|
||||
default = {};
|
||||
};
|
||||
|
||||
linux.users = mkOption {
|
||||
type = types.attrsOf linuxUserType;
|
||||
};
|
||||
|
||||
windows = mkOption {
|
||||
type = types.submoduleWith {
|
||||
modules = [
|
||||
({ config, options, ... }: {
|
||||
options = {
|
||||
users = mkOption {
|
||||
type = types.attrsOf winUserType;
|
||||
};
|
||||
|
||||
winUsers = mkOption {
|
||||
type = options.users.type;
|
||||
description = "Blablabla";
|
||||
default = (lib.attrsets.concatMapAttrs (
|
||||
name: options: {
|
||||
${capitalize name} = options;
|
||||
}) config.users);
|
||||
};
|
||||
};
|
||||
})
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,19 +1,40 @@
|
|||
{ lib, config, ... }:
|
||||
{ lib, ... }:
|
||||
let
|
||||
inherit (lib)
|
||||
mkOption
|
||||
types
|
||||
;
|
||||
|
||||
cfg = config.valhalla;
|
||||
in {
|
||||
imports = [
|
||||
./packages/git.nix
|
||||
./packages/nextcloud.nix
|
||||
./packages/oh-my-posh.nix
|
||||
./packages/rclone.nix
|
||||
./hardware.nix
|
||||
./i18n.nix
|
||||
./os.nix
|
||||
./partition.nix
|
||||
./software.nix
|
||||
./users.nix
|
||||
./windows.nix
|
||||
];
|
||||
|
||||
options = {
|
||||
valhalla = {
|
||||
boot = {
|
||||
efiMountPoint = mkOption {
|
||||
type = types.str;
|
||||
description = "The mountpoint of the efi partition.";
|
||||
default = "/boot";
|
||||
};
|
||||
|
||||
label = mkOption {
|
||||
type = types.str;
|
||||
description = "The label of the boot entry.";
|
||||
default = "OS";
|
||||
};
|
||||
};
|
||||
|
||||
setupUser = {
|
||||
name = mkOption {
|
||||
type = types.str;
|
||||
|
@ -45,62 +66,6 @@
|
|||
description = "The X11 keyboard layout of the system.";
|
||||
default = null;
|
||||
};
|
||||
|
||||
software =
|
||||
let
|
||||
inherit (cfg.software)
|
||||
common
|
||||
school
|
||||
;
|
||||
in {
|
||||
essential = mkOption {
|
||||
type = types.bool;
|
||||
description = "A value indicating whether essentials should be installed.";
|
||||
default = true;
|
||||
};
|
||||
|
||||
common = mkOption {
|
||||
type = types.bool;
|
||||
description = "A value indicating whether common software should be installed.";
|
||||
default = true;
|
||||
};
|
||||
|
||||
school = mkOption {
|
||||
type = types.bool;
|
||||
description = "A value indicating whether software for studies should be installed.";
|
||||
default = false;
|
||||
};
|
||||
|
||||
productivity = mkOption {
|
||||
type = types.bool;
|
||||
description = "A value indicating whether productivity apps should be installed.";
|
||||
default = common || school;
|
||||
};
|
||||
|
||||
socialMedia = mkOption {
|
||||
type = types.bool;
|
||||
description = "A value indicating whether social media apps should be installed.";
|
||||
default = common;
|
||||
};
|
||||
|
||||
media = mkOption {
|
||||
type = types.bool;
|
||||
description = "A value indicating whether media apps should be installed.";
|
||||
default = common;
|
||||
};
|
||||
|
||||
gaming = mkOption {
|
||||
type = types.bool;
|
||||
description = "A value indicating whether gaming apps should be installed.";
|
||||
default = common;
|
||||
};
|
||||
|
||||
coding = mkOption {
|
||||
type = types.bool;
|
||||
description = "A value indicating whether development apps should be installed.";
|
||||
default = common;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
47
lib/modules/windows.nix
Normal file
47
lib/modules/windows.nix
Normal file
|
@ -0,0 +1,47 @@
|
|||
{ lib, config, ... }:
|
||||
let
|
||||
inherit (lib)
|
||||
mkDefault
|
||||
mkEnableOption
|
||||
mkIf
|
||||
mkOption
|
||||
types
|
||||
;
|
||||
|
||||
capitalize = (import ../text.nix { inherit lib; }).capitalize;
|
||||
in {
|
||||
options = {
|
||||
valhalla = {
|
||||
windows = {
|
||||
dualboot = {
|
||||
enable = mkEnableOption "dual boot";
|
||||
|
||||
linuxPercentage = mkOption {
|
||||
type = types.number;
|
||||
description = "The percentage of the disk size reserved for Linux.";
|
||||
};
|
||||
};
|
||||
|
||||
showFileExt = mkOption {
|
||||
type = types.bool;
|
||||
description = "A value indicating whether file extensions should be displayed in Windows Explorer.";
|
||||
default = true;
|
||||
};
|
||||
|
||||
legacyIconSpacing = mkEnableOption "legacy icon spacing" // {
|
||||
default = true;
|
||||
};
|
||||
|
||||
dynamicLighting = mkEnableOption "dynamic lighting";
|
||||
adware = mkEnableOption "adware"; # Fuck you for displaying ads on an OS I fricking paid for!
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
valhalla.windows = {
|
||||
setupUser.name = mkDefault (capitalize config.valhalla.setupUser.name);
|
||||
dualboot.linuxPercentage = mkIf (!config.valhalla.windows.dualboot.enable) (mkDefault 0);
|
||||
};
|
||||
};
|
||||
}
|
9
lib/text.nix
Normal file
9
lib/text.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{ lib, ... }: {
|
||||
capitalize = text:
|
||||
let
|
||||
chars = lib.strings.stringToCharacters text;
|
||||
in lib.strings.concatStrings (
|
||||
[(lib.strings.toUpper (builtins.elemAt chars 0))] ++
|
||||
(lib.lists.drop 1 chars)
|
||||
);
|
||||
}
|
|
@ -1,19 +0,0 @@
|
|||
#!/bin/bash -e
|
||||
function install() {
|
||||
function installDrivers() {
|
||||
. "../../../scripts/Arch/Config/SecureBoot/install.sh";
|
||||
. "../../../scripts/Arch/Software/nvidia-dkms/install.sh";
|
||||
. "../../../scripts/Arch/Software/xone/install.sh";
|
||||
. "../../../scripts/Arch/Software/bt-dualboot/install.sh";
|
||||
}
|
||||
|
||||
function initializeConfig() {
|
||||
. "../../../scripts/Unix/Devices/Logitech G903/install.sh";
|
||||
}
|
||||
|
||||
pushd "$dir" > /dev/null;
|
||||
. "../../../scripts/Arch/OS/install.sh";
|
||||
popd > /dev/null;
|
||||
}
|
||||
|
||||
install;
|
|
@ -1,139 +0,0 @@
|
|||
#!/bin/pwsh
|
||||
$env:WIN_COMPUTER_NAME = "DerGeret";
|
||||
$env:SETUP_SCRIPT_NAME = "$PSScriptRoot/Restore.ps1";
|
||||
|
||||
function Initialize-SetupConfig() {
|
||||
param(
|
||||
[xml] $config,
|
||||
[System.Xml.XmlNamespaceManager] $namespace
|
||||
);
|
||||
|
||||
$setupComponent = $config.SelectSingleNode(
|
||||
"/ua:unattend/ua:settings[@pass='windowsPE']/ua:component[@name='Microsoft-Windows-Setup']",
|
||||
$namespace);
|
||||
|
||||
$diskConfig = $setupComponent.SelectSingleNode("./ua:DiskConfiguration/ua:Disk", $namespace);
|
||||
|
||||
$partitionCreationContainer = $diskConfig.SelectSingleNode("./ua:CreatePartitions", $namespace);
|
||||
$partitionCreations = $partitionCreationContainer.SelectNodes("./ua:CreatePartition", $namespace);
|
||||
|
||||
$partitionModificationContainer = $diskConfig.SelectSingleNode("./ua:ModifyPartitions", $namespace);
|
||||
$partitionModifications = $partitionModificationContainer.SelectNodes("./ua:ModifyPartition", $namespace);
|
||||
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Gets the XML element describing the installation partition ID.
|
||||
#>
|
||||
function Get-InstallationPartition {
|
||||
$setupComponent.SelectSingleNode("./ua:ImageInstall/ua:OSImage/ua:InstallTo/ua:PartitionID", $namespace)
|
||||
}
|
||||
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Increases the ID of all partitions in the specified range by 1.
|
||||
#>
|
||||
function Move-PartitionRange {
|
||||
param (
|
||||
[int]$From = 0,
|
||||
[System.Nullable[int]]$To = $null,
|
||||
[int]$By = 1
|
||||
)
|
||||
|
||||
# Update installation partition ID if necessary
|
||||
$installationPartition = Get-InstallationPartition;
|
||||
$installPartitionID = [int]$installationPartition.InnerText;
|
||||
|
||||
if (($installPartitionID -ge $From) -and (($null -eq $To) -or ($installPartitionID -le $To))) {
|
||||
$installationPartition.InnerText = "$($installPartitionID + $By)";
|
||||
}
|
||||
|
||||
# Update IDs of all partition creations
|
||||
foreach ($partition in $partitionCreations) {
|
||||
$orderNode = $partition.SelectSingleNode("./ua:Order", $namespace);
|
||||
$order = [int]$orderNode.InnerText;
|
||||
$newOrder = $order;
|
||||
|
||||
if (($newOrder -ge $From) -and (($null -eq $To) -or ($newOrder -le $To))) {
|
||||
$newOrder += $By;
|
||||
}
|
||||
|
||||
if ($order -ne $newOrder) {
|
||||
$orderNode.InnerText = "$newOrder";
|
||||
}
|
||||
}
|
||||
|
||||
# Update IDs of all partition modifications
|
||||
foreach ($partition in $partitionModifications) {
|
||||
$partitionNode = $partition.SelectSingleNode("./ua:PartitionID", $namespace);
|
||||
$partitionID = [int]$partitionNode.InnerText;
|
||||
$newID = $partitionID;
|
||||
|
||||
if (($newID -ge $From) -and (($null -eq $To) -or ($newID -le $To))) {
|
||||
$newID += $By;
|
||||
}
|
||||
|
||||
if ($partitionID -ne $newID) {
|
||||
$partitionNode.InnerText = "$newID";
|
||||
$partition.SelectSingleNode("./ua:Order", $namespace).InnerText = "$newID";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function Add-Partition {
|
||||
param (
|
||||
[int]$Index,
|
||||
[int]$Size,
|
||||
[string]$Type = "Primary"
|
||||
)
|
||||
|
||||
Move-PartitionRange -From $Index -By 1;
|
||||
|
||||
$newPartition = $partitionCreations[0].CloneNode($true);
|
||||
$newPartition.SelectSingleNode("./ua:Order", $namespace).InnerText = "$Index";
|
||||
$newPartition.SelectSingleNode("./ua:Type", $namespace).InnerText = "$Type";
|
||||
$newPartition.SelectSingleNode("./ua:Size", $namespace).InnerText = "$Size";
|
||||
$null = $partitionCreationContainer.AppendChild($newPartition);
|
||||
|
||||
$newModification = $partitionModifications[2].CloneNode($true);
|
||||
$newModification.SelectSingleNode("./ua:Order", $namespace).InnerText = "$Index";
|
||||
$newModification.SelectSingleNode("./ua:PartitionID", $namespace).InnerText = "$Index";
|
||||
$null = $partitionModificationContainer.AppendChild($newModification);
|
||||
}
|
||||
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Relocates the partition with the specified `$From` ID to the specified `$To` ID.
|
||||
#>
|
||||
function Invoke-PartitionRelocation {
|
||||
param (
|
||||
[int]$From,
|
||||
[int]$To
|
||||
)
|
||||
|
||||
Move-PartitionRange $From $From (-1 * ($From + 1))
|
||||
|
||||
if ($From -gt $To) {
|
||||
Move-PartitionRange $To ($From - 1);
|
||||
}
|
||||
elseif ($From -lt $To) {
|
||||
Move-PartitionRange ($From + 1) $To -1;
|
||||
}
|
||||
|
||||
Move-PartitionRange -1 -1 ($To + 1)
|
||||
}
|
||||
|
||||
# Resize EFI partition to 1GB
|
||||
$partitionCreations[1].SelectSingleNode("./ua:Size", $namespace).InnerText = "$(1024)";
|
||||
|
||||
# Swap Windows RE partition (partition #1) and boot partition (partition #2)
|
||||
Invoke-PartitionRelocation 2 1;
|
||||
|
||||
# Add space before Windows installation... wha-!? For Linux, ofc! I use Arch Linux, btw.
|
||||
$swapSpacer = 100;
|
||||
Add-Partition 2 $swapSpacer;
|
||||
|
||||
# Add a 1.2 TB partition for Linux
|
||||
Add-Partition 3 ((1.2 * 1024 * 1024) - 1024 - $swapSpacer);
|
||||
}
|
||||
|
||||
. "$PSScriptRoot/../../../scripts/Windows/OS/Setup.ps1";
|
|
@ -1,21 +0,0 @@
|
|||
{ ... }: {
|
||||
imports = [
|
||||
../Generic/config.nix
|
||||
];
|
||||
|
||||
config = {
|
||||
valhalla.partition.os.partitions = {
|
||||
Boot.keepExisting = true;
|
||||
|
||||
Windows = {
|
||||
index = 6;
|
||||
label = "OS";
|
||||
format = "ntfs";
|
||||
size = "+600G";
|
||||
mountPoint = "/win";
|
||||
mountOptions = ["force"];
|
||||
keepExisting = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
{ ... }: {
|
||||
imports = [
|
||||
../config.nix
|
||||
];
|
||||
|
||||
config = {
|
||||
valhalla.partition.os.partitions = {
|
||||
OS.label = "Arch";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
#!/bin/pwsh
|
||||
. "$PSScriptRoot/../../../scripts/Windows/Scripts/Context.ps1";
|
||||
. "$PSScriptRoot/../../../scripts/Windows/OS/Install.ps1";
|
||||
. "$PSScriptRoot/../../../scripts/Windows/Collections/Generic.ps1"
|
||||
|
||||
function Restore-Apps {
|
||||
param([Context] $context)
|
||||
Restore-GenericApps $context;
|
||||
}
|
||||
|
||||
[Context]$context = [Context]::new();
|
||||
Invoke-WindowsInstallation $context;
|
||||
Restart-Computer -Force;
|
|
@ -1,5 +0,0 @@
|
|||
#!/bin/pwsh
|
||||
$env:WIN_COMPUTER_NAME ??= "win11";
|
||||
$env:SETUP_SCRIPT_NAME ??= "$PSScriptRoot/Install.ps1";
|
||||
|
||||
. "$PSScriptRoot/../../../scripts/Windows/OS/Setup.ps1";
|
|
@ -1,52 +0,0 @@
|
|||
{ ... }:
|
||||
let
|
||||
fs = import ../../lib/modules/partition/fs.nix;
|
||||
in {
|
||||
imports = [
|
||||
../../lib/modules/valhalla.nix
|
||||
];
|
||||
|
||||
config = {
|
||||
valhalla = {
|
||||
partition = {
|
||||
os = {
|
||||
partitions = {
|
||||
Boot = {
|
||||
index = 1;
|
||||
type = "uefi";
|
||||
size = "+1G";
|
||||
format = fs.fat32;
|
||||
mountPoint = "/boot";
|
||||
};
|
||||
|
||||
Swap = {
|
||||
index = 2;
|
||||
type = "swap";
|
||||
};
|
||||
|
||||
OS = {
|
||||
index = 3;
|
||||
type = "linux";
|
||||
format = fs.ext4;
|
||||
mountPoint = "/";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
timeZone = "Europe/Zurich";
|
||||
keyMap = "de_CH-latin1";
|
||||
keyboardLayout = "ch";
|
||||
|
||||
i18n = {
|
||||
localeSettings =
|
||||
let defaultLocale = "en_US.UTF-8";
|
||||
in {
|
||||
LANG = "de_CH.UTF-8";
|
||||
LANGUAGE = defaultLocale;
|
||||
LC_MESSAGE = defaultLocale;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
#!/bin/pwsh
|
||||
$env:SETUP_SCRIPT_NAME ??= "$PSScriptRoot/Install.ps1";
|
||||
|
||||
. "$PSScriptRoot/../../Generic/Windows/Setup.ps1";
|
|
@ -1,5 +0,0 @@
|
|||
#!/bin/env fish
|
||||
begin
|
||||
set -l dir (status dirname)
|
||||
source "$dir/../../../scripts/Arch/OS/install.fish"
|
||||
end
|
|
@ -1,26 +0,0 @@
|
|||
#!/bin/bash -e
|
||||
function install() {
|
||||
function installDrivers() {
|
||||
. "../../../scripts/Arch/Config/SecureBoot/install.sh";
|
||||
. "../../../scripts/Arch/Drivers/SurfaceBook2/install.sh";
|
||||
}
|
||||
|
||||
function installSoftware() {
|
||||
. "../../../scripts/Arch/Collections/school.sh";
|
||||
}
|
||||
|
||||
function initializeConfig() {
|
||||
. "../../../scripts/Common/Config/Steam/hidpi.sh";
|
||||
. "../../../scripts/Unix/Devices/Surface Book 2/install.sh";
|
||||
. "../../../scripts/Unix/Devices/Logitech G903/install.sh";
|
||||
|
||||
# Because, as it looks, Surface Books are fucking stupid.
|
||||
. "../../../scripts/Common/Config/GRUB/verbose.sh";
|
||||
}
|
||||
|
||||
pushd "${BASH_SOURCE%/*}" > /dev/null;
|
||||
. "../../../scripts/Arch/OS/install.sh";
|
||||
popd > /dev/null;
|
||||
}
|
||||
|
||||
install;
|
|
@ -1,16 +0,0 @@
|
|||
#!/bin/bash
|
||||
pushd "${BASH_SOURCE%/*}" > /dev/null;
|
||||
# Set Hostname
|
||||
sudo hostnamectl set-hostname ManuSurface;
|
||||
|
||||
source "../../../scripts/PopOS/Scripts/preinstall.sh";
|
||||
source "../../../scripts/PopOS/OS/install.sh";
|
||||
source "../../../scripts/Debian/Drivers/SurfaceBook2/Setup/install.sh";
|
||||
source "../../../scripts/PopOS/Software/Collections/school.sh";
|
||||
INSTALL_FONTS=1 NEXTCLOUD_DIR="${NEXTCLOUD_DIR}" source "../../../scripts/Common/Config/UserProfile/install.sh";
|
||||
|
||||
# Install equalizer
|
||||
source "../../../scripts/Common/Config/EasyEffects/SurfaceBook2/install.sh";
|
||||
|
||||
source "../../../scripts/PopOS/Scripts/postinstall.sh";
|
||||
popd > /dev/null;
|
|
@ -1,12 +0,0 @@
|
|||
#!/bin/bash
|
||||
pushd "${BASH_SOURCE%/*}" > /dev/null;
|
||||
|
||||
# Set Hostname
|
||||
sudo hostnamectl set-hostname ManuPopOSLive;
|
||||
source "../../scripts/PopOS/Scripts/prepare.sh";
|
||||
source "../../scripts/PopOS/OS/install.sh";
|
||||
source "../../scripts/PopOS/Software/Collections/personal.sh";
|
||||
INSTALL_FONTS=1 NEXTCLOUD_DIR="${NEXTCLOUD_DIR}" source "../../scripts/Common/Config/UserProfile/personal.sh";
|
||||
|
||||
source "../../scripts/PopOS/Scripts/postinstall.sh";
|
||||
popd > /dev/null;
|
4
profiles/machines/manuel/DerGeret/Arch/install.fish
Executable file
4
profiles/machines/manuel/DerGeret/Arch/install.fish
Executable file
|
@ -0,0 +1,4 @@
|
|||
#!/bin/env fish
|
||||
begin
|
||||
bash "$(status dirname)/install.sh"
|
||||
end
|
19
profiles/machines/manuel/DerGeret/Arch/install.sh
Executable file
19
profiles/machines/manuel/DerGeret/Arch/install.sh
Executable file
|
@ -0,0 +1,19 @@
|
|||
#!/bin/bash -e
|
||||
function install() {
|
||||
function installDrivers() {
|
||||
. "../../../../../scripts/Arch/Config/SecureBoot/install.sh";
|
||||
. "../../../../../scripts/Arch/Software/nvidia-dkms/install.sh";
|
||||
. "../../../../../scripts/Arch/Software/xone/install.sh";
|
||||
. "../../../../../scripts/Arch/Software/bt-dualboot/install.sh";
|
||||
}
|
||||
|
||||
function initializeConfig() {
|
||||
. "../../../../../scripts/Unix/Devices/Logitech G903/install.sh";
|
||||
}
|
||||
|
||||
pushd "$dir" > /dev/null;
|
||||
. "../../../../../scripts/Arch/OS/install.sh";
|
||||
popd > /dev/null;
|
||||
}
|
||||
|
||||
install;
|
9
profiles/machines/manuel/DerGeret/Arch/setup.fish
Executable file
9
profiles/machines/manuel/DerGeret/Arch/setup.fish
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/bin/env fish
|
||||
begin
|
||||
set -l dir (status dirname)
|
||||
|
||||
CONFIG_NAME="DerGeret" \
|
||||
ARCH_HOSTNAME="der-geret" \
|
||||
USER_DISPLAYNAME="Manuel Thalmann" \
|
||||
source "$(status dirname)/../../../../../scripts/Arch/OS/setup.fish"
|
||||
end
|
|
@ -4,6 +4,6 @@ pushd "${BASH_SOURCE%/*}" > /dev/null;
|
|||
CONFIG_MODULE="./config.nix" \
|
||||
ARCH_HOSTNAME="der-geret" \
|
||||
USER_DISPLAYNAME="Manuel Thalmann" \
|
||||
. "../../../scripts/Arch/OS/setup.sh";
|
||||
. "../../../../../scripts/Arch/OS/setup.sh";
|
||||
|
||||
popd > /dev/null;
|
|
@ -1,7 +1,7 @@
|
|||
#!/bin/pwsh
|
||||
$null = New-Module {
|
||||
. "$PSScriptRoot/../../../scripts/Windows/Scripts/Context.ps1";
|
||||
. "$PSScriptRoot/../../../scripts/Windows/OS/Manage.ps1";
|
||||
. "$PSScriptRoot/../../../../../scripts/Common/Scripts/Context.ps1";
|
||||
. "$PSScriptRoot/../../../../../scripts/Windows/OS/Legacy.ps1";
|
||||
|
||||
Write-Host "Starting Backup of Windows";
|
||||
$context = [Context]::new();
|
|
@ -1,12 +1,12 @@
|
|||
#!/bin/pwsh
|
||||
. "$PSScriptRoot/../../../scripts/Windows/Scripts/Context.ps1";
|
||||
. "$PSScriptRoot/../../../../../scripts/Common/Scripts/Context.ps1";
|
||||
|
||||
function Install-PortValhallaDrivers {
|
||||
param(
|
||||
[Context] $context
|
||||
)
|
||||
|
||||
$winPath = "$PSScriptRoot/../../../scripts/Windows";
|
||||
$winPath = "$PSScriptRoot/../../../../../scripts/Windows";
|
||||
$driverPath = "$winPath/Drivers";
|
||||
$mbDriverPath = "$driverPath/ROG Zenith Extreme Alpha";
|
||||
$context.RegisterReboot();
|
||||
|
@ -38,7 +38,7 @@ function Install-PersonalDrivers {
|
|||
[Context] $context
|
||||
)
|
||||
|
||||
$softwarePath = "$PSScriptRoot/../../../scripts/Windows/Software";
|
||||
$softwarePath = "$PSScriptRoot/../../../../../scripts/Windows/Software";
|
||||
. "$softwarePath/TobiiGhost/Install.ps1" $context;
|
||||
. "$softwarePath/TobiiGameHub/Install.ps1" $context;
|
||||
}
|
|
@ -1,8 +1,8 @@
|
|||
#!/bin/pwsh
|
||||
. "$PSScriptRoot/Drivers.ps1";
|
||||
. "$PSScriptRoot/../../../scripts/Windows/Collections/Personal.ps1"
|
||||
. "$PSScriptRoot/../../../scripts/Windows/OS/Install.ps1";
|
||||
. "$PSScriptRoot/../../../scripts/Windows/Scripts/Context.ps1";
|
||||
. "$PSScriptRoot/../../../../../scripts/Common/Scripts/Context.ps1";
|
||||
. "$PSScriptRoot/../../../../../scripts/Windows/Collections/Personal.ps1"
|
||||
. "$PSScriptRoot/../../../../../scripts/Windows/OS/Manage.ps1";
|
||||
|
||||
function Initialize-Configuration {
|
||||
# Fix synchronization between Linux and Windows clock
|
||||
|
@ -26,5 +26,4 @@ function Restore-Apps {
|
|||
|
||||
Write-Host "Starting Restoration of Windows";
|
||||
[Context]$context = [Context]::new();
|
||||
Invoke-WindowsInstallation $context;
|
||||
Restart-Computer -Force;
|
||||
Start-WindowsInstallation;
|
5
profiles/machines/manuel/DerGeret/Windows/Setup.ps1
Normal file
5
profiles/machines/manuel/DerGeret/Windows/Setup.ps1
Normal file
|
@ -0,0 +1,5 @@
|
|||
#!/bin/pwsh
|
||||
$env:WIN_COMPUTER_NAME = "DerGeret";
|
||||
$env:CONFIG_NAME = $env:WIN_COMPUTER_NAME;
|
||||
|
||||
. "$PSScriptRoot/../../../../../scripts/Windows/OS/Setup.ps1";
|
48
profiles/machines/manuel/DerGeret/config.nix
Normal file
48
profiles/machines/manuel/DerGeret/config.nix
Normal file
|
@ -0,0 +1,48 @@
|
|||
{ ... }: {
|
||||
imports = [
|
||||
../defaults.nix
|
||||
];
|
||||
|
||||
config = {
|
||||
valhalla = {
|
||||
windows = {
|
||||
dualboot = {
|
||||
enable = true;
|
||||
linuxPercentage = 70; # better safe than sorry
|
||||
};
|
||||
|
||||
users.manuel = {
|
||||
microsoftAccount = true;
|
||||
groups = ["Administrators"];
|
||||
};
|
||||
};
|
||||
|
||||
partition.os.partitions = {
|
||||
Boot.keepExisting = true;
|
||||
|
||||
Windows = {
|
||||
index = 6;
|
||||
label = "OS";
|
||||
format = "ntfs";
|
||||
mountPoint = "/win";
|
||||
mountOptions = ["force"];
|
||||
keepExisting = true;
|
||||
};
|
||||
};
|
||||
|
||||
hardware = {
|
||||
components = [
|
||||
"ROG Zenith Extreme Alpha"
|
||||
"Predator Z301C"
|
||||
];
|
||||
|
||||
eyeX = true;
|
||||
amdCPU = true;
|
||||
nvidiaGPU = true;
|
||||
logitechG = true;
|
||||
corsairDevice = true;
|
||||
elgatoWave = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
9
profiles/machines/manuel/Generic/Arch/config.nix
Normal file
9
profiles/machines/manuel/Generic/Arch/config.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{ ... }: {
|
||||
imports = [
|
||||
../config.nix
|
||||
];
|
||||
|
||||
config = {
|
||||
valhalla.boot.label = "Arch";
|
||||
};
|
||||
}
|
|
@ -3,11 +3,11 @@ function install() {
|
|||
local dir="$(realpath "${BASH_SOURCE%/*}")";
|
||||
|
||||
function installDrivers() {
|
||||
. "$dir/../../../scripts/Arch/Config/SecureBoot/install.sh";
|
||||
. "$dir/../../../../../scripts/Arch/Config/SecureBoot/install.sh";
|
||||
}
|
||||
|
||||
|
||||
. "../../../scripts/Arch/OS/install.sh";
|
||||
. "../../../../../scripts/Arch/OS/install.sh";
|
||||
}
|
||||
|
||||
install;
|
|
@ -4,6 +4,6 @@ pushd "${BASH_SOURCE%/*}" > /dev/null;
|
|||
ARCH_MOUNT_ROOT="/mnt" \
|
||||
ARCH_HOSTNAME="archlinux" \
|
||||
USER_DISPLAYNAME="Manuel Thalmann" \
|
||||
. "../../../scripts/Arch/OS/setup.sh";
|
||||
. "../../../../../scripts/Arch/OS/setup.sh";
|
||||
|
||||
popd > /dev/null;
|
13
profiles/machines/manuel/Generic/Windows/Install.ps1
Normal file
13
profiles/machines/manuel/Generic/Windows/Install.ps1
Normal file
|
@ -0,0 +1,13 @@
|
|||
#!/bin/pwsh
|
||||
. "$PSScriptRoot/../../../../../scripts/Common/Scripts/Context.ps1";
|
||||
. "$PSScriptRoot/../../../../../scripts/Windows/OS/Manage.ps1";
|
||||
. "$PSScriptRoot/../../../../../scripts/Windows/Collections/Generic.ps1"
|
||||
|
||||
function Restore-Apps {
|
||||
param([Context] $context)
|
||||
Restore-GenericApps $context;
|
||||
}
|
||||
|
||||
[Context]$context = [Context]::new();
|
||||
Invoke-WindowsInstallation $context;
|
||||
Restart-Computer -Force;
|
5
profiles/machines/manuel/Generic/Windows/Setup.ps1
Normal file
5
profiles/machines/manuel/Generic/Windows/Setup.ps1
Normal file
|
@ -0,0 +1,5 @@
|
|||
#!/bin/pwsh
|
||||
$env:WIN_COMPUTER_NAME ??= "win11";
|
||||
$env:CONFIG_MODULE ??= "$PSScriptRoot/../config.nix";
|
||||
|
||||
. "$PSScriptRoot/../../../../../scripts/Windows/OS/Setup.ps1";
|
95
profiles/machines/manuel/Generic/config.nix
Normal file
95
profiles/machines/manuel/Generic/config.nix
Normal file
|
@ -0,0 +1,95 @@
|
|||
{ lib, config, ... }:
|
||||
let
|
||||
fs = import ../../../../lib/modules/partition/fs.nix;
|
||||
in {
|
||||
imports = [
|
||||
../defaults.nix
|
||||
];
|
||||
|
||||
config = {
|
||||
valhalla = {
|
||||
partition = {
|
||||
os = {
|
||||
partitions = {
|
||||
Boot = {
|
||||
index = 1;
|
||||
type = "uefi";
|
||||
size = "+1G";
|
||||
format = fs.fat32;
|
||||
mountPoint = config.valhalla.boot.efiMountPoint;
|
||||
};
|
||||
|
||||
Swap = {
|
||||
index = 2;
|
||||
type = "swap";
|
||||
};
|
||||
|
||||
OS = {
|
||||
index = 3;
|
||||
label = lib.mkDefault config.valhalla.boot.label;
|
||||
type = "linux";
|
||||
format = fs.ext4;
|
||||
mountPoint = "/";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
timeZone = "Europe/Zurich";
|
||||
keyMap = "de_CH-latin1";
|
||||
keyboardLayout = "ch";
|
||||
|
||||
i18n = {
|
||||
localeSettings =
|
||||
let defaultLocale = "en_US.UTF-8";
|
||||
in {
|
||||
LANG = "de_CH.UTF-8";
|
||||
LANGUAGE = defaultLocale;
|
||||
LC_MESSAGE = defaultLocale;
|
||||
};
|
||||
};
|
||||
|
||||
git =
|
||||
let
|
||||
defaultBranch = "main";
|
||||
in {
|
||||
inherit defaultBranch;
|
||||
|
||||
flow = {
|
||||
mainBranch = defaultBranch;
|
||||
devBranch = "dev";
|
||||
};
|
||||
|
||||
aliases = {
|
||||
ahfange = "init";
|
||||
tuedezue = "add";
|
||||
beschuldig = "blame";
|
||||
zieh = "pull";
|
||||
druck = "push";
|
||||
machnah = "clone";
|
||||
hol = "fetch";
|
||||
zwiigab = "branch";
|
||||
buechiih = "commit";
|
||||
eich = "rebase";
|
||||
erd = "rebase";
|
||||
gahufwiifelde = "rebase";
|
||||
vergliich = "diff";
|
||||
tuezemme = "merge";
|
||||
versorg = "stash";
|
||||
markier = "tag";
|
||||
pflueckoepfel = "cherry-pick";
|
||||
pflueckhimbeeri = "cherry-pick";
|
||||
buechuus = "checkout";
|
||||
quaetsch = "merge --squash";
|
||||
pfudle = "push --force";
|
||||
beschuldigung = "blame";
|
||||
zwiigli = "branch";
|
||||
tagebuech = "log";
|
||||
versteck = "stash";
|
||||
zuestand = "status";
|
||||
markierig = "tag";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -14,4 +14,4 @@ function Install-PortValhallaDrivers {
|
|||
choco install -y spice-agent;
|
||||
}
|
||||
|
||||
. "$PSScriptRoot/../../Generic/Windows/Install.ps1";
|
||||
. "$PSScriptRoot/../../../../Generic/Windows/Install.ps1";
|
2
profiles/machines/manuel/KVM/Windows/Setup.ps1
Normal file
2
profiles/machines/manuel/KVM/Windows/Setup.ps1
Normal file
|
@ -0,0 +1,2 @@
|
|||
#!/bin/pwsh
|
||||
. "$PSScriptRoot/../../../../Generic/Windows/Setup.ps1";
|
5
profiles/machines/manuel/ManuSurface/Arch/install.fish
Executable file
5
profiles/machines/manuel/ManuSurface/Arch/install.fish
Executable file
|
@ -0,0 +1,5 @@
|
|||
#!/bin/env fish
|
||||
begin
|
||||
set -l dir (status dirname)
|
||||
source "$dir/../../../../../scripts/Arch/OS/install.fish"
|
||||
end
|
26
profiles/machines/manuel/ManuSurface/Arch/install.sh
Executable file
26
profiles/machines/manuel/ManuSurface/Arch/install.sh
Executable file
|
@ -0,0 +1,26 @@
|
|||
#!/bin/bash -e
|
||||
function install() {
|
||||
function installDrivers() {
|
||||
. "../../../../../scripts/Arch/Config/SecureBoot/install.sh";
|
||||
. "../../../../../scripts/Arch/Drivers/SurfaceBook2/install.sh";
|
||||
}
|
||||
|
||||
function installSoftware() {
|
||||
. "../../../../../scripts/Arch/Collections/school.sh";
|
||||
}
|
||||
|
||||
function initializeConfig() {
|
||||
. "../../../../../scripts/Common/Config/Steam/hidpi.sh";
|
||||
. "../../../../../scripts/Unix/Devices/Surface Book 2/install.sh";
|
||||
. "../../../../../scripts/Unix/Devices/Logitech G903/install.sh";
|
||||
|
||||
# Because, as it looks, Surface Books are fucking stupid.
|
||||
. "../../../../../scripts/Common/Config/GRUB/verbose.sh";
|
||||
}
|
||||
|
||||
pushd "${BASH_SOURCE%/*}" > /dev/null;
|
||||
. "../../../../../scripts/Arch/OS/install.sh";
|
||||
popd > /dev/null;
|
||||
}
|
||||
|
||||
install;
|
|
@ -3,7 +3,7 @@ begin
|
|||
set -l dir (status dirname)
|
||||
|
||||
function installDrivers -V dir -S
|
||||
source "$dir/../../../scripts/Common/Scripts/config.fish"
|
||||
source "$dir/../../../../../scripts/Common/Scripts/config.fish"
|
||||
pacstrap -K (getConfig valhalla.partition.rootDir) linux-firmware-marvell;
|
||||
end
|
||||
|
||||
|
@ -11,8 +11,8 @@ begin
|
|||
echo "$dir/install.fish"
|
||||
end
|
||||
|
||||
CONFIG_MODULE="$(status dirname)/config.nix" \
|
||||
CONFIG_NAME="ManuSurface" \
|
||||
ARCH_HOSTNAME="manu-surface" \
|
||||
USER_DISPLAYNAME="Manuel Thalmann" \
|
||||
source "$(status dirname)/../../../scripts/Arch/OS/setup.fish";
|
||||
source "$(status dirname)/../../../../../scripts/Arch/OS/setup.fish";
|
||||
end
|
16
profiles/machines/manuel/ManuSurface/PopOS/setup.sh
Executable file
16
profiles/machines/manuel/ManuSurface/PopOS/setup.sh
Executable file
|
@ -0,0 +1,16 @@
|
|||
#!/bin/bash
|
||||
pushd "${BASH_SOURCE%/*}" > /dev/null;
|
||||
# Set Hostname
|
||||
sudo hostnamectl set-hostname ManuSurface;
|
||||
|
||||
source "../../../../../scripts/PopOS/Scripts/preinstall.sh";
|
||||
source "../../../../../scripts/PopOS/OS/install.sh";
|
||||
source "../../../../../scripts/Debian/Drivers/SurfaceBook2/Setup/install.sh";
|
||||
source "../../../../../scripts/PopOS/Software/Collections/school.sh";
|
||||
INSTALL_FONTS=1 NEXTCLOUD_DIR="${NEXTCLOUD_DIR}" source "../../../../../scripts/Common/Config/UserProfile/install.sh";
|
||||
|
||||
# Install equalizer
|
||||
source "../../../../../scripts/Common/Config/EasyEffects/SurfaceBook2/install.sh";
|
||||
|
||||
source "../../../../../scripts/PopOS/Scripts/postinstall.sh";
|
||||
popd > /dev/null;
|
12
profiles/machines/manuel/PopOSLive/setup.sh
Executable file
12
profiles/machines/manuel/PopOSLive/setup.sh
Executable file
|
@ -0,0 +1,12 @@
|
|||
#!/bin/bash
|
||||
pushd "${BASH_SOURCE%/*}" > /dev/null;
|
||||
|
||||
# Set Hostname
|
||||
sudo hostnamectl set-hostname ManuPopOSLive;
|
||||
source "../../../../scripts/PopOS/Scripts/prepare.sh";
|
||||
source "../../../../scripts/PopOS/OS/install.sh";
|
||||
source "../../../../scripts/PopOS/Software/Collections/personal.sh";
|
||||
INSTALL_FONTS=1 NEXTCLOUD_DIR="${NEXTCLOUD_DIR}" source "../../../../scripts/Common/Config/UserProfile/personal.sh";
|
||||
|
||||
source "../../../../scripts/PopOS/Scripts/postinstall.sh";
|
||||
popd > /dev/null;
|
6
profiles/machines/manuel/defaults.nix
Normal file
6
profiles/machines/manuel/defaults.nix
Normal file
|
@ -0,0 +1,6 @@
|
|||
{ ... }: {
|
||||
imports = [
|
||||
../../users/manuel/config.nix
|
||||
../../../lib/modules/valhalla.nix
|
||||
];
|
||||
}
|
66
profiles/users/manuel/config.nix
Normal file
66
profiles/users/manuel/config.nix
Normal file
|
@ -0,0 +1,66 @@
|
|||
{ ... }: {
|
||||
imports = [
|
||||
../../../lib/modules/valhalla.nix
|
||||
];
|
||||
|
||||
config = {
|
||||
valhalla = {
|
||||
users.manuel = {
|
||||
displayName = "Manuel Thalmann";
|
||||
mailAddress = "m@nuth.ch";
|
||||
|
||||
oh-my-posh = {
|
||||
theme = {
|
||||
source = ./manuel.omp.json;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
linux.users.manuel = {
|
||||
defaultShell = "fish";
|
||||
|
||||
groups = [
|
||||
"wheel"
|
||||
"nix-users"
|
||||
];
|
||||
|
||||
rclone = {
|
||||
configurations = {
|
||||
nextcloud = {
|
||||
dirName = "Nextcloud";
|
||||
};
|
||||
proton = {
|
||||
dirName = "Proton";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
windows.users.manuel = {
|
||||
nextcloud = {
|
||||
folderSyncs =
|
||||
let
|
||||
localPath = "C:/tools/RetroArch-Win64";
|
||||
remotePath = "/Saved Games/RetroArch";
|
||||
in [
|
||||
{
|
||||
remotePath = "${remotePath}/Saves";
|
||||
localPath = "${localPath}/saves";
|
||||
virtualFiles = false;
|
||||
}
|
||||
{
|
||||
remotePath = "${remotePath}/System";
|
||||
localPath = "${localPath}/system";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
partition = {
|
||||
os = {
|
||||
partitions = { };
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
173
profiles/users/manuel/manuel.omp.json
Normal file
173
profiles/users/manuel/manuel.omp.json
Normal file
|
@ -0,0 +1,173 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
|
||||
"version": 2,
|
||||
"blocks": [
|
||||
{
|
||||
"type": "prompt",
|
||||
"alignment": "left",
|
||||
"segments": [
|
||||
{
|
||||
"type": "os",
|
||||
"style": "diamond",
|
||||
"leading_diamond": "\ue0b6",
|
||||
"trailing_diamond": "\ue0b4",
|
||||
"background_templates": [
|
||||
"{{ if eq .OS \"ubuntu\" }}#EA531A{{ end }}",
|
||||
"{{ if eq .OS \"debian\" }}#D80150{{ end }}",
|
||||
"{{ if eq .OS \"arch\" }}#1793D1{{ end }}"
|
||||
],
|
||||
"foreground": "p:white",
|
||||
"template": "{{ if ne .OS \"windows\" }}{{ .Icon }} {{ end }}"
|
||||
},
|
||||
{
|
||||
"type": "session",
|
||||
"style": "diamond",
|
||||
"leading_diamond": "\ue0b6",
|
||||
"trailing_diamond": "\ue0b0",
|
||||
"background": "p:yellow",
|
||||
"foreground": "p:black",
|
||||
"properties": {
|
||||
"display_host": false
|
||||
},
|
||||
"template": "{{ if .SSHSession }}\ueb39{{ end }} {{ .UserName }} "
|
||||
},
|
||||
{
|
||||
"type": "path",
|
||||
"style": "powerline",
|
||||
"powerline_symbol": "\ue0b0",
|
||||
"background": "p:orange",
|
||||
"foreground": "p:black",
|
||||
"properties": {
|
||||
"home_icon": "~",
|
||||
"style": "folder"
|
||||
},
|
||||
"template": " \udb80\ude4b {{ path .Path .Location }} "
|
||||
},
|
||||
{
|
||||
"type": "dotnet",
|
||||
"style": "powerline",
|
||||
"powerline_symbol": "\ue0b0",
|
||||
"foreground": "p:black",
|
||||
"background": "#00ffff",
|
||||
"template": " \udb81\ude10 {{ .Full }} "
|
||||
},
|
||||
{
|
||||
"type": "java",
|
||||
"style": "powerline",
|
||||
"powerline_symbol": "\ue0b0",
|
||||
"background": "#4063d8",
|
||||
"template": " \udb82\udf37 {{ .Full }} "
|
||||
},
|
||||
{
|
||||
"type": "python",
|
||||
"style": "powerline",
|
||||
"powerline_symbol": "\ue0b0",
|
||||
"background": "#906cff",
|
||||
"template": " \udb80\udf20 {{ .Full }} "
|
||||
},
|
||||
{
|
||||
"type": "git",
|
||||
"style": "powerline",
|
||||
"powerline_symbol": "\ue0b0",
|
||||
"trailing_diamond": "\ue0b4",
|
||||
"background": "p:green",
|
||||
"background_templates": [
|
||||
"{{ if or (.Working.Changed) (.Staging.Changed) }}p:yellow{{ end }}",
|
||||
"{{ if and (gt .Ahead 0) (gt .Behind 0) }}p:red{{ end }}",
|
||||
"{{ if gt .Ahead 0 }}#49416D{{ end }}",
|
||||
"{{ if gt .Behind 0 }}#7A306C{{ end }}"
|
||||
],
|
||||
"foreground": "p:black",
|
||||
"foreground_templates": [
|
||||
"{{ if or (.Working.Changed) (.Staging.Changed) }}p:black{{ end }}",
|
||||
"{{ if and (gt .Ahead 0) (gt .Behind 0) }}p:white{{ end }}",
|
||||
"{{ if gt .Ahead 0 }}p:white{{ end }}"
|
||||
],
|
||||
"properties": {
|
||||
"branch_max_length": 25,
|
||||
"fetch_stash_count": true,
|
||||
"fetch_status": true,
|
||||
"fetch_upstream_icon": true,
|
||||
"upstream_icons": {
|
||||
"codeberg.org": "\uf330 ",
|
||||
"git.nuth.ch": "\uf335",
|
||||
"git.jonascosta.ch": "\uf339 ",
|
||||
"git.romhackersworld.eu": "\uf339 ",
|
||||
"aur.archlinux.org": "\uf303 "
|
||||
}
|
||||
},
|
||||
"templates": [
|
||||
"{{ if .UpstreamURL }} {{ url .UpstreamIcon .UpstreamURL }}{{ end }}",
|
||||
" {{ .HEAD }} ",
|
||||
"{{ if .BranchStatus }}{{ .BranchStatus }} {{ end }}",
|
||||
"{{ if .Working.Changed }} \uf044 {{ .Working.String }} {{ end }}",
|
||||
"{{ if and (.Working.Changed) (or (.Staging.Changed) (gt .StashCount 0)) }} | {{ end }}",
|
||||
"{{ if .Staging.Changed }} \uf046 {{ .Staging.String }} {{ end }}",
|
||||
"{{ if and (.Staging.Changed) (gt .StashCount 0) }} | {{ end }}",
|
||||
"{{ if gt .StashCount 0 }} \udb80\udd93 {{ .StashCount }}{{ end }} "
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "node",
|
||||
"style": "powerline",
|
||||
"powerline_symbol": "\ue0b0",
|
||||
"background": "#6ca35e",
|
||||
"foreground": "p:white",
|
||||
"properties": {
|
||||
"fetch_version": true
|
||||
},
|
||||
"template": " \udb80\udf99 {{ if .PackageManagerIcon }}{{ .PackageManagerIcon }} {{ end }}{{ .Full }} "
|
||||
},
|
||||
{
|
||||
"type": "root",
|
||||
"style": "powerline",
|
||||
"powerline_symbol": "\ue0b0",
|
||||
"background": "p:yellow",
|
||||
"foreground": "p:white",
|
||||
"properties": {
|
||||
"root_icon": "\uf0e7"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "executiontime",
|
||||
"style": "plain",
|
||||
"background": "#83769c",
|
||||
"foreground": "p:white",
|
||||
"properties": {
|
||||
"always_enabled": true
|
||||
},
|
||||
"template": "<transparent>\ue0b0</> \udb81\udead {{ .FormattedMs }}\u2800"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"style": "diamond",
|
||||
"background": "p:blue",
|
||||
"trailing_diamond": "\ue0b4",
|
||||
"background_templates": [
|
||||
"{{ if gt .Code 0 }}p:red{{ end }}"
|
||||
],
|
||||
"foreground": "p:white",
|
||||
"properties": {
|
||||
"always_enabled": true
|
||||
},
|
||||
"template": "<parentBackground>\ue0b0</> {{ if gt .Code 0 }}\uf00d{{ else }}\uf00c{{ end }} "
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"transient_prompt": {
|
||||
"background": "transparent",
|
||||
"foreground": "p:black",
|
||||
"template": "<p:yellow,transparent>\ue0b6</><,p:yellow> {{ .Folder }} </><p:yellow,transparent>\ue0b0</> "
|
||||
},
|
||||
"final_space": true,
|
||||
"palette": {
|
||||
"black": "#262B44",
|
||||
"blue": "#4B95E9",
|
||||
"green": "#59C9A5",
|
||||
"orange": "#F07623",
|
||||
"red": "#D81E5B",
|
||||
"white": "#E0DEF4",
|
||||
"yellow": "#F3AE35"
|
||||
}
|
||||
}
|
|
@ -109,7 +109,7 @@ yay --noconfirm -Syu jq;
|
|||
BROWSER_BIN="brave" \
|
||||
EXTENSION_DIR="/usr/share/chromium-extensions" \
|
||||
EXTENSION_POLICY_DIR="$braveExtensions" \
|
||||
source "../../Common/Config/Chromium/install-ytmusic-dl.sh";
|
||||
source "../../Common/Software/Chromium/ytmdl.sh";
|
||||
|
||||
# sudo ln -sf "$braveExtensions" /opt/brave.com/brave-beta/extensions;
|
||||
# sudo ln -sf "$braveExtensions" /opt/brave.com/brave-nightly/extensions;
|
||||
|
|
24
scripts/Arch/OS/install.fish
Normal file → Executable file
24
scripts/Arch/OS/install.fish
Normal file → Executable file
|
@ -2,16 +2,24 @@
|
|||
begin
|
||||
set -l dir (status dirname)
|
||||
|
||||
function initialize -V dir
|
||||
source "$dir/../Software/base-devel/main.fish"
|
||||
source "$dir/../Software/pacman/main.fish"
|
||||
source "$dir/../Software/yay/main.fish"
|
||||
function getDeploymentScript -V dir
|
||||
echo "$dir/../Scripts/deploy.fish";
|
||||
end
|
||||
|
||||
if not type -q installSoftware
|
||||
function installSoftware -V dir
|
||||
"$dir/../Collections/personal.sh";
|
||||
end
|
||||
function initialize -V dir
|
||||
source "$dir/../../Common/Scripts/wait-network.fish"
|
||||
waitNetwork
|
||||
or exit
|
||||
|
||||
sudo systemctl enable --now nix-daemon
|
||||
and source "$dir/../Scripts/software.fish"
|
||||
and source "$dir/../Software/base-devel/main.fish"
|
||||
and source "$dir/../Software/pacman/main.fish"
|
||||
and source "$dir/../Software/yay/main.fish"
|
||||
|
||||
and yayinst \
|
||||
pacman-contrib \
|
||||
powershell-bin
|
||||
end
|
||||
|
||||
source "$dir/../../Common/OS/install.fish"
|
||||
|
|
31
scripts/Arch/OS/setup.fish
Normal file → Executable file
31
scripts/Arch/OS/setup.fish
Normal file → Executable file
|
@ -1,12 +1,24 @@
|
|||
#!/bin/env fish
|
||||
begin
|
||||
set -l dir (status dirname)
|
||||
set -q CONFIG_MODULE || set -l CONFIG_MODULE "$dir/config.nix"
|
||||
source "$dir/../../Common/OS/setup.fish"
|
||||
source "$dir/../../Common/Scripts/config.fish"
|
||||
|
||||
set -l mountDir (getConfig valhalla.partition.rootDir)
|
||||
|
||||
function setupOS -S -V dir -V CONFIG_MODULE -V mountDir
|
||||
function runChroot -S
|
||||
arch-chroot $argv
|
||||
end
|
||||
|
||||
function installValhallaDeps -V mountDir
|
||||
pacstrap -K "$mountDir" fish git jq nix tmux
|
||||
end
|
||||
|
||||
function getInstallerScript -V dir -S
|
||||
echo "$dir/install.fish"
|
||||
end
|
||||
|
||||
function setupOS -S -V dir -V mountDir
|
||||
source "$dir/../../Common/Scripts/wait-network.fish"
|
||||
source "$dir/../../Common/Scripts/hooks.fish"
|
||||
|
||||
|
@ -43,7 +55,6 @@ begin
|
|||
man-pages \
|
||||
texinfo
|
||||
|
||||
and runHook installDrivers "Installing drivers…" || true
|
||||
and genfstab -U "$mountDir" >> "$mountDir/etc/fstab"
|
||||
and arch-chroot "$mountDir" systemctl enable NetworkManager
|
||||
|
||||
|
@ -61,6 +72,7 @@ begin
|
|||
end | begin
|
||||
read LOCALES
|
||||
and arch-chroot "$mountDir" sed -i "s/^#\?\(\($LOCALES\).*\)\$/\1/" /etc/locale.gen
|
||||
and arch-chroot "$mountDir" locale-gen
|
||||
end
|
||||
|
||||
and begin
|
||||
|
@ -77,14 +89,9 @@ begin
|
|||
and echo "$ARCH_HOSTNAME" | arch-chroot "$mountDir" tee /etc/hostname > /dev/null
|
||||
|
||||
and arch-chroot "$mountDir" mkinitcpio -P
|
||||
and arch-chroot "$mountDir" bash "$tempDir/../Software/GRUB/install.sh"
|
||||
and runHook installDrivers "Installing drivers..." || true
|
||||
and arch-chroot "$mountDir" bash "$tempDir/../Software/sudo/install.sh"
|
||||
and pacstrap -K "$mountDir" fish nix tmux
|
||||
|
||||
and USER_NAME="$USER_NAME" \
|
||||
USER_DISPLAYNAME="$USER_DISPLAYNAME" \
|
||||
USER_GROUPS="$USER_GROUPS" \
|
||||
arch-chroot "$mountDir" bash "$tempDir/user.sh"
|
||||
and runInOS fish "$tempDir/../Software/GRUB/main.fish"
|
||||
|
||||
and if set -l keyLayout (getConfig valhalla.keyboardLayout)
|
||||
set -l serviceName set-keymap.service
|
||||
|
@ -104,7 +111,7 @@ begin
|
|||
set -l file "/etc/systemd/system/getty@tty1.service.d/autologin.conf"
|
||||
arch-chroot "$mountDir" mkdir -p (dirname "$file")
|
||||
|
||||
begin
|
||||
and begin
|
||||
printf %s\n \
|
||||
"[Service]" \
|
||||
"ExecStart=" \
|
||||
|
@ -118,5 +125,5 @@ begin
|
|||
end
|
||||
end
|
||||
|
||||
source "$dir/../../Common/OS/setup.fish"
|
||||
runSetup
|
||||
end
|
||||
|
|
273
scripts/Arch/Scripts/deploy.fish
Normal file
273
scripts/Arch/Scripts/deploy.fish
Normal file
|
@ -0,0 +1,273 @@
|
|||
function deploySoftware -d "Deploys a the specified software action" -a action
|
||||
set -l dir (status dirname)
|
||||
. "$dir/software.fish"
|
||||
|
||||
if [ -z "$action" ]
|
||||
set action "install"
|
||||
end
|
||||
|
||||
set -l isInstall (
|
||||
if [ "$action" = "install" ]
|
||||
echo true
|
||||
else
|
||||
echo false
|
||||
end
|
||||
)
|
||||
|
||||
if collectionActive essential
|
||||
if $isInstall
|
||||
yayinst \
|
||||
mkinitcpio-firmware \
|
||||
neofetch \
|
||||
bash-completion \
|
||||
wget \
|
||||
oh-my-posh-bin \
|
||||
screen \
|
||||
tmux \
|
||||
htop \
|
||||
lsof \
|
||||
zsh \
|
||||
fish \
|
||||
pkgfile \
|
||||
sl \
|
||||
rar
|
||||
|
||||
and sudo pkgfile --update
|
||||
end
|
||||
|
||||
and source "$dir/../../Common/Software/bash/main.fish" $action
|
||||
and source "$dir/../Software/openssh/main.fish" $action
|
||||
and source "$dir/../Software/vim/main.fish" $action
|
||||
and source "$dir/../Software/git/main.fish" $action
|
||||
and source "$dir/../Software/zoxide/main.fish" $action
|
||||
and source "$dir/../Software/logo-ls/main.fish" $action
|
||||
|
||||
# GRUB Shenanigans - if that's not essential I don't know what is!
|
||||
and source "$dir/../Software/minegrub-theme/main.fish" $action
|
||||
end
|
||||
|
||||
and if collectionActive common
|
||||
if $isInstall
|
||||
yayinst \
|
||||
tldr \
|
||||
btop \
|
||||
terminal-parrot
|
||||
end
|
||||
|
||||
and source "$dir/../Software/aliae/main.fish" $action
|
||||
end
|
||||
|
||||
and if collectionActive desktopExperience
|
||||
source "$dir/../Software/KDE/main.fish" $action
|
||||
and source "$dir/../Software/sddm/main.fish" $action
|
||||
|
||||
and if $isInstall
|
||||
yayinst \
|
||||
maliit-keyboard \
|
||||
dconf-editor \
|
||||
flatpak (
|
||||
# Fixes: https://www.reddit.com/r/flatpak/comments/168tav2/how_to_fix_blurry_flatpaks_on_high_resolution/
|
||||
) xdg-desktop-portal-gtk
|
||||
|
||||
# Fonts
|
||||
and yayinst \
|
||||
ttf-cascadia-code-nerd \
|
||||
ttf-ms-win11-auto \
|
||||
otf-cascadia-code \
|
||||
ttf-droid
|
||||
|
||||
# Password Management
|
||||
and yayinst \
|
||||
bitwarden \
|
||||
keepass \
|
||||
keepassxc
|
||||
|
||||
# Tools
|
||||
and yayinst \
|
||||
android-tools \
|
||||
blackbox-terminal \
|
||||
cpu-x \
|
||||
gnome-calculator \
|
||||
yubikey-manager-qt \
|
||||
wireshark-qt \
|
||||
linux-wifi-hotspot
|
||||
|
||||
# Remote Access
|
||||
and yayinst \
|
||||
remmina (
|
||||
# RDP support for Remmina
|
||||
) freerdp
|
||||
|
||||
# Creativity
|
||||
and yayinst \
|
||||
gimp \
|
||||
inkscape
|
||||
|
||||
# Office stuff
|
||||
and yayinst \
|
||||
libreoffice-fresh \
|
||||
naps2-bin \
|
||||
pdfarranger \
|
||||
protonmail-bridge \
|
||||
thunderbird
|
||||
|
||||
and yayinst \
|
||||
texlive \
|
||||
texlive-langgerman
|
||||
|
||||
# Virtualization
|
||||
and yayinst propertree-git # mac .plist config file editor
|
||||
|
||||
and if collectionActive school
|
||||
yayinst \
|
||||
teams-for-linux \
|
||||
xournalpp-git \
|
||||
rnote
|
||||
end
|
||||
end
|
||||
|
||||
# Internet Access
|
||||
and source "$dir/../Software/Firefox/main.fish" $action
|
||||
and source "$dir/../Software/brave/main.fish" $action
|
||||
and source "$dir/../Software/Pennywise/main.fish" $action
|
||||
|
||||
# Virtualization
|
||||
and source "$dir/../Software/waydroid/main.fish" $action
|
||||
and source "$dir/../Software/Virtual Machine Manager/main.fish" $action
|
||||
|
||||
and if collectionActive coding
|
||||
if $isInstall
|
||||
yayinst \
|
||||
devdocs-desktop \
|
||||
godot-mono
|
||||
end
|
||||
|
||||
and source "$dir/../Software/vscode/main.fish" $action
|
||||
end
|
||||
end
|
||||
|
||||
and if collectionActive server
|
||||
else
|
||||
if $isInstall
|
||||
# Energy Saving
|
||||
yayinst power-profiles-daemon
|
||||
and sudo systemctl enable --now power-profiles-daemon
|
||||
|
||||
# Networking
|
||||
and yayinst \
|
||||
networkmanager-openvpn \
|
||||
networkmanager-openconnect \
|
||||
proton-vpn-gtk-app \
|
||||
protonvpn-cli-community
|
||||
end
|
||||
|
||||
and if collectionActive common
|
||||
if $isInstall
|
||||
and yayinst \
|
||||
img2pdf \
|
||||
numbat-bin \
|
||||
nvtop \
|
||||
pdf2svg \
|
||||
tnef
|
||||
end
|
||||
|
||||
and source "$dir/../Software/IcedTea/main.fish" $action
|
||||
end
|
||||
end
|
||||
|
||||
and if collectionActive media && $isInstall
|
||||
yayinst \
|
||||
ytmdesktop-bin \
|
||||
netflix \
|
||||
spotube-bin \
|
||||
stremio \
|
||||
tidal-hifi-bin \
|
||||
nuclear-player-bin \
|
||||
audius-client-bin
|
||||
|
||||
and yayinst tidal-dl || true
|
||||
end
|
||||
|
||||
and if collectionActive fileSync
|
||||
if $isInstall
|
||||
yayinst nextcloud-client
|
||||
end
|
||||
|
||||
and source "$dir/../Software/rclone/main.fish" $action
|
||||
end
|
||||
|
||||
and if collectionActive socialMedia && $isInstall
|
||||
|
||||
yayinst \
|
||||
signal-desktop \
|
||||
vesktop-bin
|
||||
|
||||
yes y | yayinst threema-desktop
|
||||
yes y | yayinst nodejs
|
||||
end
|
||||
|
||||
and if collectionActive productivity && $isInstall
|
||||
yayinst \
|
||||
anki-bin
|
||||
end
|
||||
|
||||
and if collectionActive school && $isInstall
|
||||
yayinst \
|
||||
jdk17-temurin \
|
||||
gradle \
|
||||
jetbrains-toolbox
|
||||
|
||||
and source "$dir/../../Common/Software/udev/ct-board.fish"
|
||||
end
|
||||
|
||||
and if collectionActive coding
|
||||
if $isInstall
|
||||
yayinst \
|
||||
archiso \
|
||||
wimlib (
|
||||
# ISO support for wimlib
|
||||
) cdrkit \
|
||||
tea \
|
||||
woodpecker-cli (
|
||||
# AsciiDocs
|
||||
) python-docutils (
|
||||
# reStructuredText
|
||||
) esbonio
|
||||
end
|
||||
|
||||
and source "$dir/../Software/n/main.fish" $action
|
||||
end
|
||||
|
||||
and if collectionActive python
|
||||
if $isInstall
|
||||
yayinst \
|
||||
python \
|
||||
python-pip \
|
||||
python-pipenv
|
||||
end
|
||||
|
||||
and source "$dir/../Software/pyenv/main.fish" $action
|
||||
end
|
||||
|
||||
and if collectionActive gaming
|
||||
if $isInstall
|
||||
yayinst \
|
||||
steam \
|
||||
chiaki \
|
||||
osu-lazer-bin \
|
||||
libretro \
|
||||
supertux \
|
||||
gamepad-tool-bin
|
||||
|
||||
and flatpak install -y flathub com.usebottels.bottles
|
||||
end
|
||||
|
||||
and source "$dir/../Software/Lutris/main.fish" $action
|
||||
end
|
||||
|
||||
and if collectionActive essential && $isInstall
|
||||
yayinst bb
|
||||
end
|
||||
end
|
||||
|
||||
deploySoftware $argv
|
12
scripts/Arch/Scripts/software.fish
Normal file → Executable file
12
scripts/Arch/Scripts/software.fish
Normal file → Executable file
|
@ -3,11 +3,19 @@ begin
|
|||
set -l dir (status dirname)
|
||||
source "$dir/../../Common/Scripts/software.fish"
|
||||
|
||||
function runYay -d "Run yay with pre-configured defaults"
|
||||
yay --needed --answerclean=None --answerdiff=None -Syu $argv
|
||||
end
|
||||
|
||||
function yayinst -d "Install yay-package non-interactively"
|
||||
yay --noconfirm --needed --answerclean=None --answerdiff=None -Syu $argv
|
||||
runYay --noconfirm $argv
|
||||
end
|
||||
|
||||
function runPacman -d "Run pacman with pre-configured defaults"
|
||||
sudo pacman --needed -Syu $argv
|
||||
end
|
||||
|
||||
function pacinst -d "Install pacman-package non-interactively"
|
||||
sudo pacman --noconfirm --needed -Syu $argv
|
||||
runPacman --noconfirm $argv
|
||||
end
|
||||
end
|
||||
|
|
15
scripts/Arch/Software/Firefox/main.fish
Executable file
15
scripts/Arch/Software/Firefox/main.fish
Executable file
|
@ -0,0 +1,15 @@
|
|||
#!/bin/env fish
|
||||
begin
|
||||
set -l dir (status dirname)
|
||||
source "$dir/../../Scripts/software.fish"
|
||||
|
||||
function installSW -V dir
|
||||
yayinst firefox
|
||||
end
|
||||
|
||||
function configureSW -V dir
|
||||
fish "$dir/../../../Common/Software/Firefox/main.fish" configure
|
||||
end
|
||||
|
||||
runInstaller $argv
|
||||
end
|
16
scripts/Arch/Software/GRUB/main.fish
Executable file
16
scripts/Arch/Software/GRUB/main.fish
Executable file
|
@ -0,0 +1,16 @@
|
|||
#!/bin/env fish
|
||||
begin
|
||||
set -l dir (status dirname)
|
||||
source "$dir/../../Scripts/software.fish"
|
||||
|
||||
function installSW -V dir
|
||||
pacinst \
|
||||
grub \
|
||||
efibootmgr \
|
||||
os-prober
|
||||
|
||||
fish "$dir/../../../Common/Software/GRUB/main.fish" configure
|
||||
end
|
||||
|
||||
runInstaller $argv
|
||||
end
|
22
scripts/Arch/Software/IcedTea/main.fish
Executable file
22
scripts/Arch/Software/IcedTea/main.fish
Executable file
|
@ -0,0 +1,22 @@
|
|||
#!/bin/env fish
|
||||
begin
|
||||
set -l dir (status dirname)
|
||||
source "$dir/../../Scripts/software.fish"
|
||||
|
||||
function installSW
|
||||
yayinst \
|
||||
jdk-temurin
|
||||
|
||||
yayinst \
|
||||
icedtea-web
|
||||
end
|
||||
|
||||
function configureSW
|
||||
# Allow execution of huwaei KVM application (uses out of date security mechanisms)
|
||||
sudo sed -i \
|
||||
"/^jdk.jar.disabledAlgorithms=/{ :comment; s/\(.*\)/#\1/; /\\\\\$/{ n; bcomment; }; }" \
|
||||
/usr/lib/jvm/default-runtime/conf/security/java.security
|
||||
end
|
||||
|
||||
runInstaller $argv
|
||||
end
|
29
scripts/Arch/Software/KDE/main.fish
Executable file
29
scripts/Arch/Software/KDE/main.fish
Executable file
|
@ -0,0 +1,29 @@
|
|||
#!/bin/env fish
|
||||
begin
|
||||
set -l dir (status dirname)
|
||||
source "$dir/../../Scripts/software.fish"
|
||||
|
||||
function installSW
|
||||
yayinst \
|
||||
pipewire-jack \
|
||||
plasma-meta (
|
||||
# As per: https://wiki.archlinux.org/title/KDE#Discover_does_not_show_any_applications
|
||||
) packagekit-qt6 \
|
||||
tesseract-data-deu \
|
||||
tesseract-data-eng \
|
||||
kde-applications-meta (
|
||||
# Automatic rotation: https://wiki.archlinux.org/title/Tablet_PC#With_a_KDE_module
|
||||
) iio-sensor-proxy \
|
||||
pipewire-audio \
|
||||
pipewire-pulse (
|
||||
# File Exchange Support for KDE Connect: https://wiki.archlinux.org/title/KDE#KDE_Connect
|
||||
) sshfs \
|
||||
fwupd
|
||||
end
|
||||
|
||||
function configureSW
|
||||
sudo systemctl enable --now bluetooth
|
||||
end
|
||||
|
||||
runInstaller $argv
|
||||
end
|
72
scripts/Arch/Software/Lutris/main.fish
Executable file
72
scripts/Arch/Software/Lutris/main.fish
Executable file
|
@ -0,0 +1,72 @@
|
|||
#!/bin/env fish
|
||||
begin
|
||||
set -l dir (status dirname)
|
||||
source "$dir/../../Scripts/software.fish"
|
||||
|
||||
function installSW
|
||||
yayinst \
|
||||
wine-staging \
|
||||
giflib \
|
||||
lib32-giflib \
|
||||
libpng \
|
||||
lib32-libpng \
|
||||
libldap \
|
||||
lib32-libldap \
|
||||
gnutls \
|
||||
lib32-gnutls \
|
||||
mpg123 \
|
||||
lib32-mpg123 \
|
||||
openal \
|
||||
lib32-openal \
|
||||
v4l-utils \
|
||||
lib32-v4l-utils \
|
||||
libpulse \
|
||||
lib32-libpulse \
|
||||
libgpg-error \
|
||||
lib32-libgpg-error \
|
||||
alsa-plugins \
|
||||
lib32-alsa-plugins \
|
||||
alsa-lib \
|
||||
lib32-alsa-lib \
|
||||
libjpeg-turbo \
|
||||
lib32-libjpeg-turbo \
|
||||
sqlite \
|
||||
lib32-sqlite \
|
||||
libxcomposite \
|
||||
lib32-libxcomposite \
|
||||
libxinerama \
|
||||
lib32-libgcrypt \
|
||||
libgcrypt \
|
||||
lib32-libxinerama \
|
||||
ncurses \
|
||||
lib32-ncurses \
|
||||
ocl-icd \
|
||||
lib32-ocl-icd \
|
||||
libxslt \
|
||||
lib32-libxslt \
|
||||
libva \
|
||||
lib32-libva \
|
||||
gtk3 \
|
||||
lib32-gtk3 \
|
||||
gst-plugins-base-libs \
|
||||
lib32-gst-plugins-base-libs \
|
||||
vulkan-icd-loader \
|
||||
lib32-vulkan-icd-loader
|
||||
|
||||
yayinst (
|
||||
# Extracting GOG games
|
||||
) innoextract \
|
||||
gamemode \
|
||||
lib32-gamemode \
|
||||
vkd3d \
|
||||
lib32-vkd3d \
|
||||
gamescope \
|
||||
yad \
|
||||
protontricks \
|
||||
protonup-qt-bin
|
||||
|
||||
yayinst lutris
|
||||
end
|
||||
|
||||
runInstaller $argv
|
||||
end
|
23
scripts/Arch/Software/Pennywise/main.fish
Executable file
23
scripts/Arch/Software/Pennywise/main.fish
Executable file
|
@ -0,0 +1,23 @@
|
|||
#!/bin/env fish
|
||||
begin
|
||||
set -l dir (status dirname)
|
||||
source "$dir/../../Scripts/software.fish"
|
||||
|
||||
function installSW
|
||||
yayinst \
|
||||
pennywise-bin
|
||||
end
|
||||
|
||||
function configureSW
|
||||
set -l patch " --no-sandbox"
|
||||
set -l pattern "^Exec=.*"
|
||||
set -l indicator "$pattern$patch"
|
||||
set -l file /usr/share/applications/pennywise.desktop
|
||||
|
||||
if ! grep "$indicator" "$file" > /dev/null
|
||||
sudo sed -i "/$pattern/s/$pattern/\0 --no-sandbox/" "$file"
|
||||
end
|
||||
end
|
||||
|
||||
runInstaller $argv
|
||||
end
|
26
scripts/Arch/Software/Virtual Machine Manager/main.fish
Executable file
26
scripts/Arch/Software/Virtual Machine Manager/main.fish
Executable file
|
@ -0,0 +1,26 @@
|
|||
#!/bin/env fish
|
||||
begin
|
||||
set -l dir (status dirname)
|
||||
source "$dir/../../Scripts/software.fish"
|
||||
|
||||
function installSW
|
||||
yayinst qemu-full
|
||||
yes | runPacman --asdeps iptables-nft
|
||||
|
||||
yes | yayinst \
|
||||
virtiofsd \
|
||||
virt-manager \
|
||||
dnsmasq \
|
||||
swtpm \
|
||||
lxc \
|
||||
virt-bootstrap-git
|
||||
end
|
||||
|
||||
function configureSW -V dir
|
||||
sudo systemctl enable --now libvirtd
|
||||
sudo systemctl enable --now virtlogd
|
||||
fish "$dir/../../../Common/Software/Virtual Machine Manager/main.fish" configure
|
||||
end
|
||||
|
||||
runInstaller $argv
|
||||
end
|
16
scripts/Arch/Software/aliae/main.fish
Executable file
16
scripts/Arch/Software/aliae/main.fish
Executable file
|
@ -0,0 +1,16 @@
|
|||
#!/bin/env fish
|
||||
begin
|
||||
set -l dir (status dirname)
|
||||
source "$dir/../../Scripts/software.fish"
|
||||
|
||||
function installSW
|
||||
yayinst \
|
||||
aliae-bin
|
||||
end
|
||||
|
||||
function configureSW -V dir
|
||||
fish "$dir/../../../Common/Software/aliae/main.fish" configure
|
||||
end
|
||||
|
||||
runInstaller $argv
|
||||
end
|
4
scripts/Arch/Software/base-devel/main.fish
Normal file → Executable file
4
scripts/Arch/Software/base-devel/main.fish
Normal file → Executable file
|
@ -5,7 +5,7 @@ begin
|
|||
|
||||
function installSW
|
||||
pacinst base-devel
|
||||
configureSW
|
||||
and configureSW
|
||||
end
|
||||
|
||||
function configureSW
|
||||
|
@ -17,6 +17,8 @@ begin
|
|||
"OPTIONS+=(!debug)" \
|
||||
"MAKEFLAGS=\"-j\$(nproc)\""
|
||||
end | sudo tee "$customFile" > /dev/null
|
||||
else
|
||||
true
|
||||
end
|
||||
end
|
||||
|
||||
|
|
18
scripts/Arch/Software/brave/main.fish
Executable file
18
scripts/Arch/Software/brave/main.fish
Executable file
|
@ -0,0 +1,18 @@
|
|||
#!/bin/env fish
|
||||
begin
|
||||
set -l dir (status dirname)
|
||||
source "$dir/../../Scripts/software.fish"
|
||||
|
||||
function installSW
|
||||
yayinst brave-bin (
|
||||
# brave-beta-bin
|
||||
# brave-nightly-bin
|
||||
)
|
||||
end
|
||||
|
||||
function configureSW -V dir
|
||||
fish "$dir/../../../Common/Software/brave/main.fish" configure
|
||||
end
|
||||
|
||||
runInstaller $argv
|
||||
end
|
21
scripts/Arch/Software/git/main.fish
Executable file
21
scripts/Arch/Software/git/main.fish
Executable file
|
@ -0,0 +1,21 @@
|
|||
#!/bin/env fish
|
||||
begin
|
||||
set -l dir (status dirname)
|
||||
source "$dir/../../Scripts/software.fish"
|
||||
|
||||
function installSW
|
||||
yayinst \
|
||||
git \
|
||||
git-lfs \
|
||||
gitflow-avh \
|
||||
gitflow-bashcompletion-avh \
|
||||
gitflow-fishcompletion-avh \
|
||||
gitflow-zshcompletion-avh
|
||||
end
|
||||
|
||||
function configureSW -V dir
|
||||
fish "$dir/../../../Common/Software/git/main.fish" configure
|
||||
end
|
||||
|
||||
runInstaller $argv
|
||||
end
|
42
scripts/Arch/Software/logo-ls/main.fish
Executable file
42
scripts/Arch/Software/logo-ls/main.fish
Executable file
|
@ -0,0 +1,42 @@
|
|||
#!/bin/env fish
|
||||
begin
|
||||
set -l dir (status dirname)
|
||||
source "$dir/../../Scripts/software.fish"
|
||||
|
||||
function installSW -V dir
|
||||
set -l dirName (realpath "$dir")
|
||||
set -l contextRoot (mktemp -d)
|
||||
set -l pkgName logo-ls
|
||||
set -l patchName workaround.patch
|
||||
|
||||
if not type -q logo-ls
|
||||
begin
|
||||
pushd "$contextRoot" > /dev/null
|
||||
yay -G -f "$pkgName"
|
||||
cd "$pkgName"
|
||||
cp "$dirName/$patchName" .
|
||||
|
||||
sed -i \
|
||||
-e "/^source=(/s/source=(/\0$patchName /" \
|
||||
-e "/^md5sums=(/s/^md5sums=(/\0SKIP /" \
|
||||
-e "/^build() {/,/}/{" \
|
||||
-e "/^[[:space:]]*cd/{" \
|
||||
-e "a cat ../$patchName | patch --strip 1 --forward --merge" \
|
||||
-e "}" \
|
||||
-e "}" \
|
||||
PKGBUILD
|
||||
|
||||
makepkg --noconfirm -si --force
|
||||
popd > /dev/null
|
||||
end
|
||||
|
||||
rm -rf "$contextRoot"
|
||||
end
|
||||
end
|
||||
|
||||
function configureSW -V dir
|
||||
fish "$dir/../../../Common/Software/logo-ls/main.fish" configure
|
||||
end
|
||||
|
||||
runInstaller $argv
|
||||
end
|
15
scripts/Arch/Software/minegrub-theme/main.fish
Executable file
15
scripts/Arch/Software/minegrub-theme/main.fish
Executable file
|
@ -0,0 +1,15 @@
|
|||
#!/bin/env fish
|
||||
begin
|
||||
set -l dir (status dirname)
|
||||
source "$dir/../../Scripts/software.fish"
|
||||
|
||||
function installSW
|
||||
yayinst grub-theme-minegrub-git
|
||||
end
|
||||
|
||||
function configureSW -V dir
|
||||
fish "$dir/../../../Common/Software/minegrub-theme/main.fish" configure
|
||||
end
|
||||
|
||||
runInstaller $argv
|
||||
end
|
15
scripts/Arch/Software/n/main.fish
Executable file
15
scripts/Arch/Software/n/main.fish
Executable file
|
@ -0,0 +1,15 @@
|
|||
#!/bin/env fish
|
||||
begin
|
||||
set -l dir (status dirname)
|
||||
source "$dir/../../Scripts/software.fish"
|
||||
|
||||
function installSW
|
||||
yayinst nodejs-n
|
||||
end
|
||||
|
||||
function configureSW -V dir
|
||||
sudo --preserve-env --set-home fish "$dir/../../../Common/Software/n/main.fish" configure
|
||||
end
|
||||
|
||||
runInstaller $argv
|
||||
end
|
20
scripts/Arch/Software/nix/main.fish
Executable file
20
scripts/Arch/Software/nix/main.fish
Executable file
|
@ -0,0 +1,20 @@
|
|||
#!/bin/env fish
|
||||
begin
|
||||
set -l dir (status dirname)
|
||||
source "$dir/../../Scripts/software.fish"
|
||||
|
||||
function installSW
|
||||
yayinst \
|
||||
nix \
|
||||
nil-git
|
||||
|
||||
configureSW
|
||||
end
|
||||
|
||||
function configureSW -V dir
|
||||
sudo systemctl enable --now nix-daemon
|
||||
fish "$dir/../../../Common/Software/nix/main.fish" configure
|
||||
end
|
||||
|
||||
runInstaller $argv
|
||||
end
|
23
scripts/Arch/Software/openssh/main.fish
Executable file
23
scripts/Arch/Software/openssh/main.fish
Executable file
|
@ -0,0 +1,23 @@
|
|||
#!/bin/env fish
|
||||
begin
|
||||
set -l dir (status dirname)
|
||||
source "$dir/../../Scripts/software.fish"
|
||||
|
||||
function installSW
|
||||
yayinst \
|
||||
openssh \
|
||||
libfido2
|
||||
end
|
||||
|
||||
function configureSW
|
||||
sudo systemctl --global enable ssh-agent
|
||||
|
||||
and begin
|
||||
printf %s\n \
|
||||
"#!/bin/bash" \
|
||||
'export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket"'
|
||||
end | sudo tee "/etc/profile.d/openssh.sh" > /dev/null
|
||||
end
|
||||
|
||||
runInstaller $argv
|
||||
end
|
4
scripts/Arch/Software/pacman/main.fish
Normal file → Executable file
4
scripts/Arch/Software/pacman/main.fish
Normal file → Executable file
|
@ -8,7 +8,7 @@ begin
|
|||
end
|
||||
|
||||
function configureSW
|
||||
sed -i \
|
||||
sudo sed -i \
|
||||
-e '/^\[options\]$/,/^\[/{' \
|
||||
-e 's/^#\?\(Color\)$/\1/;' \
|
||||
-e '/^# Misc Options$/{' (
|
||||
|
@ -19,7 +19,7 @@ begin
|
|||
-e '/^#\?\[multilib\]$/,/^$/{ s/^#\?\(.*\)$/\1/; }' \
|
||||
/etc/pacman.conf
|
||||
|
||||
pacman -Sy
|
||||
sudo pacman -Sy
|
||||
end
|
||||
|
||||
runInstaller $argv
|
||||
|
|
15
scripts/Arch/Software/pyenv/main.fish
Executable file
15
scripts/Arch/Software/pyenv/main.fish
Executable file
|
@ -0,0 +1,15 @@
|
|||
#!/bin/env fish
|
||||
begin
|
||||
set -l dir (status dirname)
|
||||
source "$dir/../../Scripts/software.fish"
|
||||
|
||||
function installSW
|
||||
yayinst pyenv
|
||||
end
|
||||
|
||||
function configureSW -V dir
|
||||
fish "$dir/../../../Common/Software/pyenv/main.fish" configure
|
||||
end
|
||||
|
||||
runInstaller $argv
|
||||
end
|
17
scripts/Arch/Software/rclone/main.fish
Executable file
17
scripts/Arch/Software/rclone/main.fish
Executable file
|
@ -0,0 +1,17 @@
|
|||
#!/bin/env fish
|
||||
begin
|
||||
set -l dir (status dirname)
|
||||
source "$dir/../../Scripts/software.fish"
|
||||
source "$dir/../../../Common/Software/rclone/main.fish"
|
||||
|
||||
function installSW
|
||||
yayinst \
|
||||
rclone
|
||||
end
|
||||
|
||||
function configureSW -V dir
|
||||
fish "$dir/../../../Common/Software/rclone/main.fish" configure
|
||||
end
|
||||
|
||||
runInstaller $argv
|
||||
end
|
21
scripts/Arch/Software/sddm/main.fish
Executable file
21
scripts/Arch/Software/sddm/main.fish
Executable file
|
@ -0,0 +1,21 @@
|
|||
#!/bin/env fish
|
||||
begin
|
||||
set -l dir (status dirname)
|
||||
source "$dir/../../Scripts/software.fish"
|
||||
|
||||
function installSW
|
||||
# `git` version
|
||||
# yes | yayinst sddm-git
|
||||
# stable version
|
||||
yayinst sddm
|
||||
end
|
||||
|
||||
function configureSW -V dir
|
||||
set -l configDir /etc/sddm.conf.d
|
||||
sudo systemctl enable sddm
|
||||
sudo mkdir -p "$configDir"
|
||||
sudo cp "$dir/wayland.conf" "$configDir/10-wayland.conf"
|
||||
end
|
||||
|
||||
runInstaller $argv
|
||||
end
|
6
scripts/Arch/Software/sddm/wayland.conf
Normal file
6
scripts/Arch/Software/sddm/wayland.conf
Normal file
|
@ -0,0 +1,6 @@
|
|||
[General]
|
||||
DisplayServer=wayland
|
||||
GreeterEnvironment=QT_WAYLAND_SHELL_INTEGRATION=layer-shell
|
||||
|
||||
[Wayland]
|
||||
CompositorCommand=kwin_wayland --drm --no-lockscreen --no-global-shortcuts --locale1 --inputmethod maliit-keyboard
|
23
scripts/Arch/Software/vim/main.fish
Executable file
23
scripts/Arch/Software/vim/main.fish
Executable file
|
@ -0,0 +1,23 @@
|
|||
#!/bin/env fish
|
||||
begin
|
||||
set -l dir (status dirname)
|
||||
source "$dir/../../Scripts/software.fish"
|
||||
source "$dir/../../../Common/Software/vim/main.fish"
|
||||
|
||||
function installSW
|
||||
yayinst (
|
||||
# Necessary for accessing clipboard in terminal: https://wiki.archlinux.org/title/Vim
|
||||
) gvim \
|
||||
vi-vim-symlink (
|
||||
# Add clipboard support for wayland: https://www.reddit.com/r/Fedora/comments/ax9p9t/comment/jjb4p7b/
|
||||
) vim-wayland-clipboard-git \
|
||||
wl-clipboard
|
||||
end
|
||||
|
||||
|
||||
function configureSW -V dir
|
||||
fish "$dir/../../../Common/Software/vim/main.fish" configure
|
||||
end
|
||||
|
||||
runInstaller $argv
|
||||
end
|
31
scripts/Arch/Software/vscode/main.fish
Executable file
31
scripts/Arch/Software/vscode/main.fish
Executable file
|
@ -0,0 +1,31 @@
|
|||
#!/bin/env fish
|
||||
begin
|
||||
set -l dir (status dirname)
|
||||
source "$dir/../../Scripts/software.fish"
|
||||
|
||||
function installSW
|
||||
yayinst \
|
||||
vscodium-bin \
|
||||
visual-studio-code-bin (
|
||||
# Trash functionality
|
||||
) gvfs
|
||||
end
|
||||
|
||||
function configureSW -V dir
|
||||
set -l bins codium code
|
||||
|
||||
for bin in $bins
|
||||
if type -q "$bin"
|
||||
begin
|
||||
set -l file "/etc/skel/.config/$bin-flags.conf"
|
||||
sudo mkdir -p (dirname "$file")
|
||||
echo "--touch-events" | sudo tee "$file" > /dev/null
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
fish "$dir/../../../Common/Software/vscode/main.fish" configure
|
||||
end
|
||||
|
||||
runInstaller $argv
|
||||
end
|
20
scripts/Arch/Software/waydroid/main.fish
Executable file
20
scripts/Arch/Software/waydroid/main.fish
Executable file
|
@ -0,0 +1,20 @@
|
|||
#!/bin/env fish
|
||||
begin
|
||||
set -l dir (status dirname)
|
||||
source "$dir/../../Scripts/software.fish"
|
||||
|
||||
function installSW
|
||||
yayinst (
|
||||
# Waydroid prerequisite: https://wiki.archlinux.org/title/Waydroid#DKMS_modules
|
||||
) binder_linux-dkms \
|
||||
waydroid (
|
||||
# For installing ARM suppot on waydroid
|
||||
) waydroid-script-git (
|
||||
# Clipboard support: https://wiki.archlinux.org/title/Waydroid#Failed_to_start_Clipboard_manager_service
|
||||
) python-pyclip (
|
||||
# Wayland clipboard support: https://github.com/spyoungtech/pyclip?tab=readme-ov-file#linux
|
||||
) wl-clipboard
|
||||
end
|
||||
|
||||
runInstaller $argv
|
||||
end
|
0
scripts/Arch/Software/yay/main.fish
Normal file → Executable file
0
scripts/Arch/Software/yay/main.fish
Normal file → Executable file
16
scripts/Arch/Software/zoxide/main.fish
Executable file
16
scripts/Arch/Software/zoxide/main.fish
Executable file
|
@ -0,0 +1,16 @@
|
|||
#!/bin/env fish
|
||||
begin
|
||||
set -l dir (status dirname)
|
||||
source "$dir/../../Scripts/software.fish"
|
||||
|
||||
function installSW
|
||||
yayinst \
|
||||
zoxide
|
||||
end
|
||||
|
||||
function configureSW -V dir
|
||||
fish "$dir/../../../Common/Software/zoxide/main.fish" configure
|
||||
end
|
||||
|
||||
runInstaller $argv
|
||||
end
|
|
@ -1,4 +1,4 @@
|
|||
#!/bin/bash
|
||||
pushd "${BASH_SOURCE%/*}" > /dev/null;
|
||||
sudo cp ./firefox.sh /etc/profile.d/;
|
||||
sudo cp ../../Software/Firefox/firefox.sh /etc/profile.d/;
|
||||
popd > /dev/null;
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
#!/bin/pwsh
|
||||
. "$PSScriptRoot/../powershell/lib.ps1";
|
||||
. "$PSScriptRoot/../../Software/PowerShell/Profile.ps1";
|
||||
|
||||
Add-PowerShellProfileStatement `
|
||||
-System `
|
||||
-Category "oh-my-posh" `
|
||||
-Statement $(
|
||||
-Script $(
|
||||
@(
|
||||
"# Oh My Posh!",
|
||||
$(Get-ScriptInitializer "oh-my-posh init pwsh"),
|
||||
|
|
|
@ -1,28 +0,0 @@
|
|||
alias:
|
||||
- name: totsch
|
||||
value: git
|
||||
env:
|
||||
- name: POSH_THEME
|
||||
value: '{{ if eq .OS "windows" }}{{ .Home }}/Nextcloud/.omp{{ else }}/usr/local/share/oh-my-posh/themes{{ end }}/manuel.omp.json'
|
||||
path: []
|
||||
script:
|
||||
- value: |
|
||||
while IFS= read -r -d '' file;
|
||||
do
|
||||
. "$file";
|
||||
done < <(find {/etc,~/.config}/bash/conf.d/* -print0 2> /dev/null);
|
||||
if: match .Shell "bash"
|
||||
- value: |
|
||||
# Profile Files
|
||||
$profileRoot = Split-Path -Parent $PROFILE;
|
||||
$profilePaths = @(
|
||||
"$profileRoot/conf.d/*.ps1",
|
||||
"{{ if eq .OS "windows" }}$env:ProgramData{{ else }}/etc{{ end }}/powershell/conf.d/*.ps1"
|
||||
);
|
||||
|
||||
foreach ($profilePath in $profilePaths) {
|
||||
if (Test-Path $profilePath) {
|
||||
Get-Item $profilePath | ForEach-Object { . $_; };
|
||||
}
|
||||
}
|
||||
if: match .Shell "pwsh"
|
|
@ -1,8 +1,8 @@
|
|||
#!/bin/pwsh
|
||||
. "$PSScriptRoot/../powershell/lib.ps1";
|
||||
. "$PSScriptRoot/../../Software/PowerShell/Profile.ps1";
|
||||
|
||||
foreach ($defaultUser in @($true, $false)) {
|
||||
Add-PowerShellProfileStatement -DefaultUser:$defaultUser -Statement "# aliae`naliae init pwsh | Invoke-Expression";
|
||||
Add-PowerShellProfileStatement -DefaultUser:$defaultUser -Script "# aliae`naliae init pwsh | Invoke-Expression";
|
||||
}
|
||||
|
||||
Add-PowerShellProfileStatement -System -Category "aliae" -Statement "# aliae`n$(Get-ScriptInitializer "aliae completion powershell")";
|
||||
Add-PowerShellProfileStatement -System -Category "aliae" -Script "# aliae`n$(Get-ScriptInitializer "aliae completion powershell")";
|
||||
|
|
|
@ -1,95 +0,0 @@
|
|||
#!/bin/pwsh
|
||||
$null = New-Module {
|
||||
function Add-PowerShellProfileStatement() {
|
||||
param (
|
||||
[Parameter(ParameterSetName="Global", Mandatory)]
|
||||
[switch]$System,
|
||||
[Parameter(ParameterSetName="DefaultUser", Mandatory)]
|
||||
[switch]$DefaultUser,
|
||||
[Parameter(ParameterSetName="Home")]
|
||||
[string]$HomeDir = "~",
|
||||
[Parameter(ParameterSetName="Global", Mandatory)]
|
||||
[Parameter(ParameterSetName="DefaultUser")]
|
||||
[Parameter(ParameterSetName="Home")]
|
||||
[string]$Category = $null,
|
||||
[Parameter(Position=0, Mandatory=$true)]
|
||||
[string]$Statement,
|
||||
[switch]$Overwrite
|
||||
)
|
||||
|
||||
[System.Collections.Generic.List[string]] $profiles = @();
|
||||
|
||||
if ($System) {
|
||||
$configRoot;
|
||||
|
||||
if ($IsWindows) {
|
||||
$configRoot = "$env:ProgramData";
|
||||
} else {
|
||||
$configRoot = "/etc";
|
||||
}
|
||||
|
||||
$profiles = @("$configRoot/powershell/.");
|
||||
} else {
|
||||
[System.Collections.Generic.List[string]] $shells = @();
|
||||
|
||||
if ($DefaultUser) {
|
||||
if ($IsWindows) {
|
||||
$HomeDir = "C:/Users/Default";
|
||||
} else {
|
||||
$HomeDir = "/etc/skel"
|
||||
}
|
||||
}
|
||||
|
||||
if (Get-Command pwsh -ErrorAction SilentlyContinue) {
|
||||
$shells.Add("pwsh");
|
||||
}
|
||||
|
||||
if (Get-Command powershell -ErrorAction SilentlyContinue) {
|
||||
$shells.Add("powershell");
|
||||
}
|
||||
|
||||
foreach ($shell in $shells) {
|
||||
$path = & $shell -NoProfile -c '$PROFILE';
|
||||
$profiles.Add($path);
|
||||
}
|
||||
|
||||
Push-Location ~;
|
||||
$profiles = $profiles |
|
||||
ForEach-Object { [System.IO.Path]::GetRelativePath($(Get-Location), $_); } |
|
||||
ForEach-Object { "$HomeDir/$_" };
|
||||
}
|
||||
|
||||
if ($Category) {
|
||||
if (-not $($Overwrite.IsPresent)) {
|
||||
$Overwrite = $true;
|
||||
}
|
||||
|
||||
$profiles = $profiles | ForEach-Object { Join-Path (Split-Path -Parent $_) "conf.d" "$Category.ps1"; };
|
||||
}
|
||||
|
||||
$profiles | ForEach-Object {
|
||||
$dirName = Split-Path -Parent $_;
|
||||
|
||||
if (-not (Test-Path -PathType Container $dirName)) {
|
||||
$null = New-Item -ItemType Directory -Force $dirName;
|
||||
}
|
||||
|
||||
if ((Test-Path -PathType Leaf $_) -and (-not $Overwrite)) {
|
||||
Add-Content -Force "$_" "`n$Statement";
|
||||
} else {
|
||||
Set-Content -Force "$_" "$Statement";
|
||||
}
|
||||
};
|
||||
|
||||
Pop-Location;
|
||||
}
|
||||
|
||||
function Get-ScriptInitializer() {
|
||||
param (
|
||||
[Parameter(Position=0, Mandatory=$true)]
|
||||
$Initializer
|
||||
)
|
||||
|
||||
return ". ([scriptblock]::Create(($Initializer) -join `"``n`"))";
|
||||
}
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue