nixos-dotfiles
nixos-dotfiles
https://git.tonybtw.com/nixos-dotfiles.git
git://git.tonybtw.com/nixos-dotfiles.git
Initial commit.
Diff
diff --git a/Dashboard.qml b/Dashboard.qml
new file mode 100644
index 0000000..3e1dc6e
--- /dev/null
+++ b/Dashboard.qml
@@ -0,0 +1,354 @@
+import Quickshell
+import Quickshell.Wayland
+import QtQuick
+import QtQuick.Layouts
+
+Variants {
+ model: Quickshell.screens
+ FloatingWindow {
+ property var modelData
+ screen: modelData
+ visible: true
+ width: 400
+ height: 800
+
+ color: "transparent"
+
+ Rectangle {
+ anchors.fill: parent
+ color: "#80000000"
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: visible = false
+ }
+ }
+
+ Rectangle {
+ anchors.fill: parent
+ color: "#1a1b26"
+
+ ColumnLayout {
+ anchors.fill: parent
+ anchors.margins: 20
+ spacing: 15
+
+ RowLayout {
+ Layout.fillWidth: true
+
+ Text {
+ text: "Dashboard"
+ color: "#a9b1d6"
+ font.pixelSize: 24
+ font.family: "JetBrainsMono Nerd Font"
+ font.bold: true
+ }
+
+ Item { Layout.fillWidth: true }
+
+ Rectangle {
+ width: 30
+ height: 30
+ color: "#32344a"
+ radius: 5
+
+ Text {
+ anchors.centerIn: parent
+ text: "✕"
+ color: "#a9b1d6"
+ font.pixelSize: 18
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: visible = false
+ }
+ }
+ }
+
+ Rectangle {
+ Layout.fillWidth: true
+ Layout.preferredHeight: 200
+ color: "#16161e"
+ radius: 8
+
+ ColumnLayout {
+ anchors.fill: parent
+ anchors.margins: 15
+ spacing: 10
+
+ Text {
+ text: "System Stats"
+ color: "#7aa2f7"
+ font.pixelSize: 16
+ font.family: "JetBrainsMono Nerd Font"
+ font.bold: true
+ }
+
+ RowLayout {
+ Layout.fillWidth: true
+
+ Text {
+ text: "CPU"
+ color: "#a9b1d6"
+ font.pixelSize: 14
+ font.family: "JetBrainsMono Nerd Font"
+ Layout.preferredWidth: 80
+ }
+
+ Rectangle {
+ Layout.fillWidth: true
+ height: 20
+ color: "#32344a"
+ radius: 4
+
+ Rectangle {
+ width: parent.width * 0.45
+ height: parent.height
+ color: "#e0af68"
+ radius: 4
+ }
+ }
+
+ Text {
+ text: "45%"
+ color: "#a9b1d6"
+ font.pixelSize: 14
+ font.family: "JetBrainsMono Nerd Font"
+ Layout.preferredWidth: 50
+ }
+ }
+
+ RowLayout {
+ Layout.fillWidth: true
+
+ Text {
+ text: "Memory"
+ color: "#a9b1d6"
+ font.pixelSize: 14
+ font.family: "JetBrainsMono Nerd Font"
+ Layout.preferredWidth: 80
+ }
+
+ Rectangle {
+ Layout.fillWidth: true
+ height: 20
+ color: "#32344a"
+ radius: 4
+
+ Rectangle {
+ width: parent.width * 0.62
+ height: parent.height
+ color: "#9ece6a"
+ radius: 4
+ }
+ }
+
+ Text {
+ text: "62%"
+ color: "#a9b1d6"
+ font.pixelSize: 14
+ font.family: "JetBrainsMono Nerd Font"
+ Layout.preferredWidth: 50
+ }
+ }
+
+ RowLayout {
+ Layout.fillWidth: true
+
+ Text {
+ text: "Disk"
+ color: "#a9b1d6"
+ font.pixelSize: 14
+ font.family: "JetBrainsMono Nerd Font"
+ Layout.preferredWidth: 80
+ }
+
+ Rectangle {
+ Layout.fillWidth: true
+ height: 20
+ color: "#32344a"
+ radius: 4
+
+ Rectangle {
+ width: parent.width * 0.73
+ height: parent.height
+ color: "#7aa2f7"
+ radius: 4
+ }
+ }
+
+ Text {
+ text: "73%"
+ color: "#a9b1d6"
+ font.pixelSize: 14
+ font.family: "JetBrainsMono Nerd Font"
+ Layout.preferredWidth: 50
+ }
+ }
+ }
+ }
+
+ Rectangle {
+ Layout.fillWidth: true
+ Layout.preferredHeight: 120
+ color: "#16161e"
+ radius: 8
+
+ ColumnLayout {
+ anchors.fill: parent
+ anchors.margins: 15
+ spacing: 10
+
+ Text {
+ text: "Quick Controls"
+ color: "#7aa2f7"
+ font.pixelSize: 16
+ font.family: "JetBrainsMono Nerd Font"
+ font.bold: true
+ }
+
+ RowLayout {
+ Layout.fillWidth: true
+
+ Text {
+ text: "🔊"
+ font.pixelSize: 20
+ }
+
+ Rectangle {
+ Layout.fillWidth: true
+ height: 8
+ color: "#32344a"
+ radius: 4
+
+ Rectangle {
+ width: parent.width * 0.7
+ height: parent.height
+ color: "#ad8ee6"
+ radius: 4
+ }
+ }
+
+ Text {
+ text: "70%"
+ color: "#a9b1d6"
+ font.pixelSize: 14
+ font.family: "JetBrainsMono Nerd Font"
+ }
+ }
+
+ RowLayout {
+ Layout.fillWidth: true
+
+ Text {
+ text: "☀️"
+ font.pixelSize: 20
+ }
+
+ Rectangle {
+ Layout.fillWidth: true
+ height: 8
+ color: "#32344a"
+ radius: 4
+
+ Rectangle {
+ width: parent.width * 0.85
+ height: parent.height
+ color: "#e0af68"
+ radius: 4
+ }
+ }
+
+ Text {
+ text: "85%"
+ color: "#a9b1d6"
+ font.pixelSize: 14
+ font.family: "JetBrainsMono Nerd Font"
+ }
+ }
+ }
+ }
+
+ Rectangle {
+ Layout.fillWidth: true
+ Layout.preferredHeight: 100
+ color: "#16161e"
+ radius: 8
+
+ ColumnLayout {
+ anchors.fill: parent
+ anchors.margins: 15
+ spacing: 5
+
+ Text {
+ text: Qt.formatDateTime(new Date(), "dddd, MMMM d")
+ color: "#0db9d7"
+ font.pixelSize: 18
+ font.family: "JetBrainsMono Nerd Font"
+ font.bold: true
+ }
+
+ Text {
+ text: Qt.formatDateTime(new Date(), "h:mm AP")
+ color: "#a9b1d6"
+ font.pixelSize: 28
+ font.family: "JetBrainsMono Nerd Font"
+ font.bold: true
+ }
+ }
+ }
+
+ Item { Layout.fillHeight: true }
+
+ RowLayout {
+ Layout.fillWidth: true
+ spacing: 10
+
+ Rectangle {
+ Layout.fillWidth: true
+ height: 40
+ color: "#32344a"
+ radius: 8
+
+ Text {
+ anchors.centerIn: parent
+ text: "Lock"
+ color: "#a9b1d6"
+ font.pixelSize: 14
+ font.family: "JetBrainsMono Nerd Font"
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ }
+ }
+ }
+
+ Rectangle {
+ Layout.fillWidth: true
+ height: 40
+ color: "#f7768e"
+ radius: 8
+
+ Text {
+ anchors.centerIn: parent
+ text: "Power"
+ color: "#1a1b26"
+ font.pixelSize: 14
+ font.family: "JetBrainsMono Nerd Font"
+ font.bold: true
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/icons/debian.png b/icons/debian.png
new file mode 100644
index 0000000..85ba883
Binary files /dev/null and b/icons/debian.png differ
diff --git a/icons/tonybtw.png b/icons/tonybtw.png
new file mode 100644
index 0000000..5ba7616
Binary files /dev/null and b/icons/tonybtw.png differ
diff --git a/shell.qml b/shell.qml
new file mode 100644
index 0000000..77e7f94
--- /dev/null
+++ b/shell.qml
@@ -0,0 +1,264 @@
+import Quickshell
+import Quickshell.Wayland
+import Quickshell.Io
+import Quickshell.I3
+import QtQuick
+import QtQuick.Layouts
+
+ShellRoot {
+ Dashboard {
+ id: dashboard
+ }
+ Variants {
+ model: Quickshell.screens
+
+ PanelWindow {
+ property var modelData
+ screen: modelData
+
+ anchors {
+ top: true
+ left: true
+ right: true
+ }
+
+ implicitHeight: 30
+ color: "#1a1b26"
+
+ margins {
+ top: 0
+ bottom: 0
+ left: 0
+ right: 0
+ }
+
+ Rectangle {
+ anchors.fill: parent
+ color: "#1a1b26"
+
+ RowLayout {
+ anchors.fill: parent
+ spacing: 0
+
+ Item { width: 8 }
+
+ Rectangle {
+ Layout.preferredWidth: 24
+ Layout.preferredHeight: 24
+ color: "transparent"
+
+ Image {
+ anchors.fill: parent
+ source: "file:///home/tony/.config/quickshell/icons/tonybtw.png"
+ fillMode: Image.PreserveAspectFit
+ }
+ }
+
+ Item { width: 8 }
+
+ Repeater {
+ model: 9
+
+ Rectangle {
+ Layout.preferredWidth: 30
+ Layout.preferredHeight: parent.height
+ color: "transparent"
+
+ property var workspace: {
+ for (var i = 0; i < I3.workspaces.values.length; i++) {
+ var ws = I3.workspaces.values[i];
+ if (ws.num === (index + 1)) {
+ return ws;
+ }
+ }
+ return null;
+ }
+
+ property bool isActive: workspace ? workspace.active : false
+ property bool hasWindows: workspace !== null
+
+ Column {
+ anchors.centerIn: parent
+ spacing: 0
+
+ Text {
+ text: index + 1
+ color: parent.parent.isActive ? "#0db9d7" : (parent.parent.hasWindows ? "#0db9d7" : "#444b6a")
+ font.pixelSize: 16
+ font.family: "JetBrainsMono Nerd Font"
+ font.bold: true
+ horizontalAlignment: Text.AlignHCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+
+ Rectangle {
+ width: 20
+ height: 3
+ color: parent.parent.isActive ? "#ad8ee6" : "#1a1b26"
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ I3.dispatch("workspace number " + (index + 1));
+ }
+ }
+ }
+ }
+
+ Rectangle {
+ Layout.preferredWidth: 1
+ Layout.preferredHeight: 16
+ Layout.alignment: Qt.AlignVCenter
+ Layout.leftMargin: 8
+ Layout.rightMargin: 8
+ color: "#444b6a"
+ }
+
+ Text {
+ text: "Tile"
+ color: "#a9b1d6"
+ font.pixelSize: 14
+ font.family: "JetBrainsMono Nerd Font"
+ font.bold: true
+ Layout.leftMargin: 5
+ Layout.rightMargin: 5
+ }
+
+ Rectangle {
+ Layout.preferredWidth: 1
+ Layout.preferredHeight: 16
+ Layout.alignment: Qt.AlignVCenter
+ Layout.leftMargin: 2
+ Layout.rightMargin: 8
+ color: "#444b6a"
+ }
+
+ Text {
+ text: "Window"
+ color: "#ad8ee6"
+ font.pixelSize: 14
+ font.family: "JetBrainsMono Nerd Font"
+ font.bold: true
+ Layout.fillWidth: true
+ Layout.leftMargin: 8
+ elide: Text.ElideRight
+ maximumLineCount: 1
+ }
+
+ Text {
+ text: "Linux"
+ color: "#e0af68"
+ font.pixelSize: 14
+ font.family: "JetBrainsMono Nerd Font"
+ font.bold: true
+ Layout.rightMargin: 8
+ }
+
+ Rectangle {
+ Layout.preferredWidth: 1
+ Layout.preferredHeight: 16
+ Layout.alignment: Qt.AlignVCenter
+ Layout.leftMargin: 0
+ Layout.rightMargin: 8
+ color: "#444b6a"
+ }
+
+ Text {
+ text: "CPU: --"
+ color: "#e0af68"
+ font.pixelSize: 14
+ font.family: "JetBrainsMono Nerd Font"
+ font.bold: true
+ Layout.rightMargin: 8
+ }
+
+ Rectangle {
+ Layout.preferredWidth: 1
+ Layout.preferredHeight: 16
+ Layout.alignment: Qt.AlignVCenter
+ Layout.leftMargin: 0
+ Layout.rightMargin: 8
+ color: "#444b6a"
+ }
+
+ Text {
+ text: "Mem: --"
+ color: "#0db9d7"
+ font.pixelSize: 14
+ font.family: "JetBrainsMono Nerd Font"
+ font.bold: true
+ Layout.rightMargin: 8
+ }
+
+ Rectangle {
+ Layout.preferredWidth: 1
+ Layout.preferredHeight: 16
+ Layout.alignment: Qt.AlignVCenter
+ Layout.leftMargin: 0
+ Layout.rightMargin: 8
+ color: "#444b6a"
+ }
+
+ Text {
+ text: "Disk: --"
+ color: "#7aa2f7"
+ font.pixelSize: 14
+ font.family: "JetBrainsMono Nerd Font"
+ font.bold: true
+ Layout.rightMargin: 8
+ }
+
+ Rectangle {
+ Layout.preferredWidth: 1
+ Layout.preferredHeight: 16
+ Layout.alignment: Qt.AlignVCenter
+ Layout.leftMargin: 0
+ Layout.rightMargin: 8
+ color: "#444b6a"
+ }
+
+ Text {
+ text: "Vol: --"
+ color: "#ad8ee6"
+ font.pixelSize: 14
+ font.family: "JetBrainsMono Nerd Font"
+ font.bold: true
+ Layout.rightMargin: 8
+ }
+
+ Rectangle {
+ Layout.preferredWidth: 1
+ Layout.preferredHeight: 16
+ Layout.alignment: Qt.AlignVCenter
+ Layout.leftMargin: 0
+ Layout.rightMargin: 8
+ color: "#444b6a"
+ }
+
+ Text {
+ id: clockText
+ text: Qt.formatDateTime(new Date(), "ddd, MMM dd - HH:mm")
+ color: "#0db9d7"
+ font.pixelSize: 14
+ font.family: "JetBrainsMono Nerd Font"
+ font.bold: true
+ Layout.rightMargin: 8
+
+ Timer {
+ interval: 1000
+ running: true
+ repeat: true
+ onTriggered: clockText.text = Qt.formatDateTime(new Date(), "ddd, MMM dd - HH:mm")
+ }
+ }
+
+ Item { width: 8 }
+ }
+ }
+ }
+ }
+}
+