diff --git a/.config/hypr/hyprland/keybinds.conf b/.config/hypr/hyprland/keybinds.conf
index 3bfe2104..2dc2df7c 100644
--- a/.config/hypr/hyprland/keybinds.conf
+++ b/.config/hypr/hyprland/keybinds.conf
@@ -160,21 +160,27 @@ bind = Alt, Tab, bringactivetotop, # [hidden] bring it to the top
bindr = Ctrl+Super, R, exec, killall ags agsv1 gjs ydotool; agsv1 & # Restart widgets
bindr = Ctrl+Super+Alt, R, exec, hyprctl reload; killall agsv1 ydotool; agsv1 & # [hidden]
bind = Ctrl+Alt, Slash, exec, agsv1 run-js 'cycleMode();' # Cycle bar mode (normal, focus)
-bindir = Super, Super_L, exec, qs ipc call overview toggle || agsv1 -t 'overview' # Toggle overview/launcher
-bind = Super, Tab, exec, qs ipc call overview toggle || agsv1 -t 'overview' # [hidden]
+bindr = Super, Super_L, exec, qs ipc call overview toggle || agsv1 -t 'overview' # Toggle overview/launcher
+# bind = Super, Tab, exec, qs ipc call overview toggle || agsv1 -t 'overview' # [hidden]
bind = Super, Slash, exec, for ((i=0; i<$(hyprctl monitors -j | jq length); i++)); do agsv1 -t "cheatsheet""$i"; done # Show cheatsheet
bind = Super, B, exec, qs ipc call sidebarLeft toggle || agsv1 -t 'sideleft' # Toggle left sidebar
bind = Super, A, exec, qs ipc call sidebarLeft toggle || agsv1 -t 'sideleft' # [hidden]
bind = Super, O, exec, qs ipc call sidebarLeft toggle || agsv1 -t 'sideleft' # [hidden]
-bind = Super, N, exec, qs ipc call sidebarRight toggle || agsv1 -t 'sideright' # Toggle right sidebar
+# bind = Super, N, exec, qs ipc call sidebarRight toggle || agsv1 -t 'sideright' # Toggle right sidebar
bind = Super, M, exec, agsv1 run-js 'openMusicControls.value = (!mpris.getPlayer() ? false : !openMusicControls.value);' # Toggle music controls
bind = Super, Comma, exec, agsv1 run-js 'openColorScheme.value = true; Utils.timeout(2000, () => openColorScheme.value = false);' # View color scheme and options
bind = Super, K, exec, for ((i=0; i<$(hyprctl monitors -j | jq length); i++)); do agsv1 -t "osk""$i"; done # Toggle on-screen keyboard
-bind = Ctrl+Alt, Delete, exec, qs ipc call session toggle || for ((i=0; i<$(hyprctl monitors -j | jq length); i++)); do agsv1 -t "session""$i"; done # Toggle power menu
+# bind = Ctrl+Alt, Delete, exec, qs ipc call session toggle || for ((i=0; i<$(hyprctl monitors -j | jq length); i++)); do agsv1 -t "session""$i"; done # Toggle power menu
bind = Ctrl+Super, G, exec, for ((i=0; i<$(hyprctl monitors -j | jq length); i++)); do agsv1 -t "crosshair""$i"; done # Toggle crosshair
bindle=, XF86MonBrightnessUp, exec, qs ipc call brightness increment || agsv1 run-js 'brightness.screen_value += 0.05; indicator.popup(1);' # [hidden]
bindle=, XF86MonBrightnessDown, exec, qs ipc call brightness decrement || agsv1 run-js 'brightness.screen_value -= 0.05; indicator.popup(1);' # [hidden]
+# bind = Super, Super_L, global, quickshell:overviewToggleRelease
+bindit = ,Super_L, global, quickshell:workspaceNumber
+bind = Super, Tab, global, quickshell:overviewToggle
+bind = Super, N, global, quickshell:sidebarRightToggle
+bind = Ctrl+Alt, Delete, global, quickshell:sessionToggle
+
# Testing
bind = Super+Alt, f11, exec, bash -c 'RANDOM_IMAGE=$(find ~/Pictures -type f | grep -v -i "nipple" | grep -v -i "pussy" | shuf -n 1); ACTION=$(notify-send "Test notification with body image" "This notification should contain your user account image and Discord icon. Oh and here is a random image in your Pictures folder:
" -p -h "string:image-path:/var/lib/AccountsService/icons/$USER" -t 6000 -i "discord" -A "openImage=Open profile image" -A "action2=Open the random image" -A "action3=Useless button"); [[ $ACTION == *openImage ]] && xdg-open "/var/lib/AccountsService/icons/$USER"; [[ $ACTION == *action2 ]] && xdg-open \"$RANDOM_IMAGE\"' # [hidden]
bind = Super+Alt, f12, exec, bash -c 'ACTION=$(notify-send "Test notification" "This notification should contain your user account image and Discord icon.\nFlick right to dismiss!" -p -h "string:image-path:/var/lib/AccountsService/icons/$USER" -t 6000 -i "discord" -A "openImage=Open profile image" -A "action2=Useless button" -A "action3=Cry more"); [[ $ACTION == *openImage ]] && xdg-open "/var/lib/AccountsService/icons/$USER"; [[ $ACTION == *action2 ]] && xdg-open \"$RANDOM_IMAGE\"' # [hidden]
@@ -214,3 +220,5 @@ bind = Super+Alt, Slash, exec, pkill fuzzel || fuzzel # Toggle fallback launcher
bind = Ctrl+Super, Backslash, resizeactive, exact 640 480 # [hidden]
+
+
diff --git a/.config/quickshell/GlobalStates.qml b/.config/quickshell/GlobalStates.qml
index 674d586c..dffb7f4b 100644
--- a/.config/quickshell/GlobalStates.qml
+++ b/.config/quickshell/GlobalStates.qml
@@ -1,9 +1,37 @@
+import "root:/modules/common/"
import QtQuick
import Quickshell
+import Quickshell.Hyprland
+import Quickshell.Io
pragma Singleton
pragma ComponentBehavior: Bound
Singleton {
+ id: root
property int sidebarRightOpenCount: 0
property bool overviewOpen: false
+ property bool workspaceShowNumbers: false
+
+ Timer {
+ id: workspaceShowNumbersTimer
+ interval: ConfigOptions.bar.workspaces.showNumberDelay
+ // interval: 0
+ repeat: false
+ onTriggered: {
+ workspaceShowNumbers = true
+ }
+ }
+
+ GlobalShortcut {
+ name: "workspaceNumber"
+ description: "Hold to show workspace numbers, release to show icons"
+
+ onPressed: {
+ workspaceShowNumbersTimer.start()
+ }
+ onReleased: {
+ workspaceShowNumbersTimer.stop()
+ workspaceShowNumbers = false
+ }
+ }
}
\ No newline at end of file
diff --git a/.config/quickshell/modules/bar/SysTrayItem.qml b/.config/quickshell/modules/bar/SysTrayItem.qml
index c0c2e6ba..70804a17 100644
--- a/.config/quickshell/modules/bar/SysTrayItem.qml
+++ b/.config/quickshell/modules/bar/SysTrayItem.qml
@@ -1,8 +1,10 @@
+import "root:/modules/common/"
import QtQuick
import QtQuick.Layouts
import Quickshell
import Quickshell.Services.SystemTray
import Quickshell.Widgets
+import Qt5Compat.GraphicalEffects
MouseArea {
id: root
@@ -21,9 +23,9 @@ MouseArea {
item.activate();
break;
case Qt.RightButton:
- if (item.hasMenu)
- menu.open();
-
+ if (item.hasMenu) menu.open();
+ event.accepted = true;
+ break;
}
}
@@ -39,10 +41,17 @@ MouseArea {
}
IconImage {
+ id: trayIcon
source: root.item.icon
anchors.centerIn: parent
width: parent.width
height: parent.height
}
+ ColorOverlay {
+ anchors.fill: trayIcon
+ source: trayIcon
+ color: Appearance.colors.colOnLayer0
+ }
+
}
diff --git a/.config/quickshell/modules/bar/Workspaces.qml b/.config/quickshell/modules/bar/Workspaces.qml
index f1311ec7..f2722cf7 100644
--- a/.config/quickshell/modules/bar/Workspaces.qml
+++ b/.config/quickshell/modules/bar/Workspaces.qml
@@ -1,5 +1,8 @@
+import "root:/"
+import "root:/services/"
import "root:/modules/common"
import "root:/modules/common/widgets"
+import "root:/modules/common/functions/icons.js" as Icons
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
@@ -7,18 +10,21 @@ import Quickshell
import Quickshell.Wayland
import Quickshell.Hyprland
import Quickshell.Io
+import Quickshell.Widgets
+import Qt5Compat.GraphicalEffects
Item {
required property var bar
readonly property HyprlandMonitor monitor: Hyprland.monitorFor(bar.screen)
readonly property Toplevel activeWindow: ToplevelManager.activeToplevel
- readonly property int workspaceGroup: Math.floor((monitor.activeWorkspace?.id - 1) / ConfigOptions.bar.workspacesShown)
+ readonly property int workspaceGroup: Math.floor((monitor.activeWorkspace?.id - 1) / ConfigOptions.bar.workspaces.shown)
property list workspaceOccupied: []
property int widgetPadding: 4
property int workspaceButtonWidth: 26
+ property int workspaceIconSize: workspaceButtonWidth * 0.8
property int activeWorkspaceMargin: 1
- property double animatedActiveWorkspaceIndex: (monitor.activeWorkspace?.id - 1) % ConfigOptions.bar.workspacesShown
+ property double animatedActiveWorkspaceIndex: (monitor.activeWorkspace?.id - 1) % ConfigOptions.bar.workspaces.shown
Behavior on animatedActiveWorkspaceIndex {
NumberAnimation {
@@ -30,8 +36,8 @@ Item {
// Function to update workspaceOccupied
function updateWorkspaceOccupied() {
- workspaceOccupied = Array.from({ length: ConfigOptions.bar.workspacesShown }, (_, i) => {
- return Hyprland.workspaces.values.some(ws => ws.id === workspaceGroup * ConfigOptions.bar.workspacesShown + i + 1);
+ workspaceOccupied = Array.from({ length: ConfigOptions.bar.workspaces.shown }, (_, i) => {
+ return Hyprland.workspaces.values.some(ws => ws.id === workspaceGroup * ConfigOptions.bar.workspaces.shown + i + 1);
})
}
@@ -91,7 +97,7 @@ Item {
implicitHeight: 40
Repeater {
- model: ConfigOptions.bar.workspacesShown
+ model: ConfigOptions.bar.workspaces.shown
Rectangle {
z: 1
@@ -156,7 +162,7 @@ Item {
implicitHeight: 40
Repeater {
- model: ConfigOptions.bar.workspacesShown
+ model: ConfigOptions.bar.workspaces.shown
Button {
id: button
@@ -165,19 +171,31 @@ Item {
width: workspaceButtonWidth
background: Item {
+ id: workspaceButtonBackground
implicitWidth: workspaceButtonWidth
implicitHeight: workspaceButtonWidth
+ property int workspaceValue: workspaceGroup * ConfigOptions.bar.workspaces.shown + index + 1
+ property var biggestWindow: {
+ const windowsInThisWorkspace = HyprlandData.windowList.filter(w => w.workspace.id == workspaceButtonBackground.workspaceValue)
+ return windowsInThisWorkspace.reduce((maxWin, win) => {
+ const maxArea = (maxWin?.size?.[0] ?? 0) * (maxWin?.size?.[1] ?? 0)
+ const winArea = (win?.size?.[0] ?? 0) * (win?.size?.[1] ?? 0)
+ return winArea > maxArea ? win : maxWin
+ }, null)
+ }
+ property var mainAppIconSource: Quickshell.iconPath(Icons.noKnowledgeIconGuess(biggestWindow?.class))
+
StyledText {
+ opacity: (ConfigOptions.bar.workspaces.alwaysShowNumbers || GlobalStates.workspaceShowNumbers || !workspaceButtonBackground.biggestWindow) ? 1 : 0
z: 3
- property int workspaceValue: workspaceGroup * ConfigOptions.bar.workspacesShown + index + 1
anchors.centerIn: parent
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
font.pixelSize: Appearance.font.pixelSize.small - ((text.length - 1) * (text !== "10") * 2)
- text: `${workspaceValue}`
+ text: `${workspaceButtonBackground.workspaceValue}`
elide: Text.ElideRight
- color: (monitor.activeWorkspace?.id == workspaceValue) ? Appearance.m3colors.m3onPrimary : (workspaceOccupied[index] ? Appearance.colors.colOnLayer1 : Appearance.colors.colOnLayer1Inactive)
+ color: (monitor.activeWorkspace?.id == workspaceButtonBackground.workspaceValue) ? Appearance.m3colors.m3onPrimary : (workspaceOccupied[index] ? Appearance.colors.colOnLayer1 : Appearance.colors.colOnLayer1Inactive)
Behavior on color {
ColorAnimation {
@@ -187,6 +205,27 @@ Item {
}
+ Behavior on opacity {
+ NumberAnimation {
+ duration: Appearance.animation.elementDecelFast.duration
+ easing.type: Appearance.animation.elementDecelFast.type
+ }
+ }
+
+ }
+ IconImage {
+ id: mainAppIcon
+ opacity: (workspaceButtonBackground.biggestWindow && !GlobalStates.workspaceShowNumbers && !ConfigOptions.bar.workspaces.alwaysShowNumbers) ? 1 : 0
+ source: workspaceButtonBackground.mainAppIconSource
+ anchors.centerIn: parent
+ implicitSize: workspaceIconSize
+
+ Behavior on opacity {
+ NumberAnimation {
+ duration: Appearance.animation.elementDecelFast.duration
+ easing.type: Appearance.animation.elementDecelFast.type
+ }
+ }
}
}
diff --git a/.config/quickshell/modules/common/Appearance.qml b/.config/quickshell/modules/common/Appearance.qml
index fecdfb8e..cbb54071 100644
--- a/.config/quickshell/modules/common/Appearance.qml
+++ b/.config/quickshell/modules/common/Appearance.qml
@@ -26,64 +26,64 @@ Singleton {
m3colors: QtObject {
property bool darkmode: false
property bool transparent: false
- property color m3primary_paletteKeyColor: "#8A7175"
- property color m3secondary_paletteKeyColor: "#847376"
- property color m3tertiary_paletteKeyColor: "#8F6E74"
- property color m3neutral_paletteKeyColor: "#7B7676"
- property color m3neutral_variant_paletteKeyColor: "#7B7676"
- property color m3background: "#FFF8F7"
- property color m3onBackground: "#1E1B1B"
- property color m3surface: "#FFF8F7"
- property color m3surfaceDim: "#E0D8D8"
- property color m3surfaceBright: "#FFF8F7"
- property color m3surfaceContainerLowest: "#FFFFFF"
- property color m3surfaceContainerLow: "#FAF2F2"
- property color m3surfaceContainer: "#F4ECEC"
- property color m3surfaceContainerHigh: "#EEE6E6"
- property color m3surfaceContainerHighest: "#E8E1E1"
- property color m3onSurface: "#1E1B1B"
- property color m3surfaceVariant: "#E8E1E1"
- property color m3onSurfaceVariant: "#4A4646"
- property color m3inverseSurface: "#332F30"
- property color m3inverseOnSurface: "#F7EFEF"
- property color m3outline: "#797373"
- property color m3outlineVariant: "#CCC5C5"
+ property color m3primary_paletteKeyColor: "#91689E"
+ property color m3secondary_paletteKeyColor: "#837186"
+ property color m3tertiary_paletteKeyColor: "#9D6A67"
+ property color m3neutral_paletteKeyColor: "#7C757B"
+ property color m3neutral_variant_paletteKeyColor: "#7D747D"
+ property color m3background: "#161217"
+ property color m3onBackground: "#EAE0E7"
+ property color m3surface: "#161217"
+ property color m3surfaceDim: "#161217"
+ property color m3surfaceBright: "#3D373D"
+ property color m3surfaceContainerLowest: "#110D12"
+ property color m3surfaceContainerLow: "#1F1A1F"
+ property color m3surfaceContainer: "#231E23"
+ property color m3surfaceContainerHigh: "#2D282E"
+ property color m3surfaceContainerHighest: "#383339"
+ property color m3onSurface: "#EAE0E7"
+ property color m3surfaceVariant: "#4C444D"
+ property color m3onSurfaceVariant: "#CFC3CD"
+ property color m3inverseSurface: "#EAE0E7"
+ property color m3inverseOnSurface: "#342F34"
+ property color m3outline: "#988E97"
+ property color m3outlineVariant: "#4C444D"
property color m3shadow: "#000000"
property color m3scrim: "#000000"
- property color m3surfaceTint: "#70585D"
- property color m3primary: "#70585D"
- property color m3onPrimary: "#FFFFFF"
- property color m3primaryContainer: "#FADBE0"
- property color m3onPrimaryContainer: "#564145"
- property color m3inversePrimary: "#DDBFC4"
- property color m3secondary: "#6A5A5D"
- property color m3onSecondary: "#FFFFFF"
- property color m3secondaryContainer: "#F3DDE0"
- property color m3onSecondaryContainer: "#524346"
- property color m3tertiary: "#8D6C72"
- property color m3onTertiary: "#FFFFFF"
- property color m3tertiaryContainer: "#8D6C72"
- property color m3onTertiaryContainer: "#FFFFFF"
- property color m3error: "#BA1A1A"
- property color m3onError: "#FFFFFF"
- property color m3errorContainer: "#FFDAD6"
- property color m3onErrorContainer: "#93000A"
- property color m3primaryFixed: "#FADBE0"
- property color m3primaryFixedDim: "#DDBFC4"
- property color m3onPrimaryFixed: "#28171A"
- property color m3onPrimaryFixedVariant: "#564145"
- property color m3secondaryFixed: "#F3DDE0"
- property color m3secondaryFixedDim: "#D6C2C4"
- property color m3onSecondaryFixed: "#24191B"
- property color m3onSecondaryFixedVariant: "#524346"
- property color m3tertiaryFixed: "#FFD9DF"
- property color m3tertiaryFixedDim: "#E4BDC3"
- property color m3onTertiaryFixed: "#2B151A"
- property color m3onTertiaryFixedVariant: "#5B3F45"
- property color m3success: "#4F6354"
- property color m3onSuccess: "#FFFFFF"
- property color m3successContainer: "#D1E8D5"
- property color m3onSuccessContainer: "#0C1F13"
+ property color m3surfaceTint: "#E5B6F2"
+ property color m3primary: "#E5B6F2"
+ property color m3onPrimary: "#452152"
+ property color m3primaryContainer: "#5D386A"
+ property color m3onPrimaryContainer: "#F9D8FF"
+ property color m3inversePrimary: "#775084"
+ property color m3secondary: "#D5C0D7"
+ property color m3onSecondary: "#392C3D"
+ property color m3secondaryContainer: "#534457"
+ property color m3onSecondaryContainer: "#F2DCF3"
+ property color m3tertiary: "#F5B7B3"
+ property color m3onTertiary: "#4C2523"
+ property color m3tertiaryContainer: "#BA837F"
+ property color m3onTertiaryContainer: "#000000"
+ property color m3error: "#FFB4AB"
+ property color m3onError: "#690005"
+ property color m3errorContainer: "#93000A"
+ property color m3onErrorContainer: "#FFDAD6"
+ property color m3primaryFixed: "#F9D8FF"
+ property color m3primaryFixedDim: "#E5B6F2"
+ property color m3onPrimaryFixed: "#2E0A3C"
+ property color m3onPrimaryFixedVariant: "#5D386A"
+ property color m3secondaryFixed: "#F2DCF3"
+ property color m3secondaryFixedDim: "#D5C0D7"
+ property color m3onSecondaryFixed: "#241727"
+ property color m3onSecondaryFixedVariant: "#514254"
+ property color m3tertiaryFixed: "#FFDAD7"
+ property color m3tertiaryFixedDim: "#F5B7B3"
+ property color m3onTertiaryFixed: "#331110"
+ property color m3onTertiaryFixedVariant: "#663B39"
+ property color m3success: "#B5CCBA"
+ property color m3onSuccess: "#213528"
+ property color m3successContainer: "#374B3E"
+ property color m3onSuccessContainer: "#D1E9D6"
property color term0: "#EDE4E4"
property color term1: "#B52755"
property color term2: "#A97363"
diff --git a/.config/quickshell/modules/common/ConfigOptions.qml b/.config/quickshell/modules/common/ConfigOptions.qml
index 2dff5bf6..19a374d1 100644
--- a/.config/quickshell/modules/common/ConfigOptions.qml
+++ b/.config/quickshell/modules/common/ConfigOptions.qml
@@ -18,12 +18,16 @@ Singleton {
}
property QtObject bar: QtObject {
- property int workspacesShown: 10
property int batteryLowThreshold: 20
property QtObject resources: QtObject {
property bool alwaysShowSwap: true
property bool alwaysShowCpu: false
}
+ property QtObject workspaces: QtObject {
+ property int shown: 10
+ property bool alwaysShowNumbers: false
+ property int showNumberDelay: 150 // milliseconds
+ }
}
property QtObject osd: QtObject {
diff --git a/.config/quickshell/modules/overview/icons.js b/.config/quickshell/modules/common/functions/icons.js
similarity index 100%
rename from .config/quickshell/modules/overview/icons.js
rename to .config/quickshell/modules/common/functions/icons.js
diff --git a/.config/quickshell/modules/common/widgets/NotificationWidget.qml b/.config/quickshell/modules/common/widgets/NotificationWidget.qml
index 6ce56605..095653d7 100644
--- a/.config/quickshell/modules/common/widgets/NotificationWidget.qml
+++ b/.config/quickshell/modules/common/widgets/NotificationWidget.qml
@@ -25,7 +25,7 @@ Item {
Process {
id: closeSidebarProcess
- command: ["bash", "-c", `qs ipc call sidebarRight close`]
+ command: ["qs", "ipc", "call", "sidebarRight", "close"]
}
Process {
diff --git a/.config/quickshell/modules/overview/Overview.qml b/.config/quickshell/modules/overview/Overview.qml
index 7a759916..c12143f5 100644
--- a/.config/quickshell/modules/overview/Overview.qml
+++ b/.config/quickshell/modules/overview/Overview.qml
@@ -113,4 +113,21 @@ Scope {
}
}
+ GlobalShortcut {
+ name: "overviewToggle"
+ description: "Toggles overview on press"
+
+ onPressed: {
+ GlobalStates.overviewOpen = !GlobalStates.overviewOpen
+ }
+ }
+ GlobalShortcut {
+ name: "overviewToggleRelease"
+ description: "Toggles overview on release"
+
+ onReleased: {
+ GlobalStates.overviewOpen = !GlobalStates.overviewOpen
+ }
+ }
+
}
diff --git a/.config/quickshell/modules/overview/OverviewWidget.qml b/.config/quickshell/modules/overview/OverviewWidget.qml
index 636564b1..b1db1ec5 100644
--- a/.config/quickshell/modules/overview/OverviewWidget.qml
+++ b/.config/quickshell/modules/overview/OverviewWidget.qml
@@ -9,7 +9,6 @@ import Quickshell.Io
import Quickshell.Widgets
import Quickshell.Wayland
import Quickshell.Hyprland
-import "./icons.js" as Icons
Item {
id: root
@@ -128,7 +127,7 @@ Item {
Repeater { // Window repeater
model: windowAddresses.filter((address) => {
var win = windowByAddress[address]
- return (root.workspaceGroup * root.workspacesShown < win.workspace.id && win.workspace.id <= (root.workspaceGroup + 1) * root.workspacesShown)
+ return (root.workspaceGroup * root.workspacesShown < win?.workspace?.id && win?.workspace?.id <= (root.workspaceGroup + 1) * root.workspacesShown)
})
delegate: OverviewWindow {
id: window
diff --git a/.config/quickshell/modules/overview/OverviewWindow.qml b/.config/quickshell/modules/overview/OverviewWindow.qml
index 13343342..d44a4c9f 100644
--- a/.config/quickshell/modules/overview/OverviewWindow.qml
+++ b/.config/quickshell/modules/overview/OverviewWindow.qml
@@ -1,3 +1,4 @@
+import "root:/modules/common/functions/icons.js" as Icons
import "root:/services/"
import "root:/modules/common"
import "root:/modules/common/widgets"
@@ -8,7 +9,6 @@ import Quickshell
import Quickshell.Widgets
import Quickshell.Io
import Quickshell.Hyprland
-import "./icons.js" as Icons
Rectangle { // Window
id: root
diff --git a/.config/quickshell/modules/session/Session.qml b/.config/quickshell/modules/session/Session.qml
index 947f44b1..07bcf26a 100644
--- a/.config/quickshell/modules/session/Session.qml
+++ b/.config/quickshell/modules/session/Session.qml
@@ -287,4 +287,18 @@ Scope {
}
}
+ GlobalShortcut {
+ name: "sessionToggle"
+ description: "Toggles session screen on press"
+
+ onPressed: {
+ for (let i = 0; i < sessionVariants.instances.length; i++) {
+ let panelWindow = sessionVariants.instances[i];
+ if (panelWindow.modelData.name == Hyprland.focusedMonitor.name) {
+ panelWindow.visible = !panelWindow.visible;
+ }
+ }
+ }
+ }
+
}
diff --git a/.config/quickshell/modules/sidebarRight/SidebarRight.qml b/.config/quickshell/modules/sidebarRight/SidebarRight.qml
index f5b6472e..cc291703 100644
--- a/.config/quickshell/modules/sidebarRight/SidebarRight.qml
+++ b/.config/quickshell/modules/sidebarRight/SidebarRight.qml
@@ -99,11 +99,21 @@ Scope {
Layout.topMargin: 5
Layout.bottomMargin: 0
- // CustomIcon {
- // width: 25
- // height: 25
- // source: SystemInfo.distroIcon
- // }
+ Item {
+ implicitWidth: distroIcon.width
+ implicitHeight: distroIcon.height
+ CustomIcon {
+ id: distroIcon
+ width: 25
+ height: 25
+ source: SystemInfo.distroIcon
+ }
+ ColorOverlay {
+ anchors.fill: distroIcon
+ source: distroIcon
+ color: Appearance.colors.colOnLayer0
+ }
+ }
StyledText {
font.pixelSize: Appearance.font.pixelSize.normal
@@ -221,4 +231,19 @@ Scope {
}
}
+ GlobalShortcut {
+ name: "sidebarRightToggle"
+ description: "Toggles right sidebar on press"
+
+ onPressed: {
+ for (let i = 0; i < sidebarVariants.instances.length; i++) {
+ let panelWindow = sidebarVariants.instances[i];
+ if (panelWindow.modelData.name == Hyprland.focusedMonitor.name) {
+ panelWindow.visible = !panelWindow.visible;
+ if(panelWindow.visible) Notifications.timeoutAll();
+ }
+ }
+ }
+ }
+
}
diff --git a/.config/quickshell/shell.qml b/.config/quickshell/shell.qml
index e6ca2179..72cf366a 100644
--- a/.config/quickshell/shell.qml
+++ b/.config/quickshell/shell.qml
@@ -16,7 +16,6 @@ import "./services/"
ShellRoot {
Component.onCompleted: {
- console.log("ShellRoot loaded")
MaterialTheme.reapplyTheme()
}