nixos-dotfiles

nixos-dotfiles

https://git.tonybtw.com/nixos-dotfiles.git git://git.tonybtw.com/nixos-dotfiles.git

Initial commit.

Commit
fd0209d3c11f6c3636bbe256c7f680887a436284
Author
tonybanters <tonybanters@gmail.com>
Date
2026-01-26 08:26:42

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 }
+                }
+            }
+        }
+    }
+}
+