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 = {