Settings window #13
+1
-1
@@ -30,5 +30,5 @@ if("shell" IN_LIST ENABLE_MODULES)
|
|||||||
foreach(dir assets scripts Components Config Modules Daemons Drawers Effects Helpers Paths)
|
foreach(dir assets scripts Components Config Modules Daemons Drawers Effects Helpers Paths)
|
||||||
install(DIRECTORY ${dir} DESTINATION "${INSTALL_QSCONFDIR}")
|
install(DIRECTORY ${dir} DESTINATION "${INSTALL_QSCONFDIR}")
|
||||||
endforeach()
|
endforeach()
|
||||||
install(FILES shell.qml Bar.qml Wallpaper.qml DESTINATION "${INSTALL_QSCONFDIR}")
|
install(FILES shell.qml DESTINATION "${INSTALL_QSCONFDIR}")
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@@ -0,0 +1,323 @@
|
|||||||
|
pragma Singleton
|
||||||
|
|
||||||
|
import Quickshell
|
||||||
|
import Quickshell.Io
|
||||||
|
import QtQuick
|
||||||
|
|
||||||
|
Singleton {
|
||||||
|
id: root
|
||||||
|
|
||||||
|
Component.onCompleted: {
|
||||||
|
// Trigger ethernet device detection after initialization
|
||||||
|
Qt.callLater(() => {
|
||||||
|
getEthernetDevices();
|
||||||
|
});
|
||||||
|
// Load saved connections on startup
|
||||||
|
Nmcli.loadSavedConnections(() => {
|
||||||
|
root.savedConnections = Nmcli.savedConnections;
|
||||||
|
root.savedConnectionSsids = Nmcli.savedConnectionSsids;
|
||||||
|
});
|
||||||
|
// Get initial WiFi status
|
||||||
|
Nmcli.getWifiStatus(enabled => {
|
||||||
|
root.wifiEnabled = enabled;
|
||||||
|
});
|
||||||
|
// Sync networks from Nmcli on startup
|
||||||
|
Qt.callLater(() => {
|
||||||
|
syncNetworksFromNmcli();
|
||||||
|
}, 100);
|
||||||
|
}
|
||||||
|
|
||||||
|
readonly property list<AccessPoint> networks: []
|
||||||
|
readonly property AccessPoint active: networks.find(n => n.active) ?? null
|
||||||
|
property bool wifiEnabled: true
|
||||||
|
readonly property bool scanning: Nmcli.scanning
|
||||||
|
|
||||||
|
property list<var> ethernetDevices: []
|
||||||
|
readonly property var activeEthernet: ethernetDevices.find(d => d.connected) ?? null
|
||||||
|
property int ethernetDeviceCount: 0
|
||||||
|
property bool ethernetProcessRunning: false
|
||||||
|
property var ethernetDeviceDetails: null
|
||||||
|
property var wirelessDeviceDetails: null
|
||||||
|
|
||||||
|
function enableWifi(enabled: bool): void {
|
||||||
|
Nmcli.enableWifi(enabled, result => {
|
||||||
|
if (result.success) {
|
||||||
|
root.getWifiStatus();
|
||||||
|
Nmcli.getNetworks(() => {
|
||||||
|
syncNetworksFromNmcli();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function toggleWifi(): void {
|
||||||
|
Nmcli.toggleWifi(result => {
|
||||||
|
if (result.success) {
|
||||||
|
root.getWifiStatus();
|
||||||
|
Nmcli.getNetworks(() => {
|
||||||
|
syncNetworksFromNmcli();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function rescanWifi(): void {
|
||||||
|
Nmcli.rescanWifi();
|
||||||
|
}
|
||||||
|
|
||||||
|
property var pendingConnection: null
|
||||||
|
signal connectionFailed(string ssid)
|
||||||
|
|
||||||
|
function connectToNetwork(ssid: string, password: string, bssid: string, callback: var): void {
|
||||||
|
// Set up pending connection tracking if callback provided
|
||||||
|
if (callback) {
|
||||||
|
const hasBssid = bssid !== undefined && bssid !== null && bssid.length > 0;
|
||||||
|
root.pendingConnection = {
|
||||||
|
ssid: ssid,
|
||||||
|
bssid: hasBssid ? bssid : "",
|
||||||
|
callback: callback
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
Nmcli.connectToNetwork(ssid, password, bssid, result => {
|
||||||
|
if (result && result.success) {
|
||||||
|
// Connection successful
|
||||||
|
if (callback)
|
||||||
|
callback(result);
|
||||||
|
root.pendingConnection = null;
|
||||||
|
} else if (result && result.needsPassword) {
|
||||||
|
// Password needed - callback will handle showing dialog
|
||||||
|
if (callback)
|
||||||
|
callback(result);
|
||||||
|
} else {
|
||||||
|
// Connection failed
|
||||||
|
if (result && result.error) {
|
||||||
|
root.connectionFailed(ssid);
|
||||||
|
}
|
||||||
|
if (callback)
|
||||||
|
callback(result);
|
||||||
|
root.pendingConnection = null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function connectToNetworkWithPasswordCheck(ssid: string, isSecure: bool, callback: var, bssid: string): void {
|
||||||
|
// Set up pending connection tracking
|
||||||
|
const hasBssid = bssid !== undefined && bssid !== null && bssid.length > 0;
|
||||||
|
root.pendingConnection = {
|
||||||
|
ssid: ssid,
|
||||||
|
bssid: hasBssid ? bssid : "",
|
||||||
|
callback: callback
|
||||||
|
};
|
||||||
|
|
||||||
|
Nmcli.connectToNetworkWithPasswordCheck(ssid, isSecure, result => {
|
||||||
|
if (result && result.success) {
|
||||||
|
// Connection successful
|
||||||
|
if (callback)
|
||||||
|
callback(result);
|
||||||
|
root.pendingConnection = null;
|
||||||
|
} else if (result && result.needsPassword) {
|
||||||
|
// Password needed - callback will handle showing dialog
|
||||||
|
if (callback)
|
||||||
|
callback(result);
|
||||||
|
} else {
|
||||||
|
// Connection failed
|
||||||
|
if (result && result.error) {
|
||||||
|
root.connectionFailed(ssid);
|
||||||
|
}
|
||||||
|
if (callback)
|
||||||
|
callback(result);
|
||||||
|
root.pendingConnection = null;
|
||||||
|
}
|
||||||
|
}, bssid);
|
||||||
|
}
|
||||||
|
|
||||||
|
function disconnectFromNetwork(): void {
|
||||||
|
// Try to disconnect - use connection name if available, otherwise use device
|
||||||
|
Nmcli.disconnectFromNetwork();
|
||||||
|
// Refresh network list after disconnection
|
||||||
|
Qt.callLater(() => {
|
||||||
|
Nmcli.getNetworks(() => {
|
||||||
|
syncNetworksFromNmcli();
|
||||||
|
});
|
||||||
|
}, 500);
|
||||||
|
}
|
||||||
|
|
||||||
|
function forgetNetwork(ssid: string): void {
|
||||||
|
// Delete the connection profile for this network
|
||||||
|
// This will remove the saved password and connection settings
|
||||||
|
Nmcli.forgetNetwork(ssid, result => {
|
||||||
|
if (result.success) {
|
||||||
|
// Refresh network list after deletion
|
||||||
|
Qt.callLater(() => {
|
||||||
|
Nmcli.getNetworks(() => {
|
||||||
|
syncNetworksFromNmcli();
|
||||||
|
});
|
||||||
|
}, 500);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
property list<string> savedConnections: []
|
||||||
|
property list<string> savedConnectionSsids: []
|
||||||
|
|
||||||
|
// Sync saved connections from Nmcli when they're updated
|
||||||
|
Connections {
|
||||||
|
target: Nmcli
|
||||||
|
function onSavedConnectionsChanged() {
|
||||||
|
root.savedConnections = Nmcli.savedConnections;
|
||||||
|
}
|
||||||
|
function onSavedConnectionSsidsChanged() {
|
||||||
|
root.savedConnectionSsids = Nmcli.savedConnectionSsids;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function syncNetworksFromNmcli(): void {
|
||||||
|
const rNetworks = root.networks;
|
||||||
|
const nNetworks = Nmcli.networks;
|
||||||
|
|
||||||
|
// Build a map of existing networks by key
|
||||||
|
const existingMap = new Map();
|
||||||
|
for (const rn of rNetworks) {
|
||||||
|
const key = `${rn.frequency}:${rn.ssid}:${rn.bssid}`;
|
||||||
|
existingMap.set(key, rn);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Build a map of new networks by key
|
||||||
|
const newMap = new Map();
|
||||||
|
for (const nn of nNetworks) {
|
||||||
|
const key = `${nn.frequency}:${nn.ssid}:${nn.bssid}`;
|
||||||
|
newMap.set(key, nn);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove networks that no longer exist
|
||||||
|
for (const [key, network] of existingMap) {
|
||||||
|
if (!newMap.has(key)) {
|
||||||
|
const index = rNetworks.indexOf(network);
|
||||||
|
if (index >= 0) {
|
||||||
|
rNetworks.splice(index, 1);
|
||||||
|
network.destroy();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add or update networks from Nmcli
|
||||||
|
for (const [key, nNetwork] of newMap) {
|
||||||
|
const existing = existingMap.get(key);
|
||||||
|
if (existing) {
|
||||||
|
// Update existing network's lastIpcObject
|
||||||
|
existing.lastIpcObject = nNetwork.lastIpcObject;
|
||||||
|
} else {
|
||||||
|
// Create new AccessPoint from Nmcli's data
|
||||||
|
rNetworks.push(apComp.createObject(root, {
|
||||||
|
lastIpcObject: nNetwork.lastIpcObject
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
component AccessPoint: QtObject {
|
||||||
|
required property var lastIpcObject
|
||||||
|
readonly property string ssid: lastIpcObject.ssid
|
||||||
|
readonly property string bssid: lastIpcObject.bssid
|
||||||
|
readonly property int strength: lastIpcObject.strength
|
||||||
|
readonly property int frequency: lastIpcObject.frequency
|
||||||
|
readonly property bool active: lastIpcObject.active
|
||||||
|
readonly property string security: lastIpcObject.security
|
||||||
|
readonly property bool isSecure: security.length > 0
|
||||||
|
}
|
||||||
|
|
||||||
|
Component {
|
||||||
|
id: apComp
|
||||||
|
AccessPoint {}
|
||||||
|
}
|
||||||
|
|
||||||
|
function hasSavedProfile(ssid: string): bool {
|
||||||
|
// Use Nmcli's hasSavedProfile which has the same logic
|
||||||
|
return Nmcli.hasSavedProfile(ssid);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getWifiStatus(): void {
|
||||||
|
Nmcli.getWifiStatus(enabled => {
|
||||||
|
root.wifiEnabled = enabled;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function getEthernetDevices(): void {
|
||||||
|
root.ethernetProcessRunning = true;
|
||||||
|
Nmcli.getEthernetInterfaces(interfaces => {
|
||||||
|
root.ethernetDevices = Nmcli.ethernetDevices;
|
||||||
|
root.ethernetDeviceCount = Nmcli.ethernetDevices.length;
|
||||||
|
root.ethernetProcessRunning = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function connectEthernet(connectionName: string, interfaceName: string): void {
|
||||||
|
Nmcli.connectEthernet(connectionName, interfaceName, result => {
|
||||||
|
if (result.success) {
|
||||||
|
getEthernetDevices();
|
||||||
|
// Refresh device details after connection
|
||||||
|
Qt.callLater(() => {
|
||||||
|
const activeDevice = root.ethernetDevices.find(function (d) {
|
||||||
|
return d.connected;
|
||||||
|
});
|
||||||
|
if (activeDevice && activeDevice.interface) {
|
||||||
|
updateEthernetDeviceDetails(activeDevice.interface);
|
||||||
|
}
|
||||||
|
}, 1000);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function disconnectEthernet(connectionName: string): void {
|
||||||
|
Nmcli.disconnectEthernet(connectionName, result => {
|
||||||
|
if (result.success) {
|
||||||
|
getEthernetDevices();
|
||||||
|
// Clear device details after disconnection
|
||||||
|
Qt.callLater(() => {
|
||||||
|
root.ethernetDeviceDetails = null;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateEthernetDeviceDetails(interfaceName: string): void {
|
||||||
|
Nmcli.getEthernetDeviceDetails(interfaceName, details => {
|
||||||
|
root.ethernetDeviceDetails = details;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateWirelessDeviceDetails(): void {
|
||||||
|
// Find the wireless interface by looking for wifi devices
|
||||||
|
// Pass empty string to let Nmcli find the active interface automatically
|
||||||
|
Nmcli.getWirelessDeviceDetails("", details => {
|
||||||
|
root.wirelessDeviceDetails = details;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function cidrToSubnetMask(cidr: string): string {
|
||||||
|
// Convert CIDR notation (e.g., "24") to subnet mask (e.g., "255.255.255.0")
|
||||||
|
const cidrNum = parseInt(cidr);
|
||||||
|
if (isNaN(cidrNum) || cidrNum < 0 || cidrNum > 32) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
const mask = (0xffffffff << (32 - cidrNum)) >>> 0;
|
||||||
|
const octets = [(mask >>> 24) & 0xff, (mask >>> 16) & 0xff, (mask >>> 8) & 0xff, mask & 0xff];
|
||||||
|
|
||||||
|
return octets.join(".");
|
||||||
|
}
|
||||||
|
|
||||||
|
Process {
|
||||||
|
running: true
|
||||||
|
command: ["nmcli", "m"]
|
||||||
|
stdout: SplitParser {
|
||||||
|
onRead: {
|
||||||
|
Nmcli.getNetworks(() => {
|
||||||
|
syncNetworksFromNmcli();
|
||||||
|
});
|
||||||
|
getEthernetDevices();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+1352
File diff suppressed because it is too large
Load Diff
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
import Quickshell
|
import Quickshell
|
||||||
import QtQuick
|
import QtQuick
|
||||||
import QtQuick.Shapes
|
import qs.Components
|
||||||
import qs.Modules as Modules
|
import qs.Modules as Modules
|
||||||
import qs.Modules.Notifications as Notifications
|
import qs.Modules.Notifications as Notifications
|
||||||
import qs.Modules.Notifications.Sidebar as Sidebar
|
import qs.Modules.Notifications.Sidebar as Sidebar
|
||||||
@@ -33,7 +33,7 @@ Item {
|
|||||||
// anchors.margins: 8
|
// anchors.margins: 8
|
||||||
anchors.topMargin: Config.barConfig.autoHide && !visibilities.bar ? 0 : bar.implicitHeight
|
anchors.topMargin: Config.barConfig.autoHide && !visibilities.bar ? 0 : bar.implicitHeight
|
||||||
Behavior on anchors.topMargin {
|
Behavior on anchors.topMargin {
|
||||||
Modules.Anim {}
|
Anim {}
|
||||||
}
|
}
|
||||||
|
|
||||||
Osd.Wrapper {
|
Osd.Wrapper {
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
pragma Singleton
|
pragma Singleton
|
||||||
|
|
||||||
import Quickshell
|
import Quickshell
|
||||||
import Quickshell.Services.Notifications
|
|
||||||
|
|
||||||
Singleton {
|
Singleton {
|
||||||
id: root
|
id: root
|
||||||
+1
-1
@@ -5,7 +5,7 @@ import Quickshell
|
|||||||
import Quickshell.Wayland
|
import Quickshell.Wayland
|
||||||
import QtQuick
|
import QtQuick
|
||||||
import QtQuick.Effects
|
import QtQuick.Effects
|
||||||
import qs.Modules
|
import qs.Components
|
||||||
import qs.Config
|
import qs.Config
|
||||||
import qs.Helpers
|
import qs.Helpers
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import QtQuick
|
import QtQuick
|
||||||
import QtQuick.Shapes
|
import QtQuick.Shapes
|
||||||
|
import qs.Components
|
||||||
import qs.Config
|
import qs.Config
|
||||||
|
|
||||||
ShapePath {
|
ShapePath {
|
||||||
|
|||||||
+1
-2
@@ -4,10 +4,9 @@ import Quickshell
|
|||||||
import Quickshell.Services.SystemTray
|
import Quickshell.Services.SystemTray
|
||||||
import QtQuick
|
import QtQuick
|
||||||
import qs.Config
|
import qs.Config
|
||||||
|
import qs.Components
|
||||||
import qs.Modules.Calendar
|
import qs.Modules.Calendar
|
||||||
import qs.Modules.WSOverview
|
import qs.Modules.WSOverview
|
||||||
import qs.Modules.Polkit
|
|
||||||
import qs.Modules.Dashboard
|
|
||||||
import qs.Modules.Network
|
import qs.Modules.Network
|
||||||
import qs.Modules.UPower
|
import qs.Modules.UPower
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
import qs.Components
|
import qs.Components
|
||||||
import qs.Helpers
|
|
||||||
import qs.Config
|
import qs.Config
|
||||||
import qs.Modules as Modules
|
|
||||||
import QtQuick
|
import QtQuick
|
||||||
import QtQuick.Shapes
|
import QtQuick.Shapes
|
||||||
|
|
||||||
@@ -62,6 +60,6 @@ ShapePath {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Behavior on fillColor {
|
Behavior on fillColor {
|
||||||
Modules.CAnim {}
|
CAnim {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import Quickshell.Widgets
|
|||||||
import QtQuick
|
import QtQuick
|
||||||
import QtQuick.Layouts
|
import QtQuick.Layouts
|
||||||
import qs.Config
|
import qs.Config
|
||||||
import qs.Modules
|
import qs.Components
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: root
|
id: root
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ import QtQuick
|
|||||||
import qs.Components
|
import qs.Components
|
||||||
import qs.Helpers
|
import qs.Helpers
|
||||||
import qs.Config
|
import qs.Config
|
||||||
import qs.Modules as Modules
|
|
||||||
|
|
||||||
Row {
|
Row {
|
||||||
id: root
|
id: root
|
||||||
@@ -91,7 +90,7 @@ Row {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Behavior on value {
|
Behavior on value {
|
||||||
Modules.Anim {
|
Anim {
|
||||||
duration: Appearance.anim.durations.large
|
duration: Appearance.anim.durations.large
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,9 @@
|
|||||||
pragma ComponentBehavior: Bound
|
pragma ComponentBehavior: Bound
|
||||||
|
|
||||||
import ZShell
|
|
||||||
import Quickshell
|
import Quickshell
|
||||||
import QtQuick
|
import QtQuick
|
||||||
import qs.Components
|
import qs.Components
|
||||||
import qs.Helpers
|
|
||||||
import qs.Config
|
import qs.Config
|
||||||
import qs.Modules as Modules
|
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: root
|
id: root
|
||||||
@@ -46,7 +43,7 @@ Item {
|
|||||||
from: ""
|
from: ""
|
||||||
to: "visible"
|
to: "visible"
|
||||||
|
|
||||||
Modules.Anim {
|
Anim {
|
||||||
target: root
|
target: root
|
||||||
property: "implicitHeight"
|
property: "implicitHeight"
|
||||||
duration: MaterialEasing.expressiveEffectsTime
|
duration: MaterialEasing.expressiveEffectsTime
|
||||||
@@ -57,7 +54,7 @@ Item {
|
|||||||
from: "visible"
|
from: "visible"
|
||||||
to: ""
|
to: ""
|
||||||
|
|
||||||
Modules.Anim {
|
Anim {
|
||||||
target: root
|
target: root
|
||||||
property: "implicitHeight"
|
property: "implicitHeight"
|
||||||
easing.bezierCurve: MaterialEasing.expressiveEffects
|
easing.bezierCurve: MaterialEasing.expressiveEffects
|
||||||
|
|||||||
@@ -5,9 +5,7 @@ import QtQuick
|
|||||||
import qs.Modules.Launcher.Services
|
import qs.Modules.Launcher.Services
|
||||||
import qs.Modules.Launcher.Items
|
import qs.Modules.Launcher.Items
|
||||||
import qs.Components
|
import qs.Components
|
||||||
import qs.Helpers
|
|
||||||
import qs.Config
|
import qs.Config
|
||||||
import qs.Modules as Modules
|
|
||||||
|
|
||||||
CustomListView {
|
CustomListView {
|
||||||
id: root
|
id: root
|
||||||
@@ -41,7 +39,7 @@ CustomListView {
|
|||||||
implicitHeight: root.currentItem?.implicitHeight ?? 0
|
implicitHeight: root.currentItem?.implicitHeight ?? 0
|
||||||
|
|
||||||
Behavior on y {
|
Behavior on y {
|
||||||
Modules.Anim {
|
Anim {
|
||||||
duration: Appearance.anim.durations.small
|
duration: Appearance.anim.durations.small
|
||||||
easing.bezierCurve: Appearance.anim.curves.expressiveEffects
|
easing.bezierCurve: Appearance.anim.curves.expressiveEffects
|
||||||
}
|
}
|
||||||
@@ -92,7 +90,7 @@ CustomListView {
|
|||||||
transitions: Transition {
|
transitions: Transition {
|
||||||
SequentialAnimation {
|
SequentialAnimation {
|
||||||
ParallelAnimation {
|
ParallelAnimation {
|
||||||
Modules.Anim {
|
Anim {
|
||||||
target: root
|
target: root
|
||||||
property: "opacity"
|
property: "opacity"
|
||||||
from: 1
|
from: 1
|
||||||
@@ -100,7 +98,7 @@ CustomListView {
|
|||||||
duration: Appearance.anim.durations.small
|
duration: Appearance.anim.durations.small
|
||||||
easing.bezierCurve: Appearance.anim.curves.expressiveEffects
|
easing.bezierCurve: Appearance.anim.curves.expressiveEffects
|
||||||
}
|
}
|
||||||
Modules.Anim {
|
Anim {
|
||||||
target: root
|
target: root
|
||||||
property: "scale"
|
property: "scale"
|
||||||
from: 1
|
from: 1
|
||||||
@@ -114,7 +112,7 @@ CustomListView {
|
|||||||
properties: "values,delegate"
|
properties: "values,delegate"
|
||||||
}
|
}
|
||||||
ParallelAnimation {
|
ParallelAnimation {
|
||||||
Modules.Anim {
|
Anim {
|
||||||
target: root
|
target: root
|
||||||
property: "opacity"
|
property: "opacity"
|
||||||
from: 0
|
from: 0
|
||||||
@@ -122,7 +120,7 @@ CustomListView {
|
|||||||
duration: Appearance.anim.durations.small
|
duration: Appearance.anim.durations.small
|
||||||
easing.bezierCurve: Appearance.anim.curves.expressiveEffects
|
easing.bezierCurve: Appearance.anim.curves.expressiveEffects
|
||||||
}
|
}
|
||||||
Modules.Anim {
|
Anim {
|
||||||
target: root
|
target: root
|
||||||
property: "scale"
|
property: "scale"
|
||||||
from: 0.9
|
from: 0.9
|
||||||
@@ -146,7 +144,7 @@ CustomListView {
|
|||||||
add: Transition {
|
add: Transition {
|
||||||
enabled: !root.state
|
enabled: !root.state
|
||||||
|
|
||||||
Modules.Anim {
|
Anim {
|
||||||
properties: "opacity,scale"
|
properties: "opacity,scale"
|
||||||
from: 0
|
from: 0
|
||||||
to: 1
|
to: 1
|
||||||
@@ -156,7 +154,7 @@ CustomListView {
|
|||||||
remove: Transition {
|
remove: Transition {
|
||||||
enabled: !root.state
|
enabled: !root.state
|
||||||
|
|
||||||
Modules.Anim {
|
Anim {
|
||||||
properties: "opacity,scale"
|
properties: "opacity,scale"
|
||||||
from: 1
|
from: 1
|
||||||
to: 0
|
to: 0
|
||||||
@@ -164,31 +162,31 @@ CustomListView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
move: Transition {
|
move: Transition {
|
||||||
Modules.Anim {
|
Anim {
|
||||||
property: "y"
|
property: "y"
|
||||||
}
|
}
|
||||||
Modules.Anim {
|
Anim {
|
||||||
properties: "opacity,scale"
|
properties: "opacity,scale"
|
||||||
to: 1
|
to: 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
addDisplaced: Transition {
|
addDisplaced: Transition {
|
||||||
Modules.Anim {
|
Anim {
|
||||||
property: "y"
|
property: "y"
|
||||||
duration: Appearance.anim.durations.small
|
duration: Appearance.anim.durations.small
|
||||||
}
|
}
|
||||||
Modules.Anim {
|
Anim {
|
||||||
properties: "opacity,scale"
|
properties: "opacity,scale"
|
||||||
to: 1
|
to: 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
displaced: Transition {
|
displaced: Transition {
|
||||||
Modules.Anim {
|
Anim {
|
||||||
property: "y"
|
property: "y"
|
||||||
}
|
}
|
||||||
Modules.Anim {
|
Anim {
|
||||||
properties: "opacity,scale"
|
properties: "opacity,scale"
|
||||||
to: 1
|
to: 1
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
import QtQuick
|
import QtQuick
|
||||||
import QtQuick.Shapes
|
import QtQuick.Shapes
|
||||||
import qs.Components
|
import qs.Components
|
||||||
import qs.Helpers
|
|
||||||
import qs.Config
|
import qs.Config
|
||||||
import qs.Modules as Modules
|
|
||||||
|
|
||||||
ShapePath {
|
ShapePath {
|
||||||
id: root
|
id: root
|
||||||
@@ -56,6 +54,6 @@ ShapePath {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Behavior on fillColor {
|
Behavior on fillColor {
|
||||||
Modules.CAnim {}
|
CAnim {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import qs.Modules.Launcher.Services
|
|||||||
import qs.Components
|
import qs.Components
|
||||||
import qs.Helpers
|
import qs.Helpers
|
||||||
import qs.Config
|
import qs.Config
|
||||||
import qs.Modules as Modules
|
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: root
|
id: root
|
||||||
@@ -176,13 +175,13 @@ Item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Behavior on width {
|
Behavior on width {
|
||||||
Modules.Anim {
|
Anim {
|
||||||
duration: Appearance.anim.durations.small
|
duration: Appearance.anim.durations.small
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Behavior on opacity {
|
Behavior on opacity {
|
||||||
Modules.Anim {
|
Anim {
|
||||||
duration: Appearance.anim.durations.small
|
duration: Appearance.anim.durations.small
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import Quickshell
|
|||||||
import QtQuick
|
import QtQuick
|
||||||
import qs.Components
|
import qs.Components
|
||||||
import qs.Config
|
import qs.Config
|
||||||
import qs.Modules as Modules
|
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: root
|
id: root
|
||||||
@@ -43,7 +42,7 @@ Item {
|
|||||||
SequentialAnimation {
|
SequentialAnimation {
|
||||||
id: showAnim
|
id: showAnim
|
||||||
|
|
||||||
Modules.Anim {
|
Anim {
|
||||||
target: root
|
target: root
|
||||||
property: "implicitHeight"
|
property: "implicitHeight"
|
||||||
to: root.contentHeight
|
to: root.contentHeight
|
||||||
@@ -61,7 +60,7 @@ Item {
|
|||||||
ScriptAction {
|
ScriptAction {
|
||||||
script: root.implicitHeight = root.implicitHeight
|
script: root.implicitHeight = root.implicitHeight
|
||||||
}
|
}
|
||||||
Modules.Anim {
|
Anim {
|
||||||
target: root
|
target: root
|
||||||
property: "implicitHeight"
|
property: "implicitHeight"
|
||||||
to: 0
|
to: 0
|
||||||
|
|||||||
@@ -1,16 +1,11 @@
|
|||||||
pragma ComponentBehavior: Bound
|
pragma ComponentBehavior: Bound
|
||||||
|
|
||||||
import Quickshell
|
|
||||||
import Quickshell.Wayland
|
import Quickshell.Wayland
|
||||||
import QtQuick
|
import QtQuick
|
||||||
import QtQuick.Controls
|
|
||||||
import QtQuick.Layouts
|
|
||||||
import QtQuick.Effects
|
import QtQuick.Effects
|
||||||
import qs.Config
|
import qs.Config
|
||||||
import qs.Helpers
|
import qs.Helpers
|
||||||
import qs.Effects
|
|
||||||
import qs.Components
|
import qs.Components
|
||||||
import qs.Modules as Modules
|
|
||||||
|
|
||||||
WlSessionLockSurface {
|
WlSessionLockSurface {
|
||||||
id: root
|
id: root
|
||||||
@@ -34,32 +29,32 @@ WlSessionLockSurface {
|
|||||||
id: unlockAnim
|
id: unlockAnim
|
||||||
|
|
||||||
ParallelAnimation {
|
ParallelAnimation {
|
||||||
Modules.Anim {
|
Anim {
|
||||||
target: lockContent
|
target: lockContent
|
||||||
properties: "implicitWidth,implicitHeight"
|
properties: "implicitWidth,implicitHeight"
|
||||||
to: lockContent.size
|
to: lockContent.size
|
||||||
duration: Appearance.anim.durations.expressiveDefaultSpatial
|
duration: Appearance.anim.durations.expressiveDefaultSpatial
|
||||||
easing.bezierCurve: Appearance.anim.curves.expressiveDefaultSpatial
|
easing.bezierCurve: Appearance.anim.curves.expressiveDefaultSpatial
|
||||||
}
|
}
|
||||||
Modules.Anim {
|
Anim {
|
||||||
target: lockBg
|
target: lockBg
|
||||||
property: "radius"
|
property: "radius"
|
||||||
to: lockContent.radius
|
to: lockContent.radius
|
||||||
}
|
}
|
||||||
Modules.Anim {
|
Anim {
|
||||||
target: content
|
target: content
|
||||||
property: "scale"
|
property: "scale"
|
||||||
to: 0
|
to: 0
|
||||||
duration: Appearance.anim.durations.expressiveDefaultSpatial
|
duration: Appearance.anim.durations.expressiveDefaultSpatial
|
||||||
easing.bezierCurve: Appearance.anim.curves.expressiveDefaultSpatial
|
easing.bezierCurve: Appearance.anim.curves.expressiveDefaultSpatial
|
||||||
}
|
}
|
||||||
Modules.Anim {
|
Anim {
|
||||||
target: content
|
target: content
|
||||||
property: "opacity"
|
property: "opacity"
|
||||||
to: 0
|
to: 0
|
||||||
duration: Appearance.anim.durations.small
|
duration: Appearance.anim.durations.small
|
||||||
}
|
}
|
||||||
Modules.Anim {
|
Anim {
|
||||||
target: lockIcon
|
target: lockIcon
|
||||||
property: "opacity"
|
property: "opacity"
|
||||||
to: 1
|
to: 1
|
||||||
@@ -69,7 +64,7 @@ WlSessionLockSurface {
|
|||||||
PauseAnimation {
|
PauseAnimation {
|
||||||
duration: Appearance.anim.durations.small
|
duration: Appearance.anim.durations.small
|
||||||
}
|
}
|
||||||
Modules.Anim {
|
Anim {
|
||||||
target: lockContent
|
target: lockContent
|
||||||
property: "opacity"
|
property: "opacity"
|
||||||
to: 0
|
to: 0
|
||||||
@@ -90,7 +85,7 @@ WlSessionLockSurface {
|
|||||||
|
|
||||||
SequentialAnimation {
|
SequentialAnimation {
|
||||||
ParallelAnimation {
|
ParallelAnimation {
|
||||||
Modules.Anim {
|
Anim {
|
||||||
target: lockContent
|
target: lockContent
|
||||||
property: "scale"
|
property: "scale"
|
||||||
to: 1
|
to: 1
|
||||||
@@ -99,36 +94,36 @@ WlSessionLockSurface {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
ParallelAnimation {
|
ParallelAnimation {
|
||||||
Modules.Anim {
|
Anim {
|
||||||
target: lockIcon
|
target: lockIcon
|
||||||
property: "opacity"
|
property: "opacity"
|
||||||
to: 0
|
to: 0
|
||||||
}
|
}
|
||||||
Modules.Anim {
|
Anim {
|
||||||
target: content
|
target: content
|
||||||
property: "opacity"
|
property: "opacity"
|
||||||
to: 1
|
to: 1
|
||||||
}
|
}
|
||||||
Modules.Anim {
|
Anim {
|
||||||
target: content
|
target: content
|
||||||
property: "scale"
|
property: "scale"
|
||||||
to: 1
|
to: 1
|
||||||
duration: Appearance.anim.durations.expressiveDefaultSpatial
|
duration: Appearance.anim.durations.expressiveDefaultSpatial
|
||||||
easing.bezierCurve: Appearance.anim.curves.expressiveDefaultSpatial
|
easing.bezierCurve: Appearance.anim.curves.expressiveDefaultSpatial
|
||||||
}
|
}
|
||||||
Modules.Anim {
|
Anim {
|
||||||
target: lockBg
|
target: lockBg
|
||||||
property: "radius"
|
property: "radius"
|
||||||
to: Appearance.rounding.large * 1.5
|
to: Appearance.rounding.large * 1.5
|
||||||
}
|
}
|
||||||
Modules.Anim {
|
Anim {
|
||||||
target: lockContent
|
target: lockContent
|
||||||
property: "implicitWidth"
|
property: "implicitWidth"
|
||||||
to: (root.screen?.height ?? 0) * Config.lock.sizes.heightMult * Config.lock.sizes.ratio
|
to: (root.screen?.height ?? 0) * Config.lock.sizes.heightMult * Config.lock.sizes.ratio
|
||||||
duration: Appearance.anim.durations.expressiveDefaultSpatial
|
duration: Appearance.anim.durations.expressiveDefaultSpatial
|
||||||
easing.bezierCurve: Appearance.anim.curves.expressiveDefaultSpatial
|
easing.bezierCurve: Appearance.anim.curves.expressiveDefaultSpatial
|
||||||
}
|
}
|
||||||
Modules.Anim {
|
Anim {
|
||||||
target: lockContent
|
target: lockContent
|
||||||
property: "implicitHeight"
|
property: "implicitHeight"
|
||||||
to: (root.screen?.height ?? 0) * Config.lock.sizes.heightMult
|
to: (root.screen?.height ?? 0) * Config.lock.sizes.heightMult
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import qs.Components
|
import qs.Components
|
||||||
import qs.Config
|
import qs.Config
|
||||||
import qs.Modules as Modules
|
|
||||||
import QtQuick
|
import QtQuick
|
||||||
import QtQuick.Shapes
|
import QtQuick.Shapes
|
||||||
|
|
||||||
@@ -49,6 +48,6 @@ ShapePath {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Behavior on fillColor {
|
Behavior on fillColor {
|
||||||
Modules.CAnim {}
|
CAnim {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import qs.Components
|
import qs.Components
|
||||||
import qs.Config
|
import qs.Config
|
||||||
import qs.Modules as Modules
|
|
||||||
import QtQuick
|
import QtQuick
|
||||||
import QtQuick.Shapes
|
import QtQuick.Shapes
|
||||||
|
|
||||||
@@ -49,6 +48,6 @@ ShapePath {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Behavior on fillColor {
|
Behavior on fillColor {
|
||||||
Modules.CAnim {}
|
CAnim {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import qs.Components
|
import qs.Components
|
||||||
import qs.Config
|
import qs.Config
|
||||||
import qs.Modules as Modules
|
|
||||||
import QtQuick
|
import QtQuick
|
||||||
import QtQuick.Shapes
|
import QtQuick.Shapes
|
||||||
|
|
||||||
@@ -50,6 +49,6 @@ ShapePath {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Behavior on fillColor {
|
Behavior on fillColor {
|
||||||
Modules.CAnim {}
|
CAnim {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
|
import Quickshell.Bluetooth
|
||||||
|
import Quickshell.Networking as QSNetwork
|
||||||
|
import QtQuick
|
||||||
|
import QtQuick.Layouts
|
||||||
import qs.Components
|
import qs.Components
|
||||||
import qs.Config
|
import qs.Config
|
||||||
import qs.Modules
|
import qs.Modules
|
||||||
import qs.Daemons
|
import qs.Daemons
|
||||||
import QtQuick
|
|
||||||
import QtQuick.Layouts
|
|
||||||
|
|
||||||
CustomRect {
|
CustomRect {
|
||||||
id: root
|
id: root
|
||||||
@@ -28,12 +30,50 @@ CustomRect {
|
|||||||
Layout.alignment: Qt.AlignHCenter
|
Layout.alignment: Qt.AlignHCenter
|
||||||
spacing: 7
|
spacing: 7
|
||||||
|
|
||||||
|
Toggle {
|
||||||
|
visible: QSNetwork.Networking.devices.values.length > 0
|
||||||
|
icon: Network.wifiEnabled ? "wifi" : "wifi_off"
|
||||||
|
checked: Network.wifiEnabled
|
||||||
|
onClicked: Network.toggleWifi()
|
||||||
|
}
|
||||||
|
|
||||||
Toggle {
|
Toggle {
|
||||||
id: toggle
|
id: toggle
|
||||||
icon: "notifications_off"
|
icon: NotifServer.dnd ? "notifications_off" : "notifications"
|
||||||
checked: NotifServer.dnd
|
checked: !NotifServer.dnd
|
||||||
onClicked: NotifServer.dnd = !NotifServer.dnd
|
onClicked: NotifServer.dnd = !NotifServer.dnd
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Toggle {
|
||||||
|
icon: Audio.sourceMuted ? "mic_off" : "mic"
|
||||||
|
checked: !Audio.sourceMuted
|
||||||
|
onClicked: {
|
||||||
|
const audio = Audio.source?.audio;
|
||||||
|
if ( audio )
|
||||||
|
audio.muted = !audio.muted;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Toggle {
|
||||||
|
icon: Audio.muted ? "volume_off" : "volume_up"
|
||||||
|
checked: !Audio.muted
|
||||||
|
onClicked: {
|
||||||
|
const audio = Audio.sink?.audio;
|
||||||
|
if ( audio )
|
||||||
|
audio.muted = !audio.muted;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Toggle {
|
||||||
|
visible: Bluetooth.defaultAdapter?.enabled ?? false
|
||||||
|
icon: Bluetooth.defaultAdapter?.enabled ? "bluetooth" : "bluetooth_disabled"
|
||||||
|
checked: Bluetooth.defaultAdapter?.enabled ?? false
|
||||||
|
onClicked: {
|
||||||
|
const adapter = Bluetooth.defaultAdapter
|
||||||
|
if ( adapter )
|
||||||
|
adapter.enabled = !adapter.enabled;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import qs.Components
|
import qs.Components
|
||||||
import qs.Config
|
import qs.Config
|
||||||
import qs.Modules as Modules
|
|
||||||
import qs.Helpers
|
import qs.Helpers
|
||||||
import QtQuick
|
import QtQuick
|
||||||
import QtQuick.Layouts
|
import QtQuick.Layouts
|
||||||
@@ -99,25 +98,25 @@ CustomRect {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Behavior on anchors.bottomMargin {
|
Behavior on anchors.bottomMargin {
|
||||||
Modules.Anim {
|
Anim {
|
||||||
duration: MaterialEasing.expressiveEffectsTime
|
duration: MaterialEasing.expressiveEffectsTime
|
||||||
easing.bezierCurve: MaterialEasing.expressiveEffects
|
easing.bezierCurve: MaterialEasing.expressiveEffects
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Behavior on opacity {
|
Behavior on opacity {
|
||||||
Modules.Anim {
|
Anim {
|
||||||
duration: MaterialEasing.expressiveEffectsTime
|
duration: MaterialEasing.expressiveEffectsTime
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Behavior on scale {
|
Behavior on scale {
|
||||||
Modules.Anim {}
|
Anim {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Behavior on implicitHeight {
|
Behavior on implicitHeight {
|
||||||
Modules.Anim {
|
Anim {
|
||||||
duration: MaterialEasing.expressiveEffectsTime
|
duration: MaterialEasing.expressiveEffectsTime
|
||||||
easing.bezierCurve: MaterialEasing.expressiveEffects
|
easing.bezierCurve: MaterialEasing.expressiveEffects
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ pragma ComponentBehavior: Bound
|
|||||||
|
|
||||||
import qs.Components
|
import qs.Components
|
||||||
import qs.Config
|
import qs.Config
|
||||||
import qs.Modules as Modules
|
|
||||||
import Quickshell
|
import Quickshell
|
||||||
import QtQuick
|
import QtQuick
|
||||||
|
|
||||||
@@ -47,7 +46,7 @@ Item {
|
|||||||
from: ""
|
from: ""
|
||||||
to: "visible"
|
to: "visible"
|
||||||
|
|
||||||
Modules.Anim {
|
Anim {
|
||||||
target: root
|
target: root
|
||||||
property: "implicitHeight"
|
property: "implicitHeight"
|
||||||
duration: MaterialEasing.expressiveEffectsTime
|
duration: MaterialEasing.expressiveEffectsTime
|
||||||
@@ -58,7 +57,7 @@ Item {
|
|||||||
from: "visible"
|
from: "visible"
|
||||||
to: ""
|
to: ""
|
||||||
|
|
||||||
Modules.Anim {
|
Anim {
|
||||||
target: root
|
target: root
|
||||||
property: "implicitHeight"
|
property: "implicitHeight"
|
||||||
easing.bezierCurve: MaterialEasing.expressiveEffects
|
easing.bezierCurve: MaterialEasing.expressiveEffects
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ pragma ComponentBehavior: Bound
|
|||||||
|
|
||||||
import qs.Components
|
import qs.Components
|
||||||
import qs.Config
|
import qs.Config
|
||||||
import qs.Modules as Modules
|
|
||||||
import QtQuick
|
import QtQuick
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
@@ -29,7 +28,7 @@ Item {
|
|||||||
from: ""
|
from: ""
|
||||||
to: "visible"
|
to: "visible"
|
||||||
|
|
||||||
Modules.Anim {
|
Anim {
|
||||||
target: root
|
target: root
|
||||||
property: "implicitWidth"
|
property: "implicitWidth"
|
||||||
duration: MaterialEasing.expressiveEffectsTime
|
duration: MaterialEasing.expressiveEffectsTime
|
||||||
@@ -40,7 +39,7 @@ Item {
|
|||||||
from: "visible"
|
from: "visible"
|
||||||
to: ""
|
to: ""
|
||||||
|
|
||||||
Modules.Anim {
|
Anim {
|
||||||
target: root
|
target: root
|
||||||
property: "implicitWidth"
|
property: "implicitWidth"
|
||||||
easing.bezierCurve: MaterialEasing.expressiveEffects
|
easing.bezierCurve: MaterialEasing.expressiveEffects
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import QtQuick
|
import QtQuick
|
||||||
import qs.Components
|
import qs.Components
|
||||||
import qs.Config
|
import qs.Config
|
||||||
import qs.Modules as Modules
|
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: root
|
id: root
|
||||||
@@ -23,7 +22,7 @@ Item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
transitions: Transition {
|
transitions: Transition {
|
||||||
Modules.Anim {
|
Anim {
|
||||||
target: root
|
target: root
|
||||||
property: "implicitHeight"
|
property: "implicitHeight"
|
||||||
duration: MaterialEasing.expressiveEffectsTime
|
duration: MaterialEasing.expressiveEffectsTime
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
import QtQuick
|
import QtQuick
|
||||||
import QtQuick.Shapes
|
import QtQuick.Shapes
|
||||||
import qs.Components
|
import qs.Components
|
||||||
import qs.Helpers
|
|
||||||
import qs.Config
|
import qs.Config
|
||||||
import qs.Modules as Modules
|
|
||||||
|
|
||||||
ShapePath {
|
ShapePath {
|
||||||
id: root
|
id: root
|
||||||
@@ -56,6 +54,6 @@ ShapePath {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Behavior on fillColor {
|
Behavior on fillColor {
|
||||||
Modules.CAnim {}
|
CAnim {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import qs.Components
|
|||||||
import qs.Helpers
|
import qs.Helpers
|
||||||
import qs.Config
|
import qs.Config
|
||||||
import qs.Daemons
|
import qs.Daemons
|
||||||
import qs.Modules as Modules
|
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: root
|
id: root
|
||||||
@@ -125,13 +124,13 @@ Item {
|
|||||||
visible: active
|
visible: active
|
||||||
|
|
||||||
Behavior on Layout.preferredHeight {
|
Behavior on Layout.preferredHeight {
|
||||||
Modules.Anim {
|
Anim {
|
||||||
easing.bezierCurve: Appearance.anim.curves.emphasized
|
easing.bezierCurve: Appearance.anim.curves.emphasized
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Behavior on opacity {
|
Behavior on opacity {
|
||||||
Modules.Anim {}
|
Anim {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import QtQuick
|
|||||||
import qs.Components
|
import qs.Components
|
||||||
import qs.Helpers
|
import qs.Helpers
|
||||||
import qs.Config
|
import qs.Config
|
||||||
import qs.Modules as Modules
|
|
||||||
import qs.Daemons
|
import qs.Daemons
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
@@ -54,7 +53,7 @@ Item {
|
|||||||
from: ""
|
from: ""
|
||||||
to: "visible"
|
to: "visible"
|
||||||
|
|
||||||
Modules.Anim {
|
Anim {
|
||||||
target: root
|
target: root
|
||||||
property: "implicitWidth"
|
property: "implicitWidth"
|
||||||
easing.bezierCurve: MaterialEasing.expressiveEffects
|
easing.bezierCurve: MaterialEasing.expressiveEffects
|
||||||
@@ -64,7 +63,7 @@ Item {
|
|||||||
from: "visible"
|
from: "visible"
|
||||||
to: ""
|
to: ""
|
||||||
|
|
||||||
Modules.Anim {
|
Anim {
|
||||||
target: root
|
target: root
|
||||||
property: "implicitWidth"
|
property: "implicitWidth"
|
||||||
easing.bezierCurve: MaterialEasing.expressiveEffects
|
easing.bezierCurve: MaterialEasing.expressiveEffects
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
import qs.Modules
|
|
||||||
import QtQuick
|
import QtQuick
|
||||||
import QtQuick.Layouts
|
import QtQuick.Layouts
|
||||||
import QtQuick.Shapes
|
import QtQuick.Shapes
|
||||||
import Quickshell
|
import qs.Components
|
||||||
import qs.Config
|
import qs.Config
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
|
|||||||
@@ -1,10 +1,7 @@
|
|||||||
import QtQuick.Layouts
|
import QtQuick.Layouts
|
||||||
import QtQuick.Effects
|
|
||||||
import QtQuick
|
import QtQuick
|
||||||
import Quickshell
|
import Quickshell
|
||||||
import Quickshell.Services.SystemTray
|
import Quickshell.Services.SystemTray
|
||||||
import Quickshell.Io
|
|
||||||
import Quickshell.Widgets
|
|
||||||
import qs.Modules
|
import qs.Modules
|
||||||
import qs.Components
|
import qs.Components
|
||||||
import qs.Config
|
import qs.Config
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
pragma ComponentBehavior: Bound
|
pragma ComponentBehavior: Bound
|
||||||
|
|
||||||
import Quickshell
|
import Quickshell
|
||||||
import Quickshell.DBusMenu
|
|
||||||
import QtQuick
|
import QtQuick
|
||||||
import QtQuick.Layouts
|
import QtQuick.Layouts
|
||||||
import Qt5Compat.GraphicalEffects
|
import Qt5Compat.GraphicalEffects
|
||||||
@@ -9,7 +8,6 @@ import Quickshell.Hyprland
|
|||||||
import QtQml
|
import QtQml
|
||||||
import qs.Effects
|
import qs.Effects
|
||||||
import qs.Config
|
import qs.Config
|
||||||
import qs.Modules
|
|
||||||
|
|
||||||
PanelWindow {
|
PanelWindow {
|
||||||
id: root
|
id: root
|
||||||
|
|||||||
@@ -1,11 +1,9 @@
|
|||||||
import Quickshell
|
|
||||||
import Quickshell.Services.UPower
|
import Quickshell.Services.UPower
|
||||||
import QtQuick
|
import QtQuick
|
||||||
import QtQuick.Layouts
|
import QtQuick.Layouts
|
||||||
import qs.Components
|
import qs.Components
|
||||||
import qs.Config
|
import qs.Config
|
||||||
import qs.Helpers as Helpers
|
import qs.Helpers as Helpers
|
||||||
import qs.Modules
|
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: root
|
id: root
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import QtQuick
|
import QtQuick
|
||||||
import QtQuick.Layouts
|
import QtQuick.Layouts
|
||||||
|
import qs.Components
|
||||||
import qs.Modules
|
import qs.Modules
|
||||||
import qs.Config
|
import qs.Config
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
pragma ComponentBehavior: Bound
|
pragma ComponentBehavior: Bound
|
||||||
|
|
||||||
import QtQuick
|
import QtQuick
|
||||||
|
import qs.Components
|
||||||
import qs.Helpers
|
import qs.Helpers
|
||||||
import qs.Config
|
import qs.Config
|
||||||
|
|
||||||
@@ -1,8 +1,6 @@
|
|||||||
import Quickshell
|
import Quickshell
|
||||||
import QtQuick
|
import QtQuick
|
||||||
import Quickshell.Wayland
|
import Quickshell.Wayland
|
||||||
import qs.Helpers
|
|
||||||
import qs.Modules
|
|
||||||
import qs.Config
|
import qs.Config
|
||||||
|
|
||||||
Loader {
|
Loader {
|
||||||
+1
-1
@@ -2,8 +2,8 @@ import Quickshell
|
|||||||
import Quickshell.Wayland
|
import Quickshell.Wayland
|
||||||
import Quickshell.Hyprland
|
import Quickshell.Hyprland
|
||||||
import QtQuick
|
import QtQuick
|
||||||
|
import qs.Components
|
||||||
import qs.Config
|
import qs.Config
|
||||||
import qs.Helpers
|
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: root
|
id: root
|
||||||
|
|||||||
@@ -3,7 +3,9 @@
|
|||||||
//@ pragma Env QS_NO_RELOAD_POPUP=1
|
//@ pragma Env QS_NO_RELOAD_POPUP=1
|
||||||
import Quickshell
|
import Quickshell
|
||||||
import qs.Modules
|
import qs.Modules
|
||||||
|
import qs.Modules.Wallpaper
|
||||||
import qs.Modules.Lock as Lock
|
import qs.Modules.Lock as Lock
|
||||||
|
import qs.Drawers
|
||||||
import qs.Helpers
|
import qs.Helpers
|
||||||
import qs.Modules.Polkit
|
import qs.Modules.Polkit
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user