me like nix
0

Configure Feed

Select the types of activity you want to include in your feed.

update quickshell

author
Sean Aye
date (Mar 22, 2026, 8:03 PM -0400) commit 2e4ff87f parent 4fd90fe3 change-id nospwwlm
+91 -19
+23 -10
hosts/common/home.nix
··· 91 91 "Mod+q".action = { 92 92 close-window = { }; 93 93 }; 94 + "Mod+f".action = { 95 + toggle-window-floating = { }; 96 + }; 97 + "Mod+Shift+f".action = { 98 + switch-focus-between-floating-and-tiling = { }; 99 + }; 94 100 "Mod+s".action = { 95 101 screenshot = { 96 102 show-pointer = true; ··· 108 114 "Mod+Equal".action = { 109 115 set-column-width = "+10%"; 110 116 }; 117 + "Mod+Shift+r".action.spawn = [ 118 + "sh" 119 + "-c" 120 + "pkill quickshell; quickshell &" 121 + ]; 111 122 "XF86MonBrightnessDown".action.spawn = [ 112 123 "brightnessctl" 113 124 "set" ··· 247 258 gh # github cli 248 259 signal-desktop 249 260 xwayland-satellite # for running x11 apps 250 - nixfmt-rfc-style # nix formatter 261 + nixfmt # nix formatter 251 262 nil # nix language server 252 263 atac # postman-like TUI 253 264 trippy # network analyzer ··· 272 283 docker-compose 273 284 discord 274 285 prismlauncher # minecraft launcher 275 - neofetch 286 + fastfetch 276 287 277 288 # --- FONTS ARE IMPORTANT --- 278 289 # Berkeley Mono is the main system font, keeping JetBrains and Font Awesome for icons ··· 294 305 295 306 services.mako = { 296 307 enable = true; 297 - borderRadius = 8; 298 - borderSize = 2; 299 - padding = "12"; 300 - margin = "12"; 301 - font = "BerkeleyMono Nerd Font 11"; 308 + settings = { 309 + border-radius = 8; 310 + border-size = 2; 311 + padding = "12"; 312 + margin = "12"; 313 + font = "BerkeleyMono Nerd Font 11"; 314 + }; 302 315 }; 303 316 304 317 catppuccin = { ··· 393 406 if test -f ~/.config/op/plugins.sh 394 407 source ~/.config/op/plugins.sh 395 408 end 396 - # Show neofetch when inside zellij 409 + # Show fastfetch when inside zellij 397 410 if set -q ZELLIJ 398 - neofetch 411 + fastfetch --logo small 399 412 end 400 413 401 414 function y ··· 519 532 name = "nix"; 520 533 auto-format = true; 521 534 formatter = { 522 - command = "${pkgs.nixfmt-rfc-style}/bin/nixfmt"; 535 + command = "${pkgs.nixfmt}/bin/nixfmt"; 523 536 }; 524 537 } 525 538 {
+68 -9
hosts/common/quickshell/shell.qml
··· 64 64 readonly property string iconBatCharge: "\uf0e7" 65 65 // Power 66 66 readonly property string iconPower: "\u23fb" 67 + // GitHub 68 + readonly property string iconGithub: "\uf09b" 67 69 68 70 // System data 69 71 property int cpuUsage: 0 ··· 82 84 property string batteryStatus: "" 83 85 property string powerProfile: "" 84 86 property string weather: "" 87 + property int ghNotifications: 0 88 + property int ghLastCount: 0 85 89 86 90 anchors { 87 91 top: true ··· 256 260 Component.onCompleted: running = true 257 261 } 258 262 263 + // GitHub notifications 264 + Process { 265 + id: ghProc 266 + command: ["sh", "-c", "gh api notifications --jq '[.[] | select(.unread)] | length' 2>/dev/null || echo 0"] 267 + stdout: SplitParser { 268 + onRead: data => { 269 + if (!data) return 270 + var count = parseInt(data.trim()) || 0 271 + root.ghNotifications = count 272 + // Send desktop notification if count increased 273 + if (count > root.ghLastCount && count > 0) { 274 + ghNotifyProc.running = true 275 + } 276 + root.ghLastCount = count 277 + } 278 + } 279 + Component.onCompleted: running = true 280 + } 281 + 282 + // Desktop notification for new GitHub notifications 283 + Process { 284 + id: ghNotifyProc 285 + command: ["notify-send", "-a", "GitHub", "GitHub", "You have new notifications"] 286 + } 287 + 288 + // GitHub timer (refresh every 2 minutes) 289 + Timer { 290 + interval: 120000 291 + running: true 292 + repeat: true 293 + onTriggered: ghProc.running = true 294 + } 295 + 259 296 // Weather timer (refresh every 15 minutes) 260 297 Timer { 261 298 interval: 900000 ··· 282 319 } 283 320 } 284 321 285 - // Center section - absolutely positioned 322 + // Left section - time, weather, github 286 323 RowLayout { 287 - anchors.centerIn: parent 324 + anchors.left: parent.left 325 + anchors.leftMargin: 12 326 + anchors.verticalCenter: parent.verticalCenter 288 327 spacing: 12 289 - 290 - Text { 291 - color: root.colText 292 - font { family: root.fontFamily; pixelSize: root.fontSize } 293 - text: root.weather 294 - visible: root.weather !== "" 295 - } 296 328 297 329 Text { 298 330 id: clockText ··· 305 337 repeat: true 306 338 onTriggered: clockText.text = Qt.formatDateTime(new Date(), "dd-MM-yyyy HH:mm") 307 339 } 340 + } 341 + 342 + Rectangle { width: 1; height: 16; color: root.colOverlay0; visible: root.weather !== "" } 343 + 344 + Text { 345 + color: root.colText 346 + font { family: root.fontFamily; pixelSize: root.fontSize } 347 + text: root.weather 348 + visible: root.weather !== "" 349 + } 350 + 351 + Rectangle { width: 1; height: 16; color: root.colOverlay0 } 352 + 353 + Text { 354 + color: root.ghNotifications > 0 ? root.colBlue : root.colOverlay0 355 + font { family: root.fontFamily; pixelSize: root.fontSize } 356 + text: root.iconGithub + (root.ghNotifications > 0 ? " " + root.ghNotifications : "") 357 + MouseArea { 358 + anchors.fill: parent 359 + cursorShape: Qt.PointingHandCursor 360 + onClicked: ghOpenProc.running = true 361 + } 362 + } 363 + 364 + Process { 365 + id: ghOpenProc 366 + command: ["xdg-open", "https://github.com/notifications"] 308 367 } 309 368 } 310 369