839 Commits
0.1.0 ... 0.4.3

Author SHA1 Message Date
Peter Eisenmann
6dbe8936d8 summary: Hide rows by default 2025-01-16 17:14:44 +00:00
Peter Eisenmann
6b75528a1f choices: Fix changing choices by bumping config 2025-01-16 16:24:42 +00:00
Peter Eisenmann
caa236dca1 config: Add bump() method 2025-01-16 16:23:45 +00:00
Peter Eisenmann
c74358c6d2 envvar-creator: Fix instance-based envvars 2025-01-16 16:23:24 +00:00
Peter Eisenmann
7a4cd1d6c3 install: Fix terminal showing 2025-01-16 15:54:53 +00:00
Peter Eisenmann
ed8ee47963 config: Fix offer_disk_encryption legacy handling 2025-01-11 12:43:28 +08:00
Peter Eisenmann
36fc49b4d5 welcome-provider: Fix non-existent image handling 2025-01-10 15:29:44 +08:00
Peter Eisenmann
855819aca6 desktop-provider: Fix non-existent image handling 2025-01-10 15:29:37 +08:00
Peter Eisenmann
d666254783 general: Use fallback dict lookup 2025-01-10 15:29:28 +08:00
Peter Eisenmann
40812f13d2 config: Fix legacy variable access order 2025-01-10 17:04:13 +13:00
Peter Eisenmann
0447ee7016 readme: Link to GTranslator flatpak 2025-01-10 15:34:41 +13:00
Peter Eisenmann
4d0aa8cc10 summary: Fix software/feature row styling 2025-01-10 15:33:52 +13:00
Peter Eisenmann
25a62ede40 disk-provider: Fix demo swap device path 2025-01-10 15:33:20 +13:00
Peter Eisenmann
df5b4134c4 config: Fix type error print 2025-01-10 15:33:13 +13:00
Peter Eisenmann
eb5b93f3f2 language-provider: Fix empty suggested list 2025-01-10 15:32:52 +13:00
Peter Eisenmann
b645e8e095 window: Fix fail page as permanent 2025-01-10 15:32:08 +13:00
Peter Eisenmann
dd95dc333a window: Don't delete language page for retranslation
This fixes a focus issue when navigating back and forth from language page.
2025-01-10 15:32:08 +13:00
Danial Behzadi
bbf358e787 Translated using Weblate (Persian)
Currently translated at 100.0% (74 of 74 strings)

Co-authored-by: Danial Behzadi <dani.behzi@ubuntu.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/fa/
Translation: os-installer/os-installer
2025-01-10 15:31:35 +13:00
Prefill add-on
bb379340d6 Translated using Weblate (Persian)
Currently translated at 0.0% (0 of 74 strings)

Co-authored-by: Prefill add-on <noreply-addon-prefill@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/fa/
Translation: os-installer/os-installer
2025-01-10 15:31:35 +13:00
Danial Behzadi
479f58a4ae Added translation using Weblate (Persian)
Co-authored-by: Danial Behzadi <dani.behzi@ubuntu.com>
2025-01-10 15:31:35 +13:00
Samed ÖZDEMİR
7e6c2d8b8a Translated using Weblate (Turkish)
Currently translated at 89.1% (66 of 74 strings)

