From 16b66ba515532e5f94533e9e5f54254e22059101 Mon Sep 17 00:00:00 2001 From: Emmet Date: Sat, 8 Mar 2025 16:24:10 -0600 Subject: [PATCH] Trying ashell --- flake.lock | 115 +++++++++++++-- flake.nix | 5 + modules/user/bluetooth/default.nix | 3 - .../dmenu-scripts/networkmanager-dmenu.nix | 2 +- modules/user/hyprland/default.nix | 136 ++++++++---------- 5 files changed, 169 insertions(+), 92 deletions(-) diff --git a/flake.lock b/flake.lock index c21852e0..d5035c5d 100644 --- a/flake.lock +++ b/flake.lock @@ -33,6 +33,29 @@ "type": "github" } }, + "ashell": { + "inputs": { + "crane": "crane", + "flake-utils": "flake-utils", + "nixpkgs": [ + "nixpkgs" + ], + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1741471836, + "narHash": "sha256-eI3mFllV2GUXkkySHWOSZ6g32amkDHi56nWYWg9LOag=", + "owner": "librephoenix", + "repo": "ashell", + "rev": "02f2d9ce7d04c2a76aa7578c1b9177c6342fbf80", + "type": "github" + }, + "original": { + "owner": "librephoenix", + "repo": "ashell", + "type": "github" + } + }, "base16": { "inputs": { "fromYaml": "fromYaml" @@ -139,6 +162,21 @@ "type": "github" } }, + "crane": { + "locked": { + "lastModified": 1739936662, + "narHash": "sha256-x4syUjNUuRblR07nDPeLDP7DpphaBVbUaSoeZkFbGSk=", + "owner": "ipetkov", + "repo": "crane", + "rev": "19de14aaeb869287647d9461cbd389187d8ecdb7", + "type": "github" + }, + "original": { + "owner": "ipetkov", + "repo": "crane", + "type": "github" + } + }, "emacs-overlay": { "inputs": { "nixpkgs": [ @@ -266,6 +304,24 @@ } }, "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { "inputs": { "systems": [ "stylix", @@ -555,7 +611,7 @@ "nixpkgs" ], "pre-commit-hooks": "pre-commit-hooks", - "systems": "systems", + "systems": "systems_2", "xdph": "xdph" }, "locked": { @@ -755,7 +811,7 @@ "nixpkgs": [ "nixpkgs" ], - "systems": "systems_2" + "systems": "systems_3" }, "locked": { "lastModified": 1735497496, @@ -808,7 +864,7 @@ "nixpkgs": [ "nixpkgs" ], - "systems": "systems_3" + "systems": "systems_4" }, "locked": { "lastModified": 1741123584, @@ -1084,6 +1140,7 @@ }, "root": { "inputs": { + "ashell": "ashell", "blocklist-hosts": "blocklist-hosts", "chaotic": "chaotic", "emacs-overlay": "emacs-overlay", @@ -1094,7 +1151,7 @@ "nixpkgs": "nixpkgs_2", "nixpkgs-stable": "nixpkgs-stable_2", "plasma-manager": "plasma-manager", - "rust-overlay": "rust-overlay", + "rust-overlay": "rust-overlay_2", "secrets": "secrets", "stylix": "stylix" } @@ -1117,6 +1174,27 @@ } }, "rust-overlay": { + "inputs": { + "nixpkgs": [ + "ashell", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1740969088, + "narHash": "sha256-BajboqzFnDhxVT0SXTDKVJCKtFP96lZXccBlT/43mao=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "20fdb02098fdda9a25a2939b975abdd7bc03f62d", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "rust-overlay_2": { "inputs": { "nixpkgs": "nixpkgs_3" }, @@ -1162,13 +1240,13 @@ "base16-vim": "base16-vim", "firefox-gnome-theme": "firefox-gnome-theme", "flake-compat": "flake-compat_2", - "flake-utils": "flake-utils", + "flake-utils": "flake-utils_2", "git-hooks": "git-hooks", "gnome-shell": "gnome-shell", "home-manager": "home-manager_3", "nixpkgs": "nixpkgs_4", "nur": "nur", - "systems": "systems_4", + "systems": "systems_5", "tinted-foot": "tinted-foot", "tinted-kitty": "tinted-kitty", "tinted-schemes": "tinted-schemes", @@ -1191,16 +1269,16 @@ }, "systems": { "locked": { - "lastModified": 1689347949, - "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "owner": "nix-systems", - "repo": "default-linux", - "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" }, "original": { "owner": "nix-systems", - "repo": "default-linux", + "repo": "default", "type": "github" } }, @@ -1235,6 +1313,21 @@ } }, "systems_4": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, + "systems_5": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", diff --git a/flake.nix b/flake.nix index 8cc08001..ca1a3894 100644 --- a/flake.nix +++ b/flake.nix @@ -105,6 +105,11 @@ inputs.hyprutils.follows = "hyprutils"; }; + ashell = { + url = "github:librephoenix/ashell"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + plasma-manager = { url = "github:nix-community/plasma-manager"; inputs.nixpkgs.follows = "nixpkgs"; diff --git a/modules/user/bluetooth/default.nix b/modules/user/bluetooth/default.nix index bbff4111..b2d88fb5 100644 --- a/modules/user/bluetooth/default.nix +++ b/modules/user/bluetooth/default.nix @@ -13,8 +13,5 @@ in { home.packages = with pkgs; [ blueman ]; - services = { - blueman-applet.enable = true; - }; }; } diff --git a/modules/user/dmenu-scripts/networkmanager-dmenu.nix b/modules/user/dmenu-scripts/networkmanager-dmenu.nix index 3c1716c5..0207d4ef 100644 --- a/modules/user/dmenu-scripts/networkmanager-dmenu.nix +++ b/modules/user/dmenu-scripts/networkmanager-dmenu.nix @@ -5,7 +5,7 @@ let dmenuCmd = cfg.dmenuCmd; in { config = lib.mkIf cfg.enable { - home.packages = with pkgs; [ networkmanager_dmenu networkmanagerapplet ]; + home.packages = with pkgs; [ networkmanager_dmenu ]; home.file.".config/networkmanager-dmenu/config.ini".text = '' [dmenu] diff --git a/modules/user/hyprland/default.nix b/modules/user/hyprland/default.nix index 81da9dd6..6708c274 100644 --- a/modules/user/hyprland/default.nix +++ b/modules/user/hyprland/default.nix @@ -56,15 +56,11 @@ in exec-once = [ "hyprctl setcursor ${config.gtk.cursorTheme.name} ${builtins.toString config.gtk.cursorTheme.size}" "hyprpaper" - "eww open-many bar:first bar:second bar:third --arg first:monitor=0 --arg second:monitor=1 --arg third:monitor=2" + "ashell" "hypridle" - "hyprland-monitor-attached ~/.local/bin/eww-reload-bars.sh" "iio-hyprland" "hyprprofile Default" "ydotoold" - "sleep 13 && caffeine" - "nm-applet" - "blueman-applet" "GOMAXPROCS=1 syncthing --no-browser" "STEAM_FRAME_FORCE_CLOSE=1 steam -silent" "protonmail-bridge --noninteractive" @@ -347,18 +343,18 @@ in layerrule = [ "blur,waybar" - "blur,eww" + "blur,ashell" "blur,launcher # fuzzel" "blur,~nwggrid" "blur,gtk-layer-shell" "xray 1,waybar" - "xray 1,eww" + "xray 1,ashell" "xray 1,~nwggrid" "xray 1,gtk-layer-shell" "ignorezero, gtk-layer-shell" - "ignorezero, eww" + "ignorezero, ashell" "animation fade,~nwggrid" - "animation popin 80%, eww" + "animation popin 80%, ashell" ]; blurls = [ @@ -380,12 +376,11 @@ in home.packages = (with pkgs; [ hyprland-monitor-attached - caffeine-ng alacritty kitty killall polkit_gnome - eww + (inputs.ashell.defaultPackage.${system}) nwg-launchers papirus-icon-theme (pkgs.writeScriptBin "nwggrid-wrapper" '' @@ -503,11 +498,58 @@ in then echo "Shouldn't suspend"; sleep 10; else echo "Should suspend"; systemctl suspend; fi '') ]); - home.file.".local/bin/eww-reload-bars.sh" = { - text = ''#!/bin/sh - eww open-many bar:first bar:second bar:third --arg first:monitor=0 --arg second:monitor=1 --arg third:monitor=2;''; - executable = true; - }; + home.file.".config/ashell.yml".text = '' +outputs: All +position: Top +modules: + left: + - [ AppLauncher, SystemInfo ] + center: + - Workspaces + right: + - [Clock, Privacy, Settings, Tray] +appLauncherCmd: "nwggrid-wrapper" # optional, default None +truncateTitleAfterLength: 150 # optional, default 150 +workspaces: + visibilityMode: MonitorSpecific # optional, default All + enableWorkspaceFilling: true # optional, default false +system: + cpuWarnThreshold: 80 # cpu indicator warning level (default 60) + cpuAlertThreshold: 95 # cpu indicator alert level (default 80) + memWarnThreshold: 50 # mem indicator warning level (default 70) + memAlertThreshold: 75 # mem indicator alert level (default 85) + tempWarnThreshold: 90 # temperature indicator warning level (default 60) + tempAlertThreshold: 95 # temperature indicator alert level (default 80) +clock: + format: "%a %d %b %R" # optional, default: %a %d %b %R +mediaPlayer: + maxTitleLength: 100 # optional, default 100 +settings: + lockCmd: "hyprlock &" # optional, default None + audioSinksMoreCmd: "pavucontrol -t 3" # optional default None + audioSourcesMoreCmd: "pavucontrol -t 4" # optional, default None + wifiMoreCmd: "nm-connection-editor" # optional, default None + vpnMoreCmd: "nm-connection-editor" # optional, default None + bluetoothMoreCmd: "blueman-manager" # optional, default None +appearance: + backgroundColor: "#${config.lib.stylix.colors.base00}88" # used as a base background color for header module button + primaryColor: "#${config.lib.stylix.colors.base0B}" # used as a accent color + secondaryColor: "#${config.lib.stylix.colors.base01}" # used for darker background color + successColor: "#${config.lib.stylix.colors.base0A}" # used for success message or happy state + dangerColor: "#${config.lib.stylix.colors.base08}" # used for danger message or danger state (the weak version is used for the warning state + textColor: "#${config.lib.stylix.colors.base07}" # base default text color + # this is a list of color that will be used in the workspace module (one color for each monitor) + workspaceColors: + - "#${config.lib.stylix.colors.base0B}" + - "#${config.lib.stylix.colors.base0B}" + # this is a list of color that will be used in the workspace module + # for the special workspace (one color for each monitor) + # optional, default None + # without a value the workspaceColors list will be used + specialWorkspaceColors: + - "#${config.lib.stylix.colors.base0B}" + - "#${config.lib.stylix.colors.base0B}" + ''; home.file.".config/hypr/hypridle.conf".text = '' general { lock_cmd = pgrep hyprlock || hyprlock @@ -606,70 +648,10 @@ in ''; services.swayosd.enable = true; services.swayosd.topMargin = 0.5; - services.cbatticon = { - enable = true; - iconType = "symbolic"; - }; - home.file.".config/eww/eww.yuck".source = ./eww/eww.yuck; - home.file = { - ".config/eww/eww.scss".source = config.lib.stylix.colors { - template = builtins.readFile ./eww/eww.scss.mustache; - extension = ".scss"; - }; - }; - home.file.".config/nwg-launchers/nwggrid/style.css".text = '' - button, label, image { - background: none; - border-style: none; - box-shadow: none; - color: #${config.lib.stylix.colors.base07}; - font-size: 20px; - } - - button { - padding: 5px; - margin: 5px; - text-shadow: none; - } - - button:hover { - background-color: rgba(${config.lib.stylix.colors.base07-rgb-r},${config.lib.stylix.colors.base07-rgb-g},${config.lib.stylix.colors.base07-rgb-b},0.15); - } - - button:focus { - box-shadow: 0 0 10px; - } - - button:checked { - background-color: rgba(${config.lib.stylix.colors.base07-rgb-r},${config.lib.stylix.colors.base07-rgb-g},${config.lib.stylix.colors.base07-rgb-b},0.15); - } - - #searchbox { - background: none; - border-color: #${config.lib.stylix.colors.base07}; - color: #${config.lib.stylix.colors.base07}; - margin-top: 20px; - margin-bottom: 20px; - font-size: 20px; - } - - #separator { - background-color: rgba(${config.lib.stylix.colors.base00-rgb-r},${config.lib.stylix.colors.base00-rgb-g},${config.lib.stylix.colors.base00-rgb-b},0.55); - color: #${config.lib.stylix.colors.base07}; - margin-left: 500px; - margin-right: 500px; - margin-top: 10px; - margin-bottom: 10px - } - - #description { - margin-bottom: 20px - } - ''; home.file.".config/nwg-launchers/nwggrid/terminal".text = "alacritty -e"; services.udiskie.enable = true; - services.udiskie.tray = "always"; + services.udiskie.tray = "never"; programs.fuzzel.enable = true; programs.fuzzel.package = pkgs.fuzzel; programs.fuzzel.settings = {