Compare commits
839 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6dbe8936d8 | ||
|
|
6b75528a1f | ||
|
|
caa236dca1 | ||
|
|
c74358c6d2 | ||
|
|
7a4cd1d6c3 | ||
|
|
ed8ee47963 | ||
|
|
36fc49b4d5 | ||
|
|
855819aca6 | ||
|
|
d666254783 | ||
|
|
40812f13d2 | ||
|
|
0447ee7016 | ||
|
|
4d0aa8cc10 | ||
|
|
25a62ede40 | ||
|
|
df5b4134c4 | ||
|
|
eb5b93f3f2 | ||
|
|
b645e8e095 | ||
|
|
dd95dc333a | ||
|
|
bbf358e787 | ||
|
|
bb379340d6 | ||
|
|
479f58a4ae | ||
|
|
7e6c2d8b8a | ||
|
|
fac455e06e | ||
|
|
fa0e86cb4e | ||
|
|
4eac28bd52 | ||
|
|
e5f2d1ed43 | ||
|
|
9081467d5a | ||
|
|
a02c585b0a | ||
|
|
eef1ac8ee6 | ||
|
|
c9af214914 | ||
|
|
49690f3eb4 | ||
|
|
f8fca336a4 | ||
|
|
5db5e9f459 | ||
|
|
244a85a19a | ||
|
|
25d9940a68 | ||
|
|
e25e4c4eef | ||
|
|
e1b866cdb8 | ||
|
|
b9c4f5795d | ||
|
|
421de037db | ||
|
|
77f410a9da | ||
|
|
f787b6c3d3 | ||
|
|
ab70b235f0 | ||
|
|
a1be987345 | ||
|
|
d01ef6992b | ||
|
|
0378b6f682 | ||
|
|
af534f1c95 | ||
|
|
862b51390d | ||
|
|
eb62fb6583 | ||
|
|
9a5adf3bc9 | ||
|
|
9dc6dbf2ca | ||
|
|
9309255b81 | ||
|
|
7977fc16d3 | ||
|
|
6800afc381 | ||
|
|
6cb2db1f51 | ||
|
|
d6ccc4d9bf | ||
|
|
a433c9f73d | ||
|
|
b07c7e9d0d | ||
|
|
886732dc42 | ||
|
|
e4a6c62eef | ||
|
|
ef80c3ada1 | ||
|
|
dedaf3054e | ||
|
|
bf3b570771 | ||
|
|
1a3a4201fc | ||
|
|
6dbba29e9b | ||
|
|
701a9dd4ed | ||
|
|
2b269b4262 | ||
|
|
35523cad56 | ||
|
|
145adf9e92 | ||
|
|
380f4d849a | ||
|
|
994645713b | ||
|
|
49aff9f026 | ||
|
|
4253b5e2de | ||
|
|
8107697e10 | ||
|
|
98ff5c3a64 | ||
|
|
029e49f6e8 | ||
|
|
86d6b80de6 | ||
|
|
e5f003d6ec | ||
|
|
fec7b01a28 | ||
|
|
0f65e84163 | ||
|
|
536f9b2491 | ||
|
|
0afb3f3811 | ||
|
|
8c422e870f | ||
|
|
e89ee64e8e | ||
|
|
db9bf1e424 | ||
|
|
5ae56ee2b7 | ||
|
|
9e957e029b | ||
|
|
ad783c7816 | ||
|
|
3a2653d81c | ||
|
|
b63b13e005 | ||
|
|
b175875462 | ||
|
|
b64a21d52e | ||
|
|
ed315877d0 | ||
|
|
6eacb2eb02 | ||
|
|
29c70a2b45 | ||
|
|
6273e6bd32 | ||
|
|
21a816fb71 | ||
|
|
eddcfd4bf0 | ||
|
|
ac21b7370f | ||
|
|
8d0de54330 | ||
|
|
aa0fc15c75 | ||
|
|
d8e91b1997 | ||
|
|
a839954f02 | ||
|
|
e11f1b6c5b | ||
|
|
30738604e3 | ||
|
|
d980c773e3 | ||
|
|
f2fbfb64dd | ||
|
|
e4d3285cf3 | ||
|
|
febfdf120c | ||
|
|
451513a1b2 | ||
|
|
6951fe28f3 | ||
|
|
d9e4e73f88 | ||
|
|
f0792f397b | ||
|
|
21963b02ae | ||
|
|
30b8e58b5d | ||
|
|
b6341b1d94 | ||
|
|
27d92531b7 | ||
|
|
928ae01f6c | ||
|
|
0521b1af21 | ||
|
|
91f2d0a5f8 | ||
|
|
8a265bb7b8 | ||
|
|
4d2fdd4920 | ||
|
|
898a111de8 | ||
|
|
9019dd576b | ||
|
|
0ebdad0f99 | ||
|
|
15912edb2f | ||
|
|
5878a30e81 | ||
|
|
0106d821a3 | ||
|
|
9b0182cda8 | ||
|
|
89247119d3 | ||
|
|
1bab819d2b | ||
|
|
149833710d | ||
|
|
8883ab634e | ||
|
|
f09c61c6df | ||
|
|
c5199cf436 | ||
|
|
6a64f35089 | ||
|
|
0a9c33527c | ||
|
|
987f394988 | ||
|
|
c787893bc4 | ||
|
|
260ca68ffc | ||
|
|
6633324675 | ||
|
|
5a3705f596 | ||
|
|
16e7a12290 | ||
|
|
430062878a | ||
|
|
aeaf35ba26 | ||
|
|
0b6db42c31 | ||
|
|
89d5735693 | ||
|
|
eb1b169fa7 | ||
|
|
640ab31d38 | ||
|
|
6996553776 | ||
|
|
e86d08682f | ||
|
|
047a2ce443 | ||
|
|
c5ba7da896 | ||
|
|
03721d93ff | ||
|
|
000dffbdfc | ||
|
|
e2ca9f3898 | ||
|
|
a298ab9c13 | ||
|
|
c86e2b94dc | ||
|
|
768f0b8843 | ||
|
|
cbb7933f97 | ||
|
|
a368c5bf27 | ||
|
|
b489ebe31d | ||
|
|
e09c4e9f34 | ||
|
|
cd101f7fec | ||
|
|
aac321cfd4 | ||
|
|
0ee417bacb | ||
|
|
b7700a5ffc | ||
|
|
50dc356e2d | ||
|
|
f98f81169a | ||
|
|
e22afa6ed6 | ||
|
|
81c9a187aa | ||
|
|
c07fb065d2 | ||
|
|
fe3d78a515 | ||
|
|
104e07026f | ||
|
|
213e638312 | ||
|
|
e545cc0f2c | ||
|
|
31fa100119 | ||
|
|
5ff9923adf | ||
|
|
0dd5f660a4 | ||
|
|
e3f3a0e2f9 | ||
|
|
ea0c03f740 | ||
|
|
9e41c2d45f | ||
|
|
56cf5a3148 | ||
|
|
c08d82df6d | ||
|
|
709070da1f | ||
|
|
3253709dae | ||
|
|
1745124b9b | ||
|
|
3044fb8a4c | ||
|
|
416f3abdec | ||
|
|
04d34869ce | ||
|
|
32c902fcf3 | ||
|
|
c284ef0cae | ||
|
|
feee699e76 | ||
|
|
8905592522 | ||
|
|
900ee5a4d7 | ||
|
|
6c4f73049a | ||
|
|
e0de6d2923 | ||
|
|
50d4b3eb10 | ||
|
|
4481e6640e | ||
|
|
11ccc21022 | ||
|
|
ea8bc0efd0 | ||
|
|
6eca659765 | ||
|
|
a03791bf04 | ||
|
|
d36f019604 | ||
|
|
e461d33cf1 | ||
|
|
ce8d254827 | ||
|
|
0d2c723c8b | ||
|
|
69d8bc46c7 | ||
|
|
6ab70d9e68 | ||
|
|
b44763937f | ||
|
|
0b918fbec0 | ||
|
|
3005703233 | ||
|
|
8b4135ed44 | ||
|
|
eb35c5abce | ||
|
|
840359c53f | ||
|
|
9c6291f392 | ||
|
|
9ef22dc174 | ||
|
|
0c6fd61ab7 | ||
|
|
65dff4b20c | ||
|
|
22294dd65d | ||
|
|
2931c9d584 | ||
|
|
6eea995236 | ||
|
|
9a3155d38f | ||
|
|
d4d20a1f3b | ||
|
|
14359bc21c | ||
|
|
a08f340b08 | ||
|
|
856dc55313 | ||
|
|
97519f5d8f | ||
|
|
5c92a73799 | ||
|
|
f7ab1e5493 | ||
|
|
8098b125fb | ||
|
|
299ea33934 | ||
|
|
590e4fa031 | ||
|
|
e65eee2420 | ||
|
|
aa0f6b9d76 | ||
|
|
2a2fb663d0 | ||
|
|
9656f0bbd0 | ||
|
|
018bf7a9b0 | ||
|
|
d8da215ae2 | ||
|
|
798a0458b2 | ||
|
|
a8671ffc97 | ||
|
|
7909b779ec | ||
|
|
aedd273475 | ||
|
|
eb95f7ad37 | ||
|
|
5dafe79d3d | ||
|
|
74958f4f03 | ||
|
|
85b27dec97 | ||
|
|
1ccbc70ead | ||
|
|
607e9dea67 | ||
|
|
13c4d178dc | ||
|
|
920d4a052e | ||
|
|
8035afa16c | ||
|
|
948e7193cf | ||
|
|
90f6fd7067 | ||
|
|
e65bba0996 | ||
|
|
8525c65043 | ||
|
|
d5b3fc4a23 | ||
|
|
840fe0f125 | ||
|
|
3ba2862dd8 | ||
|
|
befeaa52c8 | ||
|
|
c00b7c1785 | ||
|
|
3654750d81 | ||
|
|
c292033bbe | ||
|
|
72c8a87aff | ||
|
|
085e838fe8 | ||
|
|
be977d343e | ||
|
|
cbf11b1ad8 | ||
|
|
27bb7d0b60 | ||
|
|
41c9f32724 | ||
|
|
b52005acef | ||
|
|
653d01e353 | ||
|
|
291af92f3d | ||
|
|
be88eced39 | ||
|
|
877b695d6a | ||
|
|
e6251d092a | ||
|
|
976d56fe3c | ||
|
|
40127d314b | ||
|
|
fdabd8c54f | ||
|
|
6bdfcc1fc9 | ||
|
|
8f9f1899e9 | ||
|
|
ed2ac1d5f7 | ||
|
|
e1469928d8 | ||
|
|
b867e1fba8 | ||
|
|
8daea935b4 | ||
|
|
f0b803a991 | ||
|
|
5665793193 | ||
|
|
b75e0c7998 | ||
|
|
917a397a41 | ||
|
|
2011cf496c | ||
|
|
7cab5a7816 | ||
|
|
8e910a438f | ||
|
|
99c44038d6 | ||
|
|
d21a21b9da | ||
|
|
2105166728 | ||
|
|
51407d363d | ||
|
|
87f1adc8ce | ||
|
|
945b2cd1f0 | ||
|
|
1673f69130 | ||
|
|
45bc0318f6 | ||
|
|
b75f6f749e | ||
|
|
02574c062f | ||
|
|
7803be70d1 | ||
|
|
febc279960 | ||
|
|
c14e2b39df | ||
|
|
3b9a680a58 | ||
|
|
55e53b84e0 | ||
|
|
8931a74f27 | ||
|
|
189ed15497 | ||
|
|
ee6384277f | ||
|
|
a178851ef2 | ||
|
|
f403b0c89d | ||
|
|
cc2ccaeedc | ||
|
|
17428a5699 | ||
|
|
7e54ce88db | ||
|
|
4cb1729874 | ||
|
|
b8bd14bb4e | ||
|
|
1115e80dfb | ||
|
|
45bdfa5e28 | ||
|
|
b457c2fde4 | ||
|
|
12aa2b42db | ||
|
|
f055a21399 | ||
|
|
534ac56e7a | ||
|
|
110e9b2ed2 | ||
|
|
2ca8499051 | ||
|
|
6ace1ee483 | ||
|
|
1823256246 | ||
|
|
e56550e370 | ||
|
|
236d0012b5 | ||
|
|
b815a6724f | ||
|
|
d5e678277f | ||
|
|
33f8e38ca9 | ||
|
|
76e6d224b7 | ||
|
|
8fae6cb752 | ||
|
|
0961f5b273 | ||
|
|
89b583a59d | ||
|
|
de05720e3a | ||
|
|
05ea4b6340 | ||
|
|
2cf0856324 | ||
|
|
68fb8ce590 | ||
|
|
439c478e35 | ||
|
|
e5edbfc28f | ||
|
|
18a6deac77 | ||
|
|
eeef3e6c83 | ||
|
|
1a520e8ecd | ||
|
|
312261f437 | ||
|
|
4619cf12c3 | ||
|
|
6df563eb27 | ||
|
|
153cf6883c | ||
|
|
ca7449e1b5 | ||
|
|
b8562cbefa | ||
|
|
f18692f8ef | ||
|
|
b257d8bd13 | ||
|
|
262cc17dd9 | ||
|
|
9bea9b5c6a | ||
|
|
e5b2ca3204 | ||
|
|
ce2af1a2ea | ||
|
|
69043e7154 | ||
|
|
41031eeae7 | ||
|
|
7f760369ba | ||
|
|
43042ba6f6 | ||
|
|
535104820f | ||
|
|
d1cb653dad | ||
|
|
b343bef8c3 | ||
|
|
7d891558f8 | ||
|
|
7b2806768f | ||
|
|
51c746c034 | ||
|
|
dad3ffb7fc | ||
|
|
4e8e692503 | ||
|
|
7d3a6a8907 | ||
|
|
f9a201f7dc | ||
|
|
1e8dfda9a3 | ||
|
|
9fd06bb774 | ||
|
|
9c263e3d77 | ||
|
|
e0c3d02b70 | ||
|
|
c8311bad66 | ||
|
|
df59704555 | ||
|
|
7869327c6f | ||
|
|
49c95a4e07 | ||
|
|
fa3e17cc99 | ||
|
|
8ad79595cb | ||
|
|
b13c99fd7c | ||
|
|
b4fcf933b8 | ||
|
|
f676d2c7b3 | ||
|
|
accce3cd1e | ||
|
|
052d5031e1 | ||
|
|
0e44f524f4 | ||
|
|
9fc37b7ad4 | ||
|
|
98a1e808f0 | ||
|
|
f24a31ba0b | ||
|
|
f71c4e9adc | ||
|
|
ea4084c816 | ||
|
|
ae5f1e21a9 | ||
|
|
66ac685dfc | ||
|
|
4bf90f87b6 | ||
|
|
d2e3acc19b | ||
|
|
393ada1a4e | ||
|
|
7aa745b33c | ||
|
|
5f38bd4979 | ||
|
|
926ced2bc8 | ||
|
|
e2a2198fee | ||
|
|
5be818d6ac | ||
|
|
94b952e49a | ||
|
|
b90ce966f9 | ||
|
|
5f2d67fdf4 | ||
|
|
bd2a198c94 | ||
|
|
92ff4899c5 | ||
|
|
cd2e0fe56e | ||
|
|
33c77ceeb7 | ||
|
|
392076d770 | ||
|
|
773b9901d6 | ||
|
|
4083ea0faa | ||
|
|
4573701590 | ||
|
|
5816b0ab67 | ||
|
|
6745e789f4 | ||
|
|
9cb1732c4c | ||
|
|
580d97f9e9 | ||
|
|
a64833be44 | ||
|
|
11fa5f4cec | ||
|
|
67e9814352 | ||
|
|
03f3eaadf0 | ||
|
|
d4686c1829 | ||
|
|
bf6ebe820b | ||
|
|
40e7592bca | ||
|
|
d67fea3637 | ||
|
|
e0e889d216 | ||
|
|
0a1ca8f3c6 | ||
|
|
d81400ffb3 | ||
|
|
9ca53ed6f6 | ||
|
|
e9ad82c8f9 | ||
|
|
0f21c8c773 | ||
|
|
8ad0c87d63 | ||
|
|
5fcae42804 | ||
|
|
e99d4f2254 | ||
|
|
5c04115de8 | ||
|
|
5cfa113f32 | ||
|
|
495b3a1817 | ||
|
|
378b8a15ff | ||
|
|
dc78fc5560 | ||
|
|
42b0e2c37b | ||
|
|
eda84add79 | ||
|
|
5e4e8bdb72 | ||
|
|
77dfed4087 | ||
|
|
966a4f922c | ||
|
|
158b87d93a | ||
|
|
4b2570fb29 | ||
|
|
4b6ce95d47 | ||
|
|
756339fdae | ||
|
|
3e99357ea5 | ||
|
|
ad0bb869ee | ||
|
|
e379012461 | ||
|
|
75b053d303 | ||
|
|
f4d1605dda | ||
|
|
bcbf0974e6 | ||
|
|
30a855e0d0 | ||
|
|
b6eeab251d | ||
|
|
2b94f2a75d | ||
|
|
317f2f2208 | ||
|
|
91d099c1a3 | ||
|
|
432939741e | ||
|
|
9dc9b8e529 | ||
|
|
2db28208ac | ||
|
|
5793ac3038 | ||
|
|
88a6b15b4b | ||
|
|
02a0c06d04 | ||
|
|
f95951da5f | ||
|
|
dc3d9ce779 | ||
|
|
56a736e4b9 | ||
|
|
a7a7b1a443 | ||
|
|
4b670576ea | ||
|
|
bd2a5d954a | ||
|
|
cabb92316c | ||
|
|
787cd6d640 | ||
|
|
2f192d8e86 | ||
|
|
bae8a8e783 | ||
|
|
5e5108675d | ||
|
|
e2cfe4229a | ||
|
|
a7237282db | ||
|
|
646f25d109 | ||
|
|
092e87e23f | ||
|
|
3a33c69bbf | ||
|
|
5e51b481df | ||
|
|
201cece022 | ||
|
|
241d5a3ad9 | ||
|
|
1452f8091b | ||
|
|
e09db2109e | ||
|
|
a3966b0d46 | ||
|
|
684dfc428d | ||
|
|
72e37ead6f | ||
|
|
ba238dcc46 | ||
|
|
5588d6b4f7 | ||
|
|
ef5b1660e3 | ||
|
|
c0c779498b | ||
|
|
6ade26c70d | ||
|
|
31687fd6bc | ||
|
|
7a6dd320f4 | ||
|
|
bec8d7ac34 | ||
|
|
d52ec145e8 | ||
|
|
19e073fcb8 | ||
|
|
8946ed9f15 | ||
|
|
c3ed8fe525 | ||
|
|
e405f00856 | ||
|
|
75abfc505d | ||
|
|
f6d2b34b2d | ||
|
|
04ea7ba3d4 | ||
|
|
65443150c5 | ||
|
|
71ef0490fb | ||
|
|
15b2556a03 | ||
|
|
b19780bf52 | ||
|
|
2b629e85e3 | ||
|
|
64b0e21a36 | ||
|
|
90fff60718 | ||
|
|
ba31d9e841 | ||
|
|
ed09966992 | ||
|
|
0b14e2934d | ||
|
|
81cb065e68 | ||
|
|
3a27e61f21 | ||
|
|
3f048ab298 | ||
|
|
4ce42402ae | ||
|
|
8edbd41ac5 | ||
|
|
9238ee7c59 | ||
|
|
9778b01ac4 | ||
|
|
50d36a3c0e | ||
|
|
10acc7528e | ||
|
|
2e71bb6a74 | ||
|
|
7a41d496d8 | ||
|
|
d74ec09ff4 | ||
|
|
c71b1f7bbe | ||
|
|
0bf678a088 | ||
|
|
de148edb01 | ||
|
|
dc6bfe2598 | ||
|
|
2c02da1d5b | ||
|
|
76b856dea7 | ||
|
|
bc1c18fc12 | ||
|
|
f81b9d341e | ||
|
|
6ea3b1a430 | ||
|
|
7ae7747236 | ||
|
|
82fa0c2bf7 | ||
|
|
cc890e6c09 | ||
|
|
915e67c5ca | ||
|
|
bfda376bb8 | ||
|
|
477c086fde | ||
|
|
dae1e2ff84 | ||
|
|
ec953df826 | ||
|
|
3614bd4ae6 | ||
|
|
9480b71b0b | ||
|
|
2b06f348aa | ||
|
|
2e7fde54f5 | ||
|
|
ff74afa6c9 | ||
|
|
c6b0d153cf | ||
|
|
ba3ef9dc1e | ||
|
|
607fa71c97 | ||
|
|
7d5c343d16 | ||
|
|
3cfdabfba7 | ||
|
|
8c79481bda | ||
|
|
fbc7996409 | ||
|
|
8ccac2e1d9 | ||
|
|
813dbc208e | ||
|
|
d2908c4377 | ||
|
|
6d9dd5639c | ||
|
|
d7326e577a | ||
|
|
d9335ecbd6 | ||
|
|
cc3e81ff74 | ||
|
|
9f385badae | ||
|
|
ebcb145054 | ||
|
|
55785807e3 | ||
|
|
d73f5493a1 | ||
|
|
863f8add6b | ||
|
|
652872c19e | ||
|
|
8c6e357a53 | ||
|
|
daf3b69747 | ||
|
|
dbc5f4ff10 | ||
|
|
ada3b5cb47 | ||
|
|
078c40f4df | ||
|
|
c9af8374bf | ||
|
|
c2584534d4 | ||
|
|
decef03853 | ||
|
|
bc65cf4b4d | ||
|
|
7db8f4d5f7 | ||
|
|
4a363edc25 | ||
|
|
16c6928a8e | ||
|
|
183d498fa8 | ||
|
|
fea8e0e29f | ||
|
|
33e2f09b35 | ||
|
|
ce0fefa65c | ||
|
|
760ae2eaa5 | ||
|
|
36e4002819 | ||
|
|
73948d3e96 | ||
|
|
80d75f2b8b | ||
|
|
c46365c8fe | ||
|
|
cfd3702c34 | ||
|
|
b22607ebc7 | ||
|
|
a965002ebe | ||
|
|
4c5603817a | ||
|
|
97a356c6fb | ||
|
|
1269e98ce8 | ||
|
|
5e79bcf466 | ||
|
|
189c04869a | ||
|
|
8b9045f924 | ||
|
|
e64104b0d5 | ||
|
|
ed3d7765fe | ||
|
|
e70e93d3d2 | ||
|
|
74c3cd3ea7 | ||
|
|
530683510f | ||
|
|
8aed1b7ceb | ||
|
|
527f765e05 | ||
|
|
8ff46bd6d8 | ||
|
|
f13b3c1645 | ||
|
|
69c681aadf | ||
|
|
8c019a08b2 | ||
|
|
1510d47381 | ||
|
|
4a87af02d3 | ||
|
|
08d1afed02 | ||
|
|
988224ffb8 | ||
|
|
d4c810fa5e | ||
|
|
0fc51da7a3 | ||
|
|
087a64aec5 | ||
|
|
b6a5b753b4 | ||
|
|
0eb8393500 | ||
|
|
f89a90e2af | ||
|
|
db61972c95 | ||
|
|
dfab6e560a | ||
|
|
290a232d9c | ||
|
|
0a8390b9d1 | ||
|
|
c2e1f5211a | ||
|
|
e41c359ccf | ||
|
|
4f2c59ecac | ||
|
|
18d25a2b06 | ||
|
|
29ca0979f0 | ||
|
|
8bda36454a | ||
|
|
208773fd65 | ||
|
|
eda89abf21 | ||
|
|
37893bd367 | ||
|
|
71bed1b8de | ||
|
|
35974b959f | ||
|
|
eb86e74f51 | ||
|
|
061b5eaee7 | ||
|
|
6836fb725b | ||
|
|
5e287f6282 | ||
|
|
2c0bc613a9 | ||
|
|
62276c1a87 | ||
|
|
c34e6f3db7 | ||
|
|
ec8828e7c5 | ||
|
|
60af53466b | ||
|
|
59927b067c | ||
|
|
bec35355d0 | ||
|
|
30e2d6caf5 | ||
|
|
06a9e74aa6 | ||
|
|
eb9e94b508 | ||
|
|
c93436018b | ||
|
|
0a779aa2fe | ||
|
|
6a8aa74223 | ||
|
|
00d2d7d8ef | ||
|
|
8baefc2e38 | ||
|
|
3cec5293f9 | ||
|
|
92206b85c9 | ||
|
|
fc3a9b09d7 | ||
|
|
c9bc98a6c1 | ||
|
|
2f35f185c7 | ||
|
|
52a86e7429 | ||
|
|
05128cb493 | ||
|
|
52da766fca | ||
|
|
d2bb73504e | ||
|
|
4e78b689eb | ||
|
|
002307a89a | ||
|
|
9a530b27b4 | ||
|
|
b3948523cb | ||
|
|
182e5dda6e | ||
|
|
0fc7f85a25 | ||
|
|
bb661f2b2e | ||
|
|
6b7a534f3d | ||
|
|
63174b44bc | ||
|
|
4c95c473a4 | ||
|
|
51518a1141 | ||
|
|
a3253c27ba | ||
|
|
be51f5fc9d | ||
|
|
f7665f601d | ||
|
|
0086c2b1fe | ||
|
|
5956d90a27 | ||
|
|
1c211f47ba | ||
|
|
8ad098e865 | ||
|
|
d49a8298d2 | ||
|
|
53e00c6aab | ||
|
|
d330c4a7fb | ||
|
|
43d964e970 | ||
|
|
677953e973 | ||
|
|
97edb9bfbb | ||
|
|
fdf92358ff | ||
|
|
a13a892c04 | ||
|
|
08ce1f4672 | ||
|
|
0efaf44bcf | ||
|
|
867c21f17c | ||
|
|
a849141ba3 | ||
|
|
2d4807383b | ||
|
|
3330f16b58 | ||
|
|
b1e90c1b9a | ||
|
|
5d034f916a | ||
|
|
07d177f334 | ||
|
|
f2fe88d157 | ||
|
|
423e919260 | ||
|
|
e36ac46f05 | ||
|
|
ee8b10b813 | ||
|
|
91d1f16585 | ||
|
|
1123264ddc | ||
|
|
4bdf0a7919 | ||
|
|
3086d9029d | ||
|
|
65e77b05fa | ||
|
|
dca39c309e | ||
|
|
c2d1e9c2dd | ||
|
|
6c0d0c0431 | ||
|
|
35645638ff | ||
|
|
38a0ba3f8c | ||
|
|
c758335bc1 | ||
|
|
c1754b0b81 | ||
|
|
126b79807e | ||
|
|
ef3ed5d64e | ||
|
|
faa200c0ab | ||
|
|
ed878c5ff7 | ||
|
|
0a1205760d | ||
|
|
b34f1f878f | ||
|
|
c0a4bb2edf | ||
|
|
e475e5610f | ||
|
|
660e85e5d9 | ||
|
|
0cb308508f | ||
|
|
c55d2d84ad | ||
|
|
3c3b0f8e9a | ||
|
|
e48db37a5c | ||
|
|
c84bdb1b51 | ||
|
|
52af8b1b42 | ||
|
|
0bac81d080 | ||
|
|
fa5ad7af0f | ||
|
|
0e5b8386d8 | ||
|
|
507b5051ef | ||
|
|
f2b0fdb62d | ||
|
|
69cc076435 | ||
|
|
d5fb001d12 | ||
|
|
024cf68fa3 | ||
|
|
9dd2c3207b | ||
|
|
c5757878a0 | ||
|
|
102096835e | ||
|
|
b7f8aec2f8 | ||
|
|
075d7b723d | ||
|
|
9098c45688 | ||
|
|
54030267ae | ||
|
|
3b55fb9827 | ||
|
|
7ec0894ce0 | ||
|
|
fea69174d2 | ||
|
|
16d2a3cf5e | ||
|
|
34cd2c558d | ||
|
|
132e667402 | ||
|
|
91b4912399 | ||
|
|
5ac9627a2e | ||
|
|
27563c08ec | ||
|
|
72707b2e53 | ||
|
|
c410ed61f3 | ||
|
|
8c1e68497a | ||
|
|
533a798317 | ||
|
|
2a6bb7c25b | ||
|
|
9614884b3a | ||
|
|
8022b498a8 | ||
|
|
427f97c654 | ||
|
|
fbbe2bf5eb | ||
|
|
26780dd706 | ||
|
|
86b27b1392 | ||
|
|
19436fa089 | ||
|
|
ceda104046 | ||
|
|
b5f4b236a0 | ||
|
|
cd50596777 | ||
|
|
9137d0cd3e | ||
|
|
1ba19a0e65 | ||
|
|
d6375951b9 | ||
|
|
db53527321 | ||
|
|
8298d26104 | ||
|
|
ebd1d98fe8 | ||
|
|
82d020c6c2 | ||
|
|
5d016014bc | ||
|
|
9b5c14bb3f | ||
|
|
05fdaea17c | ||
|
|
edf1afb975 | ||
|
|
72318e7046 | ||
|
|
65ebfe832b | ||
|
|
b1c5c99530 | ||
|
|
cc2cb1d63e | ||
|
|
3ac17650d4 | ||
|
|
e2684ce9e3 | ||
|
|
7c5ee1b1f5 | ||
|
|
27d4a0d09d | ||
|
|
61dc817dca | ||
|
|
8500d2f3b0 | ||
|
|
2037ad8c4b | ||
|
|
1fd19065fe | ||
|
|
3930387de7 | ||
|
|
22dad59bf6 | ||
|
|
6feefddf40 | ||
|
|
e6d95ded00 | ||
|
|
3c510c962b | ||
|
|
4596575485 | ||
|
|
dca566f110 | ||
|
|
01f101a799 | ||
|
|
2fc427ee87 | ||
|
|
f06e96e7f9 | ||
|
|
0930286582 | ||
|
|
753cb7c88b | ||
|
|
1d71600929 | ||
|
|
889fd9e9d8 | ||
|
|
d7edc390ed | ||
|
|
f654e3f9b9 | ||
|
|
20e6ec778f | ||
|
|
48562a1dd5 | ||
|
|
da3fdc0d23 | ||
|
|
65f0f69c96 | ||
|
|
908daa33cc | ||
|
|
d98745fa46 | ||
|
|
761f254aee | ||
|
|
ced0f4f539 | ||
|
|
092bf07eee | ||
|
|
f3f37fd5ae | ||
|
|
73b8c806cc | ||
|
|
f31d55af13 | ||
|
|
f2a8d89e29 | ||
|
|
6b4f6c02b9 | ||
|
|
e456179995 | ||
|
|
d4eef1bdbd | ||
|
|
69cc4a75d4 | ||
|
|
944cdf0309 | ||
|
|
bd90283569 | ||
|
|
0281abf136 | ||
|
|
9f44d6b798 | ||
|
|
576462e3b0 | ||
|
|
2925247a2f | ||
|
|
0af43cbb29 | ||
|
|
69b7028b9a | ||
|
|
d498795ac4 | ||
|
|
59156e2ee1 | ||
|
|
4b5ea74094 | ||
|
|
d62ff1841c | ||
|
|
23f51c1f7e | ||
|
|
fe9813d495 | ||
|
|
79ee3c4aaf | ||
|
|
987f193649 | ||
|
|
0b06b48c76 | ||
|
|
377feea4d3 |
@@ -1,16 +0,0 @@
|
||||
artists = run_command(
|
||||
'cat', files('artists'),
|
||||
).stdout().strip()
|
||||
|
||||
contributors = run_command(
|
||||
'cat', files('contributors'),
|
||||
).stdout().strip()
|
||||
|
||||
documenters = run_command(
|
||||
'cat', files('documenters'),
|
||||
).stdout().strip()
|
||||
|
||||
translators = run_command(
|
||||
'cat', files('translators'),
|
||||
).stdout().strip()
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
Deutsch: Peter Eisenmann
|
||||
Hrvastki: Natalija Grbac
|
||||
9
.gitignore
vendored
@@ -1,5 +1,5 @@
|
||||
# build folder
|
||||
build/
|
||||
# build folders
|
||||
build*/
|
||||
# temporary folder
|
||||
tmp/
|
||||
# compiled python files
|
||||
@@ -7,4 +7,7 @@ tmp/
|
||||
# temporary files
|
||||
*~
|
||||
# temporary glade files
|
||||
\#*
|
||||
\#*
|
||||
/subprojects/blueprint-compiler
|
||||
# hidden files and folders
|
||||
.*
|
||||
87
README.md
@@ -1,31 +1,76 @@
|
||||
# THIS IS STILL UNDER DEVELOPMENT
|
||||
It can not yet be used to actually install anything.
|
||||
|
||||
# OS Installer
|
||||
A simple operating system installer, intended to be used with live install systems.
|
||||
|
||||
Provides bootstrapping through language, keyboard, internet connection and disk selection.
|
||||
Allows defining of optional additional software to be installed.
|
||||
|
||||
# Translations
|
||||
<a href="https://hosted.weblate.org/engage/os-installer/">
|
||||
<img src="https://hosted.weblate.org/widgets/os-installer/-/os-installer/multi-auto.svg" alt="Translation status" />
|
||||
</a>
|
||||
|
||||
Help with translations is always welcome! The simplest way is via [__Weblate__](https://hosted.weblate.org/projects/os-installer/), which provides a very intuitive website.
|
||||
|
||||
Alternatively you could try the autonomous way:
|
||||
* Fork, clone and build this repository.
|
||||
* Add your [language code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) `xx` to the `po/LINGUAS` file.
|
||||
* Generate a new translation file with `ninja -C build os-installer-update-po` and [edit it](https://flathub.org/apps/org.gnome.Gtranslator).
|
||||
* Test the translation, commit and push the changes to your fork and create a merge request. Thank you!
|
||||
|
||||
# Testing
|
||||
To try out OS-Installer, without making any changes to your system, run it in debug mode:
|
||||
Clone the project with [GNOME Builder](https://gitlab.gnome.org/GNOME/gnome-builder) via `https://gitlab.gnome.org/p3732/os-installer.git` and run it (this will not make changes to your system).
|
||||
|
||||
## Development Setup
|
||||
Install the following dependencies: `gnome-desktop gtk4 libadwaita libgweather python-yaml udisks vte`.
|
||||
Note that GTK4 compatible versions of `gnome-desktop` and `vte` are required.
|
||||
Then clone and install OS-Installer:
|
||||
|
||||
```
|
||||
meson build
|
||||
sudo ninja -C build install
|
||||
os-installer -d
|
||||
git clone --recursive https://gitlab.gnome.org/p3732/os-installer.git
|
||||
cd os-installer
|
||||
meson setup build
|
||||
sudo meson install -C build
|
||||
```
|
||||
|
||||
# Translating
|
||||
## Simple Way
|
||||
* Create an issue [on Github](https://github.com/p3732/os-installer/issues/new) or [on Gitlab](https://gitlab.gnome.org/p3732/os-installer/-/issues/new) stating what language you want to translate `OS-Installer` into
|
||||
* A file will be provided to you. Add the translation underneath the English text [like in this example](https://gitlab.gnome.org/p3732/os-installer/-/blob/master/po/de.po)
|
||||
* Upload the translated file back into the issue. Thank you!
|
||||
To try OS-Installer, without modifying any system settings, run it in debug mode with
|
||||
`os-installer -d`.
|
||||
Uninstall with `sudo ninja -C build uninstall `
|
||||
|
||||
## Autonomous Way
|
||||
* Fork this repository, clone the source code and create a build folder with `meson build`
|
||||
* Add your [language code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) `xx` to the `po/LINGUAS` file
|
||||
* Generate a new translation file with `ninja -C build os-installer-update-po`
|
||||
* Edit the translation file `po/xx.po` with an editor of your choice (normal text editor or a [Translator Editor](https://gitlab.gnome.org/GNOME/gtranslator/))
|
||||
* Try your new translation by following the '__Testing__' intructions
|
||||
* If everything works, commit your changes, push them to your repository and create a merge request. Thank you!
|
||||
# Distributions
|
||||
The following describes how to use this in a distribution.
|
||||
|
||||
## Configuration
|
||||
Place a configuration and installation scripts under `/etc/os-installer` (or symlink it to another folder).
|
||||
An example structure is given in the `example_config` folder.
|
||||
General usage of these files is:
|
||||
1) Read configuration from `config.yaml`
|
||||
1) After establishing an internet connection `prepare.sh` is started.
|
||||
* Useful for starting mirror updates, getting package lists or pre-caching packages.
|
||||
1) After chosing a disk and confirming the deletion of files on it, `install.sh` is started.
|
||||
* Can be used to write basic system and other data onto disk, installing kernel, packages, bootloader, etc.
|
||||
* If `install.sh` does not exist, there will be no confirmation page.
|
||||
1) After giving all other information is confirmed via the summary page, `configure.sh` is started.
|
||||
* This can be used to either handle the full installation or to finish up configuring the system according to selected preferences (account, locale, additional packages and features)
|
||||
|
||||
Not all scripts need to exist, if one does not, this step is simply skipped.
|
||||
The example scripts list which environment variables are made available to each script.
|
||||
|
||||
The scripts can be written in any language as long as a shell can correctly execute them.
|
||||
Also, the installer will run scripts as the user it is started by.
|
||||
If they require elevated priviledges (hint: they probably do),
|
||||
these need to be granted to the script through other means.
|
||||
|
||||
## Dependencies
|
||||
In addition to the dependencies [listed under Testing](#manually),
|
||||
the default OS-Installer config also expects these GNOME apps to be available:
|
||||
`epiphany`, `gnome-disk-utility`, `gnome-control-center`
|
||||
(These can be changed via `config.yaml`)
|
||||
|
||||
Similarly `systemd` is expected to be available, i.e. `localectl` and `timedatectl`.
|
||||
|
||||
## Examples
|
||||
Example configurations of distributions (experimenting) with using OS-Installer:
|
||||
* https://github.com/snowflakelinux/os-installer-snowflake-config (NixOS-based)
|
||||
* https://github.com/arkanelinux/os-installer-config (Arch-based)
|
||||
|
||||
# Contact
|
||||
There is a matrix room https://matrix.to/#/#os-installer:matrix.org in which you can ask questions.
|
||||
Response time might vary.
|
||||
|
||||
17
TODO.md
@@ -1,17 +0,0 @@
|
||||
high prio:
|
||||
|
||||
mid prio:
|
||||
|
||||
* fix row being selected kbd layout->same language
|
||||
* handle potentially needed legacy boot partition for MBR
|
||||
|
||||
low prio:
|
||||
|
||||
* more config options
|
||||
* fixed language
|
||||
* skip settings handle by gnome-initial-setup
|
||||
* allow specifying additional size needed by extra packages
|
||||
* check all used library calls for needed unref()
|
||||
* focus entry field when clicking on row with entry field (encrypt, user*2)
|
||||
* fix focus inputs
|
||||
* fix progressing with enter for user, encrypt
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"app-id": "com.github.p3732.OS-Installer",
|
||||
"runtime": "org.gnome.Platform",
|
||||
"runtime-version": "3.38",
|
||||
"runtime-version": "47",
|
||||
"sdk": "org.gnome.Sdk",
|
||||
"command": "os-installer",
|
||||
"command": "os-installer-demo",
|
||||
"finish-args": [
|
||||
"--share=network",
|
||||
"--share=ipc",
|
||||
@@ -23,267 +23,95 @@
|
||||
],
|
||||
"modules": [
|
||||
{
|
||||
"name" : "gnome-desktop",
|
||||
"buildsystem" : "meson",
|
||||
"sources" : [
|
||||
"name":"blueprint-compiler",
|
||||
"buildsystem": "meson",
|
||||
"cleanup": ["*"],
|
||||
"sources": [
|
||||
{
|
||||
"type" : "git",
|
||||
"url" : "https://gitlab.gnome.org/GNOME/gnome-desktop.git"
|
||||
"type": "git",
|
||||
"url": "https://gitlab.gnome.org/jwestman/blueprint-compiler",
|
||||
"tag": "v0.14.0"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name" : "pam",
|
||||
"config-opts" : [
|
||||
"--includedir=/app/include/security",
|
||||
"--disable-doc"
|
||||
],
|
||||
"sources" : [
|
||||
{
|
||||
"type" : "archive",
|
||||
"url" : "https://github.com/linux-pam/linux-pam/releases/download/v1.4.0/Linux-PAM-1.4.0.tar.xz",
|
||||
"sha256" : "cd6d928c51e64139be3bdb38692c68183a509b83d4f2c221024ccd4bcddfd034"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name" : "intltool",
|
||||
"sources" : [
|
||||
{
|
||||
"type" : "archive",
|
||||
"url" : "https://launchpad.net/intltool/trunk/0.51.0/+download/intltool-0.51.0.tar.gz",
|
||||
"sha256" : "67c74d94196b153b774ab9f89b2fa6c6ba79352407037c8c14d5aeb334e959cd"
|
||||
}
|
||||
]
|
||||
|
||||
},
|
||||
{
|
||||
"name" : "polkit",
|
||||
"buildsystem" : "meson",
|
||||
"sources" : [
|
||||
{
|
||||
"type" : "git",
|
||||
"url" : "https://gitlab.freedesktop.org/polkit/polkit.git"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name" : "gudev",
|
||||
"buildsystem" : "meson",
|
||||
"sources" : [
|
||||
{
|
||||
"type" : "git",
|
||||
"url" : "https://gitlab.gnome.org/GNOME/libgudev.git"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name" : "kmod",
|
||||
"buildsystem" : "autotools",
|
||||
"config-opts" : [
|
||||
"--disable-manpages"
|
||||
],
|
||||
"sources" : [
|
||||
{
|
||||
"type" : "archive",
|
||||
"url" : "https://mirrors.edge.kernel.org/pub/linux/utils/kernel/kmod/kmod-25.tar.xz",
|
||||
"sha256" : "7165e6496656159dcb909a91ed708a0fe273a4b128b4b1dc997ccb5189eef1cd"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name" : "mpfr",
|
||||
"buildsystem" : "autotools",
|
||||
"sources" : [
|
||||
{
|
||||
"type" : "archive",
|
||||
"url" : "https://www.mpfr.org/mpfr-4.0.2/mpfr-4.0.2.tar.xz",
|
||||
"sha256": "1d3be708604eae0e42d578ba93b390c2a145f17743a744d8f3f8c2ad5855a38a"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name" : "bytesize",
|
||||
"config-opts" : [
|
||||
"--with-gtk-doc=no"
|
||||
],
|
||||
"sources" : [
|
||||
{
|
||||
"type" : "archive",
|
||||
"url" : "https://github.com/storaged-project/libbytesize/releases/download/2.1/libbytesize-2.1.tar.gz",
|
||||
"sha256": "acc7d40237573adb958039bd9254155a41e57c363fce492f9e8768b42e4bffae"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name" : "libaio",
|
||||
"buildsystem" : "simple",
|
||||
"no-autogen" : true,
|
||||
"build-commands" : [
|
||||
"make prefix=/app install"
|
||||
],
|
||||
"sources" : [
|
||||
{
|
||||
"type" : "archive",
|
||||
"url" : "https://pagure.io/libaio/archive/libaio-0.3.111/libaio-libaio-0.3.111.tar.gz",
|
||||
"sha256": "e6bc17cba66e59085e670fea238ad095766b412561f90b354eb4012d851730ba"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name" : "lvm2",
|
||||
"buildsystem" : "autotools",
|
||||
"sources" : [
|
||||
{
|
||||
"type" : "archive",
|
||||
"url" : "https://github.com/lvmteam/lvm2/archive/v2_03_05.tar.gz",
|
||||
"sha256": "6a1f6f76a099c41e2639147eba3f97cbc0760fa01d315f91852e03142884e0c8"
|
||||
}
|
||||
],
|
||||
"post-install": [
|
||||
"chmod 755 /app/lib/libdevmapper.so.1.02",
|
||||
"chmod 755 /app/sbin/dmsetup",
|
||||
"chmod 755 /app/sbin/lvm"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name" : "cryptsetup",
|
||||
"buildsystem" : "autotools",
|
||||
"sources" : [
|
||||
{
|
||||
"type" : "archive",
|
||||
"url" : "https://www.kernel.org/pub/linux/utils/cryptsetup/v1.7/cryptsetup-1.7.5.tar.xz",
|
||||
"sha256" : "2b30cd1d0dd606a53ac77b406e1d37798d4b0762fa89de6ea546201906a251bd"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name" : "blockdev",
|
||||
"config-opts" : [
|
||||
"--disable-tests",
|
||||
"--with-btrfs=no",
|
||||
"--with-dm=no",
|
||||
"--with-dmraid=no",
|
||||
"--with-gtk-doc=no",
|
||||
"--with-kbd=no",
|
||||
"--with-lvm=no",
|
||||
"--with-lvm_dbus=no",
|
||||
"--with-mpath=no",
|
||||
"--with-nvdimm=no",
|
||||
"--with-escrow=no",
|
||||
"--with-tools=no",
|
||||
"--with-vdo=no"
|
||||
],
|
||||
"sources" : [
|
||||
{
|
||||
"type" : "git",
|
||||
"url" : "https://github.com/storaged-project/libblockdev.git"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name" : "atasmart",
|
||||
"buildsystem" : "autotools",
|
||||
"sources" : [
|
||||
{
|
||||
"type" : "archive",
|
||||
"url" : "http://0pointer.de/public/libatasmart-0.19.tar.xz",
|
||||
"sha256" : "61f0ea345f63d28ab2ff0dc352c22271661b66bf09642db3a4049ac9dbdb0f8d"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name" : "udisks2",
|
||||
"buildsystem" : "autotools",
|
||||
"config-opts" : [
|
||||
"--enable-available-modules=no",
|
||||
"--enable-bcache=no",
|
||||
"--enable-btrfs=no",
|
||||
"--enable-introspection=yes",
|
||||
"--enable-lvm2=no",
|
||||
"--enable-modules=no",
|
||||
"--enable-vdo=no",
|
||||
"--enable-zram=no",
|
||||
"--with-systemdsystemunitdir=no",
|
||||
"--with-tmpfilesdir=no"
|
||||
],
|
||||
"sources" : [
|
||||
{
|
||||
"type" : "git",
|
||||
"url" : "https://github.com/storaged-project/udisks.git"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name" : "libhandy",
|
||||
"buildsystem" : "meson",
|
||||
"config-opts" : [
|
||||
"-Dgtk_doc=false",
|
||||
"-Dtests=false",
|
||||
"-Dexamples=false",
|
||||
"name": "vte",
|
||||
"buildsystem": "meson",
|
||||
"config-opts": [
|
||||
"-Ddocs=false",
|
||||
"-Dgtk3=false",
|
||||
"-Dgtk4=true",
|
||||
"-Dvapi=false",
|
||||
"-Dglade_catalog=disabled"
|
||||
"-Dglade=false"
|
||||
],
|
||||
"cleanup" : [
|
||||
"/include",
|
||||
"/lib/pkgconfig"
|
||||
],
|
||||
"sources" : [
|
||||
"sources": [
|
||||
{
|
||||
"type" : "git",
|
||||
"url" : "https://gitlab.gnome.org/GNOME/libhandy.git",
|
||||
"tag" : "1.0.0",
|
||||
"commit" : "94313c206258860b2428712e7ece1d02c5177857"
|
||||
"type": "git",
|
||||
"url": "https://gitlab.gnome.org/GNOME/vte.git",
|
||||
"commit": "3c29bfef30c34afec4982ba5ec37f944cfacbba2"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name" : "geocode-glib",
|
||||
"config-opts" : [
|
||||
"name": "geocode-glib",
|
||||
"config-opts": [
|
||||
"-Denable-gtk-doc=false",
|
||||
"-Denable-installed-tests=false",
|
||||
"-Denable-gtk-doc=false"
|
||||
"-Dsoup2=false"
|
||||
],
|
||||
"buildsystem" : "meson",
|
||||
"sources" : [
|
||||
"buildsystem": "meson",
|
||||
"sources": [
|
||||
{
|
||||
"type" : "git",
|
||||
"url" : "https://gitlab.gnome.org/GNOME/geocode-glib.git"
|
||||
"type": "git",
|
||||
"url": "https://gitlab.gnome.org/GNOME/geocode-glib.git",
|
||||
"commit": "210abe69d68e38947106f4680631c369b0c23189"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name" : "libgweather",
|
||||
"config-opts" : [
|
||||
"name": "libgweather",
|
||||
"config-opts": [
|
||||
"-Denable_vala=false",
|
||||
"-Dgtk_doc=false"
|
||||
"-Dgtk_doc=false",
|
||||
"-Dtests=false"
|
||||
],
|
||||
"buildsystem" : "meson",
|
||||
"sources" : [
|
||||
{
|
||||
"type" : "git",
|
||||
"url" : "https://gitlab.gnome.org/GNOME/libgweather.git"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name" : "vte",
|
||||
"buildsystem" : "meson",
|
||||
"sources" : [
|
||||
{
|
||||
"type" : "git",
|
||||
"url" : "https://gitlab.gnome.org/GNOME/vte.git"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "python-yaml",
|
||||
"buildsystem": "simple",
|
||||
"build-commands": [ "python setup.py install --prefix=/app" ],
|
||||
"buildsystem": "meson",
|
||||
"sources": [
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "http://pyyaml.org/download/pyyaml/PyYAML-5.3.1.tar.gz",
|
||||
"sha256": "b8eac752c5e14d3eca0e6dd9199cd627518cb5ec06add0de9d32baeee6fe645d"
|
||||
"url": "https://gitlab.gnome.org/GNOME/libgweather/-/archive/4.4.2/libgweather-4.4.2.tar.gz",
|
||||
"sha256": "e2890c2d0b587eae478e80a0de5f82e5514441733a0095974ff7825d804bd073"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "gnome-desktop",
|
||||
"buildsystem": "meson",
|
||||
"config-opts": [
|
||||
"-Ddebug_tools=false",
|
||||
"-Ddesktop_docs=false",
|
||||
"-Dudev=disabled",
|
||||
"-Dlegacy_library=false"
|
||||
],
|
||||
"sources": [
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://gitlab.gnome.org/GNOME/gnome-desktop/-/archive/44.0/gnome-desktop-44.0.tar.gz",
|
||||
"sha256": "73a1fb85c617bf24ede4cf2d630d46e46b5b20ac8c11e06a7685a50c643aa748"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "pyYAML",
|
||||
"buildsystem": "simple",
|
||||
"build-commands": [
|
||||
"pip install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"pyYAML\" --no-build-isolation"
|
||||
],
|
||||
"sources": [
|
||||
{
|
||||
"type": "file",
|
||||
"url": "https://files.pythonhosted.org/packages/cd/e5/af35f7ea75cf72f2cd079c95ee16797de7cd71f29ea7c68ae5ce7be1eda0/PyYAML-6.0.1.tar.gz",
|
||||
"sha256": "bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -291,12 +119,15 @@
|
||||
"name": "os-installer",
|
||||
"builddir": true,
|
||||
"buildsystem": "meson",
|
||||
"config-opts": [
|
||||
"-Dflatpak=true"
|
||||
],
|
||||
"sources": [
|
||||
{
|
||||
"type": "dir",
|
||||
"url": "."
|
||||
"type": "git",
|
||||
"url": "https://gitlab.gnome.org/p3732/os-installer.git"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
.large-button {
|
||||
border-radius: 9999px;
|
||||
-gtk-outline-radius: 9999px;
|
||||
padding: 6px 32px;
|
||||
}
|
||||
|
||||
.big-button {
|
||||
border-radius: 9999px;
|
||||
-gtk-outline-radius: 9999px;
|
||||
padding: 6px 12px;
|
||||
}
|
||||
|
||||
.top-gradient {
|
||||
background-image: linear-gradient(to bottom, @theme_bg_color, alpha(@theme_bg_color, 0) 100%);
|
||||
}
|
||||
|
||||
.bottom-gradient {
|
||||
background-image: linear-gradient(to top, @theme_bg_color, alpha(@theme_bg_color, 0) 100%);
|
||||
}
|
||||
|
||||
.terminal {
|
||||
background-color: #000;
|
||||
border-radius: 6px;
|
||||
-gtk-outline-radius: 6px;
|
||||
padding: 6px 12px;
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m 3 0 c -1.660156 0 -3 1.339844 -3 3 v 7 c 0 1.660156 1.339844 3 3 3 h 10 c 1.660156 0 3 -1.339844 3 -3 v -7 c 0 -1.660156 -1.339844 -3 -3 -3 z m 0 2 h 10 c 0.554688 0 1 0.445312 1 1 v 7 c 0 0.554688 -0.445312 1 -1 1 h -10 c -0.554688 0 -1 -0.445312 -1 -1 v -7 c 0 -0.554688 0.445312 -1 1 -1 z m 2 12 c -1.105469 0 -2 0.894531 -2 2 h 10 c 0 -1.105469 -0.894531 -2 -2 -2 z m 0 0" fill="#2e3436"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 543 B |
|
Before Width: | Height: | Size: 730 B After Width: | Height: | Size: 730 B |
|
Before Width: | Height: | Size: 776 B After Width: | Height: | Size: 776 B |
2
data/resources/icon/scalable/actions/map-symbolic.svg
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px"><path d="m 15 2 v 10 l -5 3 l -5 -3 l -5 3 v -10 l 5 -3 l 5 3 z m -10 1 v 8 l 5 3 v -8 z m 0 0" fill="#222222"/></svg>
|
||||
|
After Width: | Height: | Size: 245 B |
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px"><path d="m 6.5 1 c -0.832031 0 -1.5 0.667969 -1.5 1.5 v 1.5 h -3 c -0.554688 0 -1 0.445312 -1 1 v 3 h 1.5 c 0.832031 0 1.5 0.667969 1.5 1.5 s -0.667969 1.5 -1.5 1.5 h -1.5 v 3 c 0 0.554688 0.445312 1 1 1 h 3 v -1.5 c 0 -0.832031 0.667969 -1.5 1.5 -1.5 s 1.5 0.667969 1.5 1.5 v 1.5 h 3 c 0.554688 0 1 -0.445312 1 -1 v -3 h 1.5 c 0.832031 0 1.5 -0.667969 1.5 -1.5 s -0.667969 -1.5 -1.5 -1.5 h -1.5 v -3 c 0 -0.554688 -0.445312 -1 -1 -1 h -3 v -1.5 c 0 -0.832031 -0.667969 -1.5 -1.5 -1.5 z m 0 0" fill="#888888"/></svg>
|
||||
|
After Width: | Height: | Size: 643 B |
|
Before Width: | Height: | Size: 573 B After Width: | Height: | Size: 573 B |
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px"><g fill="#222222"><path d="m 9.492188 0.140625 c -0.851563 -0.1640625 -1.722657 -0.1835938 -2.574219 -0.0664062 c -1.699219 0.2304692 -3.328125 1.0078122 -4.601563 2.2929692 c -2.546875 2.566406 -3.050781 6.539062 -1.230468 9.664062 c 1.824218 3.121094 5.53125 4.636719 9.019531 3.683594 c 3.488281 -0.949219 5.90625 -4.132813 5.890625 -7.75 c 0 -0.550782 -0.453125 -1 -1.003906 -0.996094 c -0.550782 0.003906 -0.996094 0.453125 -0.996094 1.003906 c 0.015625 2.722656 -1.792969 5.097656 -4.417969 5.816406 c -2.625 0.714844 -5.390625 -0.417968 -6.761719 -2.765624 c -1.371094 -2.351563 -0.996094 -5.316407 0.921875 -7.25 c 1.914063 -1.929688 4.875 -2.335938 7.238281 -0.984376 c 0.476563 0.273438 1.089844 0.109376 1.363282 -0.371093 c 0.273437 -0.480469 0.109375 -1.089844 -0.371094 -1.367188 c -0.785156 -0.445312 -1.621094 -0.75 -2.476562 -0.910156 z m 0 0"/><path d="m 15.753906 3.65625 c 0.175782 -0.199219 0.261719 -0.460938 0.246094 -0.722656 c -0.019531 -0.265625 -0.140625 -0.511719 -0.339844 -0.6875 c -0.199218 -0.175782 -0.460937 -0.265625 -0.726562 -0.246094 c -0.265625 0.015625 -0.511719 0.140625 -0.6875 0.339844 l -6.296875 7.195312 l -2.242188 -2.246094 c -0.390625 -0.390624 -1.023437 -0.390624 -1.414062 0 c -0.1875 0.1875 -0.292969 0.445313 -0.292969 0.710938 s 0.105469 0.519531 0.292969 0.707031 l 3 3 c 0.195312 0.195313 0.464843 0.300781 0.742187 0.292969 c 0.277344 -0.011719 0.535156 -0.132812 0.71875 -0.34375 z m 0 0"/></g></svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 303 B After Width: | Height: | Size: 303 B |
@@ -1,13 +1,48 @@
|
||||
subdir('ui')
|
||||
|
||||
blueprints = custom_target('blueprints',
|
||||
input: files(
|
||||
'ui/confirm_quit_dialog.blp',
|
||||
'ui/main_window.blp',
|
||||
'ui/pages/choices.blp',
|
||||
'ui/pages/confirm.blp',
|
||||
'ui/pages/desktop.blp',
|
||||
'ui/pages/disk.blp',
|
||||
'ui/pages/done.blp',
|
||||
'ui/pages/encrypt.blp',
|
||||
'ui/pages/failed.blp',
|
||||
'ui/pages/filter.blp',
|
||||
'ui/pages/install.blp',
|
||||
'ui/pages/internet.blp',
|
||||
'ui/pages/keyboard_language.blp',
|
||||
'ui/pages/keyboard_layout.blp',
|
||||
'ui/pages/keyboard_overview.blp',
|
||||
'ui/pages/language.blp',
|
||||
'ui/pages/locale.blp',
|
||||
'ui/pages/partition.blp',
|
||||
'ui/pages/restart.blp',
|
||||
'ui/pages/summary.blp',
|
||||
'ui/pages/user.blp',
|
||||
'ui/pages/welcome.blp',
|
||||
'ui/widgets/desktop_entry.blp',
|
||||
'ui/widgets/device_row.blp',
|
||||
'ui/widgets/multi_selection_row.blp',
|
||||
'ui/widgets/page_wrapper.blp',
|
||||
'ui/widgets/progress_row.blp',
|
||||
'ui/widgets/selection_row.blp',
|
||||
'ui/widgets/summary_row.blp',
|
||||
),
|
||||
output: '.',
|
||||
command: [find_program('blueprint-compiler'), 'batch-compile', '@OUTPUT@', '@CURRENT_SOURCE_DIR@', '@INPUT@'],
|
||||
)
|
||||
pkgdatadir = join_paths(get_option('prefix'), get_option('datadir'), meson.project_name())
|
||||
gnome = import('gnome')
|
||||
|
||||
subdir('ui')
|
||||
|
||||
gnome.compile_resources(
|
||||
meson.project_name(),
|
||||
meson.project_name() + '.gresource.xml',
|
||||
gresource_bundle: true,
|
||||
dependencies: blueprints,
|
||||
install: true,
|
||||
install_dir: pkgdatadir,
|
||||
dependencies: about_dialog
|
||||
install_dir: pkgdatadir
|
||||
)
|
||||
|
||||
@@ -6,39 +6,50 @@
|
||||
<file preprocess="xml-stripblanks" alias="OS-Installer-symbolic.svg">../app_icon/com.github.p3732.OS-Installer-symbolic.svg</file>
|
||||
|
||||
<!-- CSS -->
|
||||
<file>css/style.css</file>
|
||||
<file>style.css</file>
|
||||
|
||||
<!-- Icons -->
|
||||
<file preprocess="xml-stripblanks">icon/globe-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">icon/question-round-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">icon/language-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">icon/user-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">icon/scalable/actions/computer-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">icon/scalable/actions/globe-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">icon/scalable/actions/language-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">icon/scalable/actions/map-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">icon/scalable/actions/puzzle-piece-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">icon/scalable/actions/question-round-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">icon/scalable/actions/success-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">icon/scalable/actions/user-symbolic.svg</file>
|
||||
|
||||
<!-- UI Files -->
|
||||
<!-- about dialog is parsed before compilation, resulting in different path -->
|
||||
<file preprocess="xml-stripblanks">about_dialog.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/confirm_quit_popup.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/about_dialog.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/confirm_quit_dialog.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/main_window.ui</file>
|
||||
|
||||
<file preprocess="xml-stripblanks">ui/pages/choices.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/pages/confirm.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/pages/desktop.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/pages/disk.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/pages/done.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/pages/encrypt.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/pages/failed.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/pages/filter.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/pages/install.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/pages/internet.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/pages/keyboard_language.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/pages/keyboard_layout.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/pages/keyboard_overview.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/pages/language.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/pages/locale.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/pages/partition.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/pages/restart.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/pages/software.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/pages/summary.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/pages/user.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/pages/welcome.ui</file>
|
||||
|
||||
<file preprocess="xml-stripblanks">ui/widgets/desktop_entry.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/widgets/device_row.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/widgets/language_row.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/widgets/no_partitions_row.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/widgets/multi_selection_row.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/widgets/page_wrapper.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/widgets/progress_row.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/widgets/selection_row.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/widgets/software_row.ui</file>
|
||||
<file preprocess="xml-stripblanks">ui/widgets/summary_row.ui</file>
|
||||
</gresource>
|
||||
</gresources>
|
||||
|
||||
14
data/resources/style.css
Normal file
@@ -0,0 +1,14 @@
|
||||
.terminal-box {
|
||||
background-color: #000;
|
||||
}
|
||||
|
||||
/* Flat style for headerbar and nested-list. */
|
||||
.nested-list {
|
||||
background: none;
|
||||
box-shadow:none;
|
||||
}
|
||||
|
||||
/* Distinction for a selected */
|
||||
.selected-card {
|
||||
background: @accent_bg_color;
|
||||
}
|
||||
@@ -1,37 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.0"/>
|
||||
<object class="GtkAboutDialog" id="about_dialog">
|
||||
<property name="can-focus">False</property>
|
||||
<property name="destroy-with-parent">True</property>
|
||||
<property name="type-hint">dialog</property>
|
||||
<property name="skip-taskbar-hint">True</property>
|
||||
<property name="gravity">center</property>
|
||||
<property name="program-name">OS-Installer</property>
|
||||
<property name="version">@VERSION@</property>
|
||||
<property name="copyright">© 2021 Peter Eisenmann, et al.</property>
|
||||
<property name="comments" translatable="yes" comments="Simple description in the about dialog">Install an Operating System</property>
|
||||
<property name="website">@PACKAGE_URL@</property>
|
||||
<property name="website-label">@PACKAGE_URL@</property>
|
||||
<property name="authors">@CONTRIBUTORS@</property>
|
||||
<property name="translator-credits" comments="Add your name to the translator credits list">@TRANSLATORS@</property>
|
||||
<property name="logo-icon-name">@APPID@</property>
|
||||
<property name="license-type">gpl-3-0</property>
|
||||
<child internal-child="vbox">
|
||||
<object class="GtkBox">
|
||||
<property name="can-focus">False</property>
|
||||
<child internal-child="action_area">
|
||||
<object class="GtkButtonBox">
|
||||
<property name="can-focus">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<object class="AdwAboutDialog" id="about_window">
|
||||
<property name="width-request">360</property>
|
||||
<property name="height-request">480</property>
|
||||
<property name="application-icon">OS-Installer</property>
|
||||
<property name="application-name" translatable="true">OS-Installer</property>
|
||||
<property name="comments" translatable="true">Install an Operating System</property>
|
||||
<property name="developer-name">Peter Eisenmann (p3732)</property>
|
||||
<property name="developers">@contributors@</property>
|
||||
<property name="issue-url">https://gitlab.gnome.org/p3732/os-installer/-/issues/new</property>
|
||||
<property name="license-type">GTK_LICENSE_GPL_3_0</property>
|
||||
<property name="support-url">https://matrix.to/#/#os-installer:matrix.org</property>
|
||||
<property name="translator-credits">@translators@</property>
|
||||
<property name="version">@version@</property>
|
||||
<property name="website">https://gitlab.gnome.org/p3732/os-installer/</property>
|
||||
</object>
|
||||
</interface>
|
||||
</interface>
|
||||
15
data/resources/ui/confirm_quit_dialog.blp
Normal file
@@ -0,0 +1,15 @@
|
||||
using Gtk 4.0;
|
||||
using Adw 1;
|
||||
|
||||
Adw.AlertDialog popup {
|
||||
/* Translators: Dialog title */
|
||||
heading: _("Installation Running");
|
||||
/* Translators: Text in dialog shown if user wants to close app with installation running */
|
||||
body: _("Stopping a running installation will leave the disk in an undefined state that might potentially be harmful");
|
||||
responses [
|
||||
/* Translators: Underscore can not be the same as for 'Stop Installation'. */
|
||||
close: _("_Continue Installation"),
|
||||
/* Translators: Underscore can not be the same as for 'Continue Installation'. */
|
||||
stop: _("_Stop Installation") destructive,
|
||||
]
|
||||
}
|
||||
@@ -1,110 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<requires lib="libhandy" version="0.0"/>
|
||||
<template class="ConfirmQuitPopup" parent="HdyWindow">
|
||||
<property name="can-focus">False</property>
|
||||
<property name="destroy-with-parent">True</property>
|
||||
<property name="type-hint">dialog</property>
|
||||
<property name="skip-taskbar-hint">True</property>
|
||||
<child>
|
||||
<object class="HdyWindowHandle">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="border-width">12</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">128</property>
|
||||
<property name="icon-name">dialog-warning-symbolic</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="label" translatable="yes" comments="Shown if user wants to close window with running installation">Stopping a running installation will leave the disk in an undefined state that might potentially be harmful</property>
|
||||
<property name="justify">center</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="max-width-chars">45</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="spacing">6</property>
|
||||
<property name="homogeneous">True</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="continue_button">
|
||||
<property name="label" translatable="yes" comments="Underscore can not be the same as for 'Stop Installation'.">_Continue Installation</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="use-underline">True</property>
|
||||
<style>
|
||||
<class name="suggested-action"/>
|
||||
<class name="large-button"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="stop_button">
|
||||
<property name="label" translatable="yes" comments="Underscore can not be the same as for 'Continue Installation'.">_Stop Installation</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="use-underline">True</property>
|
||||
<style>
|
||||
<class name="destructive-action"/>
|
||||
<class name="large-button"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
11
data/resources/ui/main_window.blp
Normal file
@@ -0,0 +1,11 @@
|
||||
using Gtk 4.0;
|
||||
using Adw 1;
|
||||
|
||||
template $OsInstallerWindow : Adw.ApplicationWindow {
|
||||
width-request: 340;
|
||||
height-request: 400;
|
||||
default-width: 500;
|
||||
default-height: 640;
|
||||
|
||||
Adw.NavigationView navigation_view {}
|
||||
}
|
||||
@@ -1,315 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<requires lib="libhandy" version="0.0"/>
|
||||
<template class="OsInstallerWindow" parent="HdyApplicationWindow">
|
||||
<property name="width-request">360</property>
|
||||
<property name="height-request">480</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="default-width">420</property>
|
||||
<property name="default-height">560</property>
|
||||
<signal name="delete-event" handler="_on_quit" swapped="no"/>
|
||||
<signal name="destroy" handler="_on_quit" swapped="no"/>
|
||||
<signal name="destroy-event" handler="_on_quit" swapped="no"/>
|
||||
<child>
|
||||
<object class="HdyWindowHandle">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-start">6</property>
|
||||
<property name="margin-end">6</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="margin-bottom">18</property>
|
||||
<property name="spacing">6</property>
|
||||
<child type="center">
|
||||
<object class="GtkStack" id="image_stack">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-top">12</property>
|
||||
<property name="transition-type">crossfade</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="pixel-size">128</property>
|
||||
<property name="icon_size">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="pixel-size">128</property>
|
||||
<property name="icon_size">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">2</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="spacing">6</property>
|
||||
<child>
|
||||
<object class="GtkStack" id="previous_stack">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="transition-type">crossfade</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">disabled</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="width-request">32</property>
|
||||
<property name="height-request">-1</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="focus-on-click">False</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="action-name">app.previous-page</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">go-previous-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="circular"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">enabled</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStack" id="next_stack">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="transition-type">crossfade</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="sensitive">False</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">disabled</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="width-request">32</property>
|
||||
<property name="height-request">-1</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="action-name">app.next-page</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">go-next-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="circular"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">enabled</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSpinner" id="spinner">
|
||||
<property name="width-request">32</property>
|
||||
<property name="height-request">32</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">waiting</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="halign">end</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="spacing">6</property>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="width-request">32</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="focus-on-click">False</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="action-name">app.about</property>
|
||||
<property name="relief">none</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">help-about-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="circular"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparator">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="width-request">32</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="action-name">app.quit</property>
|
||||
<property name="relief">none</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">window-close-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="circular"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="HdyClamp">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-start">6</property>
|
||||
<property name="margin-end">6</property>
|
||||
<property name="maximum-size">400</property>
|
||||
<property name="tightening-threshold">320</property>
|
||||
<child>
|
||||
<object class="GtkStack" id="main_stack">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="transition-type">slide-left-right</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
@@ -1,17 +1,8 @@
|
||||
# pre-parse about dialog
|
||||
|
||||
conf = configuration_data()
|
||||
conf.set('VERSION', meson.project_version())
|
||||
conf.set('APPID', application_id)
|
||||
conf.set('PACKAGE_URL', application_url)
|
||||
conf.set('ARTISTS', artists)
|
||||
conf.set('CONTRIBUTORS', contributors)
|
||||
conf.set('DOCUMENTERS', documenters)
|
||||
conf.set('TRANSLATORS', translators)
|
||||
|
||||
about_dialog = configure_file(
|
||||
input: 'about_dialog.ui.in',
|
||||
output: 'about_dialog.ui',
|
||||
configuration: conf,
|
||||
install_dir: pkgdatadir,
|
||||
)
|
||||
# about dialog needs special treatment
|
||||
configure_file(input: 'about_dialog.ui.in',
|
||||
output: 'about_dialog.ui',
|
||||
configuration: {
|
||||
'contributors': contributors,
|
||||
'translators': translators,
|
||||
'version': meson.project_version(),
|
||||
})
|
||||
|
||||
24
data/resources/ui/pages/choices.blp
Normal file
@@ -0,0 +1,24 @@
|
||||
using Gtk 4.0;
|
||||
using Gio 2.0;
|
||||
|
||||
template $ChoicesPage : Box {
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
ListBox list {
|
||||
selection-mode: none;
|
||||
styles ["boxed-list"]
|
||||
}
|
||||
|
||||
Button {
|
||||
/* Translators: On button. */
|
||||
label: _("_Continue");
|
||||
focusable: true;
|
||||
halign: center;
|
||||
use-underline: true;
|
||||
clicked => $continue();
|
||||
styles ["suggested-action", "pill"]
|
||||
}
|
||||
}
|
||||
|
||||
Gio.ListStore model {}
|
||||
41
data/resources/ui/pages/confirm.blp
Normal file
@@ -0,0 +1,41 @@
|
||||
using Gtk 4.0;
|
||||
using Adw 1;
|
||||
|
||||
template $ConfirmPage : Box {
|
||||
orientation: vertical;
|
||||
spacing: 18;
|
||||
|
||||
Label {
|
||||
/* Translators: Followed by a disk or partition name */
|
||||
label: _("This will delete all data on");
|
||||
wrap: true;
|
||||
styles ["heading"]
|
||||
}
|
||||
|
||||
ListBox {
|
||||
selection-mode: none;
|
||||
styles ["boxed-list"]
|
||||
|
||||
Adw.ActionRow disk_row {
|
||||
selectable: false;
|
||||
focusable: false;
|
||||
|
||||
[prefix]
|
||||
Image {
|
||||
pixel-size: 16;
|
||||
icon-name: "drive-harddisk-system-symbolic";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Button {
|
||||
/* Translators: On button. */
|
||||
label: _("_Confirm");
|
||||
focusable: true;
|
||||
receives-default: true;
|
||||
halign: center;
|
||||
use-underline: true;
|
||||
clicked => $confirmed();
|
||||
styles ["destructive-action", "pill"]
|
||||
}
|
||||
}
|
||||
@@ -1,78 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<template class="ConfirmPage" parent="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-bottom">18</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">18</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">end</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">6</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes" comments="Followed by a disk or partition name">This will delete all data on</property>
|
||||
<property name="wrap">True</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="disk_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="wrap-mode">word-char</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="confirm_button">
|
||||
<property name="label" translatable="yes" comments="Button label to confirm disk deletion">_Confirm</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="use-underline">True</property>
|
||||
<style>
|
||||
<class name="destructive-action"/>
|
||||
<class name="large-button"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
44
data/resources/ui/pages/desktop.blp
Normal file
@@ -0,0 +1,44 @@
|
||||
using Gtk 4.0;
|
||||
using Gio 2.0;
|
||||
|
||||
Gio.ListStore model {}
|
||||
|
||||
template $DesktopPage: Box {
|
||||
orientation: vertical;
|
||||
spacing:12;
|
||||
|
||||
Picture selected_image {
|
||||
content-fit: contain;
|
||||
halign: center;
|
||||
height-request: 225;
|
||||
styles ["card"]
|
||||
}
|
||||
|
||||
Label selected_description {
|
||||
margin-end: 12;
|
||||
margin-start: 12;
|
||||
ellipsize: end;
|
||||
lines: 3;
|
||||
}
|
||||
|
||||
Button continue_button {
|
||||
/* Translators: On button, brackets will be replaced with desktop name. */
|
||||
label: _("_Use {}");
|
||||
focusable: true;
|
||||
receives-default: true;
|
||||
halign: center;
|
||||
valign: center;
|
||||
use-underline: true;
|
||||
clicked => $continue();
|
||||
styles ["suggested-action", "pill"]
|
||||
}
|
||||
|
||||
Grid grid {
|
||||
column-homogeneous: true;
|
||||
row-homogeneous: true;
|
||||
column-spacing: 12;
|
||||
row-spacing: 12;
|
||||
hexpand: true;
|
||||
}
|
||||
}
|
||||
|
||||
61
data/resources/ui/pages/disk.blp
Normal file
@@ -0,0 +1,61 @@
|
||||
using Gtk 4.0;
|
||||
using Adw 1;
|
||||
|
||||
template $DiskPage : Stack {
|
||||
hexpand: true;
|
||||
vhomogeneous: false;
|
||||
transition-type: crossfade;
|
||||
|
||||
StackPage {
|
||||
name: "disks";
|
||||
child: Box {
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
Box {
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
ListBox disk_list {
|
||||
selection-mode: none;
|
||||
receives-default: true;
|
||||
valign: start;
|
||||
row-activated => $disk_selected();
|
||||
styles ["boxed-list"]
|
||||
}
|
||||
|
||||
Button {
|
||||
/* Translators: Button label to open disk management tool. */
|
||||
label: _("_Manage Disks");
|
||||
focusable: true;
|
||||
halign: center;
|
||||
valign: end;
|
||||
use-underline: true;
|
||||
clicked => $clicked_disks_button();
|
||||
styles ["pill"]
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
StackPage {
|
||||
name: "no-disks";
|
||||
child: Adw.StatusPage {
|
||||
/* Translators: Title of a hint page */
|
||||
title: _("No Disks avaliable");
|
||||
/* Translators: Body of a hint page */
|
||||
description: _("Connect a disk and reload this page.");
|
||||
valign: start;
|
||||
child: Button {
|
||||
action-name: "win.reload-page";
|
||||
/* Translators: On button. */
|
||||
label: _("_Reload");
|
||||
focusable: true;
|
||||
receives-default: true;
|
||||
halign: center;
|
||||
use-underline: true;
|
||||
styles ["pill"]
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -1,341 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<template class="DiskPage" parent="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkStack" id="text_stack">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="transition-type">slide-left-right</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="spacing">12</property>
|
||||
<child type="center">
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes" comments="Explanation for disk selection page.">Select Drive for Installation</property>
|
||||
<property name="justify">center</property>
|
||||
<property name="wrap">True</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="refresh_button">
|
||||
<property name="width-request">32</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="halign">end</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="relief">none</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">view-refresh-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="circular"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">disks</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="disk_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="justify">center</property>
|
||||
<property name="wrap">True</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">partitions</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkOverlay">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="hscrollbar-policy">external</property>
|
||||
<property name="vscrollbar-policy">external</property>
|
||||
<property name="propagate-natural-width">True</property>
|
||||
<property name="propagate-natural-height">True</property>
|
||||
<child>
|
||||
<object class="GtkViewport">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="vscroll-policy">natural</property>
|
||||
<property name="shadow-type">none</property>
|
||||
<child>
|
||||
<object class="GtkStack" id="list_stack">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-top">12</property>
|
||||
<property name="margin-bottom">70</property>
|
||||
<property name="vhomogeneous">False</property>
|
||||
<property name="transition-type">slide-left-right</property>
|
||||
<child>
|
||||
<object class="GtkListBox" id="disk_list">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="valign">start</property>
|
||||
<style>
|
||||
<class name="content"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">disks</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkListBox" id="whole_disk_list">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="selection-mode">none</property>
|
||||
<child>
|
||||
<object class="GtkListBoxRow">
|
||||
<property name="name">back_row</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="selectable">False</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="margin-bottom">6</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="disk_size">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="width-chars">5</property>
|
||||
<property name="max-width-chars">7</property>
|
||||
<property name="xalign">1</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="light"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes" comments="Label to go back to overview of all disks">Use Whole Disk</property>
|
||||
<property name="wrap">True</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="normal"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">go-next-symbolic</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="disk_device_path">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="width-chars">5</property>
|
||||
<property name="max-width-chars">7</property>
|
||||
<property name="xalign">1</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="light"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="content"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkListBox" id="partition_list">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="valign">start</property>
|
||||
<style>
|
||||
<class name="content"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">partitions</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="index">-1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child type="overlay">
|
||||
<object class="GtkBox">
|
||||
<property name="height-request">64</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="valign">end</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<style>
|
||||
<class name="bottom-gradient"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pass-through">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child type="overlay">
|
||||
<object class="GtkBox">
|
||||
<property name="height-request">16</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<style>
|
||||
<class name="top-gradient"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pass-through">True</property>
|
||||
<property name="index">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child type="overlay">
|
||||
<object class="GtkButton" id="settings_button">
|
||||
<property name="label" translatable="yes" comments="Button label to open disk management tool. Underscore can not be for same as for 'Reload'">_Manage Disks</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">end</property>
|
||||
<property name="margin-bottom">18</property>
|
||||
<property name="use-underline">True</property>
|
||||
<style>
|
||||
<class name="circular"/>
|
||||
<class name="big-button"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="index">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</template>
|
||||
<object class="GtkSizeGroup"/>
|
||||
</interface>
|
||||
69
data/resources/ui/pages/done.blp
Normal file
@@ -0,0 +1,69 @@
|
||||
using Gtk 4.0;
|
||||
|
||||
template $DonePage : Box {
|
||||
orientation: vertical;
|
||||
halign: center;
|
||||
spacing: 12;
|
||||
|
||||
Stack stack {
|
||||
vexpand: true;
|
||||
transition-type: crossfade;
|
||||
|
||||
StackPage {
|
||||
name: "buttons";
|
||||
child: Box {
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
Button {
|
||||
/* Translators: Button label to restart system directly after successful installation. Underscore can not be for same letter as 'Restart Later'. */
|
||||
label: _("_Restart System");
|
||||
focusable: true;
|
||||
halign: center;
|
||||
receives-default: true;
|
||||
use-underline: true;
|
||||
clicked => $restart_button_clicked();
|
||||
styles ["suggested-action", "pill"]
|
||||
}
|
||||
|
||||
Button {
|
||||
/* Translators: Button label to delay restart after successful installation. Underscore can not be for same letter as 'Restart System'. */
|
||||
label: _("Restart _Later");
|
||||
focusable: true;
|
||||
halign: center;
|
||||
receives-default: true;
|
||||
action-name: "win.quit";
|
||||
use-underline: true;
|
||||
|
||||
styles ["pill"]
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
StackPage {
|
||||
name: "terminal";
|
||||
child: Box {
|
||||
overflow: hidden;
|
||||
styles ["card", "terminal-box"]
|
||||
|
||||
Box terminal_box {
|
||||
margin-end: 12;
|
||||
margin-start: 12;
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
ToggleButton {
|
||||
focusable: true;
|
||||
/* Translators: Hover information on toggle button that shows terminal output during installation. */
|
||||
tooltip-text: _("Show Terminal Output");
|
||||
halign: center;
|
||||
clicked => $terminal_button_toggled();
|
||||
styles ["pill"]
|
||||
|
||||
Image {
|
||||
icon-name: "utilities-terminal-symbolic";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,76 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<template class="DonePage" parent="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="margin-bottom">18</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes" comments="Informative label after successful installation">Installation complete</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="restart_button">
|
||||
<property name="label" translatable="yes" comments="Button label to restart system directly after successful installation. Underscore can not be for same letter as 'Restart Later'.">_Restart System</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="use-underline">True</property>
|
||||
<style>
|
||||
<class name="suggested-action"/>
|
||||
<class name="large-button"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="label" translatable="yes" comments="Button label to delay restart after successful installation. Underscore can not be for same letter as 'Restart System'.">Restart _Later</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="action-name">app.quit</property>
|
||||
<property name="use-underline">True</property>
|
||||
<style>
|
||||
<class name="big-button"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
76
data/resources/ui/pages/encrypt.blp
Normal file
@@ -0,0 +1,76 @@
|
||||
using Gtk 4.0;
|
||||
using Adw 1;
|
||||
|
||||
template $EncryptPage : Box {
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
ListBox {
|
||||
selection-mode: none;
|
||||
styles ["boxed-list"]
|
||||
|
||||
Adw.SwitchRow switch_row {
|
||||
activatable: true;
|
||||
/* Translators: Used with option to enable disk encryption */
|
||||
title: _("Encrypt Files");
|
||||
notify::active => $switch_row_clicked();
|
||||
}
|
||||
|
||||
Adw.PasswordEntryRow pin_row {
|
||||
activates-default: true;
|
||||
use-underline: true;
|
||||
width-chars: 10;
|
||||
max-width-chars: 16;
|
||||
/* Translators: Disk encryption pin confirmation entry field */
|
||||
title: _("Encryption PIN");
|
||||
changed => $pin_changed();
|
||||
entry-activated => $pin_activated();
|
||||
}
|
||||
|
||||
Adw.PasswordEntryRow pin_confirm_row {
|
||||
activates-default: true;
|
||||
use-underline: true;
|
||||
width-chars: 10;
|
||||
max-width-chars: 16;
|
||||
/* Translators: Disk encryption pin confirmation entry field */
|
||||
title: _("Confirm PIN");
|
||||
changed => $pin_confirm_changed();
|
||||
entry-activated => $continue();
|
||||
}
|
||||
}
|
||||
|
||||
Revealer info_revealer {
|
||||
transition-type: crossfade;
|
||||
|
||||
Box {
|
||||
halign:center;
|
||||
spacing: 12;
|
||||
|
||||
Image {
|
||||
icon-name: "dialog-information-symbolic";
|
||||
styles ["dim-label"]
|
||||
}
|
||||
|
||||
Label {
|
||||
justify: center;
|
||||
wrap: true;
|
||||
max-width-chars: 50;
|
||||
|
||||
/* Translators: Hint for disk encryption */
|
||||
label: _("Memorize this PIN well. Without it you will not be able to access your files.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Button continue_button {
|
||||
/* Translators: On button. */
|
||||
label: _("_Continue");
|
||||
focusable: true;
|
||||
receives-default: true;
|
||||
halign: center;
|
||||
valign: center;
|
||||
use-underline: true;
|
||||
clicked => $continue();
|
||||
styles ["suggested-action", "pill"]
|
||||
}
|
||||
}
|
||||
@@ -1,231 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<template class="EncryptPage" parent="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-bottom">18</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkListBox" id="default_list">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="selection-mode">none</property>
|
||||
<child>
|
||||
<object class="GtkListBoxRow">
|
||||
<property name="name">encryption</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="selectable">False</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="margin-bottom">6</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes" comments="Used with option to enable disk encryption">Encrypt Installation</property>
|
||||
<property name="wrap">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSwitch" id="switch">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="valign">center</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="content"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRevealer" id="revealer">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="transition-duration">200</property>
|
||||
<child>
|
||||
<object class="GtkListBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-top">12</property>
|
||||
<property name="selection-mode">none</property>
|
||||
<child>
|
||||
<object class="GtkListBoxRow">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="activatable">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="margin-bottom">6</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes" comments="Description of entry field for pin/password used for disk encryption">Encryption PIN</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="pin_field">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="activates-default">True</property>
|
||||
<property name="width-chars">10</property>
|
||||
<property name="max-width-chars">16</property>
|
||||
<property name="truncate-multiline">True</property>
|
||||
<property name="placeholder-text" translatable="yes" comments="Placeholder for disk encryption pin/password field">PIN</property>
|
||||
<property name="input-purpose">pin</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">dialog-warning-symbolic</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes" comments="Warning label for disk encryption">Memorize this PIN well. Without it you will not be able to access your files.</property>
|
||||
<property name="wrap">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="content"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="continue_button">
|
||||
<property name="label" translatable="yes" comments="On button.">_Continue</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="use-underline">True</property>
|
||||
<style>
|
||||
<class name="suggested-action"/>
|
||||
<class name="large-button"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
32
data/resources/ui/pages/failed.blp
Normal file
@@ -0,0 +1,32 @@
|
||||
using Gtk 4.0;
|
||||
|
||||
template $FailedPage : Box {
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
Box {
|
||||
overflow: hidden;
|
||||
|
||||
Box terminal_box {
|
||||
margin-end: 12;
|
||||
margin-start: 12;
|
||||
}
|
||||
|
||||
styles ["card", "terminal-box"]
|
||||
}
|
||||
|
||||
Button search_button {
|
||||
focusable: true;
|
||||
receives-default: true;
|
||||
halign: center;
|
||||
clicked => $search_button_clicked();
|
||||
styles ["pill"]
|
||||
|
||||
Label {
|
||||
/* Translators: Shown if installation fails. */
|
||||
label: _("Search for Help on the Internet");
|
||||
use-markup: true;
|
||||
wrap: true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,71 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<template class="FailedPage" parent="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-bottom">18</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="label" translatable="yes" comments="Shown as simple informative text">The installation failed</property>
|
||||
<property name="justify">center</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="max-width-chars">50</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="terminal_box">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<style>
|
||||
<class name="terminal"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="label" translatable="yes" comments="Shown as confirmation if installation fails. Expression of minor discontent. Underscore can not be the same as for 'Copy Error Text'.">_Meh.</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="action-name">app.quit</property>
|
||||
<property name="use-underline">True</property>
|
||||
<style>
|
||||
<class name="destructive-action"/>
|
||||
<class name="large-button"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
48
data/resources/ui/pages/filter.blp
Normal file
@@ -0,0 +1,48 @@
|
||||
using Gtk 4.0;
|
||||
using Adw 1;
|
||||
using Gio 2.0;
|
||||
|
||||
template $FilterPage : Box {
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
SearchEntry search_entry {
|
||||
hexpand: true;
|
||||
margin-start: 12;
|
||||
margin-end: 12;
|
||||
placeholder-text: _("Filter");
|
||||
receives-default: true;
|
||||
}
|
||||
|
||||
Stack stack {
|
||||
transition-type: crossfade;
|
||||
vhomogeneous: false;
|
||||
|
||||
StackPage {
|
||||
name: "list";
|
||||
child: ListBox list {
|
||||
row-activated => $row_selected();
|
||||
styles ["boxed-list"]
|
||||
};
|
||||
}
|
||||
|
||||
StackPage {
|
||||
name: "none";
|
||||
child: Adw.StatusPage {
|
||||
/* Translators: Empty result placeholder title */
|
||||
title: _("No Results");
|
||||
/* Translators: Empty result placeholder, meant as a suggestion */
|
||||
description: _("Try a different search");
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Gio.ListStore list_model {}
|
||||
|
||||
CustomFilter custom_filter {}
|
||||
|
||||
FilterListModel filter_list_model {
|
||||
filter: custom_filter;
|
||||
model: list_model;
|
||||
}
|
||||
43
data/resources/ui/pages/install.blp
Normal file
@@ -0,0 +1,43 @@
|
||||
using Gtk 4.0;
|
||||
using Adw 1;
|
||||
|
||||
template $InstallPage : Box {
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
Stack stack {
|
||||
vexpand: true;
|
||||
transition-type: crossfade;
|
||||
|
||||
StackPage {
|
||||
name: "spinner";
|
||||
child: Adw.Spinner {};
|
||||
}
|
||||
|
||||
StackPage {
|
||||
name: "terminal";
|
||||
child: Box {
|
||||
overflow: hidden;
|
||||
styles ["card", "terminal-box"]
|
||||
|
||||
Box terminal_box {
|
||||
margin-end: 12;
|
||||
margin-start: 12;
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
ToggleButton {
|
||||
focusable: true;
|
||||
/* Translators: Hover information on toggle button that shows terminal output during installation. */
|
||||
tooltip-text: _("Show Terminal Output");
|
||||
halign: center;
|
||||
clicked => $terminal_button_toggled();
|
||||
styles ["pill"]
|
||||
|
||||
Image {
|
||||
icon-name: "utilities-terminal-symbolic";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,107 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<template class="InstallPage" parent="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-bottom">18</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkToggleButton" id="terminal_button">
|
||||
<property name="width-request">64</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="tooltip-text" translatable="yes" comments="Hover information on toggle button that shows terminal output during installation.">Show Terminal Output</property>
|
||||
<property name="halign">center</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">utilities-terminal-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="circular"/>
|
||||
<class name="big-button"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes" comments="Simple label used during Installation">Installing</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStack" id="stack">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="transition-type">crossfade</property>
|
||||
<child>
|
||||
<object class="GtkSpinner" id="spinner">
|
||||
<property name="width-request">64</property>
|
||||
<property name="height-request">64</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">spinner</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="terminal_box">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<style>
|
||||
<class name="terminal"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">terminal</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
66
data/resources/ui/pages/internet.blp
Normal file
@@ -0,0 +1,66 @@
|
||||
using Gtk 4.0;
|
||||
|
||||
template $InternetPage : Stack {
|
||||
hexpand: true;
|
||||
vhomogeneous: false;
|
||||
transition-type: none;
|
||||
|
||||
StackPage {
|
||||
name: "not-connected";
|
||||
child: Box {
|
||||
orientation: vertical;
|
||||
margin-top: 12;
|
||||
spacing: 18;
|
||||
|
||||
Label {
|
||||
label:_("No connection detected");
|
||||
justify: center;
|
||||
styles ["heading"]
|
||||
}
|
||||
|
||||
Button {
|
||||
receives-default: true;
|
||||
halign: center;
|
||||
valign: center;
|
||||
use-underline: true;
|
||||
clicked => $clicked_settings_button();
|
||||
styles ["suggested-action", "pill"]
|
||||
|
||||
Label {
|
||||
/* Translators: On button for opening wifi settings. */
|
||||
label: _("_Open Settings");
|
||||
use-underline: true;
|
||||
justify: center;
|
||||
wrap: true;
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
StackPage {
|
||||
name: "connected";
|
||||
child: Box {
|
||||
orientation: vertical;
|
||||
margin-top: 12;
|
||||
spacing: 18;
|
||||
|
||||
Label {
|
||||
label:_("Connection detected");
|
||||
justify: center;
|
||||
styles ["heading"]
|
||||
}
|
||||
|
||||
Button {
|
||||
/* Translators: On button. */
|
||||
label: _("_Continue");
|
||||
focusable: true;
|
||||
receives-default: true;
|
||||
halign: center;
|
||||
valign: center;
|
||||
use-underline: true;
|
||||
clicked => $continue();
|
||||
styles ["suggested-action", "pill"]
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<template class="InternetPage" parent="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-bottom">18</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">18</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="settings_button">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="use-underline">True</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes" comments="On button for opening wifi settings.">_Setup Internet Connection</property>
|
||||
<property name="use-underline">True</property>
|
||||
<property name="justify">center</property>
|
||||
<property name="wrap">True</property>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="suggested-action"/>
|
||||
<class name="large-button"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
16
data/resources/ui/pages/keyboard_language.blp
Normal file
@@ -0,0 +1,16 @@
|
||||
using Gtk 4.0;
|
||||
using Gio 2.0;
|
||||
|
||||
template $KeyboardLanguagePage : Box {
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
ListBox list {
|
||||
hexpand: true;
|
||||
selection-mode: none;
|
||||
row-activated => $language_row_activated();
|
||||
styles ["boxed-list"]
|
||||
}
|
||||
}
|
||||
|
||||
Gio.ListStore model {}
|
||||
36
data/resources/ui/pages/keyboard_layout.blp
Normal file
@@ -0,0 +1,36 @@
|
||||
using Gtk 4.0;
|
||||
using Adw 1;
|
||||
using Gio 2.0;
|
||||
|
||||
template $KeyboardLayoutPage : Box {
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
ListBox {
|
||||
selection-mode: none;
|
||||
styles ["boxed-list"]
|
||||
|
||||
Adw.ActionRow language_row {
|
||||
activatable: true;
|
||||
focusable: true;
|
||||
/*selectable: false;*/
|
||||
/* Translators: Followed by a language name. */
|
||||
title: _("Keyboard Language");
|
||||
activated => $show_language_selection();
|
||||
styles ["property"]
|
||||
|
||||
Image {
|
||||
icon-name: "emblem-system-symbolic";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ListBox layout_list {
|
||||
valign: start;
|
||||
selection-mode: none;
|
||||
row-activated => $layout_row_activated();
|
||||
styles ["boxed-list"]
|
||||
}
|
||||
}
|
||||
|
||||
Gio.ListStore model {}
|
||||
@@ -1,257 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<template class="KeyboardLayoutPage" parent="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes" comments="Explanation for keyboard layout selection page.">Select Keyboard Layout</property>
|
||||
<property name="justify">center</property>
|
||||
<property name="wrap">True</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkListBox" id="change_language_list">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="selection-mode">none</property>
|
||||
<child>
|
||||
<object class="GtkListBoxRow">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="margin-bottom">6</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes" comments="Followed by a language name.">Showing Keyboard Layouts for</property>
|
||||
<property name="wrap">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">emblem-system-symbolic</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="language_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="xalign">1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="content"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkOverlay">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="margin-top">28</property>
|
||||
<property name="hscrollbar-policy">external</property>
|
||||
<property name="vscrollbar-policy">external</property>
|
||||
<property name="propagate-natural-width">True</property>
|
||||
<property name="propagate-natural-height">True</property>
|
||||
<child>
|
||||
<object class="GtkViewport">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="vscroll-policy">natural</property>
|
||||
<property name="shadow-type">none</property>
|
||||
<child>
|
||||
<object class="GtkStack" id="stack">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-top">18</property>
|
||||
<property name="margin-bottom">70</property>
|
||||
<property name="vhomogeneous">False</property>
|
||||
<property name="transition-type">crossfade</property>
|
||||
<child>
|
||||
<object class="GtkListBox" id="layout_list">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="receives-default">True</property>
|
||||
<style>
|
||||
<class name="content"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">layouts</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkListBox" id="language_list">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="receives-default">True</property>
|
||||
<style>
|
||||
<class name="content"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">languages</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="index">-1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child type="overlay">
|
||||
<object class="GtkBox">
|
||||
<property name="height-request">64</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="valign">end</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<style>
|
||||
<class name="bottom-gradient"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pass-through">True</property>
|
||||
<property name="index">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child type="overlay">
|
||||
<object class="GtkBox">
|
||||
<property name="height-request">16</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="margin-top">30</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<style>
|
||||
<class name="top-gradient"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pass-through">True</property>
|
||||
<property name="index">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child type="overlay">
|
||||
<object class="GtkButton" id="continue_button">
|
||||
<property name="label" translatable="yes" comments="On button.">_Continue</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="sensitive">False</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">end</property>
|
||||
<property name="margin-bottom">18</property>
|
||||
<property name="use-underline">True</property>
|
||||
<style>
|
||||
<class name="suggested-action"/>
|
||||
<class name="large-button"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="index">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child type="overlay">
|
||||
<object class="GtkEntry">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="activates-default">True</property>
|
||||
<property name="truncate-multiline">True</property>
|
||||
<property name="primary-icon-activatable">False</property>
|
||||
<property name="primary-icon-sensitive">False</property>
|
||||
<property name="placeholder-text" translatable="yes" comments="Used as placeholder in a entry field to try out a keyboard layout">Test the Keyboard Layout Here</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="index">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
52
data/resources/ui/pages/keyboard_overview.blp
Normal file
@@ -0,0 +1,52 @@
|
||||
using Gtk 4.0;
|
||||
using Adw 1;
|
||||
|
||||
template $KeyboardOverviewPage : Box {
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
Box {
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
/* selected layouts */
|
||||
ListBox {
|
||||
selection-mode: none;
|
||||
styles ["boxed-list"]
|
||||
|
||||
Adw.ActionRow primary_layout_row {
|
||||
activatable: true;
|
||||
focusable: true;
|
||||
/*selectable: false; */
|
||||
activated => $show_layout_selection();
|
||||
|
||||
Image {
|
||||
icon-name: "emblem-system-symbolic";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* test entry */
|
||||
ListBox {
|
||||
selection-mode: none;
|
||||
styles ["boxed-list"]
|
||||
|
||||
Adw.EntryRow {
|
||||
activatable: true;
|
||||
/* Translators: Used as placeholder in a entry field to try out a keyboard layout */
|
||||
title: _("Test the Keyboard Layout Here");
|
||||
entry-activated => $continue();
|
||||
}
|
||||
}
|
||||
|
||||
Button continue_button {
|
||||
/* Translators: On button. */
|
||||
label: _("_Continue");
|
||||
halign: center;
|
||||
receives-default: true;
|
||||
use-underline: true;
|
||||
clicked => $continue();
|
||||
styles ["suggested-action", "pill"]
|
||||
}
|
||||
}
|
||||
}
|
||||
21
data/resources/ui/pages/language.blp
Normal file
@@ -0,0 +1,21 @@
|
||||
using Gtk 4.0;
|
||||
using Gio 2.0;
|
||||
|
||||
template $LanguagePage : Box {
|
||||
orientation: vertical;
|
||||
|
||||
ListBox suggested_list {
|
||||
/* Margin is set here, in case this list is empty */
|
||||
margin-bottom: 12;
|
||||
row-activated => $language_row_activated();
|
||||
styles ["boxed-list"]
|
||||
}
|
||||
|
||||
ListBox other_list {
|
||||
row-activated => $language_row_activated();
|
||||
styles ["boxed-list"]
|
||||
}
|
||||
}
|
||||
|
||||
Gio.ListStore suggested_model {}
|
||||
Gio.ListStore other_model {}
|
||||
@@ -1,136 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<template class="LanguagePage" parent="GtkOverlay">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="hscrollbar-policy">external</property>
|
||||
<property name="vscrollbar-policy">external</property>
|
||||
<property name="propagate-natural-width">True</property>
|
||||
<property name="propagate-natural-height">True</property>
|
||||
<child>
|
||||
<object class="GtkViewport">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="vscroll-policy">natural</property>
|
||||
<property name="shadow-type">none</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-top">12</property>
|
||||
<property name="margin-bottom">70</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkListBox" id="language_list">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<style>
|
||||
<class name="content"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRevealer" id="show_all_revealer">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="transition-type">slide-up</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="show_all_button">
|
||||
<property name="width-request">32</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="margin-bottom">18</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">view-more-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="circular"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="index">-1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child type="overlay">
|
||||
<object class="GtkBox">
|
||||
<property name="height-request">64</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="valign">end</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<style>
|
||||
<class name="bottom-gradient"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pass-through">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child type="overlay">
|
||||
<object class="GtkBox">
|
||||
<property name="height-request">16</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<style>
|
||||
<class name="top-gradient"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pass-through">True</property>
|
||||
<property name="index">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
75
data/resources/ui/pages/locale.blp
Normal file
@@ -0,0 +1,75 @@
|
||||
using Gtk 4.0;
|
||||
using Adw 1;
|
||||
|
||||
template $LocalePage : Box {
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
ListBox {
|
||||
selection-mode: none;
|
||||
row-activated => $overview_row_activated();
|
||||
styles ["boxed-list"]
|
||||
|
||||
Adw.ActionRow {
|
||||
name: "timezone";
|
||||
activatable: true;
|
||||
focusable: true;
|
||||
selectable: false;
|
||||
/* Translators: Presented next to the current Timezone. */
|
||||
title: _("Timezone");
|
||||
|
||||
Box {
|
||||
spacing: 12;
|
||||
|
||||
Label timezone_label {
|
||||
ellipsize: end;
|
||||
hexpand: true;
|
||||
lines: 2;
|
||||
wrap: true;
|
||||
xalign: 1;
|
||||
}
|
||||
|
||||
Image {
|
||||
icon-name: "emblem-system-symbolic";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Adw.ActionRow {
|
||||
name: "format";
|
||||
activatable: true;
|
||||
focusable: true;
|
||||
selectable: false;
|
||||
/* Translators: Presented next to the current Formats. */
|
||||
title: _("Formats");
|
||||
/* Translators: Description of what is covered by formats. */
|
||||
subtitle: _("Defines the default format used for dates, times, numbers, etc.");
|
||||
|
||||
Box {
|
||||
spacing: 12;
|
||||
|
||||
Label formats_label {
|
||||
ellipsize: end;
|
||||
hexpand: true;
|
||||
lines: 2;
|
||||
wrap: true;
|
||||
xalign: 1;
|
||||
}
|
||||
|
||||
Image {
|
||||
icon-name: "emblem-system-symbolic";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Button {
|
||||
/* Translators: On button. */
|
||||
label: _("_Continue");
|
||||
focusable: true;
|
||||
halign: center;
|
||||
use-underline: true;
|
||||
clicked => $continue();
|
||||
styles ["suggested-action", "pill"]
|
||||
}
|
||||
}
|
||||
@@ -1,404 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<template class="LocalePage" parent="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkStack" id="text_stack">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="valign">start</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="justify">center</property>
|
||||
<property name="wrap">True</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">overview</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="label" translatable="yes" comments="Above list of continents and countries">Select Location</property>
|
||||
<property name="justify">center</property>
|
||||
<property name="wrap">True</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">timezone</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="label" translatable="yes" comments="Above list of format locales">Select Region</property>
|
||||
<property name="justify">center</property>
|
||||
<property name="wrap">True</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">formats</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkOverlay">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="hscrollbar-policy">external</property>
|
||||
<property name="vscrollbar-policy">external</property>
|
||||
<property name="propagate-natural-width">True</property>
|
||||
<property name="propagate-natural-height">True</property>
|
||||
<child>
|
||||
<object class="GtkViewport">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="vscroll-policy">natural</property>
|
||||
<property name="shadow-type">none</property>
|
||||
<child>
|
||||
<object class="GtkStack" id="list_stack">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-top">18</property>
|
||||
<property name="vhomogeneous">False</property>
|
||||
<property name="transition-type">crossfade</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-bottom">18</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkListBox" id="overview_list">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="selection-mode">none</property>
|
||||
<child>
|
||||
<object class="GtkListBoxRow">
|
||||
<property name="name">timezone</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="selectable">False</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="margin-top">12</property>
|
||||
<property name="margin-bottom">12</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes" comments="Presented next to the current Timezone.">Timezone</property>
|
||||
<property name="wrap">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">emblem-system-symbolic</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="timezone_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="ellipsize">end</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkListBoxRow">
|
||||
<property name="name">formats</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="selectable">False</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="margin-top">12</property>
|
||||
<property name="margin-bottom">12</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">6</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes" comments="Presented next to the current Formats.">Formats</property>
|
||||
<property name="wrap">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">emblem-system-symbolic</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="formats_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="ellipsize">end</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes" comments="Description of what is covered by formats.">Defines the default format used for dates, times, numbers, etc.</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="max-width-chars">60</property>
|
||||
<property name="xalign">0</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="light"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="content"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="confirm_button">
|
||||
<property name="label" translatable="yes" comments="On button.">_Confirm</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="use-underline">True</property>
|
||||
<style>
|
||||
<class name="suggested-action"/>
|
||||
<class name="large-button"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">overview</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkListBox" id="continents_list">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-bottom">70</property>
|
||||
<property name="selection-mode">none</property>
|
||||
<style>
|
||||
<class name="content"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">timezone_continents</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkListBox" id="countries_list">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-bottom">70</property>
|
||||
<property name="selection-mode">none</property>
|
||||
<style>
|
||||
<class name="content"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">timezone_countries</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkListBox" id="subzones_list">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-bottom">70</property>
|
||||
<property name="selection-mode">none</property>
|
||||
<style>
|
||||
<class name="content"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">timezone_subzones</property>
|
||||
<property name="position">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkListBox" id="formats_list">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-bottom">70</property>
|
||||
<style>
|
||||
<class name="content"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">formats</property>
|
||||
<property name="position">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="index">-1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child type="overlay">
|
||||
<object class="GtkBox">
|
||||
<property name="height-request">64</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="valign">end</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<style>
|
||||
<class name="bottom-gradient"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pass-through">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child type="overlay">
|
||||
<object class="GtkBox">
|
||||
<property name="height-request">18</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<style>
|
||||
<class name="top-gradient"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pass-through">True</property>
|
||||
<property name="index">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
164
data/resources/ui/pages/partition.blp
Normal file
@@ -0,0 +1,164 @@
|
||||
using Gtk 4.0;
|
||||
using Adw 1;
|
||||
|
||||
template $PartitionPage : Stack {
|
||||
|
||||
StackPage {
|
||||
name: "default";
|
||||
child: Box {
|
||||
hexpand: true;
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
ListBox {
|
||||
selection-mode: none;
|
||||
row-activated => $use_whole_disk();
|
||||
styles ["boxed-list"]
|
||||
|
||||
Adw.ActionRow whole_disk_row {
|
||||
/* Translators: Label to use whole disk rather than a single partition. */
|
||||
title: _("Use Whole Disk");
|
||||
activatable: true;
|
||||
focusable: true;
|
||||
/*selectable: false; */
|
||||
|
||||
[prefix]
|
||||
Label disk_size {
|
||||
width-chars: 5;
|
||||
max-width-chars: 7;
|
||||
xalign: 1;
|
||||
styles ["dim-label"]
|
||||
}
|
||||
|
||||
Image {
|
||||
icon-name: "go-next-symbolic";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Stack partition_stack {
|
||||
vhomogeneous: false;
|
||||
transition-type: crossfade;
|
||||
|
||||
StackPage {
|
||||
name: "available";
|
||||
child: Box {
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
Label {
|
||||
/*Translators: Heading of list of partitions*/
|
||||
label: _("Partitions");
|
||||
justify: center;
|
||||
wrap: true;
|
||||
styles ["heading"]
|
||||
}
|
||||
|
||||
ListBox partition_list {
|
||||
receives-default: true;
|
||||
valign: start;
|
||||
row-activated => $use_partition();
|
||||
styles ["boxed-list"]
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
StackPage {
|
||||
name: "no-partitions";
|
||||
/* TODO: could probably use some more love */
|
||||
child: Label {
|
||||
valign: start;
|
||||
justify: center;
|
||||
label: _("Disk has no partitions.");
|
||||
};
|
||||
}
|
||||
|
||||
StackPage {
|
||||
name: "no-boot-partition";
|
||||
child: Box {
|
||||
margin-start: 18;
|
||||
margin-end: 18;
|
||||
margin-top: 6;
|
||||
margin-bottom: 6;
|
||||
spacing: 18;
|
||||
halign: center;
|
||||
|
||||
Image {
|
||||
icon-name: "dialog-information-symbolic";
|
||||
styles ["dim-label"]
|
||||
}
|
||||
|
||||
Box {
|
||||
hexpand: true;
|
||||
orientation: vertical;
|
||||
|
||||
Label {
|
||||
/* Translators: Shown if a disk is currently not compatible with the way a system was booted. */
|
||||
label: _("Selecting a partition is not possible.");
|
||||
wrap: true;
|
||||
xalign: 0;
|
||||
styles ["dim-label"]
|
||||
}
|
||||
|
||||
Label {
|
||||
/* Translators: Followed by a list of requirements */
|
||||
label: _("The disk requires:");
|
||||
wrap: true;
|
||||
xalign: 0;
|
||||
styles ["dim-label"]
|
||||
}
|
||||
|
||||
Stack {
|
||||
hhomogeneous: false;
|
||||
vhomogeneous: false;
|
||||
|
||||
StackPage {
|
||||
name: "efi";
|
||||
child: Label {
|
||||
/* Translators: Bullet point listing. */
|
||||
label: _(" • GPT partitioning\n • EFI partition");
|
||||
wrap: true;
|
||||
xalign: 0;
|
||||
styles ["dim-label"]
|
||||
};
|
||||
}
|
||||
|
||||
StackPage {
|
||||
name: "bios";
|
||||
child: Label {
|
||||
/* Translators: Bullet point listing. */
|
||||
label: _(" • BIOS boot partition");
|
||||
wrap: true;
|
||||
xalign: 0;
|
||||
styles ["dim-label"]
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
StackPage {
|
||||
name: "no-disk";
|
||||
child: Adw.StatusPage {
|
||||
/* Translators: Title of a hint page */
|
||||
title: _("Disk Not Found");
|
||||
/* Translators: Body of a hint page */
|
||||
description: _("Assure that the disk is still avaliable and has not been removed.");
|
||||
valign: start;
|
||||
child: Button {
|
||||
action-name: "win.previous-page";
|
||||
/* Translators: On button. */
|
||||
label: _("_Return to Disk List");
|
||||
focusable: true;
|
||||
receives-default: true;
|
||||
halign: center;
|
||||
use-underline: true;
|
||||
styles ["pill"]
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
||||
9
data/resources/ui/pages/restart.blp
Normal file
@@ -0,0 +1,9 @@
|
||||
using Gtk 4.0;
|
||||
using Adw 1;
|
||||
|
||||
template $RestartPage : Box {
|
||||
Adw.Spinner {
|
||||
hexpand: true;
|
||||
vexpand: true;
|
||||
}
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<template class="RestartPage" parent="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-bottom">18</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">18</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes" comments="Shown when restarting system after installation.">Restarting</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSpinner">
|
||||
<property name="width-request">64</property>
|
||||
<property name="height-request">64</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="active">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
@@ -1,128 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<template class="SoftwarePage" parent="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="label" translatable="yes" comments="Informative label above a list of software that can be selected for installation">Select Additional Software to Install</property>
|
||||
<property name="justify">center</property>
|
||||
<property name="wrap">True</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkOverlay">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="hscrollbar-policy">external</property>
|
||||
<property name="vscrollbar-policy">external</property>
|
||||
<property name="propagate-natural-width">True</property>
|
||||
<property name="propagate-natural-height">True</property>
|
||||
<child>
|
||||
<object class="GtkViewport">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="vscroll-policy">natural</property>
|
||||
<property name="shadow-type">none</property>
|
||||
<child>
|
||||
<object class="GtkListBox" id="software_list">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-top">18</property>
|
||||
<property name="margin-bottom">70</property>
|
||||
<property name="selection-mode">none</property>
|
||||
<style>
|
||||
<class name="content"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="index">-1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child type="overlay">
|
||||
<object class="GtkBox">
|
||||
<property name="height-request">64</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="valign">end</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<style>
|
||||
<class name="bottom-gradient"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pass-through">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child type="overlay">
|
||||
<object class="GtkBox">
|
||||
<property name="height-request">18</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<style>
|
||||
<class name="top-gradient"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pass-through">True</property>
|
||||
<property name="index">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child type="overlay">
|
||||
<object class="GtkButton" id="continue_button">
|
||||
<property name="label" translatable="yes" comments="On button.">_Continue</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">end</property>
|
||||
<property name="margin-bottom">18</property>
|
||||
<property name="use-underline">True</property>
|
||||
<style>
|
||||
<class name="suggested-action"/>
|
||||
<class name="large-button"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="index">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
204
data/resources/ui/pages/summary.blp
Normal file
@@ -0,0 +1,204 @@
|
||||
using Gtk 4.0;
|
||||
using Adw 1;
|
||||
|
||||
template $SummaryPage : Box {
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
ListBox {
|
||||
hexpand: true;
|
||||
selection-mode: none;
|
||||
row-activated => $summary_row_activated();
|
||||
styles ["boxed-list"]
|
||||
|
||||
Adw.ActionRow language_row {
|
||||
name: "language";
|
||||
activatable: true;
|
||||
/* Translators: Description of selected language. */
|
||||
title: _("Language");
|
||||
styles ["property"]
|
||||
|
||||
Image {
|
||||
icon-name: "go-next-symbolic";
|
||||
}
|
||||
}
|
||||
|
||||
Adw.ActionRow keyboard_row {
|
||||
name: "keyboard-overview";
|
||||
activatable: true;
|
||||
/* Translators: Description of selected keyboard layout. */
|
||||
title: _("Keyboard Layout");
|
||||
styles ["property"]
|
||||
|
||||
Image {
|
||||
icon-name: "go-next-symbolic";
|
||||
}
|
||||
}
|
||||
|
||||
Adw.ActionRow user_row {
|
||||
name: "user";
|
||||
activatable: true;
|
||||
visible: false;
|
||||
/* Translators: Description of defined user account name and autologin status. */
|
||||
title: _("User Account");
|
||||
styles ["property"]
|
||||
|
||||
Label user_autologin {
|
||||
halign: fill;
|
||||
hexpand: true;
|
||||
justify: right;
|
||||
/* Translators: Gets shown when autologin is enabled. */
|
||||
label: _("(Automatic Login)");
|
||||
wrap: true;
|
||||
xalign: 0;
|
||||
styles ["dim-label"]
|
||||
}
|
||||
|
||||
Image {
|
||||
icon-name: "go-next-symbolic";
|
||||
}
|
||||
}
|
||||
|
||||
Adw.ActionRow format_row {
|
||||
name: "format";
|
||||
activatable: true;
|
||||
visible: false;
|
||||
/* Translators: Description of selected format. */
|
||||
title: _("Formats");
|
||||
styles ["property"]
|
||||
|
||||
Image {
|
||||
icon-name: "go-next-symbolic";
|
||||
}
|
||||
}
|
||||
|
||||
Adw.ActionRow timezone_row {
|
||||
name: "timezone";
|
||||
activatable: true;
|
||||
visible: false;
|
||||
/* Translators: Description of selected timezone. */
|
||||
title: _("Timezone");
|
||||
styles ["property"]
|
||||
|
||||
Image {
|
||||
icon-name: "go-next-symbolic";
|
||||
}
|
||||
}
|
||||
|
||||
Adw.ActionRow software_row {
|
||||
margin-top: 6;
|
||||
name: "software";
|
||||
activatable: true;
|
||||
visible: false;
|
||||
|
||||
[prefix]
|
||||
Box {
|
||||
orientation: vertical;
|
||||
halign: start;
|
||||
spacing: 3;
|
||||
|
||||
Label {
|
||||
/* Translators: Description of selected additional software. */
|
||||
label: _("Additional Software");
|
||||
xalign: 0;
|
||||
styles ["dim-label", "caption"]
|
||||
}
|
||||
|
||||
Stack software_stack {
|
||||
margin-bottom: 6;
|
||||
vhomogeneous: false;
|
||||
transition-type: crossfade;
|
||||
|
||||
StackPage {
|
||||
name: "used";
|
||||
child: ListBox software_list {
|
||||
halign: start;
|
||||
margin-bottom: 6;
|
||||
selection-mode: none;
|
||||
styles ["nested-list"]
|
||||
};
|
||||
}
|
||||
|
||||
StackPage {
|
||||
name: "none";
|
||||
child: Label {
|
||||
/* Translators: Shown when list of selected software is empty. */
|
||||
label: _("None");
|
||||
xalign: 0;
|
||||
styles ["dim-label"]
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Image {
|
||||
icon-name: "go-next-symbolic";
|
||||
}
|
||||
}
|
||||
|
||||
Adw.ActionRow feature_row {
|
||||
name: "feature";
|
||||
activatable: true;
|
||||
visible: false;
|
||||
/* Translators: Description of selected additional software. */
|
||||
|
||||
[prefix]
|
||||
Box {
|
||||
margin-top: 6;
|
||||
orientation: vertical;
|
||||
halign: start;
|
||||
spacing: 3;
|
||||
|
||||
Label {
|
||||
/* Translators: Description of selected additional software. */
|
||||
label: _("Additional Features");
|
||||
xalign: 0;
|
||||
styles ["dim-label", "caption"]
|
||||
}
|
||||
|
||||
|
||||
Stack feature_stack {
|
||||
margin-bottom: 6;
|
||||
vhomogeneous: false;
|
||||
transition-type: crossfade;
|
||||
|
||||
StackPage {
|
||||
name: "used";
|
||||
child: ListBox feature_list {
|
||||
halign: start;
|
||||
margin-bottom: 6;
|
||||
selection-mode: none;
|
||||
styles ["nested-list"]
|
||||
};
|
||||
}
|
||||
|
||||
StackPage {
|
||||
name: "none";
|
||||
child: Label {
|
||||
/* Translators: Shown when list of selected features is empty. */
|
||||
label: _("None");
|
||||
hexpand: true;
|
||||
xalign: 0;
|
||||
styles ["dim-label"]
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Image {
|
||||
icon-name: "go-next-symbolic";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Button {
|
||||
/* Translators: On button. */
|
||||
label: _("_Confirm");
|
||||
focusable: true;
|
||||
receives-default: true;
|
||||
halign: center;
|
||||
use-underline: true;
|
||||
clicked => $continue();
|
||||
styles ["suggested-action", "pill"]
|
||||
}
|
||||
}
|
||||
69
data/resources/ui/pages/user.blp
Normal file
@@ -0,0 +1,69 @@
|
||||
using Gtk 4.0;
|
||||
using Adw 1;
|
||||
|
||||
template $UserPage : Box {
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
ListBox {
|
||||
selection-mode: none;
|
||||
styles ["boxed-list"]
|
||||
|
||||
Adw.EntryRow name_row {
|
||||
activatable: true;
|
||||
/* Translators: Used with entry field for User's name */
|
||||
title: _("_Name");
|
||||
use-underline: true;
|
||||
entry-activated => $focus_next_from_name();
|
||||
changed => $name_changed();
|
||||
}
|
||||
|
||||
Adw.EntryRow username_row {
|
||||
activatable: true;
|
||||
/* Translators: Used with entry field for linux username */
|
||||
title: _("_Username");
|
||||
use-underline: true;
|
||||
entry-activated => $focus_password();
|
||||
changed => $username_changed();
|
||||
}
|
||||
|
||||
Adw.SwitchRow autologin_row {
|
||||
activatable: true;
|
||||
/* Translators: Used with option to enable automatic login of user upon booting */
|
||||
title: _("Automatic Login");
|
||||
notify::active => $autologin_row_clicked();
|
||||
}
|
||||
|
||||
Adw.PasswordEntryRow password_row {
|
||||
activatable: true;
|
||||
activates-default: true;
|
||||
use-underline: true;
|
||||
/* Translators: User password entry field */
|
||||
title: _("_Password");
|
||||
changed => $password_changed();
|
||||
entry-activated => $password_active();
|
||||
}
|
||||
|
||||
Adw.PasswordEntryRow password_confirm_row {
|
||||
activatable: true;
|
||||
activates-default: true;
|
||||
use-underline: true;
|
||||
/* Translators: Used password confirmation entry field */
|
||||
title: _("_Confirm Password");
|
||||
changed => $password_confirm_changed();
|
||||
entry-activated => $continue();
|
||||
}
|
||||
}
|
||||
|
||||
Button continue_button {
|
||||
/* Translators: On button. */
|
||||
label: _("_Continue");
|
||||
sensitive: false;
|
||||
focusable: true;
|
||||
receives-default: true;
|
||||
halign: center;
|
||||
use-underline: true;
|
||||
clicked => $continue();
|
||||
styles ["suggested-action", "pill"]
|
||||
}
|
||||
}
|
||||
@@ -1,212 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<template class="UserPage" parent="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-bottom">18</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes" comments="Explanation for disk selection page.">Enter Account Information</property>
|
||||
<property name="justify">center</property>
|
||||
<property name="wrap">True</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkListBox" id="default_list">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="selection-mode">none</property>
|
||||
<child>
|
||||
<object class="GtkListBoxRow">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="activatable">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="margin-bottom">6</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes" comments="Used with entry field for User's name">Name</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="user_name_field">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="has-focus">True</property>
|
||||
<property name="width-chars">10</property>
|
||||
<property name="max-width-chars">24</property>
|
||||
<property name="placeholder-text" translatable="yes" comments="Placeholder in user name entry field">Enter a Name</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkListBoxRow">
|
||||
<property name="name">automatic_login</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="margin-bottom">6</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkSwitch" id="autologin_switch">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="active">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes" comments="Used with option to enable automatic login of user upon booting">Automatic Login</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkListBoxRow">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="activatable">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="margin-bottom">6</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes" comments="Used with entry field for setting a password for new user">Password</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="password_field">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="visibility">False</property>
|
||||
<property name="invisible-char">●</property>
|
||||
<property name="width-chars">10</property>
|
||||
<property name="max-width-chars">24</property>
|
||||
<property name="placeholder-text" translatable="yes" comments="Placeholder in password entry field">Enter a Password</property>
|
||||
<property name="input-purpose">password</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="content"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="continue_button">
|
||||
<property name="label" translatable="yes" comments="On button.">_Continue</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="sensitive">False</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="can-default">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="use-underline">True</property>
|
||||
<style>
|
||||
<class name="suggested-action"/>
|
||||
<class name="large-button"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
45
data/resources/ui/pages/welcome.blp
Normal file
@@ -0,0 +1,45 @@
|
||||
using Gtk 4.0;
|
||||
using Adw 1;
|
||||
|
||||
template $WelcomePage : Box {
|
||||
orientation: vertical;
|
||||
spacing: 12;
|
||||
|
||||
Adw.Clamp {
|
||||
maximum-size: 280;
|
||||
|
||||
Label description {
|
||||
valign: center;
|
||||
/* Translators: Default welcome text. Squiggly brackets are replaced by distribution name. */
|
||||
label: _("This application will guide you through the installation of {} onto your system.");
|
||||
wrap: true;
|
||||
justify: center;
|
||||
/*styles ["heading"]*/
|
||||
}
|
||||
}
|
||||
|
||||
CenterBox {
|
||||
vexpand: true;
|
||||
|
||||
[center]
|
||||
Button {
|
||||
/* Translators: On button. */
|
||||
label: _("_Continue");
|
||||
focusable: true;
|
||||
valign: start;
|
||||
receives-default: true;
|
||||
use-underline: true;
|
||||
clicked => $continue();
|
||||
styles ["suggested-action", "pill"]
|
||||
}
|
||||
|
||||
[end]
|
||||
Button {
|
||||
action-name: "win.about-page";
|
||||
icon-name: "help-about-symbolic";
|
||||
focusable: true;
|
||||
valign: end;
|
||||
styles ["circular", "flat"]
|
||||
}
|
||||
}
|
||||
}
|
||||
27
data/resources/ui/widgets/desktop_entry.blp
Normal file
@@ -0,0 +1,27 @@
|
||||
using Gtk 4.0;
|
||||
|
||||
template $DesktopEntry: Button {
|
||||
overflow: hidden;
|
||||
styles ["card"]
|
||||
|
||||
child: Box {
|
||||
halign: center;
|
||||
orientation: vertical;
|
||||
|
||||
Picture image {
|
||||
content-fit: cover;
|
||||
halign: center;
|
||||
height-request: 90;
|
||||
}
|
||||
|
||||
Label name {
|
||||
ellipsize: none;
|
||||
margin-start: 12;
|
||||
margin-end: 12;
|
||||
margin-top: 6;
|
||||
margin-bottom: 6;
|
||||
|
||||
styles ["heading"]
|
||||
}
|
||||
};
|
||||
}
|
||||
45
data/resources/ui/widgets/device_row.blp
Normal file
@@ -0,0 +1,45 @@
|
||||
using Gtk 4.0;
|
||||
using Adw 1;
|
||||
|
||||
template $DeviceRow : Adw.ActionRow {
|
||||
activatable: true;
|
||||
focusable: true;
|
||||
selectable: false;
|
||||
/* Translators: Fallback name for partitions that don't have a name. */
|
||||
title: _("Unnamed Partition");
|
||||
|
||||
[prefix]
|
||||
Label size_label {
|
||||
width-chars: 5;
|
||||
max-width-chars: 7;
|
||||
xalign: 1;
|
||||
styles ["dim-label"]
|
||||
}
|
||||
|
||||
Stack stack {
|
||||
halign: end;
|
||||
hhomogeneous: false;
|
||||
vhomogeneous: false;
|
||||
|
||||
StackPage {
|
||||
name: "ok";
|
||||
child:
|
||||
Image {
|
||||
halign: end;
|
||||
icon-name: "go-next-symbolic";
|
||||
};
|
||||
}
|
||||
|
||||
StackPage {
|
||||
name: "too_small";
|
||||
child: Label too_small_label {
|
||||
/* Translators: Shown for partitions that are not big enough to be installed on.
|
||||
* "{}" is replaced by a disk size value, e.g. "21.3 GB". */
|
||||
label: _("Not enough space for installation ({} required)");
|
||||
justify: center;
|
||||
wrap: true;
|
||||
styles ["dim-label"]
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,196 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<template class="DeviceRow" parent="GtkListBoxRow">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="selectable">False</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="margin-bottom">6</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="size">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="width-chars">5</property>
|
||||
<property name="max-width-chars">7</property>
|
||||
<property name="xalign">1</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="light"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">6</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkStack" id="name_stack">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="hhomogeneous">False</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="disk_name">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes" comments="Shown if no name can be determined for a disk.">Unknow Disk</property>
|
||||
<property name="use-markup">True</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="ellipsize">end</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">disk</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="valign">start</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="static_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-end">4</property>
|
||||
<property name="label" translatable="yes" comments="Followed by 'Partition' and a partiton name or number.">Use</property>
|
||||
<property name="use-markup">True</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="partition_name">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes" comments="Label to pick one out of a list of partitions. Followed by a partition name or a number if the partition has no name.">Partition</property>
|
||||
<property name="use-markup">True</property>
|
||||
<property name="ellipsize">end</property>
|
||||
<property name="width-chars">8</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">partition</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="device_path">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="ellipsize">start</property>
|
||||
<property name="xalign">1</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="light"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="too_small_label">
|
||||
<property name="can-focus">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="label" translatable="yes" comments="Shown for partitions that are not big enough to be installed on">Not enough space for installation</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="xalign">0</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="light"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStack" id="arrow_stack">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="valign">start</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">go-next-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">too_small</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<template class="LanguageRow" parent="GtkListBoxRow">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="selectable">False</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="margin-bottom">6</property>
|
||||
<property name="spacing">18</property>
|
||||
<child type="center">
|
||||
<object class="GtkLabel" id="label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="ellipsize">end</property>
|
||||
<property name="lines">2</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">go-next-symbolic</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
19
data/resources/ui/widgets/multi_selection_row.blp
Normal file
@@ -0,0 +1,19 @@
|
||||
using Gtk 4.0;
|
||||
using Adw 1;
|
||||
|
||||
template $MultiSelectionRow : Adw.ComboRow {
|
||||
activatable: true;
|
||||
focusable: true;
|
||||
height-request: 84;
|
||||
subtitle-lines: 3;
|
||||
|
||||
[prefix]
|
||||
Image icon {
|
||||
width-request: 32;
|
||||
height-request: 32;
|
||||
valign: center;
|
||||
styles ["icon-dropshadow"]
|
||||
}
|
||||
}
|
||||
|
||||
Gtk.StringList list {}
|
||||
@@ -1,119 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<template class="DiskRow" parent="GtkListBoxRow">
|
||||
<property name="name">no_efi</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="selectable">False</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="border-width">6</property>
|
||||
<property name="spacing">6</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">dialog-information-symbolic</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes" comments="Shown if a disk is currently not compatible with the way a system was booted.">Selecting a partition is not possible.</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes" comments="Followed by a list of requirements">The disk requires:</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="xalign">0</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="light"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStack">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="hhomogeneous">False</property>
|
||||
<property name="vhomogeneous">False</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes" comments="Technical terms, the abbreviations should not be translated."> • GPT partitioning
|
||||
• EFI partition</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="xalign">0</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="light"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">efi</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes" comments="Technical terms, the abbreviations should not be translated"> • BIOS boot partition</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="xalign">0</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="light"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">bios</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
86
data/resources/ui/widgets/page_wrapper.blp
Normal file
@@ -0,0 +1,86 @@
|
||||
using Gtk 4.0;
|
||||
using Adw 1;
|
||||
|
||||
template $PageWrapper : Adw.NavigationPage {
|
||||
child: Adw.ToolbarView {
|
||||
[top]
|
||||
Adw.HeaderBar {
|
||||
show-start-title-buttons: false;
|
||||
show-end-title-buttons: false;
|
||||
show-back-button: false;
|
||||
styles ["flat"]
|
||||
|
||||
[start]
|
||||
Box {
|
||||
spacing: 6;
|
||||
valign: start;
|
||||
|
||||
WindowControls win_controls_start {
|
||||
side: start;
|
||||
visible: bind win_controls_start.empty inverted;
|
||||
}
|
||||
|
||||
Button previous_button {
|
||||
action-name: "win.previous-page";
|
||||
focusable: true;
|
||||
focus-on-click: false;
|
||||
icon-name: "go-previous-symbolic";
|
||||
visible: false;
|
||||
}
|
||||
|
||||
Button next_button {
|
||||
action-name: "win.next-page";
|
||||
focusable: true;
|
||||
focus-on-click: false;
|
||||
icon-name: "go-next-symbolic";
|
||||
visible: false;
|
||||
}
|
||||
}
|
||||
|
||||
[title]
|
||||
Box {
|
||||
margin-top: 6;
|
||||
orientation: vertical;
|
||||
spacing: 6;
|
||||
|
||||
Image title_image {
|
||||
pixel-size: 128;
|
||||
}
|
||||
|
||||
Label title_label {
|
||||
justify: center;
|
||||
wrap: true;
|
||||
styles ["heading"]
|
||||
}
|
||||
}
|
||||
|
||||
[end]
|
||||
Box {
|
||||
valign: start;
|
||||
spacing: 6;
|
||||
|
||||
Button reload_button {
|
||||
action-name: "win.reload-page";
|
||||
focusable: true;
|
||||
focus-on-click: false;
|
||||
icon-name: "view-refresh-symbolic";
|
||||
}
|
||||
|
||||
WindowControls win_controls_end {
|
||||
side: end;
|
||||
visible: bind win_controls_end.empty inverted;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
content: Adw.PreferencesPage {
|
||||
Adw.PreferencesGroup {
|
||||
Adw.Clamp content {
|
||||
maximum-size: 500;
|
||||
tightening-threshold: 352;
|
||||
hexpand: true;
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
}
|
||||
12
data/resources/ui/widgets/progress_row.blp
Normal file
@@ -0,0 +1,12 @@
|
||||
using Gtk 4.0;
|
||||
using Adw 1;
|
||||
|
||||
template $ProgressRow : Adw.ActionRow {
|
||||
activatable: true;
|
||||
focusable: true;
|
||||
|
||||
[suffix]
|
||||
Image {
|
||||
icon-name: "go-next-symbolic";
|
||||
}
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<template class="ProgressRow" parent="GtkListBoxRow">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="margin-bottom">6</property>
|
||||
<property name="spacing">6</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">go-next-symbolic</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="ellipsize">end</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
24
data/resources/ui/widgets/selection_row.blp
Normal file
@@ -0,0 +1,24 @@
|
||||
using Gtk 4.0;
|
||||
using Adw 1;
|
||||
|
||||
template $SelectionRow : Adw.ActionRow {
|
||||
activatable: true;
|
||||
focusable: true;
|
||||
height-request: 84;
|
||||
subtitle-lines: 3;
|
||||
|
||||
[prefix]
|
||||
Image icon {
|
||||
width-request: 32;
|
||||
height-request: 32;
|
||||
valign: center;
|
||||
styles ["icon-dropshadow"]
|
||||
}
|
||||
|
||||
[suffix]
|
||||
Switch switch {
|
||||
focusable: false;
|
||||
halign: end;
|
||||
valign: center;
|
||||
}
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<template class="SelectionRow" parent="GtkListBoxRow">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="margin-bottom">6</property>
|
||||
<property name="spacing">6</property>
|
||||
<child>
|
||||
<object class="GtkRevealer" id="check_mark_revealer">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="transition-type">crossfade</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">object-select-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="ellipsize">end</property>
|
||||
<property name="lines">2</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
@@ -1,87 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<template class="SoftwareRow" parent="GtkListBoxRow">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="border-width">6</property>
|
||||
<property name="spacing">6</property>
|
||||
<child>
|
||||
<object class="GtkImage" id="icon">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="icon_size">6</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">6</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="name_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="valign">end</property>
|
||||
<property name="ellipsize">end</property>
|
||||
<property name="xalign">0</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="description_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSwitch" id="switch">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="valign">center</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
||||
22
data/resources/ui/widgets/summary_row.blp
Normal file
@@ -0,0 +1,22 @@
|
||||
using Gtk 4.0;
|
||||
|
||||
template $SummaryRow : ListBoxRow {
|
||||
activatable: false;
|
||||
focusable: false;
|
||||
selectable: false;
|
||||
|
||||
Box {
|
||||
spacing: 6;
|
||||
|
||||
Image icon {
|
||||
width-request: 16;
|
||||
height-request: 16;
|
||||
valign: center;
|
||||
styles ["icon-dropshadow"]
|
||||
}
|
||||
|
||||
Label name {
|
||||
wrap: true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
@@ -2,7 +2,15 @@
|
||||
---
|
||||
# This is an example config file for OS-Installer.
|
||||
# Place your config under /etc/os-installer/config.yaml for it to be used.
|
||||
# If a value is not defined, it's default will be used.
|
||||
# If a value is not defined, its default will be used.
|
||||
|
||||
# Some strings can have translations. Use the config_to_pot.py script to
|
||||
# extract them into a .pot file, from which translations can be created.
|
||||
# Place the translation .po files in /etc/os-installer/po/.
|
||||
|
||||
# Name of the distribution.
|
||||
# Default: 'Untitled'
|
||||
distribution_name: 'Debuntorarch'
|
||||
|
||||
# Whether the installation needs an internet connection.
|
||||
# Default: yes
|
||||
@@ -12,41 +20,179 @@ internet_connection_required: yes
|
||||
# Default: 'http://nmcheck.gnome.org/check_network_status.txt'
|
||||
internet_checker_url: 'http://nmcheck.gnome.org/check_network_status.txt'
|
||||
|
||||
# Skip the language selection dialog by specifing a language, e.g. 'pt_BR'
|
||||
# Default: no (No fixed language, not Norwegian)
|
||||
fixed_language: no
|
||||
|
||||
# A selection of languages the installer should present by default.
|
||||
# Note: For a language to be available, it needs to be provided by the system
|
||||
# and the installer needs to have a translation into that language.
|
||||
# Default: ['en', 'ar', 'de', 'es', 'fr', 'ja', 'ru', 'zh']
|
||||
suggested_languages:
|
||||
- 'ar'
|
||||
- 'de'
|
||||
- 'en'
|
||||
- 'es'
|
||||
- 'fr'
|
||||
- 'ja'
|
||||
- 'ru'
|
||||
- 'zh'
|
||||
# Default: ['ar', 'de', 'en', 'es', 'fr', 'ja', 'ru', 'zh']
|
||||
suggested_languages:
|
||||
- 'ar'
|
||||
- 'de'
|
||||
- 'en'
|
||||
- 'es'
|
||||
- 'fr'
|
||||
- 'ja'
|
||||
- 'ru'
|
||||
- 'zh'
|
||||
|
||||
# Show a welcome page after language selection.
|
||||
#
|
||||
# logo string Optional. Path to a logo (e.g. distribution logo)
|
||||
# text_LC string Optional. Welcome text. Translatable.
|
||||
# usage bool Whether to show a welcome page at all.
|
||||
#
|
||||
# Default: logo: None, text: None, usage: yes
|
||||
welcome_page:
|
||||
logo : '/etc/os-installer/distro.svg'
|
||||
text : 'A welcoming text to inform about the installation.'
|
||||
usage : yes
|
||||
|
||||
# Minimum disk size needed for the installation (in Gigabyte)
|
||||
# Default: 5
|
||||
minimum_disk_size: 5
|
||||
|
||||
# Whether to offer setting a disk encryption PIN
|
||||
# Default: yes
|
||||
offer_disk_encryption: yes
|
||||
# Disk encryption PIN setup.
|
||||
#
|
||||
# offered Whether to offer disk encryption pin setup.
|
||||
# forced Whether to requrie a disk encryption pin.
|
||||
# min_length Minimal encryption pin length.
|
||||
# confirmation Require pin to be entered a second time.
|
||||
#
|
||||
# Default: offered: yes, forced: no, min_length: 1, confirmation: no
|
||||
disk_encryption:
|
||||
offered: yes
|
||||
forced: no
|
||||
min_length: 1
|
||||
confirmation: yes
|
||||
|
||||
# A list of additional software packages that can be optionally be selected
|
||||
# from the installer. The package string will be passed to the installation
|
||||
# script without changes, so you can bundle multiple packages as one point.
|
||||
# All fields are required (package, default, name, description, icon_path).
|
||||
# Default: []
|
||||
# Provide multiple desktop environments to choose from
|
||||
#
|
||||
# name string Name of desktop. Translatable.
|
||||
# description string Optional. Short descripiton of the desktop.
|
||||
# image_path string Absolute path of an image to display.
|
||||
# keyword string Forwarded to the installation script as is.
|
||||
#
|
||||
# Default: [] (no desktop selection page)
|
||||
desktop:
|
||||
- name : 'GNOME'
|
||||
description : 'Simple desktop that can be personalized with extensions.'
|
||||
image_path : '/etc/os-installer/desktops/gnome.jpg'
|
||||
keyword : 'gnome'
|
||||
- name : 'KDE Plasma'
|
||||
description : 'Configurable desktop that is similar to Windows.'
|
||||
image_path : '/etc/os-installer/desktops/kde.png'
|
||||
keyword : 'kde'
|
||||
- name : 'Xfce'
|
||||
description : 'Lightweight desktop with focus on modularity.'
|
||||
image_path : '/etc/os-installer/desktops/xfce.png'
|
||||
keyword : 'xfce'
|
||||
- name : 'Enlightenment'
|
||||
description : 'Highly configurable, lightweight desktop for tinkerers.'
|
||||
image_path : '/etc/os-installer/desktops/enlightenment.png'
|
||||
keyword : 'enlightenment'
|
||||
|
||||
# User setup requests a printable name and a password by default.
|
||||
#
|
||||
# request_username Request a username. Otherwise generated from name.
|
||||
# provide_autologin Whether to present an autologin option.
|
||||
# min_password_length Minimal password length.
|
||||
# password_confirmation Require password to be entered a second time.
|
||||
#
|
||||
# Default: request_username: no, provide_autologin: no, min_password_length: 1, password_confirmation: no
|
||||
user:
|
||||
request_username: True
|
||||
provide_autologin: True
|
||||
min_password_length: 1
|
||||
password_confirmation: yes
|
||||
|
||||
# gnome-initial-setup can handle user and locale setup.
|
||||
# These settings allow to disable these pages.
|
||||
#
|
||||
# Default: skip_user: no, skip_locale: no
|
||||
skip_user: no
|
||||
skip_locale: no
|
||||
|
||||
# List of software that can additionally be selected for installation.
|
||||
# Each package requires a 'name' and one of either
|
||||
# * 'keyword' with optional 'suggested'
|
||||
# * 'options'
|
||||
#
|
||||
#
|
||||
# name string Name presented to user. Translatable.
|
||||
# description string Optional. Description presented to user. Translatable.
|
||||
# icon_path string Optional. Absolute path to icon to be displayed.
|
||||
# keyword string Forwarded to the installation script as is.
|
||||
# suggested bool Optional. Whether installation defaults to yes.
|
||||
# options list A list of options, with each option having:
|
||||
# name string Optional. Name presented to user. Translatable.
|
||||
# Value of 'option' is used when not given.
|
||||
# option string Like 'keyword' for non-options, forwarded as-is when chosen.
|
||||
#
|
||||
# Default: [], suggested: False, description: '', icon_path: fallback icon
|
||||
additional_software:
|
||||
- package : 'firefox'
|
||||
default : yes
|
||||
name : 'Firefox'
|
||||
description : 'Popular Web Browser from Mozilla'
|
||||
icon_path : '/etc/os-installer/icons/firefox.png'
|
||||
- package : 'libreoffice-fresh'
|
||||
default : no
|
||||
name : 'LibreOffice'
|
||||
description : 'Office Suite for Documents, Tables, Presentations and more'
|
||||
icon_path : '/etc/os-installer/icons/libreoffice-main.png'
|
||||
- name : 'Firefox'
|
||||
description : 'Popular Web Browser from Mozilla'
|
||||
icon_path : '/etc/os-installer/icons/firefox.png'
|
||||
keyword : 'firefox'
|
||||
suggested : yes
|
||||
- name : 'Chröm'
|
||||
description : 'HIDEOUS browser made by big brother'
|
||||
keyword : 'börk'
|
||||
suggested : no
|
||||
- name : 'Files'
|
||||
description : 'Access and organize files'
|
||||
icon_path : '/etc/os-installer/icons/nautilus.svg'
|
||||
keyword : 'nautilus'
|
||||
suggested : yes
|
||||
- name : 'Optional Option'
|
||||
description : 'Select your favorite option'
|
||||
icon_path : '/etc/os-installer/icons/options-symbolic.svg'
|
||||
options :
|
||||
- option : 'Nothing'
|
||||
- name : 'Option 1'
|
||||
option : 'package_1'
|
||||
- name : 'Option 2'
|
||||
option : 'package_2'
|
||||
|
||||
# List of features that can additionally be selected. Very similar
|
||||
# to `additional_software`, but meant for more generic features. Can
|
||||
# be used instead of or in combination with `additional_software`.
|
||||
#
|
||||
# See `additional_software` for syntax description.
|
||||
additional_features:
|
||||
- name : 'Dummy Feature'
|
||||
description : 'Does not do anything'
|
||||
keyword : 'dummy'
|
||||
- name : 'Snapshots'
|
||||
description : 'Snapshots allow restoring a previous state of your system'
|
||||
icon_path : '/etc/os-installer/icons/snapshot.svg'
|
||||
keyword : 'snapshots'
|
||||
suggested : yes
|
||||
- name : 'Background Image'
|
||||
options :
|
||||
- name : 'Axolotls'
|
||||
option : 'bg-axolotl'
|
||||
- name : 'Cats'
|
||||
option : 'bg-cats'
|
||||
- name : 'Dogs'
|
||||
option : 'bg-dogs'
|
||||
|
||||
# Upon failure an option to search for help on the internet is given.
|
||||
# The url this leads to can be defined here. The squiggly brackets are
|
||||
# replaced with the os-installer version.
|
||||
#
|
||||
# Default: 'https://duckduckgo.com/?q="os-installer {}"+"failed installation"'
|
||||
failure_help_url: 'https://support.dist.ro/new_issue?q="failed"+"os-installer {}"'
|
||||
|
||||
# Certain parts of the installer launch external programs. These can be configured here.
|
||||
# Note: For calling the command, the string is split up by spaces.
|
||||
#
|
||||
# The browser_cmd will be called followed by a url.
|
||||
#
|
||||
# Default: browser_cmd: 'epiphany', disks_cmd: 'gnome-disks', wifi_cmd: 'gnome-control-center wifi'
|
||||
browser_cmd: 'firefox'
|
||||
disks_cmd : 'gnome-disks'
|
||||
wifi_cmd : 'gnome-control-center wifi'
|
||||
87
example_config/config_to_pot.py
Normal file
@@ -0,0 +1,87 @@
|
||||
#!/bin/python3
|
||||
|
||||
import argparse
|
||||
from pathlib import Path
|
||||
import yaml
|
||||
|
||||
parser = argparse.ArgumentParser(
|
||||
prog='config_to_pot',
|
||||
description='Create a .pot file for an os-installer config')
|
||||
parser.add_argument('config_path', type=Path, default=None)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
if not args.config_path:
|
||||
parser.print_usage()
|
||||
exit(1)
|
||||
|
||||
|
||||
def add_to_pot(text, pot_file):
|
||||
pot_file.write(f'msgid "{text}"\nmsgstr ""\n\n')
|
||||
|
||||
|
||||
def handle_choices(choices, pot_file):
|
||||
for choice in choices:
|
||||
if 'name' in choice:
|
||||
add_to_pot(choice['name'], pot_file)
|
||||
else:
|
||||
print(f'Invalid choice: {choice}')
|
||||
if 'description' in choice:
|
||||
add_to_pot(choice['description'], pot_file)
|
||||
if 'options' in choice:
|
||||
options = choice['options']
|
||||
for option in options:
|
||||
if 'name' in option:
|
||||
add_to_pot(option['name'], pot_file)
|
||||
elif not 'option' in option:
|
||||
print(f'Invalid option: {option}')
|
||||
|
||||
|
||||
def handle_config(config, pot_file):
|
||||
if 'welcome_page' in config:
|
||||
welcome_page = config['welcome_page']
|
||||
if 'text' in welcome_page:
|
||||
add_to_pot(welcome_page['text'], pot_file)
|
||||
if 'additional_software' in config:
|
||||
handle_choices(config['additional_software'], pot_file)
|
||||
|
||||
if 'additional_features' in config:
|
||||
handle_choices(config['additional_features'], pot_file)
|
||||
|
||||
|
||||
def write_pot_header(pot_file):
|
||||
pot_header = \
|
||||
'''# SOME DESCRIPTIVE TITLE.\n''' \
|
||||
'''# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n''' \
|
||||
'''# This file is distributed under the same license as the os-installer package.\n''' \
|
||||
'''# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n''' \
|
||||
'''#\n''' \
|
||||
'''msgid ""\n''' \
|
||||
'''msgstr ""\n''' \
|
||||
'''"Project-Id-Version: os-installer-config\\n"\n''' \
|
||||
'''"Report-Msgid-Bugs-To: \\n"\n''' \
|
||||
'''"POT-Creation-Date: 2023-08-18 03:39+0100\\n"\n''' \
|
||||
'''"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n"\n''' \
|
||||
'''"Last-Translator: FULL NAME <EMAIL@ADDRESS>\\n"\n''' \
|
||||
'''"Language-Team: LANGUAGE <LL@li.org>\\n"\n''' \
|
||||
'''"Language: \\n"\n''' \
|
||||
'''"MIME-Version: 1.0\\n"\n''' \
|
||||
'''"Content-Type: text/plain; charset=UTF-8\\n"\n''' \
|
||||
'''"Content-Transfer-Encoding: 8bit\\n"\n\n'''
|
||||
pot_file.write(pot_header)
|
||||
|
||||
|
||||
try:
|
||||
with open(args.config_path, 'r') as config_file:
|
||||
config = yaml.load(config_file, Loader=yaml.Loader)
|
||||
|
||||
po_folder = args.config_path.parent / 'po'
|
||||
po_folder.mkdir(exist_ok=True)
|
||||
|
||||
pot_path = po_folder / 'config.pot'
|
||||
with open(pot_path, 'w') as pot_file:
|
||||
write_pot_header(pot_file)
|
||||
handle_config(config, pot_file)
|
||||
except:
|
||||
print('Could not find or parse provided config')
|
||||
exit(1)
|
||||
BIN
example_config/desktops/enlightenment.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
example_config/desktops/gnome.jpg
Normal file
|
After Width: | Height: | Size: 186 KiB |
BIN
example_config/desktops/kde.png
Normal file
|
After Width: | Height: | Size: 647 KiB |
BIN
example_config/desktops/xfce.png
Normal file
|
After Width: | Height: | Size: 563 KiB |
1
example_config/distro.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><svg width="256px" height="256px" viewBox="0 0 10 10" xmlns="http://www.w3.org/2000/svg" ><path style="color:#000000;fill:#ffff00" d="m 13.17142,5 a 5,5 0 0 1 -5,5 5,5 0 0 1 -5,-5 5,5 0 0 1 5,-5 5,5 0 0 1 5,5 z" transform="matrix(0.95,0,0,0.95,-2.763,0.25)" /><path style="color:#000000;fill:#000000" d="M 5,0 C 2.24,0 0,2.24 0,5 0,7.76 2.24,10 5,10 7.76,10 10,7.76 10,5 10,2.24 7.76,0 5,0 Z m 0,0.5 c 2.5,0 4.5,2 4.5,4.5 0,2.5 -2,4.5 -4.5,4.5 -2.5,0 -4.5,-2 -4.5,-4.5 0,-2.5 2,-4.5 4.5,-4.5 z M 3.7,2.93 A 0.47,0.47 0 0 0 3.23,3.40 0.47,0.47 0 0 0 3.71,3.88 0.47,0.47 0 0 0 4.18,3.40 0.47,0.47 0 0 0 3.71,2.93 Z m 2.58,0 A 0.47,0.47 0 0 0 5.82,3.4 0.47,0.47 0 0 0 6.29,3.88 0.47,0.47 0 0 0 6.77,3.4 0.47,0.47 0 0 0 6.3,2.93 Z M 2.37,5.32 c 0,0.94 0.5,1.80 1.31,2.27 0.81,0.47 1.81,0.47 2.63,0 C 7.12,7.13 7.63,6.26 7.63,5.32 h -0.50 c 0,0.76 -0.41,1.46 -1.06,1.84 -0.66,0.38 -1.47,0.38 -2.12,0 C 3.28,6.78 2.88,6 2.88,5.32 Z"/></svg>
|
||||
|
After Width: | Height: | Size: 972 B |
46
example_config/icons/jp-symbol.svg
Normal file
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="32"
|
||||
height="32"
|
||||
viewBox="0 0 32 32"
|
||||
version="1.1"
|
||||
id="svg522"
|
||||
sodipodi:docname="jp-symbol.svg"
|
||||
inkscape:version="1.2.1 (9c6d41e410, 2022-07-14, custom)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs526" />
|
||||
<sodipodi:namedview
|
||||
id="namedview524"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.17647059"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
showgrid="false"
|
||||
inkscape:zoom="10.094907"
|
||||
inkscape:cx="26.696631"
|
||||
inkscape:cy="14.462739"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1011"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg522" />
|
||||
<circle
|
||||
style="fill:#ffffff;stroke-width:4"
|
||||
id="path697"
|
||||
cx="16"
|
||||
cy="16"
|
||||
r="16" />
|
||||
<path
|
||||
d="M 13.73523,6 C 12.378555,6.7658641 10.124726,7.6411378 8.0459518,8.2975929 L 7.0393872,7.9256018 V 23.964988 H 8.6805248 V 22.083152 H 14.873085 V 20.507658 H 8.6805248 V 15.190371 H 14.763676 V 13.592998 H 8.6805248 V 9.6761491 C 10.912472,9.0196941 13.319475,8.1881838 15.135667,7.356674 Z m 2.494528,1.4879649 V 26 h 1.66302 V 9.1291032 h 5.404815 V 20.52954 c 0,0.328228 -0.08752,0.437638 -0.437636,0.459518 -0.371993,0 -1.597374,0 -2.910285,-0.04376 0.26258,0.481402 0.547047,1.26915 0.634572,1.77243 1.641138,0 2.778994,-0.04376 3.479214,-0.35011 0.700218,-0.284462 0.897155,-0.875273 0.897155,-1.81619 V 7.4879649 Z"
|
||||
fill="#222222"
|
||||
style="fill:#000000;fill-opacity:1;stroke-width:0.227936"
|
||||
id="path520" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
253
example_config/icons/nautilus.svg
Normal file
@@ -0,0 +1,253 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
viewBox="0 0 128 128"
|
||||
style="display:inline;enable-background:new"
|
||||
version="1.0"
|
||||
id="svg11300"
|
||||
height="128"
|
||||
width="128">
|
||||
<title
|
||||
id="title4162">Adwaita Icon Template</title>
|
||||
<defs
|
||||
id="defs3">
|
||||
<linearGradient
|
||||
id="linearGradient1245">
|
||||
<stop
|
||||
id="stop1241"
|
||||
offset="0"
|
||||
style="stop-color:#9a9996;stop-opacity:1" />
|
||||
<stop
|
||||
id="stop1243"
|
||||
offset="1"
|
||||
style="stop-color:#c0bfbc;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1697">
|
||||
<stop
|
||||
style="stop-color:#deddda;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop1685" />
|
||||
<stop
|
||||
id="stop1687"
|
||||
offset="0.04545455"
|
||||
style="stop-color:#eeeeec;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#deddda;stop-opacity:1"
|
||||
offset="0.09090909"
|
||||
id="stop1689" />
|
||||
<stop
|
||||
id="stop1691"
|
||||
offset="0.90909094"
|
||||
style="stop-color:#deddda;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#eeeeec;stop-opacity:1"
|
||||
offset="0.95454544"
|
||||
id="stop1693" />
|
||||
<stop
|
||||
style="stop-color:#c0bfbc;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop1695" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
y2="238"
|
||||
x2="108"
|
||||
y1="238"
|
||||
x1="20"
|
||||
id="linearGradient1049"
|
||||
xlink:href="#linearGradient1697" />
|
||||
<linearGradient
|
||||
y2="238"
|
||||
x2="74"
|
||||
y1="238"
|
||||
x1="50"
|
||||
gradientTransform="translate(2,-22)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient1185"
|
||||
xlink:href="#linearGradient1697" />
|
||||
<linearGradient
|
||||
y2="200"
|
||||
x2="65"
|
||||
y1="204"
|
||||
x1="65"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient1348"
|
||||
xlink:href="#linearGradient1245" />
|
||||
</defs>
|
||||
<metadata
|
||||
id="metadata4">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>GNOME Design Team</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:source />
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
|
||||
<dc:title>Adwaita Icon Template</dc:title>
|
||||
<dc:subject>
|
||||
<rdf:Bag />
|
||||
</dc:subject>
|
||||
<dc:date />
|
||||
<dc:rights>
|
||||
<cc:Agent>
|
||||
<dc:title />
|
||||
</cc:Agent>
|
||||
</dc:rights>
|
||||
<dc:publisher>
|
||||
<cc:Agent>
|
||||
<dc:title />
|
||||
</cc:Agent>
|
||||
</dc:publisher>
|
||||
<dc:identifier />
|
||||
<dc:relation />
|
||||
<dc:language />
|
||||
<dc:coverage />
|
||||
<dc:description />
|
||||
<dc:contributor>
|
||||
<cc:Agent>
|
||||
<dc:title />
|
||||
</cc:Agent>
|
||||
</dc:contributor>
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#Notice" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#Attribution" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
transform="translate(0,-172)"
|
||||
style="display:inline"
|
||||
id="layer1">
|
||||
<g
|
||||
style="display:inline"
|
||||
id="layer9">
|
||||
<g
|
||||
transform="matrix(0.25,0,0,-0.25,-6,217)"
|
||||
id="g15447-1" />
|
||||
<g
|
||||
id="g1207">
|
||||
<rect
|
||||
ry="8.017911"
|
||||
rx="8.7725897"
|
||||
y="234"
|
||||
x="20"
|
||||
height="58"
|
||||
width="88"
|
||||
id="rect1041"
|
||||
style="opacity:1;vector-effect:none;fill:url(#linearGradient1049);fill-opacity:1;stroke:none;stroke-width:0.01184966px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal" />
|
||||
<rect
|
||||
style="opacity:1;vector-effect:none;fill:#f6f5f4;fill-opacity:1;stroke:none;stroke-width:0.01184966px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal"
|
||||
id="rect15435-6"
|
||||
width="88"
|
||||
height="108"
|
||||
x="20"
|
||||
y="180"
|
||||
rx="8.7725897"
|
||||
ry="8.017911" />
|
||||
<rect
|
||||
ry="4.0021734"
|
||||
rx="4"
|
||||
y="186"
|
||||
x="24"
|
||||
height="98"
|
||||
width="80"
|
||||
id="rect1167"
|
||||
style="display:inline;opacity:1;vector-effect:none;fill:#1a5fb4;fill-opacity:1;stroke:none;stroke-width:0.0119126px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
|
||||
<rect
|
||||
style="display:inline;opacity:1;vector-effect:none;fill:#3584e4;fill-opacity:1;stroke:none;stroke-width:0.0119126px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
|
||||
id="rect15441-8"
|
||||
width="80"
|
||||
height="98"
|
||||
x="24"
|
||||
y="184"
|
||||
rx="4"
|
||||
ry="4.0021734" />
|
||||
<rect
|
||||
style="display:inline;opacity:1;vector-effect:none;fill:#1c71d8;fill-opacity:1;stroke:none;stroke-width:0.01190936px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
|
||||
id="rect15443-6"
|
||||
width="80"
|
||||
height="2"
|
||||
x="24"
|
||||
y="216"
|
||||
rx="0"
|
||||
ry="0" />
|
||||
<rect
|
||||
style="display:inline;opacity:1;vector-effect:none;fill:#1c71d8;fill-opacity:1;stroke:none;stroke-width:0.01190936px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
|
||||
id="rect15461-2"
|
||||
width="80"
|
||||
height="2"
|
||||
x="24"
|
||||
y="248"
|
||||
rx="0"
|
||||
ry="0" />
|
||||
<g
|
||||
id="g1088">
|
||||
<path
|
||||
id="path26035"
|
||||
d="m 55,196 h 18 c 1.662,0 3,1 3,3 v 5 H 72.03125 L 72,200 H 56 l 0.03125,4 H 52 v -5 c 0,-1.662 1.338,-3 3,-3 z"
|
||||
style="opacity:1;vector-effect:none;fill:url(#linearGradient1185);fill-opacity:1;stroke:none;stroke-width:0.01184966px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal" />
|
||||
<rect
|
||||
style="opacity:0.1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect1059"
|
||||
width="24"
|
||||
height="4"
|
||||
x="52"
|
||||
y="202"
|
||||
ry="1.5" />
|
||||
<path
|
||||
style="opacity:1;fill:url(#linearGradient1348);fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="m 55,200 c -1.662,0 -3,1.338 -3,3 v 1 h 4 v -2 h 16 v 2 h 4 v -1 c 0,-1.662 -1.338,-3 -3,-3 z"
|
||||
id="rect1061" />
|
||||
<rect
|
||||
y="202"
|
||||
x="56"
|
||||
height="2"
|
||||
width="16"
|
||||
id="rect1189"
|
||||
style="opacity:0.1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
</g>
|
||||
<use
|
||||
x="0"
|
||||
y="0"
|
||||
xlink:href="#g1088"
|
||||
id="use1090"
|
||||
transform="translate(0,32)"
|
||||
width="100%"
|
||||
height="100%" />
|
||||
<use
|
||||
height="100%"
|
||||
width="100%"
|
||||
transform="translate(0,64)"
|
||||
id="use1092"
|
||||
xlink:href="#g1088"
|
||||
y="0"
|
||||
x="0" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 9.2 KiB |
2
example_config/icons/options-symbolic.svg
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px"><path d="m 7 -0.0273438 c -1.105469 0 -2 0.8945318 -2 1.9999998 c 0.003906 0.710938 0.382812 1.371094 1 1.726563 v 8.542969 c -0.617188 0.359374 -1 1.015624 -1 1.730468 c 0 1.105469 0.894531 2 2 2 s 2 -0.894531 2 -2 c 0 -0.714844 -0.382812 -1.375 -1 -1.734375 v -0.238281 c 0 -0.667969 0.1875 -0.726562 0.445312 -0.859375 c 0.261719 -0.128906 0.554688 -0.144531 0.554688 -0.144531 h 0.007812 l 1.992188 -0.023438 c 0.832031 0 1.550781 -0.386718 2.082031 -0.917968 s 0.917969 -1.25 0.917969 -2.082032 v -2.273437 c 0.617188 -0.355469 0.996094 -1.015625 1 -1.726563 c 0 -1.105468 -0.894531 -2 -2 -2 s -2 0.894532 -2 2 c 0 0.710938 0.382812 1.371094 1 1.726563 v 2.273437 c 0 0.167969 -0.113281 0.449219 -0.332031 0.667969 s -0.5 0.332031 -0.667969 0.332031 h -0.007812 l -2 0.027344 c -0.007813 0 -0.445313 -0.003906 -0.992188 0.171875 v -5.472656 c 0.617188 -0.355469 0.996094 -1.015625 1 -1.726563 c 0 -1.105468 -0.894531 -1.9999998 -2 -1.9999998 z m 0 0"/></svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
50
example_config/icons/snapshot.svg
Normal file
@@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
height="32"
|
||||
viewBox="0 0 32 32"
|
||||
width="32"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="snapshot.svg"
|
||||
inkscape:version="1.2.1 (9c6d41e410, 2022-07-14, custom)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs8" />
|
||||
<sodipodi:namedview
|
||||
id="namedview6"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
showgrid="false"
|
||||
inkscape:zoom="13.40625"
|
||||
inkscape:cx="28.606061"
|
||||
inkscape:cy="32"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1011"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g6571" />
|
||||
<g
|
||||
id="g6571"
|
||||
transform="scale(4)">
|
||||
<circle
|
||||
style="fill:#ffffff;fill-opacity:1;stroke-width:0.5;stroke-dasharray:none"
|
||||
id="path8389"
|
||||
cx="4"
|
||||
cy="4"
|
||||
r="4" />
|
||||
<path
|
||||
d="M 4,2 C 3.475586,2 2.972656,2.206055 2.598633,2.573242 L 3.27832,3.75 4.276367,2.021484 C 4.18457,2.007812 4.092773,2.000976 4,2 Z M 4.53418,2.0752 3.855469,3.25 h 1.99707 C 5.61914,2.674805 5.132812,2.240234 4.53418,2.075195 Z M 2.424805,2.771489 C 2.15039,3.12207 2.000977,3.554687 2,4 2,4.168945 2.02246,4.336914 2.06543,4.5 H 3.422852 Z M 4.577148,3.5 5.575195,5.228515 C 5.849609,4.87793 5.999023,4.445312 6,4 6,3.831055 5.97754,3.663086 5.93457,3.5 Z M 4.72168,4.25 3.723633,5.978515 C 3.815433,5.992187 3.907226,5.999023 4,6 4.524414,6 5.027344,5.793946 5.401367,5.425782 Z M 2.147461,4.75 C 2.380859,5.325195 2.867187,5.759765 3.46582,5.924805 L 4.144531,4.75 Z m 0,0"
|
||||
fill="#222222"
|
||||
id="path8380"
|
||||
style="stroke-width:0.25" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.0 KiB |
69
example_config/po/config.pot
Normal file
@@ -0,0 +1,69 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the os-installer package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: os-installer-config\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-08-18 03:39+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
msgid "A welcoming text to inform about the installation."
|
||||
msgstr ""
|
||||
|
||||
msgid "Firefox"
|
||||
msgstr ""
|
||||
|
||||
msgid "Popular Web Browser from Mozilla"
|
||||
msgstr ""
|
||||
|
||||
msgid "Files"
|
||||
msgstr ""
|
||||
|
||||
msgid "Access and organize files"
|
||||
msgstr ""
|
||||
|
||||
msgid "Optional Option"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select your favorite option"
|
||||
msgstr ""
|
||||
|
||||
msgid "Option 1"
|
||||
msgstr ""
|
||||
|
||||
msgid "Option 2"
|
||||
msgstr ""
|
||||
|
||||
msgid "Dummy Feature"
|
||||
msgstr ""
|
||||
|
||||
msgid "Does not do anything"
|
||||
msgstr ""
|
||||
|
||||
msgid "Snapshots"
|
||||
msgstr ""
|
||||
|
||||
msgid "Snapshots allow restoring a previous state of your system"
|
||||
msgstr ""
|
||||
|
||||
msgid "Background Image"
|
||||
msgstr ""
|
||||
|
||||
msgid "Axolotls"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cats"
|
||||
msgstr ""
|
||||
|
||||
msgid "Dogs"
|
||||
msgstr ""
|
||||
|
||||
69
example_config/po/de_DE.po
Normal file
@@ -0,0 +1,69 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the os-installer package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: os-installer-config\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-08-18 03:39+0100\n"
|
||||
"PO-Revision-Date: 2024-03-10 23:17+0100\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"Language: de_DE\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 3.3.2\n"
|
||||
|
||||
msgid "A welcoming text to inform about the installation."
|
||||
msgstr "Ein Begrüßungstext, um die Installation zu erklären."
|
||||
|
||||
msgid "Firefox"
|
||||
msgstr "Firefox"
|
||||
|
||||
msgid "Popular Web Browser from Mozilla"
|
||||
msgstr "Beliebter Internet-Browser von Mozilla"
|
||||
|
||||
msgid "Files"
|
||||
msgstr "Dateien"
|
||||
|
||||
msgid "Access and organize files"
|
||||
msgstr "Auf Dateien zugreifen und diese organisieren"
|
||||
|
||||
msgid "Optional Option"
|
||||
msgstr "Optionale Option"
|
||||
|
||||
msgid "Select your favorite option"
|
||||
msgstr "Wählen Sie Ihre bevorzugte Option aus"
|
||||
|
||||
msgid "Option 1"
|
||||
msgstr "Option 1"
|
||||
|
||||
msgid "Option 2"
|
||||
msgstr "Option 2"
|
||||
|
||||
msgid "Dummy Feature"
|
||||
msgstr "Funktionsattrappe"
|
||||
|
||||
msgid "Does not do anything"
|
||||
msgstr "Tut nichts"
|
||||
|
||||
msgid "Snapshots"
|
||||
msgstr "Snapshots"
|
||||
|
||||
msgid "Snapshots allow restoring a previous state of your system"
|
||||
msgstr "Snapshots ermöglichen es, vorherige Systemzustände wiederherzustellen"
|
||||
|
||||
msgid "Background Image"
|
||||
msgstr "Hintergrundbild"
|
||||
|
||||
msgid "Axolotls"
|
||||
msgstr "Axolotl"
|
||||
|
||||
msgid "Cats"
|
||||
msgstr "Katzen"
|
||||
|
||||
msgid "Dogs"
|
||||
msgstr "Hunde"
|
||||
@@ -5,47 +5,53 @@
|
||||
# The script gets called with the environment variables from the install script
|
||||
# (see install.sh) and these additional variables:
|
||||
# OSI_USER_NAME : User's name. Not ASCII-fied
|
||||
# OSI_USER_USERNAME : Linux username. ASCII-fied
|
||||
# OSI_USER_AUTOLOGIN : Whether to autologin the user
|
||||
# OSI_USER_PASSWORD : User's password. Can be empty if autologin is set.
|
||||
# OSI_FORMATS : Locale of formats to be used
|
||||
# OSI_TIMEZONE : Timezone to be used
|
||||
# OSI_ADDITIONAL_SOFTWARE: Space-separated list of additional packages to install
|
||||
# OSI_ADDITIONAL_FEATURES: Space-separated list of additional features chosen
|
||||
|
||||
# sanity check that all variables were set
|
||||
if [ -z ${OSI_LOCALE+x} ] || \
|
||||
[ -z ${OSI_KEYBOARD_LAYOUT+x} ] || \
|
||||
[ -z ${OSI_DEVICE_PATH+x} ] || \
|
||||
[ -z ${OSI_DEVICE_IS_PARTITION+x} ] || \
|
||||
[ -z ${OSI_DEVICE_EFI_PARTITION+x} ] || \
|
||||
[ -z ${OSI_USE_ENCRYPTION+x} ] || \
|
||||
[ -z ${OSI_ENCRYPTION_PIN+x} ] || \
|
||||
[ -z ${OSI_USER_NAME+x} ] || \
|
||||
[ -z ${OSI_USER_USERNAME+x} ] || \
|
||||
[ -z ${OSI_USER_AUTOLOGIN+x} ] || \
|
||||
[ -z ${OSI_USER_PASSWORD+x} ] || \
|
||||
[ -z ${OSI_FORMATS+x} ] || \
|
||||
[ -z ${OSI_TIMEZONE+x} ] || \
|
||||
[ -z ${OSI_ADDITIONAL_SOFTWARE+x} ]
|
||||
[ -z ${OSI_ADDITIONAL_SOFTWARE+x} ] || \
|
||||
[ -z ${OSI_ADDITIONAL_FEATURES+x} ]
|
||||
then
|
||||
echo "Installer script called without all environment variables set!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo 'Configuration started.'
|
||||
|
||||
echo 'Installation started.'
|
||||
echo ''
|
||||
echo 'Variables set to:'
|
||||
echo 'OSI_LOCALE ' $OSI_LOCALE
|
||||
echo 'OSI_KEYBOARD_LAYOUT ' $OSI_KEYBOARD_LAYOUT
|
||||
echo 'OSI_DEVICE_PATH ' $OSI_DEVICE_PATH
|
||||
echo 'OSI_DEVICE_IS_PARTITION ' $OSI_DEVICE_IS_PARTITION
|
||||
echo 'OSI_DEVICE_EFI_PARTITION ' $OSI_DEVICE_EFI_PARTITION
|
||||
echo 'OSI_USE_ENCRYPTION ' $OSI_USE_ENCRYPTION
|
||||
echo 'OSI_ENCRYPTION_PIN ' $OSI_ENCRYPTION_PIN
|
||||
echo 'OSI_USER_NAME ' $OSI_USER_NAME
|
||||
echo 'OSI_USER_USERNAME ' $OSI_USER_USERNAME
|
||||
echo 'OSI_USER_AUTOLOGIN ' $OSI_USER_AUTOLOGIN
|
||||
echo 'OSI_USER_PASSWORD ' $OSI_USER_PASSWORD
|
||||
echo 'OSI_FORMATS ' $OSI_FORMATS
|
||||
echo 'OSI_TIMEZONE ' $OSI_TIMEZONE
|
||||
echo 'OSI_ADDITIONAL_SOFTWARE ' $OSI_ADDITIONAL_SOFTWARE
|
||||
echo 'OSI_ADDITIONAL_FEATURES ' $OSI_ADDITIONAL_FEATURES
|
||||
echo ''
|
||||
|
||||
# Pretending to do something
|
||||
@@ -60,4 +66,4 @@ done
|
||||
echo
|
||||
echo 'Configuration completed.'
|
||||
|
||||
exit 0
|
||||
exit 0
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
# This is an example installer script. For OS-Installer to use it, place it at:
|
||||
# /etc/os-installer/scripts/install.sh
|
||||
# The script gets called with the following environment variables set:
|
||||
# OSI_DESKTOP : Desktop keyword, or empty if 'desktop' was not configured
|
||||
# OSI_LOCALE : Locale to be used in the new system
|
||||
# OSI_DEVICE_PATH : Device path at which to install
|
||||
# OSI_DEVICE_IS_PARTITION : 1 if the specified device is a partition (0 -> disk)
|
||||
@@ -11,7 +12,9 @@
|
||||
# OSI_ENCRYPTION_PIN : The encryption pin to use (if encryption is set)
|
||||
|
||||
# sanity check that all variables were set
|
||||
if [ -z ${OSI_LOCALE+x} ] || \
|
||||
if [ -z ${OSI_DESKTOP+x} ] || \
|
||||
[ -z ${OSI_LOCALE+x} ] || \
|
||||
[ -z ${OSI_KEYBOARD_LAYOUT+x} ] || \
|
||||
[ -z ${OSI_DEVICE_PATH+x} ] || \
|
||||
[ -z ${OSI_DEVICE_IS_PARTITION+x} ] || \
|
||||
[ -z ${OSI_DEVICE_EFI_PARTITION+x} ] || \
|
||||
@@ -25,7 +28,9 @@ fi
|
||||
echo 'Installation started.'
|
||||
echo ''
|
||||
echo 'Variables set to:'
|
||||
echo 'OSI_DESKTOP ' $OSI_DESKTOP
|
||||
echo 'OSI_LOCALE ' $OSI_LOCALE
|
||||
echo 'OSI_KEYBOARD_LAYOUT ' $OSI_KEYBOARD_LAYOUT
|
||||
echo 'OSI_DEVICE_PATH ' $OSI_DEVICE_PATH
|
||||
echo 'OSI_DEVICE_IS_PARTITION ' $OSI_DEVICE_IS_PARTITION
|
||||
echo 'OSI_DEVICE_EFI_PARTITION ' $OSI_DEVICE_EFI_PARTITION
|
||||
|
||||
@@ -2,8 +2,9 @@
|
||||
|
||||
# This is an example preparation script. For OS-Installer to use it, place it at:
|
||||
# /etc/os-installer/scripts/prepare.sh
|
||||
# The script gets called when an active internet connection was established.
|
||||
# The system time might not be synchronized just yet, but should be within seconds.
|
||||
# If `internet_connection_required` is enabled in the config, this script gets
|
||||
# called once an internet connection is established, otherwise it's called
|
||||
# immediately.
|
||||
|
||||
echo 'Preparation started.'
|
||||
|
||||
|
||||
16
meson.build
@@ -1,19 +1,25 @@
|
||||
project('os-installer',
|
||||
version: '0.1.2',
|
||||
meson_version: '>= 0.50.0',
|
||||
version: '0.4.0',
|
||||
meson_version: '>= 0.55.0',
|
||||
default_options: [ 'warning_level=2',
|
||||
],
|
||||
license: 'GPL-3.0-or-later',
|
||||
)
|
||||
|
||||
dependency('gio-2.0', version: '>= 2.60.0')
|
||||
dependency('glib-2.0', version: '>= 2.60.0')
|
||||
dependency('gnome-desktop-4', version: '>= 43')
|
||||
dependency('gtk4', version: '>= 4.10.0')
|
||||
dependency('gweather4', version: '>= 4.4.0')
|
||||
dependency('libadwaita-1', version: '>= 1.6.0')
|
||||
|
||||
i18n = import('i18n')
|
||||
|
||||
application_id = 'com.github.p3732.OS-Installer'
|
||||
application_url = 'https://gitlab.gnome.org/p3732/os-installer/'
|
||||
|
||||
subdir('.build_files')
|
||||
subdir('misc-build-files')
|
||||
subdir('data')
|
||||
subdir('src')
|
||||
subdir('po')
|
||||
|
||||
meson.add_install_script('.build_files/postinstall.py')
|
||||
meson.add_install_script('misc-build-files/postinstall.py')
|
||||
|
||||
1
meson_options.txt
Normal file
@@ -0,0 +1 @@
|
||||
option('flatpak', type: 'boolean', value: false, description: 'Build with flatpak, install demo mode wrapper')
|
||||
16
misc-build-files/meson.build
Normal file
@@ -0,0 +1,16 @@
|
||||
contributors = run_command(
|
||||
'cat', files('contributors'), check: true,
|
||||
).stdout().strip()
|
||||
|
||||
translators = run_command(
|
||||
'cat', files('translators'), check: true,
|
||||
).stdout().strip()
|
||||
|
||||
if get_option('flatpak')
|
||||
# start in demo mode when using flatpak through wrapper
|
||||
demo_script = files('os-installer-demo')
|
||||
|
||||
install_data(demo_script,
|
||||
install_dir: get_option('bindir')
|
||||
)
|
||||
endif
|
||||
2
misc-build-files/os-installer-demo
Executable file
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
exec os-installer -d
|
||||
22
misc-build-files/translators
Normal file
@@ -0,0 +1,22 @@
|
||||
Čeština: Vojtěch Perník
|
||||
Dansk: Silvolde
|
||||
Deutsch: Jürgen Benvenuti, Peter Eisenmann
|
||||
Eesti: Henri
|
||||
Español: Haidar Alí Sinisterra, Nícolas Castillo, Rodrigo Gonzalez Rodeger
|
||||
Française: Fabian Gouttin, A. Pinsard, Quentin Vaucher
|
||||
Hrvastki: Milo Ivir, Natalija Grbac
|
||||
Italiano: Mirko Brombin
|
||||
ქართული: Temuri Doghonadze
|
||||
Nederlands: Gert-dev, Mikachu
|
||||
Occitan: Quentin PAGÈS
|
||||
Polski: Matthaiks, rebokdev
|
||||
Português (Brasil): Fernando Rodrigues
|
||||
Português (Portugal): ssantos
|
||||
Русский: Artem Vorotnikov
|
||||
Română: Alex S
|
||||
Svenska: bittin, Luna Jernberg
|
||||
tiếng Việt: Tung Anh
|
||||
Türkçe: Oğuz Ersen
|
||||
українська: Dea Dia
|
||||
اردو: Intekhab Rizvi
|
||||
عربي: ContractOver
|
||||
23
po/LINGUAS
@@ -1,2 +1,23 @@
|
||||
de
|
||||
hr
|
||||
fr
|
||||
hr
|
||||
nl
|
||||
oc
|
||||
pt_BR
|
||||
uk
|
||||
sv
|
||||
es
|
||||
pl
|
||||
et
|
||||
ka
|
||||
cs
|
||||
it
|
||||
tr
|
||||
ro
|
||||
pt
|
||||
ru
|
||||
ur
|
||||
ar
|
||||
da
|
||||
vi
|
||||
fa
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the os-installer package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: os-installer\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-11-26 01:19+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=CHARSET\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: data/com.github.p3732.OS-Installer.desktop.in:3
|
||||
msgid "OS-Installer"
|
||||
msgstr ""
|
||||