Co-authored-by: Samed ÖZDEMİR <samedozdemirr@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/tr/
Translation: os-installer/os-installer
2025-01-10 15:31:35 +13:00
Gabriel Elyas
fac455e06e Translated using Weblate (Portuguese)
Currently translated at 100.0% (74 of 74 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (74 of 74 strings)

Co-authored-by: Gabriel Elyas <gabrielelyas@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/pt/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/pt_BR/
Translation: os-installer/os-installer
2025-01-10 15:31:35 +13:00
Priit Jõerüüt
fa0e86cb4e Translated using Weblate (Estonian)
Currently translated at 100.0% (74 of 74 strings)

Co-authored-by: Priit Jõerüüt <hwlate@joeruut.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/et/
Translation: os-installer/os-installer
2025-01-10 15:31:35 +13:00
Peter Eisenmann
4eac28bd52 Translated using Weblate (German)
Currently translated at 100.0% (74 of 74 strings)

Co-authored-by: Peter Eisenmann <p3732@disroot.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/de/
Translation: os-installer/os-installer
2025-01-10 15:31:35 +13:00
Temuri Doghonadze
e5f2d1ed43 Translated using Weblate (Georgian)
Currently translated at 100.0% (74 of 74 strings)

Co-authored-by: Temuri Doghonadze <temuri.doghonadze@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ka/
Translation: os-installer/os-installer
2024-10-17 19:15:56 +00:00
Matthaiks
9081467d5a Translated using Weblate (Polish)
Currently translated at 100.0% (74 of 74 strings)

Co-authored-by: Matthaiks <kitynska@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/pl/
Translation: os-installer/os-installer
2024-10-17 19:15:55 +00:00
Dan
a02c585b0a Translated using Weblate (Ukrainian)
Currently translated at 100.0% (74 of 74 strings)

Co-authored-by: Dan <jonweblin2205@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/uk/
Translation: os-installer/os-installer
2024-10-17 19:15:55 +00:00
bittin1ddc447d824349b2
eef1ac8ee6 Translated using Weblate (Swedish)
Currently translated at 100.0% (74 of 74 strings)

Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/sv/
Translation: os-installer/os-installer
2024-10-17 19:15:53 +00:00
gallegonovato
c9af214914 Translated using Weblate (Spanish)
Currently translated at 100.0% (74 of 74 strings)

Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/es/
Translation: os-installer/os-installer
2024-10-17 19:15:52 +00:00
Prefill add-on
49690f3eb4 Translated using Weblate (Vietnamese)
Currently translated at 93.9% (62 of 66 strings)

Translated using Weblate (Danish)

Currently translated at 16.6% (11 of 66 strings)

Translated using Weblate (Arabic)

Currently translated at 95.4% (63 of 66 strings)

Translated using Weblate (Urdu)

Currently translated at 89.3% (59 of 66 strings)

Translated using Weblate (Russian)

Currently translated at 89.3% (59 of 66 strings)

Translated using Weblate (Portuguese)

Currently translated at 89.3% (59 of 66 strings)

Translated using Weblate (Romanian)

Currently translated at 75.7% (50 of 66 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (66 of 66 strings)

Translated using Weblate (Italian)

Currently translated at 72.7% (48 of 66 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (66 of 66 strings)

Translated using Weblate (Georgian)

Currently translated at 100.0% (66 of 66 strings)

Translated using Weblate (Estonian)

Currently translated at 72.7% (48 of 66 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (66 of 66 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (66 of 66 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (66 of 66 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 89.3% (59 of 66 strings)

Translated using Weblate (Occitan)

Currently translated at 69.6% (46 of 66 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (66 of 66 strings)

Translated using Weblate (Croatian)

Currently translated at 100.0% (66 of 66 strings)

Translated using Weblate (French)

Currently translated at 95.4% (63 of 66 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (66 of 66 strings)

Translated using Weblate (German)

Currently translated at 95.4% (63 of 66 strings)

Co-authored-by: Prefill add-on <noreply-addon-prefill@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ar/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/cs/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/da/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/de/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/es/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/et/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/fr/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/hr/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/it/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ka/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/nl/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/oc/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/pl/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/pt/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ro/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ru/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/sv/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/tr/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/uk/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ur/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/vi/
Translation: os-installer/os-installer
2024-10-16 20:27:39 +02:00
Hosted Weblate
f8fca336a4 Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/
Translation: os-installer/os-installer
2024-10-16 20:27:29 +02:00
Peter Eisenmann
5db5e9f459 Update translation files 2024-10-16 14:26:36 -04:00
Peter Eisenmann
244a85a19a example-config: Add missing user+encrypt documentation 2024-10-16 14:04:20 -04:00
Peter Eisenmann
25d9940a68 config: Default to not provide user autologin option 2024-10-16 14:04:20 -04:00
Peter Eisenmann
e25e4c4eef user: Add confirmation row
Part of https://gitlab.gnome.org/p3732/os-installer/-/issues/36
2024-10-16 14:04:20 -04:00
Peter Eisenmann
e1b866cdb8 encrypt: Add confirmation row
Part of https://gitlab.gnome.org/p3732/os-installer/-/issues/36
2024-10-16 14:04:20 -04:00
Peter Eisenmann
b9c4f5795d encrypt: Use EntryErrorEnhancer and restructure 2024-10-16 12:50:15 -04:00
Peter Eisenmann
421de037db encrypt: Make page reusable 2024-10-16 11:37:37 -04:00
Peter Eisenmann
77f410a9da Add EntryErrorEnhancer for automatic error indicator handling 2024-10-16 11:37:37 -04:00
Peter Eisenmann
f787b6c3d3 user: Fix non-existent widget 2024-10-16 11:37:37 -04:00
Peter Eisenmann
ab70b235f0 window: Fix test mode page skipping 2024-10-16 11:37:37 -04:00
Peter Eisenmann
a1be987345 user: Only set name if it's ok 2024-10-16 11:37:37 -04:00
Peter Eisenmann
d01ef6992b envvar-creator: Handle backup username generation 2024-10-16 11:37:37 -04:00
Peter Eisenmann
0378b6f682 user: Only show username row when option configured 2024-10-16 11:37:37 -04:00
Peter Eisenmann
af534f1c95 disk: Allow usage of disks that don't properly report size
Fixes https://gitlab.gnome.org/p3732/os-installer/-/issues/45
2024-10-14 13:26:28 -04:00
Peter Eisenmann
862b51390d scripts: List disk even if size allegedly is zero 2024-10-14 13:26:28 -04:00
Peter Eisenmann
eb62fb6583 user: Add error indicator to faulty rows 2024-10-14 13:26:28 -04:00
Peter Eisenmann
9a5adf3bc9 user: Add error class styling to faulty rows 2024-10-14 13:26:28 -04:00
Peter Eisenmann
9dc6dbf2ca user: Simplify name check 2024-10-14 13:26:28 -04:00
Peter Eisenmann
9309255b81 user: Add dedicated username entry 2024-10-14 13:26:28 -04:00
Peter Eisenmann
7977fc16d3 user: Decentralize ok state 2024-10-14 12:18:30 -04:00
Peter Eisenmann
6800afc381 user: Clarify naming of name vs upcoming username 2024-10-14 12:18:30 -04:00
Peter Eisenmann
6cb2db1f51 user: Add autologin option to config 2024-10-14 12:18:29 -04:00
Peter Eisenmann
d6ccc4d9bf user: Add minimum password length option 2024-10-14 12:18:24 -04:00
Peter Eisenmann
a433c9f73d user: Provide a linux username to installation script 2024-10-13 16:52:58 -04:00
Peter Eisenmann
b07c7e9d0d config: Print warning about legacy config entries 2024-10-13 00:01:58 -04:00
Peter Eisenmann
886732dc42 state-machine: Run no-internet prepare script immediately 2024-10-13 00:01:58 -04:00
Peter Eisenmann
e4a6c62eef desktop: Improve selected desktop text readability 2024-10-13 00:01:58 -04:00
Peter Eisenmann
ef80c3ada1 window: Handle advancing pages via config subscription 2024-10-13 00:01:58 -04:00
Peter Eisenmann
dedaf3054e window: Handle navigating to page via config subscription 2024-10-13 00:01:58 -04:00
Peter Eisenmann
bf3b570771 state-machine: Handle installation script steps 2024-10-13 00:01:58 -04:00
Peter Eisenmann
1a3a4201fc state-machine: Handle retranslating pages 2024-10-13 00:01:58 -04:00
Peter Eisenmann
6dbba29e9b Add StateMachine, handle no-return pages 2024-10-13 00:01:58 -04:00
Peter Eisenmann
701a9dd4ed window: Split page order from page conditions 2024-10-13 07:38:58 +07:00
Peter Eisenmann
2b269b4262 desktop: Fix changing selected desktop image
Seems to be a bug, but not sure what exactly causes it.
2024-10-12 07:50:31 +03:00
Peter Eisenmann
35523cad56 welcome-provider: Preload welcome image 2024-10-12 07:49:46 +03:00
Peter Eisenmann
145adf9e92 format-provider: Turn into Preloadable 2024-10-12 06:55:58 +03:00
Peter Eisenmann
380f4d849a preloadable: Allow config-dependent preloading 2024-10-12 06:43:10 +03:00
Peter Eisenmann
994645713b config: Allow for delayed subscription 2024-10-11 08:09:43 +03:00
Peter Eisenmann
49aff9f026 timezone-provider: Turn into preloadable 2024-10-11 08:09:43 +03:00
Peter Eisenmann
4253b5e2de timezone-provider: Simplify location recursion method 2024-10-11 08:09:43 +03:00
Peter Eisenmann
8107697e10 timezone-provider: Simplify location children method 2024-10-11 08:09:43 +03:00
Peter Eisenmann
98ff5c3a64 encrypt: Add minimum pin length 2024-10-10 02:34:50 -05:00
Peter Eisenmann
029e49f6e8 Add forced disk encryption option 2024-10-10 02:03:08 -05:00
Peter Eisenmann
86d6b80de6 config: Add legacy handlnig for offer_disk_encryption 2024-10-10 00:36:02 -05:00
Peter Eisenmann
e5f003d6ec scripts: Make disk listing script more verbose 2024-10-09 23:47:58 -05:00
Peter Eisenmann
fec7b01a28 disk-provider: Strip vendor+model disk name
In case either of the strings is empty, don't have a dangling space.
2024-10-09 23:47:33 -05:00
Peter Eisenmann
0f65e84163 example: Provide dummy distro image 2024-10-09 23:08:35 -05:00
Peter Eisenmann
536f9b2491 desktop: Adjust image scaling 2024-10-09 22:00:34 -05:00
Peter Eisenmann
0afb3f3811 desktop-provider: Precache images as textures 2024-10-09 21:55:26 -05:00
Peter Eisenmann
8c422e870f desktop: Highlight selected desktop tile 2024-10-09 02:43:27 -05:00
Peter Eisenmann
e89ee64e8e progress-row: Use AdwActionRow as base 2024-10-09 01:09:28 -05:00
Peter Eisenmann
db9bf1e424 window: Fix push_by_tag() after add() on empty stack 2024-10-09 00:56:47 -05:00
Peter Eisenmann
5ae56ee2b7 window: Fix is-last-page check for last available page 2024-10-09 00:56:47 -05:00
Peter Eisenmann
9e957e029b general: Remove some unused hexpands 2024-10-09 00:56:47 -05:00
Peter Eisenmann
ad783c7816 disk: Add translator comments 2024-10-09 00:56:47 -05:00
Peter Eisenmann
3a2653d81c flatpak: Bump runtime, include Blueprint 2024-10-09 00:56:47 -05:00
Peter Eisenmann
b63b13e005 general: Use AdwSpinner 2024-10-09 00:56:47 -05:00
Peter Eisenmann
b175875462 language: Rely on config for setting chosen language 2024-10-09 00:56:47 -05:00
Peter Eisenmann
b64a21d52e install: Fix config import 2024-10-09 00:56:47 -05:00
Peter Eisenmann
ed315877d0 window: Remove now unused page_navigation handling 2024-10-09 00:56:47 -05:00
Peter Eisenmann
6eacb2eb02 config: Return whether value changed for set() 2024-10-09 00:56:47 -05:00
Peter Eisenmann
29c70a2b45 main: Remove unused imports 2024-10-09 00:56:47 -05:00
Peter Eisenmann
6273e6bd32 partition: Show special page if disk does no longer exist 2024-10-09 00:56:47 -05:00
Peter Eisenmann
21a816fb71 providers: Improve GObject namespacing 2024-10-09 00:56:47 -05:00
Peter Eisenmann
eddcfd4bf0 Add desktop page 2024-10-09 00:56:47 -05:00
Peter Eisenmann
ac21b7370f example: Use two-spaces indention 2024-09-13 00:23:00 -05:00
Peter Eisenmann
8d0de54330 build: Add dependencies 2024-09-12 23:17:50 -05:00
Peter Eisenmann
aa0fc15c75 window: Rework temporary/permanent page handling
Mark pages as non-/permanent and act accordingly when popping them.
2024-09-12 23:17:50 -05:00
Peter Eisenmann
d8e91b1997 window: Remove additional page tracking 2024-09-12 23:17:50 -05:00
Peter Eisenmann
a839954f02 window: Use available pages for removing all pages 2024-09-12 23:17:50 -05:00
Peter Eisenmann
e11f1b6c5b window: Determine first/last without page tracking 2024-09-12 23:17:50 -05:00
Peter Eisenmann
30738604e3 window: Use available pages to determine next page 2024-09-12 23:17:50 -05:00
Peter Eisenmann
d980c773e3 blueprint: Remove unused includes 2024-09-12 23:17:50 -05:00
Peter Eisenmann
f2fbfb64dd page-wrapper: Handle special images via config
Rather than arbitrary field access
2024-09-12 23:17:50 -05:00
Peter Eisenmann
e4d3285cf3 internet: Only advance automatically once 2024-09-12 23:17:50 -05:00
Peter Eisenmann
febfdf120c internet-provider: Check connection every second 2024-09-12 23:17:50 -05:00
Peter Eisenmann
451513a1b2 internet-provider: Fix url varialble 2024-09-12 23:17:50 -05:00
CouldBeMathijs
6951fe28f3 Translated using Weblate (Dutch)
Currently translated at 100.0% (66 of 66 strings)

Co-authored-by: CouldBeMathijs <mathijs.pittoors@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/nl/
Translation: os-installer/os-installer
2024-08-20 17:09:14 +00:00
Peter Eisenmann
d9e4e73f88 app: Sent notifications via config subscriptions 2024-08-16 21:26:04 +02:00
Peter Eisenmann
f0792f397b preloadable: Use static thread pool 2024-08-16 21:26:04 +02:00
Peter Eisenmann
21963b02ae internet-provider: Use Preloadable interface 2024-08-16 21:26:04 +02:00
Peter Eisenmann
30b8e58b5d preload-manager: Use list of providers 2024-08-16 21:26:04 +02:00
Peter Eisenmann
b6341b1d94 internet: Advance on connection via thread
This prevents navigation deadlocking and the need for special casing.
2024-08-16 21:26:04 +02:00
Peter Eisenmann
27d92531b7 page-wrapper: Use plain buttons
Buttons only change when a page is not shown, so drop the revealers
in favor of setting widget visibility.
2024-08-16 21:26:04 +02:00
Peter Eisenmann
928ae01f6c Revert "page-wrapper: Use AdwNavigationView backward button"
AdwNavigationView requires a bad style hack to align the button to the
top and also causes issues when pushing new pages onto the stack via
gestures.

This reverts commit 4d2fdd4920.
2024-08-16 21:26:04 +02:00
Temuri Doghonadze
0521b1af21 Translated using Weblate (Georgian)
Currently translated at 100.0% (66 of 66 strings)

Co-authored-by: Temuri Doghonadze <temuri.doghonadze@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ka/
Translation: os-installer/os-installer
2024-08-05 08:10:16 +00:00
AsciiWolf
91f2d0a5f8 Translated using Weblate (Czech)
Currently translated at 100.0% (66 of 66 strings)

Co-authored-by: AsciiWolf <mail@asciiwolf.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/cs/
Translation: os-installer/os-installer
2024-08-02 14:09:26 +02:00
Milo Ivir
8a265bb7b8 Translated using Weblate (Croatian)
Currently translated at 100.0% (66 of 66 strings)

Co-authored-by: Milo Ivir <mail@milotype.de>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/hr/
Translation: os-installer/os-installer
2024-08-02 14:09:25 +02:00
Peter Eisenmann
4d2fdd4920 page-wrapper: Use AdwNavigationView backward button 2024-08-01 19:55:40 +02:00
Peter Eisenmann
898a111de8 window: Support AdwNavigationView forward gestures 2024-08-01 19:55:40 +02:00
Peter Eisenmann
9019dd576b window: Simplify removing of all pages 2024-08-01 19:55:40 +02:00
Peter Eisenmann
0ebdad0f99 window: Retranslate via initialization helper 2024-08-01 19:55:40 +02:00
Peter Eisenmann
15912edb2f window: Make first page initialization reusable 2024-08-01 19:55:40 +02:00
Peter Eisenmann
5878a30e81 window: Fix AdwNavigationView back gestures 2024-08-01 19:55:40 +02:00
Peter Eisenmann
0106d821a3 window: Assert navigation based on page type
Page name will become less indicative in future commits.
2024-08-01 19:55:40 +02:00
Milo Ivir
9b0182cda8 Translated using Weblate (Croatian)
Currently translated at 98.4% (65 of 66 strings)

Co-authored-by: Milo Ivir <mail@milotype.de>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/hr/
Translation: os-installer/os-installer
2024-08-01 12:33:14 +02:00
Peter Eisenmann
89247119d3 window: Port to AdwNavigationView 2024-07-31 23:13:10 +02:00
Peter Eisenmann
1bab819d2b config: Fix subscription deadlock
When a subscription callback changed a config value, it would block
itself. Resolve this deadlock by reading subscription list under lock
and iterate over it outside of the lock.
2024-07-31 23:13:10 +02:00
Peter Eisenmann
149833710d page-wrapper: Use space for language special case
AdwNavigationView does not like empty strings as page titles.
2024-07-31 23:13:10 +02:00
Peter Eisenmann
8883ab634e page-wrapper: Drop title stack, inline widget
Disk page was the last user of this functionality (when reloading).
Remove the title stack and inline the functionality of the LabeledImage
widget for simpler and faster page creation.
2024-07-31 23:13:10 +02:00
Peter Eisenmann
f09c61c6df page-wrapper: Split out page title helper
In preparation for AdwNavigationView, which needs page titles.
2024-07-31 23:13:10 +02:00
Peter Eisenmann
c5199cf436 disk: Remove unused variable and import 2024-07-31 23:13:10 +02:00
Peter Eisenmann
6a64f35089 disk: Remove custom no-disk image 2024-07-31 23:13:10 +02:00
Peter Eisenmann
0a9c33527c page-wrapper: Use deconstructor over cleanup() 2024-07-31 23:13:10 +02:00
Peter Eisenmann
987f394988 page-wrapper: Add page setting helper 2024-07-31 23:13:10 +02:00
Peter Eisenmann
c787893bc4 page-wrapper: Remove unused __cleanup__ casing 2024-07-31 23:13:10 +02:00
Peter Eisenmann
260ca68ffc install: Cleanup on installation done 2024-07-31 23:13:10 +02:00
Peter Eisenmann
6633324675 done: Cleanup on navigation 2024-07-31 11:13:30 +02:00
Peter Eisenmann
5a3705f596 Move Headerbar to page wrapper
In preparation for AdwNavigationView, especially having backward and
forward buttons managed by it.
2024-07-31 00:02:41 +02:00
Peter Eisenmann
16e7a12290 window: Fix window control spacing 2024-07-30 14:30:49 +02:00
Peter Eisenmann
430062878a disk-provider: Fold dummy into default provider
Allows for simpler usage and does not require storing in local variable.
2024-07-30 12:37:18 +02:00
Peter Eisenmann
aeaf35ba26 general: Fix formatting issues 2024-07-30 12:37:18 +02:00
Peter Eisenmann
0b6db42c31 disk-provider: Simplify dummy disks creation 2024-07-30 12:37:18 +02:00
Peter Eisenmann
89d5735693 device-row: Fix translator comment 2024-07-30 12:37:18 +02:00
Peter Eisenmann
eb1b169fa7 disk-provider: Rework EFI partiton setting 2024-07-30 12:37:18 +02:00
Peter Eisenmann
640ab31d38 general: Remove some unused imports 2024-07-30 12:37:18 +02:00
Peter Eisenmann
6996553776 config: Ignore unknown properties 2024-07-30 12:37:18 +02:00
Peter Eisenmann
e86d08682f confirm-quit: Style stopping as destructive 2024-07-30 12:37:18 +02:00
Peter Eisenmann
047a2ce443 config: Improve internal config name
Also, move version to the appropriate section.
2024-07-30 12:37:18 +02:00
Peter Eisenmann
c5ba7da896 window: Reduce title spacing 2024-07-30 12:37:18 +02:00
Peter Eisenmann
03721d93ff wrapper: Use AdwPreferencesPage, drop custom style
Rely on standard margins from AdwPreferencePage, drop custom boxed-list
styling. Also fixes AdwAboutDialog row styling.
2024-07-30 12:37:18 +02:00
Peter Eisenmann
000dffbdfc style: Cleanup unused, inline single-use 2024-07-30 12:37:18 +02:00
Peter Eisenmann
e2ca9f3898 window: Use AdwToolbarView instead of custom style 2024-07-30 12:37:18 +02:00
Peter Eisenmann
a298ab9c13 config: Add fallback for selected disk 2024-07-30 12:37:18 +02:00
Oğuz Ersen
c86e2b94dc Translated using Weblate (Turkish)
Currently translated at 100.0% (66 of 66 strings)

Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/tr/
Translation: os-installer/os-installer
2024-07-29 11:09:23 +00:00
Matthaiks
768f0b8843 Translated using Weblate (Polish)
Currently translated at 100.0% (66 of 66 strings)

Co-authored-by: Matthaiks <kitynska@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/pl/
Translation: os-installer/os-installer
2024-07-29 11:09:21 +00:00
Dan
cbb7933f97 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (66 of 66 strings)

Co-authored-by: Dan <jonweblin2205@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/uk/
Translation: os-installer/os-installer
2024-07-29 11:09:20 +00:00
bittin1ddc447d824349b2
a368c5bf27 Translated using Weblate (Swedish)
Currently translated at 100.0% (66 of 66 strings)

Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/sv/
Translation: os-installer/os-installer
2024-07-29 11:09:19 +00:00
gallegonovato
b489ebe31d Translated using Weblate (Spanish)
Currently translated at 100.0% (66 of 66 strings)

Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/es/
Translation: os-installer/os-installer
2024-07-29 11:09:18 +00:00
Prefill add-on
e09c4e9f34 Translated using Weblate (Vietnamese)
Currently translated at 98.7% (80 of 81 strings)

Translated using Weblate (Danish)

Currently translated at 13.5% (11 of 81 strings)

Translated using Weblate (Arabic)

Currently translated at 79.0% (64 of 81 strings)

Translated using Weblate (Urdu)

Currently translated at 74.0% (60 of 81 strings)

Translated using Weblate (Russian)

Currently translated at 74.0% (60 of 81 strings)

Translated using Weblate (Portuguese)

Currently translated at 74.0% (60 of 81 strings)

Translated using Weblate (Romanian)

Currently translated at 62.9% (51 of 81 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (81 of 81 strings)

Translated using Weblate (Italian)

Currently translated at 60.4% (49 of 81 strings)

Translated using Weblate (Czech)

Currently translated at 74.0% (60 of 81 strings)

Translated using Weblate (Georgian)

Currently translated at 85.1% (69 of 81 strings)

Translated using Weblate (Estonian)

Currently translated at 60.4% (49 of 81 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (81 of 81 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (81 of 81 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (81 of 81 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 74.0% (60 of 81 strings)

Translated using Weblate (Occitan)

Currently translated at 58.0% (47 of 81 strings)

Translated using Weblate (Dutch)

Currently translated at 79.0% (64 of 81 strings)

Translated using Weblate (Croatian)

Currently translated at 79.0% (64 of 81 strings)

Translated using Weblate (French)

Currently translated at 79.0% (64 of 81 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (81 of 81 strings)

Translated using Weblate (German)

Currently translated at 79.0% (64 of 81 strings)

Co-authored-by: Prefill add-on <noreply-addon-prefill@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ar/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/cs/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/da/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/de/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/es/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/et/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/fr/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/hr/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/it/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ka/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/nl/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/oc/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/pl/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/pt/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ro/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ru/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/sv/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/tr/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/uk/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ur/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/vi/
Translation: os-installer/os-installer
2024-07-28 12:12:02 +02:00
Hosted Weblate
cd101f7fec Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/
Translation: os-installer/os-installer
2024-07-28 12:11:48 +02:00
Peter Eisenmann
aac321cfd4 update translations and translators 2024-07-28 12:11:04 +02:00
Peter Eisenmann
0ee417bacb PageWrapper: Handle title creation 2024-07-28 12:00:32 +02:00
Peter Eisenmann
b7700a5ffc PageWrapper: Provide page name as method 2024-07-28 12:00:32 +02:00
Peter Eisenmann
50dc356e2d window: Add initialization helper 2024-07-28 12:00:32 +02:00
Peter Eisenmann
f98f81169a window: Don't translate empty string
Otherwise the string gets translated to inspection data of translation
library.
2024-07-28 12:00:32 +02:00
Peter Eisenmann
e22afa6ed6 Only allow dragging at the headerbar 2024-07-28 12:00:32 +02:00
Peter Eisenmann
81c9a187aa PageWrapper: Handle Page creation via name 2024-07-28 12:00:32 +02:00
Peter Eisenmann
c07fb065d2 Remove unused Page helper 2024-07-28 12:00:32 +02:00
Peter Eisenmann
fe3d78a515 Move PageWrapper to dedicated file 2024-07-28 12:00:32 +02:00
Peter Eisenmann
104e07026f filter: Use scrolling of wrapper 2024-07-28 12:00:32 +02:00
Peter Eisenmann
213e638312 keyboard-layout: Use scrolling of wrapper 2024-07-28 12:00:32 +02:00
Peter Eisenmann
e545cc0f2c welcome: Use scrolling of wrapper 2024-07-28 12:00:32 +02:00
Peter Eisenmann
31fa100119 window: Improve reload title method name 2024-07-28 12:00:32 +02:00
Oğuz Ersen
5ff9923adf Translated using Weblate (Turkish)
Currently translated at 100.0% (81 of 81 strings)

Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/tr/
Translation: os-installer/os-installer
2024-07-27 15:09:20 +02:00
gallegonovato
0dd5f660a4 Translated using Weblate (Spanish)
Currently translated at 100.0% (81 of 81 strings)

Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/es/
Translation: os-installer/os-installer
2024-07-27 15:09:19 +02:00
Tung Anh
e3f3a0e2f9 Translated using Weblate (Vietnamese)
Currently translated at 98.7% (80 of 81 strings)

Co-authored-by: Tung Anh <buihuutunganh2007@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/vi/
Translation: os-installer/os-installer
2024-07-24 07:09:28 +00:00
Prefill add-on
ea0c03f740 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (0 of 0 strings)

Co-authored-by: Prefill add-on <noreply-addon-prefill@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/vi/
Translation: os-installer/os-installer
2024-07-23 08:37:33 +02:00
Tung Anh
9e41c2d45f Added translation using Weblate (Vietnamese)
Co-authored-by: Tung Anh <buihuutunganh2007@gmail.com>
2024-07-23 08:37:33 +02:00
data water
56cf5a3148 Translated using Weblate (Georgian)
Currently translated at 85.1% (69 of 81 strings)

Co-authored-by: data water <data.gogiberidze@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ka/
Translation: os-installer/os-installer
2024-07-19 09:49:22 +02:00
Peter Eisenmann
c08d82df6d config: Always use fallback variables 2024-07-13 01:36:07 +02:00
Peter Eisenmann
709070da1f general: Use scrolling of wrapper more 2024-07-13 01:36:07 +02:00
Peter Eisenmann
3253709dae system-calls: Call some commands async 2024-07-13 01:36:07 +02:00
Peter Eisenmann
1745124b9b main: Start preload manager when modes are read
Otherwise demo mode is not set and wrong disk provider is used.
2024-07-13 01:36:07 +02:00
Peter Eisenmann
3044fb8a4c Remove page load() mechanism 2024-07-13 01:36:07 +02:00
Peter Eisenmann
416f3abdec internet: Use subscription mechanism for update
Instead of setting a callback on the internet provider, subscribe to a
config setting.
2024-07-13 01:36:07 +02:00
Peter Eisenmann
04d34869ce internet: Use Stack for dis/connected states 2024-07-13 01:36:07 +02:00
Peter Eisenmann
32c902fcf3 Remove global title image reload function 2024-07-13 01:36:07 +02:00
Peter Eisenmann
c284ef0cae disk: Drop unused load()
The page gets reloaded by reconstructing, no need for a dedicated load()
method.
2024-07-13 01:36:07 +02:00
Peter Eisenmann
feee699e76 window: Reload pages by recreating them 2024-07-13 01:36:07 +02:00
Peter Eisenmann
8905592522 window: Inline page initialization helper
Code is not reusable in any place.
2024-07-13 01:36:07 +02:00
Peter Eisenmann
900ee5a4d7 disk-provider: Only ever create one disk provider 2024-07-13 01:36:07 +02:00
Peter Eisenmann
6c4f73049a disk: Setup everything in constructor
Currently loads list twice, will be removed in upcoming commit.
2024-07-13 01:36:07 +02:00
Peter Eisenmann
e0de6d2923 config: Combine formats locale and UI label
Also make format-provider directly initizialise formats from locale.
2024-07-13 01:36:07 +02:00
Peter Eisenmann
50d4b3eb10 window: Fully handle partition special case 2024-07-13 01:36:07 +02:00
Peter Eisenmann
4481e6640e disk: Use action for reload 2024-07-13 01:36:07 +02:00
Peter Eisenmann
11ccc21022 window: Track reloadable pages via list 2024-07-13 01:36:07 +02:00
Peter Eisenmann
ea8bc0efd0 window: Fix reloading pages 2024-07-13 01:36:07 +02:00
Peter Eisenmann
6eca659765 partition: Use config subscription to update list 2024-07-13 01:36:07 +02:00
Peter Eisenmann
a03791bf04 filter: Put one-time load in constructor 2024-07-13 01:36:07 +02:00
Peter Eisenmann
d36f019604 summary: Use config subscription to set values 2024-07-13 01:36:07 +02:00
Peter Eisenmann
e461d33cf1 config: Warn on subscribing to unknown variable 2024-07-13 01:36:07 +02:00
Peter Eisenmann
ce8d254827 window: Fix navigation on previous loading 2024-07-13 01:36:07 +02:00
Peter Eisenmann
0d2c723c8b Use config for post-load navigation 2024-07-13 01:36:07 +02:00
Peter Eisenmann
69d8bc46c7 config: Change subscriptions under lock 2024-07-13 01:36:07 +02:00
Peter Eisenmann
6ab70d9e68 Add testing shortcut for page skipping 2024-07-13 01:36:07 +02:00
Peter Eisenmann
b44763937f window: Fix failed page testing shortcut 2024-07-13 01:36:07 +02:00
Peter Eisenmann
0b918fbec0 failed: remove nonexistant widget binding 2024-07-13 01:36:07 +02:00
gallegonovato
3005703233 Translated using Weblate (Spanish)
Currently translated at 98.7% (80 of 81 strings)

Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/es/
Translation: os-installer/os-installer
2024-07-04 13:09:22 +00:00
Peter Eisenmann
8b4135ed44 confirm: Use config subscription to set values 2024-06-21 03:31:40 +02:00
Peter Eisenmann
eb35c5abce config: Combine disk name and path as tuple 2024-06-21 03:31:40 +02:00
Peter Eisenmann
840359c53f page: Remove unused unload() mechanism 2024-06-21 03:31:40 +02:00
Peter Eisenmann
9c6291f392 Rework page cleanup 2024-06-21 03:31:40 +02:00
Peter Eisenmann
9ef22dc174 window: Remove old pages before adding new ones 2024-06-21 03:31:40 +02:00
Peter Eisenmann
0c6fd61ab7 window: Add more non-returnable pages 2024-06-21 03:31:40 +02:00
Peter Eisenmann
65dff4b20c config: Rework unsubscribing
Unsubscribe by object comparison, making separate tracking of
subscriptions and a dedicated method for clearing them obsolete.
2024-06-21 03:31:40 +02:00
Peter Eisenmann
22294dd65d user: Store settings in config directly 2024-06-21 03:31:40 +02:00
Peter Eisenmann
2931c9d584 encrypt: Store settings in config directly 2024-06-21 03:31:40 +02:00
Peter Eisenmann
6eea995236 Rework choice handling
* Set fallback icon name on choice object
* Pass Choice object directly to rows
* Store choice state (on/off, or, which option) in choice object
* Store in config after initialization by provider, return from there
* React to and store changes immediately
* Remove now unused SummaryEntry
2024-06-21 03:31:40 +02:00
Peter Eisenmann
9a3155d38f summary: Add bottom spacing to choice rows 2024-06-21 03:31:40 +02:00
Peter Eisenmann
d4d20a1f3b config: Add icon-less software example 2024-06-21 03:31:40 +02:00
Peter Eisenmann
14359bc21c window: Fix unloading popped pages 2024-06-21 03:31:40 +02:00
Peter Eisenmann
a08f340b08 Handle running installation state via config 2024-06-21 03:31:39 +02:00
Peter Eisenmann
856dc55313 installation-scripting: Fix running installation 2024-06-21 03:31:23 +02:00
Peter Eisenmann
97519f5d8f envvar-creator: Use fallback values in test mode 2024-06-21 03:08:10 +02:00
Peter Eisenmann
5c92a73799 window: Handle quit shortcut 2024-06-21 03:08:08 +02:00
Peter Eisenmann
f7ab1e5493 config: Use fallback values in test mode 2024-06-21 03:07:22 +02:00
Peter Eisenmann
8098b125fb Move page title images to window 2024-06-21 03:07:19 +02:00
Peter Eisenmann
299ea33934 partition: Drop unused alternate image 2024-06-21 03:07:16 +02:00
Peter Eisenmann
590e4fa031 restart: Drop load() mechanism 2024-06-21 03:07:13 +02:00
Peter Eisenmann
e65eee2420 locale: Use subscription model 2024-06-21 03:07:10 +02:00
Peter Eisenmann
aa0f6b9d76 Move demo and test mode to config 2024-06-21 03:07:07 +02:00
Peter Eisenmann
2a2fb663d0 internet: Skip in test mode 2024-06-21 03:07:05 +02:00
Peter Eisenmann
9656f0bbd0 general: Use config directly
Don't go through global_state
2024-06-21 03:07:02 +02:00
Peter Eisenmann
018bf7a9b0 keyboard: Use subscription mechanism 2024-06-21 03:06:59 +02:00
Peter Eisenmann
d8da215ae2 page: Integrate subscription mechanism 2024-06-21 03:06:56 +02:00
Peter Eisenmann
798a0458b2 disk-provider: Randomly show no disks in test mode
In demo mode always show dummy disks
2024-06-21 03:06:55 +02:00
Peter Eisenmann
a8671ffc97 general: Combine code + ui value config entries 2024-06-21 03:06:52 +02:00
Peter Eisenmann
7909b779ec config: Add subscription mechanism 2024-06-21 03:06:49 +02:00
Peter Eisenmann
aedd273475 config: Use dicts over helper functions 2024-06-21 03:06:46 +02:00
Peter Eisenmann
eb95f7ad37 Rework config
Make config an independent class without the need to go through
global_state. Keep the global_state indirection around for now though.
2024-06-21 03:06:43 +02:00
Peter Eisenmann
5dafe79d3d envvar-creator: Rework envvar creation from config 2024-06-21 03:06:40 +02:00
Peter Eisenmann
74958f4f03 installation-step: Extract helper enum to file 2024-06-21 03:06:37 +02:00
Peter Eisenmann
85b27dec97 user: Pre-fill entries from config 2024-06-21 03:06:35 +02:00
Peter Eisenmann
1ccbc70ead page-wrapper: Make all pages scrollable 2024-06-21 03:06:32 +02:00
Peter Eisenmann
607e9dea67 main: Simplify quit action setup 2024-06-21 03:06:29 +02:00
Peter Eisenmann
13c4d178dc config: Print unconfigured variables 2024-06-21 03:06:26 +02:00
Dan
920d4a052e Translated using Weblate (Ukrainian)
Currently translated at 100.0% (81 of 81 strings)

Co-authored-by: Dan <jonweblin2205@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/uk/
Translation: os-installer/os-installer
2024-06-18 13:28:10 +02:00
bittin1ddc447d824349b2
8035afa16c Translated using Weblate (Swedish)
Currently translated at 100.0% (81 of 81 strings)

Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/sv/
Translation: os-installer/os-installer
2024-06-13 05:09:20 +00:00
Matthaiks
948e7193cf Translated using Weblate (Polish)
Currently translated at 100.0% (81 of 81 strings)

Co-authored-by: Matthaiks <kitynska@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/pl/
Translation: os-installer/os-installer
2024-06-10 21:09:22 +00:00
gallegonovato
90f6fd7067 Translated using Weblate (Spanish)
Currently translated at 96.2% (78 of 81 strings)

Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/es/
Translation: os-installer/os-installer
2024-06-10 21:09:21 +00:00
Prefill add-on
e65bba0996 Translated using Weblate (Danish)
Currently translated at 17.1% (11 of 64 strings)

Translated using Weblate (Arabic)

Currently translated at 100.0% (64 of 64 strings)

Translated using Weblate (Urdu)

Currently translated at 93.7% (60 of 64 strings)

Translated using Weblate (Russian)

Currently translated at 93.7% (60 of 64 strings)

Translated using Weblate (Portuguese)

Currently translated at 93.7% (60 of 64 strings)

Translated using Weblate (Romanian)

Currently translated at 79.6% (51 of 64 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (64 of 64 strings)

Translated using Weblate (Italian)

Currently translated at 76.5% (49 of 64 strings)

Translated using Weblate (Czech)

Currently translated at 93.7% (60 of 64 strings)

Translated using Weblate (Georgian)

Currently translated at 100.0% (64 of 64 strings)

Translated using Weblate (Estonian)

Currently translated at 76.5% (49 of 64 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (64 of 64 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (64 of 64 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (64 of 64 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 93.7% (60 of 64 strings)

Translated using Weblate (Occitan)

Currently translated at 73.4% (47 of 64 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (64 of 64 strings)

Translated using Weblate (Croatian)

Currently translated at 100.0% (64 of 64 strings)

Translated using Weblate (French)

Currently translated at 100.0% (64 of 64 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (64 of 64 strings)

Translated using Weblate (German)

Currently translated at 100.0% (64 of 64 strings)

Co-authored-by: Prefill add-on <noreply-addon-prefill@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ar/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/cs/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/da/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/de/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/es/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/et/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/fr/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/hr/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/it/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ka/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/nl/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/oc/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/pl/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/pt/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ro/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ru/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/sv/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/tr/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/uk/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ur/
Translation: os-installer/os-installer
2024-06-09 22:33:37 +02:00
Hosted Weblate
8525c65043 Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/
Translation: os-installer/os-installer
2024-06-09 22:33:27 +02:00
Peter Eisenmann
d5b3fc4a23 window: don't list push-only pages as available 2024-06-09 22:32:45 +02:00
Peter Eisenmann
840fe0f125 display titles via labeled title widget 2024-06-09 22:30:34 +02:00
Peter Eisenmann
3ba2862dd8 rework notification showing on success/failure 2024-06-09 22:30:34 +02:00
Peter Eisenmann
befeaa52c8 window: special case one-way pages 2024-06-09 22:30:34 +02:00
Peter Eisenmann
c00b7c1785 installation-scripting: rework step tracking 2024-06-09 22:30:34 +02:00
Peter Eisenmann
3654750d81 move most shortcut handling to window
It's where the shortcuts are activated from and on.
2024-06-09 22:30:34 +02:00
Peter Eisenmann
c292033bbe add LabeledImage widget
Factored out from window's image stack in preparation to also handle
titles with it.
2024-06-09 22:30:34 +02:00
Peter Eisenmann
72c8a87aff page-wrapper: inherit from AdwBin 2024-06-09 22:30:34 +02:00
Peter Eisenmann
085e838fe8 summary: simplify autologin handling 2024-06-09 22:30:34 +02:00
Peter Eisenmann
be977d343e window: factor out common page loading
This makes transitioning past pages butter-smooth.
2024-06-09 22:30:34 +02:00
Peter Eisenmann
cbf11b1ad8 window: rely on stack for current page 2024-06-09 22:30:34 +02:00
Peter Eisenmann
27bb7d0b60 window: use default button update on load by name 2024-06-09 22:30:34 +02:00
Peter Eisenmann
41c9f32724 window: rework poppable pages tracking 2024-06-09 22:30:34 +02:00
Peter Eisenmann
b52005acef window: remove navigation 2024-06-09 22:30:34 +02:00
Peter Eisenmann
653d01e353 window: fix popping pages 2024-06-09 22:30:34 +02:00
Peter Eisenmann
291af92f3d window: get next page name without number 2024-06-09 22:30:34 +02:00
Peter Eisenmann
be88eced39 window: initialize first page directly
No need to advance from main.
2024-06-09 22:30:34 +02:00
Peter Eisenmann
877b695d6a window: split type from page name list 2024-06-09 22:30:34 +02:00
Peter Eisenmann
e6251d092a window: check page existance by name 2024-06-09 22:30:34 +02:00
Peter Eisenmann
976d56fe3c window: check for first/last page via page name 2024-06-09 22:30:34 +02:00
Peter Eisenmann
40127d314b window: use page wrapper instead of page child 2024-06-09 22:30:34 +02:00
Peter Eisenmann
fdabd8c54f page: remove unused id() 2024-06-09 22:30:34 +02:00
Peter Eisenmann
6bdfcc1fc9 internet: fix passing page on navigation 2024-06-09 22:30:34 +02:00
Peter Eisenmann
8f9f1899e9 window: simplify loading of next/previous page
Use a bool to indicate which direction to navigate to.
2024-06-09 22:30:34 +02:00
Peter Eisenmann
ed2ac1d5f7 global_state: remove reload function
Only user can call it upon itself.
2024-06-09 22:30:34 +02:00
Peter Eisenmann
e1469928d8 window: removal cleanup advance() parameter
It's the same as allow_return=False by now.
2024-06-09 22:30:34 +02:00
Peter Eisenmann
b867e1fba8 window: fix page removal 2024-06-09 22:30:34 +02:00
Peter Eisenmann
8daea935b4 page: remove load_once and update others 2024-06-09 22:30:34 +02:00
Peter Eisenmann
f0b803a991 partition: simplify load() 2024-06-09 22:30:34 +02:00
Peter Eisenmann
5665793193 main: introduce test mode 2024-06-09 22:30:34 +02:00
Peter Eisenmann
b75e0c7998 partition: simplify existance check logic 2024-06-04 22:06:21 +02:00
Peter Eisenmann
917a397a41 keyboard: move setup to constructor 2024-06-04 21:34:01 +02:00
Peter Eisenmann
2011cf496c done: move setup to constructor 2024-06-04 21:29:03 +02:00
Peter Eisenmann
7cab5a7816 disk: move setup to constructor 2024-06-04 21:28:52 +02:00
Peter Eisenmann
8e910a438f disk-provider: fix demo mode check 2024-06-04 21:26:30 +02:00
Peter Eisenmann
99c44038d6 welcome: move setup to constructor 2024-06-04 20:50:37 +02:00
Peter Eisenmann
d21a21b9da keyboard: move setup to constructor 2024-06-04 20:48:00 +02:00
Peter Eisenmann
2105166728 choices: move setup to constructor 2024-06-04 20:47:07 +02:00
Peter Eisenmann
51407d363d failed: move setup to constructor 2024-06-04 20:46:48 +02:00
Peter Eisenmann
87f1adc8ce language: move setup to constructor 2024-06-04 20:46:22 +02:00
Peter Eisenmann
945b2cd1f0 internet-provider: fix callback
Forgot to actually start the callback thread...
2024-06-04 20:41:52 +02:00
Peter Eisenmann
1673f69130 disk-provider: fix dummy provider logic 2024-06-04 20:40:05 +02:00
Peter Eisenmann
45bc0318f6 internet-provider: always call callback async
Calling it synchronous can otherwise cause a deadlock.
2024-06-04 17:30:28 +02:00
Peter Eisenmann
b75f6f749e config-to-pot: Use separate project ID 2024-05-25 01:32:38 +02:00
Peter Eisenmann
02574c062f init: simplify translation setup 2024-05-25 01:32:38 +02:00
Peter Eisenmann
7803be70d1 internet: move setup to constructor 2024-05-25 01:32:38 +02:00
Peter Eisenmann
febc279960 internet: inline function and instance variables 2024-05-25 01:32:38 +02:00
Peter Eisenmann
c14e2b39df internet: simplify callback logic 2024-05-25 01:32:38 +02:00
Peter Eisenmann
3b9a680a58 window: intialize pages on first usage
Instead of initializing all pages at once, create pages when first
navigated to. This should give a minor performance improvement and is a
preparational step for using AdwNavigationView.
2024-05-25 01:32:38 +02:00
Peter Eisenmann
55e53b84e0 window: make available pages ordered 2024-05-25 01:32:38 +02:00
Peter Eisenmann
8931a74f27 window: improve retranslate page function name 2024-05-25 01:32:38 +02:00
Peter Eisenmann
189ed15497 window: simplify page removal iteration 2024-05-25 01:32:38 +02:00
Peter Eisenmann
ee6384277f window: fix previous pages comment 2024-05-25 01:32:38 +02:00
Peter Eisenmann
a178851ef2 scripting: remove demo mode special case 2024-05-25 01:32:38 +02:00
Dan
f403b0c89d Translated using Weblate (Ukrainian)
Currently translated at 100.0% (64 of 64 strings)

Co-authored-by: Dan <jonweblin2205@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/uk/
Translation: os-installer/os-installer
2024-04-24 21:07:10 +02:00
First Last
cc2ccaeedc Translated using Weblate (Arabic)
Currently translated at 100.0% (64 of 64 strings)

Co-authored-by: First Last <mohamedayman.fcis@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ar/
Translation: os-installer/os-installer
2024-04-21 15:07:17 +02:00
Peter Eisenmann
17428a5699 done: update icon 2024-04-10 09:36:45 +02:00
Peter Eisenmann
7e54ce88db done: add installation output toggle 2024-04-10 09:28:27 +02:00
Peter Eisenmann
4cb1729874 confirm-quit: rename file 2024-04-09 22:50:02 +02:00
Peter Eisenmann
b8bd14bb4e confirm-quit: port to AdwAlertDialog 2024-04-09 22:47:11 +02:00
Peter Eisenmann
1115e80dfb about-dialog: use AdwDialog 2024-04-09 22:46:34 +02:00
Peter Eisenmann
45bdfa5e28 partition: fix handling no partitions 2024-04-09 22:30:13 +02:00
Peter Eisenmann
b457c2fde4 disk-provider: split out DummyDiskProvider 2024-04-09 22:26:19 +02:00
Peter Eisenmann
12aa2b42db update Builder dependcies 2024-04-09 20:31:14 +02:00
Peter Eisenmann
f055a21399 gitignore: hidden files and folders 2024-04-09 20:28:36 +02:00
Peter Eisenmann
534ac56e7a move build helper files 2024-04-09 20:28:09 +02:00
Peter Eisenmann
110e9b2ed2 choices: minor variable shortening 2024-03-24 23:19:57 +01:00
Peter Eisenmann
2ca8499051 failed: drop load_next 2024-03-24 23:19:57 +01:00
Peter Eisenmann
6ace1ee483 window: make filter pages pushable only 2024-03-24 23:19:57 +01:00
Peter Eisenmann
1823256246 install: remove unused page name 2024-03-24 23:19:57 +01:00
Peter Eisenmann
e56550e370 page: remove navigate/forward 2024-03-24 23:19:57 +01:00
Peter Eisenmann
236d0012b5 keyboard: split out subpages 2024-03-24 23:19:57 +01:00
Peter Eisenmann
b815a6724f config: improve keyboard_layout_code name 2024-03-24 23:19:57 +01:00
Peter Eisenmann
d5e678277f window: allow multiple previous pages 2024-03-24 23:19:57 +01:00
Peter Eisenmann
33f8e38ca9 window: use early return in advance() 2024-03-24 23:19:57 +01:00
Peter Eisenmann
76e6d224b7 rename keyboard file 2024-03-24 23:19:57 +01:00
Mikachu
8fae6cb752 Translated using Weblate (Dutch)
Currently translated at 100.0% (64 of 64 strings)

Co-authored-by: Mikachu <micah.sh@proton.me>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/nl/
Translation: os-installer/os-installer
2024-03-17 19:01:54 +01:00
Peter Eisenmann
0961f5b273 confirm-quit-popup: adjust translator comments 2024-03-13 11:29:13 +01:00
Peter Eisenmann
89b583a59d disk: split out partition selection page
In preparation for AdwNavigationView.
2024-03-13 11:29:13 +01:00
Peter Eisenmann
de05720e3a window: fix comment typo 2024-03-13 11:29:13 +01:00
Peter Eisenmann
05ea4b6340 disk: type DeviceInfo parameter 2024-03-13 11:29:13 +01:00
Peter Eisenmann
2cf0856324 window: add "load_prev" response 2024-03-13 11:29:13 +01:00
Peter Eisenmann
68fb8ce590 window: allow page responses on reload 2024-03-13 11:29:13 +01:00
Peter Eisenmann
439c478e35 disk-provider: add disk existance method 2024-03-13 11:29:13 +01:00
Peter Eisenmann
e5edbfc28f disk-provider: randomly determine demo mode disks 2024-03-13 11:29:13 +01:00
Peter Eisenmann
18a6deac77 config: add preprocessing step 2024-03-13 11:29:13 +01:00
Peter Eisenmann
eeef3e6c83 config: use more generic feature example 2024-03-13 11:29:13 +01:00
Peter Eisenmann
1a520e8ecd post-release version bump 2024-03-13 11:29:13 +01:00
xiorcale
312261f437 Translated using Weblate (French)
Currently translated at 100.0% (64 of 64 strings)

Co-authored-by: xiorcale <quentin.vaucher@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/fr/
Translation: os-installer/os-installer
2024-03-12 15:01:46 +01:00
Peter Eisenmann
4619cf12c3 build: adjust version to minor release 2024-03-10 22:32:53 +01:00
Peter Eisenmann
6df563eb27 Translated using Weblate (German)
Currently translated at 100.0% (64 of 64 strings)

Co-authored-by: Peter Eisenmann <p3732@disroot.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/de/
Translation: os-installer/os-installer
2024-03-10 15:01:42 +01:00
Peter Eisenmann
153cf6883c update translators 2024-03-09 14:01:59 +01:00
Temuri Doghonadze
ca7449e1b5 Translated using Weblate (Georgian)
Currently translated at 100.0% (64 of 64 strings)

Co-authored-by: Temuri Doghonadze <temuri.doghonadze@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ka/
Translation: os-installer/os-installer
2024-03-08 09:01:55 +01:00
Oğuz Ersen
b8562cbefa Translated using Weblate (Turkish)
Currently translated at 100.0% (64 of 64 strings)

Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/tr/
Translation: os-installer/os-installer
2024-03-06 19:01:52 +01:00
Matthaiks
f18692f8ef Translated using Weblate (Polish)
Currently translated at 100.0% (64 of 64 strings)

Co-authored-by: Matthaiks <kitynska@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/pl/
Translation: os-installer/os-installer
2024-03-04 00:01:51 +01:00
bittin1ddc447d824349b2
b257d8bd13 Translated using Weblate (Swedish)
Currently translated at 100.0% (64 of 64 strings)

Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/sv/
Translation: os-installer/os-installer
2024-03-04 00:01:51 +01:00
Milo Ivir
262cc17dd9 Translated using Weblate (Croatian)
Currently translated at 100.0% (64 of 64 strings)

Co-authored-by: Milo Ivir <mail@milotype.de>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/hr/
Translation: os-installer/os-installer
2024-03-04 00:01:51 +01:00
gallegonovato
9bea9b5c6a Translated using Weblate (Spanish)
Currently translated at 100.0% (64 of 64 strings)

Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/es/
Translation: os-installer/os-installer
2024-03-04 00:01:51 +01:00
Prefill add-on
e5b2ca3204 Translated using Weblate (Danish)
Currently translated at 18.0% (11 of 61 strings)

Translated using Weblate (Arabic)

Currently translated at 98.3% (60 of 61 strings)

Translated using Weblate (Urdu)

Currently translated at 100.0% (61 of 61 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (61 of 61 strings)

Translated using Weblate (Portuguese)

Currently translated at 100.0% (61 of 61 strings)

Translated using Weblate (Romanian)

Currently translated at 85.2% (52 of 61 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (61 of 61 strings)

Translated using Weblate (Italian)

Currently translated at 81.9% (50 of 61 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (61 of 61 strings)

Translated using Weblate (Georgian)

Currently translated at 100.0% (61 of 61 strings)

Translated using Weblate (Estonian)

Currently translated at 81.9% (50 of 61 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (61 of 61 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (61 of 61 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (61 of 61 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (61 of 61 strings)

Translated using Weblate (Occitan)

Currently translated at 78.6% (48 of 61 strings)

Translated using Weblate (Dutch)

Currently translated at 81.9% (50 of 61 strings)

Translated using Weblate (Croatian)

Currently translated at 100.0% (61 of 61 strings)

Translated using Weblate (French)

Currently translated at 81.9% (50 of 61 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (61 of 61 strings)

Translated using Weblate (German)

Currently translated at 100.0% (61 of 61 strings)

Co-authored-by: Prefill add-on <noreply-addon-prefill@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ar/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/cs/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/da/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/de/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/es/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/et/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/fr/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/hr/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/it/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ka/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/nl/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/oc/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/pl/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/pt/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ro/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ru/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/sv/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/tr/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/uk/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ur/
Translation: os-installer/os-installer
2024-03-02 22:46:56 +01:00
Hosted Weblate
ce2af1a2ea Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/
Translation: os-installer/os-installer
2024-03-02 22:46:56 +01:00
Peter Eisenmann
69043e7154 update translation files 2024-03-02 22:46:39 +01:00
Peter Eisenmann
41031eeae7 disk-provider: make preloadable 2024-02-29 02:26:24 +01:00
Peter Eisenmann
7f760369ba preloadable: release lock to not deadlock on error 2024-02-29 02:24:14 +01:00
Peter Eisenmann
43042ba6f6 preloadable: print class name on error 2024-02-29 02:23:29 +01:00
Peter Eisenmann
535104820f general: use __qualname__ for __gtype_name__ 2024-02-29 01:43:23 +01:00
Peter Eisenmann
d1cb653dad disk: present required disk space if too little
Fixes #43
2024-02-29 01:23:51 +01:00
Peter Eisenmann
b343bef8c3 disk: use GB not GiB 2024-02-29 01:21:07 +01:00
Peter Eisenmann
7d891558f8 disk-provider: make disk_size_to_str public 2024-02-29 01:20:41 +01:00
bittin1ddc447d824349b2
7b2806768f Translated using Weblate (Swedish)
Currently translated at 100.0% (61 of 61 strings)

Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/sv/
Translation: os-installer/os-installer
2024-02-05 05:02:22 +01:00
Peter Eisenmann
51c746c034 choices-provider: turn into preloadable provider 2023-10-18 00:48:06 +02:00
Peter Eisenmann
dad3ffb7fc add proper pre-loading mechanism
Port language provider to new mechanism.
2023-10-18 00:47:19 +02:00
Peter Eisenmann
4e8e692503 language-provider: sort unavailable locales 2023-10-17 21:39:54 +02:00
Peter Eisenmann
7d3a6a8907 language-provider: drop redundant methods 2023-10-12 00:41:38 +02:00
Peter Eisenmann
f9a201f7dc encrypt: use AdwSwitchRow 2023-09-27 19:59:22 +02:00
Peter Eisenmann
1e8dfda9a3 user: use AdwSwitchRow 2023-09-27 19:59:05 +02:00
Peter Eisenmann
9fd06bb774 window: fix confirmation popup 2023-09-27 19:44:40 +02:00
Peter Eisenmann
9c263e3d77 sort duplicate language codes 2023-09-27 09:06:06 +02:00
Peter Eisenmann
e0c3d02b70 flatten language code script 2023-09-27 09:06:06 +02:00
Peter Eisenmann
c8311bad66 summary: use nicer looking go-next icon 2023-09-27 07:02:58 +00:00
Peter Eisenmann
df59704555 summary: use property row style (for remaining) 2023-09-27 07:02:58 +00:00
Peter Eisenmann
7869327c6f summary: (partially) use property row style 2023-09-27 07:02:58 +00:00
Peter Eisenmann
49c95a4e07 keyboard: use property row style 2023-09-27 07:02:58 +00:00
Peter Eisenmann
fa3e17cc99 pass keyboard layout to scripts 2023-08-31 22:00:24 +02:00
Silvolde
8ad79595cb Translated using Weblate (Danish)
Currently translated at 18.0% (11 of 61 strings)

Co-authored-by: Silvolde <joshualankamp09@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/da/
Translation: os-installer/os-installer
2023-08-31 02:03:39 +02:00
Peter Eisenmann
b13c99fd7c language: always show all languages 2023-08-28 02:48:25 +02:00
Peter Eisenmann
b4fcf933b8 adjust window sizees 2023-08-28 02:43:45 +02:00
Peter Eisenmann
f676d2c7b3 disk: make reload button non-suggestive 2023-08-28 02:25:18 +02:00
Peter Eisenmann
accce3cd1e style: fix marin comment 2023-08-28 02:24:21 +02:00
Peter Eisenmann
052d5031e1 build: bump version number
For eventually coming next release.
2023-08-28 00:47:14 +02:00
Peter Eisenmann
0e44f524f4 use AdwMessageDialog for confirm popup 2023-08-28 00:42:43 +02:00
Peter Eisenmann
9fc37b7ad4 choices: use model from template 2023-08-27 09:31:44 +02:00
Peter Eisenmann
98a1e808f0 fix distro name handling of Arabic translation 2023-08-27 09:30:58 +02:00
Peter Eisenmann
f24a31ba0b combine Format- and TimezonePage into FilterPage 2023-08-26 23:12:33 +02:00
Peter Eisenmann
f71c4e9adc add ChoicesPage to potfiles 2023-08-26 21:52:26 +02:00
Peter Eisenmann
ea4084c816 disk: show big reload button when no disks found 2023-08-26 21:45:49 +02:00
Peter Eisenmann
ae5f1e21a9 add script to list disks as seen by os-installer 2023-08-26 20:22:58 +02:00
Peter Eisenmann
66ac685dfc config example: add feature options example 2023-08-26 20:21:37 +02:00
Peter Eisenmann
4bf90f87b6 language provider: nicer unavailable locales print 2023-08-26 19:30:28 +02:00
Peter Eisenmann
d2e3acc19b config: fix chosen features variable 2023-08-26 19:29:53 +02:00
Peter Eisenmann
393ada1a4e feature: turn into ChoicesPage 2023-08-26 19:29:06 +02:00
Peter Eisenmann
7aa745b33c software: turn into generic ChoicesPage 2023-08-26 19:29:06 +02:00
Peter Eisenmann
5f38bd4979 multi-row: fix options model
Previously it was a static property, now it is bound per instance from
the UI template.
2023-08-26 19:29:06 +02:00
Peter Eisenmann
926ced2bc8 choices provider: increase getter readability 2023-08-26 19:29:06 +02:00
Peter Eisenmann
e2a2198fee choices provider: fix multi-row names 2023-08-26 19:29:06 +02:00
Anonymous
5be818d6ac Translated using Weblate (Danish)
Currently translated at 100.0% (0 of 0 strings)

Co-authored-by: Anonymous <noreply@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/da/
Translation: os-installer/os-installer
2023-08-26 16:04:45 +02:00
Silvolde
94b952e49a Added translation using Weblate (Danish)
Co-authored-by: Silvolde <joshualankamp09@gmail.com>
2023-08-26 16:04:45 +02:00
Anonymous
b90ce966f9 Translated using Weblate (Arabic)
Currently translated at 98.3% (60 of 61 strings)

Co-authored-by: Anonymous <noreply@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ar/
Translation: os-installer/os-installer
2023-08-26 11:07:53 +02:00
Contract
5f2d67fdf4 Add Arabic Translations 2023-08-26 09:07:42 +00:00
Peter Eisenmann
bd2a198c94 config: make option names optional 2023-08-25 22:44:01 +02:00
Peter Eisenmann
92ff4899c5 choices-provider: support legacy syntax 2023-08-25 10:23:25 +02:00
Peter Eisenmann
cd2e0fe56e unify feature and software into choices provider
Also adjust to new config syntax.
2023-08-21 21:40:20 +02:00
Peter Eisenmann
33c77ceeb7 config: document options 2023-08-21 15:47:50 +02:00
Peter Eisenmann
392076d770 config: move translations into .po files
Instead of having custom syntax, use standardized gettext .po files to
allow translating config strings.

* Move translations of example config into .pot/.po files
* Change order of example config choice parameters
* Minor string modifications in example config
2023-08-21 15:47:45 +02:00
Peter Eisenmann
773b9901d6 build: bump runtime version 2023-08-21 15:47:25 +02:00
Peter Eisenmann
4083ea0faa fix standalone search focus 2023-08-17 15:01:55 +02:00
Peter Eisenmann
4573701590 general: fix blueprint warnings 2023-08-17 11:25:39 +02:00
Peter Eisenmann
5816b0ab67 selection row: fix switch states 2023-08-17 04:25:30 +02:00
Peter Eisenmann
6745e789f4 add multiple-choice options for software 2023-08-17 04:24:26 +02:00
Peter Eisenmann
9cb1732c4c selection row: change parameter order
To parallel that of upcoming MultiSelectionRow better.
2023-08-17 04:08:11 +02:00
Peter Eisenmann
580d97f9e9 summary row: accept icon name 2023-08-17 04:04:49 +02:00
Peter Eisenmann
a64833be44 summary row: use more generic name 2023-08-17 03:58:36 +02:00
Peter Eisenmann
11fa5f4cec disk-provider: use early returns to flatten code 2023-08-17 00:29:42 +02:00
Peter Eisenmann
67e9814352 readme: modernize meson instruction 2023-08-17 00:21:56 +02:00
Peter Eisenmann
03f3eaadf0 confirm: use standardized translator comment 2023-08-16 23:35:11 +02:00
Peter Eisenmann
d4686c1829 update translator credits 2023-06-14 02:00:55 +02:00
Dennis ten Hoove
bf6ebe820b Arkane config moved to own repo 2023-05-28 22:21:01 +00:00
Intekhab Rizvi
40e7592bca Translated using Weblate (Urdu)
Currently translated at 100.0% (61 of 61 strings)

Co-authored-by: Intekhab Rizvi <me@intekhab.in>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ur/
Translation: os-installer/os-installer
2023-05-01 09:48:18 +02:00
Anonymous
d67fea3637 Translated using Weblate (Urdu)
Currently translated at 100.0% (0 of 0 strings)

Co-authored-by: Anonymous <noreply@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ur/
Translation: os-installer/os-installer
2023-04-30 08:24:21 +02:00
Intekhab Rizvi
e0e889d216 Added translation using Weblate (Urdu)
Co-authored-by: Intekhab Rizvi <me@intekhab.in>
2023-04-30 08:24:21 +02:00
Temuri Doghonadze
0a1ca8f3c6 Translated using Weblate (Georgian)
Currently translated at 100.0% (61 of 61 strings)

Co-authored-by: Temuri Doghonadze <temuri.doghonadze@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ka/
Translation: os-installer/os-installer
2023-04-12 06:48:22 +02:00
Artem Vorotnikov
d81400ffb3 Translated using Weblate (Russian)
Currently translated at 100.0% (61 of 61 strings)

Co-authored-by: Artem Vorotnikov <artem@vorotnikov.me>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ru/
Translation: os-installer/os-installer
2023-04-02 05:50:53 +02:00
Anonymous
9ca53ed6f6 Translated using Weblate (Russian)
Currently translated at 100.0% (0 of 0 strings)

Co-authored-by: Anonymous <noreply@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ru/
Translation: os-installer/os-installer
2023-04-01 05:12:28 +02:00
Artem Vorotnikov
e9ad82c8f9 Added translation using Weblate (Russian)
Co-authored-by: Artem Vorotnikov <artem@vorotnikov.me>
2023-04-01 05:12:28 +02:00
Dan
0f21c8c773 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (61 of 61 strings)

Co-authored-by: Dan <denqwerta@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/uk/
Translation: os-installer/os-installer
2023-03-22 01:49:27 +01:00
ssantos
8ad0c87d63 Translated using Weblate (Portuguese)
Currently translated at 100.0% (61 of 61 strings)

Co-authored-by: ssantos <ssantos@web.de>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/pt/
Translation: os-installer/os-installer
2023-02-19 19:47:13 +01:00
Anonymous
5fcae42804 Translated using Weblate (Portuguese)
Currently translated at 100.0% (0 of 0 strings)

Co-authored-by: Anonymous <noreply@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/pt/
Translation: os-installer/os-installer
2023-02-19 19:27:28 +01:00
ssantos
e99d4f2254 Added translation using Weblate (Portuguese)
Co-authored-by: ssantos <ssantos@web.de>
2023-02-19 19:27:27 +01:00
Vojtěch Perník
5c04115de8 Translated using Weblate (Czech)
Currently translated at 100.0% (61 of 61 strings)

Co-authored-by: Vojtěch Perník <translations@pervoj.cz>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/cs/
Translation: os-installer/os-installer
2023-02-18 12:35:47 +01:00
Alex S
5cfa113f32 Translated using Weblate (Romanian)
Currently translated at 85.2% (52 of 61 strings)

Co-authored-by: Alex S <alex.inventeaza@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ro/
Translation: os-installer/os-installer
2023-02-10 13:36:08 +01:00
Rafael Fontenelle
495b3a1817 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (61 of 61 strings)

Co-authored-by: Rafael Fontenelle <rafaelff@gnome.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/pt_BR/
Translation: os-installer/os-installer
2023-02-10 13:36:08 +01:00
Anonymous
378b8a15ff Translated using Weblate (Romanian)
Currently translated at 100.0% (0 of 0 strings)

Co-authored-by: Anonymous <noreply@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ro/
Translation: os-installer/os-installer
2023-02-09 11:41:27 +01:00
Alex S
dc78fc5560 Added translation using Weblate (Romanian)
Co-authored-by: Alex S <alex.inventeaza@gmail.com>
2023-02-09 11:41:26 +01:00
two
42b0e2c37b Translated using Weblate (Ukrainian)
Currently translated at 85.2% (52 of 61 strings)

Co-authored-by: two <two@envs.net>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/uk/
Translation: os-installer/os-installer
2023-01-02 21:47:48 +01:00
Peter Eisenmann
eda84add79 add translation comments for search placeholders
Fixes #38
2023-01-01 22:56:06 +01:00
Peter Eisenmann
5e4e8bdb72 summary: scroll button with list 2022-12-04 11:49:51 +01:00
Peter Eisenmann
77dfed4087 disk prov: fix dummy disk parameter order 2022-12-04 11:37:43 +01:00
Peter Eisenmann
966a4f922c window: fix deleting pages 2022-12-04 11:35:25 +01:00
Veysel Erden
158b87d93a Translated using Weblate (Turkish)
Currently translated at 100.0% (61 of 61 strings)

Co-authored-by: Veysel Erden <veyselerden@outlook.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/tr/
Translation: os-installer/os-installer
2022-11-23 08:48:20 +01:00
Anonymous
4b2570fb29 Translated using Weblate (Turkish)
Currently translated at 100.0% (0 of 0 strings)

Co-authored-by: Anonymous <noreply@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/tr/
Translation: os-installer/os-installer
2022-11-22 07:46:27 +01:00
Veysel Erden
4b6ce95d47 Added translation using Weblate (Turkish)
Co-authored-by: Veysel Erden <veyselerden@outlook.com>
2022-11-22 07:46:27 +01:00
gallegonovato
756339fdae Translated using Weblate (Spanish)
Currently translated at 100.0% (61 of 61 strings)

Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/es/
Translation: os-installer/os-installer
2022-11-20 16:47:59 +01:00
Peter Eisenmann
3e99357ea5 disk provider: fix EFI partition detection 2022-11-17 16:10:41 +01:00
Luna Jernberg
ad0bb869ee Translated using Weblate (Swedish)
Currently translated at 100.0% (61 of 61 strings)

Co-authored-by: Luna Jernberg <droidbittin@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/sv/
Translation: os-installer/os-installer
2022-11-15 13:47:46 +01:00
Peter Eisenmann
e379012461 language: fix default list bottom spacing 2022-11-13 16:10:38 +01:00
Matthaiks
75b053d303 Translated using Weblate (Polish)
Currently translated at 100.0% (61 of 61 strings)

Co-authored-by: Matthaiks <kitynska@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/pl/
Translation: os-installer/os-installer
2022-11-13 15:47:09 +01:00
Rafael Fontenelle
f4d1605dda Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (61 of 61 strings)

Co-authored-by: Rafael Fontenelle <rafaelff@gnome.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/pt_BR/
Translation: os-installer/os-installer
2022-11-13 15:47:09 +01:00
Milo Ivir
bcbf0974e6 Translated using Weblate (Croatian)
Currently translated at 100.0% (61 of 61 strings)

Co-authored-by: Milo Ivir <mail@milotype.de>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/hr/
Translation: os-installer/os-installer
2022-11-13 15:47:08 +01:00
Peter Eisenmann
30a855e0d0 update translators 2022-11-11 03:47:10 +01:00
Hosted Weblate
b6eeab251d Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/
Translation: os-installer/os-installer
2022-11-11 03:12:02 +01:00
Peter Eisenmann
2b94f2a75d update German translation 2022-11-11 03:10:40 +01:00
Peter Eisenmann
317f2f2208 update pot 2022-11-11 03:09:55 +01:00
Peter Eisenmann
91d099c1a3 summary: typo 2022-11-11 03:08:17 +01:00
Peter Eisenmann
432939741e Readme: add examples 2022-11-11 03:05:22 +01:00
Peter Eisenmann
9dc9b8e529 Readme: rework distributions section 2022-11-11 03:05:07 +01:00
Peter Eisenmann
2db28208ac add feature page
Allow for additional settings that are not just software packages.

Fixes #13
2022-11-11 02:28:25 +01:00
Peter Eisenmann
5793ac3038 selection row: provide flip_switch() 2022-11-11 02:14:37 +01:00
Peter Eisenmann
88a6b15b4b build: drop duplicate option 2022-11-11 02:14:37 +01:00
Peter Eisenmann
02a0c06d04 example: add nautilus example 2022-11-11 02:14:37 +01:00
Peter Eisenmann
f95951da5f example: update japanese input example 2022-11-11 02:14:37 +01:00
Peter Eisenmann
dc3d9ce779 config: use single quotations (for style) 2022-11-11 01:15:46 +01:00
Luna Jernberg
56a736e4b9 Translated using Weblate (Swedish)
Currently translated at 100.0% (60 of 60 strings)

Co-authored-by: Luna Jernberg <droidbittin@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/sv/
Translation: os-installer/os-installer
2022-11-10 13:49:23 +01:00
Matthaiks
a7a7b1a443 Translated using Weblate (Polish)
Currently translated at 100.0% (60 of 60 strings)

Co-authored-by: Matthaiks <kitynska@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/pl/
Translation: os-installer/os-installer
2022-11-08 01:13:20 +01:00
Milo Ivir
4b670576ea Translated using Weblate (Croatian)
Currently translated at 100.0% (60 of 60 strings)

Co-authored-by: Milo Ivir <mail@milotype.de>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/hr/
Translation: os-installer/os-installer
2022-11-08 01:13:20 +01:00
Peter Eisenmann
bd2a5d954a fix environment variable quotations
Fixes #29
2022-11-03 18:39:45 +01:00
Jürgen Benvenuti
cabb92316c Update German translation 2022-11-03 17:28:44 +00:00
Peter Eisenmann
787cd6d640 install: also advance without configure script 2022-11-02 01:57:32 +01:00
Peter Eisenmann
2f192d8e86 add config to skip user and locale pages 2022-11-02 01:55:29 +01:00
Peter Eisenmann
bae8a8e783 config: seperate method for optional config values 2022-11-02 01:54:18 +01:00
Peter Eisenmann
5e5108675d config: sort and comment default config 2022-11-02 01:53:13 +01:00
Peter Eisenmann
e2cfe4229a config: simplify variable existence check 2022-11-02 00:57:42 +01:00
Hosted Weblate
a7237282db Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/
Translation: os-installer/os-installer
2022-10-29 06:00:25 +02:00
Anonymous
646f25d109 Translated using Weblate (Italian)
Currently translated at 83.3% (50 of 60 strings)

Translated using Weblate (Czech)

Currently translated at 3.3% (2 of 60 strings)

Translated using Weblate (Georgian)

Currently translated at 83.3% (50 of 60 strings)

Translated using Weblate (Estonian)

Currently translated at 83.3% (50 of 60 strings)

Translated using Weblate (Polish)

Currently translated at 83.3% (50 of 60 strings)

Translated using Weblate (Ukrainian)

Currently translated at 80.0% (48 of 60 strings)

Translated using Weblate (Swedish)

Currently translated at 83.3% (50 of 60 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 83.3% (50 of 60 strings)

Translated using Weblate (Occitan)

Currently translated at 80.0% (48 of 60 strings)

Translated using Weblate (Dutch)

Currently translated at 83.3% (50 of 60 strings)

Translated using Weblate (Croatian)

Currently translated at 83.3% (50 of 60 strings)

Translated using Weblate (French)

Currently translated at 83.3% (50 of 60 strings)

Translated using Weblate (Spanish)

Currently translated at 83.3% (50 of 60 strings)

Translated using Weblate (German)

Currently translated at 83.3% (50 of 60 strings)

Co-authored-by: Anonymous <noreply@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/cs/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/de/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/es/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/et/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/fr/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/hr/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/it/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ka/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/nl/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/oc/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/pl/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/sv/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/uk/
Translation: os-installer/os-installer
2022-10-29 06:00:21 +02:00
Hosted Weblate
092e87e23f Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/
Translation: os-installer/os-installer
2022-10-29 06:00:21 +02:00
Gerben Droogers
3a33c69bbf Translated using Weblate (Dutch)
Currently translated at 100.0% (55 of 55 strings)

Co-authored-by: Gerben Droogers <gerben@droogers.eu>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/nl/
Translation: os-installer/os-installer
2022-10-29 06:00:21 +02:00
Peter Eisenmann
5e51b481df config options for external programs 2022-10-29 03:22:23 +02:00
Peter Eisenmann
201cece022 welcome: actual do set logo and text in config 2022-10-29 03:21:19 +02:00
Peter Eisenmann
241d5a3ad9 only show confirm is install.sh exists 2022-10-29 02:51:43 +02:00
Peter Eisenmann
1452f8091b summary: hide software row if not available 2022-10-29 02:42:20 +02:00
Peter Eisenmann
e09db2109e install scripting: accept non-existent scripts 2022-10-29 02:24:32 +02:00
Peter Eisenmann
a3966b0d46 config: fix default welcome page values 2022-10-29 02:22:23 +02:00
Peter Eisenmann
684dfc428d welcome: fix config logo check 2022-10-29 02:21:07 +02:00
Peter Eisenmann
72e37ead6f installation scripting: simplify advance calls 2022-10-29 02:10:53 +02:00
Peter Eisenmann
ba238dcc46 config: clarify comment 2022-10-29 01:51:55 +02:00
Peter Eisenmann
5588d6b4f7 navigate to fail page by name 2022-10-29 01:51:40 +02:00
Peter Eisenmann
ef5b1660e3 allow configuring failure help page url 2022-10-29 01:48:39 +02:00
Peter Eisenmann
c0c779498b put meaningful error into notification 2022-10-29 00:45:04 +02:00
Peter Eisenmann
6ade26c70d summary: add translation note 2022-10-28 23:28:52 +02:00
Peter Eisenmann
31687fd6bc generate new translation file 2022-10-28 19:13:22 +02:00
Peter Eisenmann
7a6dd320f4 tiny naming improvements 2022-10-28 19:11:57 +02:00
Jürgen Benvenuti
bec8d7ac34 Improve German translation of config.yaml 2022-10-28 17:01:10 +00:00
Peter Eisenmann
d52ec145e8 rename locale provider -> format provider 2022-10-28 14:15:44 +02:00
Peter Eisenmann
19e073fcb8 timezone: rework to allow searching 2022-10-28 14:13:19 +02:00
Peter Eisenmann
8946ed9f15 add translator comment for page titles 2022-10-28 01:33:42 +02:00
Dennis ten Hoove
c3ed8fe525 correct syntax error in example config
A minor syntax error in the example config prevented it from functioning as-is.
2022-10-25 22:25:02 +00:00
Peter Eisenmann
e405f00856 progress row: improve performance with ListBoxRow
Adw.ActionRow is rather complex and does not perform well with ListBox
models. Use simpler ListBoxRow as base to increase performance.
2022-10-17 02:05:34 +02:00
Peter Eisenmann
75abfc505d format: add search 2022-10-17 02:05:34 +02:00
Peter Eisenmann
f6d2b34b2d window: by-name-navigation can only be done once 2022-10-17 01:03:28 +02:00
Peter Eisenmann
04ea7ba3d4 handle unavailable fixed language 2022-10-17 01:02:15 +02:00
Peter Eisenmann
65443150c5 build: drop unused sdk-version 2022-10-17 01:00:24 +02:00
Peter Eisenmann
71ef0490fb build: sort and update dependencies
Sort them so that big and slow dependencies are sorted first.
2022-10-17 01:00:03 +02:00
Peter Eisenmann
15b2556a03 build: fix demo script name 2022-10-17 00:59:07 +02:00
Muqtxdir
b19780bf52 build changes:
- bump the gnome-platform runtime to 43 (needed as Adw.PasswordEntryRow is used)
- change the Adw.ApplicationWindow dimesnions as it was causing error.
2022-10-16 17:31:24 +05:30
Peter Eisenmann
2b629e85e3 config: actual load defaults on invalid config 2022-10-13 03:02:40 +02:00
Peter Eisenmann
64b0e21a36 summary: hide language row if language is fixed 2022-10-13 03:02:40 +02:00
Peter Eisenmann
90fff60718 place software page after locale page 2022-10-13 03:02:40 +02:00
Peter Eisenmann
ba31d9e841 prevent back navigation via page load()
Use explicit string return values instead of indescriptive True value.
2022-10-13 03:02:40 +02:00
Peter Eisenmann
ed09966992 merge page advance functionality via parameters 2022-10-13 03:02:40 +02:00
Peter Eisenmann
0b14e2934d window: shorten navigation naming 2022-10-13 03:02:40 +02:00
Peter Eisenmann
81cb065e68 global state: parameterless dummy implementation 2022-10-13 03:02:40 +02:00
Fabian Gouttin
3a27e61f21 Translated using Weblate (French)
Currently translated at 100.0% (55 of 55 strings)

Co-authored-by: Fabian Gouttin <9ap0t9dq@spymail.one>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/fr/
Translation: os-installer/os-installer
2022-10-10 20:01:28 +02:00
Peter Eisenmann
3f048ab298 add summary page 2022-10-06 22:58:27 +02:00
Peter Eisenmann
4ce42402ae done: simplify ui file 2022-10-06 22:29:38 +02:00
Peter Eisenmann
8edbd41ac5 done: use success icon from IconLibrary 2022-10-06 22:29:03 +02:00
Peter Eisenmann
9238ee7c59 keyboard: small refactor to use match 2022-10-06 22:20:23 +02:00
Peter Eisenmann
9778b01ac4 system call: actually set specified language 2022-10-06 22:19:56 +02:00
Peter Eisenmann
50d36a3c0e add spacing to end of scrollable list 2022-10-06 22:16:13 +02:00
Peter Eisenmann
10acc7528e split out format and timezone from locale page
This will allow for easier backwards navigation to these pages from a
summary page.
2022-10-06 21:55:19 +02:00
Peter Eisenmann
2e71bb6a74 window: allow navigationg to page by name
Store the current page and navigate back to it on page change.
2022-10-06 21:52:50 +02:00
Peter Eisenmann
7a41d496d8 locale: small conditional refactoring 2022-10-05 00:57:10 +02:00
Peter Eisenmann
d74ec09ff4 locale: simplify stack nesting 2022-10-05 00:57:10 +02:00
Peter Eisenmann
c71b1f7bbe window: small refactors, mostly load_page 2022-10-05 00:57:10 +02:00
Peter Eisenmann
0bf678a088 explicitly create translated pages 2022-10-05 00:57:10 +02:00
Peter Eisenmann
de148edb01 global state: unify uninitialzed errors 2022-10-05 00:57:10 +02:00
Peter Eisenmann
dc6bfe2598 distinguish image name and path by type 2022-10-05 00:57:10 +02:00
Peter Eisenmann
2c02da1d5b language: no re-setting of same language 2022-10-02 12:03:58 +02:00
Peter Eisenmann
76b856dea7 language: inline default setup 2022-10-02 11:28:18 +02:00
Peter Eisenmann
bc1c18fc12 window: use named pages 2022-10-01 10:37:15 +02:00
Peter Eisenmann
f81b9d341e software: use different fallback symbol 2022-09-30 11:22:04 +02:00
Peter Eisenmann
6ea3b1a430 config: rename keyboard variables 2022-09-30 11:15:10 +02:00
Peter Eisenmann
7ae7747236 keyboard: use default layout on first load 2022-09-30 11:04:17 +02:00
Peter Eisenmann
82fa0c2bf7 locale: store formats UI label string 2022-09-30 11:02:28 +02:00
Peter Eisenmann
cc890e6c09 software: store selected packages in config 2022-09-30 10:59:19 +02:00
Hosted Weblate
915e67c5ca Merge branch 'origin/main' into Weblate. 2022-09-27 11:59:22 +02:00
Peter Eisenmann
bfda376bb8 rename SoftwareRow to generic SelectionRow 2022-09-27 10:50:07 +02:00
Peter Eisenmann
477c086fde remove unused SelectionRow 2022-09-27 10:50:07 +02:00
Peter Eisenmann
dae1e2ff84 software: allow more config vars to be optioal
Also rework example and helper code.
2022-09-27 10:50:07 +02:00
Peter Eisenmann
ec953df826 welcome: possibility to translate text 2022-09-27 10:50:07 +02:00
Peter Eisenmann
3614bd4ae6 rename SoftwareRow to generic SelectionRow 2022-09-25 23:59:46 +02:00
Peter Eisenmann
9480b71b0b remove unused SelectionRow 2022-09-25 23:54:58 +02:00
Peter Eisenmann
2b06f348aa software: allow more config vars to be optioal
Also rework example and helper code.
2022-09-25 23:40:02 +02:00
Peter Eisenmann
2e7fde54f5 f 2022-09-25 23:30:40 +02:00
Peter Eisenmann
ff74afa6c9 welcome: possibility to translate text 2022-09-25 23:30:11 +02:00
Peter Eisenmann
c6b0d153cf language: list alignment fix 2022-09-25 20:59:48 +02:00
Peter Eisenmann
ba3ef9dc1e remove redundant style classes 2022-09-25 20:58:47 +02:00
Peter Eisenmann
607fa71c97 config: language_short_hand -> language_code 2022-09-25 18:31:20 +02:00
Peter Eisenmann
7d5c343d16 keyboard: use AdwEntryRow 2022-09-25 00:24:38 +02:00
Peter Eisenmann
3cfdabfba7 confirm: remove pointless boxing 2022-09-24 22:51:13 +02:00
Peter Eisenmann
8c79481bda confirm: disk row is not focusable 2022-09-24 22:31:32 +02:00
Peter Eisenmann
fbc7996409 update translators 2022-09-24 20:38:45 +02:00
Peter Eisenmann
8ccac2e1d9 add (pointless) shortcut for about dialog 2022-09-24 20:38:45 +02:00
Peter Eisenmann
813dbc208e use AdwAboutDialog
Since it's a final class use the UI file directly via GtkBuilder. Remove
previous templated boilerplate.
2022-09-24 20:38:45 +02:00
Peter Eisenmann
d2908c4377 fix terminal box styling 2022-09-22 03:25:41 +02:00
Peter Eisenmann
6d9dd5639c encrypt: use AdwEntryRow and AdwPasswordEntryRow 2022-09-22 03:15:34 +02:00
Peter Eisenmann
d7326e577a user: use AdwEntryRow and AdwPasswordEntryRow 2022-09-22 03:10:53 +02:00
Peter Eisenmann
d9335ecbd6 style: remove unused angular styles 2022-09-22 01:24:17 +02:00
Peter Eisenmann
cc3e81ff74 language: scroll show-all button 2022-09-22 00:33:33 +02:00
Peter Eisenmann
9f385badae replace LanguageRow with ProgressRow 2022-09-21 19:01:27 +02:00
Peter Eisenmann
ebcb145054 move providers into separate folder 2022-09-21 18:58:56 +02:00
Peter Eisenmann
55785807e3 keyboard-layout: simplify structure greatly
Use a sub-page for the actual layout selection. People might be happy
enough to just use the default. Also this allows to add multi-layout
selection in the future.
2022-09-21 18:51:39 +02:00
Peter Eisenmann
d73f5493a1 epic: list scrolling rework
This bundles multiple intertwined changes:
* Use borders to separate scrollable areas instead of in-list scrolling
* Simplify styling by adding a separate 'bottom-button' style class
* Make page titles smaller.
* Welcome page text can scroll
* Disk page handles no partitions better

Keyboard layouts page is not ported, it is due for a separate redesign.
2022-09-21 02:01:44 +02:00
Peter Eisenmann
863f8add6b page wrapper: remove redundant box 2022-09-21 02:01:39 +02:00
Peter Eisenmann
652872c19e move titles to individual pages 2022-09-21 01:59:57 +02:00
Peter Eisenmann
8c6e357a53 reduce page title size 2022-09-21 01:59:57 +02:00
Peter Eisenmann
daf3b69747 language: correct super init call 2022-09-21 01:59:57 +02:00
Peter Eisenmann
dbc5f4ff10 locale: use stack as template base 2022-09-21 01:59:57 +02:00
Peter Eisenmann
ada3b5cb47 config: add testing defaults for language 2022-09-21 01:59:57 +02:00
Peter Eisenmann
078c40f4df keyboard provider: fix error print 2022-09-21 01:59:57 +02:00
Peter Eisenmann
c9af8374bf update translators 2022-09-21 01:59:57 +02:00
Mirko Brombin
c2584534d4 Translated using Weblate (Italian)
Currently translated at 100.0% (55 of 55 strings)

Co-authored-by: Mirko Brombin <send@mirko.pm>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/it/
Translation: os-installer/os-installer
2022-09-19 21:18:03 +02:00
Anonymous
decef03853 Translated using Weblate (Italian)
Currently translated at 100.0% (0 of 0 strings)

Co-authored-by: Anonymous <noreply@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/it/
Translation: os-installer/os-installer
2022-09-18 20:20:07 +02:00
Vojtěch Perník
bc65cf4b4d Translated using Weblate (Czech)
Currently translated at 3.6% (2 of 55 strings)

Co-authored-by: Vojtěch Perník <translations@pervoj.cz>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/cs/
Translation: os-installer/os-installer
2022-09-18 20:20:07 +02:00
Mirko Brombin
7db8f4d5f7 Added translation using Weblate (Italian)
Co-authored-by: Mirko Brombin <send@mirko.pm>
2022-09-18 20:20:07 +02:00
Anonymous
4a363edc25 Translated using Weblate (Czech)
Currently translated at 100.0% (0 of 0 strings)

Co-authored-by: Anonymous <noreply@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/cs/
Translation: os-installer/os-installer
2022-09-18 20:11:57 +02:00
Vojtěch Perník
16c6928a8e Added translation using Weblate (Czech)
Co-authored-by: Vojtěch Perník <translations@pervoj.cz>
2022-09-18 20:11:57 +02:00
Milo Ivir
183d498fa8 Translated using Weblate (Croatian)
Currently translated at 100.0% (55 of 55 strings)

Co-authored-by: Milo Ivir <mail@milotype.de>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/hr/
Translation: os-installer/os-installer
2022-09-06 17:17:30 +02:00
Fernando Rodrigues
fea8e0e29f Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (55 of 55 strings)

Co-authored-by: Fernando Rodrigues <sigmasquadron@icloud.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/pt_BR/
Translation: os-installer/os-installer
2022-08-28 03:17:31 +02:00
Temuri Doghonadze
33e2f09b35 Translated using Weblate (Georgian)
Currently translated at 100.0% (55 of 55 strings)

Co-authored-by: Temuri Doghonadze <temuri.doghonadze@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ka/
Translation: os-installer/os-installer
2022-08-16 13:15:41 +02:00
Anonymous
ce0fefa65c Translated using Weblate (Georgian)
Currently translated at 100.0% (0 of 0 strings)

Co-authored-by: Anonymous <noreply@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/ka/
Translation: os-installer/os-installer
2022-08-15 12:49:34 +02:00
Temuri Doghonadze
760ae2eaa5 Added translation using Weblate (Georgian)
Co-authored-by: Temuri Doghonadze <temuri.doghonadze@gmail.com>
2022-08-15 12:49:34 +02:00
Jürgen Benvenuti
36e4002819 Update German translation 2022-08-07 23:53:03 +00:00
Henri
73948d3e96 Translated using Weblate (Estonian)
Currently translated at 100.0% (55 of 55 strings)

Co-authored-by: Henri <contact@hen.ee>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/et/
Translation: os-installer/os-installer
2022-08-05 02:18:30 +02:00
rebokdev
80d75f2b8b Translated using Weblate (Polish)
Currently translated at 100.0% (55 of 55 strings)

Co-authored-by: rebokdev <rebokbusiness@petalmail.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/pl/
Translation: os-installer/os-installer
2022-08-05 02:18:30 +02:00
Henri
c46365c8fe Translated using Weblate (Estonian)
Currently translated at 3.6% (2 of 55 strings)

Co-authored-by: Henri <contact@hen.ee>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/et/
Translation: os-installer/os-installer
2022-08-02 19:19:09 +02:00
Anonymous
cfd3702c34 Translated using Weblate (Estonian)
Currently translated at 100.0% (0 of 0 strings)

Co-authored-by: Anonymous <noreply@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/et/
Translation: os-installer/os-installer
2022-08-01 18:40:28 +02:00
Henri
b22607ebc7 Added translation using Weblate (Estonian)
Co-authored-by: Henri <contact@hen.ee>
2022-08-01 18:40:28 +02:00
Peter Eisenmann
a965002ebe Translated using Weblate (Swedish)
Currently translated at 100.0% (55 of 55 strings)

Translated using Weblate (Croatian)

Currently translated at 96.3% (53 of 55 strings)

Translated using Weblate (French)

Currently translated at 98.1% (54 of 55 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (55 of 55 strings)

Translated using Weblate (German)

Currently translated at 100.0% (55 of 55 strings)

Co-authored-by: Peter Eisenmann <p3732@disroot.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/de/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/es/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/fr/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/hr/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/sv/
Translation: os-installer/os-installer
2022-08-01 15:19:29 +02:00
Anonymous
4c5603817a Translated using Weblate (Polish)
Currently translated at 96.3% (53 of 55 strings)

Translated using Weblate (Ukrainian)

Currently translated at 96.3% (53 of 55 strings)

Translated using Weblate (Swedish)

Currently translated at 96.3% (53 of 55 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 96.3% (53 of 55 strings)

Translated using Weblate (Occitan)

Currently translated at 96.3% (53 of 55 strings)

Translated using Weblate (Dutch)

Currently translated at 96.3% (53 of 55 strings)

Translated using Weblate (Croatian)

Currently translated at 96.3% (53 of 55 strings)

Translated using Weblate (French)

Currently translated at 96.3% (53 of 55 strings)

Translated using Weblate (Spanish)

Currently translated at 96.3% (53 of 55 strings)

Translated using Weblate (German)

Currently translated at 96.3% (53 of 55 strings)

Co-authored-by: Anonymous <noreply@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/de/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/es/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/fr/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/hr/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/nl/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/oc/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/pl/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/sv/
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/uk/
Translation: os-installer/os-installer
2022-07-31 14:55:02 +02:00
Hosted Weblate
97a356c6fb Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/
Translation: os-installer/os-installer
2022-07-31 14:55:01 +02:00
Peter Eisenmann
1269e98ce8 update Polish translation (by Piotr K***J)
See #14
2022-07-31 14:53:38 +02:00
Peter Eisenmann
5e79bcf466 fix broken translation
Caused by weblate misconfiguration.
2022-07-31 14:49:01 +02:00
Piotr K***J
189c04869a Translated using Weblate (Polish)
Currently translated at 100.0% (1 of 1 strings)

Co-authored-by: Piotr K***J <rebokbusiness@petalmail.com>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/pl/
Translation: os-installer/os-installer
2022-07-26 17:39:29 +02:00
Anonymous
8b9045f924 Translated using Weblate (Polish)
Currently translated at 100.0% (0 of 0 strings)

Co-authored-by: Anonymous <noreply@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/pl/
Translation: os-installer/os-installer
2022-07-26 17:36:45 +02:00
Piotr K***J
e64104b0d5 Added translation using Weblate (Polish)
Co-authored-by: Piotr K***J <rebokbusiness@petalmail.com>
2022-07-26 17:36:45 +02:00
Hosted Weblate
ed3d7765fe Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/os-installer/os-installer/
Translation: os-installer/os-installer
2022-06-20 02:51:17 +02:00
Peter Eisenmann
e70e93d3d2 readme: add Weblate translations, rework structure 2022-06-20 02:50:11 +02:00
Peter Eisenmann
74c3cd3ea7 welcome: small text change, add to potfiles 2022-06-20 01:52:21 +02:00
Peter Eisenmann
530683510f readme: add contact section 2022-06-20 01:47:26 +02:00
Peter Eisenmann
8aed1b7ceb readme: small build instruction changes 2022-06-20 01:46:56 +02:00
Peter Eisenmann
527f765e05 welcome: enable configuring of logo and text 2022-06-02 16:32:01 +02:00
Peter Eisenmann
8ff46bd6d8 config: merge dictionary config entries 2022-06-02 16:26:09 +02:00
Peter Eisenmann
f13b3c1645 config: validity check property existance 2022-06-02 16:10:41 +02:00
Peter Eisenmann
69c681aadf window: allow setting title image by path 2022-06-02 16:08:35 +02:00
Peter Eisenmann
8c019a08b2 main: add action to force fail in debug mode 2022-06-02 16:50:53 +04:00
Peter Eisenmann
1510d47381 main: use helper function for window callbacks 2022-06-02 16:49:00 +04:00
Peter Eisenmann
4a87af02d3 main: used NamedTuple for actions 2022-06-02 15:33:44 +04:00
Peter Eisenmann
08d1afed02 main: use app ID for notifications 2022-06-02 15:29:18 +04:00
Peter Eisenmann
988224ffb8 main: use inline assignment with if 2022-06-02 15:29:18 +04:00
Peter Eisenmann
d4c810fa5e add about dialog
Accessible from welcome page.
2022-06-02 15:29:18 +04:00
Peter Eisenmann
0fc51da7a3 verison bump: 0.3
Should probably do this directly after releases...
2022-06-02 12:00:40 +04:00
Peter Eisenmann
087a64aec5 build: remove unused artists + documenters 2022-06-02 11:21:02 +04:00
Peter Eisenmann
b6a5b753b4 confirm-quit: use morer vertical layout 2022-06-01 00:16:06 +04:00
Peter Eisenmann
0eb8393500 confirm dialog: use function binding 2022-06-01 00:14:21 +04:00
Peter Eisenmann
f89a90e2af window: fix showing dialogs
Call to present() was lost during GTK4 port.
2022-06-01 00:13:08 +04:00
Peter Eisenmann
db61972c95 add welcome page 2022-06-01 00:13:08 +04:00
Peter Eisenmann
dfab6e560a general: drop some unused imports 2022-06-01 00:01:23 +04:00
Peter Eisenmann
290a232d9c config: always use a string as distribution_name 2022-06-01 00:01:10 +04:00
Peter Eisenmann
0a8390b9d1 readme: add distribution dependency section 2022-06-01 00:01:01 +04:00
Peter Eisenmann
c2e1f5211a readme: add libadwaita and gtk4 as dependencies 2022-05-27 10:58:45 +04:00
Peter Eisenmann
e41c359ccf readme: add demo mode note for flatpak 2022-05-27 10:58:07 +04:00
Peter Eisenmann
4f2c59ecac manifest: drop udisk and use demo wrapper 2022-05-27 10:57:24 +04:00
Peter Eisenmann
18d25a2b06 build: add flatpak option to install demo wrapper 2022-05-27 10:56:34 +04:00
Peter Eisenmann
29ca0979f0 config: fix additional software default value 2022-05-27 10:53:59 +04:00
Peter Eisenmann
8bda36454a don't use udisks in demo mode 2022-05-27 10:53:33 +04:00
Peter Eisenmann
208773fd65 manifest: add missing dependencies 2022-05-25 03:21:53 +04:00
Peter Eisenmann
eda89abf21 readme: update build instructions
Add dependencies and advise GNOME Builder
2022-05-25 02:54:26 +04:00
Peter Eisenmann
37893bd367 update flatpak manifest 2022-05-25 02:53:25 +04:00
Peter Eisenmann
71bed1b8de readme: use recursive clone
Required for blueprint subproject.
2022-05-25 02:31:31 +04:00
Peter Eisenmann
35974b959f docs: update class hierarchy 2022-05-21 09:52:23 +02:00
Peter Eisenmann
eb86e74f51 config: use correct python assert syntax... 2022-05-21 08:06:53 +02:00
Peter Eisenmann
061b5eaee7 add config option to specify fixed language
Specifying a fixed language will skip the language selection page.
2022-05-21 00:26:58 +02:00
Peter Eisenmann
6836fb725b window: use tuple for page creation condition
Instead of putting None in pages, use the condition directly.
2022-05-21 00:26:58 +02:00
Peter Eisenmann
5e287f6282 config: add type verification mechanism 2022-05-21 00:26:58 +02:00
Peter Eisenmann
2c0bc613a9 config: clarify default config and syntax errors 2022-05-20 14:34:16 +02:00
Peter Eisenmann
62276c1a87 config: set all variables on init for testing 2022-05-20 13:14:09 +02:00
Peter Eisenmann
c34e6f3db7 language: start loading in provider init 2022-05-20 12:25:40 +02:00
Peter Eisenmann
ec8828e7c5 initialize global state before main 2022-05-20 11:14:51 +02:00
Peter Eisenmann
60af53466b example: clarify software translation syntax 2022-05-19 16:23:44 +02:00
Peter Eisenmann
59927b067c software: enable i18n for name and descripition 2022-05-19 16:19:44 +02:00
Peter Eisenmann
bec35355d0 keyboard: remove accidental email.policy import 2022-05-19 14:32:05 +02:00
Peter Eisenmann
30e2d6caf5 config: use format strings 2022-05-19 09:30:51 +02:00
Peter Eisenmann
06a9e74aa6 language: always use code as fallback 2022-05-19 09:04:07 +02:00
Peter Eisenmann
eb9e94b508 readme: restructure testing, add uninstall command 2022-05-19 09:04:07 +02:00
Peter Eisenmann
c93436018b keyboard: allow fallback independent default layouts
Allows setting default layouts for locales, that don't have their own
set of available layouts.
2022-05-19 09:03:16 +02:00
Peter Eisenmann
0a779aa2fe keyboard: simplify language code to layout getter
Move code trying out different versions of language code to separate
function. Return fallback if no keyboards are available.
2022-05-19 09:02:03 +02:00
Peter Eisenmann
6a8aa74223 keyboard: simplify initial layout setting
Always use first layout as default. Deduplicate some code through this.
2022-05-18 23:28:43 +02:00
Peter Eisenmann
00d2d7d8ef fix default keyboard layouts with specifiers
Syntax is code+specifier, brackets returned by langtable are not default
2022-05-17 09:18:48 +02:00
Peter Eisenmann
8baefc2e38 readme: add description for distributions 2022-05-17 07:46:04 +02:00
Alí Sinisterra
3cec5293f9 Update es.po.
Changed from formal/computer-like language, "usted", to more friendly language, "tú".
2022-05-17 05:34:18 +00:00
Peter Eisenmann
92206b85c9 page wrapper: no spacing on empty title 2022-05-13 16:50:12 +02:00
Peter Eisenmann
fc3a9b09d7 update translators 2022-05-13 16:09:19 +02:00
Nícolas Castillo
c9bc98a6c1 Add Spanish translation 2022-05-13 04:31:33 -05:00
Luna Jernberg
2f35f185c7 Add Swedish Translation 2022-05-09 15:36:56 +00:00
Gert
52a86e7429 Add Dutch translation 2022-05-08 13:54:27 +02:00
Peter Eisenmann
05128cb493 language: add locales for pt_BR and pt_PT 2022-05-08 13:43:51 +02:00
Peter Eisenmann
52da766fca language: use get_language_from_locale
Use language code did not work for pt_BR and is also not necessary when
the locale is available.
2022-05-08 13:43:51 +02:00
Peter Eisenmann
d2bb73504e language: use language code for developer hint
Language name does not exist, so it only printed None before...
2022-05-08 13:43:51 +02:00
Peter Eisenmann
4e78b689eb keyboard: fallback mechanism if no layouts known 2022-05-08 13:43:51 +02:00
Peter Eisenmann
002307a89a Add Ukrainian translation (by Dea Dia)
Thank you @DartDeaDia!
2022-05-08 13:43:51 +02:00
Peter Eisenmann
9a530b27b4 update translators 2022-05-08 13:43:51 +02:00
Peter Eisenmann
b3948523cb Add French translation (by A. Pinsard)
Thank you @TwistyDev!
2022-05-08 13:43:51 +02:00
Mejans
182e5dda6e Add Occitan translation 2022-05-08 13:43:51 +02:00
Fernando Rodrigues
0fc7f85a25 add Brazillian Portuguese translation 2022-05-05 21:21:17 -03:00
Peter Eisenmann
bb661f2b2e version bump 2022-05-02 01:04:54 +02:00
Peter Eisenmann
6b7a534f3d example config whitespace cleanup 2022-05-02 01:03:48 +02:00
Peter Eisenmann
63174b44bc TODO moved to Gitlab issues 2022-05-02 00:54:57 +02:00
Peter Eisenmann
4c95c473a4 language: handle no suggested languages 2022-05-02 00:39:36 +02:00
Peter Eisenmann
51518a1141 last TODO list update 2022-05-01 22:59:05 +02:00
Peter Eisenmann
a3253c27ba update Croatian translation 2022-05-01 22:59:05 +02:00
Peter Eisenmann
be51f5fc9d general: make row slightly wider by default 2022-05-01 22:59:05 +02:00
Peter Eisenmann
f7665f601d encrypt: focus pin field upon switch flip 2022-05-01 22:59:05 +02:00
Peter Eisenmann
0086c2b1fe disk: fix unnamed partitions naming 2022-05-01 22:59:05 +02:00
Peter Eisenmann
5956d90a27 confirm: rework styling, use AdwActionRow 2022-05-01 22:59:05 +02:00
Peter Eisenmann
1c211f47ba locale: smaller heading font size 2022-05-01 22:59:05 +02:00
Peter Eisenmann
8ad098e865 user: allow forward navigation with enter 2022-05-01 22:59:05 +02:00
Peter Eisenmann
d49a8298d2 encrypt: allow forward navigation with enter 2022-05-01 22:59:05 +02:00
Peter Eisenmann
53e00c6aab update German translation 2022-05-01 03:40:43 +02:00
Peter Eisenmann
d330c4a7fb done: title case 2022-05-01 03:39:07 +02:00
Peter Eisenmann
43d964e970 add notifications for finished and failed installs 2022-05-01 03:37:24 +02:00
Peter Eisenmann
677953e973 keyboard: sort default layouts first 2022-04-30 17:41:24 +02:00
Peter Eisenmann
97edb9bfbb css: make undershoot a bit stronger
Looks good enough for dark style now.
2022-04-30 17:41:24 +02:00
Peter Eisenmann
fdf92358ff keyboard: select default keyboard layout on init 2022-04-30 17:41:24 +02:00
Peter Eisenmann
a13a892c04 keyboard: bundle row selection code 2022-04-30 17:41:24 +02:00
Peter Eisenmann
08ce1f4672 scripts: add language to default keyboard layout 2022-04-30 17:41:24 +02:00
Peter Eisenmann
0efaf44bcf language provider: update locale list 2022-04-30 16:40:31 +02:00
Peter Eisenmann
867c21f17c update TODO list 2022-04-30 11:36:10 +02:00
Peter Eisenmann
a849141ba3 keyboard: fix keyboard focus rounding 2022-04-30 11:36:10 +02:00
Peter Eisenmann
2d4807383b add shortcut for page reload 2022-04-30 11:36:10 +02:00
Peter Eisenmann
3330f16b58 locale: allow two lines in overview 2022-04-30 11:36:10 +02:00
Peter Eisenmann
b1e90c1b9a disk: invert demo behavior 2022-04-30 11:36:10 +02:00
Peter Eisenmann
5d034f916a locale: expand list according to content 2022-04-30 11:36:10 +02:00
Peter Eisenmann
07d177f334 locale: port to model binding 2022-04-30 11:36:10 +02:00
Peter Eisenmann
f2fe88d157 remove redundant row selection code 2022-04-30 11:35:43 +02:00
Peter Eisenmann
423e919260 encrypt: focus entries upon clicking on row 2022-04-29 14:48:33 +02:00
Peter Eisenmann
e36ac46f05 encrypt: replace row-activated with row:activatable 2022-04-29 14:48:33 +02:00
Peter Eisenmann
ee8b10b813 user: focus entries upon clicking on row 2022-04-29 14:48:33 +02:00
Peter Eisenmann
91d1f16585 user: replace row-activated with row:activatable 2022-04-29 14:48:33 +02:00
Peter Eisenmann
1123264ddc software: make rows GListModel based 2022-04-29 14:05:42 +02:00
Peter Eisenmann
4bdf0a7919 software: use fixed row height, don't expand list 2022-04-29 14:03:49 +02:00
Peter Eisenmann
3086d9029d software: fix empty config list given 2022-04-29 12:59:52 +02:00
Peter Eisenmann
65e77b05fa keyboard: enable sorting (apparently never broke) 2022-04-27 20:26:35 +02:00
Peter Eisenmann
dca39c309e update todo list 2022-04-27 20:26:35 +02:00
Peter Eisenmann
c2d1e9c2dd disk: add empty state (no disks)
* add icon to represent no disks
* use AdwStatusPage to represent empty state
* return alternating dummy disks or no disks in demo-mode
2022-04-27 20:26:35 +02:00
Peter Eisenmann
6c0d0c0431 add global method for setting title image 2022-04-27 20:26:35 +02:00
Peter Eisenmann
35645638ff update German translation 2022-04-27 20:26:35 +02:00
Peter Eisenmann
38a0ba3f8c update Croatian translation 2022-04-27 20:26:35 +02:00
Peter Eisenmann
c758335bc1 internet: less repetition of the word "internet" 2022-04-27 20:26:35 +02:00
Peter Eisenmann
c1754b0b81 move signals to ui files 2022-04-27 20:26:35 +02:00
Peter Eisenmann
126b79807e locale: fix activatableness of overview rows 2022-04-30 18:55:11 +02:00
Peter Eisenmann
ef3ed5d64e locale: be nicer to gnome-desktop, drop dead code 2022-04-30 18:29:04 +02:00
Peter Eisenmann
faa200c0ab encrypt: unify pin changing code 2022-04-30 17:50:52 +02:00
Peter Eisenmann
ed878c5ff7 add marginalized style 2022-04-27 12:13:12 +02:00
Peter Eisenmann
0a1205760d user: use stripped version for user name 2022-04-27 11:17:36 +02:00
Peter Eisenmann
b34f1f878f user: fix autologin switch activatable 2022-04-27 11:16:41 +02:00
Peter Eisenmann
c0a4bb2edf fix symbolic icons in dark mode
Turns out they need to be placed under scalable/actions/ subpath.
2022-04-27 11:03:25 +02:00
Peter Eisenmann
e475e5610f update German translations 2022-04-30 03:05:14 +02:00
Peter Eisenmann
660e85e5d9 revert 5ac9627, it caused missed translations
With specifying C as source file language, gettext failed to extract
strings from desktop(.in) file.
2022-04-30 03:02:58 +02:00
Peter Eisenmann
0cb308508f window: minor code beautifying 2022-04-30 02:53:18 +02:00
Peter Eisenmann
c55d2d84ad update TODO list 2022-04-30 02:52:17 +02:00
Peter Eisenmann
3c3b0f8e9a locale: use AdwActionRow 2022-04-30 02:47:07 +02:00
Peter Eisenmann
e48db37a5c user: use AdwActionRow 2022-04-27 02:34:58 +02:00
Peter Eisenmann
c84bdb1b51 ui: use standard way to reference Adw classes 2022-04-27 02:25:27 +02:00
Peter Eisenmann
52af8b1b42 disk: add rows without names 2022-04-27 02:25:27 +02:00
Peter Eisenmann
0bac81d080 disk info: drop prefixed, sanitize name parameter 2022-04-27 02:25:27 +02:00
Peter Eisenmann
fa5ad7af0f disk: simplify layout model resetting 2022-04-27 02:25:27 +02:00
Peter Eisenmann
0e5b8386d8 device row: simplify, use AdwActionRow 2022-04-27 02:25:27 +02:00
Peter Eisenmann
507b5051ef confirm: add default device name, show device path 2022-04-27 02:25:27 +02:00
Peter Eisenmann
f2b0fdb62d disk: add heading above partition listing 2022-04-27 02:25:27 +02:00
Peter Eisenmann
69cc076435 disk: make whole disk row hover style match 2022-04-27 02:25:27 +02:00
Peter Eisenmann
d5fb001d12 disk: use dummy data in demo mode 2022-04-30 17:55:41 +02:00
Peter Eisenmann
024cf68fa3 disk provider: rework helper struct creation 2022-04-30 17:55:41 +02:00
Peter Eisenmann
9dd2c3207b css: drop unused scrollbar styling 2022-04-30 17:55:41 +02:00
Peter Eisenmann
c5757878a0 progress row: use AdwActionRow 2022-04-30 17:55:41 +02:00
Peter Eisenmann
102096835e ui: move styles next to properties
Having it dangling at the end is less readable
2022-04-30 17:55:41 +02:00
Peter Eisenmann
b7f8aec2f8 window: correct Adw referencing
Also fix previously undetected incorrect property inits.
2022-04-30 17:55:41 +02:00
Peter Eisenmann
075d7b723d internet: add no connection hint 2022-04-30 17:55:41 +02:00
Peter Eisenmann
9098c45688 disk: fix backward navigation 2022-04-30 17:55:41 +02:00
Peter Eisenmann
54030267ae window: wrap everything in GtkWindowHandle 2022-04-30 17:55:41 +02:00
Peter Eisenmann
3b55fb9827 disk: inline NoPartitionsRow, use binding, style
* Inline NoPartitionsRow, turning it into a box that. Showing it will
hide the partitions list.
* Turn DeviceInfo into a GObject in order to use binding with a create
function for the used ListBoxes
* fix row rounding styling
* use AdwActionRow for whole disk row
2022-04-30 17:55:41 +02:00
Peter Eisenmann
7ec0894ce0 style: rework scrollable style 2022-04-30 17:55:41 +02:00
Peter Eisenmann
fea69174d2 language: make defaults potentially scrollable 2022-04-30 15:03:08 +02:00
Peter Eisenmann
16d2a3cf5e style: smaller undershoot 2022-04-30 15:01:15 +02:00
Peter Eisenmann
34cd2c558d style: no margin or rounded corners when clamped 2022-04-30 14:57:30 +02:00
Peter Eisenmann
132e667402 software row: use dropshadow style for icons 2022-04-30 14:57:30 +02:00
Peter Eisenmann
91b4912399 language: use ListStore models and bindings 2022-04-30 14:57:30 +02:00
Peter Eisenmann
5ac9627a2e build: let gettext treat blueprint code as C code
Fixes warnings during recreating translation files.
2022-04-30 13:00:07 +02:00
Peter Eisenmann
27563c08ec add reset_model helper function and use it 2022-05-01 12:11:50 +02:00
Peter Eisenmann
72707b2e53 keyboard: wrap keyboard info in helper struct 2022-05-01 12:11:50 +02:00
Peter Eisenmann
c410ed61f3 keyboard: fix backwards navigation 2022-05-01 12:11:50 +02:00
Peter Eisenmann
8c1e68497a keyboard: GObject for bind with create function
Return lists of GObjects from provider functions, so they can directly
be used in binding of GListModel to GListBox. Fixes page recreation
upon navigationg back to language.
2022-05-01 12:11:50 +02:00
Peter Eisenmann
533a798317 keyboard: fix selecting same language 2022-05-01 12:11:50 +02:00
Peter Eisenmann
2a6bb7c25b encrypt: use AdwActionRow, drop revealer 2022-05-01 12:11:50 +02:00
Peter Eisenmann
9614884b3a software row: use AdwActionRow as base 2022-04-24 09:42:28 +02:00
Peter Eisenmann
8022b498a8 selection row: use AdwActionRow as base 2022-04-24 09:42:15 +02:00
Peter Eisenmann
427f97c654 language row: use AdwActionRow as base 2022-04-23 16:09:56 +02:00
Peter Eisenmann
fbbe2bf5eb move title to page wrapper
Use "name" property to keep translation in .ui files.
2022-04-23 16:06:18 +02:00
Peter Eisenmann
26780dd706 fix vte import 2022-04-23 13:41:23 +02:00
Peter Eisenmann
86b27b1392 css: add rounding style for first/last child 2022-04-23 13:41:23 +02:00
Peter Eisenmann
19436fa089 css: simplify scrollable container styling
Fixes shading on hover, because it is not a hardcoded color anymore.
2022-04-23 13:41:23 +02:00
Peter Eisenmann
ceda104046 css: make scrollability shading hint more subtle 2022-04-23 13:41:23 +02:00
Peter Eisenmann
b5f4b236a0 page: add license identifier 2022-04-23 13:41:23 +02:00
Peter Eisenmann
cd50596777 failed: use listbox container for scrolling 2022-04-23 13:41:23 +02:00
Peter Eisenmann
9137d0cd3e disk: don't use disk as title 2022-04-20 02:32:46 +02:00
Peter Eisenmann
1ba19a0e65 ids for page stack, simpler advance() parameter 2022-04-20 02:32:46 +02:00
Peter Eisenmann
d6375951b9 disk: use RAII locks 2022-04-20 01:10:37 +02:00
Peter Eisenmann
db53527321 move reload button to main window 2022-04-18 09:24:18 +02:00
Peter Eisenmann
8298d26104 disk: fix reloading page/disk list 2022-04-18 09:18:49 +02:00
Peter Eisenmann
ebd1d98fe8 disk: fix translator comment 2022-04-18 08:51:19 +02:00
Peter Eisenmann
82d020c6c2 css: use undershoot shade for scrollable container 2022-04-18 08:50:41 +02:00
Peter Eisenmann
5d016014bc css: drop now unused styles 2022-04-18 08:44:58 +02:00
Peter Eisenmann
9b5c14bb3f fixup terminal 2022-04-18 08:37:47 +02:00
Peter Eisenmann
05fdaea17c ui: drop redundant scrolling related properties 2022-04-18 08:37:36 +02:00
Peter Eisenmann
edf1afb975 install: use listbox container for scrolling 2022-04-18 08:10:01 +02:00
Peter Eisenmann
72318e7046 user: change title, fix translators hint 2022-04-18 07:52:24 +02:00
Peter Eisenmann
65ebfe832b locale: use listbox container for scrolling 2022-04-18 07:43:02 +02:00
Peter Eisenmann
b1c5c99530 scripts: incorrect print in example configure.sh 2022-04-18 06:59:39 +02:00
Peter Eisenmann
cc2cb1d63e move bottom border to page wrapper 2022-04-18 01:30:55 +02:00
Peter Eisenmann
3ac17650d4 update TODO 2022-04-18 01:30:55 +02:00
Peter Eisenmann
e2684ce9e3 po: update pot + German translation 2022-04-18 01:30:55 +02:00
Peter Eisenmann
7c5ee1b1f5 software: fix alignments 2022-04-18 01:30:55 +02:00
Peter Eisenmann
27d4a0d09d no partitions: dim icons and labels 2022-04-18 01:30:55 +02:00
Peter Eisenmann
61dc817dca internet: add title 2022-04-18 01:30:55 +02:00
Peter Eisenmann
8500d2f3b0 encrypt: add title, fix switch alignment 2022-04-18 01:30:55 +02:00
Peter Eisenmann
2037ad8c4b fix usage of own symbolic icon 2022-04-18 01:30:55 +02:00
Peter Eisenmann
1fd19065fe software: use listbox container for scrolling 2022-04-18 01:30:55 +02:00
Peter Eisenmann
3930387de7 general: simplify titles 2022-04-18 01:30:55 +02:00
Peter Eisenmann
22dad59bf6 css: make rows in scrollable containers look normal 2022-04-16 09:43:18 +02:00
Peter Eisenmann
6feefddf40 disk: use listbox container for scrolling 2022-04-16 09:42:39 +02:00
Peter Eisenmann
e6d95ded00 language: use listbox container for scrolling
Also adapt language provider to provide all languages instead of
separate default + additional sets.
2022-04-16 09:30:20 +02:00
Peter Eisenmann
3c510c962b keyboard: use listbox container for scrolling 2022-04-15 08:37:04 +02:00
Peter Eisenmann
4596575485 css: add scrollable container style
Inspired by css style of gnome-calculator version 42.
2022-04-15 08:34:58 +02:00
Peter Eisenmann
dca566f110 user: fix keyboard focus 2022-04-10 01:09:02 +02:00
Peter Eisenmann
01f101a799 resources: sort input files 2022-04-10 01:09:02 +02:00
Peter Eisenmann
2fc427ee87 software row: fix styling 2022-04-10 01:09:02 +02:00
Peter Eisenmann
f06e96e7f9 main: remove redundant icon theme code 2022-04-10 01:09:02 +02:00
Peter Eisenmann
0930286582 add PageWrapper widget for clamping 2022-04-10 01:09:02 +02:00
Peter Eisenmann
753cb7c88b installation scripting: turn steps into Enum
Fixes backward navigation by not trying to advance further than the
prepare step upon reaching disks page.
2022-04-10 01:09:02 +02:00
Peter Eisenmann
1d71600929 installation scripting: turn steps into Enum
Fixes backward navigation by not trying to advance further than the
prepare step upon reaching disks page.
2022-04-05 03:20:21 +02:00
Peter Eisenmann
889fd9e9d8 software: no vexpanding of listbox 2022-04-05 03:20:21 +02:00
Peter Eisenmann
d7edc390ed main_stack: reload pages on language change 2022-04-05 03:20:21 +02:00
Peter Eisenmann
f654e3f9b9 software: fix button position 2022-03-31 06:27:19 +02:00
Peter Eisenmann
20e6ec778f main: wrap pages in clamp, not stack
Instead of wrapping the main page stack in a clamp, wrap each page upon
creation in a clamp, so that the transition looks better, as it extends
all the way to the window borders.
2022-03-31 06:26:56 +02:00
Peter Eisenmann
48562a1dd5 ui: cleanup of blueprint autoformatted syntax 2022-03-31 06:09:42 +02:00
Peter Eisenmann
da3fdc0d23 remove unfinished horizontally_scrollable_list 2022-03-31 05:51:57 +02:00
Peter Eisenmann
65f0f69c96 ui: inline styles 2022-03-27 11:09:01 +02:00
Peter Eisenmann
908daa33cc epic: port to blueprint 2022-03-27 11:05:52 +02:00
Peter Eisenmann
d98745fa46 disk: fix no partition row sensitivity 2022-03-27 11:05:48 +02:00
Peter Eisenmann
761f254aee ui: replace attributes with css style 2022-03-27 11:05:45 +02:00
Peter Eisenmann
ced0f4f539 various: use format strings 2022-03-27 11:05:41 +02:00
Peter Eisenmann
092bf07eee use model bindings for non-static ListBoxes 2022-03-27 11:05:32 +02:00
Peter Eisenmann
f3f37fd5ae epic: port to GTK4 2022-03-26 01:34:38 +01:00
Peter Eisenmann
73b8c806cc main window: use revealers for navigation buttons 2022-03-26 01:34:35 +01:00
Peter Eisenmann
f31d55af13 main window: simplify .ui file 2022-03-26 01:34:29 +01:00
Peter Eisenmann
f2a8d89e29 keyboard: simplify ui file 2022-03-11 16:14:04 +01:00
Peter Eisenmann
6b4f6c02b9 remove about dialog 2022-03-11 03:29:50 +01:00
Peter
e456179995 disk: ignore optical drives 2021-05-06 12:50:37 +02:00
Peter
d4eef1bdbd update TODO 2021-05-05 02:25:24 +02:00
Peter
69cc4a75d4 ui: use rounded boxes for scrolling lists 2021-05-05 02:14:31 +02:00
Peter
944cdf0309 don't falsely proclaim time synchronisation 2021-04-21 05:01:31 +02:00
Peter
bd90283569 installation: correctly recognize finished (again) 2021-04-18 00:07:56 +02:00
Peter
0281abf136 syscalls: fix method name typo 2021-04-17 23:58:34 +02:00
Peter
9f44d6b798 disk: simplify device info for disk or partition 2021-04-17 23:54:09 +02:00
Peter
576462e3b0 syscalls: add passwordless system calls (can fail) 2021-04-17 23:51:16 +02:00
Peter
2925247a2f update translations 2021-04-17 23:31:24 +02:00
Peter
0af43cbb29 disk: simplify udisks client initialization 2021-04-17 18:29:09 +02:00
Peter
69b7028b9a disk: fix setting stacks 2021-04-17 18:09:33 +02:00
Peter
d498795ac4 disk: do efi check ad-hoc 2021-04-17 18:08:51 +02:00
Peter
59156e2ee1 syscalls: use gsettings to prevent authentication 2021-04-16 16:22:33 +02:00
Peter
4b5ea74094 locale: fix errorprint string 2021-04-16 02:15:09 +02:00
Peter
d62ff1841c failed: suggest internet search 2021-04-16 02:14:03 +02:00
Peter
23f51c1f7e config: store version 2021-04-16 02:13:33 +02:00
Peter
fe9813d495 config: add distribution name 2021-04-16 02:13:02 +02:00
Peter
79ee3c4aaf drop development warning from Readme 2021-04-13 01:24:41 +02:00
Peter
987f193649 system calls: fix setting of locales 2021-04-13 01:21:07 +02:00
Peter
0b06b48c76 mark installation done on fail 2021-04-05 12:23:57 +02:00
Peter
377feea4d3 global state: fix env parameter order 2021-04-03 02:04:07 +02:00
180 changed files with 15208 additions and 5893 deletions

View File

View File

@@ -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()

View File

@@ -1,2 +0,0 @@
Deutsch: Peter Eisenmann
Hrvastki: Natalija Grbac

9
.gitignore vendored
View File

@@ -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
.*

View File

@@ -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
View File

@@ -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

View File

@@ -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"
}
]
}
]
}
}

View File

@@ -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;
}

View File

@@ -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

View File

Before

Width:  |  Height:  |  Size: 730 B

After

Width:  |  Height:  |  Size: 730 B

View File

Before

Width:  |  Height:  |  Size: 776 B

After

Width:  |  Height:  |  Size: 776 B

View 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

View 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 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

View File

Before

Width:  |  Height:  |  Size: 573 B

After

Width:  |  Height:  |  Size: 573 B

View 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"><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

View File

Before

Width:  |  Height:  |  Size: 303 B

After

Width:  |  Height:  |  Size: 303 B

View File

@@ -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
)

View File

@@ -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
View 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;
}

View File

@@ -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>

View 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,
]
}

View File

@@ -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>

View 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 {}
}

View File

@@ -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>

View File

@@ -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(),
})

View 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 {}

View 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"]
}
}

View File

@@ -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>

View 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;
}
}

View 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"]
};
};
}
}

View File

@@ -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>

View 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";
}
}
}

View File

@@ -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>

View 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"]
}
}

View File

@@ -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>

View 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;
}
}
}

View File

@@ -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>

View 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;
}

View 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";
}
}
}

