summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorFreya Murphy <freya@freyacat.org>2026-01-08 16:26:49 -0500
committerFreya Murphy <freya@freyacat.org>2026-03-16 09:12:20 -0400
commit371c1520a53234b4d73ce289771476c4475bcfff (patch)
treecad04bea54faea59719417d434eecc142812024a /modules
parentonly support one color scheme (diff)
downloadcaelestia-shell-371c1520a53234b4d73ce289771476c4475bcfff.tar.gz
caelestia-shell-371c1520a53234b4d73ce289771476c4475bcfff.tar.bz2
caelestia-shell-371c1520a53234b4d73ce289771476c4475bcfff.zip
remove recording
Diffstat (limited to 'modules')
-rw-r--r--modules/dashboard/Content.qml2
-rw-r--r--modules/dashboard/Dash.qml2
-rw-r--r--modules/dashboard/Wrapper.qml12
-rw-r--r--modules/dashboard/dash/User.qml89
-rw-r--r--modules/utilities/Content.qml10
-rw-r--r--modules/utilities/Wrapper.qml4
-rw-r--r--modules/utilities/cards/Record.qml277
7 files changed, 0 insertions, 396 deletions
diff --git a/modules/dashboard/Content.qml b/modules/dashboard/Content.qml
index bbb4272..f5001b2 100644
--- a/modules/dashboard/Content.qml
+++ b/modules/dashboard/Content.qml
@@ -13,7 +13,6 @@ Item {
required property PersistentProperties visibilities
required property PersistentProperties state
- required property FileDialog facePicker
readonly property var dashboardTabs: {
const allTabs = [
@@ -149,7 +148,6 @@ Item {
Dash {
visibilities: root.visibilities
state: root.state
- facePicker: root.facePicker
}
}
diff --git a/modules/dashboard/Dash.qml b/modules/dashboard/Dash.qml
index 71e224f..0bc81b4 100644
--- a/modules/dashboard/Dash.qml
+++ b/modules/dashboard/Dash.qml
@@ -11,7 +11,6 @@ GridLayout {
required property PersistentProperties visibilities
required property PersistentProperties state
- required property FileDialog facePicker
rowSpacing: Appearance.spacing.normal
columnSpacing: Appearance.spacing.normal
@@ -29,7 +28,6 @@ GridLayout {
visibilities: root.visibilities
state: root.state
- facePicker: root.facePicker
}
}
diff --git a/modules/dashboard/Wrapper.qml b/modules/dashboard/Wrapper.qml
index 0e37909..3f8f2bd 100644
--- a/modules/dashboard/Wrapper.qml
+++ b/modules/dashboard/Wrapper.qml
@@ -18,17 +18,6 @@ Item {
reloadableId: "dashboardState"
}
- readonly property FileDialog facePicker: FileDialog {
- title: qsTr("Select a profile picture")
- filterLabel: qsTr("Image files")
- filters: Images.validImageExtensions
- onAccepted: path => {
- if (CUtils.copyFile(Qt.resolvedUrl(path), Qt.resolvedUrl(`${Paths.home}/.face`)))
- Quickshell.execDetached(["notify-send", "-a", "caelestia-shell", "-u", "low", "-h", `STRING:image-path:${path}`, "Profile picture changed", `Profile picture changed to ${Paths.shortenHome(path)}`]);
- else
- Quickshell.execDetached(["notify-send", "-a", "caelestia-shell", "-u", "critical", "Unable to change profile picture", `Failed to change profile picture to ${Paths.shortenHome(path)}`]);
- }
- }
readonly property real nonAnimHeight: state === "visible" ? (content.item?.nonAnimHeight ?? 0) : 0
@@ -99,7 +88,6 @@ Item {
sourceComponent: Content {
visibilities: root.visibilities
state: root.dashState
- facePicker: root.facePicker
}
}
}
diff --git a/modules/dashboard/dash/User.qml b/modules/dashboard/dash/User.qml
index 5ede24b..6cb06f2 100644
--- a/modules/dashboard/dash/User.qml
+++ b/modules/dashboard/dash/User.qml
@@ -13,99 +13,10 @@ Row {
required property PersistentProperties visibilities
required property PersistentProperties state
- required property FileDialog facePicker
padding: Appearance.padding.large
spacing: Appearance.spacing.normal
- StyledClippingRect {
- implicitWidth: info.implicitHeight
- implicitHeight: info.implicitHeight
-
- radius: Appearance.rounding.large
- color: Colours.layer(Colours.palette.m3surfaceContainerHigh, 2)
-
- MaterialIcon {
- anchors.centerIn: parent
-
- text: "person"
- fill: 1
- grade: 200
- font.pointSize: Math.floor(info.implicitHeight / 2) || 1
- visible: pfp.status !== Image.Ready
- }
-
- CachingImage {
- id: pfp
-
- anchors.fill: parent
- path: `${Paths.home}/.face`
- }
-
- MouseArea {
- anchors.fill: parent
- hoverEnabled: true
-
- StyledRect {
- anchors.fill: parent
-
- color: Qt.alpha(Colours.palette.m3scrim, 0.5)
- opacity: parent.containsMouse ? 1 : 0
-
- Behavior on opacity {
- Anim {
- duration: Appearance.anim.durations.expressiveFastSpatial
- }
- }
- }
-
- StyledRect {
- anchors.centerIn: parent
-
- implicitWidth: selectIcon.implicitHeight + Appearance.padding.small * 2
- implicitHeight: selectIcon.implicitHeight + Appearance.padding.small * 2
-
- radius: Appearance.rounding.normal
- color: Colours.palette.m3primary
- scale: parent.containsMouse ? 1 : 0.5
- opacity: parent.containsMouse ? 1 : 0
-
- StateLayer {
- color: Colours.palette.m3onPrimary
-
- function onClicked(): void {
- root.visibilities.launcher = false;
- root.facePicker.open();
- }
- }
-
- MaterialIcon {
- id: selectIcon
-
- anchors.centerIn: parent
- anchors.horizontalCenterOffset: -font.pointSize * 0.02
-
- text: "frame_person"
- color: Colours.palette.m3onPrimary
- font.pointSize: Appearance.font.size.extraLarge
- }
-
- Behavior on scale {
- Anim {
- duration: Appearance.anim.durations.expressiveFastSpatial
- easing.bezierCurve: Appearance.anim.curves.expressiveFastSpatial
- }
- }
-
- Behavior on opacity {
- Anim {
- duration: Appearance.anim.durations.expressiveFastSpatial
- }
- }
- }
- }
- }
-
Column {
id: info
diff --git a/modules/utilities/Content.qml b/modules/utilities/Content.qml
index 902656d..f6d8d63 100644
--- a/modules/utilities/Content.qml
+++ b/modules/utilities/Content.qml
@@ -21,19 +21,9 @@ Item {
IdleInhibit {}
- Record {
- props: root.props
- visibilities: root.visibilities
- z: 1
- }
-
Toggles {
visibilities: root.visibilities
popouts: root.popouts
}
}
-
- RecordingDeleteModal {
- props: root.props
- }
}
diff --git a/modules/utilities/Wrapper.qml b/modules/utilities/Wrapper.qml
index 77178e3..455b5fa 100644
--- a/modules/utilities/Wrapper.qml
+++ b/modules/utilities/Wrapper.qml
@@ -13,10 +13,6 @@ Item {
required property Item popouts
readonly property PersistentProperties props: PersistentProperties {
- property bool recordingListExpanded: false
- property string recordingConfirmDelete
- property string recordingMode
-
reloadableId: "utilities"
}
readonly property bool shouldBeActive: visibilities.sidebar || (visibilities.utilities && Config.utilities.enabled && !(visibilities.session && Config.session.enabled))
diff --git a/modules/utilities/cards/Record.qml b/modules/utilities/cards/Record.qml
deleted file mode 100644
index 273c640..0000000
--- a/modules/utilities/cards/Record.qml
+++ /dev/null
@@ -1,277 +0,0 @@
-pragma ComponentBehavior: Bound
-
-import qs.components
-import qs.components.controls
-import qs.services
-import qs.config
-import QtQuick
-import QtQuick.Layouts
-
-StyledRect {
- id: root
-
- required property var props
- required property var visibilities
-
- Layout.fillWidth: true
- implicitHeight: layout.implicitHeight + layout.anchors.margins * 2
-
- radius: Appearance.rounding.normal
- color: Colours.tPalette.m3surfaceContainer
-
- ColumnLayout {
- id: layout
-
- anchors.fill: parent
- anchors.margins: Appearance.padding.large
- spacing: Appearance.spacing.normal
-
- RowLayout {
- spacing: Appearance.spacing.normal
- z: 1
-
- StyledRect {
- implicitWidth: implicitHeight
- implicitHeight: {
- const h = icon.implicitHeight + Appearance.padding.smaller * 2;
- return h - (h % 2);
- }
-
- radius: Appearance.rounding.full
- color: Recorder.running ? Colours.palette.m3secondary : Colours.palette.m3secondaryContainer
-
- MaterialIcon {
- id: icon
-
- anchors.centerIn: parent
- anchors.horizontalCenterOffset: -0.5
- anchors.verticalCenterOffset: 1.5
- text: "screen_record"
- color: Recorder.running ? Colours.palette.m3onSecondary : Colours.palette.m3onSecondaryContainer
- font.pointSize: Appearance.font.size.large
- }
- }
-
- ColumnLayout {
- Layout.fillWidth: true
- spacing: 0
-
- StyledText {
- Layout.fillWidth: true
- text: qsTr("Screen Recorder")
- font.pointSize: Appearance.font.size.normal
- elide: Text.ElideRight
- }
-
- StyledText {
- Layout.fillWidth: true
- text: Recorder.paused ? qsTr("Recording paused") : Recorder.running ? qsTr("Recording running") : qsTr("Recording off")
- color: Colours.palette.m3onSurfaceVariant
- font.pointSize: Appearance.font.size.small
- elide: Text.ElideRight
- }
- }
-
- SplitButton {
- disabled: Recorder.running
- active: menuItems.find(m => root.props.recordingMode === m.icon + m.text) ?? menuItems[0]
- menu.onItemSelected: item => root.props.recordingMode = item.icon + item.text
-
- menuItems: [
- MenuItem {
- icon: "fullscreen"
- text: qsTr("Record fullscreen")
- activeText: qsTr("Fullscreen")
- onClicked: Recorder.start()
- },
- MenuItem {
- icon: "screenshot_region"
- text: qsTr("Record region")
- activeText: qsTr("Region")
- onClicked: Recorder.start(["-r"])
- },
- MenuItem {
- icon: "select_to_speak"
- text: qsTr("Record fullscreen with sound")
- activeText: qsTr("Fullscreen")
- onClicked: Recorder.start(["-s"])
- },
- MenuItem {
- icon: "volume_up"
- text: qsTr("Record region with sound")
- activeText: qsTr("Region")
- onClicked: Recorder.start(["-sr"])
- }
- ]
- }
- }
-
- Loader {
- id: listOrControls
-
- property bool running: Recorder.running
-
- Layout.fillWidth: true
- Layout.preferredHeight: implicitHeight
- sourceComponent: running ? recordingControls : recordingList
-
- Behavior on Layout.preferredHeight {
- id: locHeightAnim
-
- enabled: false
-
- Anim {}
- }
-
- Behavior on running {
- SequentialAnimation {
- ParallelAnimation {
- Anim {
- target: listOrControls
- property: "scale"
- to: 0.7
- duration: Appearance.anim.durations.small
- easing.bezierCurve: Appearance.anim.curves.standardAccel
- }
- Anim {
- target: listOrControls
- property: "opacity"
- to: 0
- duration: Appearance.anim.durations.small
- easing.bezierCurve: Appearance.anim.curves.standardAccel
- }
- }
- PropertyAction {
- target: locHeightAnim
- property: "enabled"
- value: true
- }
- PropertyAction {}
- PropertyAction {
- target: locHeightAnim
- property: "enabled"
- value: false
- }
- ParallelAnimation {
- Anim {
- target: listOrControls
- property: "scale"
- to: 1
- duration: Appearance.anim.durations.small
- easing.bezierCurve: Appearance.anim.curves.standardDecel
- }
- Anim {
- target: listOrControls
- property: "opacity"
- to: 1
- duration: Appearance.anim.durations.small
- easing.bezierCurve: Appearance.anim.curves.standardDecel
- }
- }
- }
- }
- }
- }
-
- Component {
- id: recordingList
-
- RecordingList {
- props: root.props
- visibilities: root.visibilities
- }
- }
-
- Component {
- id: recordingControls
-
- RowLayout {
- spacing: Appearance.spacing.normal
-
- StyledRect {
- radius: Appearance.rounding.full
- color: Recorder.paused ? Colours.palette.m3tertiary : Colours.palette.m3error
-
- implicitWidth: recText.implicitWidth + Appearance.padding.normal * 2
- implicitHeight: recText.implicitHeight + Appearance.padding.smaller * 2
-
- StyledText {
- id: recText
-
- anchors.centerIn: parent
- animate: true
- text: Recorder.paused ? "PAUSED" : "REC"
- color: Recorder.paused ? Colours.palette.m3onTertiary : Colours.palette.m3onError
- font.family: Appearance.font.family.mono
- }
-
- Behavior on implicitWidth {
- Anim {}
- }
-
- SequentialAnimation on opacity {
- running: !Recorder.paused
- alwaysRunToEnd: true
- loops: Animation.Infinite
-
- Anim {
- from: 1
- to: 0
- duration: Appearance.anim.durations.large
- easing.bezierCurve: Appearance.anim.curves.emphasizedAccel
- }
- Anim {
- from: 0
- to: 1
- duration: Appearance.anim.durations.extraLarge
- easing.bezierCurve: Appearance.anim.curves.emphasizedDecel
- }
- }
- }
-
- StyledText {
- text: {
- const elapsed = Recorder.elapsed;
-
- const hours = Math.floor(elapsed / 3600);
- const mins = Math.floor((elapsed % 3600) / 60);
- const secs = Math.floor(elapsed % 60).toString().padStart(2, "0");
-
- let time;
- if (hours > 0)
- time = `${hours}:${mins.toString().padStart(2, "0")}:${secs}`;
- else
- time = `${mins}:${secs}`;
-
- return qsTr("Recording for %1").arg(time);
- }
- font.pointSize: Appearance.font.size.normal
- }
-
- Item {
- Layout.fillWidth: true
- }
-
- IconButton {
- label.animate: true
- icon: Recorder.paused ? "play_arrow" : "pause"
- toggle: true
- checked: Recorder.paused
- type: IconButton.Tonal
- font.pointSize: Appearance.font.size.large
- onClicked: {
- Recorder.togglePause();
- internalChecked = Recorder.paused;
- }
- }
-
- IconButton {
- icon: "stop"
- inactiveColour: Colours.palette.m3error
- inactiveOnColour: Colours.palette.m3onError
- font.pointSize: Appearance.font.size.large
- onClicked: Recorder.stop()
- }
- }
- }
-}