From 10960f620d06c3875c76e19f9e40f8ae0644d150 Mon Sep 17 00:00:00 2001 From: Zoty Date: Wed, 15 Apr 2026 10:38:34 -0300 Subject: [PATCH] add quickshell --- flake.lock | 113 ++++++++++++++++++++ flake.nix | 4 + modules/_home/default.nix | 1 + modules/_home/mako.nix | 5 - modules/_home/niri.nix | 23 +++- modules/core.nix | 2 +- modules/den.nix | 1 - modules/dev.nix | 1 + modules/niri.nix | 10 +- quickshell/ActiveWindow.qml | 18 ++++ quickshell/Bar.qml | 57 ++++++++++ quickshell/BarPill.qml | 20 ++++ quickshell/Clock.qml | 19 ++++ quickshell/CpuMonitor.qml | 57 ++++++++++ quickshell/CpuWidget.qml | 10 ++ quickshell/DateWidget.qml | 19 ++++ quickshell/GpuMonitor.qml | 37 +++++++ quickshell/GpuWidget.qml | 10 ++ quickshell/KeyboardLayout.qml | 69 ++++++++++++ quickshell/NetMonitor.qml | 53 +++++++++ quickshell/NetWidget.qml | 9 ++ quickshell/NotificationItem.qml | 166 +++++++++++++++++++++++++++++ quickshell/NotificationPanel.qml | 161 ++++++++++++++++++++++++++++ quickshell/NotificationToast.qml | 171 ++++++++++++++++++++++++++++++ quickshell/NotificationWidget.qml | 52 +++++++++ quickshell/NotificationsState.qml | 142 +++++++++++++++++++++++++ quickshell/RamMonitor.qml | 47 ++++++++ quickshell/RamWidget.qml | 10 ++ quickshell/Theme.qml | 52 +++++++++ quickshell/Workspaces.qml | 47 ++++++++ quickshell/shell.qml | 40 +++++++ wallpapers/miku.png | Bin 0 -> 4729076 bytes 32 files changed, 1415 insertions(+), 11 deletions(-) delete mode 100644 modules/_home/mako.nix create mode 100644 quickshell/ActiveWindow.qml create mode 100644 quickshell/Bar.qml create mode 100644 quickshell/BarPill.qml create mode 100644 quickshell/Clock.qml create mode 100644 quickshell/CpuMonitor.qml create mode 100644 quickshell/CpuWidget.qml create mode 100644 quickshell/DateWidget.qml create mode 100644 quickshell/GpuMonitor.qml create mode 100644 quickshell/GpuWidget.qml create mode 100644 quickshell/KeyboardLayout.qml create mode 100644 quickshell/NetMonitor.qml create mode 100644 quickshell/NetWidget.qml create mode 100644 quickshell/NotificationItem.qml create mode 100644 quickshell/NotificationPanel.qml create mode 100644 quickshell/NotificationToast.qml create mode 100644 quickshell/NotificationWidget.qml create mode 100644 quickshell/NotificationsState.qml create mode 100644 quickshell/RamMonitor.qml create mode 100644 quickshell/RamWidget.qml create mode 100644 quickshell/Theme.qml create mode 100644 quickshell/Workspaces.qml create mode 100644 quickshell/shell.qml create mode 100644 wallpapers/miku.png diff --git a/flake.lock b/flake.lock index 4d215a5..49e555e 100644 --- a/flake.lock +++ b/flake.lock @@ -49,6 +49,24 @@ "type": "github" } }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1762040540, + "narHash": "sha256-z5PlZ47j50VNF3R+IMS9LmzI5fYRGY/Z5O5tol1c9I4=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "0010412d62a25d959151790968765a70c436598b", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, "flake-utils": { "inputs": { "systems": "systems" @@ -175,6 +193,21 @@ "type": "github" } }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1761765539, + "narHash": "sha256-b0yj6kfvO8ApcSE+QmA6mUfu8IYG6/uU28OFn4PaC8M=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "719359f4562934ae99f5443f20aa06c2ffff91fc", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, "nixpkgs-stable": { "locked": { "lastModified": 1775811116, @@ -239,6 +272,67 @@ "type": "github" } }, + "nixpkgs_4": { + "locked": { + "lastModified": 1761236834, + "narHash": "sha256-+pthv6hrL5VLW2UqPdISGuLiUZ6SnAXdd2DdUE+fV2Q=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "d5faa84122bc0a1fd5d378492efce4e289f8eac1", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "qml-niri": { + "inputs": { + "flake-parts": "flake-parts", + "nixpkgs": [ + "nixpkgs" + ], + "quickshell": "quickshell", + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1775384967, + "narHash": "sha256-5JuFsu0tPEZrHhj/d5C7eP0+FSLNi9hTW5h/17N3Mbk=", + "owner": "imiric", + "repo": "qml-niri", + "rev": "2d60eb204aa7a9704b7f5cf228b85fb19acbbcee", + "type": "github" + }, + "original": { + "owner": "imiric", + "ref": "main", + "repo": "qml-niri", + "type": "github" + } + }, + "quickshell": { + "inputs": { + "nixpkgs": [ + "qml-niri", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1761897390, + "narHash": "sha256-er4gYrIoThYLjlsOMTysoRfn67d1Gci+ZpqDrtQxrA0=", + "ref": "refs/heads/master", + "rev": "fc704e6b5d445899a1565955268c91942a4f263f", + "revCount": 700, + "type": "git", + "url": "https://git.outfoxxed.me/outfoxxed/quickshell" + }, + "original": { + "type": "git", + "url": "https://git.outfoxxed.me/outfoxxed/quickshell" + } + }, "root": { "inputs": { "claude-code": "claude-code", @@ -249,6 +343,7 @@ "niri-flake": "niri-flake", "nixpkgs": "nixpkgs_3", "nixpkgs-unstable": "nixpkgs-unstable", + "qml-niri": "qml-niri", "sops-nix": "sops-nix" } }, @@ -287,6 +382,24 @@ "type": "github" } }, + "treefmt-nix": { + "inputs": { + "nixpkgs": "nixpkgs_4" + }, + "locked": { + "lastModified": 1762410071, + "narHash": "sha256-aF5fvoZeoXNPxT0bejFUBXeUjXfHLSL7g+mjR/p5TEg=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "97a30861b13c3731a84e09405414398fbf3e109f", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, "xwayland-satellite-stable": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index 441de1b..7b5c6e5 100644 --- a/flake.nix +++ b/flake.nix @@ -15,6 +15,10 @@ inputs.nixpkgs.follows = "nixpkgs"; }; claude-code.url = "github:sadjow/claude-code-nix"; + qml-niri = { + url = "github:imiric/qml-niri/main"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = inputs: diff --git a/modules/_home/default.nix b/modules/_home/default.nix index aa6d5db..32cfbe0 100644 --- a/modules/_home/default.nix +++ b/modules/_home/default.nix @@ -35,6 +35,7 @@ in { ]; initContent = '' source ${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/powerlevel10k.zsh-theme + [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh ''; oh-my-zsh = { enable = true; diff --git a/modules/_home/mako.nix b/modules/_home/mako.nix deleted file mode 100644 index a5a2c00..0000000 --- a/modules/_home/mako.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ ... }: { - services.mako = { - enable = true; - }; -} diff --git a/modules/_home/niri.nix b/modules/_home/niri.nix index c72b6b2..455f762 100644 --- a/modules/_home/niri.nix +++ b/modules/_home/niri.nix @@ -1,4 +1,7 @@ -{ pkgs, ... }: { +{ config, pkgs, ... }: +let + wallpaper = ../../wallpapers/miku.png; +in { home.sessionVariables = { XDG_SESSION_TYPE = "wayland"; XDG_CURRENT_DESKTOP = "niri"; @@ -42,12 +45,16 @@ ''; }; + xdg.configFile."quickshell".source = + config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/repos/nixos/quickshell"; + xdg.configFile."niri/config.kdl".text = '' // Modificadores: Mod = Super (tecla Windows) input { keyboard { xkb { - layout "en" + layout "us,pt" + variant ",br" } } touchpad { @@ -67,6 +74,10 @@ prefer-no-csd + spawn-at-startup "swww-daemon" + spawn-at-startup "swww" "img" "${wallpaper}" "--transition-type" "none" + spawn-at-startup "quickshell" + screenshot-path "~/Imagens/screenshots/%Y-%m-%d %H-%M-%S.png" binds { @@ -101,13 +112,19 @@ // Sistema Mod+Shift+E { quit; } - Mod+L { spawn "swaylock"; } + Mod+L { spawn "swaylock" "-i" "${wallpaper}" "--scaling" "fill"; } // Volume XF86AudioRaiseVolume { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "5%+"; } XF86AudioLowerVolume { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "5%-"; } XF86AudioMute { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; } + // Zen mode (toggle quickshell bar) + Mod+Z { spawn "quickshell" "ipc" "call" "zen" "toggle"; } + + // Input layout + Mod+Space { switch-layout "next"; } + // Screenshot Mod+Shift+S { spawn "bash" "-c" "$HOME/.local/bin/screenshot region"; } Mod+Shift+Alt+S { spawn "bash" "-c" "$HOME/.local/bin/screenshot screen"; } diff --git a/modules/core.nix b/modules/core.nix index b5c2eaf..7363d12 100644 --- a/modules/core.nix +++ b/modules/core.nix @@ -33,7 +33,7 @@ wget pkgs-unstable.neovim btop - nixd + ncdu unrar p7zip ]; diff --git a/modules/den.nix b/modules/den.nix index 4743162..ee91c7a 100644 --- a/modules/den.nix +++ b/modules/den.nix @@ -71,7 +71,6 @@ ./_home/niri.nix ./_home/cursor.nix ./_home/git.nix - ./_home/mako.nix ./_home/dolphin.nix ./_home/theme.nix ]; diff --git a/modules/dev.nix b/modules/dev.nix index 870b136..44c49d2 100644 --- a/modules/dev.nix +++ b/modules/dev.nix @@ -27,6 +27,7 @@ angular-language-server # Angular vue-language-server # Vue tailwindcss-language-server # Tailwind + qt6Packages.qtdeclarative # qmlls (QML/Quickshell LSP) # Extra chafa ripgrep diff --git a/modules/niri.nix b/modules/niri.nix index 6d991e7..52b7fa8 100644 --- a/modules/niri.nix +++ b/modules/niri.nix @@ -1,7 +1,12 @@ { inputs, den, pkgs, ... }: { - den.aspects.niri.nixos = { pkgs, ... }: { + den.aspects.niri.nixos = { pkgs, ... }: + let + quickshell-niri = inputs.qml-niri.packages.${pkgs.system}.quickshell; + in { imports = [ inputs.niri-flake.nixosModules.niri ]; + fonts.packages = [ pkgs.nerd-fonts.jetbrains-mono ]; + programs.niri = { enable = true; package = pkgs.niri; @@ -10,10 +15,12 @@ programs.gpu-screen-recorder.enable = true; environment.systemPackages = with pkgs; [ + quickshell-niri waybar fuzzel swaylock swayidle + swww grim slurp wl-clipboard @@ -21,6 +28,7 @@ kdePackages.xdg-desktop-portal-kde xwayland-satellite gpu-screen-recorder-gtk + libnotify ]; xdg.portal = { diff --git a/quickshell/ActiveWindow.qml b/quickshell/ActiveWindow.qml new file mode 100644 index 0000000..e437035 --- /dev/null +++ b/quickshell/ActiveWindow.qml @@ -0,0 +1,18 @@ +import QtQuick + +Text { + readonly property string title: niri.focusedWindow?.title ?? "" + + text: title + color: Theme.subtle + font.pixelSize: Theme.fontSize + font.family: Theme.font + elide: Text.ElideRight + maximumLineCount: 1 + horizontalAlignment: Text.AlignHCenter + opacity: title.length > 0 ? 1.0 : 0.0 + + Behavior on opacity { + NumberAnimation { duration: 120 } + } +} diff --git a/quickshell/Bar.qml b/quickshell/Bar.qml new file mode 100644 index 0000000..69dc6e1 --- /dev/null +++ b/quickshell/Bar.qml @@ -0,0 +1,57 @@ +import Quickshell +import Quickshell.Wayland +import QtQuick +import QtQuick.Layouts + +PanelWindow { + anchors { top: true; left: true; right: true } + + visible: !root.zenMode + height: Theme.barHeight + color: "transparent" + exclusiveZone: height + + Rectangle { + anchors.fill: parent + color: Theme.bg + + Rectangle { + anchors.bottom: parent.bottom + anchors.left: parent.left + anchors.right: parent.right + height: 1 + color: Theme.bg2 + } + + Row { + anchors.left: parent.left + anchors.leftMargin: Theme.padding + anchors.verticalCenter: parent.verticalCenter + spacing: Theme.spacing + + Workspaces {} + } + + ActiveWindow { + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter + width: 480 + } + + Row { + anchors.right: parent.right + anchors.rightMargin: Theme.padding + anchors.verticalCenter: parent.verticalCenter + spacing: Theme.spacing + + NetWidget {} + CpuWidget {} + RamWidget {} + GpuWidget {} + DateWidget {} + Clock {} + KeyboardLayout {} + NotificationWidget {} + } + } +} diff --git a/quickshell/BarPill.qml b/quickshell/BarPill.qml new file mode 100644 index 0000000..de0cb2e --- /dev/null +++ b/quickshell/BarPill.qml @@ -0,0 +1,20 @@ +import QtQuick +import QtQuick.Layouts + +Rectangle { + default property alias content: inner.data + + property int minWidth: 0 + + color: Theme.bg1 + radius: Theme.radius + height: Theme.barHeight - 8 + width: Math.max(inner.implicitWidth + Theme.spacing * 2, minWidth) + clip: true + + RowLayout { + id: inner + anchors.centerIn: parent + spacing: 5 + } +} diff --git a/quickshell/Clock.qml b/quickshell/Clock.qml new file mode 100644 index 0000000..5bfabea --- /dev/null +++ b/quickshell/Clock.qml @@ -0,0 +1,19 @@ +import Quickshell +import QtQuick + +BarPill { + SystemClock { id: clock; precision: SystemClock.Seconds } + + Text { + text: "󰥔" + color: Theme.yellow + font.pixelSize: Theme.fontSize + font.family: Theme.font + } + Text { + text: Qt.formatDateTime(clock.date, "hh:mm") + color: Theme.text + font.pixelSize: Theme.fontSize + font.family: Theme.font + } +} diff --git a/quickshell/CpuMonitor.qml b/quickshell/CpuMonitor.qml new file mode 100644 index 0000000..2f1d186 --- /dev/null +++ b/quickshell/CpuMonitor.qml @@ -0,0 +1,57 @@ +pragma Singleton +import Quickshell +import Quickshell.Io +import QtQuick + +Singleton { + id: root + + property int usage: 0 + property int temp: 0 + + property var _prevTotal: null + property var _prevIdle: null + + Timer { + interval: 2000 + running: true + repeat: true + triggeredOnStart: true + onTriggered: { + _statProc.running = false + _statProc.running = true + _tempProc.running = false + _tempProc.running = true + } + } + + Process { + id: _statProc + command: ["bash", "-c", "grep '^cpu ' /proc/stat"] + stdout: SplitParser { + onRead: line => { + const p = line.trim().split(/\s+/) + const idle = parseInt(p[4]) + parseInt(p[5]) + const total = p.slice(1, 8).reduce((a, v) => a + parseInt(v), 0) + if (root._prevTotal !== null) { + const dt = total - root._prevTotal + const di = idle - root._prevIdle + root.usage = dt > 0 ? Math.round((1 - di / dt) * 100) : 0 + } + root._prevTotal = total + root._prevIdle = idle + } + } + } + + Process { + id: _tempProc + command: ["bash", "-c", "for d in /sys/class/hwmon/hwmon*/; do [ \"$(cat ${d}name 2>/dev/null)\" = 'coretemp' ] && awk '{print int($1/1000)}' \"${d}temp1_input\" 2>/dev/null && break; done"] + stdout: SplitParser { + onRead: line => { + const v = parseInt(line.trim()) + if (!isNaN(v) && v > 0) root.temp = v + } + } + } +} diff --git a/quickshell/CpuWidget.qml b/quickshell/CpuWidget.qml new file mode 100644 index 0000000..50397b1 --- /dev/null +++ b/quickshell/CpuWidget.qml @@ -0,0 +1,10 @@ +import QtQuick + +BarPill { + minWidth: 115 + Text { text: "󰻠"; color: Theme.green; font.pixelSize: Theme.fontSize; font.family: Theme.font } + Text { text: CpuMonitor.usage + "%"; color: Theme.text; font.pixelSize: Theme.fontSize; font.family: Theme.font } + Text { text: "|"; color: Theme.muted; font.pixelSize: Theme.fontSize; font.family: Theme.font } + Text { text: CpuMonitor.temp + "°"; color: Theme.text; font.pixelSize: Theme.fontSize; font.family: Theme.font } + Text { text: "󰔄"; color: Theme.orange; font.pixelSize: Theme.fontSize; font.family: Theme.font } +} diff --git a/quickshell/DateWidget.qml b/quickshell/DateWidget.qml new file mode 100644 index 0000000..c6acbbb --- /dev/null +++ b/quickshell/DateWidget.qml @@ -0,0 +1,19 @@ +import Quickshell +import QtQuick + +BarPill { + SystemClock { id: clock; precision: SystemClock.Minutes } + + Text { + text: "󰃭" + color: Theme.aqua + font.pixelSize: Theme.fontSize + font.family: Theme.font + } + Text { + text: Qt.formatDateTime(clock.date, "ddd dd/MM") + color: Theme.text + font.pixelSize: Theme.fontSize + font.family: Theme.font + } +} diff --git a/quickshell/GpuMonitor.qml b/quickshell/GpuMonitor.qml new file mode 100644 index 0000000..cf42345 --- /dev/null +++ b/quickshell/GpuMonitor.qml @@ -0,0 +1,37 @@ +pragma Singleton +import Quickshell +import Quickshell.Io +import QtQuick + +Singleton { + id: root + + property int usage: 0 + property int temp: 0 + + Timer { + interval: 2000 + running: true + repeat: true + triggeredOnStart: true + onTriggered: { + _proc.running = false + _proc.running = true + } + } + + Process { + id: _proc + command: ["nvidia-smi", "--query-gpu=utilization.gpu,temperature.gpu", "--format=csv,noheader,nounits"] + stdout: SplitParser { + onRead: line => { + const parts = line.trim().split(/\s*,\s*/) + if (parts.length < 2) return + const u = parseInt(parts[0]) + const t = parseInt(parts[1]) + if (!isNaN(u)) root.usage = u + if (!isNaN(t)) root.temp = t + } + } + } +} diff --git a/quickshell/GpuWidget.qml b/quickshell/GpuWidget.qml new file mode 100644 index 0000000..7420c38 --- /dev/null +++ b/quickshell/GpuWidget.qml @@ -0,0 +1,10 @@ +import QtQuick + +BarPill { + minWidth: 115 + Text { text: "󰾲"; color: Theme.blue; font.pixelSize: Theme.fontSize; font.family: Theme.font } + Text { text: GpuMonitor.usage + "%"; color: Theme.text; font.pixelSize: Theme.fontSize; font.family: Theme.font } + Text { text: "|"; color: Theme.muted; font.pixelSize: Theme.fontSize; font.family: Theme.font } + Text { text: GpuMonitor.temp + "°"; color: Theme.text; font.pixelSize: Theme.fontSize; font.family: Theme.font } + Text { text: "󰔄"; color: Theme.orange; font.pixelSize: Theme.fontSize; font.family: Theme.font } +} diff --git a/quickshell/KeyboardLayout.qml b/quickshell/KeyboardLayout.qml new file mode 100644 index 0000000..39bfa2f --- /dev/null +++ b/quickshell/KeyboardLayout.qml @@ -0,0 +1,69 @@ +import Quickshell +import Quickshell.Io +import QtQuick + +BarPill { + id: root + + property int currentIdx: 0 + property var names: [] + + readonly property string shortName: { + if (names.length === 0) return "??" + const n = names[currentIdx] ?? "" + if (n.includes("Portuguese")) return "PT" + if (n.includes("English")) return "EN" + // fallback: first two chars of first word + return n.split(" ")[0].substring(0, 2).toUpperCase() + } + + Process { + command: ["niri", "msg", "--json", "keyboard-layouts"] + running: true + stdout: SplitParser { + splitMarker: "" + onRead: data => { + try { + const kl = JSON.parse(data) + root.currentIdx = kl.current_idx + root.names = kl.names + } catch (e) {} + } + } + } + + Connections { + target: niri + function onRawEventReceived(event) { + try { + const ev = JSON.parse(event) + if (!ev.KeyboardLayoutsChanged) return + const kl = ev.KeyboardLayoutsChanged.keyboard_layouts + root.currentIdx = kl.current_idx + root.names = kl.names + } catch (e) {} + } + } + + Text { + text: "󰌌" + color: Theme.purple + font.pixelSize: Theme.fontSize + font.family: Theme.font + } + Text { + text: root.shortName + color: Theme.text + font.pixelSize: Theme.fontSize + font.family: Theme.font + + Behavior on text { + // Flash the label on layout change + SequentialAnimation { + PropertyAnimation { target: parent; property: "opacity"; to: 0; duration: 80 } + PropertyAction { target: parent; property: "text" } + PropertyAnimation { target: parent; property: "opacity"; to: 1; duration: 80 } + } + } + } +} diff --git a/quickshell/NetMonitor.qml b/quickshell/NetMonitor.qml new file mode 100644 index 0000000..e3caa20 --- /dev/null +++ b/quickshell/NetMonitor.qml @@ -0,0 +1,53 @@ +pragma Singleton +import Quickshell +import Quickshell.Io +import QtQuick + +Singleton { + id: root + + property real rxSpeed: 0 + property real txSpeed: 0 + + property var _prevRx: null + property var _prevTx: null + + function _fmt(bytes) { + if (bytes >= 1048576) return (bytes / 1048576).toFixed(1) + " M" + if (bytes >= 1024) return (bytes / 1024).toFixed(0) + " K" + return bytes + " B" + } + + readonly property string rxStr: _fmt(rxSpeed) + readonly property string txStr: _fmt(txSpeed) + + Timer { + interval: 1000 + running: true + repeat: true + triggeredOnStart: true + onTriggered: { + _proc.running = false + _proc.running = true + } + } + + Process { + id: _proc + command: ["bash", "-c", "iface=$(ip route show default | awk '{print $5; exit}'); awk -v i=\"$iface:\" '$1==i {print $2, $10}' /proc/net/dev"] + stdout: SplitParser { + onRead: line => { + const parts = line.trim().split(/\s+/) + if (parts.length < 2) return + const rx = parseInt(parts[0]) + const tx = parseInt(parts[1]) + if (root._prevRx !== null) { + root.rxSpeed = Math.max(0, rx - root._prevRx) + root.txSpeed = Math.max(0, tx - root._prevTx) + } + root._prevRx = rx + root._prevTx = tx + } + } + } +} diff --git a/quickshell/NetWidget.qml b/quickshell/NetWidget.qml new file mode 100644 index 0000000..c0e951c --- /dev/null +++ b/quickshell/NetWidget.qml @@ -0,0 +1,9 @@ +import QtQuick + +BarPill { + minWidth: 140 + Text { text: "󰁇"; color: Theme.aqua; font.pixelSize: Theme.fontSize; font.family: Theme.font } + Text { text: NetMonitor.rxStr; color: Theme.text; font.pixelSize: Theme.fontSize; font.family: Theme.font } + Text { text: "󰁞"; color: Theme.yellow; font.pixelSize: Theme.fontSize; font.family: Theme.font } + Text { text: NetMonitor.txStr; color: Theme.text; font.pixelSize: Theme.fontSize; font.family: Theme.font } +} diff --git a/quickshell/NotificationItem.qml b/quickshell/NotificationItem.qml new file mode 100644 index 0000000..082b87d --- /dev/null +++ b/quickshell/NotificationItem.qml @@ -0,0 +1,166 @@ +import QtQuick +import QtQuick.Layouts + +Item { + id: root + + required property int nid + required property string appName + required property string summary + required property string body + required property string appIcon + required property int urgency + required property var timestamp + + signal dismissed() + + implicitHeight: inner.implicitHeight + 16 + height: implicitHeight + + Rectangle { + id: bg + anchors.fill: parent + anchors.leftMargin: 4 + anchors.rightMargin: 4 + anchors.topMargin: 2 + anchors.bottomMargin: 2 + color: itemClick.containsMouse ? Theme.bg1 : "transparent" + radius: Theme.radius + + Behavior on color { ColorAnimation { duration: 100 } } + + RowLayout { + id: inner + // Right margin reserves space so content does not overlap the close button + anchors.left: parent.left + anchors.right: parent.right + anchors.verticalCenter: parent.verticalCenter + anchors.leftMargin: 8 + anchors.rightMargin: 32 + spacing: 8 + + Rectangle { + width: 34 + height: 34 + radius: 17 + color: root.urgency === 2 ? Theme.redN + : root.urgency === 0 ? Theme.bg3 + : Theme.blueN + Layout.alignment: Qt.AlignVCenter + + Image { + id: iconImg + anchors.fill: parent + anchors.margins: 5 + source: root.appIcon + fillMode: Image.PreserveAspectFit + visible: status === Image.Ready + smooth: true + } + + Text { + anchors.centerIn: parent + visible: !iconImg.visible + text: root.appName.charAt(0).toUpperCase() + color: Theme.fg + font.pixelSize: Theme.fontSize + font.family: Theme.font + font.bold: true + } + } + + ColumnLayout { + Layout.fillWidth: true + spacing: 2 + + RowLayout { + Layout.fillWidth: true + spacing: 6 + + Text { + text: root.summary.length > 0 ? root.summary : root.appName + color: Theme.text + font.pixelSize: Theme.fontSize + font.family: Theme.font + font.bold: true + elide: Text.ElideRight + Layout.fillWidth: true + } + + Text { + text: NotificationsState.formatTime(root.timestamp) + color: Theme.subtle + font.pixelSize: Theme.fontSizeSmall + font.family: Theme.font + } + } + + Text { + visible: root.body.length > 0 + text: root.body + color: Theme.fg2 + font.pixelSize: Theme.fontSizeSmall + font.family: Theme.font + wrapMode: Text.WordWrap + maximumLineCount: 2 + elide: Text.ElideRight + Layout.fillWidth: true + } + + Text { + visible: root.summary.length > 0 + text: root.appName + color: Theme.muted + font.pixelSize: Theme.fontSizeSmall - 1 + font.family: Theme.font + } + } + } + + Rectangle { + id: closeArea + width: 20 + height: 20 + radius: 10 + anchors.top: parent.top + anchors.right: parent.right + anchors.topMargin: 5 + anchors.rightMargin: 5 + color: closeBtn.containsMouse ? Theme.bg3 : "transparent" + + Behavior on color { ColorAnimation { duration: 100 } } + + Text { + anchors.centerIn: parent + text: "✕" + color: closeBtn.containsMouse ? Theme.fg : Theme.subtle + font.pixelSize: 10 + opacity: closeBtn.containsMouse ? 1.0 : 0.5 + + Behavior on color { ColorAnimation { duration: 100 } } + Behavior on opacity { NumberAnimation { duration: 100 } } + } + + MouseArea { + id: closeBtn + anchors.fill: parent + hoverEnabled: true + cursorShape: Qt.PointingHandCursor + onClicked: root.dismissed() + } + } + + // Does not extend to the right edge to avoid overlapping the close button + MouseArea { + id: itemClick + anchors.fill: parent + anchors.rightMargin: 28 + hoverEnabled: true + cursorShape: Qt.PointingHandCursor + onClicked: { + NotificationsState.invokeDefault(root.nid) + root.dismissed() + } + } + } +} diff --git a/quickshell/NotificationPanel.qml b/quickshell/NotificationPanel.qml new file mode 100644 index 0000000..50dafb4 --- /dev/null +++ b/quickshell/NotificationPanel.qml @@ -0,0 +1,161 @@ +import Quickshell +import Quickshell.Wayland +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls + +PanelWindow { + id: panel + + anchors.top: true + anchors.right: true + + margins.top: Theme.padding + margins.right: Theme.padding + + exclusiveZone: 0 + WlrLayershell.layer: WlrLayer.Overlay + visible: NotificationsState.panelOpen && !root.zenMode + + width: 360 + height: NotificationsState.notifications.count === 0 + ? 120 + : Math.min(41 + list.contentHeight + 8, 480) + + color: "transparent" + + Rectangle { + anchors.fill: parent + color: Theme.bg + radius: Theme.radius + border.color: Theme.bg2 + border.width: 1 + + Item { + id: header + height: 40 + anchors.top: parent.top + anchors.left: parent.left + anchors.right: parent.right + + Text { + anchors.left: parent.left + anchors.leftMargin: Theme.padding + anchors.verticalCenter: parent.verticalCenter + text: "Notifications" + color: Theme.text + font.pixelSize: Theme.fontSize + font.family: Theme.font + font.bold: true + } + + Rectangle { + visible: NotificationsState.notifications.count > 0 + anchors.right: parent.right + anchors.rightMargin: Theme.padding + anchors.verticalCenter: parent.verticalCenter + height: 22 + width: clearLabel.implicitWidth + 12 + radius: Theme.radius + color: clearBtn.containsMouse ? Theme.bg2 : "transparent" + + Behavior on color { ColorAnimation { duration: 100 } } + + Text { + id: clearLabel + anchors.centerIn: parent + text: "Clear all" + color: clearBtn.containsMouse ? Theme.fg2 : Theme.subtle + font.pixelSize: Theme.fontSizeSmall + font.family: Theme.font + } + + MouseArea { + id: clearBtn + anchors.fill: parent + hoverEnabled: true + cursorShape: Qt.PointingHandCursor + onClicked: NotificationsState.dismissAll() + } + } + } + + Rectangle { + id: sep + height: 1 + color: Theme.bg2 + anchors.top: header.bottom + anchors.left: parent.left + anchors.right: parent.right + } + + Item { + visible: NotificationsState.notifications.count === 0 + anchors.top: sep.bottom + anchors.left: parent.left + anchors.right: parent.right + height: 79 + + Text { + anchors.centerIn: parent + text: "No notifications" + color: Theme.subtle + font.pixelSize: Theme.fontSize + font.family: Theme.font + } + } + + ListView { + id: list + visible: NotificationsState.notifications.count > 0 + + anchors.top: sep.bottom + anchors.left: parent.left + anchors.right: parent.right + anchors.bottom: parent.bottom + anchors.topMargin: 4 + anchors.bottomMargin: 4 + + clip: true + spacing: 0 + model: NotificationsState.notifications + + section.property: "day" + section.delegate: Item { + width: list.width + height: 28 + + Text { + anchors.left: parent.left + anchors.leftMargin: 12 + anchors.verticalCenter: parent.verticalCenter + text: section + color: Theme.accent + font.pixelSize: Theme.fontSizeSmall + font.family: Theme.font + font.bold: true + } + } + + delegate: NotificationItem { + required property var model + required property int index + + width: list.width + nid: model.nid + appName: model.appName + summary: model.summary + body: model.body + appIcon: model.appIcon + urgency: model.urgency + timestamp: model.timestamp + + onDismissed: NotificationsState.dismiss(index) + } + + ScrollBar.vertical: ScrollBar { + policy: ScrollBar.AsNeeded + } + } + } +} diff --git a/quickshell/NotificationToast.qml b/quickshell/NotificationToast.qml new file mode 100644 index 0000000..068a02d --- /dev/null +++ b/quickshell/NotificationToast.qml @@ -0,0 +1,171 @@ +import Quickshell +import Quickshell.Wayland +import QtQuick +import QtQuick.Layouts + +PanelWindow { + anchors.top: true + anchors.right: true + + margins.top: Theme.padding + margins.right: Theme.padding + + exclusiveZone: 0 + visible: NotificationsState.toasts.count > 0 && !root.zenMode + + width: 320 + height: toastCol.implicitHeight + + color: "transparent" + + Column { + id: toastCol + width: parent.width + spacing: 4 + + Repeater { + model: NotificationsState.toasts + + delegate: Rectangle { + required property var model + required property int index + + width: toastCol.width + height: toastInner.implicitHeight + Theme.padding * 2 + 3 + radius: Theme.radius + color: Theme.bg + border.color: model.urgency === 2 ? Theme.red : Theme.bg2 + border.width: 1 + + RowLayout { + id: toastInner + anchors.top: parent.top + anchors.left: parent.left + anchors.right: parent.right + anchors.topMargin: Theme.padding + anchors.leftMargin: Theme.padding + anchors.rightMargin: Theme.padding + spacing: Theme.spacing + + Rectangle { + width: 34 + height: 34 + radius: 17 + color: model.urgency === 2 ? Theme.redN + : model.urgency === 0 ? Theme.bg3 + : Theme.blueN + Layout.alignment: Qt.AlignTop + + Image { + id: tIcon + anchors.fill: parent + anchors.margins: 5 + source: model.appIcon + fillMode: Image.PreserveAspectFit + visible: status === Image.Ready + smooth: true + } + + Text { + anchors.centerIn: parent + visible: !tIcon.visible + text: model.appName.charAt(0).toUpperCase() + color: Theme.fg + font.pixelSize: Theme.fontSize + font.family: Theme.font + font.bold: true + } + } + + ColumnLayout { + Layout.fillWidth: true + spacing: 3 + + RowLayout { + Layout.fillWidth: true + + Text { + text: model.summary.length > 0 ? model.summary : model.appName + color: Theme.text + font.pixelSize: Theme.fontSize + font.family: Theme.font + font.bold: true + elide: Text.ElideRight + Layout.fillWidth: true + } + + Text { + visible: model.summary.length > 0 + text: model.appName + color: Theme.subtle + font.pixelSize: Theme.fontSizeSmall + font.family: Theme.font + } + } + + Text { + visible: model.body.length > 0 + text: model.body + color: Theme.fg2 + font.pixelSize: Theme.fontSizeSmall + font.family: Theme.font + wrapMode: Text.WordWrap + maximumLineCount: 3 + elide: Text.ElideRight + Layout.fillWidth: true + } + } + + Rectangle { + width: 22 + height: 22 + radius: 11 + color: closeBtn.containsMouse ? Theme.bg3 : "transparent" + Layout.alignment: Qt.AlignTop + + Behavior on color { ColorAnimation { duration: 100 } } + + Text { + anchors.centerIn: parent + text: "✕" + color: closeBtn.containsMouse ? Theme.fg : Theme.subtle + font.pixelSize: 11 + opacity: closeBtn.containsMouse ? 1.0 : 0.5 + + Behavior on color { ColorAnimation { duration: 100 } } + Behavior on opacity { NumberAnimation { duration: 100 } } + } + + MouseArea { + id: closeBtn + anchors.fill: parent + hoverEnabled: true + cursorShape: Qt.PointingHandCursor + onClicked: NotificationsState.dismissToast(model.tid) + } + } + } + + Rectangle { + anchors.bottom: parent.bottom + anchors.left: parent.left + height: 3 + radius: 2 + width: parent.width * model.progress + color: model.urgency === 2 ? Theme.red : Theme.accent + } + + // Does not extend to the right edge to avoid overlapping the close button + MouseArea { + anchors.fill: parent + anchors.rightMargin: 34 + cursorShape: Qt.PointingHandCursor + onClicked: { + NotificationsState.invokeDefault(model.tid) + NotificationsState.dismissToast(model.tid) + } + } + } + } + } +} diff --git a/quickshell/NotificationWidget.qml b/quickshell/NotificationWidget.qml new file mode 100644 index 0000000..6cc14e6 --- /dev/null +++ b/quickshell/NotificationWidget.qml @@ -0,0 +1,52 @@ +import QtQuick + +Item { + id: root + + width: pill.width + height: pill.height + + BarPill { + id: pill + + Text { + text: NotificationsState.unreadCount > 0 ? "󰂞" : "󰂜" + color: NotificationsState.unreadCount > 0 ? Theme.yellow : Theme.subtle + font.pixelSize: Theme.fontSize + font.family: Theme.font + + Behavior on color { ColorAnimation { duration: 150 } } + } + } + + // Overlaps the pill corner, so z and sibling anchors are used + Rectangle { + visible: NotificationsState.unreadCount > 0 + width: Math.max(15, badgeLabel.implicitWidth + 5) + height: 13 + radius: 7 + color: Theme.red + z: 10 + anchors.top: pill.top + anchors.right: pill.right + anchors.topMargin: -3 + anchors.rightMargin: -3 + + Text { + id: badgeLabel + anchors.centerIn: parent + text: NotificationsState.unreadCount > 9 + ? "9+" : NotificationsState.unreadCount.toString() + color: "white" + font.pixelSize: 8 + font.family: Theme.font + font.bold: true + } + } + + MouseArea { + anchors.fill: pill + cursorShape: Qt.PointingHandCursor + onClicked: NotificationsState.togglePanel() + } +} diff --git a/quickshell/NotificationsState.qml b/quickshell/NotificationsState.qml new file mode 100644 index 0000000..2efa017 --- /dev/null +++ b/quickshell/NotificationsState.qml @@ -0,0 +1,142 @@ +pragma Singleton +import Quickshell +import Quickshell.Services.Notifications +import QtQuick + +Singleton { + id: root + + property bool panelOpen: false + property int unreadCount: 0 + + property ListModel notifications: ListModel {} + property var _refs: ({}) // maps nid to the live Notification object + + property ListModel toasts: ListModel {} + + // Runs every 100ms while toasts are active, decrementing progress (1.0 to 0.0 over 5s) + // and removing any toast that has expired + Timer { + id: toastTick + interval: 100 + repeat: true + running: root.toasts.count > 0 + + onTriggered: { + let i = 0 + while (i < root.toasts.count) { + const p = root.toasts.get(i).progress - 0.02 + if (p <= 0) { + root.toasts.remove(i, 1) + } else { + root.toasts.setProperty(i, "progress", p) + i++ + } + } + } + } + + NotificationServer { + keepOnReload: true + + onNotification: notif => { + const ts = Date.now() + const day = root._dayLabel(ts) + + root.notifications.insert(0, { + nid: notif.id, + appName: notif.appName || "Unknown", + summary: notif.summary || "", + body: notif.body || "", + appIcon: notif.appIcon || "", + urgency: notif.urgency || 1, + timestamp: ts, + day: day + }) + + const r = root._refs + r[notif.id] = notif + root._refs = r + + if (!root.panelOpen) root.unreadCount++ + + root.toasts.insert(0, { + tid: notif.id, + appName: notif.appName || "Unknown", + summary: notif.summary || "", + body: notif.body || "", + appIcon: notif.appIcon || "", + urgency: notif.urgency || 1, + progress: 1.0 + }) + } + } + + function dismiss(index) { + if (index < 0 || index >= notifications.count) return + const entry = notifications.get(index) + const ref = _refs[entry.nid] + if (ref) { + try { ref.close() } catch (_) {} + const r = _refs + delete r[entry.nid] + _refs = r + } + notifications.remove(index, 1) + } + + function dismissAll() { + for (let i = 0; i < notifications.count; i++) { + const ref = _refs[notifications.get(i).nid] + if (ref) { try { ref.close() } catch (_) {} } + } + notifications.clear() + _refs = {} + unreadCount = 0 + } + + // Invokes the "default" action on a notification, falling back to the first action + function invokeDefault(nid) { + const ref = _refs[nid] + if (!ref) return + const actions = ref.actions + if (!actions || actions.length === 0) return + for (let i = 0; i < actions.length; i++) { + if (actions[i].identifier === "default") { + try { actions[i].invoke() } catch (_) {} + return + } + } + try { actions[0].invoke() } catch (_) {} + } + + function dismissToast(tid) { + for (let i = 0; i < toasts.count; i++) { + if (toasts.get(i).tid === tid) { + toasts.remove(i, 1) + return + } + } + } + + function togglePanel() { + panelOpen = !panelOpen + if (panelOpen) unreadCount = 0 + } + + function formatTime(ts) { + return Qt.formatDateTime(new Date(ts), "hh:mm") + } + + function _dayLabel(ts) { + const now = new Date() + const date = new Date(ts) + const today = new Date(now.getFullYear(), now.getMonth(), now.getDate()) + const yesterday = new Date(today.getTime() - 86400000) + const day = new Date(date.getFullYear(), date.getMonth(), date.getDate()) + + if (day.getTime() === today.getTime()) return "Today" + if (day.getTime() === yesterday.getTime()) return "Yesterday" + return Qt.formatDateTime(date, "dd/MM/yyyy") + } +} diff --git a/quickshell/RamMonitor.qml b/quickshell/RamMonitor.qml new file mode 100644 index 0000000..dac8dc2 --- /dev/null +++ b/quickshell/RamMonitor.qml @@ -0,0 +1,47 @@ +pragma Singleton +import Quickshell +import Quickshell.Io +import QtQuick + +Singleton { + id: root + + property int usedMb: 0 + property int totalMb: 0 + property int usage: 0 + + Timer { + interval: 2000 + running: true + repeat: true + triggeredOnStart: true + onTriggered: { + _proc.running = false + _proc.running = true + } + } + + Process { + id: _proc + command: ["bash", "-c", "grep -E '^(MemTotal|MemAvailable):' /proc/meminfo | awk '{print $2}'"] + stdout: SplitParser { + property int _total: 0 + property int _avail: 0 + property int _lines: 0 + + onRead: line => { + const v = parseInt(line.trim()) + if (isNaN(v)) return + if (_lines === 0) _total = v + else _avail = v + _lines++ + if (_lines === 2) { + root.totalMb = Math.round(_total / 1024) + root.usedMb = Math.round((_total - _avail) / 1024) + root.usage = Math.round((1 - _avail / _total) * 100) + _lines = 0 + } + } + } + } +} diff --git a/quickshell/RamWidget.qml b/quickshell/RamWidget.qml new file mode 100644 index 0000000..2a616de --- /dev/null +++ b/quickshell/RamWidget.qml @@ -0,0 +1,10 @@ +import QtQuick + +BarPill { + minWidth: 115 + + Text { text: "󰍛"; color: Theme.purple; font.pixelSize: Theme.fontSize; font.family: Theme.font } + Text { text: (RamMonitor.usedMb / 1024).toFixed(1) + " GB"; color: Theme.text; font.pixelSize: Theme.fontSize; font.family: Theme.font } + Text { text: "|"; color: Theme.muted; font.pixelSize: Theme.fontSize; font.family: Theme.font } + Text { text: RamMonitor.usage + "%"; color: Theme.text; font.pixelSize: Theme.fontSize; font.family: Theme.font } +} diff --git a/quickshell/Theme.qml b/quickshell/Theme.qml new file mode 100644 index 0000000..aeea9e3 --- /dev/null +++ b/quickshell/Theme.qml @@ -0,0 +1,52 @@ +pragma Singleton +import Quickshell +import QtQuick + +Singleton { + // Gruvbox Dark + readonly property color bg: "#282828" + readonly property color bgDark: "#1d2021" + readonly property color bg1: "#3c3836" + readonly property color bg2: "#504945" + readonly property color bg3: "#665c54" + readonly property color bg4: "#7c6f64" + + readonly property color fg: "#ebdbb2" + readonly property color fg1: "#d5c4a1" + readonly property color fg2: "#bdae93" + readonly property color fg3: "#a89984" + + readonly property color red: "#fb4934" + readonly property color green: "#b8bb26" + readonly property color yellow: "#fabd2f" + readonly property color blue: "#83a598" + readonly property color purple: "#d3869b" + readonly property color aqua: "#8ec07c" + readonly property color orange: "#fe8019" + + // Neutral (softer) variants + readonly property color redN: "#cc241d" + readonly property color greenN: "#98971a" + readonly property color yellowN: "#d79921" + readonly property color blueN: "#458588" + readonly property color purpleN: "#b16286" + readonly property color aquaN: "#689d6a" + readonly property color orangeN: "#d65d0e" + + // Semantic aliases + readonly property color accent: yellow + readonly property color urgent: red + readonly property color text: fg + readonly property color subtle: fg3 + readonly property color muted: bg4 + + readonly property int barHeight: 32 + readonly property int padding: 12 + readonly property int spacing: 8 + readonly property int radius: 6 + + readonly property string font: "JetBrainsMono Nerd Font" + readonly property string fontFallback: "monospace" + readonly property int fontSize: 13 + readonly property int fontSizeSmall: 11 +} diff --git a/quickshell/Workspaces.qml b/quickshell/Workspaces.qml new file mode 100644 index 0000000..6ac9225 --- /dev/null +++ b/quickshell/Workspaces.qml @@ -0,0 +1,47 @@ +import QtQuick +import QtQuick.Layouts + +RowLayout { + spacing: Theme.spacing + + Repeater { + model: niri.workspaces + + // Container com largura fixa — o layout nunca muda + Item { + required property var modelData + + readonly property bool focused: modelData.isFocused + readonly property bool occupied: modelData.activeWindowId !== null + + width: 24 + height: 8 + + Rectangle { + anchors.centerIn: parent + height: parent.height + radius: height / 2 + + width: parent.focused ? 20 : 8 + color: { + if (parent.focused) return Theme.accent + if (parent.occupied) return Theme.subtle + return Theme.muted + } + + Behavior on width { + NumberAnimation { duration: 150; easing.type: Easing.OutCubic } + } + Behavior on color { + ColorAnimation { duration: 150 } + } + } + + MouseArea { + anchors.fill: parent + cursorShape: Qt.PointingHandCursor + onClicked: niri.focusWorkspaceById(modelData.id) + } + } + } +} diff --git a/quickshell/shell.qml b/quickshell/shell.qml new file mode 100644 index 0000000..89f8e11 --- /dev/null +++ b/quickshell/shell.qml @@ -0,0 +1,40 @@ +import Quickshell +import Quickshell.Io +import Quickshell.Wayland +import QtQuick +import Niri 0.1 + +ShellRoot { + id: root + + property bool zenMode: false + + IpcHandler { + target: "zen" + function toggle() { root.zenMode = !root.zenMode } + } + + Niri { + id: niri + Component.onCompleted: connect() + onErrorOccurred: error => console.error("[Niri]", error) + } + + Bar {} + + // Fullscreen overlay to help closing open windows + PanelWindow { + anchors { top: true; bottom: true; left: true; right: true } + exclusiveZone: 0 + visible: NotificationsState.panelOpen && !root.zenMode + color: "transparent" + + MouseArea { + anchors.fill: parent + onClicked: NotificationsState.togglePanel() + } + } + + NotificationPanel {} + NotificationToast {} +} diff --git a/wallpapers/miku.png b/wallpapers/miku.png new file mode 100644 index 0000000000000000000000000000000000000000..a25347dcfaeb3c342e026267d7b2a704f21ed0ba GIT binary patch literal 4729076 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