View File

@@ -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>

View 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"]
}
};
}
}

View File

@@ -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>

View 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 {}

View 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 {}

View File

@@ -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>

View 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"]
}
}
}

View 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 {}

View File

@@ -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>

View 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"]
}
}

View File

@@ -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>

View 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"]
};
};
}
}

View File

@@ -0,0 +1,9 @@
using Gtk 4.0;
using Adw 1;
template $RestartPage : Box {
Adw.Spinner {
hexpand: true;
vexpand: true;
}
}

View File

@@ -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>

View File

@@ -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>

View 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"]
}
}

View 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"]
}
}

View File

@@ -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>

View 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"]
}
}
}

View 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"]
}
};
}

View 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"]
};
}
}
}

View File

@@ -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>

View File

@@ -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>

View 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 {}

View File

@@ -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>

View 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;
}
}
};
};
}

View 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";
}
}

View File

@@ -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>

View 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;
}
}

View File

@@ -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>

View File

@@ -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>

View 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;
}
}
}

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

View File

@@ -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'

View 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)

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 647 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 563 KiB

View 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

View 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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

View 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

View 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

View 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

View 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 ""

View 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"

View File

@@ -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

View File

@@ -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

View File

@@ -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.'

View File

@@ -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
View File

@@ -0,0 +1 @@
option('flatpak', type: 'boolean', value: false, description: 'Build with flatpak, install demo mode wrapper')

View 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

View File

@@ -0,0 +1,2 @@
#!/bin/sh
exec os-installer -d

View 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

View File

@@ -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

View File

@@ -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 ""

Some files were not shown because too many files have changed in this diff Show More