This commit is contained in:
Lysec
2026-02-26 04:13:58 +01:00
28 changed files with 113 additions and 116 deletions
+2
View File
@@ -799,6 +799,8 @@
"appearance-capsule-color-label": "Kapselfarbe",
"appearance-capsule-opacity-description": "Deckkraft der Widget-Hintergründe festlegen, wenn Kapsel angezeigt wird.",
"appearance-capsule-opacity-label": "Kapsel-Deckkraft",
"appearance-content-padding-description": "Passen Sie den Abstand zwischen Leistenrändern und Widgets an.",
"appearance-content-padding-label": "Inhaltsabstand",
"appearance-density-description": "Innenabstand der Leiste für kompaktes oder geräumiges Aussehen anpassen.",
"appearance-density-label": "Leistendichte",
"appearance-desc": "Erscheinungsbild und Position der Leiste anpassen.",
+2
View File
@@ -799,6 +799,8 @@
"appearance-capsule-color-label": "Capsule color",
"appearance-capsule-opacity-description": "Set the opacity level for widget backgrounds when capsule is shown.",
"appearance-capsule-opacity-label": "Capsule opacity",
"appearance-content-padding-description": "Adjust the padding between bar edges and widgets.",
"appearance-content-padding-label": "Content padding",
"appearance-density-description": "Adjust the bar's padding for a compact or spacious look.",
"appearance-density-label": "Bar density",
"appearance-desc": "Customize the bar's appearance and position.",
+2
View File
@@ -799,6 +799,8 @@
"appearance-capsule-color-label": "Color de la cápsula",
"appearance-capsule-opacity-description": "Establecer el nivel de opacidad para los fondos de los widgets cuando se muestra la cápsula.",
"appearance-capsule-opacity-label": "Opacidad de la cápsula",
"appearance-content-padding-description": "Ajusta el espacio entre los bordes de la barra y los widgets.",
"appearance-content-padding-label": "Espaciado del contenido",
"appearance-density-description": "Ajusta el relleno de la barra para un aspecto compacto o espacioso.",
"appearance-density-label": "Densidad de la barra",
"appearance-desc": "Personaliza la apariencia y posición de la barra.",
+2
View File
@@ -799,6 +799,8 @@
"appearance-capsule-color-label": "Couleur de la capsule",
"appearance-capsule-opacity-description": "Définir le niveau d'opacité des arrière-plans des widgets quand la capsule est affichée.",
"appearance-capsule-opacity-label": "Opacité de la capsule",
"appearance-content-padding-description": "Ajustez l'espacement entre les bords de la barre et les widgets.",
"appearance-content-padding-label": "Espacement du contenu",
"appearance-density-description": "Ajustez le remplissage de la barre pour un aspect compact ou spacieux.",
"appearance-density-label": "Densité de la barre",
"appearance-desc": "Personnalisez l'apparence et la position de la barre.",
+2
View File
@@ -799,6 +799,8 @@
"appearance-capsule-color-label": "Kapszula színe",
"appearance-capsule-opacity-description": "Beállítja a widget hátterének átlátszósági szintjét, amikor a kapszula megjelenik.",
"appearance-capsule-opacity-label": "Kapszula átlátszósága",
"appearance-content-padding-description": "Állítsd be a távolságot a sáv szélei és a widgetek között.",
"appearance-content-padding-label": "Tartalom távolság",
"appearance-density-description": "A sáv belső margóinak beállítása a kompakt vagy tágas megjelenés érdekében.",
"appearance-density-label": "Sáv sűrűsége",
"appearance-desc": "A sáv megjelenésének és pozíciójának testreszabása.",
+2
View File
@@ -799,6 +799,8 @@
"appearance-capsule-color-label": "カプセルの色",
"appearance-capsule-opacity-description": "カプセル表示時のウィジェット背景の不透明度を設定します。",
"appearance-capsule-opacity-label": "カプセルの不透明度",
"appearance-content-padding-description": "バーの端とウィジェット間のパディングを調整します。",
"appearance-content-padding-label": "コンテンツパディング",
"appearance-density-description": "バーの余白を調整し、コンパクトまたはゆったりとした外観にします。",
"appearance-density-label": "バーの密度",
"appearance-desc": "バーの外観や位置をカスタマイズします。",
+2
View File
@@ -799,6 +799,8 @@
"appearance-capsule-color-label": "캡슐 색상",
"appearance-capsule-opacity-description": "캡슐이 표시될 때 위젯 배경의 불투명도 수준을 설정합니다.",
"appearance-capsule-opacity-label": "캡슐 불투명도",
"appearance-content-padding-description": "바 가장자리와 위젯 사이의 패딩을 조정합니다.",
"appearance-content-padding-label": "콘텐츠 패딩",
"appearance-density-description": "컴팩트하거나 넓은 모양을 위해 바의 패딩을 조정합니다.",
"appearance-density-label": "바 밀도",
"appearance-desc": "바의 모양과 위치를 사용자 지정합니다.",
+2
View File
@@ -799,6 +799,8 @@
"appearance-capsule-color-label": "Capsulekleur",
"appearance-capsule-opacity-description": "Stel het doorzichtigheidsniveau in voor widget-achtergronden wanneer capsule wordt getoond.",
"appearance-capsule-opacity-label": "Capsule-doorzichtigheid",
"appearance-content-padding-description": "Pas de opvulling tussen de baranden en widgets aan.",
"appearance-content-padding-label": "Inhoudopvulling",
"appearance-density-description": "Pas de opvulling van de balk aan voor een compacte of ruime uitstraling.",
"appearance-density-label": "Balkdichtheid",
"appearance-desc": "Pas de uitstraling en positie van de balk aan.",
+2
View File
@@ -799,6 +799,8 @@
"appearance-capsule-color-label": "Kolor kapsuły",
"appearance-capsule-opacity-description": "Ustaw poziom przezroczystości tła widżetów, gdy kapsuła jest widoczna.",
"appearance-capsule-opacity-label": "Przezroczystość kapsuły",
"appearance-content-padding-description": "Dostosuj odstęp między krawędziami paska a widżetami.",
"appearance-content-padding-label": "Odstęp treści",
"appearance-density-description": "Dostosuj odstępy paska dla kompaktowego lub przestronnego wyglądu.",
"appearance-density-label": "Zagęszczenie paska",
"appearance-desc": "Dostosuj wygląd i pozycję paska.",
+2
View File
@@ -799,6 +799,8 @@
"appearance-capsule-color-label": "Cor da cápsula",
"appearance-capsule-opacity-description": "Define o nível de opacidade para fundos dos widgets quando a cápsula é mostrada.",
"appearance-capsule-opacity-label": "Opacidade da cápsula",
"appearance-content-padding-description": "Ajusta o espaçamento entre as bordas da barra e os widgets.",
"appearance-content-padding-label": "Espaçamento do conteúdo",
"appearance-density-description": "Ajuste o preenchimento da barra para um visual compacto ou espaçoso.",
"appearance-density-label": "Densidade da barra",
"appearance-desc": "Personalize a aparência e a posição da barra.",
+2
View File
@@ -799,6 +799,8 @@
"appearance-capsule-color-label": "Цвет капсулы",
"appearance-capsule-opacity-description": "Установить уровень непрозрачности для фона виджетов, когда капсула отображается.",
"appearance-capsule-opacity-label": "Непрозрачность капсулы",
"appearance-content-padding-description": "Отрегулируйте отступ между краями панели и виджетами.",
"appearance-content-padding-label": "Отступ содержимого",
"appearance-density-description": "Настройка отступов панели для компактного или просторного вида.",
"appearance-density-label": "Плотность панели",
"appearance-desc": "Настройка внешнего вида и положения панели.",
+2
View File
@@ -799,6 +799,8 @@
"appearance-capsule-color-label": "Kapselfärg",
"appearance-capsule-opacity-description": "Ställ in opacitetsnivån för widgetbakgrunder när kapseln visas.",
"appearance-capsule-opacity-label": "Kapselns opacitet",
"appearance-content-padding-description": "Justera avståndet mellan fältets kanter och widgetar.",
"appearance-content-padding-label": "Innehållsavstånd",
"appearance-density-description": "Justera stapelns avstånd för ett kompakt eller rymligt utseende.",
"appearance-density-label": "Stapeldensitet",
"appearance-desc": "Anpassa stapelns utseende och position.",
+2
View File
@@ -799,6 +799,8 @@
"appearance-capsule-color-label": "Kapsül rengi",
"appearance-capsule-opacity-description": "Kapsül gösterildiğinde araç takımı arka planlarının saydamlık seviyesini ayarla.",
"appearance-capsule-opacity-label": "Kapsül saydamlığı",
"appearance-content-padding-description": "Çubuk kenarları ile widget'lar arasındaki dolguyu ayarlayın.",
"appearance-content-padding-label": "İçerik dolgusu",
"appearance-density-description": "Sıkı veya geniş bir görünüm için araç çubuğu dolgusunu ayarlayın.",
"appearance-density-label": "Araç Çubuğu yoğunluğu",
"appearance-desc": "Araç çubuğunun görünümünü ve konumunu özelleştirin.",
+2
View File
@@ -799,6 +799,8 @@
"appearance-capsule-color-label": "Колір капсули",
"appearance-capsule-opacity-description": "Встановити рівень непрозорості для фону віджетів, коли показано капсулу.",
"appearance-capsule-opacity-label": "Непрозорість капсули",
"appearance-content-padding-description": "Налаштуйте відступ між краями панелі та віджетами.",
"appearance-content-padding-label": "Відступ вмісту",
"appearance-density-description": "Налаштуйте відступи панелі для компактного або просторого вигляду.",
"appearance-density-label": "Щільність панелі",
"appearance-desc": "Налаштуйте зовнішній вигляд та положення панелі.",
+2
View File
@@ -799,6 +799,8 @@
"appearance-capsule-color-label": "胶囊颜色",
"appearance-capsule-opacity-description": "设置显示胶囊时小部件背景的不透明度。",
"appearance-capsule-opacity-label": "胶囊不透明度",
"appearance-content-padding-description": "调整栏边缘与小部件之间的内边距。",
"appearance-content-padding-label": "内容内边距",
"appearance-density-description": "调整状态栏的内边距以获得紧凑或宽松的外观。",
"appearance-density-label": "状态栏密度",
"appearance-desc": "自定义状态栏的外观和位置。",
+2
View File
@@ -799,6 +799,8 @@
"appearance-capsule-color-label": "膠囊顏色",
"appearance-capsule-opacity-description": "設定當啟用顯示小容器時小工具的背景不透明度",
"appearance-capsule-opacity-label": "小容器不透明度",
"appearance-content-padding-description": "調整列邊緣與小工具之間的內邊距。",
"appearance-content-padding-label": "內容內邊距",
"appearance-density-description": "調整工具列的內部間距來做出緊湊或寬敞的外觀",
"appearance-density-label": "工具列密度",
"appearance-desc": "自訂工具列的外觀及位置",
+1
View File
@@ -10,6 +10,7 @@
"capsuleOpacity": 1,
"capsuleColorKey": "none",
"widgetSpacing": 6,
"contentPadding": 0,
"fontScale": 1,
"backgroundOpacity": 0.93,
"useSeparateOpacity": false,
+10 -1
View File
@@ -92,7 +92,7 @@
{
"labelKey": "panels.audio.volumes-feedback-sound-file-label",
"descriptionKey": "panels.audio.volumes-feedback-sound-file-description",
"widget": "NTextInputButton",
"widget": "NLabel",
"tab": 13,
"tabLabel": "panels.audio.title",
"subTab": 0,
@@ -206,6 +206,15 @@
"subTab": 0,
"subTabLabel": "common.appearance"
},
{
"labelKey": "panels.bar.appearance-content-padding-label",
"descriptionKey": "panels.bar.appearance-content-padding-description",
"widget": "NValueSlider",
"tab": 4,
"tabLabel": "panels.bar.title",
"subTab": 0,
"subTabLabel": "common.appearance"
},
{
"labelKey": "panels.bar.appearance-show-outline-label",
"descriptionKey": "panels.bar.appearance-show-outline-description",
+1
View File
@@ -182,6 +182,7 @@ Singleton {
property real capsuleOpacity: 1.0
property string capsuleColorKey: "none"
property int widgetSpacing: 6
property int contentPadding: 0
property real fontScale: 1.0
// Bar background opacity settings
+4 -4
View File
@@ -344,7 +344,7 @@ Item {
ColumnLayout {
x: Style.pixelAlignCenter(parent.width, width)
anchors.top: parent.top
anchors.topMargin: verticalBarMargin
anchors.topMargin: verticalBarMargin + Settings.data.bar.contentPadding
spacing: Settings.data.bar.widgetSpacing
Repeater {
@@ -395,7 +395,7 @@ Item {
ColumnLayout {
x: Style.pixelAlignCenter(parent.width, width)
anchors.bottom: parent.bottom
anchors.bottomMargin: verticalBarMargin
anchors.bottomMargin: verticalBarMargin + Settings.data.bar.contentPadding
spacing: Settings.data.bar.widgetSpacing
Repeater {
@@ -452,7 +452,7 @@ Item {
id: leftSection
objectName: "leftSection"
anchors.left: parent.left
anchors.leftMargin: horizontalBarMargin
anchors.leftMargin: horizontalBarMargin + Settings.data.bar.contentPadding
y: Style.pixelAlignCenter(parent.height, height)
spacing: Settings.data.bar.widgetSpacing
@@ -507,7 +507,7 @@ Item {
id: rightSection
objectName: "rightSection"
anchors.right: parent.right
anchors.rightMargin: horizontalBarMargin
anchors.rightMargin: horizontalBarMargin + Settings.data.bar.contentPadding
y: Style.pixelAlignCenter(parent.height, height)
spacing: Settings.data.bar.widgetSpacing
+6 -23
View File
@@ -29,23 +29,6 @@ Item {
// Fixed dimension (cross-axis) for visual pill
readonly property real fixedDimension: Style.toOdd(capsuleHeight * baseDimensionRatio)
// Helper to safely get colors with proper reactivity
// Accesses Color singleton directly to ensure fresh values
function getColorPair(colorKey) {
switch (colorKey) {
case "primary":
return [Color.mPrimary, Color.mOnPrimary];
case "secondary":
return [Color.mSecondary, Color.mOnSecondary];
case "tertiary":
return [Color.mTertiary, Color.mOnTertiary];
case "onSurface":
return [Color.mOnSurface, Color.mSurface];
default:
return [Color.mPrimary, Color.mOnPrimary];
}
}
// Animated pill dimensions (for visual pill, not container)
property real pillWidth: isVertical ? fixedDimension : getWorkspaceWidth(workspace, false)
property real pillHeight: isVertical ? getWorkspaceHeight(workspace, false) : fixedDimension
@@ -102,12 +85,12 @@ Item {
if (pillMouseArea.containsMouse)
return Color.mHover;
if (workspace.isFocused)
return getColorPair(focusedColor)[0];
return Color.resolveColorKey(focusedColor);
if (workspace.isUrgent)
return Color.mError;
if (workspace.isOccupied)
return getColorPair(occupiedColor)[0];
return Qt.alpha(getColorPair(emptyColor)[0], 0.3);
return Color.resolveColorKey(occupiedColor);
return Qt.alpha(Color.resolveColorKey(emptyColor), 0.3);
}
Loader {
@@ -144,12 +127,12 @@ Item {
if (pillMouseArea.containsMouse)
return Color.mOnHover;
if (workspace.isFocused)
return getColorPair(focusedColor)[1];
return Color.resolveOnColorKey(focusedColor);
if (workspace.isUrgent)
return Color.mOnError;
if (workspace.isOccupied)
return getColorPair(occupiedColor)[1];
return getColorPair(emptyColor)[1];
return Color.resolveOnColorKey(occupiedColor);
return Color.resolveOnColorKey(emptyColor);
}
Behavior on color {
+6 -21
View File
@@ -68,21 +68,6 @@ Item {
readonly property string emptyColor: (widgetSettings.emptyColor !== undefined) ? widgetSettings.emptyColor : widgetMetadata.emptyColor
readonly property bool showBadge: (widgetSettings.showBadge !== undefined) ? widgetSettings.showBadge : widgetMetadata.showBadge
// Helper to safely get colors with proper reactivity
// Accesses Color singleton directly to ensure fresh values
function getColorPair(colorKey) {
switch (colorKey) {
case "primary":
return [Color.mPrimary, Color.mOnPrimary];
case "secondary":
return [Color.mSecondary, Color.mOnSecondary];
case "tertiary":
return [Color.mTertiary, Color.mOnTertiary];
default:
return [Color.mOnSurface, Color.mSurface];
}
}
// Only for grouped mode / show apps
readonly property int baseItemSize: Style.toOdd(capsuleHeight * 0.8)
readonly property int iconSize: Style.toOdd(baseItemSize * iconScale)
@@ -804,13 +789,13 @@ Item {
color: {
if (groupedContainer.workspaceModel.isFocused)
return root.getColorPair(root.focusedColor)[0];
return Color.resolveColorKey(root.focusedColor);
if (groupedContainer.workspaceModel.isUrgent)
return Color.mError;
if (groupedContainer.hasWindows)
return root.getColorPair(root.occupiedColor)[0];
return Color.resolveColorKey(root.occupiedColor);
return root.getColorPair(root.emptyColor)[0];
return Color.resolveColorKey(root.emptyColor);
}
scale: groupedContainer.workspaceModel.isActive ? 1.0 : 0.8
@@ -873,13 +858,13 @@ Item {
color: {
if (groupedContainer.workspaceModel.isFocused)
return root.getColorPair(root.focusedColor)[1];
return Color.resolveOnColorKey(root.focusedColor);
if (groupedContainer.workspaceModel.isUrgent)
return Color.mOnError;
if (groupedContainer.hasWindows)
return root.getColorPair(root.occupiedColor)[1];
return Color.resolveOnColorKey(root.occupiedColor);
return root.getColorPair(root.emptyColor)[1];
return Color.resolveOnColorKey(root.emptyColor);
}
Behavior on opacity {
+1 -1
View File
@@ -361,7 +361,7 @@ Loader {
Component.onCompleted: forceActiveFocus()
}
MouseArea {
anchors.fill: parent
hoverEnabled: true
@@ -105,6 +105,8 @@ ColumnLayout {
to: 1.0
stepSize: 0.01
value: valuePillSize
defaultValue: widgetMetadata.pillSize
showReset: true
onMoved: value => {
valuePillSize = value;
saveSettings();
@@ -238,93 +240,33 @@ ColumnLayout {
Layout.fillWidth: true
}
NComboBox {
id: focusedColorCombo
NColorChoice {
label: I18n.tr("bar.workspace.focused-color-label")
description: I18n.tr("bar.workspace.focused-color-description")
model: [
{
"key": "none",
"name": I18n.tr("common.none")
},
{
"key": "primary",
"name": I18n.tr("common.primary")
},
{
"key": "secondary",
"name": I18n.tr("common.secondary")
},
{
"key": "tertiary",
"name": I18n.tr("common.tertiary")
}
]
currentKey: valueFocusedColor
onSelected: key => {
valueFocusedColor = key;
saveSettings();
}
minimumWidth: 200
}
NComboBox {
id: occupiedColorCombo
NColorChoice {
label: I18n.tr("bar.workspace.occupied-color-label")
description: I18n.tr("bar.workspace.occupied-color-description")
model: [
{
"key": "none",
"name": I18n.tr("common.none")
},
{
"key": "primary",
"name": I18n.tr("common.primary")
},
{
"key": "secondary",
"name": I18n.tr("common.secondary")
},
{
"key": "tertiary",
"name": I18n.tr("common.tertiary")
}
]
currentKey: valueOccupiedColor
onSelected: key => {
valueOccupiedColor = key;
saveSettings();
}
minimumWidth: 200
}
NComboBox {
id: emptyColorCombo
NColorChoice {
label: I18n.tr("bar.workspace.empty-color-label")
description: I18n.tr("bar.workspace.empty-color-description")
model: [
{
"key": "none",
"name": I18n.tr("common.none")
},
{
"key": "primary",
"name": I18n.tr("common.primary")
},
{
"key": "secondary",
"name": I18n.tr("common.secondary")
},
{
"key": "tertiary",
"name": I18n.tr("common.tertiary")
}
]
currentKey: valueEmptyColor
onSelected: key => {
valueEmptyColor = key;
saveSettings();
}
minimumWidth: 200
}
}
@@ -168,6 +168,20 @@ ColumnLayout {
text: Settings.data.bar.widgetSpacing + "px"
}
NValueSlider {
Layout.fillWidth: true
label: I18n.tr("panels.bar.appearance-content-padding-label")
description: I18n.tr("panels.bar.appearance-content-padding-description")
from: 0
to: 30
stepSize: 1
showReset: true
value: Settings.data.bar.contentPadding
defaultValue: Settings.getDefaultValue("bar.contentPadding")
onMoved: value => Settings.data.bar.contentPadding = value
text: Settings.data.bar.contentPadding + "px"
}
NToggle {
Layout.fillWidth: true
label: I18n.tr("panels.bar.appearance-show-outline-label")
+1 -1
View File
@@ -454,7 +454,7 @@ Singleton {
// Timer for debouncing rapid changes
readonly property Timer timer: Timer {
interval: 250
interval: monitor.isDdc ? 250 : 33
onTriggered: {
if (!isNaN(monitor.queuedBrightness)) {
monitor.setBrightness(monitor.queuedBrightness);
Generated
+22 -1
View File
@@ -16,9 +16,30 @@
"type": "github"
}
},
"noctalia-qs": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1771796397,
"narHash": "sha256-lbZkAMNQl5Ymqhdvp46K8hubZ7n7KQRPnTP5bNJzMSk=",
"owner": "noctalia-dev",
"repo": "noctalia-qs",
"rev": "1711c5a20b74a31b703394164c5d2d9561f13ee9",
"type": "github"
},
"original": {
"owner": "noctalia-dev",
"repo": "noctalia-qs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs"
"nixpkgs": "nixpkgs",
"noctalia-qs": "noctalia-qs"
}
}
},
+10 -1
View File
@@ -3,18 +3,27 @@
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
noctalia-qs = {
url = "github:noctalia-dev/noctalia-qs";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{
self,
nixpkgs,
noctalia-qs,
...
}:
let
eachSystem = nixpkgs.lib.genAttrs nixpkgs.lib.platforms.linux;
pkgsFor = eachSystem (
system: nixpkgs.legacyPackages.${system}.appendOverlays [ self.overlays.default ]
system:
nixpkgs.legacyPackages.${system}.appendOverlays [
self.overlays.default
noctalia-qs.overlays.default
]
);
in
{