1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-04-10 15:52:58 -04:00

Refactor pre-commit hooks to use prek (#976)

* ci: change to prek for pre-commit

* refactor: fix shellcheck warnings for the scripts

* chore: unify whitespace formatting

* nix: add prek to dev shell
This commit is contained in:
Marcus Ramberg
2025-12-11 15:11:12 +01:00
committed by GitHub
parent c8cfe0cb5a
commit 7c88865d67
147 changed files with 805 additions and 860 deletions

View File

@@ -1 +1 @@
Spicy Miso
Spicy Miso

View File

@@ -542,4 +542,4 @@ function getCatppuccinVariantNames() {
function getThemeCategories() {
return ThemeCategories
}
}

View File

@@ -1304,4 +1304,4 @@ function byLengthAsc(a, b, selector) {
}
function byStartAsc(a, b) {
return a.start - b.start;
}
}

View File

@@ -3,13 +3,13 @@
// May not be necessary if that's possible tbh.
function markdownToHtml(text) {
if (!text) return "";
// Store code blocks and inline code to protect them from further processing
const codeBlocks = [];
const inlineCode = [];
let blockIndex = 0;
let inlineIndex = 0;
// First, extract and replace code blocks with placeholders
let html = text.replace(/```([\s\S]*?)```/g, (match, code) => {
// Trim leading and trailing blank lines only
@@ -21,7 +21,7 @@ function markdownToHtml(text) {
codeBlocks.push(`<pre><code>${escapedCode}</code></pre>`);
return `\x00CODEBLOCK${blockIndex++}\x00`;
});
// Extract and replace inline code
html = html.replace(/`([^`]+)`/g, (match, code) => {
// Escape HTML entities in code
@@ -31,18 +31,18 @@ function markdownToHtml(text) {
inlineCode.push(`<code>${escapedCode}</code>`);
return `\x00INLINECODE${inlineIndex++}\x00`;
});
// Now process everything else
// Escape HTML entities (but not in code blocks)
html = html.replace(/&/g, '&amp;')
.replace(/</g, '&lt;')
.replace(/>/g, '&gt;');
// Headers
html = html.replace(/^### (.*?)$/gm, '<h3>$1</h3>');
html = html.replace(/^## (.*?)$/gm, '<h2>$1</h2>');
html = html.replace(/^# (.*?)$/gm, '<h1>$1</h1>');
// Bold and italic (order matters!)
html = html.replace(/\*\*\*(.*?)\*\*\*/g, '<b><i>$1</i></b>');
html = html.replace(/\*\*(.*?)\*\*/g, '<b>$1</b>');
@@ -50,15 +50,15 @@ function markdownToHtml(text) {
html = html.replace(/___(.*?)___/g, '<b><i>$1</i></b>');
html = html.replace(/__(.*?)__/g, '<b>$1</b>');
html = html.replace(/_(.*?)_/g, '<i>$1</i>');
// Links
html = html.replace(/\[([^\]]+)\]\(([^)]+)\)/g, '<a href="$2">$1</a>');
// Lists
html = html.replace(/^\* (.*?)$/gm, '<li>$1</li>');
html = html.replace(/^- (.*?)$/gm, '<li>$1</li>');
html = html.replace(/^\d+\. (.*?)$/gm, '<li>$1</li>');
// Wrap consecutive list items in ul/ol tags
html = html.replace(/(<li>[\s\S]*?<\/li>\s*)+/g, function(match) {
return '<ul>' + match + '</ul>';
@@ -71,36 +71,36 @@ function markdownToHtml(text) {
html = html.replace(/\x00CODEBLOCK(\d+)\x00/g, (match, index) => {
return codeBlocks[parseInt(index)];
});
html = html.replace(/\x00INLINECODE(\d+)\x00/g, (match, index) => {
return inlineCode[parseInt(index)];
});
// Line breaks (after code blocks are restored)
html = html.replace(/\n\n/g, '</p><p>');
html = html.replace(/\n/g, '<br/>');
// Wrap in paragraph tags if not already wrapped
if (!html.startsWith('<')) {
html = '<p>' + html + '</p>';
}
// Clean up the final HTML
// Remove <br/> tags immediately before block elements
html = html.replace(/<br\/>\s*<pre>/g, '<pre>');
html = html.replace(/<br\/>\s*<ul>/g, '<ul>');
html = html.replace(/<br\/>\s*<h[1-6]>/g, '<h$1>');
// Remove empty paragraphs
html = html.replace(/<p>\s*<\/p>/g, '');
html = html.replace(/<p>\s*<br\/>\s*<\/p>/g, '');
// Remove excessive line breaks
html = html.replace(/(<br\/>){3,}/g, '<br/><br/>'); // Max 2 consecutive line breaks
html = html.replace(/(<\/p>)\s*(<p>)/g, '$1$2'); // Remove whitespace between paragraphs
// Remove leading/trailing whitespace
html = html.trim();
return html;
}
}

View File

@@ -18,18 +18,18 @@ PanelWindow {
property var parentModal: null
property real menuPositionX: 0
property real menuPositionY: 0
readonly property real shadowBuffer: 5
screen: parentModal?.effectiveScreen
function show(x, y, app, fromKeyboard) {
fromKeyboard = fromKeyboard || false;
menuContent.currentApp = app;
let screenX = x;
let screenY = y;
if (parentModal) {
if (fromKeyboard) {
screenX = x + parentModal.alignedX;
@@ -39,14 +39,14 @@ PanelWindow {
screenY = y + (parentModal.alignedY - shadowBuffer);
}
}
menuPositionX = screenX;
menuPositionY = screenY;
menuContent.selectedMenuIndex = fromKeyboard ? 0 : -1;
menuContent.keyboardNavigation = true;
visible = true;
if (parentHandler) {
parentHandler.enabled = false;
}

View File

@@ -143,7 +143,7 @@ Item {
implicitWidth: Math.max(180, menuColumn.implicitWidth + Theme.spacingS * 2)
implicitHeight: menuColumn.implicitHeight + Theme.spacingS * 2
width: implicitWidth
height: implicitHeight

View File

@@ -14,20 +14,20 @@ Popup {
function show(x, y, app, fromKeyboard) {
fromKeyboard = fromKeyboard || false;
menuContent.currentApp = app;
root.x = x + 4;
root.y = y + 4;
menuContent.selectedMenuIndex = fromKeyboard ? 0 : -1;
menuContent.keyboardNavigation = true;
if (parentHandler) {
parentHandler.enabled = false;
}
open();
}
onOpened: {
Qt.callLater(() => {
menuContent.keyboardHandler.forceActiveFocus();

View File

@@ -117,4 +117,4 @@ Rectangle {
easing.type: Theme.standardEasing
}
}
}
}

View File

@@ -88,4 +88,4 @@ Item {
}
}
}
}
}

View File

@@ -286,4 +286,4 @@ Item {
ColorAnimation { duration: Theme.shortDuration }
}
}
}
}

View File

@@ -237,4 +237,4 @@ Row {
onClicked: root.clearAll()
}
}
}
}

View File

@@ -49,4 +49,4 @@ Rectangle {
cursorShape: Qt.PointingHandCursor
onPressed: root.pressed()
}
}
}

View File

@@ -49,4 +49,4 @@ Row {
}
}
}
}
}

View File

@@ -43,4 +43,4 @@ StyledText {
default: return Theme.surfaceText
}
}
}
}

View File

@@ -161,7 +161,7 @@ Rectangle {
const pins = SettingsData.bluetoothDevicePins || {}
const pinnedAddr = pins["preferredDevice"]
let devices = [...BluetoothService.adapter.devices.values.filter(dev => dev && (dev.paired || dev.trusted))]
devices.sort((a, b) => {
// Pinned device first
@@ -337,13 +337,13 @@ Rectangle {
onClicked: {
const pins = JSON.parse(JSON.stringify(SettingsData.bluetoothDevicePins || {}))
const isCurrentlyPinned = pins["preferredDevice"] === modelData.address
if (isCurrentlyPinned) {
delete pins["preferredDevice"]
} else {
pins["preferredDevice"] = modelData.address
}
SettingsData.set("bluetoothDevicePins", pins)
}
}
@@ -642,4 +642,4 @@ Rectangle {
}
}
}
}
}

View File

@@ -163,4 +163,4 @@ Rectangle {
}
}
}
}
}

View File

@@ -45,4 +45,4 @@ CompoundPill {
onToggled: {
expandClicked()
}
}
}

View File

@@ -30,4 +30,4 @@ CompoundPill {
colorPickerModal.show()
}
}
}
}

View File

@@ -67,4 +67,4 @@ Rectangle {
onSliderValueChanged: root.sliderValueChanged(newValue / 100.0)
}
}
}
}

View File

@@ -167,4 +167,4 @@ Rectangle {
if (ev.key === Qt.Key_Space || ev.key === Qt.Key_Return) { root.toggled(); ev.accepted = true }
else if (ev.key === Qt.Key_Right) { root.expandClicked(); ev.accepted = true }
}
}
}

View File

@@ -26,4 +26,4 @@ Rectangle {
}
}
}

View File

@@ -75,4 +75,4 @@ CompoundPill {
onToggled: {
expandClicked()
}
}
}

View File

@@ -97,4 +97,4 @@ Rectangle {
easing.type: Theme.standardEasing
}
}
}
}

View File

@@ -77,4 +77,4 @@ Rectangle {
easing.type: Theme.standardEasing
}
}
}
}

View File

@@ -118,4 +118,4 @@ Rectangle {
easing.type: Theme.standardEasing
}
}
}
}

View File

@@ -42,4 +42,4 @@ function calculateRowsAndWidgets(controlCenterColumn, expandedSection, expandedW
}
return { rows: rows, expandedRowIndex: expandedRow }
}
}

View File

@@ -22,4 +22,4 @@ function toggleSection(root, section) {
} else {
root.expandedSection = section
}
}
}

View File

@@ -87,4 +87,4 @@ function resetToDefault() {
function clearAll() {
SettingsData.set("controlCenterWidgets", [])
}
}

View File

@@ -54,4 +54,4 @@ QtObject {
axisOrientationChanged()
changed()
}
}
}

View File

@@ -22,4 +22,4 @@ BasePill {
}
}
}
}
}

View File

@@ -60,4 +60,4 @@ BasePill {
}
}
}
}
}

View File

@@ -21,4 +21,4 @@ BasePill {
}
}
}
}
}

View File

@@ -444,4 +444,4 @@ Rectangle {
id: systemClock
precision: SystemClock.Hours
}
}
}

View File

@@ -19,4 +19,4 @@ Rectangle {
anchors.fill: parent
anchors.margins: card.pad
}
}
}

View File

@@ -110,4 +110,4 @@ Card {
id: systemClock
precision: SettingsData.showSeconds ? SystemClock.Seconds : SystemClock.Minutes
}
}
}

View File

@@ -215,4 +215,4 @@ Card {
onClicked: root.clicked()
visible: activePlayer
}
}
}

View File

@@ -175,4 +175,4 @@ Card {
}
}
}
}
}

View File

@@ -86,4 +86,4 @@ Card {
cursorShape: Qt.PointingHandCursor
onClicked: root.clicked()
}
}
}

View File

@@ -73,4 +73,4 @@ Item {
onClicked: root.switchToMediaTab()
}
}
}
}

View File

@@ -1093,7 +1093,7 @@ Item {
command: {
var paths = [
"/usr/share/wayland-sessions",
"/usr/share/xsessions",
"/usr/share/xsessions",
"/usr/local/share/wayland-sessions",
"/usr/local/share/xsessions"
]
@@ -1110,7 +1110,7 @@ Item {
}
})
}
// 1. Explicit system/user paths
// 1. Explicit system/user paths
var explicitFind = "find " + paths.join(" ") + " -maxdepth 1 -name '*.desktop' -type f -follow 2>/dev/null"
// 2. Scan all /home user directories for local session files
var homeScan = "find /home -maxdepth 5 \\( -path '*/wayland-sessions/*.desktop' -o -path '*/xsessions/*.desktop' \\) -type f -follow 2>/dev/null"

View File

@@ -45,7 +45,7 @@ setfacl -m u:greeter:x ~ ~/.config ~/.local ~/.cache ~/.local/state
# Set group ownership on config directories
sudo chgrp -R greeter ~/.config/DankMaterialShell
sudo chgrp -R greeter ~/.local/state/DankMaterialShell
sudo chgrp -R greeter ~/.local/state/DankMaterialShell
sudo chgrp -R greeter ~/.cache/DankMaterialShell
sudo chmod -R g+rX ~/.config/DankMaterialShell ~/.cache/DankMaterialShell ~/.cache/quickshell

View File

@@ -20,4 +20,4 @@ gestures {
layout {
background-color "#000000"
}
}

View File

@@ -5,4 +5,4 @@ export QT_QPA_PLATFORM=wayland
export QT_WAYLAND_DISABLE_WINDOWDECORATION=1
export EGL_PLATFORM=gbm
exec niri -c /etc/greetd/dms-niri.kdl
exec niri -c /etc/greetd/dms-niri.kdl

View File

@@ -616,4 +616,4 @@ Column {
autoSaveToSession()
}
}
}
}

View File

@@ -241,4 +241,4 @@ FocusScope {
}
return defaultValue
}
}
}

View File

@@ -73,7 +73,7 @@ Singleton {
}
const profileValue = BatteryService.isPluggedIn
? SettingsData.acProfileName
? SettingsData.acProfileName
: SettingsData.batteryProfileName;
if (profileValue !== "") {

View File

@@ -984,4 +984,4 @@ Singleton {
"bssid": network.bssid
}
}
}
}

View File

@@ -429,4 +429,4 @@ Singleton {
id: mkdirProcess
command: ["mkdir", "-p", root.baseDir, root.filesDir]
}
}
}

View File

@@ -47,7 +47,7 @@ Singleton {
if (!node || !node.ready) {
continue
}
if (node.properties && node.properties["media.class"] === "Stream/Input/Video") {
if (node.properties["stream.is-live"] === "true") {
return true

View File

@@ -1,4 +1,4 @@
layer-rule {
match namespace="dms:blurwallpaper"
place-within-backdrop true
}
}

View File

@@ -15,7 +15,7 @@ layout(std140, binding = 0) uniform buf {
float centerY; // Y coordinate of disc center (0.0 to 1.0)
float smoothness; // Edge smoothness (0.0 to 1.0, 0=sharp, 1=very smooth)
float aspectRatio; // Width / Height of the screen
float fillMode; // 0=stretch, 1=fit, 2=crop, 3=tile, 4=tileV, 5=tileH, 6=pad
float imageWidth1;
float imageHeight1;
@@ -97,30 +97,30 @@ void main() {
// This makes distances circular instead of elliptical
vec2 adjustedUV = vec2(uv.x * ubuf.aspectRatio, uv.y);
vec2 adjustedCenter = vec2(ubuf.centerX * ubuf.aspectRatio, ubuf.centerY);
// Calculate distance in aspect-corrected space
float dist = distance(adjustedUV, adjustedCenter);
// Calculate the maximum possible distance (corner to corner)
// This ensures the disc can cover the entire screen
float maxDistX = max(ubuf.centerX * ubuf.aspectRatio,
float maxDistX = max(ubuf.centerX * ubuf.aspectRatio,
(1.0 - ubuf.centerX) * ubuf.aspectRatio);
float maxDistY = max(ubuf.centerY, 1.0 - ubuf.centerY);
float maxDist = length(vec2(maxDistX, maxDistY));
// Scale progress to cover the maximum distance
// Add extra range for smoothness to ensure complete coverage
// Adjust smoothness for aspect ratio to maintain consistent visual appearance
float adjustedSmoothness = mappedSmoothness * max(1.0, ubuf.aspectRatio);
float radius = ubuf.progress * (maxDist + adjustedSmoothness);
// Use smoothstep for a smooth edge transition
float factor = smoothstep(radius - adjustedSmoothness, radius + adjustedSmoothness, dist);
// Mix the textures (factor = 0 inside disc, 1 outside)
fragColor = mix(color2, color1, factor);
if (ubuf.progress <= 0.0) fragColor = color1;
fragColor *= ubuf.qt_Opacity;
}
}

View File

@@ -11,7 +11,7 @@ layout(std140, binding = 0) uniform buf {
mat4 qt_Matrix;
float qt_Opacity;
float progress;
// Fill mode parameters
float fillMode; // 0=stretch, 1=fit, 2=crop, 3=tile, 4=tileV, 5=tileH, 6=pad
float imageWidth1; // Width of source1 image
@@ -81,11 +81,11 @@ vec4 sampleWithFillMode(sampler2D tex, vec2 uv, float imgWidth, float imgHeight)
void main() {
vec2 uv = qt_TexCoord0;
// Sample textures with fill mode
vec4 color1 = sampleWithFillMode(source1, uv, ubuf.imageWidth1, ubuf.imageHeight1);
vec4 color2 = sampleWithFillMode(source2, uv, ubuf.imageWidth2, ubuf.imageHeight2);
// Mix the two textures based on progress value
fragColor = mix(color1, color2, ubuf.progress) * ubuf.qt_Opacity;
}
}

View File

@@ -104,7 +104,7 @@ void main() {
float radius = p * maxDist;
// squash factor for the "eye" slit
float squash = mix(0.2, 1.0, p);
float squash = mix(0.2, 1.0, p);
q.y /= squash;
float dist = length(q);

View File

@@ -15,7 +15,7 @@ layout(std140, binding = 0) uniform buf {
float angle; // Angle of stripes in degrees (default 30.0)
float smoothness; // Edge smoothness (0.0 to 1.0, 0=sharp, 1=very smooth)
float aspectRatio; // Width / Height of the screen
float fillMode; // 0=stretch, 1=fit, 2=crop, 3=tile, 4=tileV, 5=tileH, 6=pad
float imageWidth1;
float imageHeight1;
@@ -84,58 +84,58 @@ vec4 sampleWithFillMode(sampler2D tex, vec2 uv, float imgWidth, float imgHeight)
void main() {
vec2 uv = qt_TexCoord0;
// Sample textures with fill mode
vec4 color1 = sampleWithFillMode(source1, uv, ubuf.imageWidth1, ubuf.imageHeight1);
vec4 color2 = sampleWithFillMode(source2, uv, ubuf.imageWidth2, ubuf.imageHeight2);
// Map smoothness from 0.0-1.0 to 0.001-0.3 range
// Using a non-linear mapping for better control at low values
float mappedSmoothness = mix(0.001, 0.3, ubuf.smoothness * ubuf.smoothness);
// Use values directly without forcing defaults
float stripes = (ubuf.stripeCount > 0.0) ? ubuf.stripeCount : 12.0;
float angleRad = radians(ubuf.angle);
float edgeSmooth = mappedSmoothness;
// Create a coordinate system for stripes based on angle
// At 0°: vertical stripes (divide by x)
// At 45°: diagonal stripes
// At 90°: horizontal stripes (divide by y)
// Transform coordinates based on angle
float cosA = cos(angleRad);
float sinA = sin(angleRad);
// Project the UV position onto the stripe direction
// This gives us the position along the stripe direction
float stripeCoord = uv.x * cosA + uv.y * sinA;
// Perpendicular coordinate (for edge movement)
float perpCoord = -uv.x * sinA + uv.y * cosA;
// Calculate the range of perpCoord based on angle
// This determines how far edges need to travel to fully cover the screen
float minPerp = min(min(0.0 * -sinA + 0.0 * cosA, 1.0 * -sinA + 0.0 * cosA),
min(0.0 * -sinA + 1.0 * cosA, 1.0 * -sinA + 1.0 * cosA));
float maxPerp = max(max(0.0 * -sinA + 0.0 * cosA, 1.0 * -sinA + 0.0 * cosA),
max(0.0 * -sinA + 1.0 * cosA, 1.0 * -sinA + 1.0 * cosA));
// Determine which stripe we're in
float stripePos = stripeCoord * stripes;
int stripeIndex = int(floor(stripePos));
// Determine if this is an odd or even stripe
bool isOddStripe = mod(float(stripeIndex), 2.0) != 0.0;
// Calculate the progress for this specific stripe with wave delay
// Use absolute stripe position for consistent delay across all stripes
float normalizedStripePos = clamp(stripePos / stripes, 0.0, 1.0);
// Increased delay and better distribution
float maxDelay = 0.1;
float stripeDelay = normalizedStripePos * maxDelay;
// Better progress mapping that uses the full 0.0-1.0 range
// Map progress so that:
// - First stripe starts at progress = 0.0
@@ -151,13 +151,13 @@ void main() {
float activeEnd = stripeDelay + (1.0 - maxDelay);
stripeProgress = (ubuf.progress - activeStart) / (activeEnd - activeStart);
}
// Use gentler easing curve
stripeProgress = stripeProgress * stripeProgress * (3.0 - 2.0 * stripeProgress); // Smootherstep instead of smoothstep
// Use the perpendicular coordinate for edge comparison
float yPos = perpCoord;
// Calculate edge position for this stripe
// Use the actual perpendicular coordinate range for this angle
float perpRange = maxPerp - minPerp;
@@ -170,7 +170,7 @@ void main() {
// Even stripes: edge moves from min to max
edgePosition = minPerp - margin + stripeProgress * (perpRange + margin * 2.0);
}
// Determine which wallpaper to show based on rotated position
float mask;
if (isOddStripe) {
@@ -180,10 +180,10 @@ void main() {
// Even stripes reveal new wallpaper from top
mask = 1.0 - smoothstep(edgePosition - edgeSmooth, edgePosition + edgeSmooth, yPos);
}
// Mix the wallpapers
fragColor = mix(color1, color2, mask);
// Force exact values at start and end to prevent any bleed-through
if (ubuf.progress <= 0.0) {
fragColor = color1; // Only show old wallpaper at start
@@ -195,11 +195,11 @@ void main() {
float shadowStrength = 1.0 - smoothstep(0.0, edgeSmooth * 2.5, edgeDist);
shadowStrength *= 0.2 * (1.0 - abs(stripeProgress - 0.5) * 2.0);
fragColor.rgb *= (1.0 - shadowStrength);
// Add slight vignette during transition for dramatic effect
// Add slight vignette during transition for dramatic effect
float vignette = 1.0 - ubuf.progress * 0.1 * (1.0 - abs(stripeProgress - 0.5) * 2.0);
fragColor.rgb *= vignette;
}
fragColor *= ubuf.qt_Opacity;
}
}

View File

@@ -13,7 +13,7 @@ layout(std140, binding = 0) uniform buf {
float progress; // Transition progress (0.0 to 1.0)
float direction; // 0=left, 1=right, 2=up, 3=down
float smoothness; // Edge smoothness (0.0 to 1.0, 0=sharp, 1=very smooth)
float fillMode; // 0=stretch, 1=fit, 2=crop, 3=tile, 4=tileV, 5=tileH, 6=pad
float imageWidth1;
float imageHeight1;
@@ -82,22 +82,22 @@ vec4 sampleWithFillMode(sampler2D tex, vec2 uv, float imgWidth, float imgHeight)
void main() {
vec2 uv = qt_TexCoord0;
// Sample textures with fill mode
vec4 color1 = sampleWithFillMode(source1, uv, ubuf.imageWidth1, ubuf.imageHeight1);
vec4 color2 = sampleWithFillMode(source2, uv, ubuf.imageWidth2, ubuf.imageHeight2);
// Map smoothness from 0.0-1.0 to 0.001-0.5 range
// Using a non-linear mapping for better control
float mappedSmoothness = mix(0.001, 0.5, ubuf.smoothness * ubuf.smoothness);
float edge = 0.0;
float factor = 0.0;
// Extend the progress range to account for smoothness
// This ensures the transition completes fully at the edges
float extendedProgress = ubuf.progress * (1.0 + 2.0 * mappedSmoothness) - mappedSmoothness;
// Calculate edge position based on direction
// As progress goes from 0 to 1, we reveal source2 (new wallpaper)
if (ubuf.direction < 0.5) {
@@ -105,7 +105,7 @@ void main() {
edge = 1.0 - extendedProgress;
factor = smoothstep(edge - mappedSmoothness, edge + mappedSmoothness, uv.x);
fragColor = mix(color1, color2, factor);
}
}
else if (ubuf.direction < 1.5) {
// Wipe from left to right (new image enters from left)
edge = extendedProgress;
@@ -124,6 +124,6 @@ void main() {
factor = smoothstep(edge - mappedSmoothness, edge + mappedSmoothness, uv.y);
fragColor = mix(color2, color1, factor);
}
fragColor *= ubuf.qt_Opacity;
}
}

View File

@@ -210,4 +210,4 @@ Flow {
}
}
}
}
}

View File

@@ -76,4 +76,4 @@ Rectangle {
font.weight: Font.Bold
color: Theme.surfaceVariantText
}
}
}

View File

@@ -3,7 +3,7 @@ import qs.Common
Item {
id: root
property alias name: icon.text
property alias size: icon.font.pixelSize
property alias color: icon.color
@@ -11,22 +11,22 @@ Item {
property real fill: filled ? 1.0 : 0.0
property int grade: Theme.isLightMode ? 0 : -25
property int weight: filled ? 500 : 400
implicitWidth: icon.implicitWidth
implicitHeight: icon.implicitHeight
signal rotationCompleted()
FontLoader {
id: materialSymbolsFont
source: Qt.resolvedUrl("../assets/fonts/material-design-icons/variablefont/MaterialSymbolsRounded[FILL,GRAD,opsz,wght].ttf")
}
StyledText {
id: icon
anchors.fill: parent
font.family: materialSymbolsFont.name
font.pixelSize: Theme.fontSizeMedium
font.weight: root.weight
@@ -40,7 +40,7 @@ Item {
"opsz": 24,
"wght": root.weight
}
Behavior on font.weight {
NumberAnimation {
duration: Theme.shortDuration
@@ -48,22 +48,22 @@ Item {
}
}
}
Behavior on fill {
NumberAnimation {
duration: Theme.shortDuration
easing.type: Theme.standardEasing
}
}
Timer {
id: rotationTimer
interval: 16
repeat: false
onTriggered: root.rotationCompleted()
}
onRotationChanged: {
rotationTimer.restart()
}
}
}

View File

@@ -179,4 +179,4 @@ Item {
}
}
}
}
}

View File

@@ -202,4 +202,4 @@ PanelWindow {
}
}
}
}
}

View File

@@ -251,4 +251,4 @@ FocusScope {
Qt.callLater(updateIndicator)
}
onWidthChanged: Qt.callLater(updateIndicator)
}
}

View File

@@ -139,7 +139,7 @@ StyledRect {
MouseArea {
anchors.fill: parent
hoverEnabled: true
hoverEnabled: true
cursorShape: Qt.IBeamCursor
acceptedButtons: Qt.NoButton
}

View File

@@ -89,4 +89,4 @@ PanelWindow {
width: Math.min(implicitWidth, 300 - Theme.spacingM * 2)
}
}
}
}

View File

@@ -7,7 +7,7 @@
<rect x="92" y="5" width="8" height="6" fill="white"/>
<rect x="104" y="5" width="8" height="6" fill="white"/>
<rect x="124" y="5" width="8" height="6" fill="white"/>
<!-- Row 1 -->
<rect x="0" y="11" width="8" height="6" fill="white"/>
<rect x="20" y="11" width="8" height="6" fill="white"/>
@@ -17,7 +17,7 @@
<rect x="92" y="11" width="8" height="6" fill="white"/>
<rect x="104" y="11" width="8" height="6" fill="white"/>
<rect x="120" y="11" width="8" height="6" fill="white"/>
<!-- Row 2 -->
<rect x="0" y="17" width="8" height="6" fill="white"/>
<rect x="20" y="17" width="8" height="6" fill="white"/>
@@ -26,7 +26,7 @@
<rect x="76" y="17" width="8" height="6" fill="white"/>
<rect x="92" y="17" width="8" height="6" fill="white"/>
<rect x="104" y="17" width="20" height="6" fill="white"/>
<!-- Row 3 -->
<rect x="0" y="23" width="8" height="6" fill="white"/>
<rect x="20" y="23" width="8" height="6" fill="white"/>
@@ -37,7 +37,7 @@
<rect x="92" y="23" width="8" height="6" fill="white"/>
<rect x="104" y="23" width="8" height="6" fill="white"/>
<rect x="120" y="23" width="8" height="6" fill="white"/>
<!-- Row 4 -->
<rect x="0" y="29" width="24" height="6" fill="white"/>
<rect x="32" y="29" width="8" height="6" fill="white"/>
@@ -46,4 +46,4 @@
<rect x="84" y="29" width="16" height="6" fill="white"/>
<rect x="104" y="29" width="8" height="6" fill="white"/>
<rect x="124" y="29" width="8" height="6" fill="white"/>
</svg>
</svg>

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -1 +1 @@
<?xml version="1.0" encoding="UTF-8"?><svg id="Discord-Logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126.644 96"><defs><style>.cls-1{fill:#5865f2;}</style></defs><path id="Discord-Symbol-Blurple" class="cls-1" d="M81.15,0c-1.2376,2.1973-2.3489,4.4704-3.3591,6.794-9.5975-1.4396-19.3718-1.4396-28.9945,0-.985-2.3236-2.1216-4.5967-3.3591-6.794-9.0166,1.5407-17.8059,4.2431-26.1405,8.0568C2.779,32.5304-1.6914,56.3725.5312,79.8863c9.6732,7.1476,20.5083,12.603,32.0505,16.0884,2.6014-3.4854,4.8998-7.1981,6.8698-11.0623-3.738-1.3891-7.3497-3.1318-10.8098-5.1523.9092-.6567,1.7932-1.3386,2.6519-1.9953,20.281,9.547,43.7696,9.547,64.0758,0,.8587.7072,1.7427,1.3891,2.6519,1.9953-3.4601,2.0457-7.0718,3.7632-10.835,5.1776,1.97,3.8642,4.2683,7.5769,6.8698,11.0623,11.5419-3.4854,22.3769-8.9156,32.0509-16.0631,2.626-27.2771-4.496-50.9172-18.817-71.8548C98.9811,4.2684,90.1918,1.5659,81.1752.0505l-.0252-.0505ZM42.2802,65.4144c-6.2383,0-11.4159-5.6575-11.4159-12.6535s4.9755-12.6788,11.3907-12.6788,11.5169,5.708,11.4159,12.6788c-.101,6.9708-5.026,12.6535-11.3907,12.6535ZM84.3576,65.4144c-6.2637,0-11.3907-5.6575-11.3907-12.6535s4.9755-12.6788,11.3907-12.6788,11.4917,5.708,11.3906,12.6788c-.101,6.9708-5.026,12.6535-11.3906,12.6535Z"/></svg>
<?xml version="1.0" encoding="UTF-8"?><svg id="Discord-Logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126.644 96"><defs><style>.cls-1{fill:#5865f2;}</style></defs><path id="Discord-Symbol-Blurple" class="cls-1" d="M81.15,0c-1.2376,2.1973-2.3489,4.4704-3.3591,6.794-9.5975-1.4396-19.3718-1.4396-28.9945,0-.985-2.3236-2.1216-4.5967-3.3591-6.794-9.0166,1.5407-17.8059,4.2431-26.1405,8.0568C2.779,32.5304-1.6914,56.3725.5312,79.8863c9.6732,7.1476,20.5083,12.603,32.0505,16.0884,2.6014-3.4854,4.8998-7.1981,6.8698-11.0623-3.738-1.3891-7.3497-3.1318-10.8098-5.1523.9092-.6567,1.7932-1.3386,2.6519-1.9953,20.281,9.547,43.7696,9.547,64.0758,0,.8587.7072,1.7427,1.3891,2.6519,1.9953-3.4601,2.0457-7.0718,3.7632-10.835,5.1776,1.97,3.8642,4.2683,7.5769,6.8698,11.0623,11.5419-3.4854,22.3769-8.9156,32.0509-16.0631,2.626-27.2771-4.496-50.9172-18.817-71.8548C98.9811,4.2684,90.1918,1.5659,81.1752.0505l-.0252-.0505ZM42.2802,65.4144c-6.2383,0-11.4159-5.6575-11.4159-12.6535s4.9755-12.6788,11.3907-12.6788,11.5169,5.708,11.4159,12.6788c-.101,6.9708-5.026,12.6535-11.3907,12.6535ZM84.3576,65.4144c-6.2637,0-11.3907-5.6575-11.3907-12.6535s4.9755-12.6788,11.3907-12.6788,11.4917,5.708,11.3906,12.6788c-.101,6.9708-5.026,12.6535-11.3906,12.6535Z"/></svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -161,4 +161,3 @@ Inter is a [variable font](https://rsms.me/inter/#variable) and is in addition a
| Bold | Bold Italic | 700
| Extra Bold | Extra Bold Italic | 800
| Black | Black Italic | 900

View File

@@ -199,4 +199,4 @@
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
limitations under the License.

View File

@@ -45,4 +45,3 @@ Once you narrow down your font choice of family (`Droid Sans`, `Inconsolata`, et
For more information see: [The FAQ](https://github.com/ryanoasis/nerd-fonts/wiki/FAQ-and-Troubleshooting#which-font)
[SIL-RFN]:http://scripts.sil.org/cms/scripts/page.php?item_id=OFL_web_fonts_and_RFNs#14cbfd4a

View File

@@ -7,4 +7,4 @@
</linearGradient>
</defs>
<path fill="url(#linear-gradient)" d="m288.53,0c1.99,2.11,3.26,3.13,4.14,4.42,15.97,23.63,31.7,47.44,47.91,70.91,9.33,13.51,19.26,26.61,29.22,39.67,9.63,12.65,19.8,24.88,29.44,37.53,11.15,14.63,22.45,29.18,32.81,44.36,13.27,19.45,26.64,38.94,38.12,59.44,9.76,17.43,17.56,36.05,25.02,54.64,5.28,13.16,8.82,27.06,12.6,40.78,1.75,6.36,2.24,13.07,3.26,19.62,1.26,8.02,3.4,16.04,3.53,24.08.35,20.94,2.17,41.95-1.48,62.8-4.02,22.99-10.75,45-20.76,66.23-10.12,21.45-22.38,41.26-37.39,59.59-13.6,16.61-29.57,30.33-46.84,42.91-12.68,9.23-26.09,17.07-40.36,23.3-12.84,5.6-26.07,10.09-39.69,13.89-30.75,8.56-61.93,10.44-93.33,8.23-18.93-1.33-38.08-3.65-56.11-10.46-14.82-5.6-29.75-11.13-43.92-18.13-11.19-5.52-21.91-12.44-31.73-20.15-12.88-10.11-25.52-20.81-36.67-32.74-9.99-10.68-18.64-22.87-26.4-35.31-8.18-13.13-15.39-27.01-21.58-41.2-6.69-15.32-11.01-31.45-14.53-47.97-5.48-25.71-3.71-51.44-2.59-77.09.64-14.73,4.53-29.47,8.26-43.86,3.93-15.18,8.68-30.26,14.44-44.84,5.77-14.6,12.47-28.96,20.14-42.65,9.63-17.18,20.25-33.85,31.2-50.23,9.94-14.88,20.68-29.24,31.47-43.52,8.69-11.5,18.17-22.41,26.97-33.83,8.9-11.55,17.46-23.36,26.07-35.13,9.11-12.46,18.29-24.87,27.09-37.55,11.16-16.07,21.91-32.43,32.97-48.57,1.58-2.31,3.88-4.14,5.84-6.19.39.22.78.44,1.18.66.08,1.77.23,3.54.23,5.31.01,26.33.15,52.66-.17,78.99-.05,3.86-1.62,8.15-3.72,11.46-8.5,13.45-17.19,26.8-26.38,39.79-8.71,12.31-18.12,24.13-27.22,36.16-7.5,9.91-14.97,19.83-22.52,29.7-5.24,6.85-10.74,13.5-15.86,20.44-7.16,9.72-14.35,19.45-21.03,29.5-8.06,12.12-15.99,24.36-23.23,36.97-5.18,9.02-9.26,18.69-13.59,28.17-2.4,5.26-4.61,10.64-6.36,16.14-3.1,9.76-5.58,19.71-8.68,29.47-8.72,27.42-6.87,55.63-4.92,83.5.99,14.15,6.11,28.15,10.4,41.89,6.01,19.24,16.32,36.3,27.95,52.74,7.94,11.23,16.95,21.38,27.14,30.36,8.39,7.38,17.5,14.17,27.07,19.92,10.89,6.54,22.23,12.77,34.12,17.07,12.69,4.59,26.1,7.99,39.48,9.68,15.93,2.01,32.16,1.58,48.25,2.34,14.94.7,29.43-2.29,43.93-5.14,18.41-3.62,35.23-11.56,51.58-20.26,19.55-10.4,35.98-25.13,50.37-41.73,14.71-16.97,27.06-36.05,34.92-57,8.29-22.1,15.2-44.97,14.15-69.26-.57-13.13.15-26.34-1.06-39.39-.89-9.61-3.62-19.11-6.16-28.5-2.98-11.03-6.03-22.1-10.16-32.73-4.11-10.59-9.36-20.75-14.52-30.9-4.57-8.99-9.32-17.92-14.66-26.46-6.5-10.39-13.38-20.59-20.68-30.43-11.05-14.9-22.74-29.32-33.91-44.12-13.08-17.33-26.13-34.68-38.77-52.33-10.91-15.22-21.31-30.81-31.71-46.39-1.67-2.5-3-5.79-3.03-8.72-.23-28.49-.15-56.98-.13-85.47,0-.95.24-1.91.58-4.44Z" />
</svg>
</svg>

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -15,4 +15,4 @@
<polygon id="Path" points="74.0938369 31.2495668 74.0938369 0.73220178 71.9007269 0.73220178 71.9007269 9.49554896e-05 74.9356195 9.49554896e-05 74.9356195 31.9817685 71.9007269 31.9817685 71.9007269 31.2495668"></polygon>
</g>
</g>
</svg>
</svg>

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

View File

@@ -1,3 +1,3 @@
#%PAM-1.0
auth required pam_fprintd.so max-tries=1
auth required pam_fprintd.so max-tries=1

View File

@@ -17,4 +17,4 @@
</defs>
<path class="cls-2" d="m128,0h0C57.31,0,0,57.31,0,128h0c0,35.35,14.33,67.35,37.49,90.51l-24.38,24.38c-4.84,4.84-1.41,13.11,5.43,13.11h109.46s0,0,0,0c70.69,0,128-57.31,128-128h0C256,57.31,198.69,0,128,0Z"/>
<path class="cls-1" d="m154.04,60.36c2.22,9.41,10.67,16.42,20.76,16.42,11.78,0,21.33-9.55,21.33-21.33s-9.55-21.33-21.33-21.33c-10.3,0-18.89,7.3-20.89,17.01-17.25,1.85-30.72,16.48-30.72,34.21,0,.04,0,.07,0,.11-18.76.79-35.89,6.13-49.49,14.56-5.05-3.91-11.39-6.24-18.27-6.24-16.51,0-29.89,13.38-29.89,29.89,0,11.98,7.04,22.3,17.21,27.07.99,34.7,38.8,62.61,85.31,62.61s84.37-27.94,85.31-62.67c10.09-4.8,17.07-15.09,17.07-27,0-16.51-13.38-29.89-29.89-29.89-6.85,0-13.16,2.31-18.2,6.19-13.72-8.49-31.04-13.83-49.99-14.54,0-.03,0-.05,0-.08,0-12.7,9.44-23.24,21.68-24.97Zm-81.54,82.27c.5-10.84,7.7-19.16,16.07-19.16s14.77,8.79,14.27,19.63c-.5,10.84-6.75,14.78-15.13,14.78s-15.71-4.41-15.21-15.25Zm95.06-19.16c8.38,0,15.58,8.32,16.07,19.16.5,10.84-6.84,15.25-15.21,15.25s-14.63-3.93-15.13-14.78c-.5-10.84,5.89-19.63,14.27-19.63Zm-9.96,44.24c1.57.16,2.57,1.79,1.96,3.25-5.15,12.31-17.31,20.96-31.5,20.96s-26.34-8.65-31.5-20.96c-.61-1.46.39-3.09,1.96-3.25,9.2-.93,19.15-1.44,29.54-1.44s20.33.51,29.54,1.44Z"/>
</svg>
</svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -104,4 +104,4 @@ c. No term or condition of this Public License will be waived and no failure to
d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority.
Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the "Licensor." The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark "Creative Commons" or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses.
Creative Commons may be contacted at creativecommons.org.
Creative Commons may be contacted at creativecommons.org.

View File

@@ -9,7 +9,7 @@ for file in *.oga; do
fi
done
# Convert plasma sounds
# Convert plasma sounds
cd ../plasma
for file in *.ogg; do
if [ -f "$file" ]; then

View File

@@ -14,4 +14,4 @@ output_path = '~/.local/share/color-schemes/DankMatugenLight.colors'
[templates.dmsdarkkcolorscheme]
input_path = 'SHELL_DIR/matugen/templates/dark-kcolorscheme.colors'
output_path = '~/.local/share/color-schemes/DankMatugenDark.colors'
output_path = '~/.local/share/color-schemes/DankMatugenDark.colors'

View File

@@ -1,3 +1,3 @@
[templates.dmsdgop]
input_path = 'SHELL_DIR/matugen/templates/dgop.json'
output_path = '~/.config/dgop/colors.json'
output_path = '~/.config/dgop/colors.json'

View File

@@ -1,3 +1,3 @@
[templates.dmsfirefox]
input_path = 'SHELL_DIR/matugen/templates/firefox-userchrome.css'
output_path = '~/.config/DankMaterialShell/firefox.css'
output_path = '~/.config/DankMaterialShell/firefox.css'

View File

@@ -1,3 +1,3 @@
[templates.dmsghostty]
input_path = 'SHELL_DIR/matugen/templates/ghostty.conf'
output_path = '~/.config/ghostty/config-dankcolors'
output_path = '~/.config/ghostty/config-dankcolors'

View File

@@ -4,4 +4,4 @@ output_path = '~/.config/kitty/dank-theme.conf'
[templates.dmskittytabs]
input_path = 'SHELL_DIR/matugen/templates/kitty-tabs.conf'
output_path = '~/.config/kitty/dank-tabs.conf'
output_path = '~/.config/kitty/dank-tabs.conf'

View File

@@ -1,3 +1,3 @@
[templates.dmsniri]
input_path = 'SHELL_DIR/matugen/templates/niri-colors.kdl'
output_path = '~/.config/niri/dms/colors.kdl'
output_path = '~/.config/niri/dms/colors.kdl'

View File

@@ -1,3 +1,3 @@
[templates.dmsqt5ct]
input_path = 'SHELL_DIR/matugen/templates/qtct-colors.conf'
output_path = '~/.config/qt5ct/colors/matugen.conf'
output_path = '~/.config/qt5ct/colors/matugen.conf'

View File

@@ -1,3 +1,3 @@
[templates.dmsqt6ct]
input_path = 'SHELL_DIR/matugen/templates/qtct-colors.conf'
output_path = '~/.config/qt6ct/colors/matugen.conf'
output_path = '~/.config/qt6ct/colors/matugen.conf'

View File

@@ -1,3 +1,3 @@
[templates.dmsvesktop]
input_path = 'SHELL_DIR/matugen/templates/vesktop.css'
output_path = '~/.config/vesktop/themes/dank-discord.css'
output_path = '~/.config/vesktop/themes/dank-discord.css'

View File

@@ -143,4 +143,4 @@ activeBlend={{colors.on_surface.default.red}},{{colors.on_surface.default.green}
activeForeground={{colors.on_surface.default.red}},{{colors.on_surface.default.green}},{{colors.on_surface.default.blue}}
inactiveBackground={{colors.background.default.red}},{{colors.background.default.green}},{{colors.background.default.blue}}
inactiveBlend={{colors.on_surface_variant.default.red}},{{colors.on_surface_variant.default.green}},{{colors.on_surface_variant.default.blue}}
inactiveForeground={{colors.on_surface_variant.default.red}},{{colors.on_surface_variant.default.green}},{{colors.on_surface_variant.default.blue}}
inactiveForeground={{colors.on_surface_variant.default.red}},{{colors.on_surface_variant.default.green}},{{colors.on_surface_variant.default.blue}}

View File

@@ -46,4 +46,4 @@
"error": "{{colors.error.default.hex}}",
"info": "{{colors.primary.default.hex}}"
}
}
}

View File

@@ -129,4 +129,4 @@
/* idk if this even works, but the suggestion in the material updated readme bricks symbols no matter how many fallbacks I add */
:root {
font-family: system-ui, "Inter Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !important;
}
}

View File

@@ -35,4 +35,4 @@ a color between surface and surface container so I think just giving this surfac
@define-color popover_bg_color {{colors.surface_container_lowest.default.hex}};
@define-color popover_fg_color {{colors.on_surface.default.hex}};
@define-color dialog_bg_color {{colors.surface_container_lowest.default.hex}};
@define-color dialog_fg_color {{colors.on_surface.default.hex}};
@define-color dialog_fg_color {{colors.on_surface.default.hex}};

View File

@@ -143,4 +143,4 @@ activeBlend={{colors.on_surface.default.red}},{{colors.on_surface.default.green}
activeForeground={{colors.on_surface.default.red}},{{colors.on_surface.default.green}},{{colors.on_surface.default.blue}}
inactiveBackground={{colors.background.default.red}},{{colors.background.default.green}},{{colors.background.default.blue}}
inactiveBlend={{colors.on_surface_variant.default.red}},{{colors.on_surface_variant.default.green}},{{colors.on_surface_variant.default.blue}}
inactiveForeground={{colors.on_surface_variant.default.red}},{{colors.on_surface_variant.default.green}},{{colors.on_surface_variant.default.blue}}
inactiveForeground={{colors.on_surface_variant.default.red}},{{colors.on_surface_variant.default.green}},{{colors.on_surface_variant.default.blue}}

View File

@@ -21,4 +21,4 @@ tab_activity_symbol " ● "
tab_numbers_style 1
tab_title_template "{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.tab}{title[:30]}{title[30:] and '…'} [{index}]"
active_tab_title_template "{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.tab}{title[:30]}{title[30:] and '…'} [{index}]"
active_tab_title_template "{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.tab}{title[:30]}{title[30:] and '…'} [{index}]"

View File

@@ -143,4 +143,4 @@ activeBlend={{colors.on_surface.default.red}},{{colors.on_surface.default.green}
activeForeground={{colors.on_surface.default.red}},{{colors.on_surface.default.green}},{{colors.on_surface.default.blue}}
inactiveBackground={{colors.background.default.red}},{{colors.background.default.green}},{{colors.background.default.blue}}
inactiveBlend={{colors.on_surface_variant.default.red}},{{colors.on_surface_variant.default.green}},{{colors.on_surface_variant.default.blue}}
inactiveForeground={{colors.on_surface_variant.default.red}},{{colors.on_surface_variant.default.green}},{{colors.on_surface_variant.default.blue}}
inactiveForeground={{colors.on_surface_variant.default.red}},{{colors.on_surface_variant.default.green}},{{colors.on_surface_variant.default.blue}}

View File

@@ -33,4 +33,4 @@ recent-windows {
active-color "{{colors.primary_container.dark.hex}}"
urgent-color "{{colors.error.default.hex}}"
}
}
}

View File

@@ -19,4 +19,4 @@
"color14": "",
"color15": "{{colors.on_surface.default.hex}}"
}
}
}

View File

@@ -141,4 +141,4 @@ activeBlend={{colors.on_surface.default.red}},{{colors.on_surface.default.green}
activeForeground={{colors.on_surface.default.red}},{{colors.on_surface.default.green}},{{colors.on_surface.default.blue}}
inactiveBackground={{colors.background.default.red}},{{colors.background.default.green}},{{colors.background.default.blue}}
inactiveBlend={{colors.on_surface_variant.default.red}},{{colors.on_surface_variant.default.green}},{{colors.on_surface_variant.default.blue}}
inactiveForeground={{colors.on_surface_variant.default.red}},{{colors.on_surface_variant.default.green}},{{colors.on_surface_variant.default.blue}}
inactiveForeground={{colors.on_surface_variant.default.red}},{{colors.on_surface_variant.default.green}},{{colors.on_surface_variant.default.blue}}

View File

@@ -239,4 +239,4 @@ a[href*="/channels/"][class*="mention"] {
[class*="channel"][class*="muted"] [class*="link"] {
color: {{colors.on_surface_variant.default.hex}} !important;
opacity: 0.6 !important;
}
}

View File

@@ -96,4 +96,4 @@
.selected_f6f816 .link_d8bfb3 * {
color: var(--text-0) !important;
fill: var(--text-0) !important;
}
}

View File

@@ -296,4 +296,4 @@
"foreground": "{{dank16.color8.dark.hex}}"
}
}
}
}

View File

@@ -415,4 +415,4 @@
"foreground": "{{colors.on_surface.light.hex}}"
}
}
}
}

View File

@@ -4,4 +4,4 @@
find . -name "*.qml" -exec sh -c '
qmlfmt -t 4 -i 4 -b 250 -w "$1"
sed -i "s/pragma ComponentBehavior$/pragma ComponentBehavior: Bound/g" "$1"
' _ {} \;
' _ {} \;

View File

@@ -1,66 +1,62 @@
#!/usr/bin/env bash
CONFIG_DIR="$1"
IS_LIGHT="$2"
SHELL_DIR="$3"
if [ -z "$CONFIG_DIR" ] || [ -z "$IS_LIGHT" ] || [ -z "$SHELL_DIR" ]; then
echo "Usage: $0 <config_dir> <is_light> <shell_dir>" >&2
if [ -z "$CONFIG_DIR" ]; then
echo "Usage: $0 <config_dir>" >&2
exit 1
fi
apply_gtk3_colors() {
local config_dir="$1"
local is_light="$2"
local shell_dir="$3"
local gtk3_dir="$config_dir/gtk-3.0"
local dank_colors="$gtk3_dir/dank-colors.css"
local gtk_css="$gtk3_dir/gtk.css"
if [ ! -f "$dank_colors" ]; then
echo "Error: dank-colors.css not found at $dank_colors" >&2
echo "Run matugen first to generate theme files" >&2
exit 1
fi
if [ -L "$gtk_css" ]; then
rm "$gtk_css"
elif [ -f "$gtk_css" ]; then
mv "$gtk_css" "$gtk_css.backup.$(date +%s)"
echo "Backed up existing gtk.css"
fi
ln -s "dank-colors.css" "$gtk_css"
echo "Created symlink: $gtk_css -> dank-colors.css"
}
apply_gtk4_colors() {
local config_dir="$1"
local gtk4_dir="$config_dir/gtk-4.0"
local dank_colors="$gtk4_dir/dank-colors.css"
local gtk_css="$gtk4_dir/gtk.css"
local gtk4_import="@import url(\"dank-colors.css\");"
if [ ! -f "$dank_colors" ]; then
echo "Error: GTK4 dank-colors.css not found at $dank_colors" >&2
echo "Run matugen first to generate theme files" >&2
exit 1
fi
if [ -f "$gtk_css" ]; then
sed -i '/^@import url.*dank-colors\.css.*);$/d' "$gtk_css"
sed -i "1i\\$gtk4_import" "$gtk_css"
else
echo "$gtk4_import" > "$gtk_css"
echo "$gtk4_import" >"$gtk_css"
fi
echo "Updated GTK4 CSS import"
}
mkdir -p "$CONFIG_DIR/gtk-3.0" "$CONFIG_DIR/gtk-4.0"
apply_gtk3_colors "$CONFIG_DIR" "$IS_LIGHT" "$SHELL_DIR"
apply_gtk3_colors "$CONFIG_DIR"
apply_gtk4_colors "$CONFIG_DIR"
echo "GTK colors applied successfully"
echo "GTK colors applied successfully"

View File

@@ -9,17 +9,18 @@ fi
apply_qt_colors() {
local config_dir="$1"
local color_scheme_path="$(dirname "$config_dir")/.local/share/color-schemes/DankMatugen.colors"
local color_scheme_path
color_scheme_path="$(dirname "$config_dir")/.local/share/color-schemes/DankMatugen.colors"
if [ ! -f "$color_scheme_path" ]; then
echo "Error: Qt color scheme not found at $color_scheme_path" >&2
echo "Run matugen first to generate theme files" >&2
exit 1
fi
update_qt_config() {
local config_file="$1"
if [ -f "$config_file" ]; then
if grep -q '^\[Appearance\]' "$config_file"; then
if grep -q '^custom_palette=' "$config_file"; then
@@ -27,40 +28,42 @@ apply_qt_colors() {
else
sed -i '/^\[Appearance\]/a custom_palette=true' "$config_file"
fi
if grep -q '^color_scheme_path=' "$config_file"; then
sed -i "s|^color_scheme_path=.*|color_scheme_path=$color_scheme_path|" "$config_file"
else
sed -i "/^\\[Appearance\\]/a color_scheme_path=$color_scheme_path" "$config_file"
fi
else
echo "" >> "$config_file"
echo "[Appearance]" >> "$config_file"
echo "custom_palette=true" >> "$config_file"
echo "color_scheme_path=$color_scheme_path" >> "$config_file"
{
echo ""
echo "[Appearance]"
echo "custom_palette=true"
echo "color_scheme_path=$color_scheme_path"
} >>"$config_file"
fi
else
printf '[Appearance]\\ncustom_palette=true\\ncolor_scheme_path=%s\\n' "$color_scheme_path" > "$config_file"
printf '[Appearance]\\ncustom_palette=true\\ncolor_scheme_path=%s\\n' "$color_scheme_path" >"$config_file"
fi
}
qt5_applied=false
qt6_applied=false
if command -v qt5ct >/dev/null 2>&1; then
mkdir -p "$config_dir/qt5ct"
update_qt_config "$config_dir/qt5ct/qt5ct.conf"
echo "Applied Qt5ct configuration"
qt5_applied=true
fi
if command -v qt6ct >/dev/null 2>&1; then
mkdir -p "$config_dir/qt6ct"
update_qt_config "$config_dir/qt6ct/qt6ct.conf"
echo "Applied Qt6ct configuration"
qt6_applied=true
fi
if [ "$qt5_applied" = false ] && [ "$qt6_applied" = false ]; then
echo "Warning: Neither qt5ct nor qt6ct found" >&2
echo "Install qt5ct or qt6ct for Qt application theming" >&2
@@ -70,4 +73,4 @@ apply_qt_colors() {
apply_qt_colors "$CONFIG_DIR"
echo "Qt colors applied successfully"
echo "Qt colors applied successfully"

Some files were not shown because too many files have changed in this diff Show More