diff --git a/debian/calamares-settings-tileos-niri.install b/debian/calamares-settings-tileos-niri.install new file mode 100644 index 0000000..fb69794 --- /dev/null +++ b/debian/calamares-settings-tileos-niri.install @@ -0,0 +1,5 @@ +niri/branding/ etc/calamares/ +niri/modules/*conf etc/calamares/modules/ +niri/settings.conf etc/calamares/ +niri/install-tileos-river usr/bin/ +niri/install-tileos-river.desktop usr/share/applications/ diff --git a/debian/changelog b/debian/changelog index c95ef13..512f2cf 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +calamares-settings-tileos (2.0.1~tileos) unstable; urgency=medium + + * Add Niri installer + * Fix version + + -- Aleksey Samoilov Mon, 09 Jun 2025 22:45:16 +0400 + calamares-settings-tileos (2.0.0~tileos) unstable; urgency=medium * Initial release for Sauropod diff --git a/debian/control b/debian/control index e73ca7e..2ce20e0 100644 --- a/debian/control +++ b/debian/control @@ -18,6 +18,17 @@ Description: TileOS Miracle-WM theme and settings for the Calamares Installer package provides the latest TileOS artwork as well as scripts that supports EFI installations. +Package: calamares-settings-tileos-niri +Architecture: all +Depends: calamares-settings-tileos-common +Conflicts: calamaes-settings-tileos-river, calamares-settings-debian, calamaes-settings-tileos-sway, calamares-settings-tileos-miracle +Provides: calamares-settings +Description: TileOS Niri theme and settings for the Calamares Installer + Calamares is a generic installer framework for Linux distributions. + By default, it contains a set of boilerplate wording and images. This + package provides the latest TileOS artwork as well as scripts that + supports EFI installations. + Package: calamares-settings-tileos-qtile Architecture: all Depends: calamares-settings-tileos-common diff --git a/miracle/branding/tileos-miracle/Sway.png b/miracle/branding/tileos-miracle/Sway.png deleted file mode 100644 index 1a53cf3..0000000 Binary files a/miracle/branding/tileos-miracle/Sway.png and /dev/null differ diff --git a/miracle/branding/tileos-miracle/branding.desc b/miracle/branding/tileos-miracle/branding.desc index 6ba826d..19fb063 100644 --- a/miracle/branding/tileos-miracle/branding.desc +++ b/miracle/branding/tileos-miracle/branding.desc @@ -1,15 +1,15 @@ --- -componentName: tileos-sway +componentName: tileos-miracle windowExpanding: normal windowSize: "890px,600px" strings: productName: TileOS shortProductName: TileOS - version: 1.1 (t-rex) - shortVersion: 1.1 - versionedName: TileOS 1.1 (t-rex) - shortVersionedName: TileOS 1.1 + version: 2.0 (sauropod) + shortVersion: 2.0 + versionedName: TileOS 2.0 (sauropod) + shortVersionedName: TileOS 2.0 bootloaderEntryName: TileOS supportUrl: https://gitlab.com/tile-os/tileos/-/issues diff --git a/miracle/branding/tileos-miracle/show.qml b/miracle/branding/tileos-miracle/show.qml index d54dc78..93838b3 100644 --- a/miracle/branding/tileos-miracle/show.qml +++ b/miracle/branding/tileos-miracle/show.qml @@ -29,19 +29,6 @@ Presentation repeat: true onTriggered: presentation.goToNextSlide() } - Slide { - Image { - anchors.centerIn: parent - id: image1 - x:0 - y:0 - width: 810 - height: 485 - fillMode: Image.PreserveAspectFit - smooth: true - source: "Sway.png" - } - } Slide { Image { anchors.centerIn: parent diff --git a/niri/branding/tileos-niri/Features.png b/niri/branding/tileos-niri/Features.png new file mode 100644 index 0000000..788540a Binary files /dev/null and b/niri/branding/tileos-niri/Features.png differ diff --git a/niri/branding/tileos-niri/Follow.png b/niri/branding/tileos-niri/Follow.png new file mode 100644 index 0000000..1935b05 Binary files /dev/null and b/niri/branding/tileos-niri/Follow.png differ diff --git a/niri/branding/tileos-niri/Software.png b/niri/branding/tileos-niri/Software.png new file mode 100644 index 0000000..bef434a Binary files /dev/null and b/niri/branding/tileos-niri/Software.png differ diff --git a/niri/branding/tileos-niri/branding.desc b/niri/branding/tileos-niri/branding.desc new file mode 100644 index 0000000..7d730a8 --- /dev/null +++ b/niri/branding/tileos-niri/branding.desc @@ -0,0 +1,30 @@ +--- +componentName: tileos-niri +windowExpanding: normal +windowSize: "890px,600px" + +strings: + productName: TileOS + shortProductName: TileOS + version: 2.0 (sauropod) + shortVersion: 2.0 + versionedName: TileOS 2.0 (sauropod) + shortVersionedName: TileOS 2.0 + bootloaderEntryName: TileOS + supportUrl: https://gitlab.com/tile-os/tileos/-/issues + +images: + productLogo: "tileos-logo.png" + productIcon: "tileos-logo.png" + productWelcome: "welcome.png" + # productWallpaper: "wallpaper.png" + +slideshow: "show.qml" + +style: + sidebarBackground: "#1e2030" + sidebarText: "#cad3f5" + sidebarTextSelect: "#24273a" + sidebarTextSelect: "#24273a" + +slideshowAPI: 2 diff --git a/niri/branding/tileos-niri/show.qml b/niri/branding/tileos-niri/show.qml new file mode 100644 index 0000000..93838b3 --- /dev/null +++ b/niri/branding/tileos-niri/show.qml @@ -0,0 +1,71 @@ +/* === This file is part of Calamares - === + * + * Copyright 2015, Teo Mrnjavac + * Copyright 2018-2019, Jonathan Carter + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, or (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +import QtQuick 2.0; +import calamares.slideshow 1.0; + +Presentation +{ + id: presentation + + Timer { + interval: 20000 + running: true + repeat: true + onTriggered: presentation.goToNextSlide() + } + Slide { + Image { + anchors.centerIn: parent + id: image2 + x:0 + y:0 + width: 810 + height: 485 + fillMode: Image.PreserveAspectFit + smooth: true + source: "Features.png" + } + } + Slide { + Image { + anchors.centerIn: parent + id: image3 + x:0 + y:0 + width: 810 + height: 485 + fillMode: Image.PreserveAspectFit + smooth: true + source: "Software.png" + } + } + Slide { + Image { + anchors.centerIn: parent + id: image4 + x:0 + y:0 + width: 810 + height: 485 + fillMode: Image.PreserveAspectFit + smooth: true + source: "Follow.png" + } + } +} diff --git a/niri/branding/tileos-niri/stylesheet.qss b/niri/branding/tileos-niri/stylesheet.qss new file mode 100644 index 0000000..44ac77a --- /dev/null +++ b/niri/branding/tileos-niri/stylesheet.qss @@ -0,0 +1,46 @@ +/* + +A branding component can ship a stylesheet (like this one) +which is applied to parts of the Calamares user-interface. +In principle, all parts can be styled through CSS. +Missing parts should be filed as issues. + +The IDs are based on the object names in the C++ code. + +Documentation for styling Qt Widgets through a stylesheet +can be found at + https://doc.qt.io/qt-5/stylesheet-examples.html +In Calamares, styling widget classes is supported (e.g. +using `QComboBox` as a selector). You can also use specific +object names (ids), which you can find through debugging tools. + +*/ + +/* Main application window. */ + +#mainApp { +} + +/*-----QPushButton-----*/ + +QPushButton::flat { + background-color: transparent; + border: none; + color: #cad3f5; +} + +/* Partitioning module. + +#bootInfoIcon { } +#bootInfoLable { } +#deviceInfoIcon { } +#defineInfoLabel { } +#scrollAreaWidgetContents { } +#partitionBarView { } +*/ + +/* Licensing module. + +#licenseItem { } +#licenseItemFullText { } +*/ diff --git a/niri/branding/tileos-niri/tileos-logo.png b/niri/branding/tileos-niri/tileos-logo.png new file mode 100644 index 0000000..e84bb9e Binary files /dev/null and b/niri/branding/tileos-niri/tileos-logo.png differ diff --git a/niri/branding/tileos-niri/welcome.png b/niri/branding/tileos-niri/welcome.png new file mode 100755 index 0000000..d95895b Binary files /dev/null and b/niri/branding/tileos-niri/welcome.png differ diff --git a/niri/install-tileos-niri b/niri/install-tileos-niri new file mode 100755 index 0000000..91b5332 --- /dev/null +++ b/niri/install-tileos-niri @@ -0,0 +1,4 @@ +#!/bin/bash + +export BROWSER='sudo -H -u tileos firefox' +QT_STYLE_OVERRIDE=fusion calamares -D8 diff --git a/niri/install-tileos-niri.desktop b/niri/install-tileos-niri.desktop new file mode 100644 index 0000000..fca1569 --- /dev/null +++ b/niri/install-tileos-niri.desktop @@ -0,0 +1,13 @@ +[Desktop Entry] +Type=Application +Version=1.0 +Name=Install TileOS +GenericName=Calamares Installer +Exec=sudo -E /usr/bin/install-tileos-niri +Comment=Install TileOS River Edition +Keywords=calamares;system;install;debian;installer +Icon=calamares +Terminal=false +Categories=Qt;System; +StartupWMClass=calamares +StartupNotify=True diff --git a/niri/modules/displaymanager.conf b/niri/modules/displaymanager.conf new file mode 100644 index 0000000..618c47a --- /dev/null +++ b/niri/modules/displaymanager.conf @@ -0,0 +1,13 @@ +displaymanagers: + - greetd + +greetd: + greeter_user: "_greetd" + greeter_group: "_greetd" + +defaultDesktopEnvironment: + executable: "niri-session" + desktopFile: "niri" + +basicSetup: false +sysconfigSetup: false diff --git a/niri/modules/packages.conf b/niri/modules/packages.conf new file mode 100644 index 0000000..e8b016b --- /dev/null +++ b/niri/modules/packages.conf @@ -0,0 +1,18 @@ +backend: apt + +skip_if_no_internet: false +update_db: true +update_system: false + +operations: + - remove: + - 'live-boot' + - 'live-boot-doc' + - 'live-config' + - 'live-config-doc' + - 'live-config-systemd' + - 'live-config-systemd' + - 'live-tools' + - 'live-task-localisation' + - 'live-task-recommended' + - 'calamares-settings-tileos-river' diff --git a/niri/modules/partition.conf b/niri/modules/partition.conf new file mode 100644 index 0000000..33a57ce --- /dev/null +++ b/niri/modules/partition.conf @@ -0,0 +1,6 @@ +efiSystemPartition: "/boot/efi" +enableLuksAutomatedPartitioning: true +userSwapChoices: + - none +drawNestedPartitions: true +defaultFileSystemType: "ext4" diff --git a/niri/modules/unpackfs.conf b/niri/modules/unpackfs.conf new file mode 100644 index 0000000..833a68b --- /dev/null +++ b/niri/modules/unpackfs.conf @@ -0,0 +1,5 @@ +--- +unpack: + - source: "/run/live/medium/live/filesystem.squashfs" + sourcefs: "squashfs" + destination: "" diff --git a/niri/modules/users.conf b/niri/modules/users.conf new file mode 100644 index 0000000..0f2082a --- /dev/null +++ b/niri/modules/users.conf @@ -0,0 +1,17 @@ +--- +userGroup: users +defaultGroups: + - cdrom + - floppy + - sudo + - audio + - dip + - video + - plugdev + - netdev + - lpadmin + - scanner + - bluetooth +autologinGroup: autologin +sudoersGroup: sudo +setRootPassword: false diff --git a/niri/modules/welcome.conf b/niri/modules/welcome.conf new file mode 100644 index 0000000..4e94321 --- /dev/null +++ b/niri/modules/welcome.conf @@ -0,0 +1,27 @@ +--- +showSupportUrl: true +showKnownIssuesUrl: false +showReleaseNotesUrl: false + +requirements: + requiredStorage: 20 + requiredRam: 1.0 + internetCheckUrl: https://google.com/ + + check: + - storage + - ram + - power + - root + - internet + required: + - storage + - ram + - root + - internet + +# Try to set language if internet available +geoip: + style: "json" + url: "https://ipapi.co/json" + selector: "country" diff --git a/niri/settings.conf b/niri/settings.conf new file mode 100644 index 0000000..afae24f --- /dev/null +++ b/niri/settings.conf @@ -0,0 +1,134 @@ +# Configuration file for Calamares +# Syntax is YAML 1.2 +--- + +# "local" is LIBDIR/calamares/modules with settings in SHARE/calamares/modules +modules-search: [ local, /usr/lib/calamares/modules ] + +# If this is set to true, Calamares refers to itself as a "setup program" +# rather than an "installer". Defaults to the value of dont-chroot, but +# Calamares will complain if this is not explicitly set. +oem-setup: false + +# If this is set to true, the "Cancel" button will be disabled entirely. +# The button is also hidden from view. +# +# This can be useful if when e.g. Calamares is used as a post-install +# configuration tool and you require the user to go through all the +# configuration steps. +# +# Default is false, but Calamares will complain if this is not explicitly set. +# +# YAML: boolean. +disable-cancel: false + +# If this is set to true, the "Cancel" button will be disabled once +# you start the 'Installation', meaning there won't be a way to cancel +# the Installation until it has finished or installation has failed. +# +# Default is false, but Calamares will complain if this is not explicitly set. +# +# YAML: boolean. +disable-cancel-during-exec: false + +# If this is set to true, the "Next" and "Back" button will be hidden once +# you start the 'Installation'. +# +# Default is false, but Calamares will complain if this is not explicitly set. +# +# YAML: boolean. +hide-back-and-next-during-exec: false + +# If this is set to true, then once the end of the sequence has +# been reached, the quit (done) button is clicked automatically +# and Calamares will close. Default is false: the user will see +# that the end of installation has been reached, and that things are ok. +# +# +quit-at-end: false + +sequence: +# Phase 1 - prepare. +# View modules are shown as UI pages, jobs from job modules +# are executed immediately in the background. +# Jobs should be executed sparingly (if at all) in this phase. +- show: + - welcome + - locale + - keyboard + - netinstall + - partition + - users + - summary + +# Phase 2 - install. +# View modules are not shown. Only the view modules shown +# in the previous phase are allowed, their names should be +# added here as placeholders to specify the order in which +# view module jobs should be enqueued. Job modules are +# also allowed. +- exec: + - partition + - mount + - unpackfs + - dpkg-unsafe-io + - machineid + - fstab + - locale + - keyboard + - localecfg + - luksbootkeyfile + - users + - displaymanager + - networkcfg + - hwclock + - services-systemd + - initramfscfg + - initramfs + - grubcfg + - bootloader-config + - bootloader + - packages + - plymouthcfg + - dpkg-unsafe-io-undo + - sources-final + - umount + +# Phase 3 - postinstall. +# View modules are shown as UI pages, jobs from job modules are +# executed immediately in the background. +# Jobs should be executed sparingly (if at all) in this phase. +- show: + - finished + +# A branding component is a directory, either in +# SHARE/calamares/branding or in /etc/calamares/branding +# (the latter takes precedence). The directory must contain a +# YAML file branding.desc which may reference additional resources +# (such as images) as paths relative to the current directory. +# Only the name of the branding component (directory) should be +# specified here, Calamares then takes care of finding it and +# loading the contents. +branding: tileos-river + +# If this is set to true, Calamares will show an "Are you sure?" prompt right +# before each execution phase, i.e. at points of no return. If this is set to +# false, no prompt is shown. Default is false. +# +# YAML: boolean. +prompt-install: false + +# If this is set to true, Calamares will execute all target environment +# commands in the current environment, without chroot. This setting should +# only be used when setting up Calamares as a post-install configuration tool, +# as opposed to a full operating system installer. +# +# Some official Calamares modules are not expected to function with this +# setting. (e.g. partitioning seems like a bad idea, since that is expected to +# have been done already) +# +# Default is false (for a normal installer). +# +# YAML: boolean. +dont-chroot: false + diff --git a/qtile/branding/tileos-qtile/branding.desc b/qtile/branding/tileos-qtile/branding.desc index c806cdb..c3825c6 100644 --- a/qtile/branding/tileos-qtile/branding.desc +++ b/qtile/branding/tileos-qtile/branding.desc @@ -6,10 +6,10 @@ windowSize: "890px,600px" strings: productName: TileOS shortProductName: TileOS - version: 1.2 (t-rex) - shortVersion: 1.2 - versionedName: TileOS 1.2 (t-rex) - shortVersionedName: TileOS 1.2 + version: 2.0 (sauropod) + shortVersion: 2.0 + versionedName: TileOS 2.0 (sauropod) + shortVersionedName: TileOS 2.0 bootloaderEntryName: TileOS supportUrl: https://gitlab.com/tile-os/tileos/-/issues diff --git a/river/branding/tileos-river/branding.desc b/river/branding/tileos-river/branding.desc index 55c50d5..d57001c 100644 --- a/river/branding/tileos-river/branding.desc +++ b/river/branding/tileos-river/branding.desc @@ -6,10 +6,10 @@ windowSize: "890px,600px" strings: productName: TileOS shortProductName: TileOS - version: 1.2 (t-rex) - shortVersion: 1.2 - versionedName: TileOS 1.2 (t-rex) - shortVersionedName: TileOS 1.2 + version: 2.0 (sauropod) + shortVersion: 2.0 + versionedName: TileOS 2.0 (sauropod) + shortVersionedName: TileOS 2.0 bootloaderEntryName: TileOS supportUrl: https://gitlab.com/tile-os/tileos/-/issues diff --git a/sway/branding/tileos-sway/branding.desc b/sway/branding/tileos-sway/branding.desc index 3714d50..d4b0cdc 100644 --- a/sway/branding/tileos-sway/branding.desc +++ b/sway/branding/tileos-sway/branding.desc @@ -6,10 +6,10 @@ windowSize: "890px,600px" strings: productName: TileOS shortProductName: TileOS - version: 1.2 (t-rex) + version: 2.0 (sauropod) shortVersion: 1.2 - versionedName: TileOS 1.2 (t-rex) - shortVersionedName: TileOS 1.2 + versionedName: TileOS 2.0 (sauropod) + shortVersionedName: TileOS 2.0 bootloaderEntryName: TileOS supportUrl: https://gitlab.com/tile-os/tileos/-/issues