|
3 | 3 | <h1>Vanilla OS First Setup</h1>
|
4 | 4 | <p>This utility is meant to be used in <a href="https://github.com/vanilla-os">Vanilla OS</a>
|
5 | 5 | as a first-setup wizard. Its purpose is to help the user to configure the
|
6 |
| - system to their needs, e.g. by configuring snap, flatpak, flathub, etc.</p> |
| 6 | + system to their needs, e.g. by configuring hostname, theme, flatpak apps, etc.</p> |
7 | 7 | <hr />
|
8 |
| - <a href="https://hosted.weblate.org/engage/vanilla-os/"> |
| 8 | + <a href="https://hosted.weblate.org/projects/vanilla-os/first-setup/#information"> |
9 | 9 | <img src="https://hosted.weblate.org/widgets/vanilla-os/-/first-setup/svg-badge.svg" alt="Translation status" />
|
10 | 10 | </a>
|
11 | 11 | <br />
|
12 |
| - <img src="data/screenshot-1.png"> |
| 12 | + <img src="data/screenshots/welcome-page.png"> |
13 | 13 | </div>
|
14 | 14 |
|
| 15 | +## Run without building for Testing |
| 16 | + |
| 17 | +> [!IMPORTANT] |
| 18 | +> You need to install all build and run dependencies first |
| 19 | +
|
| 20 | +```bash |
| 21 | +python3 test.py -d |
| 22 | +``` |
| 23 | + |
| 24 | +The "-d" option is the dry-run mode, without it, first-setup will make changes to your system. |
| 25 | + |
| 26 | +Pass the "-c" flag to force the configure system mode. |
| 27 | + |
| 28 | +### Test translations: |
| 29 | + |
| 30 | +You can change the used language like this: |
| 31 | +```bash |
| 32 | +LANGUAGE=de python3 test.py -d |
| 33 | +``` |
| 34 | + |
15 | 35 | ## Build
|
16 | 36 |
|
17 |
| -### Build Dependencies |
| 37 | +### Installing build dependencies |
| 38 | +```bash |
| 39 | +sudo apt-get update |
| 40 | +sudo apt-get build-dep . |
| 41 | +``` |
| 42 | + |
| 43 | +If you want to install the build dependencies manually, have a look in: |
| 44 | +[debian/control](https://github.com/Vanilla-OS/first-setup/blob/main/debian/control) |
| 45 | + |
| 46 | +### Building |
| 47 | + |
| 48 | +> [!WARNING] |
| 49 | +> dpkg-buildpackage places it's output files (Like the .deb file) into the parent folder. |
| 50 | +
|
18 | 51 | ```bash
|
19 |
| -sudo apt install -y build-essential debhelper \ |
20 |
| - python3 meson \ |
21 |
| - libadwaita-1-dev gettext \ |
22 |
| - desktop-file-utils \ |
23 |
| - libjpeg-dev libnm-dev \ |
24 |
| - libnma-dev libnma-gtk4-dev \ |
25 |
| - ninja-build |
| 52 | +dpkg-buildpackage |
26 | 53 | ```
|
27 | 54 |
|
28 |
| -### Runtime Dependencies |
| 55 | +or manually with meson: |
| 56 | + |
29 | 57 | ```bash
|
30 |
| -sudo apt install -y python3 python3-gi \ |
31 |
| - python3-tz libadwaita-1-0 \ |
32 |
| - gir1.2-gtk-4.0 gir1.2-adw-1 \ |
33 |
| - gir1.2-vte-3.91 libnm0 \ |
34 |
| - libnma0 libnma-gtk4-0 |
| 58 | +meson setup build |
| 59 | +meson compile -C build |
35 | 60 | ```
|
36 | 61 |
|
37 |
| -#### Optional Dependencies |
| 62 | +Here you can change the install folder (default is /usr/local), for example: |
38 | 63 | ```bash
|
39 |
| -sudo apt install python-requests # required for conn_check |
40 |
| -sudo apt install gir1.2-gweather-4.0 # required for timezones |
41 |
| -sudo apt install gir1.2-gnomedesktop-4.0 # required for languages, keyboard |
42 |
| -sudo apt install gir1.2-nma4-1.0 # required for network |
43 |
| -sudo apt install gir1.2-nm-1.0 # required for network |
| 64 | +meson setup --prefix="$(pwd)/install" build |
44 | 65 | ```
|
45 | 66 |
|
46 |
| -### Build |
| 67 | +## Install |
| 68 | + |
| 69 | +### Installing runtime dependencies |
| 70 | +These can be found here: |
| 71 | +[debian/control](https://github.com/Vanilla-OS/first-setup/blob/main/debian/control) |
| 72 | + |
| 73 | +> [!TIP] |
| 74 | +> If you use apt-get to install the .deb file it will automatically install the dependencies. |
| 75 | +
|
| 76 | +### Installing |
47 | 77 |
|
48 | 78 | ```bash
|
49 |
| -meson build |
50 |
| -ninja -C build |
| 79 | +sudo apt-get install ./vanilla-first-setup*.deb |
51 | 80 | ```
|
52 | 81 |
|
53 |
| -### Install |
| 82 | +or manually with meson: |
54 | 83 |
|
55 | 84 | ```bash
|
56 |
| -sudo ninja -C build install |
| 85 | +meson install -C build |
57 | 86 | ```
|
58 | 87 |
|
59 | 88 | ## Run
|
60 | 89 |
|
| 90 | +### Creating initial user |
| 91 | + |
| 92 | +A special user is needed to run the initial setup for hostname, user-creation, locale, etc. |
| 93 | + |
| 94 | +1. Create a user |
| 95 | +2. Create the group vanilla-first-setup (Changing the gid is recommended to avoid messing with user groups) |
| 96 | +3. Add the user to group vanilla-first-setup |
| 97 | +4. Create the file `/var/lib/AccountsService/users/your_user` |
| 98 | +```ini |
| 99 | +[User] |
| 100 | +Session=firstsetup |
| 101 | +``` |
| 102 | +5. Create the file `/etc/gdm3/daemon.conf` (replace your_user) |
| 103 | +```ini |
| 104 | +[daemon] |
| 105 | +AutomaticLogin=your_user |
| 106 | +AutomaticLoginEnable=True |
| 107 | +``` |
| 108 | + |
| 109 | +> [!WARNING] |
| 110 | +> All users in this group will be deleted on the first reboot after a successful first setup. |
| 111 | +
|
| 112 | +### Running |
61 | 113 | ```bash
|
62 | 114 | vanilla-first-setup
|
63 | 115 | ```
|
64 | 116 |
|
65 |
| -### Using custom recipes |
| 117 | +#### Flags: |
| 118 | + |
| 119 | +- --dry-run (-d): Don't make any changes to the system. |
| 120 | +- --force-configure-mode (-c): Force the configure system mode, independant of group. |
| 121 | +- --force-regular-mode (-r): Force the regular mode, independant of group. |
| 122 | +- --oem-mode (-o): Use the original equipment manufacturer mode with language, keyboard and timezone selection. |
66 | 123 |
|
67 |
| -Place a new recipe in `/etc/vanilla-first-setup/recipe.json` or launch the |
68 |
| -utility with the `VANILLA_CUSTOM_RECIPE` environment variable set to the path |
69 |
| -of the recipe. |
| 124 | +## Update translation file |
| 125 | + |
| 126 | +To update the .pot file with newly added translation strings, run: |
| 127 | + |
| 128 | +```bash |
| 129 | +meson compile -C build vanilla-first-setup-pot |
| 130 | +``` |
0 commit comments