Compare commits
2 Commits
ubuntu/nob
...
ubuntu/jam
Author | SHA1 | Date |
---|---|---|
Erich Eickmeyer | 52aa0cc771 | 1 year ago |
Erich Eickmeyer | 3bfd2f6c28 | 2 years ago |
@ -1,24 +0,0 @@
|
||||
# Ubuntu Studio's Calamares Branding (archived)
|
||||
|
||||
This directory houses the branding Ubuntu Studio used when Calamares was still
|
||||
being used as the installer, along with some additional potentially useful
|
||||
configuration fragments. Ubuntu Studio has since switched to using
|
||||
ubuntu-desktop-provision, and thus most of the actual configuration has been
|
||||
removed.
|
||||
|
||||
Unless otherwise stated, the contents of this directory are licensed as follows:
|
||||
|
||||
Copyright (C) 2020 Ubuntu Studio Developers <ubuntu-studio-devel@lists.ubuntu.com>
|
||||
|
||||
This program 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; either version 3
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program 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 this software. If not, see <http://www.gnu.org/licenses/>.
|
Before Width: | Height: | Size: 329 KiB |
Before Width: | Height: | Size: 379 KiB |
@ -1,45 +0,0 @@
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
|
||||
project(basicwallpaper VERSION 0.1 LANGUAGES CXX)
|
||||
|
||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||
|
||||
set(CMAKE_AUTOUIC ON)
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
find_package(QT NAMES Qt6 Qt5 COMPONENTS Widgets REQUIRED)
|
||||
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Widgets REQUIRED)
|
||||
|
||||
set(PROJECT_SOURCES
|
||||
main.cpp
|
||||
mainwindow.cpp
|
||||
mainwindow.h
|
||||
mainwindow.ui
|
||||
)
|
||||
|
||||
if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
|
||||
qt_add_executable(basicwallpaper
|
||||
MANUAL_FINALIZATION
|
||||
${PROJECT_SOURCES}
|
||||
)
|
||||
else()
|
||||
add_executable(basicwallpaper
|
||||
${PROJECT_SOURCES}
|
||||
)
|
||||
endif()
|
||||
|
||||
target_link_libraries(basicwallpaper PRIVATE Qt${QT_VERSION_MAJOR}::Widgets)
|
||||
|
||||
install(TARGETS basicwallpaper
|
||||
BUNDLE DESTINATION .
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
)
|
||||
|
||||
if(QT_VERSION_MAJOR EQUAL 6)
|
||||
qt_finalize_executable(basicwallpaper)
|
||||
endif()
|
@ -1,288 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorProject>
|
||||
<!-- Written by QtCreator 6.0.2, 2024-02-14T12:14:09. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>EnvironmentId</variable>
|
||||
<value type="QByteArray">{c72e8e96-4d64-44b5-94c8-e16820d11b4b}</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.ActiveTarget</variable>
|
||||
<value type="int">0</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.EditorSettings</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
|
||||
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
|
||||
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
|
||||
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
|
||||
<value type="QString" key="language">Cpp</value>
|
||||
<valuemap type="QVariantMap" key="value">
|
||||
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
|
||||
<value type="QString" key="language">QmlJS</value>
|
||||
<valuemap type="QVariantMap" key="value">
|
||||
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
<value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
|
||||
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
|
||||
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
|
||||
<value type="int" key="EditorConfiguration.IndentSize">4</value>
|
||||
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
|
||||
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
|
||||
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
|
||||
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
|
||||
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
|
||||
<value type="bool" key="EditorConfiguration.PreferSingleLineComments">false</value>
|
||||
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
|
||||
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
|
||||
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
|
||||
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
|
||||
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
|
||||
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
|
||||
<value type="int" key="EditorConfiguration.TabSize">8</value>
|
||||
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
|
||||
<value type="bool" key="EditorConfiguration.UseIndenter">false</value>
|
||||
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
|
||||
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
|
||||
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
|
||||
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
|
||||
<value type="QString" key="EditorConfiguration.ignoreFileTypes">*.md, *.MD, Makefile</value>
|
||||
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
|
||||
<value type="bool" key="EditorConfiguration.skipTrailingWhitespace">true</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Target.0</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="QString" key="DeviceType">Desktop</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{c8b6ccbc-b12c-473e-83be-23a4b6d2eb6e}</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||
<value type="QString" key="CMake.Build.Type">Debug</value>
|
||||
<value type="QString" key="CMake.Initial.Parameters">-GUnix Makefiles
|
||||
-DCMAKE_BUILD_TYPE:STRING=Debug
|
||||
-DCMAKE_PROJECT_INCLUDE_BEFORE:PATH=%{IDE:ResourcePath}/package-manager/auto-setup.cmake
|
||||
-DQT_QMAKE_EXECUTABLE:STRING=%{Qt:qmakeExecutable}
|
||||
-DCMAKE_PREFIX_PATH:STRING=%{Qt:QT_INSTALL_PREFIX}
|
||||
-DCMAKE_C_COMPILER:STRING=%{Compiler:Executable:C}
|
||||
-DCMAKE_CXX_COMPILER:STRING=%{Compiler:Executable:Cxx}</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/arraybolt3/Projects/build-basicwallpaper-Desktop-Debug</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets">
|
||||
<value type="QString">all</value>
|
||||
</valuelist>
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets">
|
||||
<value type="QString">clean</value>
|
||||
</valuelist>
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.CMakeBuildConfiguration</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
|
||||
<value type="QString" key="CMake.Build.Type">Release</value>
|
||||
<value type="QString" key="CMake.Initial.Parameters">-GUnix Makefiles
|
||||
-DCMAKE_BUILD_TYPE:STRING=Release
|
||||
-DCMAKE_PROJECT_INCLUDE_BEFORE:PATH=%{IDE:ResourcePath}/package-manager/auto-setup.cmake
|
||||
-DQT_QMAKE_EXECUTABLE:STRING=%{Qt:qmakeExecutable}
|
||||
-DCMAKE_PREFIX_PATH:STRING=%{Qt:QT_INSTALL_PREFIX}
|
||||
-DCMAKE_C_COMPILER:STRING=%{Compiler:Executable:C}
|
||||
-DCMAKE_CXX_COMPILER:STRING=%{Compiler:Executable:Cxx}</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/arraybolt3/Projects/build-basicwallpaper-Desktop-Release</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets">
|
||||
<value type="QString">all</value>
|
||||
</valuelist>
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets">
|
||||
<value type="QString">clean</value>
|
||||
</valuelist>
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.CMakeBuildConfiguration</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
|
||||
<value type="QString" key="CMake.Build.Type">RelWithDebInfo</value>
|
||||
<value type="QString" key="CMake.Initial.Parameters">-GUnix Makefiles
|
||||
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo
|
||||
-DCMAKE_PROJECT_INCLUDE_BEFORE:PATH=%{IDE:ResourcePath}/package-manager/auto-setup.cmake
|
||||
-DQT_QMAKE_EXECUTABLE:STRING=%{Qt:qmakeExecutable}
|
||||
-DCMAKE_PREFIX_PATH:STRING=%{Qt:QT_INSTALL_PREFIX}
|
||||
-DCMAKE_C_COMPILER:STRING=%{Compiler:Executable:C}
|
||||
-DCMAKE_CXX_COMPILER:STRING=%{Compiler:Executable:Cxx}</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/arraybolt3/Projects/build-basicwallpaper-Desktop-RelWithDebInfo</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets">
|
||||
<value type="QString">all</value>
|
||||
</valuelist>
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets">
|
||||
<value type="QString">clean</value>
|
||||
</valuelist>
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release with Debug Information</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.CMakeBuildConfiguration</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.3">
|
||||
<value type="QString" key="CMake.Build.Type">MinSizeRel</value>
|
||||
<value type="QString" key="CMake.Initial.Parameters">-GUnix Makefiles
|
||||
-DCMAKE_BUILD_TYPE:STRING=MinSizeRel
|
||||
-DCMAKE_PROJECT_INCLUDE_BEFORE:PATH=%{IDE:ResourcePath}/package-manager/auto-setup.cmake
|
||||
-DQT_QMAKE_EXECUTABLE:STRING=%{Qt:qmakeExecutable}
|
||||
-DCMAKE_PREFIX_PATH:STRING=%{Qt:QT_INSTALL_PREFIX}
|
||||
-DCMAKE_C_COMPILER:STRING=%{Compiler:Executable:C}
|
||||
-DCMAKE_CXX_COMPILER:STRING=%{Compiler:Executable:Cxx}</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/arraybolt3/Projects/build-basicwallpaper-Desktop-MinSizeRel</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets">
|
||||
<value type="QString">all</value>
|
||||
</valuelist>
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets">
|
||||
<value type="QString">clean</value>
|
||||
</valuelist>
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Minimum Size Release</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.CMakeBuildConfiguration</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">4</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
|
||||
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
||||
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
|
||||
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
|
||||
<valuelist type="QVariantList" key="CustomOutputParsers"/>
|
||||
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
||||
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.CustomExecutableRunConfiguration</value>
|
||||
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey"></value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.TargetCount</variable>
|
||||
<value type="int">1</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
|
||||
<value type="int">22</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>Version</variable>
|
||||
<value type="int">22</value>
|
||||
</data>
|
||||
</qtcreator>
|
@ -1,3 +0,0 @@
|
||||
# basicwallpaper: Shows an image in the background across all screens
|
||||
|
||||
Copyright (C) 2024 Kubuntu Developers <kubuntu-devel@lists.ubuntu.com>. Licensed under the GNU GPL version 3. This license applies to all files in the repository. Inspiration taken from lubuntu-installer-prompt and pcmanfm-qt.
|
@ -1,28 +0,0 @@
|
||||
#include "mainwindow.h"
|
||||
|
||||
#include <QApplication>
|
||||
#include <QScreen>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
QApplication a(argc, argv);
|
||||
|
||||
QString wallpaperFile;
|
||||
|
||||
if (argc > 1) {
|
||||
wallpaperFile = QString(argv[1]);
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
|
||||
for (QScreen *screen : QApplication::screens()) {
|
||||
MainWindow *w = new MainWindow(wallpaperFile);
|
||||
w->setWindowFlags(Qt::WindowStaysOnBottomHint);
|
||||
w->setGeometry(screen->geometry());
|
||||
w->showFullScreen();
|
||||
w->show();
|
||||
w->applyWallpaper();
|
||||
}
|
||||
|
||||
return a.exec();
|
||||
}
|
@ -1,43 +0,0 @@
|
||||
#include "mainwindow.h"
|
||||
#include "./ui_mainwindow.h"
|
||||
|
||||
#include <QDebug>
|
||||
#include <QImage>
|
||||
|
||||
MainWindow::MainWindow(const QString &wallpaperFile, QWidget *parent)
|
||||
: QMainWindow(parent)
|
||||
, ui(new Ui::MainWindow)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
m_wallpaperFile = wallpaperFile;
|
||||
}
|
||||
|
||||
MainWindow::~MainWindow()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void MainWindow::applyWallpaper()
|
||||
{
|
||||
QImage image(m_wallpaperFile);
|
||||
if (!image.isNull()) {
|
||||
qreal imgRatio = static_cast<qreal>(image.width()) / image.height();
|
||||
qreal screenRatio = static_cast<qreal>(this->width()) / this->height();
|
||||
QImage scaled;
|
||||
if (imgRatio < screenRatio) {
|
||||
scaled = image.scaledToWidth(this->width(), Qt::SmoothTransformation);
|
||||
int yGap = (scaled.height() - this->height()) / 2;
|
||||
scaled = scaled.copy(0, yGap, scaled.width(), this->height());
|
||||
} else {
|
||||
scaled = image.scaledToHeight(this->height(), Qt::SmoothTransformation);
|
||||
int xGap = (scaled.width() - this->width()) / 2;
|
||||
scaled = scaled.copy(xGap, 0, this->width(), scaled.height());
|
||||
}
|
||||
QPixmap bg = QPixmap::fromImage(scaled);
|
||||
QPalette palette;
|
||||
palette.setBrush(QPalette::Window, bg);
|
||||
this->setPalette(palette);
|
||||
} else {
|
||||
qCritical() << "ERROR: Wallpaper does not exist!";
|
||||
}
|
||||
}
|
@ -1,24 +0,0 @@
|
||||
#ifndef MAINWINDOW_H
|
||||
#define MAINWINDOW_H
|
||||
|
||||
#include <QMainWindow>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
namespace Ui { class MainWindow; }
|
||||
QT_END_NAMESPACE
|
||||
|
||||
class MainWindow : public QMainWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
MainWindow(const QString &wallpaperFile, QWidget *parent = nullptr);
|
||||
~MainWindow();
|
||||
|
||||
void applyWallpaper();
|
||||
|
||||
private:
|
||||
Ui::MainWindow *ui;
|
||||
QString m_wallpaperFile;
|
||||
};
|
||||
#endif // MAINWINDOW_H
|
@ -1,22 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>MainWindow</class>
|
||||
<widget class="QMainWindow" name="MainWindow">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>800</width>
|
||||
<height>600</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>MainWindow</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget"/>
|
||||
<widget class="QMenuBar" name="menubar"/>
|
||||
<widget class="QStatusBar" name="statusbar"/>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
@ -1,3 +0,0 @@
|
||||
#!/bin/bash
|
||||
setxkbmap -query | awk '/layout/{ print $2 }' > /dev/shm/fixconkeys-layout
|
||||
cp /usr/libexec/fixconkeys-part2 ${1}/usr/libexec/fixconkeys-part2
|
@ -1,5 +0,0 @@
|
||||
#!/bin/bash
|
||||
loadkeys "$(cat /dev/shm/fixconkeys-layout)"
|
||||
setupcon --save-only
|
||||
update-initramfs -c -k all
|
||||
rm /usr/libexec/fixconkeys-part2
|
@ -1,10 +0,0 @@
|
||||
---
|
||||
dontChroot: true
|
||||
timeout: 10
|
||||
firmwareType:
|
||||
efi:
|
||||
- -cp /cdrom/casper/vmlinuz ${ROOT}/boot/vmlinuz-$(uname -r)
|
||||
- -mkdir -pv ${ROOT}/media/cdrom
|
||||
- -mount --bind /cdrom ${ROOT}/media/cdrom
|
||||
bios:
|
||||
- -cp /cdrom/casper/vmlinuz ${ROOT}/boot/vmlinuz-$(uname -r)
|
@ -1,2 +0,0 @@
|
||||
crypttabOptions: luks,keyscript=/bin/cat
|
||||
efiMountOptions: umask=0077
|
@ -1,38 +0,0 @@
|
||||
extraMounts:
|
||||
- device: proc
|
||||
fs: proc
|
||||
mountPoint: /proc
|
||||
- device: sys
|
||||
fs: sysfs
|
||||
mountPoint: /sys
|
||||
- device: /dev
|
||||
mountPoint: /dev
|
||||
options: [ bind ]
|
||||
- device: tmpfs
|
||||
fs: tmpfs
|
||||
mountPoint: /run
|
||||
- device: /run/udev
|
||||
mountPoint: /run/udev
|
||||
options: [ bind ]
|
||||
- device: efivarfs
|
||||
fs: efivarfs
|
||||
mountPoint: /sys/firmware/efi/efivars
|
||||
efi: true
|
||||
- device: /run/systemd/resolve
|
||||
mountPoint: /run/systemd/resolve
|
||||
options: [ bind ]
|
||||
|
||||
mountOptions:
|
||||
- filesystem: default
|
||||
options: [ defaults ]
|
||||
- filesystem: btrfs
|
||||
options: [ defaults, noatime, autodefrag ]
|
||||
ssdOptions: [ discard, compress=lzo ]
|
||||
- filesystem: ext4
|
||||
ssdOptions: [ discard ]
|
||||
- filesystem: jfs
|
||||
ssdOptions: [ discard ]
|
||||
- filesystem: xfs
|
||||
ssdOptions: [ discard ]
|
||||
- filesystem: swap
|
||||
ssdOptions: [ discard ]
|
@ -1,31 +0,0 @@
|
||||
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
|
||||
|
||||
include(FeatureSummary)
|
||||
|
||||
set( CMAKE_CXX_STANDARD 17 )
|
||||
set( CMAKE_CXX_STANDARD_REQUIRED ON )
|
||||
|
||||
set( CALAMARES_VERSION_REQUIRED 3.3.0 )
|
||||
|
||||
find_package(ECM ${ECM_VERSION} NO_MODULE)
|
||||
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_MODULE_PATH})
|
||||
include(KDEInstallDirs)
|
||||
find_package(KF5 REQUIRED COMPONENTS CoreAddons)
|
||||
find_package(Calamares ${CALAMARES_VERSION_REQUIRED} NO_CMAKE_PACKAGE_REGISTRY)
|
||||
if (NOT TARGET Calamares::calamares OR NOT TARGET Calamares::calamaresui)
|
||||
find_package(Calamares ${CALAMARES_VERSION_REQUIRED} REQUIRED)
|
||||
endif()
|
||||
|
||||
message(STATUS "Found Calamares version ${Calamares_VERSION}")
|
||||
message(STATUS " libraries ${Calamares_LIB_DIRS}")
|
||||
message(STATUS "")
|
||||
|
||||
calamares_add_plugin( pkgselect
|
||||
TYPE viewmodule
|
||||
EXPORT_MACRO PLUGINDLLEXPORT_PRO
|
||||
SOURCES
|
||||
PackageSelectViewStep.cpp
|
||||
UI
|
||||
pkgselect.ui
|
||||
SHARED_LIB
|
||||
)
|
@ -1,208 +0,0 @@
|
||||
#include "PackageSelectViewStep.h"
|
||||
#include "JobQueue.h"
|
||||
#include "GlobalStorage.h"
|
||||
#include "Branding.h"
|
||||
#include "network/Manager.h"
|
||||
|
||||
#include <QVariantMap>
|
||||
|
||||
PackageSelectViewStep::PackageSelectViewStep( QObject* parent )
|
||||
: Calamares::ViewStep( parent ),
|
||||
m_packageSelections(QVariantMap()),
|
||||
ui(new Ui::pkgselect)
|
||||
{
|
||||
m_widget = new QWidget();
|
||||
ui->setupUi(m_widget);
|
||||
}
|
||||
|
||||
PackageSelectViewStep::~PackageSelectViewStep()
|
||||
{
|
||||
delete ui;
|
||||
delete m_widget;
|
||||
}
|
||||
|
||||
QString
|
||||
PackageSelectViewStep::prettyName() const
|
||||
{
|
||||
return tr( "Customize" );
|
||||
}
|
||||
|
||||
bool PackageSelectViewStep::exists_and_true(const QString& key) const
|
||||
{
|
||||
return m_packageSelections.contains(key) && m_packageSelections[key].toBool() == true;
|
||||
}
|
||||
|
||||
QWidget* PackageSelectViewStep::widget()
|
||||
{
|
||||
return m_widget;
|
||||
}
|
||||
|
||||
Calamares::JobList PackageSelectViewStep::jobs() const
|
||||
{
|
||||
return Calamares::JobList();
|
||||
}
|
||||
|
||||
bool PackageSelectViewStep::isNextEnabled() const
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
bool PackageSelectViewStep::isBackEnabled() const
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
bool PackageSelectViewStep::isAtBeginning() const
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
bool PackageSelectViewStep::isAtEnd() const
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
void PackageSelectViewStep::onActivate()
|
||||
{
|
||||
// Connect the Minimal Installation radio button
|
||||
connect(ui->minimal_button, &QRadioButton::toggled, this, [this](bool checked) {
|
||||
Calamares::Network::Manager network;
|
||||
if (checked && network.hasInternet()) {
|
||||
ui->extraparty_scroll->setVisible(false);
|
||||
ui->extraparty_text->setVisible(false);
|
||||
ui->mandatory_warning_label->setVisible(false);
|
||||
|
||||
ui->element_button->setChecked(false);
|
||||
ui->thunderbird_button->setChecked(false);
|
||||
ui->virtmanager_button->setChecked(false);
|
||||
ui->krita_button->setChecked(false);
|
||||
|
||||
ui->element_button->setEnabled(false);
|
||||
ui->thunderbird_button->setEnabled(false);
|
||||
ui->virtmanager_button->setEnabled(false);
|
||||
ui->krita_button->setEnabled(false);
|
||||
}
|
||||
});
|
||||
|
||||
// Connect the Normal Installation radio button
|
||||
connect(ui->normal_button, &QRadioButton::toggled, this, [this](bool checked) {
|
||||
Calamares::Network::Manager network;
|
||||
if (checked && network.hasInternet()) {
|
||||
ui->extraparty_scroll->setVisible(true);
|
||||
ui->extraparty_text->setVisible(true);
|
||||
ui->mandatory_warning_label->setVisible(true);
|
||||
|
||||
ui->element_button->setChecked(false);
|
||||
ui->thunderbird_button->setChecked(false);
|
||||
ui->virtmanager_button->setChecked(false);
|
||||
ui->krita_button->setChecked(false);
|
||||
|
||||
ui->element_button->setEnabled(true);
|
||||
ui->thunderbird_button->setEnabled(true);
|
||||
ui->virtmanager_button->setEnabled(true);
|
||||
ui->krita_button->setEnabled(true);
|
||||
}
|
||||
});
|
||||
|
||||
// Connect the Full Installation radio button
|
||||
connect(ui->full_button, &QRadioButton::toggled, this, [this](bool checked) {
|
||||
Calamares::Network::Manager network;
|
||||
if (checked && network.hasInternet()) {
|
||||
ui->extraparty_scroll->setVisible(true);
|
||||
ui->extraparty_text->setVisible(true);
|
||||
ui->mandatory_warning_label->setVisible(true);
|
||||
|
||||
ui->element_button->setChecked(true);
|
||||
ui->thunderbird_button->setChecked(true);
|
||||
ui->virtmanager_button->setChecked(true);
|
||||
ui->krita_button->setChecked(true);
|
||||
|
||||
ui->element_button->setEnabled(false);
|
||||
ui->thunderbird_button->setEnabled(false);
|
||||
ui->virtmanager_button->setEnabled(false);
|
||||
ui->krita_button->setEnabled(false);
|
||||
}
|
||||
});
|
||||
|
||||
// Disable many bits of functionality if network is not enabled
|
||||
Calamares::Network::Manager network;
|
||||
if (!network.hasInternet()) {
|
||||
ui->full_button->setVisible(false);
|
||||
ui->full_text->setVisible(false);
|
||||
|
||||
ui->left_spacer->changeSize(20, 20, QSizePolicy::Fixed, QSizePolicy::Fixed);
|
||||
ui->right_spacer->changeSize(0, 0, QSizePolicy::Fixed, QSizePolicy::Fixed);
|
||||
|
||||
ui->additional_label->setVisible(false);
|
||||
ui->updates_button->setVisible(false);
|
||||
ui->updates_text->setVisible(false);
|
||||
|
||||
ui->extraparty_scroll->setVisible(false);
|
||||
ui->extraparty_text->setVisible(false);
|
||||
ui->mandatory_warning_label->setVisible(false);
|
||||
|
||||
ui->element_button->setChecked(false);
|
||||
ui->thunderbird_button->setChecked(false);
|
||||
ui->virtmanager_button->setChecked(false);
|
||||
ui->krita_button->setChecked(false);
|
||||
|
||||
ui->element_button->setEnabled(false);
|
||||
ui->thunderbird_button->setEnabled(false);
|
||||
ui->virtmanager_button->setEnabled(false);
|
||||
ui->krita_button->setEnabled(false);
|
||||
}
|
||||
|
||||
// Thunderbird exists on Kubuntu already
|
||||
if (Calamares::Branding::instance()->componentName() == "kubuntu") {
|
||||
ui->thunderbird_button->setChecked(false);
|
||||
ui->thunderbird_button->setEnabled(false);
|
||||
ui->thunderbird_button->setVisible(false);
|
||||
ui->thunderbird_text->setVisible(false);
|
||||
ui->thunderbird_spacer->changeSize(0, 0, QSizePolicy::Fixed, QSizePolicy::Fixed);
|
||||
ui->thunderbird_spacer->invalidate();
|
||||
}
|
||||
|
||||
// Connect the storage items
|
||||
/// Full/Normal/Minimal
|
||||
connect(ui->minimal_button, &QRadioButton::toggled, this, &PackageSelectViewStep::updatePackageSelections);
|
||||
connect(ui->normal_button, &QRadioButton::toggled, this, &PackageSelectViewStep::updatePackageSelections);
|
||||
connect(ui->full_button, &QRadioButton::toggled, this, &PackageSelectViewStep::updatePackageSelections);
|
||||
/// Additional Options
|
||||
connect(ui->updates_button, &QRadioButton::toggled, this, &PackageSelectViewStep::updatePackageSelections);
|
||||
/// Third-Party Apps
|
||||
connect(ui->element_button, &QCheckBox::toggled, this, &PackageSelectViewStep::updatePackageSelections);
|
||||
connect(ui->thunderbird_button, &QCheckBox::toggled, this, &PackageSelectViewStep::updatePackageSelections);
|
||||
connect(ui->virtmanager_button, &QCheckBox::toggled, this, &PackageSelectViewStep::updatePackageSelections);
|
||||
connect(ui->krita_button, &QCheckBox::toggled, this, &PackageSelectViewStep::updatePackageSelections);
|
||||
}
|
||||
|
||||
void
|
||||
PackageSelectViewStep::onLeave()
|
||||
{
|
||||
Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage();
|
||||
QVariantMap config;
|
||||
for (auto i = m_packageSelections.begin(); i != m_packageSelections.end(); ++i) {
|
||||
if (exists_and_true(i.key())) {
|
||||
config.insert(i.key(), i.value());
|
||||
}
|
||||
}
|
||||
gs->insert("packages", config);
|
||||
}
|
||||
|
||||
void PackageSelectViewStep::updatePackageSelections(bool checked) {
|
||||
QObject* sender_obj = sender();
|
||||
if (!sender_obj) return;
|
||||
|
||||
QString key = sender_obj->objectName();
|
||||
|
||||
// snake_case -> camelCase
|
||||
QStringList parts = key.split("_", Qt::SkipEmptyParts);
|
||||
for (int i = 1; i < parts.size(); ++i) {
|
||||
parts[i][0] = parts[i][0].toUpper();
|
||||
}
|
||||
QString camelCaseKey = parts.join("");
|
||||
|
||||
m_packageSelections[camelCaseKey] = checked;
|
||||
}
|
||||
|
||||
CALAMARES_PLUGIN_FACTORY_DEFINITION( PackageSelectViewStepFactory, registerPlugin< PackageSelectViewStep >(); )
|
@ -1,52 +0,0 @@
|
||||
#ifndef PACKAGESELECTVIEWSTEP_H
|
||||
#define PACKAGESELECTVIEWSTEP_H
|
||||
|
||||
#include <QFile>
|
||||
#include <QTextStream>
|
||||
|
||||
#include "DllMacro.h"
|
||||
#include "utils/PluginFactory.h"
|
||||
#include "viewpages/ViewStep.h"
|
||||
|
||||
#include "ui_pkgselect.h"
|
||||
|
||||
namespace Ui {
|
||||
class pkgselect;
|
||||
}
|
||||
|
||||
class PLUGINDLLEXPORT PackageSelectViewStep : public Calamares::ViewStep
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit PackageSelectViewStep( QObject* parent = nullptr );
|
||||
~PackageSelectViewStep() override;
|
||||
|
||||
QString prettyName() const override;
|
||||
QWidget* widget() override;
|
||||
Calamares::JobList jobs() const override;
|
||||
|
||||
bool isNextEnabled() const override;
|
||||
bool isBackEnabled() const override;
|
||||
bool isAtBeginning() const override;
|
||||
bool isAtEnd() const override;
|
||||
|
||||
void onActivate() override;
|
||||
void onLeave() override;
|
||||
|
||||
QVariantMap packageSelections() const { return m_packageSelections; }
|
||||
void updatePackageSelections(bool checked);
|
||||
|
||||
signals:
|
||||
void packageSelectionsChanged();
|
||||
|
||||
private:
|
||||
QVariantMap m_packageSelections;
|
||||
Ui::pkgselect *ui;
|
||||
QWidget* m_widget;
|
||||
bool exists_and_true(const QString& key) const;
|
||||
};
|
||||
|
||||
CALAMARES_PLUGIN_FACTORY_DECLARATION( PackageSelectViewStepFactory )
|
||||
|
||||
#endif
|
@ -1,594 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>pkgselect</class>
|
||||
<widget class="QWidget" name="pkgselect">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>830</width>
|
||||
<height>943</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">QRadioButton {
|
||||
spacing: 13px;
|
||||
}
|
||||
|
||||
QCheckBox {
|
||||
spacing: 13px;
|
||||
}
|
||||
|
||||
QLabel {
|
||||
padding-left: 33px;
|
||||
padding-right: 33px;
|
||||
}</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="17" column="1">
|
||||
<spacer name="verticalSpacer_11">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>3</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="9" column="1">
|
||||
<widget class="QRadioButton" name="minimal_button">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>21</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>12</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Minimal Installation</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="16" column="1">
|
||||
<widget class="QLabel" name="extraparty_text">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>18</pointsize>
|
||||
<weight>50</weight>
|
||||
<bold>false</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">padding-left: 0px; padding-right: 0px;</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Install additional third-party packages</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QRadioButton" name="full_button">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>21</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>12</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Full Installation</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="1">
|
||||
<widget class="QLabel" name="minimal_text">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>10</pointsize>
|
||||
<italic>true</italic>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Only the desktop environment</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<spacer name="left_spacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Minimum</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<spacer name="right_spacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Minimum</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="20" column="1">
|
||||
<spacer name="pushup">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="12" column="1">
|
||||
<widget class="QLabel" name="additional_label">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>18</pointsize>
|
||||
<weight>50</weight>
|
||||
<bold>false</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">padding-left: 0px; padding-right: 0px;</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Additional Options</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QLabel" name="full_text">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>10</pointsize>
|
||||
<italic>true</italic>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>All applications in the Normal Installation, and all extra third-party packages listed below</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="1">
|
||||
<spacer name="verticalSpacer_6">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>10</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="15" column="1">
|
||||
<spacer name="verticalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="13" column="1">
|
||||
<widget class="QCheckBox" name="updates_button">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>21</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>12</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Download and install updates following installation</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="14" column="1">
|
||||
<widget class="QLabel" name="updates_text">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>10</pointsize>
|
||||
<italic>true</italic>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>This saves time after installation, and keeps your system secure</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="1">
|
||||
<widget class="QLabel" name="normal_text">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>10</pointsize>
|
||||
<italic>true</italic>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Web browser, utilities, office software, games, and media players</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="11" column="1">
|
||||
<spacer name="verticalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<widget class="QRadioButton" name="normal_button">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>21</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>12</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Normal Installation</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="19" column="0" colspan="3">
|
||||
<widget class="QLabel" name="mandatory_warning_label">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>11</pointsize>
|
||||
<weight>75</weight>
|
||||
<italic>false</italic>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Note: Ubuntu and flavors are NOT responsible for third-party software installed from this list.</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLabel" name="apps_label">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>18</pointsize>
|
||||
<weight>50</weight>
|
||||
<bold>false</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">padding-left: 0px; padding-right: 0px;</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Installation Mode</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="18" column="1">
|
||||
<widget class="QScrollArea" name="extraparty_scroll">
|
||||
<property name="widgetResizable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<widget class="QWidget" name="extraparty_scrollhouse">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>762</width>
|
||||
<height>281</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="8" column="1">
|
||||
<widget class="QCheckBox" name="virtmanager_button">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>21</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Virtual Machine Manager</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QCheckBox" name="element_button">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>21</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Element</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="11" column="1">
|
||||
<widget class="QCheckBox" name="krita_button">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>21</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Krita</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<spacer name="thunderbird_spacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>10</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLabel" name="element_text">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>10</pointsize>
|
||||
<italic>true</italic>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Matrix-based end-to-end encrypted messenger and secure collaboration app</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="1">
|
||||
<spacer name="verticalSpacer_10">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>10</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="9" column="1">
|
||||
<widget class="QLabel" name="virtmanager_text">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>10</pointsize>
|
||||
<italic>true</italic>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Desktop user interface for managing virtual machines through libvirt</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<spacer name="verticalSpacer_4">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>1</width>
|
||||
<height>5</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<widget class="QLabel" name="thunderbird_text">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>10</pointsize>
|
||||
<italic>true</italic>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Email, newsfeed, chat, and calendaring client</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QCheckBox" name="thunderbird_button">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>21</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Thunderbird</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<spacer name="verticalSpacer_8">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>10</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="13" column="1">
|
||||
<spacer name="pushup_tiny">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>6</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<spacer name="horizontalSpacer_12">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>5</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="12" column="1">
|
||||
<widget class="QLabel" name="krita_text">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>10</pointsize>
|
||||
<italic>true</italic>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Graphics editor designed primarily for digital art and 2D animation</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<spacer name="verticalSpacer_5">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>10</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
@ -1,5 +0,0 @@
|
||||
---
|
||||
dontChroot: false
|
||||
timeout: 30
|
||||
script:
|
||||
- "touch ${ROOT}/boot/initrd.img-$(uname -r)"
|
@ -1,5 +0,0 @@
|
||||
---
|
||||
dontChroot: true
|
||||
timeout: 30
|
||||
script:
|
||||
- /usr/libexec/fixconkeys-part1 ${ROOT}
|
@ -1,5 +0,0 @@
|
||||
---
|
||||
dontChroot: false
|
||||
timeout: 10800
|
||||
script:
|
||||
- /usr/libexec/fixconkeys-part2
|
@ -1,4 +0,0 @@
|
||||
---
|
||||
# Setting emergency to true will make it so this module is still run
|
||||
# when a prior module fails
|
||||
emergency: true
|
@ -1,5 +0,0 @@
|
||||
module snap-seed-glue
|
||||
|
||||
go 1.22.1
|
||||
|
||||
require github.com/snapcore/snapd v0.0.0-20240328101726-fdc222fc37a0
|
@ -1,289 +0,0 @@
|
||||
package main
|
||||
|
||||
// Copyright (C) 2024 Simon Quigley <tsimonq2@ubuntu.com>
|
||||
//
|
||||
// This program 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; either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program 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.
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/snapcore/snapd/snap"
|
||||
"github.com/snapcore/snapd/interfaces/builtin"
|
||||
"gopkg.in/yaml.v2"
|
||||
)
|
||||
|
||||
type seed struct {
|
||||
Snaps []struct {
|
||||
Name string `yaml:"name"`
|
||||
Channel string `yaml:"channel"`
|
||||
File string `yaml:"file"`
|
||||
} `yaml:"snaps"`
|
||||
}
|
||||
|
||||
func main() {
|
||||
snap.SanitizePlugsSlots = builtin.SanitizePlugsSlots
|
||||
|
||||
var seed_directory string
|
||||
flag.StringVar(&seed_directory, "seed", "/var/lib/snapd/seed", "Specify the seed directory")
|
||||
flag.Parse()
|
||||
|
||||
snap_set := make(map[string]bool)
|
||||
|
||||
snaps_dir := filepath.Join(seed_directory, "snaps")
|
||||
assertions_dir := filepath.Join(seed_directory, "assertions")
|
||||
seed_yaml := filepath.Join(seed_directory, "seed.yaml")
|
||||
|
||||
ensure_seed_yaml(seed_yaml)
|
||||
|
||||
existing_snaps_in_yaml := load_existing_snaps(seed_yaml)
|
||||
|
||||
for _, snap_info := range flag.Args() {
|
||||
parts := strings.SplitN(snap_info, "=", 2)
|
||||
snap_name := parts[0]
|
||||
channel := "stable" // Default to stable if no channel is specified
|
||||
if len(parts) == 2 {
|
||||
channel = parts[1]
|
||||
}
|
||||
process_snap_with_prereqs(snap_name, channel, &snap_set, snaps_dir, assertions_dir, seed_yaml, existing_snaps_in_yaml)
|
||||
}
|
||||
|
||||
essentialSnaps := []string{"snapd", "bare"}
|
||||
for _, snapName := range essentialSnaps {
|
||||
if !existing_snaps_in_yaml[snapName] {
|
||||
process_snap_with_prereqs(snapName, "stable", &snap_set, snaps_dir, assertions_dir, seed_yaml, existing_snaps_in_yaml)
|
||||
}
|
||||
}
|
||||
|
||||
update_seed_yaml(snaps_dir, seed_yaml, snap_set, existing_snaps_in_yaml)
|
||||
|
||||
remove_state_json(filepath.Join(seed_directory, "..", "state.json"))
|
||||
ensure_assertions(assertions_dir)
|
||||
validate_seed(seed_yaml)
|
||||
}
|
||||
|
||||
func ensure_seed_yaml(seed_yaml string) {
|
||||
if _, err := os.Stat(seed_yaml); os.IsNotExist(err) {
|
||||
file, err := os.Create(seed_yaml)
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to create seed.yaml: %v", err)
|
||||
}
|
||||
defer file.Close()
|
||||
file.WriteString("snaps:\n")
|
||||
}
|
||||
}
|
||||
|
||||
func load_existing_snaps(seed_yaml string) map[string]bool {
|
||||
file, err := ioutil.ReadFile(seed_yaml)
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to read seed.yaml: %v", err)
|
||||
}
|
||||
|
||||
var seed_data seed
|
||||
if err := yaml.Unmarshal(file, &seed_data); err != nil {
|
||||
log.Fatalf("Failed to parse seed.yaml: %v", err)
|
||||
}
|
||||
|
||||
existing := make(map[string]bool)
|
||||
for _, snap := range seed_data.Snaps {
|
||||
existing[snap.Name] = true
|
||||
}
|
||||
return existing
|
||||
}
|
||||
|
||||
func update_seed_yaml(snaps_dir, seed_yaml string, snap_set map[string]bool, existing_snaps map[string]bool) {
|
||||
seed_data := load_seed_data(seed_yaml)
|
||||
|
||||
for snap_name := range snap_set {
|
||||
if !existing_snaps[snap_name] {
|
||||
snap_files, err := filepath.Glob(filepath.Join(snaps_dir, fmt.Sprintf("%s_*.snap", snap_name)))
|
||||
if err != nil || len(snap_files) == 0 {
|
||||
log.Printf("No snap file found for %s", snap_name)
|
||||
return
|
||||
}
|
||||
|
||||
snap_file := filepath.Base(snap_files[0])
|
||||
log.Printf(snap_file)
|
||||
|
||||
// FIXME: should put the real name of the channel in here
|
||||
seed_data.Snaps = append(seed_data.Snaps, struct {
|
||||
Name string `yaml:"name"`
|
||||
Channel string `yaml:"channel"`
|
||||
File string `yaml:"file"`
|
||||
}{snap_name, "latest/stable", snap_file})
|
||||
}
|
||||
}
|
||||
|
||||
// Marshal to YAML and write back to file
|
||||
data, err := yaml.Marshal(&seed_data)
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to marshal seed data to YAML: %v", err)
|
||||
}
|
||||
|
||||
if err := ioutil.WriteFile(seed_yaml, data, 0644); err != nil {
|
||||
log.Fatalf("Failed to write updated seed.yaml: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func load_seed_data(seed_yaml string) seed {
|
||||
file, err := ioutil.ReadFile(seed_yaml)
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to read seed.yaml: %v", err)
|
||||
}
|
||||
|
||||
var seed_data seed
|
||||
if err := yaml.Unmarshal(file, &seed_data); err != nil {
|
||||
log.Fatalf("Failed to parse seed.yaml: %v", err)
|
||||
}
|
||||
return seed_data
|
||||
}
|
||||
|
||||
func remove_state_json(state_json_path string) {
|
||||
if _, err := os.Stat(state_json_path); err == nil {
|
||||
os.Remove(state_json_path)
|
||||
}
|
||||
}
|
||||
|
||||
func validate_seed(seed_yaml string) {
|
||||
cmd := exec.Command("snap", "debug", "validate-seed", seed_yaml)
|
||||
if err := cmd.Run(); err != nil {
|
||||
log.Printf("Error validating seed: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func process_snap_with_prereqs(snap_name, channel string, snap_set *map[string]bool, snaps_dir, assertions_dir, seed_yaml string, existing_snaps_in_yaml map[string]bool) {
|
||||
if (*snap_set)[snap_name] {
|
||||
return
|
||||
}
|
||||
|
||||
// Download the snap if not already processed or listed in seed.yaml
|
||||
if !existing_snaps_in_yaml[snap_name] {
|
||||
cmd := exec.Command("snap", "download", snap_name, "--channel="+channel, "--target-directory="+snaps_dir)
|
||||
if err := cmd.Run(); err != nil {
|
||||
log.Printf("Error downloading snap %s from channel %s: %v", snap_name, channel, err)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
snap_files, err := filepath.Glob(filepath.Join(snaps_dir, fmt.Sprintf("%s_*.snap", snap_name)))
|
||||
if err != nil || len(snap_files) == 0 {
|
||||
log.Printf("No snap file found for %s in channel %s", snap_name, channel)
|
||||
return
|
||||
}
|
||||
|
||||
snap_file := snap_files[0]
|
||||
|
||||
cmd := exec.Command("unsquashfs", "-n", "-d", filepath.Join(snaps_dir, fmt.Sprintf("%s_meta", snap_name)), snap_file, "meta/snap.yaml")
|
||||
if err := cmd.Run(); err != nil {
|
||||
log.Printf("Error extracting meta/snap.yaml from snap %s: %v", snap_name, err)
|
||||
return
|
||||
}
|
||||
|
||||
yaml_data, err := ioutil.ReadFile(filepath.Join(snaps_dir, fmt.Sprintf("%s_meta/meta/snap.yaml", snap_name)))
|
||||
if err != nil {
|
||||
log.Printf("Error reading snap.yaml file for %s: %v", snap_name, err)
|
||||
return
|
||||
}
|
||||
|
||||
info, err := snap.InfoFromSnapYaml(yaml_data)
|
||||
if err != nil {
|
||||
log.Printf("Error parsing snap.yaml data for %s: %v", snap_name, err)
|
||||
return
|
||||
}
|
||||
|
||||
(*snap_set)[snap_name] = true
|
||||
|
||||
tracker := snap.SimplePrereqTracker{}
|
||||
missing_provider_content_tags := tracker.MissingProviderContentTags(info, nil)
|
||||
for provider_snap := range missing_provider_content_tags {
|
||||
if !(*snap_set)[provider_snap] {
|
||||
process_snap_with_prereqs(provider_snap, "stable", snap_set, snaps_dir, assertions_dir, seed_yaml, existing_snaps_in_yaml)
|
||||
}
|
||||
}
|
||||
|
||||
if info.Base != "" && !(*snap_set)[info.Base] {
|
||||
process_snap_with_prereqs(info.Base, "stable", snap_set, snaps_dir, assertions_dir, seed_yaml, existing_snaps_in_yaml)
|
||||
}
|
||||
|
||||
assert_files, err := filepath.Glob(filepath.Join(snaps_dir, "*.assert"))
|
||||
for _, file := range assert_files {
|
||||
target_path := filepath.Join(assertions_dir, filepath.Base(file))
|
||||
err := os.Rename(file, target_path)
|
||||
if err != nil {
|
||||
log.Printf("Failed to move %s to %s: %v", file, assertions_dir, err)
|
||||
}
|
||||
}
|
||||
|
||||
os.RemoveAll(filepath.Join(snaps_dir, fmt.Sprintf("%s_meta", snap_name)))
|
||||
}
|
||||
|
||||
func ensure_assertions(assertions_dir string) {
|
||||
model := "generic-classic"
|
||||
brand := "generic"
|
||||
series := "16"
|
||||
|
||||
model_assertion_path := filepath.Join(assertions_dir, "model")
|
||||
account_key_assertion_path := filepath.Join(assertions_dir, "account-key")
|
||||
account_assertion_path := filepath.Join(assertions_dir, "account")
|
||||
|
||||
// Check and generate model assertion
|
||||
if _, err := os.Stat(model_assertion_path); os.IsNotExist(err) {
|
||||
output, err := exec.Command("snap", "known", "--remote", "model", "series="+series, "model="+model, "brand-id="+brand).CombinedOutput()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to fetch model assertion: %v, Output: %s", err, string(output))
|
||||
}
|
||||
ioutil.WriteFile(model_assertion_path, output, 0644)
|
||||
}
|
||||
|
||||
// Generate account-key assertion if not exists
|
||||
if _, err := os.Stat(account_key_assertion_path); os.IsNotExist(err) {
|
||||
signKeySha3 := grep_pattern(model_assertion_path, "sign-key-sha3-384: ")
|
||||
output, err := exec.Command("snap", "known", "--remote", "account-key", "public-key-sha3-384="+signKeySha3).CombinedOutput()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to fetch account-key assertion: %v, Output: %s", err, string(output))
|
||||
}
|
||||
ioutil.WriteFile(account_key_assertion_path, output, 0644)
|
||||
}
|
||||
|
||||
// Generate account assertion if not exists
|
||||
if _, err := os.Stat(account_assertion_path); os.IsNotExist(err) {
|
||||
accountId := grep_pattern(account_key_assertion_path, "account-id: ")
|
||||
output, err := exec.Command("snap", "known", "--remote", "account", "account-id="+accountId).CombinedOutput()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to fetch account assertion: %v, Output: %s", err, string(output))
|
||||
}
|
||||
ioutil.WriteFile(account_assertion_path, output, 0644)
|
||||
}
|
||||
}
|
||||
|
||||
func grep_pattern(filePath, pattern string) string {
|
||||
content, err := ioutil.ReadFile(filePath)
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to read from file %s: %v", filePath, err)
|
||||
}
|
||||
lines := strings.Split(string(content), "\n")
|
||||
for _, line := range lines {
|
||||
if strings.Contains(line, pattern) {
|
||||
parts := strings.SplitN(line, ":", 2)
|
||||
if len(parts) == 2 {
|
||||
return strings.TrimSpace(parts[1])
|
||||
}
|
||||
}
|
||||
}
|
||||
log.Fatalf("Pattern %s not found in file %s", pattern, filePath)
|
||||
return ""
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
kubuntu/branding/ etc/calamares/
|
||||
kubuntu/calamares-launch-normal usr/bin/
|
||||
kubuntu/calamares-logs-helper usr/bin/
|
||||
kubuntu/kubuntu-calamares.desktop usr/share/applications/
|
||||
kubuntu/modules/ etc/calamares/
|
||||
kubuntu/oem/calamares-launch-oem usr/bin/
|
||||
kubuntu/oem/calamares-launch-oem.desktop usr/share/applications/
|
||||
kubuntu/oem/calamares-oemprep.sh usr/libexec/
|
||||
kubuntu/oemconfig.tar.gz etc/calamares/
|
||||
kubuntu/settings.conf etc/calamares/
|
@ -1,7 +0,0 @@
|
||||
# sudo will always be present in the target system
|
||||
calamares-settings-kubuntu: desktop-command-not-in-package sudo *
|
||||
# there will be no manpage for any of this in the foreseeable future
|
||||
calamares-settings-kubuntu: no-manual-page *
|
||||
# We're just extracting a log file and preserving it for the user to look at
|
||||
# after the installation, this is normal.
|
||||
calamares-settings-kubuntu: uses-dpkg-database-directly [usr/bin/calamares-logs-helper]
|
@ -1,11 +1,5 @@
|
||||
lubuntu/branding/ etc/calamares/
|
||||
lubuntu/calamares-launch-normal usr/bin/
|
||||
lubuntu/calamares-logs-helper usr/bin/
|
||||
lubuntu/lubuntu-calamares.desktop usr/share/applications/
|
||||
lubuntu/lubuntu-installer.svg usr/share/icons/hicolor/scalable/apps/
|
||||
lubuntu/modules/ etc/calamares/
|
||||
lubuntu/oem/calamares-launch-oem usr/bin/
|
||||
lubuntu/oem/calamares-launch-oem.desktop usr/share/applications/
|
||||
lubuntu/oem/calamares-oemprep.sh usr/libexec/
|
||||
lubuntu/oemconfig.tar.gz etc/calamares/
|
||||
lubuntu/settings.conf etc/calamares/
|
||||
|
@ -1,7 +1,3 @@
|
||||
# sudo will always exist in the target system
|
||||
calamares-settings-lubuntu: desktop-command-not-in-package sudo *
|
||||
# there will be no manpage for any of this in the foreseeable future
|
||||
calamares-settings-lubuntu: no-manual-page *
|
||||
# We're just extracting a log file and preserving it for the user to look at
|
||||
# after the installation, this is normal.
|
||||
calamares-settings-lubuntu: uses-dpkg-database-directly [usr/bin/calamares-logs-helper]
|
||||
# The .desktop file uses bash to run firefox as the local
|
||||
# user. bash is included in the system.
|
||||
calamares-settings-lubuntu: desktop-command-not-in-package usr/share/applications/lubuntu-calamares.desktop bash
|
||||
|
@ -1,4 +0,0 @@
|
||||
# this is an internal implementation detail, no manpage needed
|
||||
calamares-settings-ubuntu-common: no-manual-page [usr/bin/calamares_snap_install]
|
||||
# this is normal and not a problem
|
||||
calamares-settings-ubuntu-common: executable-in-usr-lib [usr/lib/x86_64-linux-gnu/calamares/modules/automirror/main.py]
|
@ -1,12 +0,0 @@
|
||||
ubuntuunity/branding/ etc/calamares/
|
||||
ubuntuunity/calamares-launch-normal usr/bin/
|
||||
ubuntuunity/calamares-logs-helper usr/bin/
|
||||
ubuntuunity/kvantum.kvconfig etc/xdg/Kvantum/
|
||||
ubuntuunity/modules/ etc/calamares/
|
||||
ubuntuunity/oem/calamares-launch-oem usr/bin/
|
||||
ubuntuunity/oem/calamares-launch-oem.desktop usr/share/applications/
|
||||
ubuntuunity/oem/calamares-oemprep.sh usr/libexec/
|
||||
ubuntuunity/oemconfig.tar.gz etc/calamares/
|
||||
ubuntuunity/settings.conf etc/calamares/
|
||||
ubuntuunity/ubuntu-unity-calamares.desktop usr/share/applications/
|
||||
ubuntuunity/ubuntu-unity-installer.svg usr/share/icons/hicolor/scalable/apps/
|
@ -1,7 +0,0 @@
|
||||
# sudo will always be present in the target system
|
||||
calamares-settings-ubuntu-unity: desktop-command-not-in-package sudo *
|
||||
# there will be no manpage for any of this in the foreseeable future
|
||||
calamares-settings-ubuntu-unity: no-manual-page *
|
||||
# We're just extracting a log file and preserving it for the user to look at
|
||||
# after the installation, this is normal.
|
||||
calamares-settings-ubuntu-unity: uses-dpkg-database-directly [usr/bin/calamares-logs-helper]
|
@ -0,0 +1,7 @@
|
||||
ubuntustudio/branding/ etc/calamares/
|
||||
ubuntustudio/calamares-logs-helper usr/bin/
|
||||
ubuntustudio/modules/ etc/calamares/
|
||||
ubuntustudio/settings.conf etc/calamares/
|
||||
ubuntustudio/ubuntustudio-calamares.desktop usr/share/applications/
|
||||
ubuntustudio/kded_device_automounterrc etc/xdg
|
||||
ubuntustudio/calamaresrc etc/xdg
|
@ -0,0 +1,3 @@
|
||||
# The .desktop file uses bash to run firefox as the local
|
||||
# user. bash is included in the system.
|
||||
calamares-settings-ubuntustudio: desktop-command-not-in-package usr/share/applications/ubuntustudio-calamares.desktop bash
|
@ -1,46 +1,14 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
export LC_ALL=C.UTF-8
|
||||
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
|
||||
export GOPATH=/usr/share/gocode
|
||||
export GO111MODULE=off
|
||||
export GOCACHE=$(CURDIR)/.gocache
|
||||
|
||||
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
|
||||
PKGSELECT = "common/modules/pkgselect"
|
||||
MODULES_DIR = "debian/calamares-settings-ubuntu-common/usr/lib/$(DEB_HOST_MULTIARCH)/calamares/modules"
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
override_dh_auto_configure:
|
||||
(cd $(PKGSELECT) && mkdir build && cd build && cmake ..)
|
||||
|
||||
override_dh_auto_build:
|
||||
make;
|
||||
(cd $(PKGSELECT)/build && $(MAKE))
|
||||
(cd common/snap-seed-glue && go build -gcflags="all=-N -l" -ldflags="-compressdwarf=false" -o snap-seed-glue main.go)
|
||||
|
||||
override_dh_auto_clean:
|
||||
dh_auto_clean
|
||||
rm -rf $(GOCACHE)
|
||||
|
||||
override_dh_auto_install:
|
||||
(cd $(PKGSELECT)/build && $(MAKE) DESTDIR=$(CURDIR)/debian/calamares-settings-ubuntu-common/ install)
|
||||
|
||||
override_dh_missing:
|
||||
dh_missing
|
||||
mkdir -pv $(MODULES_DIR)
|
||||
cp -vr common/modules/automirror $(MODULES_DIR)
|
||||
mkdir -pv debian/calamares-settings-ubuntu-common/etc/calamares/modules
|
||||
cp -vr common/modules/*.conf debian/calamares-settings-ubuntu-common/etc/calamares/modules
|
||||
mkdir -pv debian/calamares-settings-ubuntu-common/usr/lib/$(DEB_HOST_MULTIARCH)/calamares/modules
|
||||
cp -vr common/modules/* debian/calamares-settings-ubuntu-common/usr/lib/$(DEB_HOST_MULTIARCH)/calamares/modules
|
||||
chmod -R 755 debian/calamares-settings-ubuntu-common/usr/lib/
|
||||
chmod 644 $(MODULES_DIR)/automirror/automirror.conf
|
||||
chmod 644 $(MODULES_DIR)/automirror/module.desc
|
||||
chmod 644 $(MODULES_DIR)/pkgselect/libcalamares_viewmodule_pkgselect.so
|
||||
chmod 644 $(MODULES_DIR)/pkgselect/module.desc
|
||||
mkdir -pv debian/calamares-settings-ubuntu-common/usr/bin/
|
||||
cp -v common/snap-seed-glue/snap-seed-glue debian/calamares-settings-ubuntu-common/usr/bin/snap-seed-glue
|
||||
mkdir -pv debian/calamares-settings-ubuntu-common/usr/libexec/
|
||||
cp -v common/fixconkeys-part1 debian/calamares-settings-ubuntu-common/usr/libexec/fixconkeys-part1
|
||||
cp -v common/fixconkeys-part2 debian/calamares-settings-ubuntu-common/usr/libexec/fixconkeys-part2
|
||||
chmod 644 debian/calamares-settings-ubuntu-common/usr/lib/$(DEB_HOST_MULTIARCH)/calamares/modules/automirror/automirror.conf
|
||||
chmod 644 debian/calamares-settings-ubuntu-common/usr/lib/$(DEB_HOST_MULTIARCH)/calamares/modules/automirror/module.desc
|
||||
|
@ -1,21 +0,0 @@
|
||||
# Kubuntu's Calamares Settings
|
||||
|
||||
This directory houses the Calamares settings for Kubuntu.
|
||||
|
||||
Unless otherwise stated, the contents of this directory are licensed as follows:
|
||||
|
||||
Copyright (C) 2018 Lubuntu Developers <lubuntu-devel@lists.ubuntu.com>
|
||||
Copyright (C) 2024 Kubuntu Developers <kubuntu-devel@lists.ubuntu.com>
|
||||
|
||||
This program 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; either version 3
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program 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 this software. If not, see <http://www.gnu.org/licenses/>.
|
Before Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 1.4 MiB |
Before Width: | Height: | Size: 1.9 MiB |
Before Width: | Height: | Size: 2.1 MiB |
Before Width: | Height: | Size: 1.6 MiB |
Before Width: | Height: | Size: 1.9 MiB |
Before Width: | Height: | Size: 1.5 MiB |
Before Width: | Height: | Size: 1.8 MiB |
Before Width: | Height: | Size: 2.5 MiB |
Before Width: | Height: | Size: 1.4 MiB |
Before Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 2.0 MiB |
@ -1,29 +0,0 @@
|
||||
---
|
||||
componentName: kubuntu
|
||||
|
||||
windowExpanding: fullscreen
|
||||
|
||||
strings:
|
||||
productName: Kubuntu
|
||||
shortProductName: Kubuntu
|
||||
version: 24.04 LTS
|
||||
shortVersion: noble
|
||||
versionedName: Kubuntu
|
||||
shortVersionedName: Kubuntu 24.04 LTS
|
||||
bootloaderEntryName: Kubuntu
|
||||
productUrl: https://kubuntu.org/
|
||||
supportUrl: https://kubuntu.org/contact/
|
||||
|
||||
images:
|
||||
productLogo: "logo.png"
|
||||
productIcon: "icon.png"
|
||||
productWelcome: "welcome.png"
|
||||
|
||||
slideshow: "show.qml"
|
||||
|
||||
slideshowAPI: 1
|
||||
|
||||
style:
|
||||
SidebarBackground: "#6C7B93"
|
||||
SidebarText: "#FFFFFF"
|
||||
SidebarTextCurrent: "#0068C8"
|
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 15 KiB |
@ -1,165 +0,0 @@
|
||||
import QtQuick 2.0;
|
||||
import calamares.slideshow 1.0;
|
||||
|
||||
Presentation
|
||||
{
|
||||
id: presentation
|
||||
|
||||
Timer {
|
||||
interval: 15000
|
||||
running: true
|
||||
repeat: true
|
||||
onTriggered: presentation.goToNextSlide()
|
||||
}
|
||||
Slide {
|
||||
Image {
|
||||
id: image1
|
||||
anchors.centerIn: parent
|
||||
anchors.verticalCenterOffset: - parent.y / 3.6
|
||||
height: parent.masterHeight * 0.95
|
||||
width: parent.masterWidth * 0.95
|
||||
fillMode: Image.PreserveAspectFit
|
||||
smooth: true
|
||||
source: "01_Easy_Install.png"
|
||||
}
|
||||
}
|
||||
Slide {
|
||||
Image {
|
||||
id: image2
|
||||
anchors.centerIn: parent
|
||||
anchors.verticalCenterOffset: - parent.y / 3.6
|
||||
height: parent.masterHeight * 0.95
|
||||
width: parent.masterWidth * 0.95
|
||||
fillMode: Image.PreserveAspectFit
|
||||
smooth: true
|
||||
source: "02_Customizable_Desktop.png"
|
||||
}
|
||||
}
|
||||
Slide {
|
||||
Image {
|
||||
id: image3
|
||||
anchors.centerIn: parent
|
||||
anchors.verticalCenterOffset: - parent.y / 3.6
|
||||
height: parent.masterHeight * 0.95
|
||||
width: parent.masterWidth * 0.95
|
||||
fillMode: Image.PreserveAspectFit
|
||||
smooth: true
|
||||
source: "03_Built-in_Applications.png"
|
||||
}
|
||||
}
|
||||
Slide {
|
||||
Image {
|
||||
id: image4
|
||||
anchors.centerIn: parent
|
||||
anchors.verticalCenterOffset: - parent.y / 3.6
|
||||
height: parent.masterHeight * 0.95
|
||||
width: parent.masterWidth * 0.95
|
||||
fillMode: Image.PreserveAspectFit
|
||||
smooth: true
|
||||
source: "04_Performant.png"
|
||||
}
|
||||
}
|
||||
Slide {
|
||||
Image {
|
||||
id: image5
|
||||
anchors.centerIn: parent
|
||||
anchors.verticalCenterOffset: - parent.y / 3.6
|
||||
height: parent.masterHeight * 0.95
|
||||
width: parent.masterWidth * 0.95
|
||||
fillMode: Image.PreserveAspectFit
|
||||
smooth: true
|
||||
source: "05_Secure_and_Private.png"
|
||||
}
|
||||
}
|
||||
Slide {
|
||||
Image {
|
||||
id: image6
|
||||
anchors.centerIn: parent
|
||||
anchors.verticalCenterOffset: - parent.y / 3.6
|
||||
height: parent.masterHeight * 0.95
|
||||
width: parent.masterWidth * 0.95
|
||||
fillMode: Image.PreserveAspectFit
|
||||
smooth: true
|
||||
source: "06_Community_Support.png"
|
||||
}
|
||||
|
||||
}
|
||||
Slide {
|
||||
Image {
|
||||
id: image7
|
||||
anchors.centerIn: parent
|
||||
anchors.verticalCenterOffset: - parent.y / 3.6
|
||||
height: parent.masterHeight * 0.95
|
||||
width: parent.masterWidth * 0.95
|
||||
fillMode: Image.PreserveAspectFit
|
||||
smooth: true
|
||||
source: "07_Free_and_Open_Source.png"
|
||||
}
|
||||
|
||||
}
|
||||
Slide {
|
||||
Image {
|
||||
id: image8
|
||||
anchors.centerIn: parent
|
||||
anchors.verticalCenterOffset: - parent.y / 3.6
|
||||
height: parent.masterHeight * 0.95
|
||||
width: parent.masterWidth * 0.95
|
||||
fillMode: Image.PreserveAspectFit
|
||||
smooth: true
|
||||
source: "08_Software_Compatibility.png"
|
||||
}
|
||||
|
||||
}
|
||||
Slide {
|
||||
Image {
|
||||
id: image9
|
||||
anchors.centerIn: parent
|
||||
anchors.verticalCenterOffset: - parent.y / 3.6
|
||||
height: parent.masterHeight * 0.95
|
||||
width: parent.masterWidth * 0.95
|
||||
fillMode: Image.PreserveAspectFit
|
||||
smooth: true
|
||||
source: "09_Beautiful_Aesthetics.png"
|
||||
}
|
||||
|
||||
}
|
||||
Slide {
|
||||
Image {
|
||||
id: image10
|
||||
anchors.centerIn: parent
|
||||
anchors.verticalCenterOffset: - parent.y / 3.6
|
||||
height: parent.masterHeight * 0.95
|
||||
width: parent.masterWidth * 0.95
|
||||
fillMode: Image.PreserveAspectFit
|
||||
smooth: true
|
||||
source: "10_Kubuntu_Focus.png"
|
||||
}
|
||||
|
||||
}
|
||||
Slide {
|
||||
Image {
|
||||
id: image11
|
||||
anchors.centerIn: parent
|
||||
anchors.verticalCenterOffset: - parent.y / 3.6
|
||||
height: parent.masterHeight * 0.95
|
||||
width: parent.masterWidth * 0.95
|
||||
fillMode: Image.PreserveAspectFit
|
||||
smooth: true
|
||||
source: "11_Testimonials_of_Success.png"
|
||||
}
|
||||
|
||||
}
|
||||
Slide {
|
||||
Image {
|
||||
id: image12
|
||||
anchors.centerIn: parent
|
||||
anchors.verticalCenterOffset: - parent.y / 3.6
|
||||
height: parent.masterHeight * 0.95
|
||||
width: parent.masterWidth * 0.95
|
||||
fillMode: Image.PreserveAspectFit
|
||||
smooth: true
|
||||
source: "12_Get_Involved.png"
|
||||
}
|
||||
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 139 KiB |
Before Width: | Height: | Size: 131 KiB |
@ -1,16 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Launch Calamares normally.
|
||||
|
||||
if [ -e '/etc/calamares/OEM_MODE_ACTIVATED' ]; then
|
||||
msg="$(cat <<EOL
|
||||
The installer was previously run in OEM mode. Please reboot to reset the
|
||||
configuration and try again.
|
||||
EOL
|
||||
)";
|
||||
kdialog --msgbox "${msg}";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
export BROWSER='sudo -H -u kubuntu firefox'
|
||||
calamares -D8;
|
@ -1,24 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -ex
|
||||
|
||||
root=$1
|
||||
install_dir=$root/var/log/installer
|
||||
[ -d $install_dir ] || mkdir -p $install_dir
|
||||
|
||||
cp $HOME/.cache/calamares/session.log $install_dir/debug
|
||||
|
||||
cp /cdrom/.disk/info $install_dir/media-info
|
||||
cp /var/log/casper.log $install_dir/casper.log
|
||||
cp /var/log/syslog $install_dir/syslog
|
||||
|
||||
gzip --stdout $root/var/lib/dpkg/status > $install_dir/initial-status.gz
|
||||
|
||||
# OEM id isn't a thing, when in OEM mode ubiquity would also archive that.
|
||||
# https://github.com/calamares/calamares/issues/943
|
||||
|
||||
chmod -v 600 $install_dir/*
|
||||
# Make these world readable, they can absolutely not contain anything relevant
|
||||
# to security.
|
||||
chmod -v 644 $install_dir/initial-status.gz
|
||||
chmod -v 644 $install_dir/media-info
|
@ -1,6 +0,0 @@
|
||||
---
|
||||
baseUrl: archive.ubuntu.com
|
||||
distribution: Kubuntu
|
||||
geoip:
|
||||
style: "xml"
|
||||
url: "https://geoip.ubuntu.com/lookup"
|
@ -1,9 +0,0 @@
|
||||
displaymanagers:
|
||||
- sddm
|
||||
|
||||
defaultDesktopEnvironment:
|
||||
executable: "startkde"
|
||||
desktopFile: "plasma"
|
||||
|
||||
basicSetup: false
|
||||
sysconfigSetup: false
|
@ -1,2 +0,0 @@
|
||||
---
|
||||
batch-identifier: kubuntu-2404-${DATE}
|
@ -1,16 +0,0 @@
|
||||
update_db: true
|
||||
backend: apt
|
||||
operations:
|
||||
- remove:
|
||||
- "^live-*"
|
||||
- calamares-settings-kubuntu
|
||||
- calamares
|
||||
- cifs-utils
|
||||
- kubuntu-installer-prompt
|
||||
- try_install:
|
||||
- language-pack-$LOCALE
|
||||
- language-pack-gnome-$LOCALE
|
||||
- language-pack-kde-$LOCALE
|
||||
- hunspell-$LOCALE
|
||||
- libreoffice-help-$LOCALE
|
||||
- libreoffice-l10n-$LOCALE
|
@ -1,21 +0,0 @@
|
||||
efiSystemPartition: "/boot/efi"
|
||||
enableLuksAutomatedPartitioning: true
|
||||
luksGeneration: luks2
|
||||
userSwapChoices:
|
||||
- none
|
||||
- file
|
||||
initialSwapChoice: file
|
||||
drawNestedPartitions: true
|
||||
defaultFileSystemType: "ext4"
|
||||
availableFileSystemTypes: ["ext4","btrfs","xfs"]
|
||||
partitionLayout:
|
||||
- name: "kubuntu_boot"
|
||||
filesystem: ext4
|
||||
noEncrypt: true
|
||||
onlyPresentWithEncryption: true
|
||||
mountPoint: "/boot"
|
||||
size: 4G
|
||||
- name: "kubuntu_2404"
|
||||
filesystem: unknown
|
||||
mountPoint: "/"
|
||||
size: 100%
|
@ -1,19 +0,0 @@
|
||||
---
|
||||
dontChroot: false
|
||||
timeout: 10800
|
||||
"packages.minimalButton":
|
||||
true:
|
||||
- "DEBIAN_FRONTEND=noninteractive apt-get -y --purge remove kmahjongg kmines kpat ksudoku skanlite skanpage okular libreoffice* kdeconnect krdc konversation neochat elisa haruna vim snapd partitionmanager usb-creator* plasma-welcome kde-config-tablet plasma-welcome"
|
||||
- "apt-get -y autoremove"
|
||||
"packages.partyButton":
|
||||
true:
|
||||
- "DEBIAN_FRONTEND=noninteractive apt-get update"
|
||||
- "DEBIAN_FRONTEND=noninteractive apt-get -y install ubuntu-restricted-addons unrar"
|
||||
"packages.updatesButton":
|
||||
true:
|
||||
- "DEBIAN_FRONTEND=noninteractive apt-get update"
|
||||
- "DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::='--force-confnew' full-upgrade"
|
||||
"packages.virtmanagerButton":
|
||||
true:
|
||||
- "DEBIAN_FRONTEND=noninteractive apt-get update"
|
||||
- "DEBIAN_FRONTEND=noninteractive apt-get -y install virt-manager"
|
@ -1,9 +0,0 @@
|
||||
---
|
||||
dontChroot: true
|
||||
timeout: 10800
|
||||
"packages.elementButton":
|
||||
true: "snap-seed-glue --seed ${ROOT}/var/lib/snapd/seed element-desktop"
|
||||
"packages.kritaButton":
|
||||
true: "snap-seed-glue --seed ${ROOT}/var/lib/snapd/seed krita"
|
||||
"packages.thunderbirdButton":
|
||||
true: "snap-seed-glue --seed ${ROOT}/var/lib/snapd/seed thunderbird"
|
@ -1,5 +0,0 @@
|
||||
---
|
||||
dontChroot: true
|
||||
timeout: 120
|
||||
script:
|
||||
- "/usr/libexec/calamares-oemprep.sh ${ROOT}"
|
@ -1,30 +0,0 @@
|
||||
---
|
||||
doAutologin: false
|
||||
setRootPassword: false
|
||||
sudoersGroup: sudo
|
||||
defaultGroups:
|
||||
- adm
|
||||
- cdrom
|
||||
- dip
|
||||
- lpadmin
|
||||
- plugdev
|
||||
- name: sambashare
|
||||
must_exist: false
|
||||
system: true
|
||||
- sudo
|
||||
passwordRequirements:
|
||||
minLength: 1
|
||||
maxLength: -1
|
||||
# Explicitly set the shell instead of deferring to Calamares. We have a platform
|
||||
# expectation derived from Ubuntu here.
|
||||
user:
|
||||
shell: /bin/bash
|
||||
forbidden_names: [ root ]
|
||||
# Force the user of an OEM user
|
||||
presets:
|
||||
fullName:
|
||||
value: "OEM configuration"
|
||||
editable: false
|
||||
loginName:
|
||||
value: "oem"
|
||||
editable: false
|
@ -1,28 +0,0 @@
|
||||
---
|
||||
showSupportUrl: true
|
||||
showKnownIssuesUrl: true
|
||||
showReleaseNotesUrl: true
|
||||
# WARNING: Calamares documentation indicates that showDonateUrl will be moved to branding in the future. Be prepared for things to break right here.
|
||||
showDonateUrl: https://lubuntu.me/donate/
|
||||
|
||||
requirements:
|
||||
requiredStorage: 8
|
||||
requiredRam: 0.5
|
||||
internetCheckUrl: https://lubuntu.me
|
||||
|
||||
check:
|
||||
- storage
|
||||
- ram
|
||||
- power
|
||||
- internet
|
||||
- root
|
||||
required:
|
||||
- root
|
||||
- storage
|
||||
- ram
|
||||
|
||||
# GeoIP is effectively disabled by setting style to "none"
|
||||
geoip:
|
||||
style: "none"
|
||||
url: "https://geoip.ubuntu.com/lookup"
|
||||
selector: "CountryCode"
|
@ -1,20 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
msg="$(cat <<EOL
|
||||
You are about to disable OEM configuration mode. The system will boot into the
|
||||
account setup wizard the next time it is started.
|
||||
|
||||
Are you sure you want to continue?
|
||||
EOL
|
||||
)";
|
||||
|
||||
if kdialog --warningyesno "${msg}"; then
|
||||
sddm_file="$(cat <<EOL
|
||||
[Autologin]
|
||||
Session=kubuntu-oem-environment
|
||||
User=oem
|
||||
EOL
|
||||
)"
|
||||
echo "$sddm_file" | sudo tee /etc/sddm.conf
|
||||
kdialog --msgbox 'Done. The account setup wizard will run on next bootup.'
|
||||
fi
|
@ -1,10 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Version=1.0
|
||||
Name=Finish OEM preparation
|
||||
Exec=/usr/bin/calamares-finish-oem
|
||||
Icon=system-software-install
|
||||
Terminal=false
|
||||
StartupNotify=true
|
||||
Categories=Qt;System;
|
||||
Keywords=installer;calamares;system;
|
@ -1,44 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Enables OEM installaiton mode in Calamares.
|
||||
|
||||
if [ -e '/etc/calamares/OEM_MODE_ACTIVATED' ]; then
|
||||
export BROWSER='sudo -H -u kubuntu firefox'
|
||||
calamares -D8;
|
||||
exit;
|
||||
fi
|
||||
|
||||
msg="$(cat <<EOL
|
||||
You are about to install the OS in OEM mode. This will prepare the system for
|
||||
distribution to an end user, providing them with an account setup wizard. If
|
||||
you do not need this capability, please cancel and use the normal install
|
||||
method.
|
||||
|
||||
Are you sure you want to continue?
|
||||
EOL
|
||||
)";
|
||||
|
||||
if kdialog --warningyesno "${msg}"; then
|
||||
# Tweak branding to make it clear that OEM installation mode is active
|
||||
cp /etc/calamares/branding/kubuntu/welcome-oem.png /etc/calamares/branding/kubuntu/welcome.png;
|
||||
|
||||
# Don't remove Calamares from the installed system.
|
||||
sed -i '/- calamares$/d' /etc/calamares/modules/packages.conf;
|
||||
|
||||
# Enable oemid module, backslashes are needed for proper indentation
|
||||
sed -i "/- welcome$/a \ \ - oemid" /etc/calamares/settings.conf;
|
||||
|
||||
# Enable OEM prep module
|
||||
sed -i "/- packages$/a \ \ - shellprocess@oemprep" /etc/calamares/settings.conf;
|
||||
|
||||
# Force the user of an OEM configuration user
|
||||
cp /etc/calamares/modules/users.conf.oem /etc/calamares/modules/users.conf;
|
||||
|
||||
# Drop a file so that it can be seen that OEM installation mode is already
|
||||
# active
|
||||
touch /etc/calamares/OEM_MODE_ACTIVATED;
|
||||
|
||||
# Launch Calamares
|
||||
export BROWSER='sudo -H -u kubuntu firefox'
|
||||
calamares -D8;
|
||||
fi
|
@ -1,10 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Version=1.0
|
||||
Name=Install Kubuntu 24.04 LTS (OEM mode)
|
||||
Exec=sudo -E /usr/bin/calamares-launch-oem
|
||||
Icon=system-software-install
|
||||
Terminal=false
|
||||
StartupNotify=true
|
||||
Categories=Qt;System;
|
||||
Keywords=installer;calamares;system;
|
@ -1,7 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Remove OEM files from the system.
|
||||
|
||||
rm -rf /etc/calamares /usr/bin/basicwallpaper /usr/bin/calamares-finish-oem /usr/share/applications/calamares-finish-oem.desktop /usr/share/xsessions/kubuntu-oem-environment.desktop /usr/libexec/start-kubuntu-oem-env /etc/sudoers /usr/bin/calamares-logs-helper /usr/libexec/calamares-oemfinish.sh
|
||||
|
||||
mv /etc/sudoers.orig /etc/sudoers
|
@ -1,12 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Puts the installed system into OEM configuration mode. Argument 1 is the
|
||||
# path to the installed system's root directory.
|
||||
|
||||
# Install the OEM configuration for Calamares
|
||||
tar xvzf /etc/calamares/oemconfig.tar.gz -C "$1" --strip-components=2;
|
||||
chown -R 1000:1000 "$1"/home/oem
|
||||
|
||||
# Enable passwordless sudo for the OEM user, making sure this can be undone later
|
||||
mv "$1"/etc/sudoers "$1"/etc/sudoers.orig
|
||||
mv "$1"/etc/sudoers.oem "$1"/etc/sudoers
|
@ -1,5 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Exec=/usr/libexec/start-kubuntu-oem-env
|
||||
Name=Kubuntu OEM Environment
|
||||
Comment=Starts the Kubuntu OEM Environment
|
||||
Type=Application
|
@ -1,11 +0,0 @@
|
||||
#!/bin/bash
|
||||
# Starts the Kubuntu OEM Environment.
|
||||
export QT_STYLE_OVERRIDE="Breeze"
|
||||
export BROWSER='sudo -H -u kubuntu firefox'
|
||||
|
||||
/usr/bin/kwin_x11 &
|
||||
/usr/bin/basicwallpaper /usr/share/wallpapers/Next/contents/3840x2160.png &
|
||||
sudo -E /usr/bin/calamares -D8 # This is intentionally *not* backgrounded.
|
||||
# If it exits...
|
||||
killall basicwallpaper
|
||||
killall kwin_x11
|
@ -1,8 +0,0 @@
|
||||
---
|
||||
# Whether to create /etc/machine-id for systemd.
|
||||
systemd: true
|
||||
# Whether to create /var/lib/dbus/machine-id for D-Bus.
|
||||
dbus: true
|
||||
# Whether /var/lib/dbus/machine-id should be a symlink to /etc/machine-id
|
||||
# (ignored if dbus is false, or if there is no /etc/machine-id to point to).
|
||||
dbus-symlink: true
|
@ -1,5 +0,0 @@
|
||||
update_db: true
|
||||
backend: apt
|
||||
operations:
|
||||
- remove:
|
||||
- calamares
|
@ -1,2 +0,0 @@
|
||||
---
|
||||
username: oem
|
@ -1,5 +0,0 @@
|
||||
---
|
||||
dontChroot: true
|
||||
timeout: 120
|
||||
script:
|
||||
- "/usr/libexec/calamares-oemfinish.sh ${ROOT}"
|
@ -1,22 +0,0 @@
|
||||
---
|
||||
doAutologin: false
|
||||
setRootPassword: false
|
||||
sudoersGroup: sudo
|
||||
defaultGroups:
|
||||
- adm
|
||||
- cdrom
|
||||
- dip
|
||||
- lpadmin
|
||||
- plugdev
|
||||
- name: sambashare
|
||||
must_exist: false
|
||||
system: true
|
||||
- sudo
|
||||
passwordRequirements:
|
||||
minLength: 1
|
||||
maxLength: -1
|
||||
# Explicitly set the shell instead of deferring to Calamares. We have a platform
|
||||
# expectation derived from Ubuntu here.
|
||||
user:
|
||||
shell: /bin/bash
|
||||
forbidden_names: [ root ]
|
@ -1,27 +0,0 @@
|
||||
---
|
||||
showSupportUrl: true
|
||||
showKnownIssuesUrl: true
|
||||
showReleaseNotesUrl: true
|
||||
# WARNING: Calamares documentation indicates that showDonateUrl will be moved to branding in the future. Be prepared for things to break right here.
|
||||
showDonateUrl: https://lubuntu.me/donate/
|
||||
|
||||
requirements:
|
||||
requiredStorage: 8
|
||||
requiredRam: 0.5
|
||||
internetCheckUrl: https://lubuntu.me
|
||||
|
||||
check:
|
||||
- storage
|
||||
- ram
|
||||
- power
|
||||
- internet
|
||||
- root
|
||||
required:
|
||||
- root
|
||||
- storage
|
||||
- ram
|
||||
# GeoIP is effectively disabled by setting style to "none"
|
||||
geoip:
|
||||
style: "none"
|
||||
url: "https://geoip.ubuntu.com/lookup"
|
||||
selector: "CountryCode"
|
@ -1,3 +0,0 @@
|
||||
[Autologin]
|
||||
Session=plasma
|
||||
User=oem
|
@ -1,33 +0,0 @@
|
||||
---
|
||||
modules-search: [ local ]
|
||||
|
||||
instances:
|
||||
- id: oemfinish
|
||||
module: shellprocess
|
||||
config: shellprocess_oemfinish.conf
|
||||
|
||||
sequence:
|
||||
- show:
|
||||
- welcome
|
||||
- locale
|
||||
- keyboard
|
||||
- users
|
||||
- exec:
|
||||
- machineid
|
||||
- locale
|
||||
- keyboard
|
||||
- localecfg
|
||||
- users
|
||||
- displaymanager
|
||||
- packages
|
||||
- removeuser
|
||||
- shellprocess@oemfinish
|
||||
- show:
|
||||
- finished
|
||||
|
||||
branding: kubuntu
|
||||
prompt-install: true
|
||||
dont-chroot: true
|
||||
oem-setup: true
|
||||
disable-cancel: true
|
||||
disable-cancel-during-exec: true
|
@ -1,56 +0,0 @@
|
||||
#
|
||||
# This file MUST be edited with the 'visudo' command as root.
|
||||
#
|
||||
# Please consider adding local content in /etc/sudoers.d/ instead of
|
||||
# directly modifying this file.
|
||||
#
|
||||
# See the man page for details on how to write a sudoers file.
|
||||
#
|
||||
Defaults env_reset
|
||||
Defaults mail_badpass
|
||||
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
|
||||
Defaults use_pty
|
||||
|
||||
# This preserves proxy settings from user environments of root
|
||||
# equivalent users (group sudo)
|
||||
#Defaults:%sudo env_keep += "http_proxy https_proxy ftp_proxy all_proxy no_proxy"
|
||||
|
||||
# This allows running arbitrary commands, but so does ALL, and it means
|
||||
# different sudoers have their choice of editor respected.
|
||||
#Defaults:%sudo env_keep += "EDITOR"
|
||||
|
||||
# Completely harmless preservation of a user preference.
|
||||
#Defaults:%sudo env_keep += "GREP_COLOR"
|
||||
|
||||
# While you shouldn't normally run git as root, you need to with etckeeper
|
||||
#Defaults:%sudo env_keep += "GIT_AUTHOR_* GIT_COMMITTER_*"
|
||||
|
||||
# Per-user preferences; root won't have sensible values for them.
|
||||
#Defaults:%sudo env_keep += "EMAIL DEBEMAIL DEBFULLNAME"
|
||||
|
||||
# "sudo scp" or "sudo rsync" should be able to use your SSH agent.
|
||||
#Defaults:%sudo env_keep += "SSH_AGENT_PID SSH_AUTH_SOCK"
|
||||
|
||||
# Ditto for GPG agent
|
||||
#Defaults:%sudo env_keep += "GPG_AGENT_INFO"
|
||||
|
||||
# Host alias specification
|
||||
|
||||
# User alias specification
|
||||
|
||||
# Cmnd alias specification
|
||||
|
||||
# User privilege specification
|
||||
root ALL=(ALL:ALL) ALL
|
||||
|
||||
# Members of the admin group may gain root privileges
|
||||
%admin ALL=(ALL) ALL
|
||||
|
||||
# Allow members of group sudo to execute any command
|
||||
%sudo ALL=(ALL:ALL) ALL
|
||||
|
||||
# See sudoers(5) for more information on "@include" directives:
|
||||
@includedir /etc/sudoers.d
|
||||
|
||||
# OEM CONFIGURATION ONLY: oem user has passwordless sudo
|
||||
oem ALL=(ALL:ALL) NOPASSWD: ALL
|
@ -1,22 +0,0 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
POTFILES := $(shell cat POTFILES.in)
|
||||
|
||||
all: generate-po-files
|
||||
|
||||
generate-pot: POTFILES.in
|
||||
intltool-update --pot --gettext-package=calamares-settings-kubuntu
|
||||
|
||||
generate-po-files:
|
||||
for i in $(POTFILES); do \
|
||||
f=$$(echo $$i | sed 's/\.in//'); \
|
||||
intltool-merge -d . ../$$i ../$$f; \
|
||||
done
|
||||
|
||||
update-po:
|
||||
for i in *.po; do \
|
||||
code=$$(echo $$i | sed 's/.po//'); \
|
||||
intltool-update --gettext-package=calamares-settings-kubuntu --dist $$code; \
|
||||
done
|
||||
|
||||
# vim:ts=4
|
@ -1 +0,0 @@
|
||||
kubuntu-calamares.desktop.in
|
@ -1,28 +0,0 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-07-10 02:36-0500\n"
|
||||
"PO-Revision-Date: 2024-02-05 00:00+0000\n"
|
||||
"Last-Translator: Aaron Rainbolt <arraybolt3@ubuntu.com>\n"
|
||||
"Language-Team: Arabic <https://translate.lubuntu.me/projects/lubuntu/"
|
||||
"calamares-settings-lubuntu-desktop/ar/>\n"
|
||||
"Language: ar\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
|
||||
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
|
||||
"X-Generator: Weblate 3.1-dev\n"
|
||||
|
||||
#: ../kubuntu-calamares.desktop.in.h:1
|
||||
msgid "Install Kubuntu 24.04 LTS"
|
||||
msgstr "تثبيت كوبونتو 24.04 LTS"
|
||||
|
||||
#: ../kubuntu-calamares.desktop.in.h:2
|
||||
msgid "Install Kubuntu"
|
||||
msgstr "تثبيت كوبونتو"
|
||||
|
||||
#: ../kubuntu-calamares.desktop.in.h:3
|
||||
msgid "Calamares — System Installer"
|
||||
msgstr "كالاماريس - مثبت النظام"
|
@ -1,25 +0,0 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-07-10 02:36-0500\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: be\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Translate Toolkit 2.3.0\n"
|
||||
|
||||
#: ../kubuntu-calamares.desktop.in.h:1
|
||||
msgid "Install Kubuntu 24.04 LTS"
|
||||
msgstr ""
|
||||
|
||||
#: ../kubuntu-calamares.desktop.in.h:2
|
||||
msgid "Install Kubuntu"
|
||||
msgstr ""
|
||||
|
||||
#: ../kubuntu-calamares.desktop.in.h:3
|
||||
msgid "Calamares — System Installer"
|
||||
msgstr ""
|
@ -1,27 +0,0 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-07-10 02:36-0500\n"
|
||||
"PO-Revision-Date: 2024-02-05 00:00+0000\n"
|
||||
"Last-Translator: Aaron Rainbolt <arraybolt3@ubuntu.com>\n"
|
||||
"Language-Team: Catalan <https://translate.lubuntu.me/projects/lubuntu/"
|
||||
"calamares-settings-lubuntu-desktop/ca/>\n"
|
||||
"Language: ca\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 3.1-dev\n"
|
||||
|
||||
#: ../kubuntu-calamares.desktop.in.h:1
|
||||
msgid "Install Kubuntu 24.04 LTS"
|
||||
msgstr "Instal·lar Kubuntu 24.04 LTS"
|
||||
|
||||
#: ../kubuntu-calamares.desktop.in.h:2
|
||||
msgid "Install Kubuntu"
|
||||
msgstr "Instal·lar Kubuntu"
|
||||
|
||||
#: ../kubuntu-calamares.desktop.in.h:3
|
||||
msgid "Calamares — System Installer"
|
||||
msgstr "Calamares — Instal·lador del Sistema"
|
@ -1,27 +0,0 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-07-10 02:36-0500\n"
|
||||
"PO-Revision-Date: 2024-02-05 00:00+0000\n"
|
||||
"Last-Translator: Aaron Rainbolt <arraybolt3@ubuntu.com>\n"
|
||||
"Language-Team: Danish <https://translate.lubuntu.me/projects/lubuntu/"
|
||||
"calamares-settings-lubuntu-desktop/da/>\n"
|
||||
"Language: da\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 3.1-dev\n"
|
||||
|
||||
#: ../kubuntu-calamares.desktop.in.h:1
|
||||
msgid "Install Kubuntu 24.04 LTS"
|
||||
msgstr "Installer Kubuntu 24.04 LTS"
|
||||
|
||||
#: ../kubuntu-calamares.desktop.in.h:2
|
||||
msgid "Install Kubuntu"
|
||||
msgstr "Installer Kubuntu"
|
||||
|
||||
#: ../kubuntu-calamares.desktop.in.h:3
|
||||
msgid "Calamares — System Installer"
|
||||
msgstr "Calamares - System installation"
|
@ -1,27 +0,0 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-07-10 02:36-0500\n"
|
||||
"PO-Revision-Date: 2024-02-05 00:00+0000\n"
|
||||
"Last-Translator: Aaron Rainbolt <arraybolt3@ubuntu.com>\n"
|
||||
"Language-Team: German <https://translate.lubuntu.me/projects/lubuntu/"
|
||||
"calamares-settings-lubuntu-desktop/de/>\n"
|
||||
"Language: de\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 3.1-dev\n"
|
||||
|
||||
#: ../kubuntu-calamares.desktop.in.h:1
|
||||
msgid "Install Kubuntu 24.04 LTS"
|
||||
msgstr "Kubuntu 24.04 LTS installieren"
|
||||
|
||||
#: ../kubuntu-calamares.desktop.in.h:2
|
||||
msgid "Install Kubuntu"
|
||||
msgstr "Kubuntu installieren"
|
||||
|
||||
#: ../kubuntu-calamares.desktop.in.h:3
|
||||
msgid "Calamares — System Installer"
|
||||
msgstr "Calamares — System Installer"
|
@ -1,25 +0,0 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-07-10 02:36-0500\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: el\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Translate Toolkit 2.3.0\n"
|
||||
|
||||
#: ../kubuntu-calamares.desktop.in.h:1
|
||||
msgid "Install Kubuntu 24.04 LTS"
|
||||
msgstr ""
|
||||
|
||||
#: ../kubuntu-calamares.desktop.in.h:2
|
||||
msgid "Install Kubuntu"
|
||||
msgstr ""
|
||||
|
||||
#: ../kubuntu-calamares.desktop.in.h:3
|
||||
msgid "Calamares — System Installer"
|
||||
msgstr ""
|
@ -1,27 +0,0 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-07-10 02:36-0500\n"
|
||||
"PO-Revision-Date: 2024-02-05 00:00+0000\n"
|
||||
"Last-Translator: Aaron Rainbolt <arraybolt3@ubuntu.com>\n"
|
||||
"Language-Team: Spanish <https://translate.lubuntu.me/projects/lubuntu/"
|
||||
"calamares-settings-lubuntu-desktop/es/>\n"
|
||||
"Language: es\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 3.1-dev\n"
|
||||
|
||||
#: ../kubuntu-calamares.desktop.in.h:1
|
||||
msgid "Install Kubuntu 24.04 LTS"
|
||||
msgstr "Instalar Kubuntu 24.04 LTS"
|
||||
|
||||
#: ../kubuntu-calamares.desktop.in.h:2
|
||||
msgid "Install Kubuntu"
|
||||
msgstr "Instalar Kubuntu"
|
||||
|
||||
#: ../kubuntu-calamares.desktop.in.h:3
|
||||
msgid "Calamares — System Installer"
|
||||
msgstr "Calamares — Instalador del Sistema"
|
@ -1,25 +0,0 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-07-10 02:36-0500\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: et\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Translate Toolkit 2.3.0\n"
|
||||
|
||||
#: ../kubuntu-calamares.desktop.in.h:1
|
||||
msgid "Install Kubuntu 24.04 LTS"
|
||||
msgstr ""
|
||||
|
||||
#: ../kubuntu-calamares.desktop.in.h:2
|
||||
msgid "Install Kubuntu"
|
||||
msgstr ""
|
||||
|
||||
#: ../kubuntu-calamares.desktop.in.h:3
|
||||
msgid "Calamares — System Installer"
|
||||
msgstr ""
|