aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md2
-rw-r--r--hypr/hyprland/keybinds.conf2
-rwxr-xr-xhypr/wf-recorder/record.sh9
-rw-r--r--nixos/environment.nix1
-rw-r--r--quickshell/Calendar.qml150
-rw-r--r--quickshell/shell.qml56
6 files changed, 21 insertions, 199 deletions
diff --git a/README.md b/README.md
index a3d420b..7007098 100644
--- a/README.md
+++ b/README.md
@@ -94,6 +94,8 @@ IF YOU ARE NOT LEFT HANDED, change this in hypr/hyprland/input.conf:input:left_h
|Win + Q|Kill active window|
|Win + Shift + L|Sign out|
|Win + L|Lock|
+|Win + D|DnD/Privacy Mode (No notifications, Wifi & Bluetooth names hidden, No blink reminder)|
+|Win + Shift + D|Super DnD Mode (Hide navbar)|
|Win + E|Spawn File Explorer (yazi)|
|Win + F|Make active window floating|
|Win + R|**Spawn App Menu**|
diff --git a/hypr/hyprland/keybinds.conf b/hypr/hyprland/keybinds.conf
index b7a0245..dda7ddf 100644
--- a/hypr/hyprland/keybinds.conf
+++ b/hypr/hyprland/keybinds.conf
@@ -9,7 +9,7 @@ bind = $mainMod, L, exec, hyprlock
bind = $mainMod, E, exec, $fileManager
bind = $mainMod, F, togglefloating,
bind = $mainMod, R, global, quickshell:toggleLauncher
-bind = $mainMod, C, global, quickshell:toggleCalendar
+bind = $mainMod SHIFT, D, global, quickshell:toggleBar
bind = $mainMod, D, global, quickshell:toggleDnd
bind = $mainMod, P, exec, hyprpicker
bind = $mainMod, J, layoutmsg, togglesplit
diff --git a/hypr/wf-recorder/record.sh b/hypr/wf-recorder/record.sh
index 1c174d5..c828fee 100755
--- a/hypr/wf-recorder/record.sh
+++ b/hypr/wf-recorder/record.sh
@@ -4,10 +4,15 @@
if pgrep -x wf-recorder > /dev/null
then
# If recording, stop it
- notify-send -h string:wf-recorder:record -t 1000 "Recording Stopped" && pkill wf-recorder
+ notify-send -h string:wf-recorder:record -t 1000 "Recording Stopped"
+ pkill wf-recorder
else
# If not recording, start it
mkdir -p ~/Videos
mkdir -p ~/Videos/Screencasts/
- notify-send -h string:wf-recorder:record -t 1000 "Recording Started" && wf-recorder -f ~/Videos/Screencasts/$(date '+%H%M%S-%d-%m-%Y').mp4
+ notify-send -h string:wf-recorder:record -t 1000 "Recording Started"
+ wf-recorder \
+ -f ~/Videos/Screencasts/$(date '+%H%M%S-%d-%m-%Y').mp4 \
+ --audio --audio-device alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__HDMI3__sink.monitor
+
fi
diff --git a/nixos/environment.nix b/nixos/environment.nix
index 27182d6..9ab3d7e 100644
--- a/nixos/environment.nix
+++ b/nixos/environment.nix
@@ -74,6 +74,7 @@
ffmpeg
mpv
jq
+ when
termshark
mitmproxy
diff --git a/quickshell/Calendar.qml b/quickshell/Calendar.qml
deleted file mode 100644
index 1ad3c15..0000000
--- a/quickshell/Calendar.qml
+++ /dev/null
@@ -1,150 +0,0 @@
-import QtQuick
-import QtQuick.Layouts
-import Quickshell
-import Quickshell.Io
-
-Rectangle {
- id: calendarRoot
-
- color: shellRoot.black
- antialiasing: true
- focus: true
-
- property bool isVisible: false
- property int monthOffset: 0
-
- signal requestClose()
- Keys.onEscapePressed: {
- monthOffset = 0;
- requestClose()
- }
- Keys.onPressed: (event) => {
- if (event.key == Qt.Key_Comma) {
- monthOffset--;
- } else if (event.key == Qt.Key_Period) {
- monthOffset++;
- }
- }
-
- Column {
- anchors.fill: parent
- spacing: 1
- Rectangle {
- width: parent.width
- height: parent.height
- color: shellRoot.black
-
- Column {
- anchors.fill: parent
- anchors.margins: 5
- spacing: 6
-
- RowLayout {
- width: parent.width
- Text {
- text: " <"
- font.pixelSize: 20
- font.family: shellRoot.fontFamily
- color: shellRoot.white
- MouseArea {
- anchors.fill: parent
- onClicked: monthOffset--;
- }
- }
- Item { Layout.fillWidth: true }
- Text {
- text: {
- const now = new Date()
- const monthNames = ["January", "February", "March", "April", "May", "June",
- "July", "August", "September", "October", "November", "December"]
- let shiftedMonth = now.getMonth() + monthOffset;
- let year = now.getFullYear();
- year += Math.floor(shiftedMonth / 12);
- shiftedMonth %= 12;
- return monthNames[shiftedMonth] + " " + year
- }
- font.family: shellRoot.fontFamily
- font.pixelSize: 20
- font.weight: Font.Medium
- color: shellRoot.white
- horizontalAlignment: Text.AlignHCenter
- }
- Item { Layout.fillWidth: true }
- Text {
- text: "> "
- font.pixelSize: 20
- font.family: shellRoot.fontFamily
- color: shellRoot.white
- MouseArea {
- anchors.fill: parent
- onClicked: monthOffset++;
- }
- }
- }
- Grid {
- width: parent.width
- columns: 7
- columnSpacing: 1
- rowSpacing: 1
-
- Repeater {
- model: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"]
-
- Text {
- text: modelData
- font.family: shellRoot.fontFamily
- font.pixelSize: 15
- font.weight: Font.Medium
- color: shellRoot.white
- width: 50
- height: 20
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- }
- }
- Repeater {
- model: 35
-
- Rectangle {
- width: 60
- height: 60
-
- property var now: new Date()
- property int currentDay: now.getDate()
- property int currentMonth: (now.getMonth() + monthOffset) % 12
- property int currentYear: now.getFullYear() + Math.floor((now.getMonth() + monthOffset) / 12)
-
- // Calculate what day this cell represents
- property var firstDay: new Date(currentYear, currentMonth, 1)
- property int startOffset: firstDay.getDay() // 0 = Sunday
- property int dayNumber: index - startOffset + 1
- property var lastDay: new Date(currentYear, currentMonth + 1, 0)
- property int daysInMonth: lastDay.getDate()
- property bool isCurrentDay: dayNumber === currentDay
- property bool isValidDay: dayNumber >= 1 && dayNumber <= daysInMonth
-
- color: {
- if (!isValidDay) return "transparent"
- if (monthOffset == 0 && isCurrentDay) return shellRoot.green
- return shellRoot.gray
- }
-
- Text {
- anchors.centerIn: parent
- text: parent.isValidDay ? parent.dayNumber : ""
- font.family: shellRoot.fontFamily
- font.pixelSize: 20
- color: {
- if (parent.isValidDay && parent.isCurrentDay) return shellRoot.white
- if (!parent.isValidDay) return shellRoot.white
- return shellRoot.white
- }
- font.weight: parent.isValidDay && parent.isCurrentDay ? Font.DemiBold : Font.Normal
- }
- }
- }
- }
- }
- }
- }
-}
diff --git a/quickshell/shell.qml b/quickshell/shell.qml
index 3ed0161..2396ea8 100644
--- a/quickshell/shell.qml
+++ b/quickshell/shell.qml
@@ -25,23 +25,24 @@ ShellRoot {
property int fontSize: 18
property bool appLauncherVisible: false
+ property bool barVisible: true
property bool calendarVisible: false
property bool dnd: false
property bool batteryInfo: false
property bool blink: false
GlobalShortcut {
- id: launcherShortcut
- name: "toggleLauncher"
+ id: barShortcut
+ name: "toggleBar"
onPressed: {
- appLauncherVisible = true
+ barVisible = !barVisible
}
}
GlobalShortcut {
- id: calendarShortcut
- name: "toggleCalendar"
+ id: launcherShortcut
+ name: "toggleLauncher"
onPressed: {
- calendarVisible = true
+ appLauncherVisible = !appLauncherVisible
}
}
GlobalShortcut {
@@ -56,6 +57,8 @@ ShellRoot {
model: Quickshell.screens
PanelWindow {
id: root
+ // don't render this if shell.navVisible is false
+ visible: shellRoot.barVisible
property int cpuUsage: 0
property int lastCpuTotal: 0
@@ -95,6 +98,7 @@ ShellRoot {
anchors.leftMargin: 10
anchors.rightMargin: 10
+
Workspace {}
Item { Layout.fillWidth: true }
Radio {}
@@ -153,46 +157,6 @@ ShellRoot {
model: Quickshell.screens
PanelWindow {
- visible: shellRoot.calendarVisible
-
- anchors {
- top: true
- left: true
- }
-
- margins {
- top: 5
- left: Screen.width - 435 - 5
- }
-
- implicitWidth: 435
- implicitHeight: 370
-
- color: "transparent"
- exclusiveZone: 0
-
- WlrLayershell.layer: WlrLayer.Overlay
- WlrLayershell.keyboardFocus: WlrKeyboardFocus.OnDemand
-
- Behavior on height {
- NumberAnimation { duration: 200; easing.type: Easing.OutCubic }
- }
-
- Calendar {
- anchors.fill: parent
- isVisible: shellRoot.calendarVisible
-
- onRequestClose: {
- shellRoot.calendarVisible = false
- }
- }
- }
- }
-
- Variants {
- model: Quickshell.screens
-
- PanelWindow {
visible: shellRoot.batteryInfo
anchors {