diff --git a/config/battery.nix b/config/battery.nix
index bfb66c8..79ffadb 100644
--- a/config/battery.nix
+++ b/config/battery.nix
@@ -8,11 +8,6 @@ lib.mkIf (config.machine == "fire") {
percentageCritical = 5;
};
- # Power and temperature management tools
- services.thermald.enable = true;
- services.tlp.enable = true;
- services.tlp.settings = {
- TLP_DEFAULT_MODE = "BAT";
- TLP_PERSISTENT_DEFAULT = 1;
- };
+ # Power management tools
+ services.power-profiles-daemon.enable = true;
}
diff --git a/flake.lock b/flake.lock
index 31a0b56..8fcd1f7 100644
--- a/flake.lock
+++ b/flake.lock
@@ -7,11 +7,11 @@
]
},
"locked": {
- "lastModified": 1750304462,
- "narHash": "sha256-Mj5t4yX05/rXnRqJkpoLZTWqgStB88Mr/fegTRqyiWc=",
+ "lastModified": 1759853171,
+ "narHash": "sha256-uqbhyXtqMbYIiMqVqUhNdSuh9AEEkiasoK3mIPIVRhk=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "863842639722dd12ae9e37ca83bcb61a63b36f6c",
+ "rev": "1a09eb84fa9e33748432a5253102d01251f72d6d",
"type": "github"
},
"original": {
@@ -40,11 +40,11 @@
"mobile-nixos": {
"flake": false,
"locked": {
- "lastModified": 1749499850,
- "narHash": "sha256-Fyy9ySTJ7jJ7z2h5+KHJU6OUhPJvy12OlVOichkwmZ0=",
+ "lastModified": 1759261417,
+ "narHash": "sha256-TjuoBb8+isL3KTdGgtYh90XPyeUMFbgNAOG9l23CB3A=",
"owner": "mobile-nixos",
"repo": "mobile-nixos",
- "rev": "26faf325d6efb169e2e4a2c435346b46c19d08bc",
+ "rev": "e6f6d527bf6abf94dd52fbba3143a720cef96431",
"type": "github"
},
"original": {
@@ -55,11 +55,11 @@
},
"nixos-hardware": {
"locked": {
- "lastModified": 1750431636,
- "narHash": "sha256-vnzzBDbCGvInmfn2ijC4HsIY/3W1CWbwS/YQoFgdgPg=",
+ "lastModified": 1759582739,
+ "narHash": "sha256-spZegilADH0q5OngM86u6NmXxduCNv5eX9vCiUPhOYc=",
"owner": "NixOS",
"repo": "nixos-hardware",
- "rev": "1552a9f4513f3f0ceedcf90320e48d3d47165712",
+ "rev": "3441b5242af7577230a78ffb03542add264179ab",
"type": "github"
},
"original": {
@@ -70,11 +70,11 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1750365781,
- "narHash": "sha256-XE/lFNhz5lsriMm/yjXkvSZz5DfvKJLUjsS6pP8EC50=",
+ "lastModified": 1759831965,
+ "narHash": "sha256-vgPm2xjOmKdZ0xKA6yLXPJpjOtQPHfaZDRtH+47XEBo=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "08f22084e6085d19bcfb4be30d1ca76ecb96fe54",
+ "rev": "c9b6fb798541223bbb396d287d16f43520250518",
"type": "github"
},
"original": {
@@ -84,6 +84,45 @@
"type": "github"
}
},
+ "quickshell": {
+ "inputs": {
+ "nixpkgs": [
+ "quickshell-toki-night",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1759610621,
+ "narHash": "sha256-P3UPFd95mS/3aNgy40nCXAmyfR2bEEBd+tX6xfkYFb0=",
+ "rev": "c5c438f1cd1a76660a8658ef929a3d19e968e2ce",
+ "type": "tarball",
+ "url": "https://git.outfoxxed.me/api/v1/repos/quickshell/quickshell/archive/c5c438f1cd1a76660a8658ef929a3d19e968e2ce.tar.gz"
+ },
+ "original": {
+ "type": "tarball",
+ "url": "https://git.outfoxxed.me/quickshell/quickshell/archive/master.tar.gz"
+ }
+ },
+ "quickshell-toki-night": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ],
+ "quickshell": "quickshell",
+ "systems": "systems"
+ },
+ "locked": {
+ "lastModified": 1759976594,
+ "narHash": "sha256-bTrBPRu8CM4YHRSDT6mI5SylEHshujSb2r++C6O/vug=",
+ "rev": "6e1fb585e30d3503dd120f19e64535005357ffc7",
+ "type": "tarball",
+ "url": "https://git.tokinanpa.dev/api/v1/repos/toki/quickshell-toki-night/archive/6e1fb585e30d3503dd120f19e64535005357ffc7.tar.gz"
+ },
+ "original": {
+ "type": "tarball",
+ "url": "https://git.tokinanpa.dev/toki/quickshell-toki-night/archive/main.tar.gz"
+ }
+ },
"root": {
"inputs": {
"home-manager": "home-manager",
@@ -91,6 +130,7 @@
"mobile-nixos": "mobile-nixos",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs",
+ "quickshell-toki-night": "quickshell-toki-night",
"sxmo": "sxmo",
"tokyo-night-sddm-src": "tokyo-night-sddm-src"
}
@@ -111,6 +151,21 @@
"type": "github"
}
},
+ "systems": {
+ "locked": {
+ "lastModified": 1680978846,
+ "narHash": "sha256-Gtqg8b/v49BFDpDetjclCYXm8mAnTrUzR0JnE2nv5aw=",
+ "owner": "nix-systems",
+ "repo": "x86_64-linux",
+ "rev": "2ecfcac5e15790ba6ce360ceccddb15ad16d08a8",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "x86_64-linux",
+ "type": "github"
+ }
+ },
"tokyo-night-sddm-src": {
"flake": false,
"locked": {
diff --git a/flake.nix b/flake.nix
index 8aa8cea..7b4c9ac 100644
--- a/flake.nix
+++ b/flake.nix
@@ -13,6 +13,10 @@ inputs = {
home-manager.url = "github:nix-community/home-manager/master";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
+ quickshell-toki-night.url = "https://git.tokinanpa.dev/toki/quickshell-toki-night/archive/main.tar.gz";
+ quickshell-toki-night.inputs.nixpkgs.follows = "nixpkgs";
+ quickshell-toki-night.inputs.systems.url = "github:nix-systems/x86_64-linux";
+
tokyo-night-sddm-src.url = "github:rototrash/tokyo-night-sddm";
tokyo-night-sddm-src.flake = false;
macos-hyprcursor-src.url = "github:driedpampas/macOS-hyprcursor";
diff --git a/home-manager/default.nix b/home-manager/default.nix
index ebfd303..0e96ed5 100644
--- a/home-manager/default.nix
+++ b/home-manager/default.nix
@@ -5,5 +5,12 @@
home.stateVersion = "21.11";
- imports = [ ./shell ./wayland ./xdg.nix ./tools.nix ./email.nix ];
+ imports = [
+ ./shell
+ ./wayland
+
+ ./email.nix
+ ./tools.nix
+ ./xdg.nix
+ ];
}
diff --git a/home-manager/wayland/default.nix b/home-manager/wayland/default.nix
index 84e8a9b..84727f9 100644
--- a/home-manager/wayland/default.nix
+++ b/home-manager/wayland/default.nix
@@ -7,8 +7,8 @@
imports = [
./hyprland.nix
- ./wltools.nix
- ./waybar.nix
./idle.nix
+ ./quickshell.nix
+ ./wltools.nix
];
}
diff --git a/home-manager/wayland/eww/eww.scss b/home-manager/wayland/eww/eww.scss
deleted file mode 100644
index 0e63d34..0000000
--- a/home-manager/wayland/eww/eww.scss
+++ /dev/null
@@ -1,268 +0,0 @@
-$background: #1a1626;
-$background-alt: #202330;
-$background-scale: #414868;
-$foreground: #c0caf5;
-$foreground-alt: #8189af;
-$foreground-light: #343b58;
-$disabled: #565f89;
-$accent: #f6a8cf;
-
-* {
- all: unset;
- font-family: "Quicksand Medium";
-}
-
-@mixin segment {
- background-color: $background-alt;
- border-radius: 20px;
- margin: 0px 2px;
-}
-
-.bar {
- background-color: $background;
- color: $foreground;
- font-size: 13px;
-
- padding: 3px 0px;
-}
-
-
-tooltip {
- background-color: rgba(22, 16, 30, 0.9);
- border-radius: 5px;
- font-size: 13px;
-}
-
-.detail {
- font-size: 10px;
- color: $foreground-alt;
-}
-
-.bar-sep {
- margin: 0px 4px;
- color: $background-alt;
- font-size: 22px;
-}
-
-.bar-window {
- margin-left: 14px;
-
- .detail {
- margin-top: 1px;
- }
-
- :not(.detail) {
- margin-top: -2px;
- margin-left: 1px;
- }
-}
-
-.bar-time {
- @include segment;
- font-size: 15px;
- padding: 0px 10px;
-
- .bar-date {
- margin-top: 1px;
- font-size: 11px;
- color: #a9b1d6;
- }
-}
-
-.bar-music {
- @include segment;
- padding: 0px 2px;
-
- .progress {
- .back {
- color: $background-scale;
- }
-
- .front {
- color: $accent;
- }
- }
-
- .symbol.stopped {
- font-size: 15px;
- color: $foreground-alt;
- margin-left: -2px;
- }
-
- .symbol.paused {
- font-size: 12px;
- margin-left: 2px;
- }
-
- .symbol.playing {
- font-size: 15px;
- margin-top: 1px;
- }
-
- .bar-music-meta {
- margin-left: 6px;
- margin-right: 10px;
- }
-
- .bar-artist {
- margin-top: 1px;
- margin-bottom: -2px;
- }
-
- .bar-title {
- margin-bottom: -3px;
- }
-}
-
-
-.bar-workspaces {
- @include segment;
- padding: 3px;
-
- .workspace-button {
- min-width: 23px;
- border-radius: 100%;
- color: #51587a;
-
- &.current + box {
- border-radius: 100%;
- background-color: $accent;
- color: $foreground-light;
- }
-
- &.occupied {
- background-color: $background-scale;
- color: $accent;
- }
-
- &.occupied.previous-occupied {
- border-top-left-radius: 0;
- border-bottom-left-radius: 0;
- }
-
- &.occupied.next-occupied {
- border-top-right-radius: 0;
- border-bottom-right-radius: 0;
- }
- }
-}
-
-scale trough {
- background-color: $background-scale;
- border-radius: 5px;
- min-height: 6px;
- min-width: 60px;
- margin: 0px 5px;
-
- highlight {
- border-radius: 5px;
- }
-}
-
-.bar-scale {
- margin: 0px 5px;
-
- .percent {
- margin-top: -1px;
- margin-left: 3px;
- }
-}
-
-@mixin scale-color($color) {
- color: $color;
-
- scale highlight {
- background-color: $color;
- }
-}
-
-.bar-volume {
- @include scale-color(#7dcfff);
- &.muted { @include scale-color(#f7768e); }
-
- .symbol {
- margin-right: 6px;
- font-size: 17;
- }
-}
-
-.bar-brightness {
- @include scale-color(#e0af68);
-
- margin-right: 4px;
-
- .symbol {
- margin-right: 7px;
- font-size: 14px;
- }
-}
-
-.bar-internet {
- margin-left: 5px;
- margin-right: 9px;
- font-size: 15px;
- color: #bb9af7;
-
- &.disabled {
- color: $disabled;
- }
-}
-
-.bar-bluetooth {
- margin: 0px 3px;
- font-size: 15px;
- color: #7aa2f7;
-
- &.disabled {
- color: $disabled;
- }
-}
-
-
-.bar-circular {
- margin: 0px 3px;
- font-size: 15px;
-
- .back {
- color: $background-scale;
- }
-
- &.critical {
- color: #f7768e;
- }
-}
-
-.bar-battery {
- color: #8ece6a;
-}
-
-.bar-ram {
- color: #b4f9f8;
- .symbol {
- margin-right: 5px;
- }
-}
-
-.bar-storage {
- color: #cfc9c2;
- .symbol {
- margin-right: 1px;
- }
-}
-
-.bar-power {
- font-size: 18px;
- margin-left: 4px;
- margin-right: 10px;
- color: #f7768e;
-}
-
-.power {
- font-size: 36px;
-
- button > box {
- background-color: $background;
- border-radius: 8px;
- margin: 5px;
- }
-}
diff --git a/home-manager/wayland/eww/eww.yuck b/home-manager/wayland/eww/eww.yuck
deleted file mode 100644
index 35038fa..0000000
--- a/home-manager/wayland/eww/eww.yuck
+++ /dev/null
@@ -1,432 +0,0 @@
-
-;; Window Info
-
-(deflisten window :initial "{}"
- "scripts/active-window")
-
-(defwidget bar_window [class-limit title-limit]
- (box :class "bar-window"
- :orientation "v"
- :space-evenly false
- (label :class "detail"
- :halign "start"
- :valign "end"
- :limit-width class-limit
- :text {window.class ?: "Desktop"})
- (label :halign "start"
- :valign "end"
- :limit-width title-limit
- :text {window.title ?: "Workspace ${current_workspace}"})))
-
-;; Workspaces
-
-(deflisten workspaces :initial "[]"
- "scripts/get-workspaces")
-(deflisten current_workspace :initial "1"
- "scripts/get-active-workspace")
-
-(defwidget bar_workspace_button [workspace]
- (eventbox :onclick "hyprctl dispatch workspace ${workspace.id}"
- (overlay
- (box :class "workspace-button ${workspace.id == current_workspace ? "current" : ""
-} ${workspace.windows > 0 ? "occupied" : ""
-} ${workspace.previous > 0 ? "previous-occupied" : ""
-} ${workspace.next > 0 ? "next-occupied" : ""}"
- {workspace.id})
- (box :visible {workspace.id == current_workspace}
- {workspace.id}))))
-
-(defwidget bar_workspaces []
- (eventbox :onscroll "scripts/change-active-workspace {} ${current_workspace}"
- (box :class "bar-workspaces"
- :orientation "h"
- :space-evenly true
- (for workspace in workspaces
- (bar_workspace_button :workspace workspace)))))
-
-;; Time
-
-(defwidget bar_time [width]
- (box :class "bar-time segment"
- :orientation "h"
- :width width
- :space-evenly false
- :spacing 6
- (label :halign "start"
- :yalign 0.5
- :text {formattime(EWW_TIME, "%H:%M:%S")})
- (label :class "bar-date"
- :halign "end"
- :hexpand true
- :yalign 0.5
- :text {formattime(EWW_TIME, "%a %Y-%m-%d")})))
-
-;; Playerctl
-
-(deflisten mpris :initial "{}"
- "scripts/mpris-metadata")
-
-(defwidget bar_music [artist-limit title-limit]
- (eventbox :onclick "playerctl play-pause"
- (box :class "bar-music"
- :orientation "h"
- :space-evenly false
- (box :class "progress"
- (overlay
- (circular-progress :class "back"
- :value 100
- :width 25
- :thickness 2)
- (circular-progress :class "front"
- :value {(mpris.position ?: 0) == 0 ||
- (mpris.duration ?: 0) == 0 ? 0 :
- mpris.position > mpris.duration ? 100 :
- mpris.position / mpris.duration * 100}
- :width 25
- :thickness 2
- :start-at 75
- :clockwise true)
- (label :class "symbol ${(mpris.title ?: "") == "" || (mpris.status ?: "Stopped") == "Stopped" ? "stopped" :
- mpris.status == "Playing" ? "playing" : "paused"}"
- :text {(mpris.title ?: "") == "" || (mpris.status ?: "Stopped") == "Stopped" ? "" :
- mpris.status == "Playing" ? "" : ""})))
- (revealer :transition "slideright"
- :duration "800ms"
- :reveal {(mpris.title ?: "") != "" && (mpris.status ?: "Stopped") != "Stopped"}
- (box :orientation "v"
- :class "bar-music-meta"
- :space-evenly false
- (label :class "bar-artist detail"
- :halign "start"
- :limit-width artist-limit
- :text {mpris.artist ?: ""})
- (label :class "bar-title"
- :halign "start"
- :limit-width title-limit
- :text {mpris.title ?: ""}))))))
-
-
-;; Scales (Volume + Brightness)
-
-(defwidget bar_scale [?class reveal-name reveal value symbol onchange ?onclick]
- (eventbox :onhover "${EWW_CMD} update ${reveal-name}=true"
- :onhoverlost "${EWW_CMD} update ${reveal-name}=false"
- (box :class "bar-scale ${class}"
- :space-evenly false
- (eventbox :onclick onclick
- (label :class "symbol"
- :text symbol))
- (revealer :transition "slideright"
- :reveal reveal
- :duration "400ms"
- (scale :value value
- :orientation "h"
- :width "100%"
- :min 0
- :max 101
- :onchange onchange))
- (eventbox :onclick onclick
- (label :class "percent"
- :width 29
- :xalign 0
- :text "${value}%")))))
-
-
-(defvar volume_reveal false)
-(deflisten volume :initial "0"
- "scripts/volume")
-
-(defwidget bar_volume []
- (bar_scale :class "bar-volume ${volume.muted ? "muted" : ""}"
- :reveal-name "volume_reveal"
- :reveal volume_reveal
- :value {volume.value}
- :symbol {volume.muted ? "" :
- volume.value < 5 ? "" :
- volume.value < 35 ? "" :
- volume.value < 66 ? "" : ""}
- :onchange "pamixer --set-volume {}"
- :onclick "pamixer -t"))
-
-
-(defvar brightness_reveal false)
-(deflisten brightness :initial "0"
- "scripts/brightness")
-
-(defwidget bar_brightness []
- (bar_scale :class "bar-brightness"
- :reveal-name "brightness_reveal"
- :reveal brightness_reveal
- :value brightness
- :symbol ""
- :onchange "brightnessctl -e s {}%"))
-
-
-;; Circular Indicators
-
-(defwidget bar_circular [?class ?critical ?tooltip value symbol]
- (box :class "bar-circular ${class} ${(critical ?: false) ? "critical" : ""}"
- :orientation "h"
- :tooltip tooltip
- (overlay
- (circular-progress :class "back"
- :value 100
- :width 25
- :thickness 2
- :start-at 75
- :clockwise true)
- (circular-progress :class "front"
- :value value
- :width 25
- :thickness 2
- :start-at 75
- :clockwise true)
- (label :class "symbol"
- :text symbol))))
-
-(defwidget bar_battery []
- (bar_circular :class "bar-battery"
- :critical {EWW_BATTERY["BAT1"].capacity <= 15
- && EWW_BATTERY["BAT1"].status != "Charging"}
- :tooltip "Battery: ${EWW_BATTERY["BAT1"].capacity}%${
- EWW_BATTERY["BAT1"].status == "Charging" ? " (Charging)" : ""}"
- :value {EWW_BATTERY["BAT1"].capacity}
- :symbol {EWW_BATTERY["BAT1"].status == "Charging" ? "" : ""}))
-
-(defwidget bar_ram []
- (bar_circular :class "bar-ram"
- :critical {EWW_RAM.used_mem_perc >= 80}
- :tooltip "RAM: ${round(EWW_RAM.used_mem / 1073741824, 2)
-} / ${round(EWW_RAM.total_mem / 1073741824, 2)} GB (${round(EWW_RAM.used_mem_perc, 2)}%)"
- :value {EWW_RAM.used_mem_perc}
- :symbol ""))
-
-(defwidget bar_storage []
- (bar_circular :class "bar-storage"
- :critical {EWW_DISK["/"].used_perc >= 95}
- :tooltip "Storage: ${round(EWW_DISK["/"].used / 1073741824, 2)
-} / ${round(EWW_DISK["/"].total / 1073741824, 0)} GB (${round(EWW_DISK["/"].used_perc, 2)}%)"
- :value {EWW_DISK["/"].used_perc}
- :symbol ""))
-
-;; Network
-
-(defpoll wifi :interval "5s" :initial "{}"
- "scripts/network 802-11-wireless")
-(defpoll ethernet :interval "5s" :initial "{}"
- "scripts/network 802-3-ethernet")
-(defpoll bluetooth :interval "5s" :initial "{}"
- "scripts/network bluetooth")
-
-(defvar internet_reveal false)
-
-(defwidget bar_internet []
- (box :class "bar-internet ${wifi == "{}" && ethernet == "{}" ? "disabled" : ""}"
- :space-evenly false
- :tooltip {ethernet != "{}" ? "${ethernet.name} (${ethernet.device})" :
- wifi != "{}" ? "${wifi.name} (${wifi.device})" : ""}
- {wifi != "{}" ? "" : ethernet != "{}" ? "" : ""}))
-
-(defwidget bar_bluetooth []
- (box :class "bar-bluetooth ${bluetooth == "{}" ? "disabled" : ""}"
- {bluetooth != "{}" ? "" : ""}))
-
-;; Power Menu
-
-(defpoll idleinhibit :interval "10s" :initial "0"
- "pgrep -c -f wayland\"\"-idle-inhibitor || true")
-
-(defwidget bar_power [screen]
- (eventbox :onclick "${EWW_CMD} active-windows | grep -q power_${screen} \
-&& ${EWW_CMD} close power_${screen} || ${EWW_CMD} open power --id power_${screen} --screen ${screen}"
- (box :class "bar-power"
- "⏻")))
-
-(defwindow power [screen]
- :geometry (geometry
- :width "375px"
- :height "150px"
- :anchor "top right")
- :namespace "eww-bar"
- :stacking "fg"
- :exclusive false
- :focusable false
- (eventbox :onhoverlost "${EWW_CMD} close power_${screen}"
- (box :class "power"
- :orientation "v"
- (box :orientation "h"
- (button :onclick "${EWW_CMD} close power_${screen}; systemctl suspend"
- :tooltip "Sleep"
- (box :style "color: #9aa5ce;"
- ""))
- (button :onclick "${EWW_CMD} close power_${screen}; hyprlock --immediate &"
- :tooltip "Lock"
- (box :style "color: #cfc9c2;"
- ""))
- (button :onclick "${EWW_CMD} close power_${screen}; hyprctl dispatch exit"
- :tooltip "Log Out"
- (box :style "color: #7dcfff; padding-left: 0.3ex;"
- ""))
- (button :onclick "${EWW_CMD} close power_${screen}; reboot"
- :tooltip "Reboot"
- (box :style "color: #e0af68;"
- ""))
- (button :onclick "${EWW_CMD} close power_${screen}; poweroff"
- :tooltip "Shutdown"
- (box :style "color: #f7768e; font-size: 1.35em; padding-bottom: 0.15ex;"
- "⏼")))
- (box
- :orientation "h"
- (box) (box) (box) (box)
- (button :onclick "scripts/toggle-idle-inhibit && ${EWW_CMD} poll idleinhibit"
- :tooltip "Idle Inhibitor: ${idleinhibit > 0 ? "On" : "Off"}"
- (box :style "padding-right: 0.5ex; ${idleinhibit > 0 ?
- "color: #ff9e64" :
- "color: #565f89; padding-top: 0.3ex;"}"
- {idleinhibit > 0 ? "" : ""}))))))
-
-
-;; Separator
-
-(defwidget bar_sep []
- (box :class "bar-sep"
- :hexpand false
- :vexpand false
- "|"))
-
-
-;; Bar Layout
-
-(defwidget fire_bar_left_edge []
- (box :orientation "h"
- :space-evenly false
- :halign "start"
- :hexpand true
- (bar_window :class-limit 60
- :title-limit 50)))
-
-(defwidget fire_bar_left_wing []
- (box :orientation "h"
- :space-evenly false
- :halign "end"
- :hexpand true
- (bar_time :width 175)))
-
-(defwidget fire_bar_center []
- (bar_workspaces))
-
-(defwidget fire_bar_right_wing []
- (box :orientation "h"
- :space-evenly false
- :hexpand true
- (bar_music :width 175
- :artist-limit 30
- :title-limit 25)))
-
-(defwidget fire_bar_right_edge [screen]
- (box :orientation "h"
- :space-evenly false
- :halign "end"
- :hexpand true
- (bar_volume)
- (bar_brightness)
- (bar_sep)
- (bar_bluetooth)
- (bar_internet)
- (bar_sep)
- (bar_storage)
- (bar_ram)
- (bar_battery)
- (bar_sep)
- (bar_power :screen screen)))
-
-(defwidget fire_bar_layout [screen]
- (centerbox :class "bar"
- :orientation "h"
- (box :orientation "h"
- :space-evenly false
- :hexpand true
- (fire_bar_left_edge)
- (fire_bar_left_wing))
- (fire_bar_center)
- (box :orientation "h"
- :space-evenly false
- (fire_bar_right_wing)
- (fire_bar_right_edge :screen screen))))
-
-
-(defwidget earth_bar_left_edge []
- (box :orientation "h"
- :space-evenly false
- :halign "start"
- :hexpand true
- (bar_window :class-limit 90
- :title-limit 80)))
-
-(defwidget earth_bar_left_wing []
- (box :orientation "h"
- :space-evenly false
- :halign "end"
- :hexpand true
- (bar_time :width 175)))
-
-(defwidget earth_bar_center []
- (bar_workspaces))
-
-(defwidget earth_bar_right_wing []
- (box :orientation "h"
- :space-evenly false
- :hexpand true
- (bar_music :width 175
- :artist-limit 30
- :title-limit 25)))
-
-(defwidget earth_bar_right_edge [screen]
- (box :orientation "h"
- :space-evenly false
- :halign "end"
- :hexpand true
- (bar_volume)
- (bar_sep)
- (bar_bluetooth)
- (bar_internet)
- (bar_sep)
- (bar_storage)
- (bar_ram)
- (bar_sep)
- (bar_power :screen screen)))
-
-(defwidget earth_bar_layout [screen]
- (centerbox :class "bar"
- :orientation "h"
- (box :orientation "h"
- :space-evenly false
- :hexpand true
- (earth_bar_left_edge)
- (earth_bar_left_wing))
- (earth_bar_center)
- (box :orientation "h"
- :space-evenly false
- (earth_bar_right_wing)
- (earth_bar_right_edge :screen screen))))
-
-
-(defwindow fire_bar [screen]
- :geometry (geometry :width "100%"
- :height "35px"
- :anchor "top center")
- :namespace "eww-bar"
- :stacking "fg"
- :exclusive true
- :focusable false
- (fire_bar_layout :screen screen))
-
-(defwindow earth_bar [screen]
- :geometry (geometry :width "100%"
- :height "35px"
- :anchor "top center")
- :namespace "eww-bar"
- :stacking "fg"
- :exclusive true
- :focusable false
- (earth_bar_layout :screen screen))
diff --git a/home-manager/wayland/eww/scripts/active-window b/home-manager/wayland/eww/scripts/active-window
deleted file mode 100755
index 8678080..0000000
--- a/home-manager/wayland/eww/scripts/active-window
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/usr/bin/env bash
-hyprctl activewindow -j | jq -c .
-socat -u UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - |
- stdbuf -o0 grep -ose '^activewindow>>' | while read -r line; do
- hyprctl activewindow -j | jq -c .
-done
diff --git a/home-manager/wayland/eww/scripts/brightness b/home-manager/wayland/eww/scripts/brightness
deleted file mode 100755
index db5358b..0000000
--- a/home-manager/wayland/eww/scripts/brightness
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/usr/bin/env bash
-brightnessctl -me | cut -d, -f4 | tr -d '%'
-device=$(brightnessctl -m | head -n 1 | cut -d, -f1)
-while true; do
- inotifywait /sys/class/backlight/"$device"/brightness &>/dev/null
- brightnessctl -me | cut -d, -f4 | tr -d '%'
-done
diff --git a/home-manager/wayland/eww/scripts/change-active-workspace b/home-manager/wayland/eww/scripts/change-active-workspace
deleted file mode 100755
index 106aea6..0000000
--- a/home-manager/wayland/eww/scripts/change-active-workspace
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/env bash
-
-direction=$1
-current=$2
-
-min=1
-max=10
-
-function clamp {
- if test $1 -lt $min; then
- echo $min
- elif test $1 -gt $max; then
- echo $max
- else
- echo $1
- fi
-}
-
-if test "$direction" = "down"
-then
- target=$(clamp $(($current+1)))
- echo "jumping to $target"
- hyprctl dispatch workspace $target
-elif test "$direction" = "up"
-then
- target=$(clamp $(($current-1)))
- echo "jumping to $target"
- hyprctl dispatch workspace $target
-fi
diff --git a/home-manager/wayland/eww/scripts/get-active-workspace b/home-manager/wayland/eww/scripts/get-active-workspace
deleted file mode 100755
index 65245a4..0000000
--- a/home-manager/wayland/eww/scripts/get-active-workspace
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/usr/bin/env bash
-hyprctl monitors -j | jq '.[] | select(.focused) | .activeWorkspace.id'
-socat -u UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - |
- stdbuf -o0 awk -F '>>|,' -e '/^workspace>>/ {print $2}' -e '/^focusedmon>>/ {print $3}'
diff --git a/home-manager/wayland/eww/scripts/get-workspaces b/home-manager/wayland/eww/scripts/get-workspaces
deleted file mode 100755
index 3d43617..0000000
--- a/home-manager/wayland/eww/scripts/get-workspaces
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/usr/bin/env bash
-
-workspaces() {
- hyprctl workspaces -j | jq -c 'map({key: .id | tostring, value: .windows}) | from_entries
- | . as $windows | [range(1;11) | {id: tostring, windows: ($windows[tostring] // 0),
- previous: ($windows[.-1|tostring] // 0), next: ($windows[.+1|tostring] // 0)}]'
-}
-
-workspaces
-socat -u UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | while read -r line; do
- workspaces
-done
diff --git a/home-manager/wayland/eww/scripts/mpris-metadata b/home-manager/wayland/eww/scripts/mpris-metadata
deleted file mode 100755
index c4593dc..0000000
--- a/home-manager/wayland/eww/scripts/mpris-metadata
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/usr/bin/env bash
-playerctl metadata --follow --format \
-'{"playerName": "{{ playerName }}",'\
-'"status": "{{ status }}",'\
-'"artist": "{{ artist }}",'\
-'"title": "{{ title }}",'\
-'"album": "{{ album }}",'\
-'"position": "{{ position }}",'\
-'"position_d": "{{ duration(position) }}",'\
-'"duration": "{{ mpris:length }}",'\
-'"duration_d": "{{ duration(mpris:length) }}"}'
diff --git a/home-manager/wayland/eww/scripts/network b/home-manager/wayland/eww/scripts/network
deleted file mode 100755
index 42715ff..0000000
--- a/home-manager/wayland/eww/scripts/network
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/env bash
-nmcli -t c show --active | awk -F ':' -e \
- '// { if ($3 == "'$1'") {
- print "{\"name\":\""$1"\",\"device\":\""$4"\"}";
- found = 1;
- exit;
- }}
- END { if (!found) print "{}" }'
diff --git a/home-manager/wayland/eww/scripts/toggle-idle-inhibit b/home-manager/wayland/eww/scripts/toggle-idle-inhibit
deleted file mode 100755
index 6981e75..0000000
--- a/home-manager/wayland/eww/scripts/toggle-idle-inhibit
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/usr/bin/env bash
-if pkill -0 -f wayland-idle-inhibitor; then
- pkill -f wayland-idle-inhibitor
-else
- wayland-idle-inhibitor &
-fi
diff --git a/home-manager/wayland/eww/scripts/volume b/home-manager/wayland/eww/scripts/volume
deleted file mode 100755
index 783efa6..0000000
--- a/home-manager/wayland/eww/scripts/volume
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/usr/bin/env bash
-
-volume() {
- echo '{"value":'$(pamixer --get-volume)',"muted":"'$(pamixer --get-mute)'"}'
-}
-
-volume
-pw-mon -oa | stdbuf -o0 grep -os "changed:" | while read -r line; do
- volume
-done
diff --git a/home-manager/wayland/hyprland.nix b/home-manager/wayland/hyprland.nix
index fe6d607..22df653 100644
--- a/home-manager/wayland/hyprland.nix
+++ b/home-manager/wayland/hyprland.nix
@@ -1,6 +1,7 @@
{ config, pkgs, lib, ... }:
let
scripts = ./scripts;
+ shell = "quickshell";
in {
wayland.windowManager.hyprland = {
enable = true;
@@ -9,17 +10,9 @@ in {
plugins = [ pkgs.hyprlandPlugins.hy3 ];
- settings = let
- # Volume using pamixer
- audio-disp = "${scripts}/multimedia Volume $(pamixer --get-mute) pamixer $(pamixer --get-volume)";
- audio = cmd: "pamixer ${cmd} && ${audio-disp}";
- # Brightness using brightnessctl
- brightness-disp = ''${scripts}/multimedia Brightness "" brightnessctl $(brightnessctl -e -m | cut -d, -f4 | tr -d "%")'';
- brightness = x: "brightnessctl -e set ${x} && ${brightness-disp}";
- in {
+ settings = {
"$mod" = "SUPER";
"$terminal" = "alacritty";
- "$menu" = "rofi -show drun";
env = [
"HYPRCURSOR_THEME,macos"
@@ -40,7 +33,8 @@ in {
};
windowrulev2 = [
- "bordercolor rgb(f7768e),fullscreen:1"
+ "bordercolor rgb(f7768e), fullscreen:1"
+ "noanim, initialClass:ueberzug(.*)"
];
cursor = {
@@ -98,9 +92,13 @@ in {
bind = [
"$mod, Return, exec, $terminal"
- "$mod, D, exec, $menu"
+ "$mod, D, global, ${shell}:launcher"
+ "$mod Shift, D, global, ${shell}:dashboard"
"$mod, M, exec, hyprlock --immediate"
+ # Exit
+ "$mod Shift, E, global, ${shell}:session"
+
# Emacs Everywhere
# "$mod, Q, exec, $HOME/.config/emacs/bin/doom +everywhere"
@@ -136,43 +134,42 @@ in {
# Screenshot
"$mod, P, exec, ${scripts}/screenshot-save"
+
+ # Workspace manipulation
+ "$mod, N, global, ${shell}:newworkspace"
+ "$mod Shift, N, global, ${shell}:movetonewworkspace"
] ++
- # Workspace manipulation
builtins.concatMap (n:
let
wsp = builtins.toString n;
key = if n == 10 then "0" else wsp;
in [
- "$mod, ${key}, workspace, ${wsp}"
- "$mod Shift, ${key}, hy3:movetoworkspace, ${wsp}"
+ "$mod, ${key}, global, ${shell}:workspace${wsp}"
+ "$mod Shift, ${key}, global, ${shell}:movetoworkspace${wsp}"
]) (lib.range 1 10);
bindn = [
", mouse:272, hy3:focustab, mouse"
+ ", escape, global, ${shell}:escape"
];
bindl = [
# XF86 key bindings
- ", XF86AudioMute, exec, ${audio "--toggle-mute"}"
- ", XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle"
- ", XF86AudioPlay, exec, playerctl play-pause"
- ", XF86AudioNext, exec, playerctl next"
- ", XF86AudioPrev, exec, playerctl previous"
+ ", XF86AudioMute, global, ${shell}:mute"
+ ", XF86AudioMicMute, global, ${shell}:muteMic"
+ ", XF86AudioPlay, global, ${shell}:mediaToggle"
+ ", XF86AudioNext, global, ${shell}:mediaNext"
+ ", XF86AudioPrev, global, ${shell}:mediaPrev"
+ ", XF86AudioStop, global, ${shell}:mediaStop"
+ ", XF86AudioRaiseVolume, global, ${shell}:volumeUp"
+ ", XF86AudioLowerVolume, global, ${shell}:volumeDown"
+ ", XF86MonBrightnessUp, global, ${shell}:brightnessUp"
+ ", XF86MonBrightnessDown, global, ${shell}:brightnessDown"
# Screenshot
", Print, exec, ${scripts}/screenshot"
"Shift, Print, exec, ${scripts}/screenshot-slurp"
];
-
- bindle = [
- # XF86 key bindings
- ", XF86AudioRaiseVolume, exec, ${audio "-i 2"}"
- ", XF86AudioLowerVolume, exec, ${audio "-d 2"}"
- "Shift, XF86AudioRaiseVolume, exec, ${audio "-i 2 --allow-boost"}"
- "Shift, XF86AudioLowerVolume, exec, ${audio "-d 2 --allow-boost"}"
- ", XF86MonBrightnessDown, exec, ${brightness "4%-"}"
- ", XF86MonBrightnessUp, exec, ${brightness "4%+"}"
- ];
};
};
}
diff --git a/home-manager/wayland/quickshell.nix b/home-manager/wayland/quickshell.nix
new file mode 100644
index 0000000..72b4a6d
--- /dev/null
+++ b/home-manager/wayland/quickshell.nix
@@ -0,0 +1,19 @@
+{ pkgs, lib, quickshell-toki-night, ... }:
+{
+ systemd.user.services.quickshell = {
+ Install.WantedBy = [ "graphical-session.target" ];
+
+ Unit = {
+ Description = "Quickshell desktop UI manager";
+ Documentation = "https://git.tokinanpa.dev/toki/quickshell-toki-night";
+ After = [ "graphical-session-pre.target" ];
+ PartOf = [ "graphical-session.target" ];
+ };
+
+ Service = {
+ ExecStart = lib.getExe quickshell-toki-night.packages.${pkgs.system}.default;
+ Restart = "always";
+ RestartSec = "10";
+ };
+ };
+}
diff --git a/home-manager/wayland/rofi/config.rasi b/home-manager/wayland/rofi/config.rasi
deleted file mode 100644
index cda37be..0000000
--- a/home-manager/wayland/rofi/config.rasi
+++ /dev/null
@@ -1,160 +0,0 @@
-configuration {
- cycle: false;
- modi: "drun";
- font: "JetBrainsMono Nerd Font 12";
- location: 0;
- terminal: "alacritty";
-
- show-icons: true;
- hide-scrollbar: true;
- disable-history: false;
- click-to-exit: true;
-
- drun-display-format: "{icon} {name}";
- display-drun: "";
-
- // Bindings
- kb-remove-to-eol: "";
- kb-mode-complete: "";
- kb-remove-char-back: "BackSpace,Shift+BackSpace";
- kb-accept-entry: "Control+m,Return,KP_Enter";
- kb-element-next: "Tab,Control+j";
- kb-element-prev: "ISO_Left_Tab,Control+k";
-}
-
-@theme "tokyonight"
-
-window {
- transparency: "real";
- background-color: @bg;
- text-color: @fg;
- border: 2px;
- border-color: @blue;
- border-radius: 30px;
- width: 550px;
- height: 65%;
- anchor: center;
- x-offset: 0;
- y-offset: 0;
-}
-
-prompt {
- enabled: true;
- padding: 8px;
- background-color: @bg;
- text-color: @red;
-}
-
-textbox-prompt-colon {
- expand: false;
- str: "";
- border-radius: 100%;
- background-color: @selected;
- text-color: @fg;
- padding: 8px 16px 8px 12px;
-}
-
-entry {
- background-color: @bg;
- text-color: @fg;
- placeholder-color: @placeholder;
- expand: true;
- horizontal-align: 0;
- placeholder: "Search...";
- blink: true;
- border: 0px 0px 2px 0px;
- border-color: @blue;
- border-radius: 10px;
- padding: 8px;
-}
-
-inputbar {
- children: [ textbox-prompt-colon, prompt, entry ];
- background-color: @bg;
- text-color: @fg;
- expand: false;
- border: 0px 0px 0px 0px;
- border-radius: 0px;
- border-color: @blue;
- margin: 0px 0px 0px 0px;
- padding: 0px;
- position: center;
-}
-
-case-indicator {
- background-color: @bg;
- text-color: @fg;
- spacing: 0;
-}
-
-listview {
- background-color: @bg;
- columns: 1;
- lines: 10;
- spacing: 4px;
- cycle: false;
- border: 0px;
- dynamic: true;
- layout: vertical;
- scrollbar: false;
-}
-
-mainbox {
- background-color: @bg;
- children: [ inputbar, listview ];
- spacing: 15px;
- padding: 15px;
-}
-
-element.normal.normal,
-element.alternate.normal {
- background-color: @bg;
- text-color: @fg;
- orientation: horizontal;
- border-radius: 4px;
- padding: 6px 6px 6px 6px;
- border: 0px;
-}
-
-element-icon {
- background-color: inherit;
- text-color: inherit;
- horizontal-align: 0.5;
- vertical-align: 0.5;
- size: 24px;
- border: 0px;
-}
-
-element-text {
- background-color: inherit;
- text-color: inherit;
- expand: true;
- horizontal-align: 0;
- vertical-align: 0.5;
- margin: 2px 0px 2px 2px;
-}
-
-element normal.urgent,
-element alternate.urgent {
- background-color: @UGT;
- text-color: @FG;
- border-radius: 9px;
-}
-
-element selected {
- background-color: @selected;
- text-color: @blue;
- border: 0px 0px 0px 0px;
- border-radius: 10px;
- border-color: @blue;
-}
-
-element selected.urgent {
- background-color: @red;
- text-color: @fg2;
-}
-
-element selected.active {
- background-color: @selected;
- color: @blue;
-}
diff --git a/home-manager/wayland/rofi/tokyonight.rasi b/home-manager/wayland/rofi/tokyonight.rasi
deleted file mode 100644
index eaf3471..0000000
--- a/home-manager/wayland/rofi/tokyonight.rasi
+++ /dev/null
@@ -1,14 +0,0 @@
-* {
- bg: #1a1b26;
- bg-light: #272834;
- selected: #282e49;
- blue: #7bc5e4;
- fg: #abb2bf;
- fg2: #e06c75;
- grey: #565c64;
- red: #ce7284;
- green: #7dc5a0;
- empty: #5b668e;
- inactive: #4a5374;
- placeholder: #474f6f;
-}
diff --git a/home-manager/wayland/scripts/multimedia b/home-manager/wayland/scripts/multimedia
deleted file mode 100755
index 4a8c880..0000000
--- a/home-manager/wayland/scripts/multimedia
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/usr/bin/env bash
-notify-send "$1" "$2" -c multimedia -a "$3" \
- $(busctl --user -j call org.freedesktop.Notifications /fr/emersion/Mako fr.emersion.Mako ListNotifications |
- jq -r 'first(.data[][]|select(.category.data=="multimedia")|.id.data|["-r",.])[]') \
- -h "INT:value:$4"
diff --git a/home-manager/wayland/scripts/screenshot b/home-manager/wayland/scripts/screenshot
index 2201f2a..921b70e 100755
--- a/home-manager/wayland/scripts/screenshot
+++ b/home-manager/wayland/scripts/screenshot
@@ -1,4 +1,4 @@
#!/usr/bin/env bash
grim - | wl-copy
notify-send "Screenshot saved to clipboard" \
- -a grim -c screenshot -u low -t 3000
+ -a grim -c screenshot -u low -e
diff --git a/home-manager/wayland/scripts/screenshot-save b/home-manager/wayland/scripts/screenshot-save
index cf89ff0..f49678e 100755
--- a/home-manager/wayland/scripts/screenshot-save
+++ b/home-manager/wayland/scripts/screenshot-save
@@ -3,8 +3,8 @@ if test $(wl-paste -l) = "image/png"; then
name=$(date '+%Y-%m-%d_%H-%M-%S').png
wl-paste -t "image/png" > ~/Pictures/"$name"
notify-send "Image stored at $name" \
- -a grim -c screenshot -u low -t 3000
+ -a grim -c screenshot -u low
else
notify-send "No image in clipboard" \
- -a grim -c screenshot -u low -t 3000
+ -a grim -c screenshot -u low -t 2000 -e
fi
diff --git a/home-manager/wayland/scripts/screenshot-slurp b/home-manager/wayland/scripts/screenshot-slurp
index a1046ba..6421e5a 100755
--- a/home-manager/wayland/scripts/screenshot-slurp
+++ b/home-manager/wayland/scripts/screenshot-slurp
@@ -2,8 +2,8 @@
if region="$(slurp)"; then
grim -g "$region" - | wl-copy
notify-send "Screenshot saved to clipboard" \
- -a grim -c screenshot -u low -t 3000
+ -a grim -c screenshot -u low -e
else
notify-send "Screenshot cancelled" \
- -a grim -c screenshot -u low -t 3000
+ -a grim -c screenshot -u low -t 2000 -e
fi
diff --git a/home-manager/wayland/waybar.nix b/home-manager/wayland/waybar.nix
deleted file mode 100644
index d41d1ec..0000000
--- a/home-manager/wayland/waybar.nix
+++ /dev/null
@@ -1,292 +0,0 @@
-{ config, pkgs, ... }:
-{
- programs.waybar = {
- enable = false;
-
- settings =
- let spanfa = "";
- in [{
- layer = "top";
- height = 32;
- margin = "8 8 0";
-
- modules-left = [ "hyprland/workspaces" "custom/sep" "cpu" "memory" "temperature" ];
-
- modules-center = [ "hyprland/window" ];
-
- modules-right =
- if config.machine == "fire" then
- [ "battery" "pulseaudio" "backlight" "network" "clock" "idle_inhibitor" ]
- else
- [ "pulseaudio" "network" "clock" "idle_inhibitor" ];
-
-
- modules = {
- "mpd" = {
- format = "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ ";
- format-disconnected = "Disconnected ";
- format-stopped = "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ";
- unknown-tag = "N/A";
- interval = 2;
-
- consume-icons.on = " ";
- random-icons.off = " ";
- random-icons.on = " ";
- repeat-icons.on = " ";
- single-icons.on = "1 ";
- state-icons.paused = "";
- state-icons.playing = "";
-
- tooltip-format = "MPD (connected)";
- tooltip-format-disconnected = "MPD (disconnected)";
- };
- "idle_inhibitor" = {
- format = "{icon}";
- format-icons.activated = "";
- format-icons.deactivated = "";
- };
- "tray" = {
- # icon-size = 21;
- spacing = 10;
- };
- "clock" = {
- format = " {:%H:%M}";
- tooltip-format = "{:%Y %B}\n{calendar}";
- format-alt = " {:%Y-%m-%d}";
- };
- "cpu" = {
- format = " {usage}%";
- tooltip = false;
- };
- "battery" = {
- states.warning = 30;
- states.low = 15;
- states.critical = 5;
-
- format = "{icon} {capacity}%";
- format-icons = [ "" "" "" "" "" "" "" "" "" "" "" ];
- format-charging = " {capacity}%";
- format-time = "{H}h {M}m";
- };
- "memory" = {
- format = "${spanfa} {}%";
- };
- "temperature" = {
- # thermal-zone = 2;
- # hwmon-path = "/sys/class/hwmon/hwmon2/temp1_input";
- critical-threshold = 80;
- format = "${spanfa}{icon} {temperatureC}°C";
- format-icons = [ "" "" "" "" "" ];
- };
- "backlight" = {
- # device = "acpi_video1";
- format = "{icon} {percent}%";
- format-icons = [ "" "" "" "" "" ];
- };
- "network" = {
- # interface = "wlp2*"; # (Optional) To force the use of this interface
- format = "{ifname}";
- format-wifi = "${spanfa} Online";
- format-ethernet = "${spanfa} ";
- format-disconnected = "";
- tooltip-format-wifi = "{essid} - {signalStrength}%";
- tooltip-format-ethernet = "{signalStrength}%";
- tooltip-format-disconnected = "";
- };
- "pulseaudio" = {
- scroll-step = 1;
- smooth-scrolling-threshold = 2.0;
- format = "${spanfa}{icon} {volume}%";
- format-bluetooth = " ${spanfa}{icon} {volume}%";
- format-bluetooth-muted = "${spanfa} 0%";
- format-muted = "${spanfa} {volume}%";
-
- format-icons.headphone = "";
- format-icons.phone = "";
- format-icons.portable = "";
- format-icons.car = "";
- format-icons.default = [ "" "" "" ];
-
- on-click = "pamixer -t";
- };
- "custom/media" = {
- format = "{icon} {}";
- return-type = "json";
- max-length = 40;
-
- format-icons.spotify = "";
- format-icons.default = "🎜";
-
- escape = true;
- };
- "custom/sep".format = "";
- };
- }];
-
- style =
- ''
- @define-color background #1a1b26;
- @define-color foreground #a9b1d6;
- @define-color red #ce7284;
- @define-color green #7dc5a0;
- @define-color yellow #caaa6a;
- @define-color blue #7bc5e4;
- @define-color magenta #ad8ee6;
- @define-color altred #d5556f;
- @define-color altgreen #b9f27c;
- @define-color altyellow #ff9e64;
- @define-color altblend #282e49;
- @define-color empty #474f6f;
- @define-color pink #c386c0;
- @define-color violet #8682de;
-
- * {
- border: none;
- font-family: "JetBrainsMono Nerd Font", monospace;
- font-size: 13px;
- }
-
- window#waybar {
- background-color: @background;
- border-radius: 8px;
- color: @foreground;
- padding: 3px 0px;
- }
-
- #custom-sep {
- color: @altblend;
- font-size: 14px;
- }
-
- #workspaces {
- margin-left: 6px;
- }
-
- #workspaces button {
- padding: 0px 3px;
- border-radius: 0px;
- color: @blue;
- }
-
- #workspaces button:hover {
- box-shadow: inherit;
- background: @background;
- border: none;
- padding: 0px 3px;
- text-shadow: 0px 0px 2px shade(@blue, 1.1);
- }
-
- #workspaces button.active {
- color: shade(@pink, 1.1);
- text-shadow: 0px 0px 2px shade(@pink, 1.2);
- }
-
- #workspaces button.urgent {
- background-color: @altred;
- color: #ffffff;
- }
-
- #clock,
- #battery,
- #cpu,
- #memory,
- #disk,
- #temperature,
- #network,
- #custom-media,
- #tray,
- #mode,
- #idle_inhibitor,
- #mpd {
- margin: 0px 8px;
- }
-
- #idle_inhibitor {
- padding: 0px 8px 0px 0px;
- }
-
-
- #cpu {
- background-color: @altblend;
- margin: 3px 0px 3px 2px;
- padding-right: 5px;
- padding-left: 8px;
- border-radius: 18px 0px 0px 18px;
- }
-
- #pulseaudio {
- background-color: @altblend;
- ${
- if config.machine == "fire" then
- ''
- margin: 3px 0px 3px 2px;
- padding-right: 5px;
- padding-left: 8px;
- border-radius: 18px 0px 0px 18px;
- ''
- else
- ''
- margin: 3px 2px;
- padding: 0px 8px;
- border-radius: 18px;
- ''
- }
- }
-
- #backlight, #memory {
- background-color: @altblend;
- margin: 3px 4px 3px 0px;
- padding-left: 5px;
- padding-right: 8px;
- border-radius: 0px 18px 18px 0px;
- }
-
- #network {
- background-color: @altblend;
- margin: 3px 4px;
- padding: 0px 6px;
- border-radius: 18px;
- }
-
-
- #window {
- font-family: "NotoSans Nerd Font";
- font-size: 12px;
- }
-
- #mode {
- color: @magenta;
- text-shadow: 0px 0px 2px shade(@magenta, 1.05);
- }
-
- #cpu {color: @green;}
- #memory {color: @yellow;}
- #temperature {color: @blue;}
- #clock {color: @blue;}
-
- #temperature {color: @blue;}
- #temperature.critical {color: @altyellow;}
-
- @keyframes blink { to { color: @background; } }
-
- #battery {color: @green;}
- #battery.warning:not(.charging) {color: @altyellow;}
- #battery.low:not(.charging) {color: @altred;}
- #battery.critical:not(.charging) {
- color: #ff2525;
- animation-name: blink;
- animation-duration: 1s;
- animation-timing-function: linear;
- animation-iteration-count: infinite;
- animation-direction: alternate;
- }
-
- #backlight {color: @yellow;}
- #network {color: @green;}
- #pulseaudio {color: @pink;}
- #pulseaudio.muted {color: @red;}
- #idle_inhibitor.deactivated {color: @altred;}
- #idle_inhibitor.activated {color: @altgreen;}
- '';
- };
-}
diff --git a/home-manager/wayland/wltools.nix b/home-manager/wayland/wltools.nix
index a764b3a..d64b085 100644
--- a/home-manager/wayland/wltools.nix
+++ b/home-manager/wayland/wltools.nix
@@ -107,110 +107,9 @@
};
};
- # Rofi
-
- programs.rofi.enable = true;
- programs.rofi.package = pkgs.rofi-wayland;
-
- xdg.configFile.rofi.source = ./rofi;
-
- # EWW
-
- programs.eww.enable = true;
- programs.eww.configDir = ./eww;
-
- systemd.user.services.eww =
- let eww = lib.getExe config.programs.eww.package;
- in {
- Install.WantedBy = [ "graphical-session.target" ];
-
- Unit = {
- Description = "GTK-based custom widgets";
- Documentation = "https://github.com/elkowar/eww";
- After = [ "graphical-session-pre.target" ];
- PartOf = [ "graphical-session.target" ];
- ConditionEnvironment = "WAYLAND_DISPLAY";
- };
-
- Service = {
- ExecStart = "${eww} daemon --no-daemonize";
- ExecStartPost = "${eww} open ${config.machine}_bar --screen 0";
- Restart = "always";
- RestartSec = "5";
- };
- };
-
- # Mako
-
- services.mako.enable = true;
- services.mako.settings = {
- font = "JetBrainsMono Nerd Font 10";
- format = ''%a\n%s\n\n%b'';
- layer = "overlay";
- backgroundColor = "#111320d0";
- width = 300;
- margin = "5";
- padding = "5,10";
- borderSize = 2;
- borderColor = "#7bc5e4";
- borderRadius = 5;
- progressColor = "source #4e90ad";
-
- extraConfig =
- ''
- [urgency=low]
- format=%s\n%b
- background-color=#111111c0
- border-color=#787c99
- progress-color=source #474f6f
- border-size=1
-
- [urgency=high]
- background-color=#1e0909d0
- border-color=#ce7284
- progress-color=source #bc5469
- border-size=2
- default-timeout=0
- ignore-timeout=1
-
-
- [app-name=discord]
- format=%s\n\n%b
- border-color=#7da6ff
-
- [app-name=discordcanary]
- format=%s\n\n%b
- border-color=#7da6ff
-
-
- [category=multimedia]
- anchor=center
- width=430
- font=JetBrainsMono Nerd Font 13
- format=%s
- border-size=1
- default-timeout=2000
-
- [category=multimedia app-name=pamixer body=false]
- background-color=#111111c0
- border-color=#787c99
- progress-color=source #474f6f
-
- [category=multimedia app-name=pamixer body=true]
- background-color=#111111c0
- border-color=#ce7284
- progress-color=source #bc5469
-
- [category=multimedia app-name=brightnessctl]
- background-color=#111111c0
- border-color=#ffea63
- progress-color=source #a08348
- '';
- };
-
# WLuma
- # systemd.user.services.wluma = lib.mkIf (config.machine== "fire") {
+ # systemd.user.services.wluma = lib.mkIf (config.machine == "fire") {
# Install.WantedBy = [ "graphical-session.target" ];
# Unit = {