Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion settings_online.conf
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ sequence:
- shellprocess@before-online
- pacstrap
- machineid
- users
Comment thread
vnepogodin marked this conversation as resolved.
- locale
- keyboard
- localecfg
Expand All @@ -84,7 +85,6 @@ sequence:
- zfshostid
- initcpiocfg
- initcpio
- users
- networkcfg
- displaymanager
- hwclock
Expand Down
2 changes: 2 additions & 0 deletions src/libcalamares/pybind11/PythonJob.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,8 @@ populate_utils( py::module_& m )
"Displays warning to user",
py::arg( "title" ),
py::arg( "description" ));

m.def( "get_target_platform", &Calamares::Python::get_target_platform, "Get target platform name" );
}

void
Expand Down
4 changes: 4 additions & 0 deletions src/libcalamares/pyboost/PythonJob.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,10 @@ BOOST_PYTHON_MODULE( libcalamares )
"Applying the function to a string obscured by this function will result "
"in the original string." );

bp::def( "get_target_platform",
&Calamares::Python::get_target_platform,
"Get target platform name" );

// .. Translation functions
bp::def( "gettext_languages",
&Calamares::Python::gettext_languages,
Expand Down
8 changes: 8 additions & 0 deletions src/libcalamares/python/Api.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
#include "JobQueue.h"
#include "locale/Global.h"
#include "partition/Mount.h"
#include "utils/System.h"
#include "utils/Logger.h"
#include "utils/RAII.h"
#include "utils/String.h"
Expand Down Expand Up @@ -215,5 +216,12 @@ show_warning( const std::string& title, const std::string& description )
return Python::None();
}

Python::Object
get_target_platform()
{
QString platform = Calamares::System::instance()->getTargetPlatform();
return String( platform.toStdString() );
}

}
}
1 change: 1 addition & 0 deletions src/libcalamares/python/Api.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ namespace Python __attribute__( ( visibility( "hidden" ) ) )
const std::string& options = std::string() );

Object show_warning( const std::string& title, const std::string& description );
Object get_target_platform();
}
}

Expand Down
16 changes: 16 additions & 0 deletions src/libcalamares/utils/System.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ System::System( bool doChroot, QObject* parent )
{
Calamares::JobQueue::instance()->globalStorage()->insert( "rootMountPoint", "/" );
}

}

System::~System() {}
Expand Down Expand Up @@ -287,6 +288,21 @@ System::doChroot() const
return m_doChroot;
}

QString
System::getTargetPlatform() const
{
QFile tag("/etc/edition-tag");
QString platform;

if (tag.open(QIODevice::ReadOnly | QIODevice::Text))
{
QByteArray edition = tag.readLine().trimmed();
platform = QString(edition);
}

return platform.simplified();
}

