v0.3 theme: match onyx exactly — solid black wallpaper, Linux Konsole scheme, Breeze_Light cursor
Onyx uses Plasma's org.kde.color plugin for solid #000000 (no SVG/image), default Konsole 'Linux' palette, Breeze_Light cursor, IAX kwin buttons. Removed wallpaper SVG (not used). Added plasma-desktop.conf snippet + kdedefaults override for new users.
This commit is contained in:
parent
084582e0e5
commit
d2649fb335
18 changed files with 968 additions and 0 deletions
60
assets/kde/breezerc
Normal file
60
assets/kde/breezerc
Normal file
|
|
@ -0,0 +1,60 @@
|
||||||
|
# veilor-os — Breeze window decoration override
|
||||||
|
# Tighter borders, solid black title bar, minimal buttons, smallest border.
|
||||||
|
# Merged into /etc/xdg/breezerc (system default) by 30-apply-v03-theme.sh.
|
||||||
|
|
||||||
|
[Common]
|
||||||
|
# Tighter outline; subtle separator only when active.
|
||||||
|
OutlineCloseButton=false
|
||||||
|
ShadowSize=ShadowSmall
|
||||||
|
ShadowStrength=128
|
||||||
|
ShadowColor=0,0,0
|
||||||
|
|
||||||
|
[Windeco]
|
||||||
|
# Border thickness: smallest available (= "None" leaves only resize edge,
|
||||||
|
# "NoSides" keeps top/bottom only). We pick "None" for the tightest look,
|
||||||
|
# matching the black-on-black aesthetic.
|
||||||
|
BorderSize=None
|
||||||
|
ButtonSize=ButtonSmall
|
||||||
|
CloseButton=true
|
||||||
|
DrawBackgroundGradient=false
|
||||||
|
DrawBorderOnMaximizedWindows=false
|
||||||
|
DrawSizeGrip=false
|
||||||
|
DrawTitleBarSeparator=false
|
||||||
|
ExceptionType=0
|
||||||
|
HideTitleBar=false
|
||||||
|
OpaqueTitleBar=true
|
||||||
|
TitleAlignment=AlignCenter
|
||||||
|
UseBackgroundGradient=false
|
||||||
|
UseTitleBarColor=true
|
||||||
|
|
||||||
|
# Buttons: minimal — close / max / min only, no shade/help/keep-above.
|
||||||
|
ButtonsOnLeft=M
|
||||||
|
ButtonsOnRight=IAX
|
||||||
|
|
||||||
|
[Style]
|
||||||
|
# Disable per-app blur, transparency, and gradient effects.
|
||||||
|
MenuOpacity=100
|
||||||
|
WindowDragMode=1
|
||||||
|
ScrollBarAddLineButtons=0
|
||||||
|
ScrollBarSubLineButtons=0
|
||||||
|
SidePanelDrawFrame=false
|
||||||
|
SliderDrawTickMarks=false
|
||||||
|
TabBarDrawCenteredTabs=true
|
||||||
|
ToolBarDrawItemSeparator=false
|
||||||
|
DockWidgetDrawFrame=false
|
||||||
|
ProgressBarAnimated=false
|
||||||
|
AnimationsEnabled=false
|
||||||
|
StackedWidgetDrawFrame=false
|
||||||
|
|
||||||
|
# ── Active / inactive title bar colors (override Breeze defaults) ──
|
||||||
|
# kdeglobals [WM] section is the canonical source; these mirror it here
|
||||||
|
# so apps that only read breezerc see consistent values.
|
||||||
|
[Windeco][Active]
|
||||||
|
TitleBarColor=0,0,0
|
||||||
|
TitleBarTextColor=216,216,216
|
||||||
|
TitleBarBorderColor=104,107,111
|
||||||
|
|
||||||
|
[Windeco][Inactive]
|
||||||
|
TitleBarColor=15,17,18
|
||||||
|
TitleBarTextColor=161,169,177
|
||||||
|
TitleBarBorderColor=42,46,50
|
||||||
9
assets/kde/plasma-desktop.conf
Normal file
9
assets/kde/plasma-desktop.conf
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
# veilor-os default desktop config — solid black wallpaper (matches onyx).
|
||||||
|
# Plasma uses `wallpaperplugin=org.kde.color` (not org.kde.image) — pure
|
||||||
|
# black solid color rendering, no SVG asset needed.
|
||||||
|
# Applied via 30-apply-v03-theme.sh into ~/.config/plasma-org.kde.plasma.desktop-appletsrc
|
||||||
|
# default for new users.
|
||||||
|
|
||||||
|
[Containments][Wallpaper]
|
||||||
|
wallpaperplugin=org.kde.color
|
||||||
|
Color=0,0,0
|
||||||
|
|
@ -16,3 +16,14 @@ Theme=breeze-dark
|
||||||
LookAndFeelPackage=org.kde.breezedark.desktop
|
LookAndFeelPackage=org.kde.breezedark.desktop
|
||||||
SingleClick=false
|
SingleClick=false
|
||||||
contrast=4
|
contrast=4
|
||||||
|
widgetStyle=Breeze
|
||||||
|
|
||||||
|
[Mouse]
|
||||||
|
cursorTheme=Breeze_Light
|
||||||
|
cursorSize=24
|
||||||
|
|
||||||
|
[KDecoration]
|
||||||
|
theme=Breeze
|
||||||
|
ButtonsOnLeft=
|
||||||
|
ButtonsOnRight=IAX
|
||||||
|
BorderSize=None
|
||||||
|
|
|
||||||
104
assets/konsole/veilor.colorscheme
Normal file
104
assets/konsole/veilor.colorscheme
Normal file
|
|
@ -0,0 +1,104 @@
|
||||||
|
[General]
|
||||||
|
Anchor=0.5,0.5
|
||||||
|
Blur=false
|
||||||
|
ColorRandomization=false
|
||||||
|
Description=Veilor
|
||||||
|
FillStyle=Tile
|
||||||
|
Opacity=1
|
||||||
|
Wallpaper=
|
||||||
|
WallpaperFlipType=NoFlip
|
||||||
|
WallpaperOpacity=1
|
||||||
|
|
||||||
|
[Background]
|
||||||
|
Color=0,0,0
|
||||||
|
|
||||||
|
[BackgroundFaint]
|
||||||
|
Color=0,0,0
|
||||||
|
|
||||||
|
[BackgroundIntense]
|
||||||
|
Color=15,17,18
|
||||||
|
|
||||||
|
[Foreground]
|
||||||
|
Color=216,216,216
|
||||||
|
|
||||||
|
[ForegroundFaint]
|
||||||
|
Color=161,169,177
|
||||||
|
|
||||||
|
[ForegroundIntense]
|
||||||
|
Color=236,236,236
|
||||||
|
|
||||||
|
# ── Standard ANSI palette (muted, desaturated) ──
|
||||||
|
# Veilor aesthetic: no neon. Reds tone-shifted toward bordeaux, greens
|
||||||
|
# toward sage, blues toward slate. Greys lifted to remain readable.
|
||||||
|
|
||||||
|
[Color0]
|
||||||
|
Color=27,27,27
|
||||||
|
|
||||||
|
[Color0Faint]
|
||||||
|
Color=20,20,20
|
||||||
|
|
||||||
|
[Color0Intense]
|
||||||
|
Color=58,58,58
|
||||||
|
|
||||||
|
[Color1]
|
||||||
|
Color=176,55,69
|
||||||
|
|
||||||
|
[Color1Faint]
|
||||||
|
Color=130,40,52
|
||||||
|
|
||||||
|
[Color1Intense]
|
||||||
|
Color=205,87,99
|
||||||
|
|
||||||
|
[Color2]
|
||||||
|
Color=102,138,90
|
||||||
|
|
||||||
|
[Color2Faint]
|
||||||
|
Color=78,107,68
|
||||||
|
|
||||||
|
[Color2Intense]
|
||||||
|
Color=141,176,128
|
||||||
|
|
||||||
|
[Color3]
|
||||||
|
Color=185,158,98
|
||||||
|
|
||||||
|
[Color3Faint]
|
||||||
|
Color=140,118,72
|
||||||
|
|
||||||
|
[Color3Intense]
|
||||||
|
Color=216,193,134
|
||||||
|
|
||||||
|
[Color4]
|
||||||
|
Color=92,116,143
|
||||||
|
|
||||||
|
[Color4Faint]
|
||||||
|
Color=68,87,107
|
||||||
|
|
||||||
|
[Color4Intense]
|
||||||
|
Color=131,154,182
|
||||||
|
|
||||||
|
[Color5]
|
||||||
|
Color=141,113,150
|
||||||
|
|
||||||
|
[Color5Faint]
|
||||||
|
Color=104,84,112
|
||||||
|
|
||||||
|
[Color5Intense]
|
||||||
|
Color=176,148,186
|
||||||
|
|
||||||
|
[Color6]
|
||||||
|
Color=99,144,148
|
||||||
|
|
||||||
|
[Color6Faint]
|
||||||
|
Color=72,107,110
|
||||||
|
|
||||||
|
[Color6Intense]
|
||||||
|
Color=139,180,184
|
||||||
|
|
||||||
|
[Color7]
|
||||||
|
Color=200,200,200
|
||||||
|
|
||||||
|
[Color7Faint]
|
||||||
|
Color=161,169,177
|
||||||
|
|
||||||
|
[Color7Intense]
|
||||||
|
Color=236,236,236
|
||||||
55
assets/konsole/veilor.profile
Normal file
55
assets/konsole/veilor.profile
Normal file
|
|
@ -0,0 +1,55 @@
|
||||||
|
[General]
|
||||||
|
Name=Veilor
|
||||||
|
Parent=FALLBACK/
|
||||||
|
Command=/bin/bash
|
||||||
|
Directory=
|
||||||
|
Icon=utilities-terminal
|
||||||
|
LocalTabTitleFormat=%w
|
||||||
|
RemoteTabTitleFormat=(%u) %h
|
||||||
|
ShowTerminalSizeHint=false
|
||||||
|
StartInCurrentSessionDir=true
|
||||||
|
TerminalCenter=false
|
||||||
|
TerminalMargin=4
|
||||||
|
|
||||||
|
[Appearance]
|
||||||
|
ColorScheme=Linux
|
||||||
|
Font=Fira Code,11,-1,5,400,0,0,0,0,0,0,0,0,0,0,1
|
||||||
|
LineSpacing=1
|
||||||
|
UseFontLineCharacters=true
|
||||||
|
|
||||||
|
[Cursor Options]
|
||||||
|
CursorShape=0
|
||||||
|
UseCustomCursorColor=true
|
||||||
|
CustomCursorColor=104,107,111
|
||||||
|
CustomCursorTextColor=216,216,216
|
||||||
|
|
||||||
|
[Scrolling]
|
||||||
|
HistoryMode=2
|
||||||
|
HistorySize=10000
|
||||||
|
ScrollBarPosition=2
|
||||||
|
HighlightScrolledLines=false
|
||||||
|
|
||||||
|
[Terminal Features]
|
||||||
|
BellMode=3
|
||||||
|
BlinkingCursorEnabled=false
|
||||||
|
BlinkingTextEnabled=false
|
||||||
|
FlowControlEnabled=false
|
||||||
|
UrlHintsModifiers=67108864
|
||||||
|
ReverseUrlHints=false
|
||||||
|
VerticalLine=false
|
||||||
|
|
||||||
|
[Interaction Options]
|
||||||
|
AutoCopySelectedText=false
|
||||||
|
CopyTextAsHTML=false
|
||||||
|
TrimLeadingSpacesInSelectedText=false
|
||||||
|
TrimTrailingSpacesInSelectedText=true
|
||||||
|
UnderlineFilesEnabled=true
|
||||||
|
UnderlineLinksEnabled=true
|
||||||
|
OpenLinksByDirectClickEnabled=false
|
||||||
|
WordCharacters=:@-./_~?&=%+#
|
||||||
|
|
||||||
|
[Encoding Options]
|
||||||
|
DefaultEncoding=UTF-8
|
||||||
|
|
||||||
|
[Keyboard]
|
||||||
|
KeyBindings=default
|
||||||
8
assets/plymouth/veilor/veilor.plymouth
Normal file
8
assets/plymouth/veilor/veilor.plymouth
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
[Plymouth Theme]
|
||||||
|
Name=veilor
|
||||||
|
Description=veilor-os boot splash — black background, centered wordmark, slow pulse dot
|
||||||
|
ModuleName=script
|
||||||
|
|
||||||
|
[script]
|
||||||
|
ImageDir=/usr/share/plymouth/themes/veilor
|
||||||
|
ScriptFile=/usr/share/plymouth/themes/veilor/veilor.script
|
||||||
114
assets/plymouth/veilor/veilor.script
Normal file
114
assets/plymouth/veilor/veilor.script
Normal file
|
|
@ -0,0 +1,114 @@
|
||||||
|
// veilor-os Plymouth boot splash
|
||||||
|
// minimal: pure black background, centered "veilor" wordmark, single
|
||||||
|
// slowly-pulsing dot underneath. no fedora f, no spinning bar.
|
||||||
|
//
|
||||||
|
// Plymouth script reference: https://www.freedesktop.org/wiki/Software/Plymouth/Scripts/
|
||||||
|
|
||||||
|
// ── Background: pure black ──────────────────────────────────────────────
|
||||||
|
Window.SetBackgroundTopColor (0.0, 0.0, 0.0);
|
||||||
|
Window.SetBackgroundBottomColor(0.0, 0.0, 0.0);
|
||||||
|
|
||||||
|
screen_w = Window.GetWidth();
|
||||||
|
screen_h = Window.GetHeight();
|
||||||
|
|
||||||
|
// ── Wordmark: render "veilor" as text via Plymouth's image API ──────────
|
||||||
|
// Image() with a string renders the system font. Color is white (216/255).
|
||||||
|
wordmark.image = Image.Text("veilor", 0.847, 0.847, 0.847, 1.0, "Sans 28");
|
||||||
|
wordmark.sprite = Sprite(wordmark.image);
|
||||||
|
wordmark.sprite.SetX((screen_w - wordmark.image.GetWidth()) / 2);
|
||||||
|
wordmark.sprite.SetY((screen_h - wordmark.image.GetHeight()) / 2 - 12);
|
||||||
|
wordmark.sprite.SetOpacity(0.92);
|
||||||
|
|
||||||
|
// ── Pulse dot: single small white circle, opacity oscillates slowly ─────
|
||||||
|
// Build a 12x12 circle bitmap programmatically (no external assets needed).
|
||||||
|
dot_size = 12;
|
||||||
|
dot.image = Image("dot.png");
|
||||||
|
if (!dot.image) {
|
||||||
|
// Plymouth can't draw arbitrary shapes from script; if dot.png is
|
||||||
|
// missing, fall back to a small text bullet which the system font
|
||||||
|
// will render as a centered glyph. Keeps the theme self-contained.
|
||||||
|
dot.image = Image.Text("●", 0.847, 0.847, 0.847, 1.0, "Sans 18");
|
||||||
|
}
|
||||||
|
dot.sprite = Sprite(dot.image);
|
||||||
|
dot.sprite.SetX((screen_w - dot.image.GetWidth()) / 2);
|
||||||
|
dot.sprite.SetY((screen_h - dot.image.GetHeight()) / 2 + wordmark.image.GetHeight() / 2 + 18);
|
||||||
|
|
||||||
|
// ── Animation: slow opacity pulse on the dot ────────────────────────────
|
||||||
|
// Frame counter advances on every refresh tick (~50 Hz).
|
||||||
|
pulse_phase = 0;
|
||||||
|
fun refresh_callback() {
|
||||||
|
pulse_phase++;
|
||||||
|
// 240-tick cycle ≈ 4.8 s. sin-like via fractional triangle wave.
|
||||||
|
cycle = pulse_phase % 240;
|
||||||
|
half = 120;
|
||||||
|
if (cycle < half)
|
||||||
|
ratio = cycle / half;
|
||||||
|
else
|
||||||
|
ratio = (240 - cycle) / half;
|
||||||
|
// map 0..1 to opacity 0.25..0.95
|
||||||
|
opacity = 0.25 + ratio * 0.70;
|
||||||
|
dot.sprite.SetOpacity(opacity);
|
||||||
|
}
|
||||||
|
Plymouth.SetRefreshFunction(refresh_callback);
|
||||||
|
|
||||||
|
// ── Progress bar from message_handler ───────────────────────────────────
|
||||||
|
// Plymouth sends progress messages during boot; we silently consume them
|
||||||
|
// without drawing a bar (to keep the splash clean). Override as needed.
|
||||||
|
fun message_callback(text) {
|
||||||
|
// intentionally silent — keep splash uncluttered. Reserved for future
|
||||||
|
// status-line overlay if requested.
|
||||||
|
}
|
||||||
|
Plymouth.SetMessageFunction(message_callback);
|
||||||
|
|
||||||
|
// ── Boot phase callbacks (no-op) ────────────────────────────────────────
|
||||||
|
fun boot_progress_callback(duration, progress) {
|
||||||
|
// no progress bar by design — splash is intentionally static
|
||||||
|
}
|
||||||
|
Plymouth.SetBootProgressFunction(boot_progress_callback);
|
||||||
|
|
||||||
|
// ── Password prompt (LUKS unlock) ───────────────────────────────────────
|
||||||
|
// Required: when LUKS is unlocked at boot, plymouth shows a prompt.
|
||||||
|
// We render a minimal centered prompt under the dot.
|
||||||
|
prompt.label_image = NULL;
|
||||||
|
prompt.entry_image = NULL;
|
||||||
|
|
||||||
|
fun display_password_callback(prompt_text, bullets) {
|
||||||
|
if (prompt.label_image)
|
||||||
|
prompt.label_image = NULL;
|
||||||
|
if (prompt.entry_image)
|
||||||
|
prompt.entry_image = NULL;
|
||||||
|
|
||||||
|
label_text = prompt_text;
|
||||||
|
if (label_text == "") label_text = "passphrase";
|
||||||
|
|
||||||
|
prompt.label_image = Image.Text(label_text, 0.63, 0.63, 0.63, 1.0, "Sans 12");
|
||||||
|
prompt.label_sprite = Sprite(prompt.label_image);
|
||||||
|
prompt.label_sprite.SetX((screen_w - prompt.label_image.GetWidth()) / 2);
|
||||||
|
prompt.label_sprite.SetY(screen_h * 0.65);
|
||||||
|
|
||||||
|
bullet_text = "";
|
||||||
|
i = 0;
|
||||||
|
while (i < bullets) {
|
||||||
|
bullet_text += "•";
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
if (bullet_text == "") bullet_text = " ";
|
||||||
|
prompt.entry_image = Image.Text(bullet_text, 0.847, 0.847, 0.847, 1.0, "Sans 18");
|
||||||
|
prompt.entry_sprite = Sprite(prompt.entry_image);
|
||||||
|
prompt.entry_sprite.SetX((screen_w - prompt.entry_image.GetWidth()) / 2);
|
||||||
|
prompt.entry_sprite.SetY(screen_h * 0.65 + 24);
|
||||||
|
}
|
||||||
|
Plymouth.SetDisplayPasswordFunction(display_password_callback);
|
||||||
|
|
||||||
|
fun display_normal_callback() {
|
||||||
|
if (prompt.label_image) { prompt.label_image = NULL; prompt.label_sprite = NULL; }
|
||||||
|
if (prompt.entry_image) { prompt.entry_image = NULL; prompt.entry_sprite = NULL; }
|
||||||
|
}
|
||||||
|
Plymouth.SetDisplayNormalFunction(display_normal_callback);
|
||||||
|
|
||||||
|
// ── Quit ────────────────────────────────────────────────────────────────
|
||||||
|
fun quit_callback() {
|
||||||
|
wordmark.sprite.SetOpacity(0);
|
||||||
|
dot.sprite.SetOpacity(0);
|
||||||
|
}
|
||||||
|
Plymouth.SetQuitFunction(quit_callback);
|
||||||
155
assets/sddm/veilor-black/Main.qml
Normal file
155
assets/sddm/veilor-black/Main.qml
Normal file
|
|
@ -0,0 +1,155 @@
|
||||||
|
// veilor-os SDDM login theme — "veilor-black"
|
||||||
|
// Minimal black-on-black login screen. Single password field, admin
|
||||||
|
// pre-filled. Fira Code throughout. Grey accent (#686B6F) on focus.
|
||||||
|
//
|
||||||
|
// SDDM QML reference: https://github.com/sddm/sddm/wiki/Themes
|
||||||
|
|
||||||
|
import QtQuick 2.15
|
||||||
|
import QtQuick.Controls 2.15
|
||||||
|
import QtQuick.Layouts 1.15
|
||||||
|
import SddmComponents 2.0
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
id: root
|
||||||
|
width: 1920
|
||||||
|
height: 1080
|
||||||
|
color: "#000000"
|
||||||
|
|
||||||
|
// Fixed user — admin only (matches kickstart user creation)
|
||||||
|
property string fixedUser: "admin"
|
||||||
|
|
||||||
|
// Palette (mirrors veilor-black.colors)
|
||||||
|
readonly property color colBg: "#000000"
|
||||||
|
readonly property color colFg: "#d8d8d8" // 216,216,216
|
||||||
|
readonly property color colAccent: "#686b6f" // 104,107,111
|
||||||
|
readonly property color colMuted: "#3a3a3a"
|
||||||
|
readonly property color colError: "#b03745"
|
||||||
|
|
||||||
|
TextConstants { id: textConstants }
|
||||||
|
|
||||||
|
Connections {
|
||||||
|
target: sddm
|
||||||
|
function onLoginSucceeded() {
|
||||||
|
errorLabel.text = ""
|
||||||
|
}
|
||||||
|
function onLoginFailed() {
|
||||||
|
errorLabel.text = textConstants.loginFailed
|
||||||
|
passwordField.text = ""
|
||||||
|
passwordField.focus = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ── Wordmark ─────────────────────────────────────────────────────────
|
||||||
|
Text {
|
||||||
|
id: wordmark
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
anchors.verticalCenterOffset: -120
|
||||||
|
text: "veilor"
|
||||||
|
color: colFg
|
||||||
|
opacity: 0.85
|
||||||
|
font.family: "Fira Code"
|
||||||
|
font.pixelSize: 32
|
||||||
|
font.weight: Font.Light
|
||||||
|
}
|
||||||
|
|
||||||
|
// ── Login form ───────────────────────────────────────────────────────
|
||||||
|
Column {
|
||||||
|
id: form
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
anchors.verticalCenterOffset: -10
|
||||||
|
spacing: 12
|
||||||
|
width: 320
|
||||||
|
|
||||||
|
Text {
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
text: root.fixedUser
|
||||||
|
color: colAccent
|
||||||
|
font.family: "Fira Code"
|
||||||
|
font.pixelSize: 13
|
||||||
|
font.letterSpacing: 1
|
||||||
|
}
|
||||||
|
|
||||||
|
// Password input — single rounded box, grey border on focus
|
||||||
|
Rectangle {
|
||||||
|
id: passwordBox
|
||||||
|
width: parent.width
|
||||||
|
height: 44
|
||||||
|
radius: 4
|
||||||
|
color: colBg
|
||||||
|
border.width: 1
|
||||||
|
border.color: passwordField.focus ? colAccent : colMuted
|
||||||
|
|
||||||
|
TextInput {
|
||||||
|
id: passwordField
|
||||||
|
anchors.fill: parent
|
||||||
|
anchors.leftMargin: 12
|
||||||
|
anchors.rightMargin: 12
|
||||||
|
verticalAlignment: TextInput.AlignVCenter
|
||||||
|
color: colFg
|
||||||
|
selectionColor: colAccent
|
||||||
|
selectedTextColor: colFg
|
||||||
|
echoMode: TextInput.Password
|
||||||
|
passwordCharacter: "•"
|
||||||
|
font.family: "Fira Code"
|
||||||
|
font.pixelSize: 14
|
||||||
|
clip: true
|
||||||
|
focus: true
|
||||||
|
activeFocusOnTab: true
|
||||||
|
|
||||||
|
Keys.onPressed: function(event) {
|
||||||
|
if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter) {
|
||||||
|
sddm.login(root.fixedUser, passwordField.text, sessionCombo.currentIndex)
|
||||||
|
event.accepted = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
anchors.fill: parent
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
text: "passphrase"
|
||||||
|
color: colMuted
|
||||||
|
font.family: "Fira Code"
|
||||||
|
font.pixelSize: 14
|
||||||
|
visible: passwordField.text.length === 0 && !passwordField.focus
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: errorLabel
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
text: ""
|
||||||
|
color: colError
|
||||||
|
font.family: "Fira Code"
|
||||||
|
font.pixelSize: 11
|
||||||
|
visible: text.length > 0
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hidden session selector — defaults to first (Plasma)
|
||||||
|
ComboBox {
|
||||||
|
id: sessionCombo
|
||||||
|
visible: false
|
||||||
|
model: sessionModel
|
||||||
|
textRole: "name"
|
||||||
|
currentIndex: sessionModel.lastIndex
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ── Footer ───────────────────────────────────────────────────────────
|
||||||
|
Text {
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
anchors.bottom: parent.bottom
|
||||||
|
anchors.bottomMargin: 24
|
||||||
|
text: "veilor-os"
|
||||||
|
color: colMuted
|
||||||
|
font.family: "Fira Code"
|
||||||
|
font.pixelSize: 10
|
||||||
|
font.letterSpacing: 2
|
||||||
|
}
|
||||||
|
|
||||||
|
Component.onCompleted: {
|
||||||
|
passwordField.forceActiveFocus()
|
||||||
|
}
|
||||||
|
}
|
||||||
16
assets/sddm/veilor-black/metadata.desktop
Normal file
16
assets/sddm/veilor-black/metadata.desktop
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
[SddmGreeterTheme]
|
||||||
|
Name=veilor-black
|
||||||
|
Description=veilor-os login theme — black background, grey accent, single passphrase prompt
|
||||||
|
Author=veilor-os
|
||||||
|
Copyright=(c) veilor-os
|
||||||
|
License=MIT
|
||||||
|
Type=sddm-theme
|
||||||
|
Version=0.3
|
||||||
|
Website=https://github.com/veilor-org/veilor-os
|
||||||
|
Screenshot=
|
||||||
|
MainScript=Main.qml
|
||||||
|
ConfigFile=theme.conf
|
||||||
|
TranslationsDirectory=translations
|
||||||
|
Email=
|
||||||
|
Theme-Id=veilor-black
|
||||||
|
Theme-API=2.0
|
||||||
10
assets/sddm/veilor-black/theme.conf
Normal file
10
assets/sddm/veilor-black/theme.conf
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
[General]
|
||||||
|
# veilor-black SDDM theme — black background, grey accent, Fira Code
|
||||||
|
background=
|
||||||
|
type=color
|
||||||
|
color=#000000
|
||||||
|
fontFamily=Fira Code
|
||||||
|
fontSize=12
|
||||||
|
foreground=#d8d8d8
|
||||||
|
accent=#686b6f
|
||||||
|
muted=#3a3a3a
|
||||||
205
scripts/30-apply-v03-theme.sh
Executable file
205
scripts/30-apply-v03-theme.sh
Executable file
|
|
@ -0,0 +1,205 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
# veilor-os — v0.3 theme polish: Plymouth, SDDM, Konsole, wallpaper, Breeze
|
||||||
|
# Idempotent. Run as root during %post (chroot) or post-install.
|
||||||
|
# Tools missing in the build chroot (e.g. plymouth-set-default-theme,
|
||||||
|
# kwriteconfig*) are warned-and-skipped, not fatal.
|
||||||
|
|
||||||
|
set -uo pipefail
|
||||||
|
|
||||||
|
GREEN='\033[0;32m'; YELLOW='\033[1;33m'; RED='\033[0;31m'; NC='\033[0m'
|
||||||
|
ok() { echo -e "${GREEN}[OK]${NC} $*"; }
|
||||||
|
info() { echo -e "${YELLOW}[INFO]${NC} $*"; }
|
||||||
|
warn() { echo -e "${YELLOW}[WARN]${NC} $*"; }
|
||||||
|
err() { echo -e "${RED}[ERR]${NC} $*"; }
|
||||||
|
|
||||||
|
[[ $EUID -eq 0 ]] || { err "Must run as root"; exit 1; }
|
||||||
|
|
||||||
|
REPO="${VEILOR_REPO:-/usr/share/veilor-os}"
|
||||||
|
ASSETS="$REPO/assets"
|
||||||
|
|
||||||
|
if [[ ! -d $ASSETS ]]; then
|
||||||
|
err "asset tree not found at $ASSETS — aborting"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "════════════════════════════════════════════════════════"
|
||||||
|
echo " veilor-os :: 30-apply-v03-theme"
|
||||||
|
echo "════════════════════════════════════════════════════════"
|
||||||
|
|
||||||
|
# ─────────────────────────────────────────────────────────────────────
|
||||||
|
# 1. Plymouth boot splash
|
||||||
|
# ─────────────────────────────────────────────────────────────────────
|
||||||
|
info "Plymouth: installing veilor theme"
|
||||||
|
PLY_SRC="$ASSETS/plymouth/veilor"
|
||||||
|
PLY_DST="/usr/share/plymouth/themes/veilor"
|
||||||
|
if [[ -d $PLY_SRC ]]; then
|
||||||
|
install -d -m 0755 "$PLY_DST"
|
||||||
|
cp -af "$PLY_SRC/." "$PLY_DST/"
|
||||||
|
chmod 0644 "$PLY_DST/"*
|
||||||
|
ok "plymouth files copied to $PLY_DST"
|
||||||
|
|
||||||
|
if command -v plymouth-set-default-theme &>/dev/null; then
|
||||||
|
plymouth-set-default-theme -R veilor 2>/dev/null \
|
||||||
|
&& ok "plymouth default theme = veilor (initramfs rebuilt)" \
|
||||||
|
|| warn "plymouth-set-default-theme failed — set manually post-install"
|
||||||
|
else
|
||||||
|
warn "plymouth-set-default-theme not present (build chroot?) — skipping default-theme set"
|
||||||
|
# Fall back: write theme name to plymouth config so dracut picks it up
|
||||||
|
# next time initramfs is regenerated.
|
||||||
|
if [[ -f /etc/plymouth/plymouthd.conf ]]; then
|
||||||
|
sed -i 's/^Theme=.*/Theme=veilor/' /etc/plymouth/plymouthd.conf
|
||||||
|
else
|
||||||
|
install -d -m 0755 /etc/plymouth
|
||||||
|
cat > /etc/plymouth/plymouthd.conf << 'EOF'
|
||||||
|
[Daemon]
|
||||||
|
Theme=veilor
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
ok "plymouth Theme= written to /etc/plymouth/plymouthd.conf"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
warn "plymouth source dir missing at $PLY_SRC — skipping"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ─────────────────────────────────────────────────────────────────────
|
||||||
|
# 2. SDDM theme
|
||||||
|
# ─────────────────────────────────────────────────────────────────────
|
||||||
|
info "SDDM: installing veilor-black theme"
|
||||||
|
SDDM_SRC="$ASSETS/sddm/veilor-black"
|
||||||
|
SDDM_DST="/usr/share/sddm/themes/veilor-black"
|
||||||
|
if [[ -d $SDDM_SRC ]]; then
|
||||||
|
install -d -m 0755 "$SDDM_DST"
|
||||||
|
cp -af "$SDDM_SRC/." "$SDDM_DST/"
|
||||||
|
chmod 0644 "$SDDM_DST/"*
|
||||||
|
ok "sddm theme copied to $SDDM_DST"
|
||||||
|
|
||||||
|
install -d -m 0755 /etc/sddm.conf.d
|
||||||
|
# Preserve other sddm.conf.d/*.conf entries; this file owns [Theme] only.
|
||||||
|
cat > /etc/sddm.conf.d/veilor-theme.conf << 'EOF'
|
||||||
|
# veilor-os v0.3 — set veilor-black SDDM theme as default (matches onyx)
|
||||||
|
[Theme]
|
||||||
|
Current=veilor-black
|
||||||
|
CursorTheme=Breeze_Light
|
||||||
|
Font=Fira Code
|
||||||
|
EOF
|
||||||
|
ok "sddm theme set in /etc/sddm.conf.d/veilor-theme.conf"
|
||||||
|
else
|
||||||
|
warn "sddm source dir missing at $SDDM_SRC — skipping"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ─────────────────────────────────────────────────────────────────────
|
||||||
|
# 3. Konsole profile + colorscheme
|
||||||
|
# ─────────────────────────────────────────────────────────────────────
|
||||||
|
info "Konsole: installing Veilor profile + colorscheme"
|
||||||
|
KONS_SRC="$ASSETS/konsole"
|
||||||
|
if [[ -d $KONS_SRC ]]; then
|
||||||
|
install -d -m 0755 /usr/share/konsole
|
||||||
|
install -m 0644 "$KONS_SRC/veilor.profile" /usr/share/konsole/Veilor.profile
|
||||||
|
install -m 0644 "$KONS_SRC/veilor.colorscheme" /usr/share/konsole/Veilor.colorscheme
|
||||||
|
ok "konsole profile + colorscheme installed"
|
||||||
|
|
||||||
|
# Set as default in /etc/xdg/konsolerc (system-wide). Idempotent rewrite
|
||||||
|
# of the [Desktop Entry] section's DefaultProfile key.
|
||||||
|
install -d -m 0755 /etc/xdg
|
||||||
|
if [[ -f /etc/xdg/konsolerc ]]; then
|
||||||
|
# Remove any existing DefaultProfile= line, then re-add under [Desktop Entry].
|
||||||
|
if grep -q '^\[Desktop Entry\]' /etc/xdg/konsolerc; then
|
||||||
|
sed -i '/^DefaultProfile=/d' /etc/xdg/konsolerc
|
||||||
|
sed -i '/^\[Desktop Entry\]/a DefaultProfile=Veilor.profile' /etc/xdg/konsolerc
|
||||||
|
else
|
||||||
|
printf '\n[Desktop Entry]\nDefaultProfile=Veilor.profile\n' >> /etc/xdg/konsolerc
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
cat > /etc/xdg/konsolerc << 'EOF'
|
||||||
|
[Desktop Entry]
|
||||||
|
DefaultProfile=Veilor.profile
|
||||||
|
|
||||||
|
[KonsoleWindow]
|
||||||
|
ShowMenuBarByDefault=false
|
||||||
|
ShowWindowTitleOnTitleBar=true
|
||||||
|
|
||||||
|
[TabBar]
|
||||||
|
TabBarVisibility=AlwaysHideTabBar
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
ok "konsole default profile set in /etc/xdg/konsolerc"
|
||||||
|
else
|
||||||
|
warn "konsole source dir missing at $KONS_SRC — skipping"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ─────────────────────────────────────────────────────────────────────
|
||||||
|
# 4. Wallpaper — solid black (matches onyx, no SVG asset)
|
||||||
|
# ─────────────────────────────────────────────────────────────────────
|
||||||
|
info "Wallpaper: setting Plasma default to org.kde.color (solid black)"
|
||||||
|
# onyx uses `wallpaperplugin=org.kde.color` + `Color=0,0,0` — pure black
|
||||||
|
# rendered by Plasma's color plugin, no image asset needed.
|
||||||
|
# Apply via system-wide kdedefaults so new users inherit.
|
||||||
|
KDD=/etc/xdg/kdedefaults
|
||||||
|
install -d -m 0755 "$KDD"
|
||||||
|
cat > "$KDD/plasma-org.kde.plasma.desktop-appletsrc" << 'EOF'
|
||||||
|
[Containments][1]
|
||||||
|
plugin=org.kde.desktopcontainment
|
||||||
|
wallpaperplugin=org.kde.color
|
||||||
|
|
||||||
|
[Containments][1][Wallpaper][org.kde.color][General]
|
||||||
|
Color=0,0,0
|
||||||
|
EOF
|
||||||
|
ok "default wallpaper = solid #000000 (Plasma color plugin)"
|
||||||
|
|
||||||
|
# ─────────────────────────────────────────────────────────────────────
|
||||||
|
# 5. Breeze decoration override
|
||||||
|
# ─────────────────────────────────────────────────────────────────────
|
||||||
|
info "Breeze: installing veilor decoration override"
|
||||||
|
BRZ_SRC="$ASSETS/kde/breezerc"
|
||||||
|
BRZ_DST="/etc/xdg/breezerc"
|
||||||
|
if [[ -f $BRZ_SRC ]]; then
|
||||||
|
install -d -m 0755 /etc/xdg
|
||||||
|
install -m 0644 "$BRZ_SRC" "$BRZ_DST"
|
||||||
|
ok "breezerc installed at $BRZ_DST"
|
||||||
|
|
||||||
|
# Also reflect title bar / button settings into kdeglobals so KWin
|
||||||
|
# picks up the same values without users running kde-theme-apply.sh.
|
||||||
|
KDG="/etc/xdg/kdedefaults/kdeglobals"
|
||||||
|
if [[ -f $KDG ]]; then
|
||||||
|
if ! grep -q '^\[KDE\]' "$KDG"; then
|
||||||
|
echo -e '\n[KDE]\nSingleClick=false' >> "$KDG"
|
||||||
|
fi
|
||||||
|
ok "kdeglobals already present at $KDG (no overwrite)"
|
||||||
|
else
|
||||||
|
warn "kdeglobals not found at $KDG — kde-theme-apply.sh runs separately"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
warn "breezerc source missing at $BRZ_SRC — skipping"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ─────────────────────────────────────────────────────────────────────
|
||||||
|
# 6. Sanity: brand leak check (mirrors kickstart %post sanity)
|
||||||
|
# ─────────────────────────────────────────────────────────────────────
|
||||||
|
info "Sanity: scanning installed v0.3 paths for brand leaks"
|
||||||
|
LEAK_PATHS=(
|
||||||
|
"/usr/share/plymouth/themes/veilor"
|
||||||
|
"/usr/share/sddm/themes/veilor-black"
|
||||||
|
"/usr/share/konsole/Veilor.profile"
|
||||||
|
"/usr/share/konsole/Veilor.colorscheme"
|
||||||
|
"/etc/xdg/breezerc"
|
||||||
|
"/etc/sddm.conf.d/veilor-theme.conf"
|
||||||
|
"/etc/xdg/konsolerc"
|
||||||
|
"/etc/xdg/kdedefaults/plasma-org.kde.plasma.desktop-appletsrc"
|
||||||
|
)
|
||||||
|
LEAK=0
|
||||||
|
for p in "${LEAK_PATHS[@]}"; do
|
||||||
|
[[ -e $p ]] || continue
|
||||||
|
if grep -rqi 'onyx\|192\.168\.0\.\|fedora\.local\|admin@gmail' "$p" 2>/dev/null; then
|
||||||
|
err "brand leak detected in $p"
|
||||||
|
LEAK=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [[ $LEAK -eq 0 ]]; then
|
||||||
|
ok "no brand leaks in v0.3 theme assets"
|
||||||
|
else
|
||||||
|
warn "brand leaks present — review and rebuild"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "════════════════════════════════════════════════════════"
|
||||||
|
echo " 30-apply-v03-theme complete"
|
||||||
|
echo "════════════════════════════════════════════════════════"
|
||||||
51
upstream/fedora-kde-common.ks
Normal file
51
upstream/fedora-kde-common.ks
Normal file
|
|
@ -0,0 +1,51 @@
|
||||||
|
|
||||||
|
%packages
|
||||||
|
# install env-group to resolve RhBug:1891500
|
||||||
|
@^kde-desktop-environment
|
||||||
|
|
||||||
|
@firefox
|
||||||
|
@kde-apps
|
||||||
|
@kde-media
|
||||||
|
@kde-pim
|
||||||
|
# Ensure we have Anaconda initial setup using kwin
|
||||||
|
@kde-spin-initial-setup
|
||||||
|
@libreoffice
|
||||||
|
# add libreoffice-draw and libreoffice-math (pagureio:fedora-kde/SIG#103)
|
||||||
|
libreoffice-draw
|
||||||
|
libreoffice-math
|
||||||
|
|
||||||
|
fedora-release-kde
|
||||||
|
|
||||||
|
-@admin-tools
|
||||||
|
|
||||||
|
# drop tracker stuff pulled in by gtk3 (pagureio:fedora-kde/SIG#124)
|
||||||
|
-tracker-miners
|
||||||
|
-tracker
|
||||||
|
|
||||||
|
# Not needed on desktops. See: https://pagure.io/fedora-kde/SIG/issue/566
|
||||||
|
-mariadb-server-utils
|
||||||
|
|
||||||
|
### The KDE-Desktop
|
||||||
|
|
||||||
|
# fedora-specific packages
|
||||||
|
plasma-welcome-fedora
|
||||||
|
|
||||||
|
### fixes
|
||||||
|
|
||||||
|
# minimal localization support - allows installing the kde-l10n-* packages
|
||||||
|
kde-l10n
|
||||||
|
|
||||||
|
# Additional packages that are not default in kde-* groups, but useful
|
||||||
|
fuse
|
||||||
|
mediawriter
|
||||||
|
|
||||||
|
### space issues
|
||||||
|
-ktorrent # kget has also basic torrent features (~3 megs)
|
||||||
|
-digikam # digikam has duplicate functionality with gwenview (~28 megs)
|
||||||
|
-kipi-plugins # ~8 megs + drags in Marble
|
||||||
|
-krusader # ~4 megs
|
||||||
|
-k3b # ~15 megs
|
||||||
|
|
||||||
|
## avoid serious bugs by omitting broken stuff
|
||||||
|
|
||||||
|
%end
|
||||||
106
upstream/fedora-live-base.ks
Normal file
106
upstream/fedora-live-base.ks
Normal file
|
|
@ -0,0 +1,106 @@
|
||||||
|
# fedora-live-base.ks
|
||||||
|
#
|
||||||
|
# Defines the basics for all kickstarts in the fedora-live branch
|
||||||
|
# Does not include package selection (other then mandatory)
|
||||||
|
# Does not include localization packages or configuration
|
||||||
|
#
|
||||||
|
# Does includes "default" language configuration (kickstarts including
|
||||||
|
# this template can override these settings)
|
||||||
|
|
||||||
|
lang en_US.UTF-8
|
||||||
|
keyboard us
|
||||||
|
timezone US/Eastern
|
||||||
|
selinux --enforcing
|
||||||
|
firewall --enabled --service=mdns
|
||||||
|
xconfig --startxonboot
|
||||||
|
zerombr
|
||||||
|
clearpart --all
|
||||||
|
part / --size 5120 --fstype ext4
|
||||||
|
services --enabled=NetworkManager,ModemManager --disabled=sshd
|
||||||
|
network --bootproto=dhcp --device=link --activate
|
||||||
|
rootpw --lock --iscrypted locked
|
||||||
|
shutdown
|
||||||
|
|
||||||
|
%include fedora-repo.ks
|
||||||
|
|
||||||
|
%packages
|
||||||
|
# Explicitly specified here:
|
||||||
|
# <notting> walters: because otherwise dependency loops cause yum issues.
|
||||||
|
kernel
|
||||||
|
kernel-modules
|
||||||
|
kernel-modules-extra
|
||||||
|
|
||||||
|
# The point of a live image is to install
|
||||||
|
anaconda-install-env-deps
|
||||||
|
anaconda-live
|
||||||
|
@anaconda-tools
|
||||||
|
# Anaconda has a weak dep on this and we don't want it on livecds, see
|
||||||
|
# https://fedoraproject.org/wiki/Changes/RemoveDeviceMapperMultipathFromWorkstationLiveCD
|
||||||
|
-fcoe-utils
|
||||||
|
-device-mapper-multipath
|
||||||
|
-sdubby
|
||||||
|
|
||||||
|
# Need aajohan-comfortaa-fonts for the SVG rnotes images
|
||||||
|
aajohan-comfortaa-fonts
|
||||||
|
|
||||||
|
# Without this, initramfs generation during live image creation fails: #1242586
|
||||||
|
dracut-live
|
||||||
|
|
||||||
|
# anaconda needs the locales available to run for different locales
|
||||||
|
glibc-all-langpacks
|
||||||
|
|
||||||
|
# provide the livesys scripts
|
||||||
|
livesys-scripts
|
||||||
|
%end
|
||||||
|
|
||||||
|
%post
|
||||||
|
# Enable livesys services
|
||||||
|
systemctl enable livesys.service
|
||||||
|
systemctl enable livesys-late.service
|
||||||
|
|
||||||
|
# enable tmpfs for /tmp
|
||||||
|
systemctl enable tmp.mount
|
||||||
|
|
||||||
|
# make it so that we don't do writing to the overlay for things which
|
||||||
|
# are just tmpdirs/caches
|
||||||
|
# note https://bugzilla.redhat.com/show_bug.cgi?id=1135475
|
||||||
|
cat >> /etc/fstab << EOF
|
||||||
|
vartmp /var/tmp tmpfs defaults 0 0
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# work around for poor key import UI in PackageKit
|
||||||
|
rm -f /var/lib/rpm/__db*
|
||||||
|
echo "Packages within this LiveCD"
|
||||||
|
rpm -qa --qf '%{size}\t%{name}-%{version}-%{release}.%{arch}\n' |sort -rn
|
||||||
|
# Note that running rpm recreates the rpm db files which aren't needed or wanted
|
||||||
|
rm -f /var/lib/rpm/__db*
|
||||||
|
|
||||||
|
# go ahead and pre-make the man -k cache (#455968)
|
||||||
|
/usr/bin/mandb
|
||||||
|
|
||||||
|
# make sure there aren't core files lying around
|
||||||
|
rm -f /core*
|
||||||
|
|
||||||
|
# remove random seed, the newly installed instance should make it's own
|
||||||
|
rm -f /var/lib/systemd/random-seed
|
||||||
|
|
||||||
|
# convince readahead not to collect
|
||||||
|
# FIXME: for systemd
|
||||||
|
|
||||||
|
echo 'File created by kickstart. See systemd-update-done.service(8).' \
|
||||||
|
| tee /etc/.updated >/var/.updated
|
||||||
|
|
||||||
|
# Drop the rescue kernel and initramfs, we don't need them on the live media itself.
|
||||||
|
# See bug 1317709
|
||||||
|
rm -f /boot/*-rescue*
|
||||||
|
|
||||||
|
# Disable network service here, as doing it in the services line
|
||||||
|
# fails due to RHBZ #1369794
|
||||||
|
systemctl disable network
|
||||||
|
|
||||||
|
# Remove machine-id on pre generated images
|
||||||
|
rm -f /etc/machine-id
|
||||||
|
touch /etc/machine-id
|
||||||
|
|
||||||
|
%end
|
||||||
|
|
||||||
25
upstream/fedora-live-kde-base.ks
Normal file
25
upstream/fedora-live-kde-base.ks
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
# Maintained by the Fedora KDE SIG:
|
||||||
|
# http://fedoraproject.org/wiki/SIGs/KDE
|
||||||
|
# mailto:kde@lists.fedoraproject.org
|
||||||
|
|
||||||
|
%include fedora-live-base.ks
|
||||||
|
%include fedora-kde-common.ks
|
||||||
|
|
||||||
|
%post
|
||||||
|
|
||||||
|
# set default GTK+ theme for root (see #683855, #689070, #808062)
|
||||||
|
cat > /root/.gtkrc-2.0 << EOF
|
||||||
|
include "/usr/share/themes/Adwaita/gtk-2.0/gtkrc"
|
||||||
|
include "/etc/gtk-2.0/gtkrc"
|
||||||
|
gtk-theme-name="Adwaita"
|
||||||
|
EOF
|
||||||
|
mkdir -p /root/.config/gtk-3.0
|
||||||
|
cat > /root/.config/gtk-3.0/settings.ini << EOF
|
||||||
|
[Settings]
|
||||||
|
gtk-theme-name = Adwaita
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# set livesys session type
|
||||||
|
sed -i 's/^livesys_session=.*/livesys_session="kde"/' /etc/sysconfig/livesys
|
||||||
|
|
||||||
|
%end
|
||||||
17
upstream/fedora-live-kde.ks
Normal file
17
upstream/fedora-live-kde.ks
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
# fedora-livecd-kde.ks
|
||||||
|
#
|
||||||
|
# Description:
|
||||||
|
# - Fedora Live Spin with the K Desktop Environment (KDE), default 1.4 GB version
|
||||||
|
#
|
||||||
|
# Maintainer(s):
|
||||||
|
# - Sebastian Vahl <fedora@deadbabylon.de>
|
||||||
|
# - Fedora KDE SIG, http://fedoraproject.org/wiki/SIGs/KDE, kde@lists.fedoraproject.org
|
||||||
|
|
||||||
|
%include fedora-live-kde-base.ks
|
||||||
|
%include fedora-live-minimization.ks
|
||||||
|
|
||||||
|
# DVD payload
|
||||||
|
part / --size=9000
|
||||||
|
|
||||||
|
%post
|
||||||
|
%end
|
||||||
9
upstream/fedora-live-minimization.ks
Normal file
9
upstream/fedora-live-minimization.ks
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
# Common packages removed from comps
|
||||||
|
# For F14, these removals should be moved to comps itself
|
||||||
|
|
||||||
|
%packages
|
||||||
|
|
||||||
|
# save some space
|
||||||
|
-hplip
|
||||||
|
|
||||||
|
%end
|
||||||
4
upstream/fedora-repo-not-rawhide.ks
Normal file
4
upstream/fedora-repo-not-rawhide.ks
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
repo --name=fedora --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
||||||
|
repo --name=updates --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
||||||
|
#repo --name=updates-testing --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f$releasever&arch=$basearch
|
||||||
|
url --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
||||||
9
upstream/fedora-repo.ks
Normal file
9
upstream/fedora-repo.ks
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
# Include the appropriate repo definitions
|
||||||
|
|
||||||
|
# Exactly one of the following should be uncommented
|
||||||
|
|
||||||
|
# For the master branch the following should be uncommented
|
||||||
|
# %include fedora-repo-rawhide.ks
|
||||||
|
|
||||||
|
# For non-master branches the following should be uncommented
|
||||||
|
%include fedora-repo-not-rawhide.ks
|
||||||
Loading…
Reference in a new issue