Compare commits
1403 Commits
Author | SHA1 | Date | |
---|---|---|---|
d826cb0439 | |||
44abd5c932 | |||
25026672b7 | |||
583d3f15e4 | |||
1d1bdddb85 | |||
d7d82ae30c | |||
97a72e9dc8 | |||
a64a298181 | |||
19cc257a21 | |||
6fc1fb122d | |||
3d30f7a4ca | |||
6f7becc90a | |||
4c8abc7aba | |||
ae97d900ac | |||
adaaf14bce | |||
411ca42d29 | |||
b27d1fa5fa | |||
b7e56a0d57 | |||
cca3c51031 | |||
105164c1e4 | |||
965ceba9d2 | |||
![]() |
d5a340f6b7 | ||
![]() |
f0a12463a6 | ||
![]() |
acc1e2f757 | ||
![]() |
51f877ca1f | ||
![]() |
8167633824 | ||
![]() |
922acfd706 | ||
![]() |
b136cc5653 | ||
![]() |
52d1ac215d | ||
![]() |
838d0ca27b | ||
![]() |
f4ea58bdd0 | ||
![]() |
6c656766f8 | ||
![]() |
06e3cb4e71 | ||
![]() |
1506b98fe1 | ||
![]() |
2a8155cc68 | ||
![]() |
35b7f44c7e | ||
![]() |
4b70705252 | ||
![]() |
0eda27a3bc | ||
![]() |
c48f370924 | ||
![]() |
dcfbd7a2e5 | ||
![]() |
dde702a4c3 | ||
![]() |
9e0c638b84 | ||
![]() |
4e389007f1 | ||
![]() |
258b151935 | ||
![]() |
b80e4ce908 | ||
![]() |
31dbf49a1f | ||
![]() |
185807b771 | ||
![]() |
d8ddc5046f | ||
![]() |
5c6c880b0b | ||
![]() |
122bdd7837 | ||
![]() |
59088800ad | ||
![]() |
561ffcfb56 | ||
![]() |
b44661a0ad | ||
![]() |
a50041721c | ||
![]() |
88303d81fd | ||
![]() |
e99bab272f | ||
![]() |
b5ced14972 | ||
![]() |
e3bda8a970 | ||
![]() |
d031237b42 | ||
![]() |
0b48f08674 | ||
![]() |
63081e141a | ||
![]() |
249612bf67 | ||
![]() |
468a84b5cc | ||
![]() |
42ee87ad65 | ||
![]() |
f2844964c4 | ||
![]() |
b38e864f08 | ||
![]() |
b4f6bbda4d | ||
![]() |
e806080c4d | ||
![]() |
fe2dd66f91 | ||
![]() |
062c6b3dce | ||
![]() |
68a51c18a8 | ||
![]() |
5a98771e5b | ||
![]() |
77863a4c12 | ||
![]() |
5b59aee51e | ||
![]() |
fdaa126aee | ||
![]() |
4f0dfcc865 | ||
![]() |
2635534778 | ||
![]() |
5bb7b66dee | ||
![]() |
b8f4a10056 | ||
![]() |
86b03357d0 | ||
![]() |
186912ca1d | ||
![]() |
c7d9581d7b | ||
![]() |
03503364cc | ||
![]() |
44529a7a25 | ||
![]() |
705b6858dc | ||
![]() |
b9758a9c8c | ||
![]() |
0a0843c7ec | ||
![]() |
ec0af90c98 | ||
![]() |
37f0c18b78 | ||
![]() |
1ec6ba61dc | ||
![]() |
066ec7ffff | ||
![]() |
c73c1c90bf | ||
![]() |
256a49ee53 | ||
![]() |
39e0cf3a37 | ||
![]() |
e8f932b0f6 | ||
![]() |
55daa135a7 | ||
![]() |
a428208077 | ||
![]() |
2d848338e6 | ||
![]() |
925a2906e5 | ||
![]() |
f98899e4e2 | ||
![]() |
e565768bed | ||
![]() |
661eed2640 | ||
![]() |
28ba0bff7a | ||
![]() |
bdfc0fad5d | ||
![]() |
ec17b3f012 | ||
![]() |
9cd70e9aff | ||
![]() |
51f5bed286 | ||
![]() |
9a98782342 | ||
![]() |
c0a091e293 | ||
![]() |
d7fa8181fa | ||
![]() |
dfda4f895a | ||
![]() |
a67fc717c1 | ||
![]() |
599b58f9a1 | ||
![]() |
f14810e80d | ||
![]() |
3bf51d30ff | ||
![]() |
39dccccb1a | ||
![]() |
46f8b522f1 | ||
![]() |
1576c4e5c6 | ||
![]() |
f39dc9a269 | ||
![]() |
ff6802830c | ||
![]() |
af9ab9069f | ||
![]() |
3363fe0544 | ||
![]() |
1577620344 | ||
![]() |
d183daff1a | ||
![]() |
5ed08ef5b9 | ||
![]() |
ae8c76f582 | ||
![]() |
93ef034a5c | ||
![]() |
fc43706190 | ||
![]() |
fc853ffe96 | ||
![]() |
a8c3d1a2bd | ||
![]() |
b09c625ac0 | ||
![]() |
4d28721682 | ||
![]() |
5ad441e539 | ||
![]() |
78e81d7534 | ||
![]() |
00ce49a4ac | ||
![]() |
78719b0552 | ||
![]() |
8a5bca3807 | ||
![]() |
78aeb91e5f | ||
![]() |
83b67d0d6b | ||
![]() |
ed9edab8ed | ||
![]() |
115e9c5af8 | ||
![]() |
00cc8315a6 | ||
![]() |
1d915c6583 | ||
![]() |
dd493b0cdf | ||
![]() |
1f4723ae33 | ||
![]() |
478b166ae7 | ||
![]() |
c0770fc7a3 | ||
![]() |
846b2e2595 | ||
![]() |
d8a4640010 | ||
![]() |
ee5f4eb925 | ||
![]() |
cb22afdb93 | ||
![]() |
d2bd1b47b6 | ||
![]() |
02134df8ee | ||
![]() |
cd39a145e8 | ||
![]() |
a0c3a435fc | ||
![]() |
f0a77e65cd | ||
![]() |
4de9f5fda3 | ||
![]() |
1efe4a819f | ||
![]() |
a29237e070 | ||
![]() |
9834a40796 | ||
![]() |
edf0bb3128 | ||
![]() |
960cbbd591 | ||
![]() |
c974c3dbc4 | ||
![]() |
f1af28f10d | ||
![]() |
673cea1644 | ||
![]() |
9d739faf2b | ||
![]() |
69afedf380 | ||
![]() |
57e14afca3 | ||
![]() |
38d9961622 | ||
![]() |
57b1180c67 | ||
![]() |
664fb7c51a | ||
![]() |
09a90e3cf2 | ||
![]() |
6dd95e71bf | ||
![]() |
22769caa8c | ||
![]() |
448be1317f | ||
![]() |
7bd1d56399 | ||
![]() |
b094557a97 | ||
![]() |
3f895969c7 | ||
![]() |
da7222f510 | ||
![]() |
9d355091b5 | ||
![]() |
a391b64e61 | ||
![]() |
028c07d016 | ||
![]() |
4fd6a110ea | ||
![]() |
92a491fd47 | ||
![]() |
8b192c30e1 | ||
![]() |
6826cad95b | ||
![]() |
1e46882fd8 | ||
![]() |
b0acd0b5e8 | ||
![]() |
24682aea8c | ||
![]() |
bb43d719e6 | ||
![]() |
c4b32c047a | ||
![]() |
f4ef8eca65 | ||
![]() |
1d6d21e7b7 | ||
![]() |
04fff555b8 | ||
![]() |
aa32b147ad | ||
![]() |
6b3b93ded1 | ||
![]() |
9dbef029f6 | ||
![]() |
aaefc4f208 | ||
![]() |
ccf13e5902 | ||
![]() |
9ed755b445 | ||
![]() |
42432ae462 | ||
![]() |
438156e36f | ||
![]() |
574d213c34 | ||
![]() |
7d61c19f69 | ||
![]() |
69fe4ae997 | ||
![]() |
c3af4b9469 | ||
![]() |
ffe8997fad | ||
![]() |
e2611d9bc4 | ||
![]() |
266767df5f | ||
![]() |
eb4172a486 | ||
![]() |
ca115b9061 | ||
![]() |
ab09446971 | ||
![]() |
af0f459a1a | ||
![]() |
fbf9a19574 | ||
![]() |
95139164a3 | ||
![]() |
2ae973108d | ||
![]() |
aa0b44b7f4 | ||
![]() |
d9424b2bff | ||
![]() |
36a30dd01d | ||
![]() |
82467892a3 | ||
![]() |
e138f7e8eb | ||
![]() |
0a75644f2d | ||
![]() |
3725f2d3b6 | ||
![]() |
0ebd62a32e | ||
![]() |
31d97335fc | ||
![]() |
41a1fe6b21 | ||
![]() |
91e686f1b2 | ||
![]() |
75ac6910d4 | ||
![]() |
b4b8788c14 | ||
![]() |
76c94e2604 | ||
![]() |
e59a98fb0b | ||
![]() |
dee7e3e4a7 | ||
![]() |
5a7b9292c8 | ||
![]() |
31ce6f689e | ||
![]() |
210481d758 | ||
![]() |
3bac37b21b | ||
![]() |
1edbe89191 | ||
![]() |
617e96234b | ||
![]() |
5873980703 | ||
![]() |
b8cc8d8bc3 | ||
![]() |
455fe890ec | ||
![]() |
ccc8aa87d0 | ||
![]() |
193797393f | ||
![]() |
7056a3903a | ||
![]() |
3880c49469 | ||
![]() |
87467579f7 | ||
![]() |
6147b634e7 | ||
![]() |
9bb5832646 | ||
![]() |
07bf9b838a | ||
![]() |
332c8d5abb | ||
![]() |
022b591986 | ||
![]() |
7713534693 | ||
![]() |
bf72d80ac6 | ||
![]() |
d0092f00c8 | ||
![]() |
75cd9fefa5 | ||
![]() |
07ad23b303 | ||
![]() |
098c9157d8 | ||
![]() |
5e3d0d89a5 | ||
![]() |
d4403051cf | ||
![]() |
cc80782160 | ||
![]() |
318a6e23cf | ||
![]() |
a4119ce43e | ||
![]() |
cc4d41bdaa | ||
![]() |
b2a2d0fde3 | ||
![]() |
2cb7f61108 | ||
![]() |
acca058d4c | ||
![]() |
29ea8af5e1 | ||
![]() |
3381bcca59 | ||
![]() |
0f2479f3f6 | ||
![]() |
b8bd1d1d6c | ||
![]() |
85f9fb486e | ||
![]() |
04aa3cca0d | ||
![]() |
8c1fd76a37 | ||
![]() |
7c4156fc9d | ||
![]() |
78b1238f40 | ||
![]() |
9ecac600e7 | ||
![]() |
74096d5f6c | ||
![]() |
6366dc1118 | ||
![]() |
e7ea45a802 | ||
![]() |
8074694ac8 | ||
![]() |
b3d24a1b13 | ||
![]() |
cab64fa9de | ||
![]() |
b09ba8d6d3 | ||
![]() |
9f49f869a3 | ||
![]() |
c3b58bc773 | ||
![]() |
58d6b5ba7f | ||
![]() |
13166960a1 | ||
![]() |
e33219f611 | ||
![]() |
44d6314929 | ||
![]() |
450403e48a | ||
![]() |
fbc60d9ec3 | ||
![]() |
7d427faad0 | ||
![]() |
5d155b712a | ||
![]() |
2cca02699a | ||
![]() |
4a1888af8f | ||
![]() |
53217c4c83 | ||
![]() |
7665ac4fde | ||
![]() |
0246468403 | ||
![]() |
3a0bb502b6 | ||
![]() |
b2161f1f31 | ||
![]() |
cf556b2da2 | ||
![]() |
8e557b2ae5 | ||
![]() |
041c787b56 | ||
![]() |
16b0919418 | ||
![]() |
1942ac68dc | ||
![]() |
9375dfca21 | ||
![]() |
04f89061ac | ||
![]() |
e7b00295ec | ||
![]() |
3e7509071b | ||
![]() |
322fa8421e | ||
![]() |
5381185121 | ||
![]() |
2a840ea085 | ||
![]() |
bac5710707 | ||
![]() |
3f921ef4f8 | ||
![]() |
bc08c47157 | ||
![]() |
a60bcaf7a1 | ||
![]() |
8a78566248 | ||
![]() |
5534e33dc0 | ||
![]() |
bf31373840 | ||
![]() |
40e10b1594 | ||
![]() |
9bf1edac9f | ||
![]() |
d4fa028cf3 | ||
![]() |
0a13ad8ef8 | ||
![]() |
4e12e796f2 | ||
![]() |
76082b945d | ||
![]() |
65636b0ba8 | ||
![]() |
41677ad7e1 | ||
![]() |
8e4baa6cd1 | ||
![]() |
a1cd10c0a2 | ||
![]() |
7e6854124c | ||
![]() |
020d1309b0 | ||
![]() |
7721a0efca | ||
![]() |
87045ef128 | ||
![]() |
b1a5facd42 | ||
![]() |
cedf20eb36 | ||
![]() |
84420db026 | ||
![]() |
092b2ba51c | ||
![]() |
21f60a960b | ||
![]() |
6de4591a28 | ||
![]() |
ee1ee526d7 | ||
![]() |
12ab446715 | ||
![]() |
d00160464f | ||
![]() |
9e4078d7da | ||
![]() |
7b93bace81 | ||
![]() |
07a2423298 | ||
![]() |
81cac3bbb7 | ||
![]() |
79104373bd | ||
![]() |
bfa91b8917 | ||
![]() |
8942b33d94 | ||
![]() |
0e4b9ee6f9 | ||
![]() |
de28805881 | ||
![]() |
bc43377cc6 | ||
![]() |
e99dc3b67c | ||
![]() |
2a7a9b67aa | ||
![]() |
5dec0daf4b | ||
![]() |
0eca37f3ff | ||
![]() |
ccf6afc36c | ||
![]() |
ce5178c285 | ||
![]() |
2e071465a0 | ||
![]() |
7535e0ad0a | ||
![]() |
e6c1a52341 | ||
![]() |
a712a0906a | ||
![]() |
40d850fdb3 | ||
![]() |
50c5f742dd | ||
![]() |
55330cce88 | ||
![]() |
7ca72c598a | ||
![]() |
787296edab | ||
![]() |
029a3a3d37 | ||
![]() |
d5ee754538 | ||
![]() |
1b69700999 | ||
![]() |
accc7a903e | ||
![]() |
377f3e6d83 | ||
![]() |
f06b1801d5 | ||
![]() |
aca23ad834 | ||
![]() |
2db5e730a7 | ||
![]() |
bd2eddbab4 | ||
![]() |
f456e21cab | ||
![]() |
5aa26eb9bd | ||
![]() |
589ffb21fe | ||
![]() |
5a809db2a8 | ||
![]() |
75a8b1fc83 | ||
![]() |
2847ed270f | ||
![]() |
bf49a86e98 | ||
![]() |
a9d70e6879 | ||
![]() |
1ecbd22fb3 | ||
![]() |
8cee2d3a8b | ||
![]() |
9b25a2fa13 | ||
![]() |
d4829bbc33 | ||
![]() |
5e1a4da33d | ||
![]() |
b0e99fc865 | ||
![]() |
1d483dac8b | ||
![]() |
8a9b841e92 | ||
![]() |
59e4981df7 | ||
![]() |
f0f4569aa2 | ||
![]() |
b15dde2dc9 | ||
![]() |
6634e28540 | ||
![]() |
f8482fdad7 | ||
![]() |
03c6b0af3d | ||
![]() |
bc323ca267 | ||
![]() |
d26e3e368d | ||
![]() |
3d283eac18 | ||
![]() |
ac207720f8 | ||
![]() |
07e3818b4f | ||
![]() |
9e7e5a1512 | ||
![]() |
171ca57908 | ||
![]() |
ae910df769 | ||
![]() |
78de5c24c9 | ||
![]() |
04e9e4c21f | ||
![]() |
fc3467a66e | ||
![]() |
12b2950853 | ||
![]() |
1e924d1794 | ||
![]() |
d0a2f63322 | ||
![]() |
ac37fb7ccd | ||
![]() |
4e136ded68 | ||
![]() |
add56181d7 | ||
![]() |
a46f652487 | ||
![]() |
98332f624b | ||
![]() |
7e30335a2e | ||
![]() |
4c4aafe670 | ||
![]() |
7893f803e0 | ||
![]() |
c407c4c590 | ||
![]() |
1e54f06570 | ||
![]() |
793b346d1d | ||
![]() |
539eb240be | ||
![]() |
d75cac05c8 | ||
![]() |
79bdb151d1 | ||
![]() |
4be9053d68 | ||
![]() |
b933f1f4cd | ||
![]() |
cd8a6bb29a | ||
![]() |
6f6c50c573 | ||
![]() |
6dd7829886 | ||
![]() |
26e3cc0b8c | ||
![]() |
16c671adf0 | ||
![]() |
46fbe16dd4 | ||
![]() |
08982922eb | ||
![]() |
31ab6b4952 | ||
![]() |
76c7956d15 | ||
![]() |
e6a253efaa | ||
![]() |
389f02e6ed | ||
![]() |
ccbe7c817b | ||
![]() |
1dc3330480 | ||
![]() |
bc6fa48155 | ||
![]() |
06103d4258 | ||
![]() |
e0edb8c660 | ||
![]() |
30e7a323b8 | ||
![]() |
1c5a17f852 | ||
![]() |
c8e848530a | ||
![]() |
b6a1d7643d | ||
![]() |
854a9e6427 | ||
![]() |
6c4571f2ca | ||
![]() |
7a1976a659 | ||
![]() |
99d3cc113e | ||
![]() |
c5a91b1e0f | ||
![]() |
6a26a37c48 | ||
![]() |
03a4223be9 | ||
![]() |
d12b194227 | ||
![]() |
ddf9498f0a | ||
![]() |
ba40f6349e | ||
![]() |
0fd360e94f | ||
![]() |
199a9c805d | ||
![]() |
34ccff4cf6 | ||
![]() |
0aedef58c9 | ||
![]() |
f67cb1dbff | ||
![]() |
c61ef71653 | ||
![]() |
5be5dede6b | ||
![]() |
7d3d7e264b | ||
![]() |
7929988901 | ||
![]() |
cb6134076f | ||
![]() |
0a3916011c | ||
![]() |
4b6e8962ca | ||
![]() |
1d2fe96916 | ||
![]() |
36013ec2d9 | ||
![]() |
1104951d7a | ||
![]() |
eb604e3e54 | ||
![]() |
5049640cfe | ||
![]() |
ab43b036a1 | ||
![]() |
86c967352b | ||
![]() |
7e28038687 | ||
![]() |
d9d847fd71 | ||
![]() |
a23a48594f | ||
![]() |
a5dacd5c1d | ||
![]() |
8d20626534 | ||
![]() |
72a1d81d20 | ||
![]() |
610ec4a398 | ||
![]() |
7e4da388bf | ||
![]() |
b2eb1b08a4 | ||
![]() |
94aa9b688f | ||
![]() |
dfe7ea24b3 | ||
![]() |
41ba61b760 | ||
![]() |
4fb0d59a82 | ||
![]() |
4c4792f36f | ||
![]() |
e8d98c6418 | ||
![]() |
af00a902cd | ||
![]() |
38bf472dbd | ||
![]() |
d23ce0f914 | ||
![]() |
b40a5a9a9f | ||
![]() |
4237807bc1 | ||
![]() |
4df374205f | ||
![]() |
2e6e1c5bca | ||
![]() |
616381833c | ||
![]() |
06345c7e25 | ||
![]() |
1484cbb7d7 | ||
![]() |
528ab6bfd7 | ||
![]() |
6015b9c6ef | ||
![]() |
f6d5df5a89 | ||
![]() |
f06dd90429 | ||
![]() |
f63e777c9a | ||
![]() |
0b31f3139f | ||
![]() |
90ba44f725 | ||
![]() |
abc0005893 | ||
![]() |
ba0666999e | ||
![]() |
c07c5652cb | ||
![]() |
9d561fe34d | ||
![]() |
4ab3ff8349 | ||
![]() |
9ae0af7b21 | ||
![]() |
61032ba4d0 | ||
![]() |
32e091d2e5 | ||
![]() |
4d94f02584 | ||
![]() |
f23e844340 | ||
![]() |
e567e9ee8a | ||
![]() |
b0f48ca585 | ||
![]() |
375210f5c8 | ||
![]() |
0c1419b725 | ||
![]() |
5624fc7e5e | ||
![]() |
eb589b012e | ||
![]() |
1b485efcf5 | ||
![]() |
c97de217b3 | ||
![]() |
3566ecfc89 | ||
![]() |
27607c1573 | ||
![]() |
aa3195385d | ||
![]() |
3db8028315 | ||
![]() |
f4ff108038 | ||
![]() |
f33d004bc9 | ||
![]() |
4f1a87c7e3 | ||
![]() |
567b05c489 | ||
![]() |
3d489382e4 | ||
![]() |
485805fab3 | ||
![]() |
cbb9cc22e5 | ||
![]() |
c7e5428df9 | ||
![]() |
67e0b6a4e0 | ||
![]() |
631c2071b7 | ||
![]() |
a49bd12f44 | ||
![]() |
4ab46ef687 | ||
![]() |
9dc12c1d3e | ||
![]() |
af84d085f0 | ||
![]() |
1cd6feed43 | ||
![]() |
39f8add864 | ||
![]() |
fe92a78f21 | ||
![]() |
6c75e705e8 | ||
![]() |
7bb9214c66 | ||
![]() |
7eb661c9c8 | ||
![]() |
666dbd8f39 | ||
![]() |
308033bd10 | ||
![]() |
4a468041cb | ||
![]() |
97e3902455 | ||
![]() |
b75065c4cf | ||
![]() |
8c8cf7aadb | ||
![]() |
722fa73bc8 | ||
![]() |
6b8917450f | ||
![]() |
26b09bb218 | ||
![]() |
46d58ff0df | ||
![]() |
08bc9fcaea | ||
![]() |
81df3ce171 | ||
![]() |
0fcda80630 | ||
![]() |
6348a0ad08 | ||
![]() |
43a31a10d0 | ||
![]() |
2737a76a85 | ||
![]() |
ff0aedd0eb | ||
![]() |
bade5b0d34 | ||
![]() |
58fbda80ef | ||
![]() |
e3a3b98e0a | ||
![]() |
8002586392 | ||
![]() |
180dc7c9b5 | ||
![]() |
88969588c4 | ||
![]() |
8281533b54 | ||
![]() |
d72f716c83 | ||
![]() |
1d29c32fe5 | ||
![]() |
41249a271a | ||
![]() |
5ff0e82621 | ||
![]() |
1746c7556c | ||
![]() |
a7798a57bc | ||
![]() |
9292c29640 | ||
![]() |
db441e8813 | ||
![]() |
137c24454f | ||
![]() |
b6325ea810 | ||
![]() |
fc11ce61cc | ||
![]() |
d9efaac906 | ||
![]() |
881af9b7d6 | ||
![]() |
581937a204 | ||
![]() |
d676f1a16f | ||
![]() |
b4e9465970 | ||
![]() |
bd26465912 | ||
![]() |
1a4b2d9420 | ||
![]() |
59b1d690d0 | ||
![]() |
1c4c42bf76 | ||
![]() |
8c46ff9303 | ||
![]() |
6d7cbf0d05 | ||
![]() |
14d652b63d | ||
![]() |
e0e21b37d7 | ||
![]() |
67d830cc39 | ||
![]() |
a4bed3029e | ||
![]() |
7e1ca837b8 | ||
![]() |
2c73e48172 | ||
![]() |
206dc44649 | ||
![]() |
58bdc4c307 | ||
![]() |
7e2676d565 | ||
![]() |
9bd2d6e0c1 | ||
![]() |
678882810e | ||
![]() |
08ed9a5dff | ||
![]() |
59fefd34b1 | ||
![]() |
e31745e67d | ||
![]() |
ae0e711e39 | ||
![]() |
494c140859 | ||
![]() |
d1b09e27a0 | ||
![]() |
2cd841a687 | ||
![]() |
a75c9ef072 | ||
![]() |
8dc198c57f | ||
![]() |
3a06b639c3 | ||
![]() |
ea31b4a090 | ||
![]() |
ea0da160b8 | ||
![]() |
1b17a049ff | ||
![]() |
8170cb9ed4 | ||
![]() |
82bcee5624 | ||
![]() |
a8a8b017d6 | ||
![]() |
e875a5d344 | ||
![]() |
4f8d758b07 | ||
![]() |
fc449efdb1 | ||
![]() |
57443e74ad | ||
![]() |
9c70a8e187 | ||
![]() |
fe396b305c | ||
![]() |
2e117b57f0 | ||
![]() |
eda03fcfe1 | ||
![]() |
6dca3e1717 | ||
![]() |
9c4a45537a | ||
![]() |
b4a6550b29 | ||
![]() |
d599a98a76 | ||
![]() |
b2ab061e3c | ||
![]() |
7e84755c75 | ||
![]() |
552fbb47fe | ||
![]() |
de1330cd9f | ||
![]() |
a9004662ca | ||
![]() |
62975f0a23 | ||
![]() |
29f4ee3524 | ||
![]() |
3acb5c2a83 | ||
![]() |
8e1beac707 | ||
![]() |
15d4ed80a9 | ||
![]() |
575368e8c4 | ||
![]() |
fb5a56474d | ||
![]() |
45b6d96be0 | ||
![]() |
256ce145ba | ||
![]() |
4c0d38616e | ||
![]() |
02043fa631 | ||
![]() |
d16c178eb4 | ||
![]() |
5e092c92ce | ||
![]() |
93980e6138 | ||
![]() |
f223bbcb98 | ||
![]() |
7540bddee1 | ||
![]() |
b358990a70 | ||
![]() |
9855693eb1 | ||
![]() |
1b650c2503 | ||
![]() |
d518557b6f | ||
![]() |
92e62ac26d | ||
![]() |
6478f8b9f8 | ||
![]() |
43d1b7304a | ||
![]() |
1306085102 | ||
![]() |
755633cd95 | ||
![]() |
63179c7d80 | ||
![]() |
5a29322bf8 | ||
![]() |
fc911e16e6 | ||
![]() |
f21a808bc5 | ||
![]() |
2712f268c8 | ||
![]() |
25ed6460e0 | ||
![]() |
d3fff87864 | ||
![]() |
a9b9cbfa34 | ||
![]() |
d84b521a19 | ||
![]() |
83e5faf224 | ||
![]() |
cb08f4ccd2 | ||
![]() |
1dc8379533 | ||
![]() |
c78133251a | ||
![]() |
fb05e59bf6 | ||
![]() |
5344885176 | ||
![]() |
2278b400dd | ||
![]() |
4b027a9242 | ||
![]() |
e7f086370d | ||
![]() |
4c650e53de | ||
![]() |
81aeee437c | ||
![]() |
9a09d45d6b | ||
![]() |
933d18fce3 | ||
![]() |
8f3647c5c5 | ||
![]() |
8ed29e6ce1 | ||
![]() |
fe1f6d4c3a | ||
![]() |
65ba23d0bb | ||
![]() |
c35311676c | ||
![]() |
e1f697f914 | ||
![]() |
8de2566fa4 | ||
![]() |
3fb1bf9759 | ||
![]() |
3a5ef9d841 | ||
![]() |
008ede7bbd | ||
![]() |
c7020ee875 | ||
![]() |
1fda1ade8a | ||
![]() |
cdc37313ad | ||
![]() |
b8275ca5af | ||
![]() |
23b9b15936 | ||
![]() |
2a2c5c90d1 | ||
![]() |
cf1b671a71 | ||
![]() |
cb79065e5d | ||
![]() |
5fda6054ce | ||
![]() |
f4b684f588 | ||
![]() |
631b62927a | ||
![]() |
e923be3f0b | ||
![]() |
d0c93e3b8a | ||
![]() |
54d22e9720 | ||
![]() |
f6a459b26b | ||
![]() |
f729004306 | ||
![]() |
63840c6e9a | ||
![]() |
34f24cb38a | ||
![]() |
6ecc09abdb | ||
![]() |
4db468a450 | ||
![]() |
2823792ba2 | ||
![]() |
b0b2bf30d8 | ||
![]() |
343a948ffc | ||
![]() |
ceee999853 | ||
![]() |
d56a2bce2b | ||
![]() |
0a16d502f2 | ||
![]() |
97dc9e8d50 | ||
![]() |
8aa8d99d8d | ||
![]() |
0efd63f021 | ||
![]() |
06d61be018 | ||
![]() |
7bca5c1903 | ||
![]() |
3d22840543 | ||
![]() |
95de571809 | ||
![]() |
8673fa41ba | ||
![]() |
07d88a4b9a | ||
![]() |
88e62994d1 | ||
![]() |
1c2b5ea8e0 | ||
![]() |
f0b1dd286b | ||
![]() |
7f66623317 | ||
![]() |
41c40e0e1d | ||
![]() |
c1a7f5a4e4 | ||
![]() |
a0aa6862f5 | ||
![]() |
231438b2ea | ||
![]() |
a98adc499a | ||
![]() |
74552b9f6e | ||
![]() |
49c154cb1f | ||
![]() |
51f3d15ead | ||
![]() |
ff5630c64f | ||
![]() |
d4f6859022 | ||
![]() |
8c2f51c08c | ||
![]() |
91f5c4646c | ||
![]() |
25f4513feb | ||
![]() |
4c46c2208a | ||
![]() |
b09d2d68cd | ||
![]() |
5c98de75d1 | ||
![]() |
66db3867a6 | ||
![]() |
4f56efe0e9 | ||
![]() |
5405d383dc | ||
![]() |
8ab18c1d38 | ||
![]() |
c95d14e5e2 | ||
![]() |
bdf5540cf3 | ||
![]() |
033b638992 | ||
![]() |
eb74d4cb6f | ||
![]() |
1b576eb7f8 | ||
![]() |
b7cbffc91d | ||
![]() |
9c5a29def4 | ||
![]() |
189596cc88 | ||
![]() |
fbec9b5163 | ||
![]() |
7f2c9391d2 | ||
![]() |
bba8802c29 | ||
![]() |
51fe5bf6e8 | ||
![]() |
588ce42f08 | ||
![]() |
c589130d8b | ||
![]() |
e39ec15197 | ||
![]() |
7589683cd1 | ||
![]() |
b1753c1c7c | ||
![]() |
e8d095c787 | ||
![]() |
01d6deae34 | ||
![]() |
478b2da0f1 | ||
![]() |
9d7ed32fc9 | ||
![]() |
eca4f65475 | ||
![]() |
a801fde7b9 | ||
![]() |
35a603d0d2 | ||
![]() |
e446c4c71e | ||
![]() |
2953db18d9 | ||
![]() |
6e664c84a9 | ||
![]() |
44925a6085 | ||
![]() |
a0c90fb3db | ||
![]() |
008fab9df3 | ||
![]() |
ffd136cdc6 | ||
![]() |
0ff139860d | ||
![]() |
42886f86bb | ||
![]() |
24e3f752ba | ||
![]() |
64c6e872fc | ||
![]() |
65577c1757 | ||
![]() |
b50a4e7a74 | ||
![]() |
b322d1cb47 | ||
![]() |
d503b0cc37 | ||
![]() |
eeb784d087 | ||
![]() |
07a16487c0 | ||
![]() |
c814aa534d | ||
![]() |
6de445a2a6 | ||
![]() |
73d8c70e06 | ||
![]() |
e3bf801654 | ||
![]() |
b4d75729d9 | ||
![]() |
68a221e456 | ||
![]() |
42963368c0 | ||
![]() |
cf688baa34 | ||
![]() |
0a8a502cf2 | ||
![]() |
9844d4ab22 | ||
![]() |
cec5482483 | ||
![]() |
bd43aee907 | ||
![]() |
6afbff2c27 | ||
![]() |
cc79664efc | ||
![]() |
162952f102 | ||
![]() |
f693c33310 | ||
![]() |
32aa290af5 | ||
![]() |
fbdbf852eb | ||
![]() |
5b654d0282 | ||
![]() |
4929d3e201 | ||
![]() |
29bfeba5cc | ||
![]() |
4e9e13f88d | ||
![]() |
7f3af84a60 | ||
![]() |
62fb66a74a | ||
![]() |
cb48956a37 | ||
![]() |
4e4e82c5b9 | ||
![]() |
302e92860e | ||
![]() |
eace29af7d | ||
![]() |
51e2fa8598 | ||
![]() |
c081078e72 | ||
![]() |
3c2559297d | ||
![]() |
4aa6b6c1f9 | ||
![]() |
896ad9d97a | ||
![]() |
83d43a7d8d | ||
![]() |
1fa2b62fba | ||
![]() |
d9f9f5212e | ||
![]() |
ba75889154 | ||
![]() |
d6ba2af917 | ||
![]() |
2f12cdc751 | ||
![]() |
363a9ae4dc | ||
![]() |
eefb4638e9 | ||
![]() |
bb2d21c3b7 | ||
![]() |
ac935bdaed | ||
![]() |
f25be1d075 | ||
![]() |
8336788e0a | ||
![]() |
d60563fe92 | ||
![]() |
1066415576 | ||
![]() |
b5f60f78a8 | ||
![]() |
92c1db9176 | ||
![]() |
25acc313b1 | ||
![]() |
0ead8947f7 | ||
![]() |
37f4d4a411 | ||
![]() |
c4a08c3c25 | ||
![]() |
0c36142f8a | ||
![]() |
65a5bbad82 | ||
![]() |
165c940df2 | ||
![]() |
824ba78000 | ||
![]() |
6d3df204bc | ||
![]() |
1c14b8eba2 | ||
![]() |
e01c1bb139 | ||
![]() |
466fe6caba | ||
![]() |
10f71885b2 | ||
![]() |
19c0d2887e | ||
![]() |
f2b58c2b8e | ||
![]() |
46d135025e | ||
![]() |
46e972172c | ||
![]() |
79df336854 | ||
![]() |
0d6ea40252 | ||
![]() |
a76c7ee33b | ||
![]() |
674c5bfdda | ||
![]() |
6cd8955409 | ||
![]() |
db63219398 | ||
![]() |
42d80f2ce7 | ||
![]() |
4578d4e418 | ||
![]() |
7242a57c18 | ||
![]() |
2d9ed8720b | ||
![]() |
205bcd7be8 | ||
![]() |
70da2ecbe8 | ||
![]() |
66b0fa0227 | ||
![]() |
d2fffc40ea | ||
![]() |
8884cc7a5c | ||
![]() |
a4e7f41798 | ||
![]() |
8908ce91f8 | ||
![]() |
5458b46584 | ||
![]() |
9b7908d17b | ||
![]() |
a12cd97922 | ||
![]() |
9231148cd7 | ||
![]() |
c4c9cdc0f6 | ||
![]() |
98f848d4a0 | ||
![]() |
c36d76bb1c | ||
![]() |
71ccf9a367 | ||
![]() |
e1f2cc4d3d | ||
![]() |
08f187b4ea | ||
![]() |
35e1d1233e | ||
![]() |
8f569921b3 | ||
![]() |
3933cd7c89 | ||
![]() |
ceb44d7aa1 | ||
![]() |
fd56404407 | ||
![]() |
d2763225c3 | ||
![]() |
2b2103fb66 | ||
![]() |
11dfeae901 | ||
![]() |
8c0ac90fe4 | ||
![]() |
d83a87a01c | ||
![]() |
f0a9271506 | ||
![]() |
faaf672eb4 | ||
![]() |
0058023e85 | ||
![]() |
4fedfbe9f1 | ||
![]() |
1976eafbcd | ||
![]() |
1ebf88bac0 | ||
![]() |
cce56a2684 | ||
![]() |
c4b45779fe | ||
![]() |
d706eda676 | ||
![]() |
7c75cbbcd5 | ||
![]() |
69e48758fd | ||
![]() |
2332a4f6db | ||
![]() |
bacaabe4a1 | ||
![]() |
60f5a3b063 | ||
![]() |
7a7a08f9c3 | ||
![]() |
4421f20e82 | ||
![]() |
071be3abcb | ||
![]() |
771313b836 | ||
![]() |
dbe3ec8b2f | ||
![]() |
5be61c17a1 | ||
![]() |
98f5669637 | ||
![]() |
bcf0e1ebf9 | ||
![]() |
f06e11ac47 | ||
![]() |
03192de90e | ||
![]() |
c0bb83e76c | ||
![]() |
5e4c309b2c | ||
![]() |
a691a50559 | ||
![]() |
778a69897b | ||
![]() |
ff77d4731f | ||
![]() |
ec4efb304c | ||
![]() |
1d4991426e | ||
![]() |
c31250d7c0 | ||
![]() |
f36402b2c9 | ||
![]() |
ecf65b0499 | ||
![]() |
65ba4cc576 | ||
![]() |
56999c0ae5 | ||
![]() |
e3e46e1383 | ||
![]() |
28bec8c7d2 | ||
![]() |
484b98ae43 | ||
![]() |
14d9cd452c | ||
![]() |
8071642b66 | ||
![]() |
ba1e50daa9 | ||
![]() |
1c69965819 | ||
![]() |
ea903c7d65 | ||
![]() |
6d8a1e3bcf | ||
![]() |
a94ee3dee8 | ||
![]() |
a117f5a36a | ||
![]() |
d5b9a5f223 | ||
![]() |
b656ea0625 | ||
![]() |
611668783b | ||
![]() |
cd0565a57f | ||
![]() |
e464f19bff | ||
![]() |
2567baf00e | ||
![]() |
84065dd767 | ||
![]() |
377522f804 | ||
![]() |
a7b423a2c4 | ||
![]() |
853d46854f | ||
![]() |
785d575ecc | ||
![]() |
f346c78826 | ||
![]() |
47584de6db | ||
![]() |
b150a1f068 | ||
![]() |
9cbe88d43d | ||
![]() |
790e90515e | ||
![]() |
24aa77a6cf | ||
![]() |
ac3aadd93a | ||
![]() |
95c6882e54 | ||
![]() |
cdc9f8606e | ||
![]() |
ae2e626c0e | ||
![]() |
3518062c1f | ||
![]() |
83a8f42bd7 | ||
![]() |
6a3ce098e9 | ||
![]() |
d1ba090bec | ||
![]() |
04ec2ba84d | ||
![]() |
273c261b3e | ||
![]() |
fa5b13a284 | ||
![]() |
22ff741c7f | ||
![]() |
702c6f015e | ||
![]() |
602009ebf3 | ||
![]() |
16e9553a40 | ||
![]() |
98b5c862bc | ||
![]() |
0c6719becc | ||
![]() |
e8c23532b3 | ||
![]() |
a7fb87f08b | ||
![]() |
e898ae327f | ||
![]() |
b21a236bf3 | ||
![]() |
6ef2ce0088 | ||
![]() |
5d09154079 | ||
![]() |
f083d3e9ec | ||
![]() |
f60e66cfdf | ||
![]() |
fcf00494bb | ||
![]() |
e7da208505 | ||
![]() |
3415fef297 | ||
![]() |
61a7aee377 | ||
![]() |
f781a805c9 | ||
![]() |
9c01775287 | ||
![]() |
b8b3548019 | ||
![]() |
3634235eee | ||
![]() |
1f1660f5e4 | ||
![]() |
35fb85ea5a | ||
![]() |
b967223d3c | ||
![]() |
af72a45dbd | ||
![]() |
f81983ec50 | ||
![]() |
dca7e9a8e8 | ||
![]() |
e2c94acd94 | ||
![]() |
5b42501c9f | ||
![]() |
ecc9a46bff | ||
![]() |
fafe78d80f | ||
![]() |
9b8569e537 | ||
![]() |
5b3c324350 | ||
![]() |
df13763d42 | ||
![]() |
81727a20ce | ||
![]() |
aac9e158d1 | ||
![]() |
b98634d06b | ||
![]() |
309c35c866 | ||
![]() |
4427c0bb28 | ||
![]() |
30b3af58e5 | ||
![]() |
6b947ffb45 | ||
![]() |
f569c4e365 | ||
![]() |
cf71a3f101 | ||
![]() |
ceedf474cb | ||
![]() |
178f97a6e3 | ||
![]() |
f99277ad71 | ||
![]() |
ca69f15709 | ||
![]() |
2e874adb50 | ||
![]() |
3b0fd13be1 | ||
![]() |
f8a7e1c7eb | ||
![]() |
ee5785855a | ||
![]() |
da597ac567 | ||
![]() |
620b397859 | ||
![]() |
03053626e3 | ||
![]() |
7f681c71fb | ||
![]() |
d76d31a5af | ||
![]() |
3c156ab059 | ||
![]() |
dbfad74ba3 | ||
![]() |
56e1ba9c5d | ||
![]() |
68a188d299 | ||
![]() |
4df7fcb716 | ||
![]() |
913675bd5e | ||
![]() |
56e25bd02c | ||
![]() |
2224249901 | ||
![]() |
2b0c56bbb1 | ||
![]() |
f388e90d3b | ||
![]() |
cd915557ae | ||
![]() |
96e87d8e7e | ||
![]() |
be751a3dde | ||
![]() |
786b0b2205 | ||
![]() |
ced618318d | ||
![]() |
f5553a8d30 | ||
![]() |
e34dbe7d50 | ||
![]() |
19d45670ce | ||
![]() |
4bb8afde02 | ||
![]() |
49efa1c3f1 | ||
![]() |
87e55b193b | ||
![]() |
5252990396 | ||
![]() |
276886af8e | ||
![]() |
0e0741feb7 | ||
![]() |
cc0ac314ef | ||
![]() |
98c269e6d5 | ||
![]() |
45b5d3ea47 | ||
![]() |
d200cec03c | ||
![]() |
94afc734ef | ||
![]() |
5c7f1a5037 | ||
![]() |
c76cd8f0c6 | ||
![]() |
45bab7a92e | ||
![]() |
2bcff1662b | ||
![]() |
761f08982f | ||
![]() |
4097582572 | ||
![]() |
39604d2d48 | ||
![]() |
ee74a87020 | ||
![]() |
61c0bfd22b | ||
![]() |
f880531621 | ||
![]() |
49c38c835f | ||
![]() |
7991835576 | ||
![]() |
51c2437f2a | ||
![]() |
2696fb39da | ||
![]() |
296e232151 | ||
![]() |
e2c8e3ccfe | ||
![]() |
03a541a9a2 | ||
![]() |
86a3c84db9 | ||
![]() |
b9c782d142 | ||
![]() |
ef8df30f01 | ||
![]() |
9467b56be0 | ||
![]() |
68e77daffa | ||
![]() |
729cd6a3a2 | ||
![]() |
3f01ced913 | ||
![]() |
89fe64aa23 | ||
![]() |
38417b36e9 | ||
![]() |
fd087719a2 | ||
![]() |
e00c4ad0dc | ||
![]() |
f38420e954 | ||
![]() |
6e229feb43 | ||
![]() |
bb5f6b00e3 | ||
![]() |
e9f0239f57 | ||
![]() |
25459cb539 | ||
![]() |
dcc4071979 | ||
![]() |
ea7d615eef | ||
![]() |
86bf311866 | ||
![]() |
2235332cb9 | ||
![]() |
5170b7a653 | ||
![]() |
53f77dd267 | ||
![]() |
fb17d91fad | ||
![]() |
ebe38078de | ||
![]() |
6542784559 | ||
![]() |
9a2d8852d3 | ||
![]() |
4f565b743a | ||
![]() |
c8656cb10f | ||
![]() |
a735337a59 | ||
![]() |
b1c5b420bc | ||
![]() |
e6e280dd84 | ||
![]() |
5c42f35839 | ||
![]() |
65933ad060 | ||
![]() |
f52c261735 | ||
![]() |
e9c7bbb490 | ||
![]() |
f756d742da | ||
![]() |
12a43ae400 | ||
![]() |
f4b172e029 | ||
![]() |
ea9d451474 | ||
![]() |
28dc1f505c | ||
![]() |
4b13434cda | ||
![]() |
3dfa4c3216 | ||
![]() |
b95eae0e10 | ||
![]() |
7098260e69 | ||
![]() |
419951a892 | ||
![]() |
df19472350 | ||
![]() |
781a7888cb | ||
![]() |
4ea0e65950 | ||
![]() |
63d9710e62 | ||
![]() |
2a9ebc8ff9 | ||
![]() |
5e4167a0db | ||
![]() |
149feae288 | ||
![]() |
f464c6b8d0 | ||
![]() |
e7e5ff96eb | ||
![]() |
10109bbadc | ||
![]() |
89bda8468e | ||
![]() |
4d22b627be | ||
![]() |
17c01629ec | ||
![]() |
3557ce8d3b | ||
![]() |
e60c37b194 | ||
![]() |
d305935382 | ||
![]() |
018603be6d | ||
![]() |
c312cd8b06 | ||
![]() |
f9403977b8 | ||
![]() |
2d1e6d0e69 | ||
![]() |
49b191b2af | ||
![]() |
6de7be7e18 | ||
![]() |
c99f4c9c02 | ||
![]() |
ab3904df9a | ||
![]() |
73d0197b3c | ||
![]() |
b8d64f1737 | ||
![]() |
ecf42918fb | ||
![]() |
11406ecc79 | ||
![]() |
a649779d81 | ||
![]() |
f114e5c441 | ||
![]() |
5daa30a629 | ||
![]() |
e5e981507f | ||
![]() |
dcd63233af | ||
![]() |
f1761319e9 | ||
![]() |
b0d4c2dae4 | ||
![]() |
e674744714 | ||
![]() |
ba69caaa6d | ||
![]() |
b3338c84b6 | ||
![]() |
bfc8d73300 | ||
![]() |
45d6aac29c | ||
![]() |
7aae9015a5 | ||
![]() |
3edc8bb470 | ||
![]() |
005e284d59 | ||
![]() |
46e8fa46ed | ||
![]() |
5a48f120ec | ||
![]() |
5501d94896 | ||
![]() |
1dd64a814a | ||
![]() |
ad6c1f0df1 | ||
![]() |
72e863f6be | ||
![]() |
8758b5d4dc | ||
![]() |
5672d04cb3 | ||
![]() |
d4910dd855 | ||
![]() |
244758fabb | ||
![]() |
46010f8e15 | ||
![]() |
5739fa741c | ||
![]() |
9157a85da2 | ||
![]() |
691a881b6f | ||
![]() |
44d2dc21ab | ||
![]() |
d435a650cc | ||
![]() |
10d332e5d1 | ||
![]() |
6ac1cd4bbe | ||
![]() |
0a8d3c3322 | ||
![]() |
03f7403cdd | ||
![]() |
3d060c384e | ||
![]() |
c9b1935054 | ||
![]() |
2035790817 | ||
![]() |
0caeeeed73 | ||
![]() |
1f0b8eb923 | ||
![]() |
e50780e5bd | ||
![]() |
7af3230825 | ||
![]() |
dc0032c9c3 | ||
![]() |
59b59807a9 | ||
![]() |
4f60ac6797 | ||
![]() |
6433511873 | ||
![]() |
41b5893d32 | ||
![]() |
920e236fc7 | ||
![]() |
745a16f2a4 | ||
![]() |
bde3d915c2 | ||
![]() |
13bc31ad0f | ||
![]() |
fb3aaaba5f | ||
![]() |
83877298b7 | ||
![]() |
1df035864d | ||
![]() |
dd207232e1 | ||
![]() |
b761d3df0b | ||
![]() |
a477b41593 | ||
![]() |
e8b47de2a9 | ||
![]() |
bd2fc67abc | ||
![]() |
2d5285fc56 | ||
![]() |
adc506f053 | ||
![]() |
a6f4c1d68b | ||
![]() |
29f1810c91 | ||
![]() |
b3b4c06175 | ||
![]() |
9eb058cbe3 | ||
![]() |
42e53500b4 | ||
![]() |
62bbc8a698 | ||
![]() |
88f816059b | ||
![]() |
c1c8751160 | ||
![]() |
e6016034e6 | ||
![]() |
f20d135256 | ||
![]() |
df8cdf7c64 | ||
![]() |
b44aded675 | ||
![]() |
fe75dd9be4 | ||
![]() |
cbc64ad09f | ||
![]() |
2b0805a66d | ||
![]() |
bbb639f8d3 | ||
![]() |
aed0550e89 | ||
![]() |
52f7bd98c1 | ||
![]() |
5d234b6b3a | ||
![]() |
051c1c2ad8 | ||
![]() |
1ee5b06161 | ||
![]() |
9cb30b5be6 | ||
![]() |
7e73105e84 | ||
![]() |
8b5275456b | ||
![]() |
a0baa35c8b | ||
![]() |
ceeaa25f0a | ||
![]() |
f89ad72c58 | ||
![]() |
62f1e3823b | ||
![]() |
9ff7fa715e | ||
![]() |
87767626c6 | ||
![]() |
5639486fa5 | ||
![]() |
be29136188 | ||
![]() |
b3ae7e69a6 | ||
![]() |
a64c0505ec | ||
![]() |
e22b3db049 | ||
![]() |
1cf9492e57 | ||
![]() |
735ed407a8 | ||
![]() |
957b23966c | ||
![]() |
4c58879481 | ||
![]() |
77524a7afa | ||
![]() |
4ff4ddb250 | ||
![]() |
5a3d57000e | ||
![]() |
6e05a51b65 | ||
![]() |
583f1b6113 | ||
![]() |
55f30eba66 | ||
![]() |
faa279c587 | ||
![]() |
6410f079b6 | ||
![]() |
87f0b599c6 | ||
![]() |
c9a5de6581 | ||
![]() |
11b71a593b | ||
![]() |
b25a60395a | ||
![]() |
d7b94996c3 | ||
![]() |
b7a3b4b020 | ||
![]() |
ae57e86dac | ||
![]() |
8fb9b51d03 | ||
![]() |
c5ada676ae | ||
![]() |
352b0cfae6 | ||
![]() |
4df84da6e1 | ||
![]() |
9d05326e6f | ||
![]() |
b4fc02d3ed | ||
![]() |
601a0e2ac8 | ||
![]() |
5d2aa7773e | ||
![]() |
64e8a25719 | ||
![]() |
c314721007 | ||
![]() |
3d4198d691 | ||
![]() |
96769b4d6a | ||
![]() |
041abe8c2e | ||
![]() |
4f77e71d2c | ||
![]() |
c567dbffaa | ||
![]() |
6434fddb59 | ||
![]() |
089f73c518 | ||
![]() |
929aafc17c | ||
![]() |
5684aa80d8 | ||
![]() |
d2598464d6 | ||
![]() |
5f46b7560e | ||
![]() |
0d0f1ed692 | ||
![]() |
5d6fe16e47 | ||
![]() |
5e50f00278 | ||
![]() |
31875282ec | ||
![]() |
a873a2cf96 | ||
![]() |
e7766926d9 | ||
![]() |
08038e272c | ||
![]() |
fef5f38dc9 | ||
![]() |
bc652eb3f7 | ||
![]() |
315f3ffe88 | ||
![]() |
5c1d8cc2b3 | ||
![]() |
bdfab2c305 | ||
![]() |
00be503e79 | ||
![]() |
77e2e5f61e | ||
![]() |
73a10a6d4e | ||
![]() |
4295541c6a | ||
![]() |
9b418abed2 | ||
![]() |
2a84c5873b | ||
![]() |
aa5c955f67 | ||
![]() |
18dadd62f0 | ||
![]() |
b0d94f3e34 | ||
![]() |
a15979dc79 | ||
![]() |
1df37bd3d7 | ||
![]() |
841596c5a3 | ||
![]() |
b707d1974a | ||
![]() |
aaedb7d62e | ||
![]() |
099f094f8e | ||
![]() |
dd21b5ca5a | ||
![]() |
5f4962188a | ||
![]() |
6513db1bdd | ||
![]() |
c9c05038a0 | ||
![]() |
ce29c0f498 | ||
![]() |
033a2d9f02 | ||
![]() |
f00436c892 | ||
![]() |
9692a7985c | ||
![]() |
d9da252dd3 | ||
![]() |
06507963f2 | ||
![]() |
924a9861c6 | ||
![]() |
6057140ff3 | ||
![]() |
4e6901734c | ||
![]() |
a2fa2cf632 | ||
![]() |
86bcac5d28 | ||
![]() |
820b80f287 | ||
![]() |
f7afe3f555 | ||
![]() |
1fed6096cc | ||
![]() |
f52077a5a1 | ||
![]() |
d254969b39 | ||
![]() |
434b17e27a | ||
![]() |
201d303c2c | ||
![]() |
6c1c829f86 | ||
![]() |
24f8c31b64 | ||
![]() |
207f811e47 | ||
![]() |
cea316425f | ||
![]() |
9879726003 | ||
![]() |
fe6481235d | ||
![]() |
8939d636fb | ||
![]() |
a64b32e2ee | ||
![]() |
0073678f1f | ||
![]() |
67a959f9b9 | ||
![]() |
c63b87b416 | ||
![]() |
3515525d99 | ||
![]() |
c459e03d39 | ||
![]() |
51e97fcc76 | ||
![]() |
c032a6aa37 | ||
![]() |
ef5a02a84c | ||
![]() |
17ead79b74 | ||
![]() |
e03c9fce07 | ||
![]() |
0f7d5744b9 | ||
![]() |
19c2c708b6 | ||
![]() |
621628d59b | ||
![]() |
a62697de23 | ||
![]() |
786d14071d | ||
![]() |
1d93459af5 | ||
![]() |
8fb744868f | ||
![]() |
ab1fca0ce9 | ||
![]() |
76d26fda4e | ||
![]() |
d3953e2b35 | ||
![]() |
d5fbab541f | ||
![]() |
98d758b505 | ||
![]() |
425603c790 | ||
![]() |
00b621d7d7 | ||
![]() |
49234a8a16 | ||
![]() |
3c93e27440 | ||
![]() |
ec0a1267b7 | ||
![]() |
84d2fc3722 | ||
![]() |
0d4f8145a2 | ||
![]() |
2dc5b4fd8f | ||
![]() |
dea0a547a6 | ||
![]() |
9c79ac2208 | ||
![]() |
b9b35c85c0 | ||
![]() |
5a8687b386 | ||
![]() |
3aa8c19b6e | ||
![]() |
2045056610 | ||
![]() |
a0105fab4a | ||
![]() |
b43a99c11b | ||
![]() |
d3f5662064 | ||
![]() |
20a09cad86 | ||
![]() |
9a5f17eefd | ||
![]() |
ce766d475a | ||
![]() |
b0beec5c0d | ||
![]() |
bd8a98cd63 | ||
![]() |
6f6b1565fe | ||
![]() |
760f799943 | ||
![]() |
d58d0f0b45 | ||
![]() |
2d0f094449 | ||
![]() |
c00f4c9608 | ||
![]() |
5e2dd6ba15 | ||
![]() |
46f52c7e4a | ||
![]() |
54eb2460cb | ||
![]() |
0e7e0b6e4f | ||
![]() |
1481003bc4 | ||
![]() |
bb59912530 | ||
![]() |
d0e1924556 | ||
![]() |
405bce4c46 | ||
![]() |
36c6fb8b9e |
@ -1,11 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=About
|
||||
Comment=System information from Fastfetch
|
||||
Exec=alacritty --class=About --title=About -e bash -c 'fastfetch; read -n 1 -s'
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Icon=Arch
|
||||
Categories=GTK;
|
||||
StartupNotify=false
|
||||
|
@ -1,11 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=Activity
|
||||
Comment=System activity from btop
|
||||
Exec=alacritty --class=Activity --title=Activity -e btop
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Icon=Activity
|
||||
Categories=GTK;
|
||||
StartupNotify=false
|
||||
|
@ -1,11 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=Basecamp
|
||||
Comment=Basecamp Project Management
|
||||
Exec=chromium --new-window --ozone-platform=wayland --app="https://launchpad.37signals.com" --name=Basecamp --class=Basecamp
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Icon=Basecamp
|
||||
Categories=GTK;
|
||||
MimeType=text/html;text/xml;application/xhtml_xml;
|
||||
StartupNotify=true
|
@ -1,11 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=Docker
|
||||
Comment=Manage Docker containers with LazyDocker
|
||||
Exec=alacritty --class=Docker --title=Docker -e lazydocker
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Icon=Docker
|
||||
Categories=GTK;
|
||||
StartupNotify=false
|
||||
|
@ -1,11 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=HEY
|
||||
Comment=HEY Email + Calendar
|
||||
Exec=chromium --new-window --ozone-platform=wayland --app="https://app.hey.com" --name=HEY --class=HEY
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Icon=HEY
|
||||
Categories=GTK;
|
||||
MimeType=text/html;text/xml;application/xhtml_xml;
|
||||
StartupNotify=true
|
@ -1,12 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Name=Zoom
|
||||
Comment=Zoom Video Conference
|
||||
Exec=env QT_SCALE_FACTOR=2 /usr/bin/zoom %U
|
||||
Icon=Zoom
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Encoding=UTF-8
|
||||
Categories=Network;Application;
|
||||
StartupWMClass=zoom
|
||||
MimeType=x-scheme-handler/zoommtg;x-scheme-handler/zoomus;x-scheme-handler/tel;x-scheme-handler/callto;x-scheme-handler/zoomphonecall;x-scheme-handler/zoomphonesms;x-scheme-handler/zoomcontactcentercall;application/x-zoom
|
||||
X-KDE-Protocols=zoommtg;zoomus;tel;callto;zoomphonecall;zoomphonesms;zoomcontactcentercall;
|
@ -1,10 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Name=Bluetooth
|
||||
Comment=Configure Bluetooth settings
|
||||
Icon=bluetooth
|
||||
Exec=env GTK_THEME=Adwaita-dark blueberry
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=GTK;GNOME;Settings;HardwareSettings;X-XFCE-SettingsDialog;X-XFCE-HardwareSettings;
|
||||
StartupNotify=true
|
||||
NotShowIn=GNOME;KDE;Unity;
|
2
applications/hidden/xgps.desktop
Normal file
2
applications/hidden/xgps.desktop
Normal file
@ -0,0 +1,2 @@
|
||||
[Desktop Entry]
|
||||
Hidden=true
|
2
applications/hidden/xgpsspeed.desktop
Normal file
2
applications/hidden/xgpsspeed.desktop
Normal file
@ -0,0 +1,2 @@
|
||||
[Desktop Entry]
|
||||
Hidden=true
|
Binary file not shown.
Before Width: | Height: | Size: 38 KiB |
Binary file not shown.
Before Width: | Height: | Size: 19 KiB |
Binary file not shown.
Before Width: | Height: | Size: 64 KiB |
Binary file not shown.
Before Width: | Height: | Size: 21 KiB |
Binary file not shown.
Before Width: | Height: | Size: 196 KiB |
51
applications/mpv.desktop
Normal file
51
applications/mpv.desktop
Normal file
@ -0,0 +1,51 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Media Player
|
||||
Name[ar]=مشغل وسائط mpv
|
||||
Name[ca]=Reproductor multimèdia mpv
|
||||
Name[cs]=mpv přehrávač
|
||||
Name[da]=mpv-medieafspiller
|
||||
Name[fr]=Lecteur multimédia mpv
|
||||
Name[it]=Lettore multimediale mpv
|
||||
Name[ja]=mpv メディアプレイヤー
|
||||
Name[pl]=Odtwarzacz mpv
|
||||
Name[ru]=Проигрыватель mpv
|
||||
Name[tr]=mpv Ortam Oynatıcı
|
||||
Name[zh_CN]=mpv 媒体播放器
|
||||
Name[zh_TW]=mpv 媒體播放器
|
||||
GenericName=Multimedia player
|
||||
GenericName[ar]=مُشَغِّل وسائط متعددة
|
||||
GenericName[cs]=Multimediální přehrávač
|
||||
GenericName[da]=Multimedieafspiller
|
||||
GenericName[fr]=Lecteur multimédia
|
||||
GenericName[it]=Lettore multimediale
|
||||
GenericName[ja]=マルチメディアプレイヤー
|
||||
GenericName[ru]=Мультимедийный проигрыватель
|
||||
GenericName[tr]=Çoklu ortam oynatıcı
|
||||
GenericName[zh_CN]=多媒体播放器
|
||||
GenericName[zh_TW]=多媒體播放器
|
||||
Comment=Play movies and songs
|
||||
Comment[ar]=شَغِّل الأفلام والأغاني
|
||||
Comment[ca]=Reproduïu vídeos i cançons
|
||||
Comment[cs]=Přehrává filmy a hudbu
|
||||
Comment[da]=Afspil film og sange
|
||||
Comment[de]=Filme und Musik abspielen
|
||||
Comment[es]=Reproduzca vídeos y canciones
|
||||
Comment[fr]=Lire des vidéos et des musiques
|
||||
Comment[ja]=映画や音楽を再生する
|
||||
Comment[it]=Riproduci video e canzoni
|
||||
Comment[pl]=Odtwarzaj filmy i muzykę
|
||||
Comment[ru]=Воспроизведение фильмов и музыки
|
||||
Comment[tr]=Filmleri ve şarkıları oynatın
|
||||
Comment[zh_CN]=播放电影和歌曲
|
||||
Comment[zh_TW]=播放電影和歌曲
|
||||
Icon=mpv
|
||||
TryExec=mpv
|
||||
Exec=mpv --player-operation-mode=pseudo-gui -- %U
|
||||
Terminal=false
|
||||
Categories=AudioVideo;Audio;Video;Player;TV;
|
||||
MimeType=application/ogg;application/x-ogg;application/mxf;application/sdp;application/smil;application/x-smil;application/streamingmedia;application/x-streamingmedia;application/vnd.rn-realmedia;application/vnd.rn-realmedia-vbr;audio/aac;audio/x-aac;audio/vnd.dolby.heaac.1;audio/vnd.dolby.heaac.2;audio/aiff;audio/x-aiff;audio/m4a;audio/x-m4a;application/x-extension-m4a;audio/mp1;audio/x-mp1;audio/mp2;audio/x-mp2;audio/mp3;audio/x-mp3;audio/mpeg;audio/mpeg2;audio/mpeg3;audio/mpegurl;audio/x-mpegurl;audio/mpg;audio/x-mpg;audio/rn-mpeg;audio/musepack;audio/x-musepack;audio/ogg;audio/scpls;audio/x-scpls;audio/vnd.rn-realaudio;audio/wav;audio/x-pn-wav;audio/x-pn-windows-pcm;audio/x-realaudio;audio/x-pn-realaudio;audio/x-ms-wma;audio/x-pls;audio/x-wav;video/mpeg;video/x-mpeg2;video/x-mpeg3;video/mp4v-es;video/x-m4v;video/mp4;application/x-extension-mp4;video/divx;video/vnd.divx;video/msvideo;video/x-msvideo;video/ogg;video/quicktime;video/vnd.rn-realvideo;video/x-ms-afs;video/x-ms-asf;audio/x-ms-asf;application/vnd.ms-asf;video/x-ms-wmv;video/x-ms-wmx;video/x-ms-wvxvideo;video/x-avi;video/avi;video/x-flic;video/fli;video/x-flc;video/flv;video/x-flv;video/x-theora;video/x-theora+ogg;video/x-matroska;video/mkv;audio/x-matroska;application/x-matroska;video/webm;audio/webm;audio/vorbis;audio/x-vorbis;audio/x-vorbis+ogg;video/x-ogm;video/x-ogm+ogg;application/x-ogm;application/x-ogm-audio;application/x-ogm-video;application/x-shorten;audio/x-shorten;audio/x-ape;audio/x-wavpack;audio/x-tta;audio/AMR;audio/ac3;audio/eac3;audio/amr-wb;video/mp2t;audio/flac;audio/mp4;application/x-mpegurl;video/vnd.mpegurl;application/vnd.apple.mpegurl;audio/x-pn-au;video/3gp;video/3gpp;video/3gpp2;audio/3gpp;audio/3gpp2;video/dv;audio/dv;audio/opus;audio/vnd.dts;audio/vnd.dts.hd;audio/x-adpcm;application/x-cue;audio/m3u;audio/vnd.wave;video/vnd.avi;
|
||||
X-KDE-Protocols=appending,file,ftp,hls,http,https,mms,mpv,rtmp,rtmps,rtmpt,rtmpts,rtp,rtsp,rtsps,sftp,srt,srtp,webdav,webdavs
|
||||
StartupWMClass=mpv
|
||||
Keywords=mpv;media;player;video;audio;tv;
|
||||
Keywords[ar]=mpv;إم بي في;ام بي في;وسائط;مشغل;فيديو;مرئية;صوتي;تلفاز;
|
@ -2,7 +2,7 @@
|
||||
Name=Neovim
|
||||
GenericName=Text Editor
|
||||
Comment=Edit text files
|
||||
Exec=alacritty -e nvim -- %F
|
||||
Exec=alacritty --class=nvim --title=nvim -e nvim -- %F
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Keywords=Text;editor;
|
||||
|
@ -1,10 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=Volume Control
|
||||
Comment=Adjust the volume level
|
||||
Exec=env GTK_THEME=Adwaita-dark pavucontrol
|
||||
Icon=multimedia-volume-control
|
||||
StartupNotify=true
|
||||
Type=Application
|
||||
Categories=AudioVideo;Audio;Mixer;GTK;Settings;X-XFCE-SettingsDialog;X-XFCE-HardwareSettings;
|
||||
Keywords=pavucontrol;PulseAudio;Microphone;Volume;Fade;Balance;Headset;Speakers;Headphones;Audio;Mixer;Output;Input;Devices;Playback;Recording;System Sounds;Sound Card;Settings;Preferences;
|
10
applications/typora.desktop
Normal file
10
applications/typora.desktop
Normal file
@ -0,0 +1,10 @@
|
||||
[Desktop Entry]
|
||||
Name=Typora
|
||||
GenericName=Markdown Editor
|
||||
Exec=typora --enable-wayland-ime %U
|
||||
Icon=typora
|
||||
Type=Application
|
||||
StartupNotify=true
|
||||
Categories=Office;WordProcessor;
|
||||
MimeType=text/markdown;text/x-markdown;
|
||||
|
30
bin/comarchy-toggle-disable-internal-monitor
Executable file
30
bin/comarchy-toggle-disable-internal-monitor
Executable file
@ -0,0 +1,30 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -u
|
||||
|
||||
# internal monitor name - change if yours differs
|
||||
INT="eDP-1"
|
||||
|
||||
output=$(hyprctl monitors 2>/dev/null) || {
|
||||
echo "Error: hyprctl not found or command failed" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
mapfile -t monitors < <(
|
||||
grep -oP '(?<=^Monitor ).*?(?= \(ID )' <<<"$output"
|
||||
)
|
||||
|
||||
len=${#monitors[@]}
|
||||
|
||||
if (( len == 2 )); then
|
||||
hyprctl keyword monitor $INT, disable 2>/dev/null
|
||||
hyprctl keyword workspace r[0-9] m[${monitors[1]}]
|
||||
elif (( len == 3 )); then
|
||||
hyprctl keyword monitor $INT, disable 2>/dev/null
|
||||
hyprctl keyword workspace r[1-5] m[${monitors[1]}]
|
||||
hyprctl keyword workspace r[6-9] m[${monitors[2]}]
|
||||
hyprctl keyword workspace r[0] m[${monitors[2]}]
|
||||
else
|
||||
hyprctl keyword monitor $INT, preferred,auto,1.5 2>/dev/null
|
||||
hyprctl reload 2>/dev/null
|
||||
fi
|
30
bin/omarchy-battery-monitor
Executable file
30
bin/omarchy-battery-monitor
Executable file
@ -0,0 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Designed to be run by systemd timer every 30 seconds and alerts if battery is low
|
||||
|
||||
BATTERY_THRESHOLD=10
|
||||
NOTIFICATION_FLAG="/run/user/$UID/omarchy_battery_notified"
|
||||
|
||||
get_battery_percentage() {
|
||||
upower -i $(upower -e | grep 'BAT') | grep -E "percentage" | grep -o '[0-9]\+%' | sed 's/%//'
|
||||
}
|
||||
|
||||
get_battery_state() {
|
||||
upower -i $(upower -e | grep 'BAT') | grep -E "state" | awk '{print $2}'
|
||||
}
|
||||
|
||||
send_notification() {
|
||||
notify-send -u critical " Time to recharge!" "Battery is down to ${1}%" -i battery-caution -t 30000
|
||||
}
|
||||
|
||||
BATTERY_LEVEL=$(get_battery_percentage)
|
||||
BATTERY_STATE=$(get_battery_state)
|
||||
|
||||
if [[ "$BATTERY_STATE" == "discharging" && "$BATTERY_LEVEL" -le "$BATTERY_THRESHOLD" ]]; then
|
||||
if [[ ! -f "$NOTIFICATION_FLAG" ]]; then
|
||||
send_notification "$BATTERY_LEVEL"
|
||||
touch "$NOTIFICATION_FLAG"
|
||||
fi
|
||||
else
|
||||
rm -f "$NOTIFICATION_FLAG"
|
||||
fi
|
19
bin/omarchy-cmd-audio-switch
Executable file
19
bin/omarchy-cmd-audio-switch
Executable file
@ -0,0 +1,19 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Find all the audio sinks but exit if there are none
|
||||
sinks=($(wpctl status | sed -n '/Sinks:/,/Sources:/p' | grep -E '^\s*│\s+\*?\s*[0-9]+\.' | sed -E 's/^[^0-9]*([0-9]+)\..*/\1/'))
|
||||
[ ${#sinks[@]} -eq 0 ] && exit 1
|
||||
|
||||
# Find current audio sink
|
||||
current=$(wpctl status | sed -n '/Sinks:/,/Sources:/p' | grep '^\s*│\s*\*' | sed -E 's/^[^0-9]*([0-9]+)\..*/\1/')
|
||||
|
||||
# Find the next sink (looping around in the list)
|
||||
for i in "${!sinks[@]}"; do
|
||||
[ "${sinks[$i]}" = "$current" ] && next=${sinks[$(((i + 1) % ${#sinks[@]}))]}
|
||||
done
|
||||
next=${next:-${sinks[0]}}
|
||||
|
||||
# Set the next sink and ensure it's not muted
|
||||
wpctl set-default "$next"
|
||||
wpctl set-mute "$next" 0
|
||||
|
9
bin/omarchy-cmd-close-all-windows
Executable file
9
bin/omarchy-cmd-close-all-windows
Executable file
@ -0,0 +1,9 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Close all open windows
|
||||
hyprctl clients -j | \
|
||||
jq -r ".[].address" | \
|
||||
xargs -I{} hyprctl dispatch closewindow address:{}
|
||||
|
||||
# Move to first workspace
|
||||
hyprctl dispatch workspace 1
|
12
bin/omarchy-cmd-first-run
Executable file
12
bin/omarchy-cmd-first-run
Executable file
@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
FIRST_RUN_MODE=~/.local/state/omarchy/first-run.mode
|
||||
|
||||
if [[ -f "$FIRST_RUN_MODE" ]]; then
|
||||
rm -f "$FIRST_RUN_MODE"
|
||||
$OMARCHY_PATH/install/first-run/battery-monitor.sh
|
||||
$OMARCHY_PATH/install/first-run/firewall.sh
|
||||
sudo rm -f /etc/sudoers.d/first-run
|
||||
fi
|
32
bin/omarchy-cmd-screenrecord
Executable file
32
bin/omarchy-cmd-screenrecord
Executable file
@ -0,0 +1,32 @@
|
||||
#!/bin/bash
|
||||
|
||||
[[ -f ~/.config/user-dirs.dirs ]] && source ~/.config/user-dirs.dirs
|
||||
OUTPUT_DIR="${OMARCHY_SCREENRECORD_DIR:-${XDG_VIDEOS_DIR:-$HOME/Videos}}"
|
||||
|
||||
if [[ ! -d "$OUTPUT_DIR" ]]; then
|
||||
notify-send "Screen recording directory does not exist: $OUTPUT_DIR" -u critical -t 3000
|
||||
exit 1
|
||||
fi
|
||||
|
||||
screenrecording() {
|
||||
filename="$OUTPUT_DIR/screenrecording-$(date +'%Y-%m-%d_%H-%M-%S').mp4"
|
||||
notify-send "Screen recording starting..." -t 1000
|
||||
sleep 1
|
||||
|
||||
if lspci | grep -Eqi 'nvidia|intel.*graphics'; then
|
||||
wf-recorder -f "$filename" -c libx264 -p crf=23 -p preset=medium -p movflags=+faststart "$@"
|
||||
else
|
||||
wl-screenrec -f "$filename" --ffmpeg-encoder-options="-c:v libx264 -crf 23 -preset medium -movflags +faststart" "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
if pgrep -x wl-screenrec >/dev/null || pgrep -x wf-recorder >/dev/null; then
|
||||
pkill -x wl-screenrec
|
||||
pkill -x wf-recorder
|
||||
notify-send "Screen recording saved to $OUTPUT_DIR" -t 2000
|
||||
elif [[ "$1" == "output" ]]; then
|
||||
screenrecording
|
||||
else
|
||||
region=$(slurp) || exit 1
|
||||
screenrecording -g "$region"
|
||||
fi
|
7
bin/omarchy-cmd-screenrecord-stop
Executable file
7
bin/omarchy-cmd-screenrecord-stop
Executable file
@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
if pgrep -x wl-screenrec >/dev/null || pgrep -x wf-recorder >/dev/null; then
|
||||
pkill -x wl-screenrec
|
||||
pkill -x wf-recorder
|
||||
notify-send "Screen recording stopped" -t 2000
|
||||
fi
|
16
bin/omarchy-cmd-screensaver
Executable file
16
bin/omarchy-cmd-screensaver
Executable file
@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
|
||||
while true; do
|
||||
effect=$(tte 2>&1 | grep -oP '{\K[^}]+' | tr ',' ' ' | tr ' ' '\n' | sed -n '/^beams$/,$p' | sort -u | shuf -n1)
|
||||
tte -i ~/.config/omarchy/branding/screensaver.txt \
|
||||
--frame-rate 240 --canvas-width 0 --canvas-height $(($(tput lines) - 2)) --anchor-canvas c --anchor-text c \
|
||||
"$effect" &
|
||||
|
||||
while pgrep -x tte >/dev/null; do
|
||||
if read -n 1 -t 0.01; then
|
||||
pkill -x tte 2>/dev/null
|
||||
pkill -f "alacritty --class Screensaver" 2>/dev/null
|
||||
exit 0
|
||||
fi
|
||||
done
|
||||
done
|
17
bin/omarchy-cmd-screenshot
Executable file
17
bin/omarchy-cmd-screenshot
Executable file
@ -0,0 +1,17 @@
|
||||
#!/bin/bash
|
||||
|
||||
[[ -f ~/.config/user-dirs.dirs ]] && source ~/.config/user-dirs.dirs
|
||||
OUTPUT_DIR="${OMARCHY_SCREENSHOT_DIR:-${XDG_PICTURES_DIR:-$HOME/Pictures}}"
|
||||
|
||||
if [[ ! -d "$OUTPUT_DIR" ]]; then
|
||||
notify-send "Screenshot directory does not exist: $OUTPUT_DIR" -u critical -t 3000
|
||||
exit 1
|
||||
fi
|
||||
|
||||
pkill slurp || hyprshot -m ${1:-region} --raw |
|
||||
satty --filename - \
|
||||
--output-filename "$OUTPUT_DIR/screenshot-$(date +'%Y-%m-%d_%H-%M-%S').png" \
|
||||
--early-exit \
|
||||
--actions-on-enter save-to-clipboard \
|
||||
--save-after-copy \
|
||||
--copy-command 'wl-copy'
|
11
bin/omarchy-cmd-terminal-cwd
Executable file
11
bin/omarchy-cmd-terminal-cwd
Executable file
@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Go from current active terminal to its child shell process and run cwd there
|
||||
terminal_pid=$(hyprctl activewindow | awk '/pid:/ {print $2}')
|
||||
shell_pid=$(pgrep -P "$terminal_pid" | head -n1)
|
||||
|
||||
if [[ -n $shell_pid ]]; then
|
||||
readlink -f "/proc/$shell_pid/cwd" 2>/dev/null
|
||||
else
|
||||
echo "$HOME"
|
||||
fi
|
7
bin/omarchy-cmd-tzupdate
Executable file
7
bin/omarchy-cmd-tzupdate
Executable file
@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
sudo systemctl restart systemd-timesyncd
|
||||
sudo tzupdate
|
||||
new_timezone=$(timedatectl show -p Timezone --value)
|
||||
omarchy-restart-waybar
|
||||
notify-send "Time synced and timezone set to $new_timezone"
|
@ -1,7 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Link all the key config files to omarchy's internal versions for quicker testing
|
||||
ln -nsf ~/.local/share/omarchy/config/hypr/hyprland.conf ~/.config/hypr/
|
||||
ln -nsf ~/.local/share/omarchy/config/hypr/hypridle.conf ~/.config/hypr/
|
||||
ln -nsf ~/.local/share/omarchy/config/waybar/config ~/.config/waybar/
|
||||
ln -nsf ~/.local/share/omarchy/config/wofi/config ~/.config/wofi/
|
6
bin/omarchy-dev-add-migration
Executable file
6
bin/omarchy-dev-add-migration
Executable file
@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
cd ~/.local/share/omarchy
|
||||
migration_file="$HOME/.local/share/omarchy/migrations/$(git log -1 --format=%cd --date=unix).sh"
|
||||
touch $migration_file
|
||||
nvim $migration_file
|
@ -1,14 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
yay -S --noconfirm --needed fprint
|
||||
|
||||
echo -e "\e[32m\nLet's setup your right index finger as the first fingerprint.\nKeep moving the finger around on sensor until the process completes.\n\e[0m"
|
||||
sudo fprintd-enroll
|
||||
|
||||
echo -e "\e[32m\nNow let's verify that it's working correctly.\e[0m\n"
|
||||
|
||||
if fprintd-verify; then
|
||||
echo -e "\e[32m\nPerfect! Now you can use your fingerprint on the lock screen (Super + Escape).\e[0m"
|
||||
else
|
||||
echo -e "\e[31m\nSomething went wrong. Maybe try again?\e[0m"
|
||||
fi
|
3
bin/omarchy-font-current
Executable file
3
bin/omarchy-font-current
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
grep -oP 'family\s*=\s*"\K[^"]+' ~/.config/alacritty/alacritty.toml | head -n1
|
3
bin/omarchy-font-list
Executable file
3
bin/omarchy-font-list
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
fc-list :spacing=100 -f "%{family[0]}\n" | grep -v -i -E 'emoji|signwriting' | sort -u
|
24
bin/omarchy-font-set
Executable file
24
bin/omarchy-font-set
Executable file
@ -0,0 +1,24 @@
|
||||
#!/bin/bash
|
||||
|
||||
font_name="$1"
|
||||
|
||||
if [[ -n "$font_name" && "$font_name" != "CNCLD" ]]; then
|
||||
if fc-list | grep -iq "$font_name"; then
|
||||
sed -i "s/family = \".*\"/family = \"$font_name\"/g" ~/.config/alacritty/alacritty.toml
|
||||
sed -i "s/font-family: .*/font-family: '$font_name';/g" ~/.config/waybar/style.css
|
||||
sed -i "s/font-family: .*/font-family: '$font_name';/g" ~/.config/swayosd/style.css
|
||||
xmlstarlet ed -L \
|
||||
-u '//match[@target="pattern"][test/string="monospace"]/edit[@name="family"]/string' \
|
||||
-v "$font_name" \
|
||||
~/.config/fontconfig/fonts.conf
|
||||
|
||||
omarchy-restart-waybar
|
||||
omarchy-restart-swayosd
|
||||
omarchy-restart-walker
|
||||
else
|
||||
echo "Font '$font_name' not found."
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "Usage: omarchy-font-set <font-name>"
|
||||
fi
|
123
bin/omarchy-install-dev-env
Executable file
123
bin/omarchy-install-dev-env
Executable file
@ -0,0 +1,123 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [[ -z "$1" ]]; then
|
||||
echo "Usage: omarchy-install-dev-env <ruby|node|bun|go|laravel|symfony|php|python|elixir|phoenix|rust|java|ocaml|dotnet>" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
install_php() {
|
||||
sudo pacman -Sy php composer php-sqlite --noconfirm
|
||||
|
||||
# Install Path for Composer
|
||||
if [[ ":$PATH:" != *":$HOME/.config/composer/vendor/bin:"* ]]; then
|
||||
echo 'export PATH="$HOME/.config/composer/vendor/bin:$PATH"' >>"$HOME/.bashrc"
|
||||
source "$HOME/.bashrc"
|
||||
echo "Added Composer global bin directory to PATH."
|
||||
else
|
||||
echo "Composer global bin directory already in PATH."
|
||||
fi
|
||||
|
||||
# Enable some extensions
|
||||
local php_ini_path="/etc/php/php.ini"
|
||||
local extensions_to_enable=(
|
||||
"bcmath"
|
||||
"intl"
|
||||
"iconv"
|
||||
"openssl"
|
||||
"pdo_sqlite"
|
||||
"pdo_mysql"
|
||||
)
|
||||
|
||||
for ext in "${extensions_to_enable[@]}"; do
|
||||
sudo sed -i "s/^;extension=${ext}/extension=${ext}/" "$php_ini_path"
|
||||
done
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
ruby)
|
||||
echo -e "Installing Ruby on Rails...\n"
|
||||
mise use --global ruby@latest
|
||||
mise settings add idiomatic_version_file_enable_tools ruby
|
||||
mise x ruby -- gem install rails --no-document
|
||||
echo -e "\nYou can now run: rails new myproject"
|
||||
;;
|
||||
node)
|
||||
echo -e "Installing Node.js...\n"
|
||||
mise use --global node@lts
|
||||
;;
|
||||
bun)
|
||||
echo -e "Installing Bun...\n"
|
||||
mise use -g bun@latest
|
||||
;;
|
||||
deno)
|
||||
echo -e "Installing Deno...\n"
|
||||
mise use -g deno@latest
|
||||
;;
|
||||
go)
|
||||
echo -e "Installing Go...\n"
|
||||
mise use --global go@latest
|
||||
;;
|
||||
php)
|
||||
echo -e "Installing PHP...\n"
|
||||
install_php
|
||||
;;
|
||||
laravel)
|
||||
echo -e "Installing PHP and Laravel...\n"
|
||||
install_php
|
||||
composer global require laravel/installer
|
||||
echo -e "\nYou can now run: laravel new myproject"
|
||||
;;
|
||||
symfony)
|
||||
echo -e "Installing PHP and Symfony...\n"
|
||||
install_php
|
||||
yay -S symfony-cli --noconfirm
|
||||
echo -e "\nYou can now run: symfony new --webapp myproject"
|
||||
;;
|
||||
python)
|
||||
echo -e "Installing Python...\n"
|
||||
mise use --global python@latest
|
||||
echo -e "\nInstalling uv...\n"
|
||||
curl -fsSL https://astral.sh/uv/install.sh | sh
|
||||
;;
|
||||
elixir)
|
||||
echo -e "Installing Elixir...\n"
|
||||
mise use --global erlang@latest
|
||||
mise use --global elixir@latest
|
||||
mise x elixir -- mix local.hex --force
|
||||
;;
|
||||
phoenix)
|
||||
echo -e "Installing Phoenix Framework...\n"
|
||||
# Ensure Erlang/Elixir first
|
||||
mise use --global erlang@latest
|
||||
mise use --global elixir@latest
|
||||
# Hex & Rebar
|
||||
mise x elixir -- mix local.hex --force
|
||||
mise x elixir -- mix local.rebar --force
|
||||
# Phoenix project (phx_new)
|
||||
mise x elixir -- mix archive.install hex phx_new --force
|
||||
echo -e "\nYou can now run: mix phx.new my_app"
|
||||
;;
|
||||
rust)
|
||||
echo -e "Installing Rust...\n"
|
||||
bash -c "$(curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs)" -- -y
|
||||
;;
|
||||
java)
|
||||
echo -e "Installing Java...\n"
|
||||
mise use --global java@latest
|
||||
;;
|
||||
zig)
|
||||
echo -e "Installing Zig...\n"
|
||||
mise use --global zig@latest
|
||||
;;
|
||||
ocaml)
|
||||
echo -e "Installing OCaml...\n"
|
||||
bash -c "$(curl -fsSL https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh)"
|
||||
opam init --yes
|
||||
eval "$(opam env)"
|
||||
opam install ocaml-lsp-server odoc ocamlformat utop --yes
|
||||
;;
|
||||
dotnet)
|
||||
echo -e "Installing .NET...\n"
|
||||
mise use --global dotnet@latest
|
||||
;;
|
||||
esac
|
16
bin/omarchy-install-docker-dbs
Executable file
16
bin/omarchy-install-docker-dbs
Executable file
@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
|
||||
options=("MySQL" "PostgreSQL" "Redis" "MongoDB" "MariaDB")
|
||||
choices=$(printf "%s\n" "${options[@]}" | gum choose --no-limit --header "Select databases (space to select, return to install, esc to cancel)") || main_menu
|
||||
|
||||
if [[ -n "$choices" ]]; then
|
||||
for db in $choices; do
|
||||
case $db in
|
||||
MySQL) sudo docker run -d --restart unless-stopped -p "127.0.0.1:3306:3306" --name=mysql8 -e MYSQL_ROOT_PASSWORD= -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:8.4 ;;
|
||||
PostgreSQL) sudo docker run -d --restart unless-stopped -p "127.0.0.1:5432:5432" --name=postgres16 -e POSTGRES_HOST_AUTH_METHOD=trust postgres:16 ;;
|
||||
MariaDB) sudo docker run -d --restart unless-stopped -p "127.0.0.1:3306:3306" --name=mariadb11 -e MARIADB_ROOT_PASSWORD= -e MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=true mariadb:11.8 ;;
|
||||
Redis) sudo docker run -d --restart unless-stopped -p "127.0.0.1:6379:6379" --name=redis redis:7 ;;
|
||||
MongoDB) sudo docker run -d --restart unless-stopped -p "127.0.0.1:27017:27017" --name mongodb -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=admin123 mongo:noble ;;
|
||||
esac
|
||||
done
|
||||
fi
|
10
bin/omarchy-install-dropbox
Executable file
10
bin/omarchy-install-dropbox
Executable file
@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
# FIXME: Should not use AUR dependencies when we can avoid it
|
||||
echo "Installing all dependencies [from AUR]..."
|
||||
yay -S --noconfirm --needed \
|
||||
dropbox dropbox-cli libappindicator-gtk3 python-gpgme nautilus-dropbox
|
||||
|
||||
echo "Starting Dropbox..."
|
||||
uwsm app -- dropbox-cli start &>/dev/null &
|
||||
echo "See Dropbox icon behind hover tray in top right and right-click for setup."
|
9
bin/omarchy-install-steam
Executable file
9
bin/omarchy-install-steam
Executable file
@ -0,0 +1,9 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "Adding multilib repository for 32-bit compatibility"
|
||||
sudo sed -i '/^\s*#\[multilib\]/,/^$/{s/^\s*#//}' /etc/pacman.conf
|
||||
sudo pacman -Sy
|
||||
|
||||
echo "Now pick dependencies matching your graphics card"
|
||||
sudo pacman -S steam
|
||||
setsid gtk-launch steam >/dev/null 2>&1 &
|
13
bin/omarchy-install-tailscale
Executable file
13
bin/omarchy-install-tailscale
Executable file
@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
|
||||
curl -fsSL https://tailscale.com/install.sh | sh
|
||||
curl -fsSL https://neuralink.com/tsui/install.sh | bash
|
||||
|
||||
echo -e "\nStarting Tailscale..."
|
||||
sudo tailscale up --accept-routes
|
||||
|
||||
echo -e "\nAdd tsui to sudoers..."
|
||||
echo "$USER ALL=(ALL) NOPASSWD: $(which tsui)" | sudo tee /etc/sudoers.d/tsui
|
||||
|
||||
omarchy-tui-install "Tailscale" "sudo tsui" float https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/tailscale-light.png
|
||||
omarchy-webapp-install "Tailscale Admin Console" "https://login.tailscale.com/admin/machines" https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/tailscale-light.png
|
3
bin/omarchy-launch-browser
Executable file
3
bin/omarchy-launch-browser
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
exec setsid uwsm app -- $(sed -n 's/^Exec=\([^ ]*\).*/\1/p' {~/.local,/usr}/share/applications/$(xdg-settings get default-web-browser) 2>/dev/null | head -1) ${args[@]} $@
|
26
bin/omarchy-launch-screensaver
Executable file
26
bin/omarchy-launch-screensaver
Executable file
@ -0,0 +1,26 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Exit early if we don't have the tte show
|
||||
if ! command -v tte &>/dev/null; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Exit early if screensave is already running
|
||||
pgrep -f "alacritty --class Screensaver" && exit 0
|
||||
|
||||
# Allow screensaver to be turned off but also force started
|
||||
if [[ -f ~/.local/state/omarchy/toggles/screensaver-off ]] && [[ $1 != "force" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
focused=$(hyprctl monitors -j | jq -r '.[] | select(.focused == true).name')
|
||||
|
||||
for m in $(hyprctl monitors -j | jq -r '.[] | .name'); do
|
||||
hyprctl dispatch focusmonitor $m
|
||||
hyprctl dispatch exec -- \
|
||||
alacritty --class Screensaver \
|
||||
--config-file ~/.local/share/omarchy/default/alacritty/screensaver.toml \
|
||||
-e omarchy-cmd-screensaver
|
||||
done
|
||||
|
||||
hyprctl dispatch focusmonitor $focused
|
10
bin/omarchy-launch-webapp
Executable file
10
bin/omarchy-launch-webapp
Executable file
@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
browser=$(xdg-settings get default-web-browser)
|
||||
|
||||
case $browser in
|
||||
google-chrome* | brave-browser* | microsoft-edge* | opera* | vivaldi*) ;;
|
||||
*) browser="chromium.desktop" ;;
|
||||
esac
|
||||
|
||||
exec setsid uwsm app -- $(sed -n 's/^Exec=\([^ ]*\).*/\1/p' {~/.local,/usr}/share/applications/$browser 2>/dev/null | head -1) --app="$1" "${@:2}"
|
12
bin/omarchy-lock-screen
Executable file
12
bin/omarchy-lock-screen
Executable file
@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Lock the screen
|
||||
pidof hyprlock || hyprlock &
|
||||
|
||||
# Ensure 1password is locked
|
||||
if pgrep -x "1password" >/dev/null; then
|
||||
1password --lock &
|
||||
fi
|
||||
|
||||
# Avoid running screensaver when locked
|
||||
pkill -f "alacritty --class Screensaver"
|
392
bin/omarchy-menu
Executable file
392
bin/omarchy-menu
Executable file
@ -0,0 +1,392 @@
|
||||
#!/bin/bash
|
||||
|
||||
export PATH="$HOME/.local/share/omarchy/bin:$PATH"
|
||||
|
||||
menu() {
|
||||
local prompt="$1"
|
||||
local options="$2"
|
||||
local extra="$3"
|
||||
local preselect="$4"
|
||||
|
||||
read -r -a args <<<"$extra"
|
||||
|
||||
if [[ -n "$preselect" ]]; then
|
||||
local index
|
||||
index=$(echo -e "$options" | grep -nxF "$preselect" | cut -d: -f1)
|
||||
if [[ -n "$index" ]]; then
|
||||
args+=("-a" "$index")
|
||||
fi
|
||||
fi
|
||||
|
||||
echo -e "$options" | walker --dmenu --theme dmenu_250 -p "$prompt…" "${args[@]}"
|
||||
}
|
||||
|
||||
terminal() {
|
||||
alacritty --class Omarchy -e "$@"
|
||||
}
|
||||
|
||||
present_terminal() {
|
||||
alacritty --class Omarchy -e bash -c "omarchy-show-logo; eval \"$1\"; omarchy-show-done;"
|
||||
}
|
||||
|
||||
edit_in_nvim() {
|
||||
notify-send "Editing config file" "$1"
|
||||
alacritty -e nvim "$1"
|
||||
}
|
||||
|
||||
install() {
|
||||
present_terminal "echo 'Installing $1...'; sudo pacman -Sy --noconfirm $2"
|
||||
}
|
||||
|
||||
install_and_launch() {
|
||||
present_terminal "echo 'Installing $1...'; sudo pacman -Sy --noconfirm $2 && setsid gtk-launch $3"
|
||||
}
|
||||
|
||||
install_font() {
|
||||
present_terminal "echo 'Installing $1...'; sudo pacman -Sy --noconfirm --needed $2 && sleep 2 && omarchy-font-set '$3'"
|
||||
}
|
||||
|
||||
aur_install() {
|
||||
present_terminal "echo 'Installing $1 from AUR...'; yay -Sy --noconfirm $2"
|
||||
}
|
||||
|
||||
aur_install_and_launch() {
|
||||
present_terminal "echo 'Installing $1 from AUR...'; yay -Sy --noconfirm $2 && setsid gtk-launch $3"
|
||||
}
|
||||
|
||||
show_learn_menu() {
|
||||
case $(menu "Learn" " Keybindings\n Omarchy\n Hyprland\n Arch\n Neovim\n Bash") in
|
||||
*Keybindings*) omarchy-menu-keybindings ;;
|
||||
*Omarchy*) omarchy-launch-webapp "https://learn.omacom.io/2/the-omarchy-manual" ;;
|
||||
*Hyprland*) omarchy-launch-webapp "https://wiki.hypr.land/" ;;
|
||||
*Arch*) omarchy-launch-webapp "https://wiki.archlinux.org/title/Main_page" ;;
|
||||
*Bash*) omarchy-launch-webapp "https://devhints.io/bash" ;;
|
||||
*Neovim*) omarchy-launch-webapp "https://www.lazyvim.org/keymaps" ;;
|
||||
*) show_main_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_style_menu() {
|
||||
case $(menu "Style" " Theme\n Font\n Background\n Screensaver\n About") in
|
||||
*Theme*) show_theme_menu ;;
|
||||
*Font*) show_font_menu ;;
|
||||
*Background*) omarchy-theme-bg-next ;;
|
||||
*Screensaver*) edit_in_nvim ~/.config/omarchy/branding/screensaver.txt ;;
|
||||
*About*) edit_in_nvim ~/.config/omarchy/branding/about.txt ;;
|
||||
*) show_main_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_theme_menu() {
|
||||
theme=$(menu "Theme" "$(omarchy-theme-list)" "" "$(omarchy-theme-current)")
|
||||
if [[ "$theme" == "CNCLD" || -z "$theme" ]]; then
|
||||
show_main_menu
|
||||
else
|
||||
omarchy-theme-set "$theme"
|
||||
fi
|
||||
}
|
||||
|
||||
show_font_menu() {
|
||||
theme=$(menu "Font" "$(omarchy-font-list)" "-w 350" "$(omarchy-font-current)")
|
||||
if [[ "$theme" == "CNCLD" || -z "$theme" ]]; then
|
||||
show_main_menu
|
||||
else
|
||||
omarchy-font-set "$theme"
|
||||
fi
|
||||
}
|
||||
|
||||
show_capture_menu() {
|
||||
case $(menu "Capture" " Screenshot\n Screenrecord\n Color") in
|
||||
*Screenshot*) show_screenshot_menu ;;
|
||||
*Screenrecord*) show_screenrecord_menu ;;
|
||||
*Color*) pkill hyprpicker || hyprpicker -a ;;
|
||||
*) show_main_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_screenshot_menu() {
|
||||
case $(menu "Screenshot" " Region\n Window\n Display") in
|
||||
*Region*) omarchy-cmd-screenshot ;;
|
||||
*Window*) omarchy-cmd-screenshot window ;;
|
||||
*Display*) omarchy-cmd-screenshot output ;;
|
||||
*) show_capture_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_screenrecord_menu() {
|
||||
case $(menu "Screenrecord" " Region\n Display") in
|
||||
*Region*) omarchy-cmd-screenrecord ;;
|
||||
*Display*) omarchy-cmd-screenrecord output ;;
|
||||
*) show_capture_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_toggle_menu() {
|
||||
case $(menu "Toggle" " Screensaver\n Nightlight\n Idle Lock\n Top Bar") in
|
||||
*Screensaver*) omarchy-toggle-screensaver ;;
|
||||
*Nightlight*) omarchy-toggle-nightlight ;;
|
||||
*Idle*) omarchy-toggle-idle ;;
|
||||
*Bar*) omarchy-toggle-waybar ;;
|
||||
*) show_main_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_setup_menu() {
|
||||
local options=" Audio\n Wifi\n Bluetooth\n Power Profile\n Monitors"
|
||||
[ -f ~/.config/hypr/bindings.conf ] && options="$options\n Keybindings"
|
||||
[ -f ~/.config/hypr/input.conf ] && options="$options\n Input"
|
||||
options="$options\n DNS\n Config\n Fingerprint\n Fido2"
|
||||
|
||||
case $(menu "Setup" "$options") in
|
||||
*Audio*) alacritty --class=Wiremix -e wiremix ;;
|
||||
*Wifi*)
|
||||
rfkill unblock wifi
|
||||
alacritty --class=Impala -e impala
|
||||
;;
|
||||
*Bluetooth*)
|
||||
rfkill unblock bluetooth
|
||||
blueberry
|
||||
;;
|
||||
*Power*) show_setup_power_menu ;;
|
||||
*Monitors*) edit_in_nvim ~/.config/hypr/monitors.conf ;;
|
||||
*Keybindings*) edit_in_nvim ~/.config/hypr/bindings.conf ;;
|
||||
*Input*) edit_in_nvim ~/.config/hypr/input.conf ;;
|
||||
*DNS*) present_terminal omarchy-setup-dns ;;
|
||||
*Config*) show_setup_config_menu ;;
|
||||
*Fingerprint*) present_terminal omarchy-setup-fingerprint ;;
|
||||
*Fido2*) present_terminal omarchy-setup-fido2 ;;
|
||||
*) show_main_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_setup_power_menu() {
|
||||
profile=$(menu "Power Profile" "$(omarchy-powerprofiles-list)" "" "$(powerprofilesctl get)")
|
||||
|
||||
if [[ "$profile" == "CNCLD" || -z "$profile" ]]; then
|
||||
show_main_menu
|
||||
else
|
||||
powerprofilesctl set "$profile"
|
||||
fi
|
||||
}
|
||||
|
||||
show_setup_config_menu() {
|
||||
case $(menu "Setup" " Hyprland\n Hypridle\n Hyprlock\n Hyprsunset\n Swayosd\n Walker\n Waybar\n XCompose") in
|
||||
*Hyprland*) edit_in_nvim ~/.config/hypr/hyprland.conf ;;
|
||||
*Hypridle*) edit_in_nvim ~/.config/hypr/hypridle.conf && omarchy-restart-hypridle ;;
|
||||
*Hyprlock*) edit_in_nvim ~/.config/hypr/hyprlock.conf ;;
|
||||
*Hyprsunset*) edit_in_nvim ~/.config/hypr/hyprsunset.conf && omarchy-restart-hyprsunset ;;
|
||||
*Swayosd*) edit_in_nvim ~/.config/swayosd/config.toml && omarchy-restart-swayosd ;;
|
||||
*Walker*) edit_in_nvim ~/.config/walker/config.toml && omarchy-restart-walker ;;
|
||||
*Waybar*) edit_in_nvim ~/.config/waybar/config.jsonc && omarchy-restart-waybar ;;
|
||||
*XCompose*) edit_in_nvim ~/.XCompose && omarchy-restart-xcompose ;;
|
||||
*) show_main_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_install_menu() {
|
||||
case $(menu "Install" " Package\n AUR\n Web App\n TUI\n Service\n Style\n Development\n Editor\n AI\n Gaming") in
|
||||
*Package*) terminal omarchy-pkg-install ;;
|
||||
*AUR*) terminal omarchy-pkg-aur-install ;;
|
||||
*Web*) present_terminal omarchy-webapp-install ;;
|
||||
*TUI*) present_terminal omarchy-tui-install ;;
|
||||
*Service*) show_install_service_menu ;;
|
||||
*Style*) show_install_style_menu ;;
|
||||
*Development*) show_install_development_menu ;;
|
||||
*Editor*) show_install_editor_menu ;;
|
||||
*AI*) show_install_ai_menu ;;
|
||||
*Gaming*) show_install_gaming_menu ;;
|
||||
*) show_main_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_install_service_menu() {
|
||||
case $(menu "Install" " Dropbox\n Tailscale") in
|
||||
*Dropbox*) present_terminal omarchy-install-dropbox ;;
|
||||
*Tailscale*) present_terminal omarchy-install-tailscale ;;
|
||||
*) show_install_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_install_editor_menu() {
|
||||
case $(menu "Install" " VSCode\n Cursor [AUR]\n Zed\n Sublime Text\n Helix") in
|
||||
*VSCode*) install_and_launch "VSCode" "visual-studio-code-bin" "code" ;;
|
||||
*Cursor*) aur_install_and_launch "Cursor" "cursor-bin" "cursor" ;;
|
||||
*Zed*) install_and_launch "Zed" "zed" "dev.zed.Zed" ;;
|
||||
*Sublime*) install_and_launch "Sublime Text" "sublime-text-4" "sublime_text" ;;
|
||||
*Helix*) install "Helix" "helix" ;;
|
||||
*) show_install_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_install_ai_menu() {
|
||||
case $(menu "Install" " Claude Code [AUR]\n Gemini\n LM Studio [AUR]\n Ollama\n Crush [AUR]\n opencode [AUR]") in
|
||||
*Claude*) aur_install "Claude Code" "claude-code" ;;
|
||||
*Gemini*) install "Gemini" "gemini-cli" ;;
|
||||
*Studio*) aur_install "LM Studio" "lmstudio" ;;
|
||||
*Ollama*) install "Ollama" "ollama" ;;
|
||||
*Crush*) aur_install "Crush" "crush-bin" ;;
|
||||
*opencode*) aur_install "opencode" "opencode-bin" ;;
|
||||
*) show_install_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_install_gaming_menu() {
|
||||
case $(menu "Install" " Steam\n RetroArch [AUR]\n Minecraft") in
|
||||
*Steam*) present_terminal omarchy-install-steam ;;
|
||||
*RetroArch*) aur_install_and_launch "RetroArch" "retroarch retroarch-assets libretro libretro-fbneo" "com.libretro.RetroArch.desktop" ;;
|
||||
*Minecraft*) install_and_launch "Minecraft" "minecraft-launcher" "minecraft-launcher" ;;
|
||||
*) show_install_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_install_style_menu() {
|
||||
case $(menu "Install" " Theme\n Background\n Font") in
|
||||
*Theme*) present_terminal omarchy-theme-install ;;
|
||||
*Background*) nautilus ~/.config/omarchy/current/theme/backgrounds ;;
|
||||
*Font*) show_install_font_menu ;;
|
||||
*) show_install_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_install_font_menu() {
|
||||
case $(menu "Install" " Meslo LG Mono\n Fira Code\n Victor Code\n Bistream Vera Mono" "-w 350") in
|
||||
*Meslo*) install_font "Meslo LG Mono" "ttf-meslo-nerd" "MesloLGL Nerd Font" ;;
|
||||
*Fira*) install_font "Fira Code" "ttf-firacode-nerd" "FiraCode Nerd Font" ;;
|
||||
*Victor*) install_font "Victor Code" "ttf-victor-mono-nerd" "VictorMono Nerd Font" ;;
|
||||
*Bistream*) install_font "Bistream Vera Code" "ttf-bitstream-vera-mono-nerd" "BitstromWera Nerd Font" ;;
|
||||
*) show_install_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_install_development_menu() {
|
||||
case $(menu "Install" " Ruby on Rails\n Docker DB\n JavaScript\n Go\n PHP\n Python\n Elixir\n Zig\n Rust\n Java\n .NET\n OCaml") in
|
||||
*Rails*) present_terminal "omarchy-install-dev-env ruby" ;;
|
||||
*Docker*) present_terminal omarchy-install-docker-dbs ;;
|
||||
*JavaScript*) show_install_javascript_menu ;;
|
||||
*Go*) present_terminal "omarchy-install-dev-env go" ;;
|
||||
*PHP*) show_install_php_menu ;;
|
||||
*Python*) present_terminal "omarchy-install-dev-env python" ;;
|
||||
*Elixir*) show_install_elixir_menu ;;
|
||||
*Zig*) present_terminal "omarchy-install-dev-env zig" ;;
|
||||
*Rust*) present_terminal "omarchy-install-dev-env rust" ;;
|
||||
*Java*) present_terminal "omarchy-install-dev-env java" ;;
|
||||
*NET*) present_terminal "omarchy-install-dev-env dotnet" ;;
|
||||
*OCaml*) present_terminal "omarchy-install-dev-env ocaml" ;;
|
||||
*) show_install_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_install_javascript_menu() {
|
||||
case $(menu "Install" " Node.js\n Bun\n Deno") in
|
||||
*Node*) present_terminal "omarchy-install-dev-env node" ;;
|
||||
*Bun*) present_terminal "omarchy-install-dev-env bun" ;;
|
||||
*Deno*) present_terminal "omarchy-install-dev-env deno" ;;
|
||||
*) show_install_development_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_install_php_menu() {
|
||||
case $(menu "Install" " PHP\n Laravel\n Symfony") in
|
||||
*PHP*) present_terminal "omarchy-install-dev-env php" ;;
|
||||
*Laravel*) present_terminal "omarchy-install-dev-env laravel" ;;
|
||||
*Symfony*) present_terminal "omarchy-install-dev-env symfony" ;;
|
||||
*) show_install_development_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_install_elixir_menu() {
|
||||
case $(menu "Install" " Elixir\n Phoenix") in
|
||||
*Elixir*) present_terminal "omarchy-install-dev-env elixir" ;;
|
||||
*Phoenix*) present_terminal "omarchy-install-dev-env phoenix" ;;
|
||||
*) show_install_development_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_remove_menu() {
|
||||
case $(menu "Remove" " Package\n Web App\n TUI\n Theme\n Fingerprint\n Fido2") in
|
||||
*Package*) terminal omarchy-pkg-remove ;;
|
||||
*Web*) present_terminal omarchy-webapp-remove ;;
|
||||
*TUI*) present_terminal omarchy-tui-remove ;;
|
||||
*Theme*) present_terminal omarchy-theme-remove ;;
|
||||
*Fingerprint*) present_terminal "omarchy-setup-fingerprint --remove" ;;
|
||||
*Fido2*) present_terminal "omarchy-setup-fido2 --remove" ;;
|
||||
*) show_main_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_update_menu() {
|
||||
case $(menu "Update" " Omarchy\n Config\n Themes\n Process\n Timezone") in
|
||||
*Omarchy*) present_terminal omarchy-update ;;
|
||||
*Config*) show_update_config_menu ;;
|
||||
*Themes*) present_terminal omarchy-theme-update ;;
|
||||
*Process*) show_update_process_menu ;;
|
||||
*Timezone*) omarchy-cmd-tzupdate ;;
|
||||
*) show_main_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_update_process_menu() {
|
||||
case $(menu "Restart" " Hypridle\n Hyprsunset\n Swayosd\n Walker\n Waybar") in
|
||||
*Hypridle*) omarchy-restart-hypridle ;;
|
||||
*Hyprsunset*) omarchy-restart-hyprsunset ;;
|
||||
*Swayosd*) omarchy-restart-swayosd ;;
|
||||
*Walker*) omarchy-restart-walker ;;
|
||||
*Waybar*) omarchy-restart-waybar ;;
|
||||
*) show_main_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_update_config_menu() {
|
||||
case $(menu "Use default config" " Hyprland\n Hypridle\n Hyprlock\n Hyprsunset\n Plymouth\n Swayosd\n Walker\n Waybar") in
|
||||
*Hyprland*) present_terminal omarchy-refresh-hyprland ;;
|
||||
*Hypridle*) present_terminal omarchy-refresh-hypridle ;;
|
||||
*Hyprlock*) present_terminal omarchy-refresh-hyprlock ;;
|
||||
*Hyprsunset*) present_terminal omarchy-refresh-hyprsunset ;;
|
||||
*Plymouth*) present_terminal omarchy-refresh-plymouth ;;
|
||||
*Swayosd*) present_terminal omarchy-refresh-swayosd ;;
|
||||
*Walker*) present_terminal omarchy-refresh-walker ;;
|
||||
*Waybar*) present_terminal omarchy-refresh-waybar ;;
|
||||
*) show_main_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_system_menu() {
|
||||
case $(menu "System" " Lock\n Screensaver\n Suspend\n Relaunch\n Restart\n Shutdown") in
|
||||
*Lock*) omarchy-lock-screen ;;
|
||||
*Screensaver*) omarchy-launch-screensaver force ;;
|
||||
*Suspend*) systemctl suspend ;;
|
||||
*Relaunch*) uwsm stop ;;
|
||||
*Restart*) systemctl reboot ;;
|
||||
*Shutdown*) systemctl poweroff ;;
|
||||
*) show_main_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_main_menu() {
|
||||
go_to_menu "$(menu "Go" " Apps\n Learn\n Capture\n Toggle\n Style\n Setup\n Install\n Remove\n Update\n About\n System")"
|
||||
}
|
||||
|
||||
go_to_menu() {
|
||||
case "${1,,}" in
|
||||
*apps*) walker -p "Launch…" ;;
|
||||
*learn*) show_learn_menu ;;
|
||||
*style*) show_style_menu ;;
|
||||
*theme*) show_theme_menu ;;
|
||||
*capture*) show_capture_menu ;;
|
||||
*screenshot*) show_screenshot_menu ;;
|
||||
*screenrecord*) show_screenrecord_menu ;;
|
||||
*toggle*) show_toggle_menu ;;
|
||||
*setup*) show_setup_menu ;;
|
||||
*install*) show_install_menu ;;
|
||||
*remove*) show_remove_menu ;;
|
||||
*update*) show_update_menu ;;
|
||||
*system*) show_system_menu ;;
|
||||
*about*) terminal bash -c 'fastfetch; read -n 1 -s' ;;
|
||||
esac
|
||||
}
|
||||
|
||||
if [[ -n "$1" ]]; then
|
||||
go_to_menu "$1"
|
||||
else
|
||||
show_main_menu
|
||||
fi
|
89
bin/omarchy-menu-keybindings
Executable file
89
bin/omarchy-menu-keybindings
Executable file
@ -0,0 +1,89 @@
|
||||
#!/bin/bash
|
||||
|
||||
# A script to display Hyprland keybindings defined in your configuration
|
||||
# using walker for an interactive search menu.
|
||||
|
||||
# Fetch dynamic keybindings from Hyprland
|
||||
#
|
||||
# Also do some pre-processing:
|
||||
# - Remove standard Omarchy bin path prefix
|
||||
# - Remove uwsm prefix
|
||||
# - Map numeric modifier key mask to a textual rendition
|
||||
# - Output comma-separated values that the parser can understand
|
||||
dynamic_bindings() {
|
||||
hyprctl -j binds | \
|
||||
jq -r '.[] | {modmask, key, keycode, description, dispatcher, arg} | "\(.modmask),\(.key)@\(.keycode),\(.description),\(.dispatcher),\(.arg)"' | \
|
||||
sed -r \
|
||||
-e 's/null//' \
|
||||
-e 's,~/.local/share/omarchy/bin/,,' \
|
||||
-e 's,uwsm app -- ,,' \
|
||||
-e 's/@0//' \
|
||||
-e 's/,@/,code:/' \
|
||||
-e 's/^0,/,/' \
|
||||
-e 's/^1,/SHIFT,/' \
|
||||
-e 's/^4,/CTRL,/' \
|
||||
-e 's/^5,/SHIFT CTRL,/' \
|
||||
-e 's/^8,/ALT,/' \
|
||||
-e 's/^9,/SHIFT ALT,/' \
|
||||
-e 's/^12,/CTRL ALT,/' \
|
||||
-e 's/^13,/SHIFT CTRL ALT,/' \
|
||||
-e 's/^64,/SUPER,/' \
|
||||
-e 's/^65,/SUPER SHIFT,/' \
|
||||
-e 's/^68,/SUPER CTRL,/' \
|
||||
-e 's/^69,/SUPER SHIFT CTRL,/' \
|
||||
-e 's/^72,/SUPER ALT,/' \
|
||||
-e 's/^73,/SUPER SHIFT ALT,/' \
|
||||
-e 's/^76,/SUPER CTRL ALT,/' \
|
||||
-e 's/^77,/SUPER SHIFT CTRL ALT,/'
|
||||
}
|
||||
|
||||
# Parse and format keybindings
|
||||
#
|
||||
# `awk` does the heavy lifting:
|
||||
# - Set the field separator to a comma ','.
|
||||
# - Joins the key combination (e.g., "SUPER + Q").
|
||||
# - Joins the command that the key executes.
|
||||
# - Prints everything in a nicely aligned format.
|
||||
parse_bindings() {
|
||||
awk -F, '
|
||||
{
|
||||
# Combine the modifier and key (first two fields)
|
||||
key_combo = $1 " + " $2;
|
||||
|
||||
# Clean up: strip leading "+" if present, trim spaces
|
||||
gsub(/^[ \t]*\+?[ \t]*/, "", key_combo);
|
||||
gsub(/[ \t]+$/, "", key_combo);
|
||||
|
||||
# Use description, if set
|
||||
action = $3;
|
||||
|
||||
if (action == "") {
|
||||
# Reconstruct the command from the remaining fields
|
||||
for (i = 4; i <= NF; i++) {
|
||||
action = action $i (i < NF ? "," : "");
|
||||
}
|
||||
|
||||
# Clean up trailing commas, remove leading "exec, ", and trim
|
||||
sub(/,$/, "", action);
|
||||
gsub(/(^|,)[[:space:]]*exec[[:space:]]*,?/, "", action);
|
||||
gsub(/^[ \t]+|[ \t]+$/, "", action);
|
||||
gsub(/[ \t]+/, " ", key_combo); # Collapse multiple spaces to one
|
||||
|
||||
# Escape XML entities
|
||||
gsub(/&/, "\\&", action);
|
||||
gsub(/</, "\\<", action);
|
||||
gsub(/>/, "\\>", action);
|
||||
gsub(/"/, "\\"", action);
|
||||
gsub(/'"'"'/, "\\'", action);
|
||||
}
|
||||
|
||||
if (action != "") {
|
||||
printf "%-35s → %s\n", key_combo, action;
|
||||
}
|
||||
}'
|
||||
}
|
||||
|
||||
dynamic_bindings | \
|
||||
sort -u | \
|
||||
parse_bindings | \
|
||||
walker --dmenu --theme keybindings -p 'Keybindings'
|
18
bin/omarchy-migrate
Executable file
18
bin/omarchy-migrate
Executable file
@ -0,0 +1,18 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
# Where we store an empty file for each migration that has already been performed.
|
||||
STATE_DIR="$HOME/.local/state/omarchy/migrations"
|
||||
mkdir -p "$STATE_DIR"
|
||||
|
||||
# Run any pending migrations
|
||||
for file in ~/.local/share/omarchy/migrations/*.sh; do
|
||||
filename=$(basename "$file")
|
||||
|
||||
if [[ ! -f "$STATE_DIR/$filename" ]]; then
|
||||
echo -e "\e[32m\nRunning migration (${filename%.sh})\e[0m"
|
||||
source $file
|
||||
touch "$STATE_DIR/$filename"
|
||||
fi
|
||||
done
|
4
bin/omarchy-pkg-aur-accessible
Executable file
4
bin/omarchy-pkg-aur-accessible
Executable file
@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
curl -sf --connect-timeout 30 --retry 3 --retry-delay 3 -A "omarchy-update" \
|
||||
"https://aur.archlinux.org/rpc/?v=5&type=info&arg=base" >/dev/null
|
24
bin/omarchy-pkg-aur-install
Executable file
24
bin/omarchy-pkg-aur-install
Executable file
@ -0,0 +1,24 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
fzf_args=(
|
||||
--multi
|
||||
--preview 'yay -Sii {1}'
|
||||
--preview-label='alt-p: toggle description, alt-j/k: scroll, tab: multi-select, F11: maximize'
|
||||
--preview-label-pos='bottom'
|
||||
--preview-window 'down:65%:wrap'
|
||||
--bind 'alt-p:toggle-preview'
|
||||
--bind 'alt-d:preview-half-page-down,alt-u:preview-half-page-up'
|
||||
--bind 'alt-k:preview-up,alt-j:preview-down'
|
||||
--color 'pointer:green,marker:green'
|
||||
)
|
||||
|
||||
pkg_names=$(yay -Slqa | fzf "${fzf_args[@]}")
|
||||
|
||||
if [[ -n "$pkg_names" ]]; then
|
||||
# Convert newline-separated selections to space-separated for yay
|
||||
echo "$pkg_names" | tr '\n' ' ' | xargs yay -Sy --noconfirm
|
||||
sudo updatedb
|
||||
omarchy-show-done
|
||||
fi
|
25
bin/omarchy-pkg-install
Executable file
25
bin/omarchy-pkg-install
Executable file
@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
fzf_args=(
|
||||
--multi
|
||||
--preview 'pacman -Sii {1}'
|
||||
--preview-label='alt-p: toggle description, alt-j/k: scroll, tab: multi-select, F11: maximize'
|
||||
--preview-label-pos='bottom'
|
||||
--preview-window 'down:65%:wrap'
|
||||
--bind 'alt-p:toggle-preview'
|
||||
--bind 'alt-d:preview-half-page-down,alt-u:preview-half-page-up'
|
||||
--bind 'alt-k:preview-up,alt-j:preview-down'
|
||||
--color 'pointer:green,marker:green'
|
||||
)
|
||||
|
||||
sudo pacman -Sy
|
||||
pkg_names=$(pacman -Slq | fzf "${fzf_args[@]}")
|
||||
|
||||
if [[ -n "$pkg_names" ]]; then
|
||||
# Convert newline-separated selections to space-separated for yay
|
||||
echo "$pkg_names" | tr '\n' ' ' | xargs sudo pacman -Sy --noconfirm
|
||||
sudo updatedb
|
||||
omarchy-show-done
|
||||
fi
|
22
bin/omarchy-pkg-remove
Executable file
22
bin/omarchy-pkg-remove
Executable file
@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
|
||||
fzf_args=(
|
||||
--multi
|
||||
--preview 'yay -Qi {1}'
|
||||
--preview-label='alt-p: toggle description, alt-j/k: scroll, tab: multi-select, F11: maximize'
|
||||
--preview-label-pos='bottom'
|
||||
--preview-window 'down:65%:wrap'
|
||||
--bind 'alt-p:toggle-preview'
|
||||
--bind 'alt-d:preview-half-page-down,alt-u:preview-half-page-up'
|
||||
--bind 'alt-k:preview-up,alt-j:preview-down'
|
||||
--color 'pointer:red,marker:red'
|
||||
)
|
||||
|
||||
pkg_names=$(yay -Qqe | fzf "${fzf_args[@]}")
|
||||
|
||||
if [[ -n "$pkg_names" ]]; then
|
||||
# Convert newline-separated selections to space-separated for yay
|
||||
echo "$pkg_names" | tr '\n' ' ' | xargs sudo pacman -Rns --noconfirm
|
||||
sudo updatedb
|
||||
omarchy-show-done
|
||||
fi
|
5
bin/omarchy-powerprofiles-list
Executable file
5
bin/omarchy-powerprofiles-list
Executable file
@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
powerprofilesctl list |
|
||||
awk '/^\s*[* ]\s*[a-zA-Z0-9\-]+:$/ { gsub(/^[*[:space:]]+|:$/,""); print }' |
|
||||
tac
|
@ -8,4 +8,6 @@ gtk-update-icon-cache ~/.local/share/icons/hicolor &>/dev/null
|
||||
# Copy .desktop declarations
|
||||
mkdir -p ~/.local/share/applications
|
||||
cp ~/.local/share/omarchy/applications/*.desktop ~/.local/share/applications/
|
||||
cp ~/.local/share/omarchy/applications/hidden/*.desktop ~/.local/share/applications/
|
||||
|
||||
update-desktop-database ~/.local/share/applications
|
40
bin/omarchy-refresh-config
Executable file
40
bin/omarchy-refresh-config
Executable file
@ -0,0 +1,40 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This script deploys ~/.local/share/omarchy/config/X/Y/Z -> ~/.config/X/Y/Z
|
||||
config_file=$1
|
||||
|
||||
if [[ -z "$config_file" ]]; then
|
||||
cat <<USAGE
|
||||
Usage: $0 [config_file]
|
||||
|
||||
Must provide a file path from the .config directory to be refreshed.
|
||||
To copy ~/.local/share/omarchy/config/hypr/hyprlock.conf to ~/.config/hypr/hyprlock.conf
|
||||
|
||||
$0 hypr/hyprlock.conf
|
||||
USAGE
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Backup the destination file (with timestamp) to avoid clobbering (Ex: hyprlock.conf.bak.1753817951)
|
||||
user_config_file="${HOME}/.config/$config_file"
|
||||
default_config_file="${HOME}/.local/share/omarchy/config/$config_file"
|
||||
backup_config_file="$user_config_file.bak.$(date +%s)"
|
||||
|
||||
if [[ -f "$user_config_file" ]]; then
|
||||
# Create preliminary backup
|
||||
cp -f "$user_config_file" "$backup_config_file" 2>/dev/null
|
||||
|
||||
# Replace config with new default
|
||||
cp -f "$default_config_file" "$user_config_file" 2>/dev/null
|
||||
|
||||
# Compare and delete/inform accordingly
|
||||
if cmp -s "$user_config_file" "$backup_config_file"; then
|
||||
rm "$backup_config_file"
|
||||
else
|
||||
echo -e "\e[31mReplaced $user_config_file with new Omarchy default.\nSaved backup as ${backup_config_file}.\n\n\e[32mChanges:\e[0m"
|
||||
diff "$user_config_file" "$backup_config_file" || true
|
||||
fi
|
||||
else
|
||||
# Config file did not exist already
|
||||
cp -f "$default_config_file" "$user_config_file" 2>/dev/null
|
||||
fi
|
4
bin/omarchy-refresh-hypridle
Executable file
4
bin/omarchy-refresh-hypridle
Executable file
@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
omarchy-refresh-config hypr/hypridle.conf
|
||||
omarchy-restart-hypridle
|
7
bin/omarchy-refresh-hyprland
Executable file
7
bin/omarchy-refresh-hyprland
Executable file
@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
omarchy-refresh-config hypr/autostart.conf
|
||||
omarchy-refresh-config hypr/bindings.conf
|
||||
omarchy-refresh-config hypr/envs.conf
|
||||
omarchy-refresh-config hypr/input.conf
|
||||
omarchy-refresh-config hypr/hyprland.conf
|
3
bin/omarchy-refresh-hyprlock
Executable file
3
bin/omarchy-refresh-hyprlock
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
omarchy-refresh-config hypr/hyprlock.conf
|
4
bin/omarchy-refresh-hyprsunset
Executable file
4
bin/omarchy-refresh-hyprsunset
Executable file
@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
omarchy-refresh-config hypr/hyprsunset.conf
|
||||
omarchy-restart-hyprsunset
|
6
bin/omarchy-refresh-plymouth
Executable file
6
bin/omarchy-refresh-plymouth
Executable file
@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [[ "$1" == "-y" ]]; then
|
||||
sudo cp ~/.local/share/omarchy/default/plymouth/* /usr/share/plymouth/themes/omarchy/
|
||||
sudo plymouth-set-default-theme -R omarchy
|
||||
fi
|
5
bin/omarchy-refresh-swayosd
Executable file
5
bin/omarchy-refresh-swayosd
Executable file
@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
omarchy-refresh-config swayosd/config.toml
|
||||
omarchy-refresh-config swayosd/style.css
|
||||
omarchy-restart-swayosd
|
4
bin/omarchy-refresh-walker
Executable file
4
bin/omarchy-refresh-walker
Executable file
@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
omarchy-refresh-config walker/config.toml
|
||||
omarchy-restart-walker
|
5
bin/omarchy-refresh-waybar
Executable file
5
bin/omarchy-refresh-waybar
Executable file
@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
omarchy-refresh-config waybar/config.jsonc
|
||||
omarchy-refresh-config waybar/style.css
|
||||
omarchy-restart-waybar
|
4
bin/omarchy-reset-sudo
Executable file
4
bin/omarchy-reset-sudo
Executable file
@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "Resetting sudo lockout for user: $USER"
|
||||
su -c "faillock --reset --user $USER"
|
4
bin/omarchy-restart-app
Executable file
4
bin/omarchy-restart-app
Executable file
@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
pkill -x $1
|
||||
setsid uwsm app -- $1 >/dev/null 2>&1 &
|
3
bin/omarchy-restart-hypridle
Executable file
3
bin/omarchy-restart-hypridle
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
omarchy-restart-app hypridle
|
3
bin/omarchy-restart-hyprsunset
Executable file
3
bin/omarchy-restart-hyprsunset
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
omarchy-restart-app hyprsunset
|
3
bin/omarchy-restart-swayosd
Executable file
3
bin/omarchy-restart-swayosd
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
omarchy-restart-app swayosd-server
|
7
bin/omarchy-restart-walker
Executable file
7
bin/omarchy-restart-walker
Executable file
@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
pkill walker
|
||||
# FIXME: Reenable the walker service once the memory leak has been fixed
|
||||
# See https://github.com/basecamp/omarchy/issues/698
|
||||
# setsid uwsm app -- walker --gapplication-service &
|
||||
echo # Always end in success so we don't terminate further running
|
3
bin/omarchy-restart-waybar
Executable file
3
bin/omarchy-restart-waybar
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
omarchy-restart-app waybar
|
3
bin/omarchy-restart-xcompose
Executable file
3
bin/omarchy-restart-xcompose
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
omarchy-restart-app fcitx5
|
89
bin/omarchy-setup-dns
Executable file
89
bin/omarchy-setup-dns
Executable file
@ -0,0 +1,89 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [[ -z $1 ]]; then
|
||||
dns=$(gum choose --height 5 --header "Select DNS provider" Cloudflare DHCP Custom)
|
||||
else
|
||||
dns=$1
|
||||
fi
|
||||
|
||||
case "$dns" in
|
||||
Cloudflare)
|
||||
sudo tee /etc/systemd/resolved.conf >/dev/null <<'EOF'
|
||||
[Resolve]
|
||||
DNS=1.1.1.1#cloudflare-dns.com 1.0.0.1#cloudflare-dns.com
|
||||
FallbackDNS=9.9.9.9 149.112.112.112
|
||||
DNSOverTLS=opportunistic
|
||||
EOF
|
||||
|
||||
# Ensure network interfaces don't override our DNS settings
|
||||
for file in /etc/systemd/network/*.network; do
|
||||
[[ -f "$file" ]] || continue
|
||||
if ! grep -q "^\[DHCPv4\]" "$file"; then continue; fi
|
||||
|
||||
# Add UseDNS=no to DHCPv4 section if not present
|
||||
if ! sed -n '/^\[DHCPv4\]/,/^\[/p' "$file" | grep -q "^UseDNS="; then
|
||||
sudo sed -i '/^\[DHCPv4\]/a UseDNS=no' "$file"
|
||||
fi
|
||||
|
||||
# Add UseDNS=no to IPv6AcceptRA section if present
|
||||
if grep -q "^\[IPv6AcceptRA\]" "$file" && ! sed -n '/^\[IPv6AcceptRA\]/,/^\[/p' "$file" | grep -q "^UseDNS="; then
|
||||
sudo sed -i '/^\[IPv6AcceptRA\]/a UseDNS=no' "$file"
|
||||
fi
|
||||
done
|
||||
|
||||
sudo systemctl restart systemd-networkd systemd-resolved
|
||||
;;
|
||||
|
||||
DHCP)
|
||||
sudo tee /etc/systemd/resolved.conf >/dev/null <<'EOF'
|
||||
[Resolve]
|
||||
DNS=
|
||||
FallbackDNS=
|
||||
DNSOverTLS=no
|
||||
EOF
|
||||
|
||||
# Allow network interfaces to use DHCP DNS
|
||||
for file in /etc/systemd/network/*.network; do
|
||||
[[ -f "$file" ]] || continue
|
||||
sudo sed -i '/^UseDNS=no/d' "$file"
|
||||
done
|
||||
|
||||
sudo systemctl restart systemd-networkd systemd-resolved
|
||||
;;
|
||||
|
||||
Custom)
|
||||
echo "Enter your DNS servers (space-separated, e.g. '192.168.1.1 1.1.1.1'):"
|
||||
read -r dns_servers
|
||||
|
||||
if [[ -z "$dns_servers" ]]; then
|
||||
echo "Error: No DNS servers provided."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
sudo tee /etc/systemd/resolved.conf >/dev/null <<EOF
|
||||
[Resolve]
|
||||
DNS=$dns_servers
|
||||
FallbackDNS=9.9.9.9 149.112.112.112
|
||||
EOF
|
||||
|
||||
# Ensure network interfaces don't override our DNS settings
|
||||
for file in /etc/systemd/network/*.network; do
|
||||
[[ -f "$file" ]] || continue
|
||||
if ! grep -q "^\[DHCPv4\]" "$file"; then continue; fi
|
||||
|
||||
# Add UseDNS=no to DHCPv4 section if not present
|
||||
if ! sed -n '/^\[DHCPv4\]/,/^\[/p' "$file" | grep -q "^UseDNS="; then
|
||||
sudo sed -i '/^\[DHCPv4\]/a UseDNS=no' "$file"
|
||||
fi
|
||||
|
||||
# Add UseDNS=no to IPv6AcceptRA section if present
|
||||
if grep -q "^\[IPv6AcceptRA\]" "$file" && ! sed -n '/^\[IPv6AcceptRA\]/,/^\[/p' "$file" | grep -q "^UseDNS="; then
|
||||
sudo sed -i '/^\[IPv6AcceptRA\]/a UseDNS=no' "$file"
|
||||
fi
|
||||
done
|
||||
|
||||
sudo systemctl restart systemd-networkd systemd-resolved
|
||||
|
||||
;;
|
||||
esac
|
||||
|
127
bin/omarchy-setup-fido2
Executable file
127
bin/omarchy-setup-fido2
Executable file
@ -0,0 +1,127 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
GREEN='\033[0;32m'
|
||||
RED='\033[0;31m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
print_success() {
|
||||
echo -e "${GREEN}$1${NC}"
|
||||
}
|
||||
|
||||
print_error() {
|
||||
echo -e "${RED}$1${NC}"
|
||||
}
|
||||
|
||||
print_info() {
|
||||
echo -e "${YELLOW}$1${NC}"
|
||||
}
|
||||
|
||||
check_fido2_hardware() {
|
||||
tokens=$(fido2-token -L 2>/dev/null)
|
||||
if [ -z "$tokens" ]; then
|
||||
print_error "\nNo FIDO2 device detected. Please plug it in (you may need to unlock it as well)."
|
||||
return 1
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
setup_pam_config() {
|
||||
# Configure sudo
|
||||
if ! grep -q pam_u2f.so /etc/pam.d/sudo; then
|
||||
print_info "Configuring sudo for FIDO2 authentication..."
|
||||
sudo sed -i '1i auth sufficient pam_u2f.so cue authfile=/etc/fido2/fido2' /etc/pam.d/sudo
|
||||
fi
|
||||
|
||||
# Configure polkit
|
||||
if [ -f /etc/pam.d/polkit-1 ] && ! grep -q 'pam_u2f.so' /etc/pam.d/polkit-1; then
|
||||
print_info "Configuring polkit for FIDO2 authentication..."
|
||||
sudo sed -i '1i auth sufficient pam_u2f.so cue authfile=/etc/fido2/fido2' /etc/pam.d/polkit-1
|
||||
elif [ ! -f /etc/pam.d/polkit-1 ]; then
|
||||
print_info "Creating polkit configuration with FIDO2 authentication..."
|
||||
sudo tee /etc/pam.d/polkit-1 >/dev/null <<'EOF'
|
||||
auth sufficient pam_u2f.so cue authfile=/etc/fido2/fido2
|
||||
auth required pam_unix.so
|
||||
|
||||
account required pam_unix.so
|
||||
password required pam_unix.so
|
||||
session required pam_unix.so
|
||||
EOF
|
||||
fi
|
||||
}
|
||||
|
||||
remove_pam_config() {
|
||||
# Remove from sudo
|
||||
if grep -q pam_u2f.so /etc/pam.d/sudo; then
|
||||
print_info "Removing FIDO2 authentication from sudo..."
|
||||
sudo sed -i '/pam_u2f\.so/d' /etc/pam.d/sudo
|
||||
fi
|
||||
|
||||
# Remove from polkit
|
||||
if [ -f /etc/pam.d/polkit-1 ] && grep -Fq 'pam_u2f.so' /etc/pam.d/polkit-1; then
|
||||
print_info "Removing FIDO2 authentication from polkit..."
|
||||
sudo sed -i '/pam_u2f\.so/d' /etc/pam.d/polkit-1
|
||||
fi
|
||||
}
|
||||
|
||||
if [[ "--remove" == "$1" ]]; then
|
||||
print_success "Removing FIDO2 device from authentication.\n"
|
||||
|
||||
# Remove PAM configuration
|
||||
remove_pam_config
|
||||
|
||||
# Remove FIDO2 configuration
|
||||
if [ -d /etc/fido2 ]; then
|
||||
print_info "Removing FIDO2 configuration..."
|
||||
sudo rm -rf /etc/fido2
|
||||
fi
|
||||
|
||||
# Uninstall packages
|
||||
print_info "Removing FIDO2 packages..."
|
||||
sudo pacman -Rns --noconfirm libfido2 pam-u2f
|
||||
|
||||
print_success "FIDO2 authentication has been completely removed."
|
||||
else
|
||||
print_success "Setting up FIDO2 device for authentication.\n"
|
||||
|
||||
# Install required packages
|
||||
print_info "Installing required packages..."
|
||||
sudo pacman -S --noconfirm --needed libfido2 pam-u2f
|
||||
|
||||
if ! check_fido2_hardware; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Create the pamu2fcfg file
|
||||
if [ ! -f /etc/fido2/fido2 ]; then
|
||||
sudo mkdir -p /etc/fido2
|
||||
print_success "\nLet's setup your device by confirming on the device now."
|
||||
print_info "Touch your FIDO2 key when it lights up...\n"
|
||||
|
||||
if pamu2fcfg >/tmp/fido2; then
|
||||
sudo mv /tmp/fido2 /etc/fido2/fido2
|
||||
print_success "FIDO2 device registered successfully!"
|
||||
else
|
||||
print_error "\nFIDO2 registration failed. Please try again."
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
print_info "FIDO2 device already registered."
|
||||
fi
|
||||
|
||||
# Configure PAM
|
||||
setup_pam_config
|
||||
|
||||
# Test with sudo
|
||||
print_info "\nTesting FIDO2 authentication with sudo..."
|
||||
print_info "Touch your FIDO2 key when prompted.\n"
|
||||
|
||||
if sudo echo "FIDO2 authentication test successful"; then
|
||||
print_success "\nPerfect! FIDO2 authentication is now configured."
|
||||
print_info "You can use your FIDO2 key for sudo and polkit authentication."
|
||||
else
|
||||
print_error "\nVerification failed. You may want to check your configuration."
|
||||
fi
|
||||
fi
|
112
bin/omarchy-setup-fingerprint
Executable file
112
bin/omarchy-setup-fingerprint
Executable file
@ -0,0 +1,112 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
GREEN='\033[0;32m'
|
||||
RED='\033[0;31m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
print_success() {
|
||||
echo -e "${GREEN}$1${NC}"
|
||||
}
|
||||
|
||||
print_error() {
|
||||
echo -e "${RED}$1${NC}"
|
||||
}
|
||||
|
||||
print_info() {
|
||||
echo -e "${YELLOW}$1${NC}"
|
||||
}
|
||||
|
||||
check_fingerprint_hardware() {
|
||||
if ! lsusb | grep -Eiq 'fingerprint|synaptics|goodix|elan|validity'; then
|
||||
print_error "\nNo fingerprint sensor detected."
|
||||
return 1
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
setup_pam_config() {
|
||||
# Configure sudo
|
||||
if ! grep -q pam_fprintd.so /etc/pam.d/sudo; then
|
||||
print_info "Configuring sudo for fingerprint authentication..."
|
||||
sudo sed -i '1i auth sufficient pam_fprintd.so' /etc/pam.d/sudo
|
||||
fi
|
||||
|
||||
# Configure polkit
|
||||
if [ -f /etc/pam.d/polkit-1 ] && ! grep -q 'pam_fprintd.so' /etc/pam.d/polkit-1; then
|
||||
print_info "Configuring polkit for fingerprint authentication..."
|
||||
sudo sed -i '1i auth sufficient pam_fprintd.so' /etc/pam.d/polkit-1
|
||||
elif [ ! -f /etc/pam.d/polkit-1 ]; then
|
||||
print_info "Creating polkit configuration with fingerprint authentication..."
|
||||
sudo tee /etc/pam.d/polkit-1 >/dev/null <<'EOF'
|
||||
auth sufficient pam_fprintd.so
|
||||
auth required pam_unix.so
|
||||
|
||||
account required pam_unix.so
|
||||
password required pam_unix.so
|
||||
session required pam_unix.so
|
||||
EOF
|
||||
fi
|
||||
}
|
||||
|
||||
remove_pam_config() {
|
||||
# Remove from sudo
|
||||
if grep -q pam_fprintd.so /etc/pam.d/sudo; then
|
||||
print_info "Removing fingerprint authentication from sudo..."
|
||||
sudo sed -i '/pam_fprintd\.so/d' /etc/pam.d/sudo
|
||||
fi
|
||||
|
||||
# Remove from polkit
|
||||
if [ -f /etc/pam.d/polkit-1 ] && grep -Fq 'pam_fprintd.so' /etc/pam.d/polkit-1; then
|
||||
print_info "Removing fingerprint authentication from polkit..."
|
||||
sudo sed -i '/pam_fprintd\.so/d' /etc/pam.d/polkit-1
|
||||
fi
|
||||
}
|
||||
|
||||
if [[ "--remove" == "$1" ]]; then
|
||||
print_success "Removing fingerprint scanner from authentication.\n"
|
||||
|
||||
# Remove PAM configuration
|
||||
remove_pam_config
|
||||
|
||||
# Uninstall packages
|
||||
print_info "Removing fingerprint packages..."
|
||||
sudo pacman -Rns --noconfirm fprintd
|
||||
|
||||
print_success "Fingerprint authentication has been completely removed."
|
||||
else
|
||||
print_success "Setting up fingerprint scanner for authentication.\n"
|
||||
|
||||
# Install required packages
|
||||
print_info "Installing required packages..."
|
||||
sudo pacman -S --noconfirm --needed fprintd usbutils
|
||||
|
||||
if ! check_fingerprint_hardware; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Configure PAM
|
||||
setup_pam_config
|
||||
|
||||
# Enroll first fingerprint
|
||||
print_success "\nLet's setup your right index finger as the first fingerprint."
|
||||
print_info "Keep moving the finger around on sensor until the process completes.\n"
|
||||
|
||||
if sudo fprintd-enroll "$USER"; then
|
||||
print_success "\nFingerprint enrolled successfully!"
|
||||
|
||||
# Verify
|
||||
print_info "\nNow let's verify that it's working correctly.\n"
|
||||
if fprintd-verify; then
|
||||
print_success "\nPerfect! Fingerprint authentication is now configured."
|
||||
print_info "You can use your fingerprint for sudo, polkit, and lock screen (Super + Escape)."
|
||||
else
|
||||
print_error "\nVerification failed. You may want to try enrolling again."
|
||||
fi
|
||||
else
|
||||
print_error "\nEnrollment failed. Please try again."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
4
bin/omarchy-show-done
Executable file
4
bin/omarchy-show-done
Executable file
@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo
|
||||
gum spin --spinner "globe" --title "Done! Press any key to close..." -- bash -c 'read -n 1 -s'
|
@ -1,51 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# A script to display Hyprland keybindings defined in your configuration
|
||||
# using wofi for an interactive search menu.
|
||||
|
||||
USER_HYPRLAND_CONF="$HOME/.config/hypr/hyprland.conf"
|
||||
OMARCHY_BINDINGS_CONF="$HOME/.local/share/omarchy/default/hypr/bindings.conf"
|
||||
|
||||
# Process the configuration file to extract and format keybindings
|
||||
# 1. `grep` finds all lines starting with 'bind' (allowing for leading spaces).
|
||||
# 2. The first `sed` removes comments (anything after a '#').
|
||||
# 3. `awk` does the heavy lifting of formatting the output.
|
||||
# - It sets the field separator to a comma ','.
|
||||
# - It removes the 'bind... =' part from the beginning of the line.
|
||||
# - It joins the key combination (e.g., "SUPER + Q").
|
||||
# - It joins the command that the key executes.
|
||||
# - It prints everything in a nicely aligned format.
|
||||
# 4. The final `sed` cleans up any leftover commas from the end of lines.
|
||||
grep -h '^[[:space:]]*bind' "$HYPRLAND_CONF" "$OMARCHY_BINDINGS_CONF" |
|
||||
awk -F, '
|
||||
{
|
||||
# Strip trailing comments
|
||||
sub(/#.*/, "");
|
||||
|
||||
# Remove the "bind... =" part and surrounding whitespace
|
||||
sub(/^[[:space:]]*bind[^=]*=(\+[[:space:]])?(exec, )?[[:space:]]*/, "", $1);
|
||||
|
||||
# Combine the modifier and key (first two fields)
|
||||
key_combo = $1 " + " $2;
|
||||
|
||||
# Clean up: strip leading "+" if present, trim spaces
|
||||
gsub(/^[ \t]*\+?[ \t]*/, "", key_combo);
|
||||
gsub(/[ \t]+$/, "", key_combo);
|
||||
|
||||
# Reconstruct the command from the remaining fields
|
||||
action = "";
|
||||
for (i = 3; i <= NF; i++) {
|
||||
action = action $i (i < NF ? "," : "");
|
||||
}
|
||||
|
||||
# Clean up trailing commas, remove leading "exec, ", and trim
|
||||
sub(/,$/, "", action);
|
||||
gsub(/(^|,)[[:space:]]*exec[[:space:]]*,?/, "", action);
|
||||
gsub(/^[ \t]+|[ \t]+$/, "", action);
|
||||
gsub(/[ \t]+/, " ", key_combo); # Collapse multiple spaces to one
|
||||
|
||||
if (action != "") {
|
||||
printf "%-35s → %s\n", key_combo, action;
|
||||
}
|
||||
}' |
|
||||
flock --nonblock /tmp/.wofi.lock -c "wofi -dmenu -i --width 60% --height 70% -p 'Hyprland Keybindings' -O alphabetical"
|
7
bin/omarchy-show-logo
Executable file
7
bin/omarchy-show-logo
Executable file
@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
clear
|
||||
echo -e "\033[32m"
|
||||
cat <~/.local/share/omarchy/logo.txt
|
||||
echo -e "\033[0m"
|
||||
echo
|
26
bin/omarchy-snapshot
Executable file
26
bin/omarchy-snapshot
Executable file
@ -0,0 +1,26 @@
|
||||
#!/bin/bash
|
||||
|
||||
COMMAND="$1"
|
||||
OMARCHY_PATH=${OMARCHY_PATH:-$HOME/.local/share/omarchy}
|
||||
|
||||
if [[ -z $COMMAND ]]; then
|
||||
echo "Usage: omarchy-snapshot <create|restore>" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! command -v snapper &>/dev/null; then
|
||||
exit 127 # omarchy-update can use this to just ignore if snapper is not available
|
||||
fi
|
||||
|
||||
case "$COMMAND" in
|
||||
create)
|
||||
DESC="$(omarchy-version)"
|
||||
|
||||
for config in root home; do
|
||||
sudo snapper -c "$config" create -c number -d "$DESC"
|
||||
done
|
||||
;;
|
||||
restore)
|
||||
sudo limine-snapper-restore
|
||||
;;
|
||||
esac
|
22
bin/omarchy-state
Executable file
22
bin/omarchy-state
Executable file
@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
|
||||
STATE_DIR="$HOME/.local/state/omarchy"
|
||||
mkdir -p "$STATE_DIR"
|
||||
|
||||
COMMAND="$1"
|
||||
STATE_NAME="$2"
|
||||
|
||||
if [[ -z "$COMMAND" ]]; then
|
||||
echo "Usage: omarchy-state <set|clear> <state-name-or-pattern>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -z "$STATE_NAME" ]]; then
|
||||
echo "Usage: omarchy-state $COMMAND <state-name>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
case "$COMMAND" in
|
||||
set) touch "$STATE_DIR/$STATE_NAME" ;;
|
||||
clear) find "$STATE_DIR" -maxdepth 1 -type f -name "$STATE_NAME" -delete ;;
|
||||
esac
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user