diff --git a/Helpers/Recorder.qml b/Helpers/Recorder.qml new file mode 100644 index 0000000..4c7b330 --- /dev/null +++ b/Helpers/Recorder.qml @@ -0,0 +1,41 @@ +// pragma Singleton +// +// import Quickshell +// import QtQuick +// +// Singleton { +// id: root +// +// function start(extraArgs = []): void { +// needsStart = true; +// startArgs = extraArgs; +// checkProc.running = true; +// } +// +// PersistentProperties { +// id: props +// +// property real elapsed: 0 +// property bool paused: false +// property bool running: false +// +// reloadableId: "recorder" +// } +// +// Process { +// id: checkProc +// +// command: ["pidof", "gpu-screen-recorder"] +// running: true +// +// onExited: code => { +// props.running = code === 0; +// +// if (code === 0) { +// if (root.needsStop) { +// Quickshell.execDetached(["zshell-cli"]); +// } +// } +// } +// } +// } diff --git a/Modules/Lock/LockSurface.qml b/Modules/Lock/LockSurface.qml index 73ee33b..1ad7885 100644 --- a/Modules/Lock/LockSurface.qml +++ b/Modules/Lock/LockSurface.qml @@ -150,6 +150,7 @@ WlSessionLockSurface { id: background anchors.fill: parent + fillMode: Image.PreserveAspectCrop source: WallpaperPath.lockscreenBg } diff --git a/Modules/Notifications/Content.qml b/Modules/Notifications/Content.qml index cb4e4e7..449eb9c 100644 --- a/Modules/Notifications/Content.qml +++ b/Modules/Notifications/Content.qml @@ -10,6 +10,7 @@ Item { readonly property int padding: 6 required property Item panels + required property Item sidebarPanel required property PersistentProperties visibilities anchors.bottom: parent.bottom @@ -43,7 +44,7 @@ Item { return Math.min((QsWindow.window?.screen?.height ?? 0) - 1 * 2, height + padding * 2); } - implicitWidth: Config.notifs.sizes.width + padding * 2 + implicitWidth: Math.max(sidebarPanel.width * (1 - sidebarPanel.offsetScale), Config.notifs.sizes.width + padding * 2) Behavior on implicitHeight { Anim { @@ -72,8 +73,9 @@ Item { required property NotifServer.Notif modelData readonly property alias nonAnimHeight: notif.nonAnimHeight + anchors.left: parent.left + anchors.right: parent.right implicitHeight: notif.implicitHeight + (idx === 0 ? 0 : 8) - implicitWidth: notif.implicitWidth ListView.onRemove: removeAnim.start() onIndexChanged: { @@ -124,16 +126,20 @@ Item { } ClippingRectangle { + // implicitWidth: notif.implicitWidth + anchors.left: parent.left + anchors.right: parent.right anchors.top: parent.top anchors.topMargin: wrapper.idx === 0 ? 0 : 8 color: "transparent" implicitHeight: notif.implicitHeight - implicitWidth: notif.implicitWidth radius: Appearance.rounding.smallest / 2 Notification { id: notif + anchors.left: parent.left + anchors.right: parent.right modelData: wrapper.modelData } } diff --git a/Modules/Notifications/Notification.qml b/Modules/Notifications/Notification.qml index f50561a..a6a8f18 100644 --- a/Modules/Notifications/Notification.qml +++ b/Modules/Notifications/Notification.qml @@ -20,9 +20,9 @@ CustomRect { required property NotifServer.Notif modelData readonly property int nonAnimHeight: summary.implicitHeight + (root.expanded ? appName.height + body.height + actions.height + actions.anchors.topMargin : bodyPreview.height) + inner.anchors.margins * 2 + // implicitWidth: Config.notifs.sizes.width color: root.modelData.urgency === NotificationUrgency.Critical ? DynamicColors.palette.m3secondaryContainer : DynamicColors.tPalette.m3surfaceContainer implicitHeight: inner.implicitHeight - implicitWidth: Config.notifs.sizes.width radius: 6 x: Config.notifs.sizes.width diff --git a/Modules/Notifications/Sidebar/Wrapper.qml b/Modules/Notifications/Sidebar/Wrapper.qml index e48f9fc..22a952c 100644 --- a/Modules/Notifications/Sidebar/Wrapper.qml +++ b/Modules/Notifications/Sidebar/Wrapper.qml @@ -7,18 +7,17 @@ import QtQuick Item { id: root + property real offsetScale: shouldBeActive ? 0 : 1 required property var panels readonly property Props props: Props { } + readonly property bool shouldBeActive: root.visibilities.sidebar && Config.sidebar.enabled required property var visibilities - readonly property bool shouldBeActive: root.visibilities.sidebar && Config.sidebar.enabled - property real offsetScale: shouldBeActive ? 0 : 1 - - visible: offsetScale < 1 anchors.rightMargin: (-implicitWidth - 5) * offsetScale implicitWidth: Config.sidebar.sizes.width opacity: 1 - offsetScale + visible: offsetScale < 1 Behavior on offsetScale { Anim { @@ -30,16 +29,15 @@ Item { Loader { id: content + active: root.shouldBeActive || root.visible anchors.bottom: parent.bottom anchors.bottomMargin: 0 anchors.left: parent.left anchors.margins: 8 anchors.top: parent.top - active: root.shouldBeActive || root.visible - sourceComponent: Content { - implicitWidth: Config.sidebar.sizes.width - 8 * 2 + implicitWidth: Config.sidebar.sizes.width - Appearance.padding.smaller * 2 props: root.props visibilities: root.visibilities } diff --git a/Modules/Notifications/Wrapper.qml b/Modules/Notifications/Wrapper.qml index 7f53293..ae1e658 100644 --- a/Modules/Notifications/Wrapper.qml +++ b/Modules/Notifications/Wrapper.qml @@ -10,13 +10,14 @@ Item { required property var visibilities implicitHeight: content.implicitHeight - implicitWidth: content.implicitWidth + implicitWidth: Math.max(sidebarPanel.width * (1 - sidebarPanel.offsetScale), content.implicitWidth) visible: height > 0 Content { id: content panels: root.panels + sidebarPanel: root.sidebarPanel visibilities: root.visibilities } } diff --git a/Modules/Workspaces.qml b/Modules/Workspaces.qml index 9f30f02..c8f52c6 100644 --- a/Modules/Workspaces.qml +++ b/Modules/Workspaces.qml @@ -21,7 +21,7 @@ Item { readonly property int workspacesShown: workspaces.length height: implicitHeight - implicitHeight: Config.barConfig.height + Math.max(Appearance.padding.smaller, Config.barConfig.border) * 2 + implicitHeight: Config.barConfig.height + Appearance.padding.smaller * 2 implicitWidth: (root.workspaceButtonWidth * root.workspacesShown) + root.activeWorkspaceMargin * 2 Behavior on implicitWidth { @@ -39,36 +39,15 @@ Item { implicitHeight: root.implicitHeight - ((Appearance.padding.small - 1) * 2) radius: height / 2 - CustomRect { - id: indicator - - property real indicatorLength: (Math.abs(idxPair.idx1 - idxPair.idx2) + 1) * root.workspaceButtonWidth - property real indicatorPosition: Math.min(idxPair.idx1, idxPair.idx2) * root.workspaceButtonWidth + root.activeWorkspaceMargin - property real indicatorThickness: root.workspaceButtonWidth - - anchors.verticalCenter: parent.verticalCenter - color: DynamicColors.palette.m3primary - implicitHeight: indicatorThickness - implicitWidth: indicatorLength - radius: Appearance.rounding.full - x: indicatorPosition - z: 2 - - AnimatedTabIndexPair { - id: idxPair - - index: root.workspaces.findIndex(w => w.active) - } - } - Grid { + id: grid + anchors.fill: parent anchors.margins: root.activeWorkspaceMargin columnSpacing: 0 columns: root.workspacesShown rowSpacing: 0 rows: 1 - z: 3 Repeater { model: root.workspaces @@ -91,12 +70,11 @@ Item { CustomText { anchors.centerIn: parent - color: button.modelData.active ? DynamicColors.palette.m3onPrimary : DynamicColors.palette.m3onSecondaryContainer + color: DynamicColors.palette.m3onSecondaryContainer elide: Text.ElideRight horizontalAlignment: Text.AlignHCenter text: button.modelData.name verticalAlignment: Text.AlignVCenter - z: 3 } } @@ -107,72 +85,35 @@ Item { } } - Item { - id: activeTextSource + CustomRect { + id: indicator - anchors.fill: parent - anchors.margins: root.activeWorkspaceMargin - layer.enabled: true - visible: false - z: 4 + property real indicatorLength: (Math.abs(idxPair.idx1 - idxPair.idx2) + 1) * root.workspaceButtonWidth + property real indicatorPosition: Math.min(idxPair.idx1, idxPair.idx2) * root.workspaceButtonWidth + root.activeWorkspaceMargin + property real indicatorThickness: root.workspaceButtonWidth - Grid { - anchors.fill: parent - columnSpacing: 0 - columns: root.workspacesShown - rowSpacing: 0 - rows: 1 + anchors.verticalCenter: parent.verticalCenter + clip: true + color: DynamicColors.palette.m3primary + implicitHeight: indicatorThickness + implicitWidth: indicatorLength + radius: Appearance.rounding.full + x: indicatorPosition - Repeater { - model: root.workspaces + AnimatedTabIndexPair { + id: idxPair - Item { - id: activeWorkspace - - required property int index - required property HyprlandWorkspace modelData - - implicitHeight: indicator.indicatorThickness - implicitWidth: indicator.indicatorThickness - width: root.workspaceButtonWidth - - CustomText { - anchors.centerIn: parent - color: DynamicColors.palette.m3onPrimary - elide: Text.ElideRight - horizontalAlignment: Text.AlignHCenter - text: activeWorkspace.modelData.name - verticalAlignment: Text.AlignVCenter - } - } - } + index: root.workspaces.findIndex(w => w.active) } - } - Item { - id: indicatorMask - - anchors.fill: bgRect - layer.enabled: true - visible: false - - CustomRect { - color: "white" - height: indicator.height - radius: indicator.radius - width: indicator.width - x: indicator.x - y: indicator.y + Coloriser { + colorizationColor: DynamicColors.palette.m3onPrimary + implicitHeight: grid.height + implicitWidth: grid.width + source: grid + sourceColor: DynamicColors.palette.m3onSurface + x: -indicator.x + 3 } } - - MultiEffect { - anchors.fill: activeTextSource - maskEnabled: true - maskInverted: false - maskSource: indicatorMask - source: activeTextSource - z: 5 - } } } diff --git a/cli/src/zshell/__init__.py b/cli/src/zshell/__init__.py index 2dee338..886455a 100644 --- a/cli/src/zshell/__init__.py +++ b/cli/src/zshell/__init__.py @@ -1,6 +1,6 @@ from __future__ import annotations import typer -from zshell.subcommands import shell, scheme, screenshot, wallpaper +from zshell.subcommands import shell, scheme, screenshot, wallpaper, preset app = typer.Typer() @@ -8,6 +8,7 @@ app.add_typer(shell.app, name="shell") app.add_typer(scheme.app, name="scheme") app.add_typer(screenshot.app, name="screenshot") app.add_typer(wallpaper.app, name="wallpaper") +# app.add_typer(preset.app, name="preset") def main() -> None: diff --git a/cli/src/zshell/assets/schemes/catppuccin/catppuccin.py b/cli/src/zshell/assets/schemes/catppuccin/catppuccin.py new file mode 100644 index 0000000..78a6f8b --- /dev/null +++ b/cli/src/zshell/assets/schemes/catppuccin/catppuccin.py @@ -0,0 +1,550 @@ +_data = { + "id": "catppuccin", + "name": "Catppuccin", + "version": "1.0.0", + "author": "Catppuccin Org", + "description": "Soothing pastel theme for the high-spirited!", + "dark": {}, + "light": {}, + "variants": { + "type": "multi", + "defaults": { + "dark": { + "m3flavor": "mocha", + "m3accent": "mauve" + }, + "light": { + "m3flavor": "latte", + "m3accent": "mauve" + } + }, + "flavors": [ + { + "id": "latte", + "name": "Latte", + "light": { + "m3surface": "#ccd0da", + "m3surfaceText": "#4c4f69", + "m3surfaceVariant": "#eff1f5", + "m3surfaceVariantText": "#6c6f85", + "m3background": "#eff1f5", + "m3backgroundText": "#4c4f69", + "m3outline": "#9ca0b0", + "m3surfaceContainer": "#eff1f5", + "m3surfaceContainerHigh": "#e6e9ef", + "m3surfaceContainerHighest": "#dce0e8", + "m3error": "#d20f39", + "m3warning": "#fe640b", + "m3info": "#1e66f5" + } + }, + { + "id": "frappe", + "name": "Frappé", + "dark": { + "m3surface": "#414559", + "m3surfaceText": "#c6d0f5", + "m3surfaceVariant": "#303446", + "m3surfaceVariantText": "#a5adce", + "m3background": "#303446", + "m3backgroundText": "#c6d0f5", + "m3outline": "#737994", + "m3surfaceContainer": "#303446", + "m3surfaceContainerHigh": "#292c3c", + "m3surfaceContainerHighest": "#232634", + "m3error": "#e78284", + "m3warning": "#ef9f76", + "m3info": "#8caaee" + } + }, + { + "id": "macchiato", + "name": "Macchiato", + "dark": { + "m3surface": "#363a4f", + "m3surfaceText": "#cad3f5", + "m3surfaceVariant": "#24273a", + "m3surfaceVariantText": "#a5adcb", + "m3background": "#24273a", + "m3backgroundText": "#cad3f5", + "m3outline": "#6e738d", + "m3surfaceContainer": "#24273a", + "m3surfaceContainerHigh": "#1e2030", + "m3surfaceContainerHighest": "#181926", + "m3error": "#ed8796", + "m3warning": "#f5a97f", + "m3info": "#8aadf4" + } + }, + { + "id": "mocha", + "name": "Mocha", + "dark": { + "m3surface": "#313244", + "m3surfaceText": "#cdd6f4", + "m3surfaceVariant": "#1e1e2e", + "m3surfaceVariantText": "#a6adc8", + "m3background": "#1e1e2e", + "m3backgroundText": "#cdd6f4", + "m3outline": "#6c7086", + "m3surfaceContainer": "#1e1e2e", + "m3surfaceContainerHigh": "#181825", + "m3surfaceContainerHighest": "#11111b", + "m3error": "#f38ba8", + "m3warning": "#fab387", + "m3info": "#89b4fa" + } + } + ], + "accents": [ + { + "id": "rosewater", + "name": "Rosewater", + "latte": { + "m3primary": "#dc8a78", + "m3primaryText": "#eff1f5", + "m3primaryContainer": "#e1a99d", + "m3secondary": "#d8c7c4", + "m3surfaceTint": "#e1a99d" + }, + "frappe": { + "m3primary": "#f2d5cf", + "m3primaryText": "#303446", + "m3primaryContainer": "#b8a5a6", + "m3secondary": "#a2748b", + "m3surfaceTint": "#b8a5a6" + }, + "macchiato": { + "m3primary": "#f4dbd6", + "m3primaryText": "#24273a", + "m3primaryContainer": "#b6a6a7", + "m3secondary": "#9f6f8d", + "m3surfaceTint": "#b6a6a7" + }, + "mocha": { + "m3primary": "#f5e0dc", + "m3primaryText": "#1e1e2e", + "m3primaryContainer": "#b5a6a8", + "m3secondary": "#9d6d87", + "m3surfaceTint": "#b5a6a8" + } + }, + { + "id": "flamingo", + "name": "Flamingo", + "latte": { + "m3primary": "#dd7878", + "m3primaryText": "#eff1f5", + "m3primaryContainer": "#e29c9d", + "m3secondary": "#d7c3c4", + "m3surfaceTint": "#e29c9d" + }, + "frappe": { + "m3primary": "#eebebe", + "m3primaryText": "#303446", + "m3primaryContainer": "#b5949a", + "m3secondary": "#9d6b80", + "m3surfaceTint": "#b5949a" + }, + "macchiato": { + "m3primary": "#f0c6c6", + "m3primaryText": "#24273a", + "m3primaryContainer": "#b3979c", + "m3secondary": "#996780", + "m3surfaceTint": "#b3979c" + }, + "mocha": { + "m3primary": "#f2cdcd", + "m3primaryText": "#1e1e2e", + "m3primaryContainer": "#b3999e", + "m3secondary": "#98667c", + "m3surfaceTint": "#b3999e" + } + }, + { + "id": "pink", + "name": "Pink", + "latte": { + "m3primary": "#ea76cb", + "m3primaryText": "#eff1f5", + "m3primaryContainer": "#eb9bd7", + "m3secondary": "#d9c7d5", + "m3surfaceTint": "#eb9bd7" + }, + "frappe": { + "m3primary": "#f4b8e4", + "m3primaryText": "#303446", + "m3primaryContainer": "#b990b5", + "m3secondary": "#996e9e", + "m3surfaceTint": "#b990b5" + }, + "macchiato": { + "m3primary": "#f5bde6", + "m3primaryText": "#24273a", + "m3primaryContainer": "#b791b2", + "m3secondary": "#95689a", + "m3surfaceTint": "#b791b2" + }, + "mocha": { + "m3primary": "#f5c2e7", + "m3primaryText": "#1e1e2e", + "m3primaryContainer": "#b591b0", + "m3secondary": "#966597", + "m3surfaceTint": "#b591b0" + } + }, + { + "id": "mauve", + "name": "Mauve", + "latte": { + "m3primary": "#8839ef", + "m3primaryText": "#eff1f5", + "m3primaryContainer": "#a670f1", + "m3secondary": "#c2b8d0", + "m3surfaceTint": "#a670f1" + }, + "frappe": { + "m3primary": "#ca9ee6", + "m3primaryText": "#303446", + "m3primaryContainer": "#9c7eb6", + "m3secondary": "#7d6799", + "m3surfaceTint": "#9c7eb6" + }, + "macchiato": { + "m3primary": "#c6a0f6", + "m3primaryText": "#24273a", + "m3primaryContainer": "#967cbe", + "m3secondary": "#766597", + "m3surfaceTint": "#967cbe" + }, + "mocha": { + "m3primary": "#cba6f7", + "m3primaryText": "#1e1e2e", + "m3primaryContainer": "#977ebb", + "m3secondary": "#756294", + "m3surfaceTint": "#977ebb" + } + }, + { + "id": "red", + "name": "Red", + "latte": { + "m3primary": "#d20f39", + "m3primaryText": "#eff1f5", + "m3primaryContainer": "#da5371", + "m3secondary": "#c0a0a8", + "m3surfaceTint": "#da5371" + }, + "frappe": { + "m3primary": "#e78284", + "m3primaryText": "#303446", + "m3primaryContainer": "#b06a72", + "m3secondary": "#8b5d66", + "m3surfaceTint": "#b06a72" + }, + "macchiato": { + "m3primary": "#ed8796", + "m3primaryText": "#24273a", + "m3primaryContainer": "#b16b7a", + "m3secondary": "#865a69", + "m3surfaceTint": "#b16b7a" + }, + "mocha": { + "m3primary": "#f38ba8", + "m3primaryText": "#1e1e2e", + "m3primaryContainer": "#b46b84", + "m3secondary": "#85596b", + "m3surfaceTint": "#b46b84" + } + }, + { + "id": "maroon", + "name": "Maroon", + "latte": { + "m3primary": "#e64553", + "m3primaryText": "#eff1f5", + "m3primaryContainer": "#e87883", + "m3secondary": "#cfb7ba", + "m3surfaceTint": "#e87883" + }, + "frappe": { + "m3primary": "#ea999c", + "m3primaryText": "#303446", + "m3primaryContainer": "#b27a83", + "m3secondary": "#92626f", + "m3surfaceTint": "#b27a83" + }, + "macchiato": { + "m3primary": "#ee99a0", + "m3primaryText": "#24273a", + "m3primaryContainer": "#b27781", + "m3secondary": "#8c5e6c", + "m3surfaceTint": "#b27781" + }, + "mocha": { + "m3primary": "#eba0ac", + "m3primaryText": "#1e1e2e", + "m3primaryContainer": "#ae7987", + "m3secondary": "#895b6c", + "m3surfaceTint": "#ae7987" + } + }, + { + "id": "peach", + "name": "Peach", + "latte": { + "m3primary": "#fe640b", + "m3primaryText": "#eff1f5", + "m3primaryContainer": "#f98e51", + "m3secondary": "#c9b7ad", + "m3surfaceTint": "#f98e51" + }, + "frappe": { + "m3primary": "#ef9f76", + "m3primaryText": "#303446", + "m3primaryContainer": "#b67f68", + "m3secondary": "#8f6a5f", + "m3surfaceTint": "#b67f68" + }, + "macchiato": { + "m3primary": "#f5a97f", + "m3primaryText": "#24273a", + "m3primaryContainer": "#b7836a", + "m3secondary": "#8c695e", + "m3surfaceTint": "#b7836a" + }, + "mocha": { + "m3primary": "#fab387", + "m3primaryText": "#1e1e2e", + "m3primaryContainer": "#b8876d", + "m3secondary": "#8b6a5d", + "m3surfaceTint": "#b8876d" + } + }, + { + "id": "yellow", + "name": "Yellow", + "latte": { + "m3primary": "#df8e1d", + "m3primaryText": "#eff1f5", + "m3primaryContainer": "#e4ac5d", + "m3secondary": "#c6baaa", + "m3surfaceTint": "#e4ac5d" + }, + "frappe": { + "m3primary": "#e5c890", + "m3primaryText": "#303446", + "m3primaryContainer": "#af9b7a", + "m3secondary": "#948062", + "m3surfaceTint": "#af9b7a" + }, + "macchiato": { + "m3primary": "#eed49f", + "m3primaryText": "#24273a", + "m3primaryContainer": "#b2a181", + "m3secondary": "#947e62", + "m3surfaceTint": "#b2a181" + }, + "mocha": { + "m3primary": "#f9e2af", + "m3primaryText": "#1e1e2e", + "m3primaryContainer": "#b8a889", + "m3secondary": "#978265", + "m3surfaceTint": "#b8a889" + } + }, + { + "id": "green", + "name": "Green", + "latte": { + "m3primary": "#40a02b", + "m3primaryText": "#eff1f5", + "m3primaryContainer": "#74b867", + "m3secondary": "#9fbd9b", + "m3surfaceTint": "#74b867" + }, + "frappe": { + "m3primary": "#a6d189", + "m3primaryText": "#303446", + "m3primaryContainer": "#83a275", + "m3secondary": "#648e5e", + "m3surfaceTint": "#83a275" + }, + "macchiato": { + "m3primary": "#a6da95", + "m3primaryText": "#24273a", + "m3primaryContainer": "#80a57a", + "m3secondary": "#5c8a61", + "m3surfaceTint": "#80a57a" + }, + "mocha": { + "m3primary": "#a6e3a1", + "m3primaryText": "#1e1e2e", + "m3primaryContainer": "#7ea87f", + "m3secondary": "#5b8964", + "m3surfaceTint": "#7ea87f" + } + }, + { + "id": "teal", + "name": "Teal", + "latte": { + "m3primary": "#179299", + "m3primaryText": "#eff1f5", + "m3primaryContainer": "#57aeb4", + "m3secondary": "#93b4b7", + "m3surfaceTint": "#57aeb4" + }, + "frappe": { + "m3primary": "#81c8be", + "m3primaryText": "#303446", + "m3primaryContainer": "#699b9a", + "m3secondary": "#588084", + "m3surfaceTint": "#699b9a" + }, + "macchiato": { + "m3primary": "#8bd5ca", + "m3primaryText": "#24273a", + "m3primaryContainer": "#6da29f", + "m3secondary": "#577e83", + "m3surfaceTint": "#6da29f" + }, + "mocha": { + "m3primary": "#94e2d5", + "m3primaryText": "#1e1e2e", + "m3primaryContainer": "#71a8a4", + "m3secondary": "#588284", + "m3surfaceTint": "#71a8a4" + } + }, + { + "id": "sky", + "name": "Sky", + "latte": { + "m3primary": "#04a5e5", + "m3primaryText": "#eff1f5", + "m3primaryContainer": "#4abcea", + "m3secondary": "#a4b9c2", + "m3surfaceTint": "#4abcea" + }, + "frappe": { + "m3primary": "#99d1db", + "m3primaryText": "#303446", + "m3primaryContainer": "#79a2af", + "m3secondary": "#628494", + "m3surfaceTint": "#79a2af" + }, + "macchiato": { + "m3primary": "#91d7e3", + "m3primaryText": "#24273a", + "m3primaryContainer": "#71a3b0", + "m3secondary": "#5e7e8c", + "m3surfaceTint": "#71a3b0" + }, + "mocha": { + "m3primary": "#89dceb", + "m3primaryText": "#1e1e2e", + "m3primaryContainer": "#69a3b3", + "m3secondary": "#5a7b88", + "m3surfaceTint": "#69a3b3" + } + }, + { + "id": "sapphire", + "name": "Sapphire", + "latte": { + "m3primary": "#209fb5", + "m3primaryText": "#eff1f5", + "m3primaryContainer": "#5db8c8", + "m3secondary": "#9eb9be", + "m3surfaceTint": "#5db8c8" + }, + "frappe": { + "m3primary": "#85c1dc", + "m3primaryText": "#303446", + "m3primaryContainer": "#6b96af", + "m3secondary": "#5e7b8e", + "m3surfaceTint": "#6b96af" + }, + "macchiato": { + "m3primary": "#7dc4e4", + "m3primaryText": "#24273a", + "m3primaryContainer": "#6396b1", + "m3secondary": "#5a7486", + "m3surfaceTint": "#6396b1" + }, + "mocha": { + "m3primary": "#74c7ec", + "m3primaryText": "#1e1e2e", + "m3primaryContainer": "#5a95b4", + "m3secondary": "#567080", + "m3surfaceTint": "#5a95b4" + } + }, + { + "id": "blue", + "name": "Blue", + "latte": { + "m3primary": "#1e66f5", + "m3primaryText": "#eff1f5", + "m3primaryContainer": "#5c90f5", + "m3secondary": "#b1bacb", + "m3surfaceTint": "#5c90f5" + }, + "frappe": { + "m3primary": "#8caaee", + "m3primaryText": "#303446", + "m3primaryContainer": "#7086bc", + "m3secondary": "#637195", + "m3surfaceTint": "#7086bc" + }, + "macchiato": { + "m3primary": "#8aadf4", + "m3primaryText": "#24273a", + "m3primaryContainer": "#6c85bc", + "m3secondary": "#5f6d8f", + "m3surfaceTint": "#6c85bc" + }, + "mocha": { + "m3primary": "#89b4fa", + "m3primaryText": "#1e1e2e", + "m3primaryContainer": "#6987bd", + "m3secondary": "#5d6c8b", + "m3surfaceTint": "#6987bd" + } + }, + { + "id": "lavender", + "name": "Lavender", + "latte": { + "m3primary": "#7287fd", + "m3primaryText": "#eff1f5", + "m3primaryContainer": "#97a7fb", + "m3secondary": "#cdcfdd", + "m3surfaceTint": "#97a7fb" + }, + "frappe": { + "m3primary": "#babbf1", + "m3primaryText": "#303446", + "m3primaryContainer": "#9192be", + "m3secondary": "#7175a1", + "m3surfaceTint": "#9192be" + }, + "macchiato": { + "m3primary": "#b7bdf8", + "m3primaryText": "#24273a", + "m3primaryContainer": "#8b91bf", + "m3secondary": "#6b709d", + "m3surfaceTint": "#8b91bf" + }, + "mocha": { + "m3primary": "#b4befe", + "m3primaryText": "#1e1e2e", + "m3primaryContainer": "#878ec0", + "m3secondary": "#676d99", + "m3surfaceTint": "#878ec0" + } + } + ] + } +} diff --git a/cli/src/zshell/subcommands/preset.py b/cli/src/zshell/subcommands/preset.py new file mode 100644 index 0000000..ee685b3 --- /dev/null +++ b/cli/src/zshell/subcommands/preset.py @@ -0,0 +1,11 @@ +import json +import typer +from zshell.assets.schemes.catppuccin import catppuccin + +app = typer.Typer() + +SCHEMES = catppuccin.variants.flavors + + +@app.command() +def set(): diff --git a/cli/src/zshell/subcommands/record.py b/cli/src/zshell/subcommands/record.py new file mode 100644 index 0000000..f513869 --- /dev/null +++ b/cli/src/zshell/subcommands/record.py @@ -0,0 +1,14 @@ +import typer +import subprocess + +from typing import Optional + +app = typer.Typer() + +RECORDER = "gpu-screen-recorder" +HOME = str(os.getenv("HOME")) +CONFIG = Path(HOME + "/.config/zshell/config.json") + + +@app.command() +def start():