Calamares::JobResult
ProcessResult::explainProcess( int ec, const QString& command, const QString& output, std::chrono::seconds timeout )
{
Expand Down
3 changes: 3 additions & 0 deletions src/libcalamares/utils/System.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@

#include "Job.h"

#include <QFile>
#include <QObject>
#include <QPair>
#include <QString>
Expand Down Expand Up @@ -354,6 +355,8 @@ class DLLEXPORT System : public QObject

DLLEXPORT bool doChroot() const;

DLLEXPORT QString getTargetPlatform() const;

private:
static System* s_instance;

Expand Down
30 changes: 30 additions & 0 deletions src/modules/bootloader/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import re
import shutil
import subprocess
import json

import libcalamares

Expand Down Expand Up @@ -751,6 +752,24 @@ def add_additional_entries_limine(efi_directory, installation_root_path, fw_type
config_file.write(f"\tdrive: {diskseq}\n")
config_file.write(f"\tpartition: {partition_number}\n")


def get_device_rotation():
drm_info = subprocess.check_output(['drm_info', '-j'], stderr=subprocess.DEVNULL)
data = json.loads(drm_info)

for _, card in data.items():
connectors = card.get("connectors")

if not connectors:
continue

properties = connectors[0].get("properties", {})

if "panel orientation" in properties:
return properties["panel orientation"].get("value", 0)

return 0
Comment thread
ventureoo marked this conversation as resolved.

def update_limine_config(efi_directory, installation_root_path, fw_type):
"""
:param efi_directory: The path to the efi directory relative to the root
Expand All @@ -765,8 +784,19 @@ def update_limine_config(efi_directory, installation_root_path, fw_type):
with open(config_path, 'w') as config_file:
config_file.write("timeout: 5\n")
config_file.write("default_entry: 2\n")

if fw_type == "efi":
config_file.write("remember_last_entry: yes\n")

if libcalamares.utils.get_target_platform() == "handheld":
rotation = get_device_rotation()
if rotation == 1:
config_file.write("interface_rotation: 180\n")
elif rotation == 2:
config_file.write("interface_rotation: 270\n")
elif rotation == 3:
config_file.write("interface_rotation: 90\n")

config_file.write("\n")

# Copy splash logo
Expand Down
6 changes: 6 additions & 0 deletions src/modules/displaymanager/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -1026,6 +1026,12 @@ def run():
If a displaymanager is in the list but not installed, a debugging message
is printed and the entry ignored.
"""
if libcalamares.utils.get_target_platform() == "handheld":
libcalamares.utils.warning(
"Skipping, due to installation on handheld system"
Comment thread
vnepogodin marked this conversation as resolved.
)
return None

# Get configuration settings for display managers
displaymanagers = None
if "displaymanagers" in libcalamares.job.configuration:
Expand Down
20 changes: 14 additions & 6 deletions src/modules/netinstall/PackageModel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

#include "compat/Variant.h"
#include "utils/Logger.h"
#include "utils/System.h"
#include "utils/Variant.h"
#include "utils/Yaml.h"
#include "widgets/TranslationFix.h"
Expand Down Expand Up @@ -367,6 +368,7 @@ PackageModel::getItemPackages( PackageTreeItem* item ) const
void
PackageModel::setupModelData( const QVariantList& groupList, PackageTreeItem* parent )
{
QString targetPlatform = Calamares::System::instance()->getTargetPlatform();
for ( const auto& group : groupList )
{
QVariantMap groupMap = group.toMap();
Expand Down Expand Up @@ -436,17 +438,23 @@ PackageModel::setupModelData( const QVariantList& groupList, PackageTreeItem* pa
}
if ( item->isHidden() )
{
m_hiddenItems.append( item );
if ( !item->isSelected() )
if ( item->platform() == targetPlatform || item->platform() == "any" )
{
cWarning() << "Item" << ( item->parentItem() ? item->parentItem()->name() : QString() ) << '.'
<< item->name() << "is hidden, but not selected.";
m_hiddenItems.append( item );
if ( !item->isSelected() )
{
cWarning() << "Item" << ( item->parentItem() ? item->parentItem()->name() : QString() ) << '.'
<< item->name() << "is hidden, but not selected.";
}
}
}
else
{
item->setCheckable( true );
parent->appendChild( item );
if ( item->platform() == targetPlatform || item->platform() == "any" )
{
item->setCheckable( true );
parent->appendChild( item );
}
}
}
}
Expand Down
4 changes: 3 additions & 1 deletion src/modules/netinstall/PackageTreeItem.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ PackageTreeItem::PackageTreeItem( const QVariantMap& groupData, PackageTag&& par
, m_packageName( Calamares::getString( groupData, "name" ) )
, m_selected( parentCheckState( parent.parent ) )
, m_description( Calamares::getString( groupData, "description" ) )
, m_platform( Calamares::getString( groupData, "platform", "any" ) )
, m_isGroup( false )
, m_isCritical( parent.parent ? parent.parent->isCritical() : false )
, m_showReadOnly( parent.parent ? parent.parent->isImmutable() : false )
Expand All @@ -70,6 +71,7 @@ PackageTreeItem::PackageTreeItem( const QVariantMap& groupData, GroupTag&& paren
, m_name( Calamares::getString( groupData, "name" ) )
, m_selected( parentCheckState( parent.parent ) )
, m_description( Calamares::getString( groupData, "description" ) )
, m_platform( Calamares::getString( groupData, "platform", "any" ) )
, m_preScript( Calamares::getString( groupData, "pre-install" ) )
, m_postScript( Calamares::getString( groupData, "post-install" ) )
, m_source( Calamares::getString( groupData, "source" ) )
Expand Down Expand Up @@ -302,7 +304,7 @@ PackageTreeItem::operator==( const PackageTreeItem& rhs ) const
{
return name() == rhs.name() && description() == rhs.description() && preScript() == rhs.preScript()
&& postScript() == rhs.postScript() && isCritical() == rhs.isCritical() && isHidden() == rhs.isHidden()
&& m_showReadOnly == rhs.m_showReadOnly && expandOnStart() == rhs.expandOnStart();
&& m_showReadOnly == rhs.m_showReadOnly && expandOnStart() == rhs.expandOnStart() && platform() == rhs.platform();
}
else
{
Expand Down
2 changes: 2 additions & 0 deletions src/modules/netinstall/PackageTreeItem.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ class PackageTreeItem : public QStandardItem
QString packageName() const { return m_packageName; }

QString description() const { return m_description; }
QString platform() const { return m_platform; }
QString preScript() const { return m_preScript; }
QString postScript() const { return m_postScript; }
QString source() const { return m_source; }
Expand Down Expand Up @@ -165,6 +166,7 @@ class PackageTreeItem : public QStandardItem

// These are only useful for groups
QString m_description;
QString m_platform;
QString m_preScript;
QString m_postScript;
QString m_source;
Expand Down
2 changes: 1 addition & 1 deletion src/modules/netinstall/netinstall.conf
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
---

groupsUrl:
- https://raw.githubusercontent.com/CachyOS/cachyos-calamares/cachyos/src/modules/netinstall/netinstall.yaml
- https://raw.githubusercontent.com/CachyOS/cachyos-calamares/cachyos-dev-deckify/src/modules/netinstall/netinstall.yaml
- file:///etc/calamares/modules/netinstall.yaml

required: true
Expand Down
1 change: 1 addition & 0 deletions src/modules/netinstall/netinstall.schema.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ definitions:
critical: { type: boolean, default: false }
immutable: { type: boolean }
noncheckable: { type: boolean }
platform: { type: string }
expanded: { type: boolean }
subgroups:
type: array
Expand Down
Loading