Add Niri installer, fix versions

This commit is contained in:
Aleksey Samoilov 2025-06-09 22:46:15 +04:00
parent 4c42ce709e
commit 2faa70a556
26 changed files with 423 additions and 29 deletions

View file

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

7
debian/changelog vendored
View file

@ -1,3 +1,10 @@
calamares-settings-tileos (2.0.1~tileos) unstable; urgency=medium
* Add Niri installer
* Fix version
-- Aleksey Samoilov <samoilov.lex@gmail.com> Mon, 09 Jun 2025 22:45:16 +0400
calamares-settings-tileos (2.0.0~tileos) unstable; urgency=medium calamares-settings-tileos (2.0.0~tileos) unstable; urgency=medium
* Initial release for Sauropod * Initial release for Sauropod

11
debian/control vendored
View file

@ -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 package provides the latest TileOS artwork as well as scripts that
supports EFI installations. 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 Package: calamares-settings-tileos-qtile
Architecture: all Architecture: all
Depends: calamares-settings-tileos-common Depends: calamares-settings-tileos-common

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

View file

@ -1,15 +1,15 @@
--- ---
componentName: tileos-sway componentName: tileos-miracle
windowExpanding: normal windowExpanding: normal
windowSize: "890px,600px" windowSize: "890px,600px"
strings: strings:
productName: TileOS productName: TileOS
shortProductName: TileOS shortProductName: TileOS
version: 1.1 (t-rex) version: 2.0 (sauropod)
shortVersion: 1.1 shortVersion: 2.0
versionedName: TileOS 1.1 (t-rex) versionedName: TileOS 2.0 (sauropod)
shortVersionedName: TileOS 1.1 shortVersionedName: TileOS 2.0
bootloaderEntryName: TileOS bootloaderEntryName: TileOS
supportUrl: https://gitlab.com/tile-os/tileos/-/issues supportUrl: https://gitlab.com/tile-os/tileos/-/issues

View file

@ -29,19 +29,6 @@ Presentation
repeat: true repeat: true
onTriggered: presentation.goToNextSlide() 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 { Slide {
Image { Image {
anchors.centerIn: parent anchors.centerIn: parent

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

View file

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

View file

@ -0,0 +1,71 @@
/* === This file is part of Calamares - <http://github.com/calamares> ===
*
* Copyright 2015, Teo Mrnjavac <teo@kde.org>
* Copyright 2018-2019, Jonathan Carter <jcc@debian.org>
*
* 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 <http://www.gnu.org/licenses/>.
*/
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"
}
}
}

View file

@ -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 { }
*/

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

4
niri/install-tileos-niri Executable file
View file

@ -0,0 +1,4 @@
#!/bin/bash
export BROWSER='sudo -H -u tileos firefox'
QT_STYLE_OVERRIDE=fusion calamares -D8

View file

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

View file

@ -0,0 +1,13 @@
displaymanagers:
- greetd
greetd:
greeter_user: "_greetd"
greeter_group: "_greetd"
defaultDesktopEnvironment:
executable: "niri-session"
desktopFile: "niri"
basicSetup: false
sysconfigSetup: false

View file

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

View file

@ -0,0 +1,6 @@
efiSystemPartition: "/boot/efi"
enableLuksAutomatedPartitioning: true
userSwapChoices:
- none
drawNestedPartitions: true
defaultFileSystemType: "ext4"

View file

@ -0,0 +1,5 @@
---
unpack:
- source: "/run/live/medium/live/filesystem.squashfs"
sourcefs: "squashfs"
destination: ""

17
niri/modules/users.conf Normal file
View file

@ -0,0 +1,17 @@
---
userGroup: users
defaultGroups:
- cdrom
- floppy
- sudo
- audio
- dip
- video
- plugdev
- netdev
- lpadmin
- scanner
- bluetooth
autologinGroup: autologin
sudoersGroup: sudo
setRootPassword: false

27
niri/modules/welcome.conf Normal file
View file

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

134
niri/settings.conf Normal file
View file

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

View file

@ -6,10 +6,10 @@ windowSize: "890px,600px"
strings: strings:
productName: TileOS productName: TileOS
shortProductName: TileOS shortProductName: TileOS
version: 1.2 (t-rex) version: 2.0 (sauropod)
shortVersion: 1.2 shortVersion: 2.0
versionedName: TileOS 1.2 (t-rex) versionedName: TileOS 2.0 (sauropod)
shortVersionedName: TileOS 1.2 shortVersionedName: TileOS 2.0
bootloaderEntryName: TileOS bootloaderEntryName: TileOS
supportUrl: https://gitlab.com/tile-os/tileos/-/issues supportUrl: https://gitlab.com/tile-os/tileos/-/issues

View file

@ -6,10 +6,10 @@ windowSize: "890px,600px"
strings: strings:
productName: TileOS productName: TileOS
shortProductName: TileOS shortProductName: TileOS
version: 1.2 (t-rex) version: 2.0 (sauropod)
shortVersion: 1.2 shortVersion: 2.0
versionedName: TileOS 1.2 (t-rex) versionedName: TileOS 2.0 (sauropod)
shortVersionedName: TileOS 1.2 shortVersionedName: TileOS 2.0
bootloaderEntryName: TileOS bootloaderEntryName: TileOS
supportUrl: https://gitlab.com/tile-os/tileos/-/issues supportUrl: https://gitlab.com/tile-os/tileos/-/issues

View file

@ -6,10 +6,10 @@ windowSize: "890px,600px"
strings: strings:
productName: TileOS productName: TileOS
shortProductName: TileOS shortProductName: TileOS
version: 1.2 (t-rex) version: 2.0 (sauropod)
shortVersion: 1.2 shortVersion: 1.2
versionedName: TileOS 1.2 (t-rex) versionedName: TileOS 2.0 (sauropod)
shortVersionedName: TileOS 1.2 shortVersionedName: TileOS 2.0
bootloaderEntryName: TileOS bootloaderEntryName: TileOS
supportUrl: https://gitlab.com/tile-os/tileos/-/issues supportUrl: https://gitlab.com/tile-os/tileos/-/issues