From 8b140ef996417e5390a0730d66252c06d6ce8c7b Mon Sep 17 00:00:00 2001 From: Simone Camito Date: Sun, 15 Dec 2024 19:30:05 +0100 Subject: [PATCH] update changelog and readme --- CHANGELOG.md | 4 ++ README.md | 163 +++++++++++++++++++++++++++------------------------ 2 files changed, 90 insertions(+), 77 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8d918b1..e450d0c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Added + +- Multi monitor support + ### Changed - Update to pop-os Iced 14.0-dev diff --git a/README.md b/README.md index 0fccc88..eb19bac 100644 --- a/README.md +++ b/README.md @@ -5,10 +5,11 @@ A ready to go Wayland status bar for Hyprland > If you have an issue with the transparency you could try launching ashell with WGPU_BACKEND=gl. This env var forces wgpu to use OpenGL instead of Vulkan. It seems that wgpu has some issues with AMD GPU and Vulkan transparency. ### Does it only work on Hyprland? -While it's currently tailored for Hyprland, it could work with other compositors. -However, it currently relies on [hyprland-rs](https://github.com/hyprland-community/hyprland-rs) -to gather information about the active window and workspaces. I haven't implemented any +While it's currently tailored for Hyprland, it could work with other compositors. + +However, it currently relies on [hyprland-rs](https://github.com/hyprland-community/hyprland-rs) +to gather information about the active window and workspaces. I haven't implemented any feature flags to disable these functionalities or alternative methods to obtain this data. ## Install @@ -20,13 +21,15 @@ feature flags to disable these functionalities or alternative methods to obtain You can get the official Arch Linux package from the AUR: #### Tagged release + ``` -paru/yay -S ashell +paru/yay -S ashell ``` #### Main branch + ``` -paru/yay -S ashell-git +paru/yay -S ashell-git ``` ### ALT Linux @@ -41,14 +44,15 @@ apt-get install ashell To install ashell using the nix package be sure to enable flakes and then run #### Tagged release + ``` -nix profile install github:MalpenZibo/ashell?ref=0.1.0 +nix profile install github:MalpenZibo/ashell?ref=0.3.1 ``` #### Main branch ``` -nix profile install github:MalpenZibo/ashell +nix profile install github:MalpenZibo/ashell ``` ### NixOS @@ -56,6 +60,7 @@ nix profile install github:MalpenZibo/ashell I haven't tested ashell on NixOS. To enable this flake use + ```nix { pkgs, ... }: @@ -72,8 +77,7 @@ To enable this flake use ``` > I'm not an expert and I haven't tested this configuration -but I'm quite sure that if you use NixOS you are smart enough to add ashell to your configuration :D - +> but I'm quite sure that if you use NixOS you are smart enough to add ashell to your configuration :D ## Features @@ -88,44 +92,51 @@ but I'm quite sure that if you use NixOS you are smart enough to add ashell to y - Date time - Privacy (check microphone, camera and screenshare usage) - Settings panel - - Power menu - - Battery information - - Audio sources and sinks - - Screen brightness - - Network stuff - - VPN - - Bluetooth - - Power profiles - - Idle inhibitor - - Airplane mode + - Power menu + - Battery information + - Audio sources and sinks + - Screen brightness + - Network stuff + - VPN + - Bluetooth + - Power profiles + - Idle inhibitor + - Airplane mode ## Configuration + The configuration uses the yaml file format and is named `~/.config/ashell.yml` -``` yaml +```yaml # Ashell log level filter, possible values "DEBUG" | "INFO" | "WARNING" | "ERROR". Needs reload logLevel: "INFO" # optional, default "INFO" -# Ashell bar position, possible values Top | Bottom. Needs reload +# List of outputs, example values: DP-1 | HDMI-1 | eDP-1. +# the status bar will be displayed on all the outputs listed here +# if the outputs is not available the bar will be displayed in the active output +outputs: # optional, default empty list (the bar will be displayed on the active output) + - eDP-1 + - DP-1 +# Bar position, possible values Top | Bottom. position: Top # optional, default Top # App lancher commanda, it will be used to open the launcher, # without a value the related button will not appear -appLauncherCmd: "~/.config/rofi/launcher.sh" # optional, default None +appLauncherCmd: "~/.config/rofi/launcher.sh" # optional, default None # Clipboard command, it will be used to open the clipboard menu, # without a value the related button will not appear -clipboardCmd: "cliphist-rofi-img | wl-copy" # optional, default None -# Update module configuration. +clipboardCmd: "cliphist-rofi-img | wl-copy" # optional, default None +# Update module configuration. # Without a value the related button will not appear. -updates: # optional, default None +updates: # optional, default None # The check command will be used to retrieve the update list. # It should return something like `package_name version_from -> version_to\n` checkCmd: "checkupdates; paru -Qua" # required # The update command is used to init the OS update process - updateCmd: "alacritty -e bash -c \"paru; echo Done - Press enter to exit; read\" &" # required + updateCmd: 'alacritty -e bash -c "paru; echo Done - Press enter to exit; read" &' # required # Maximum number of chars that can be present in the window title -# after that the title will be truncated +# after that the title will be truncated truncateTitleAfterLength: 150 # optional, default 150 # The system module configuration -system: +system: disabled: false # Enable or disable the system monitor module cpuWarnThreshold: 6O # cpu indicator warning level (default 60) cpuAlertThreshold: 8O # cpu indicator alert level (default 80) @@ -141,30 +152,30 @@ keyboard: disabled: false # Enable or disable the keyboard submap module # Clock module configuration clock: - # clock format see: https://docs.rs/chrono/latest/chrono/format/strftime/index.html + # clock format see: https://docs.rs/chrono/latest/chrono/format/strftime/index.html format: "%a %d %b %R" # optional, default: %a %d %b %R # Settings module configuration settings: # command used for lock the system - # without a value the related button will not appear - lockCmd: "hyprlock &" # optional, default None - # command used to open the sinks audio settings - # without a value the related button will not appear - audioSinksMoreCmd: "pavucontrol -t 3" # optional default None + # without a value the related button will not appear + lockCmd: "hyprlock &" # optional, default None + # command used to open the sinks audio settings + # without a value the related button will not appear + audioSinksMoreCmd: "pavucontrol -t 3" # optional default None # command used to open the sources audio settings - # without a value the related button will not appear - audioSourcesMoreCmd: "pavucontrol -t 4" # optional, default None - # command used to open the network settings - # without a value the related button will not appear + # without a value the related button will not appear + audioSourcesMoreCmd: "pavucontrol -t 4" # optional, default None + # command used to open the network settings + # without a value the related button will not appear wifiMoreCmd: "nm-connection-editor" # optional, default None - # command used to open the VPN settings - # without a value the related button will not appear - vpnMoreCmd: "nm-connection-editor" # optional, default None - # command used to open the Bluetooth settings - # without a value the related button will not appear - bluetoothMoreCmd: "blueman-manager" # optional, default None -# Appearance config -# Each color could be a simple hex color like #228800 or an + # command used to open the VPN settings + # without a value the related button will not appear + vpnMoreCmd: "nm-connection-editor" # optional, default None + # command used to open the Bluetooth settings + # without a value the related button will not appear + bluetoothMoreCmd: "blueman-manager" # optional, default None +# Appearance config +# Each color could be a simple hex color like #228800 or an # object that define a base hex color and two optional variant of that color (a strong one and a weak one) # and the text color that should be used with that base color # example: @@ -174,36 +185,37 @@ settings: # weak: #448855 -- optional default autogenarated from base color # text: #ffffff -- optional default base text color appearance: - backgroundColor: "#1e1e2e" # used as a base background color for header module button - primaryColor: "#fab387" # used as a accent color - secondaryColor: "#11111b" # used for darker background color - successColor: "#a6e3a1" # used for success message or happy state - dangerColor: "#f38ba8" # used for danger message or danger state (the weak version is used for the warning state - textColor: "#f38ba8" # base default text color - # this is a list of color that will be used in the workspace module (one color for each monitor) - workspaceColors: - - "#fab387" - - "#b4befe" - # 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: - - "#a6e3a1" - - "#f38ba8" + backgroundColor: "#1e1e2e" # used as a base background color for header module button + primaryColor: "#fab387" # used as a accent color + secondaryColor: "#11111b" # used for darker background color + successColor: "#a6e3a1" # used for success message or happy state + dangerColor: "#f38ba8" # used for danger message or danger state (the weak version is used for the warning state + textColor: "#f38ba8" # base default text color + # this is a list of color that will be used in the workspace module (one color for each monitor) + workspaceColors: + - "#fab387" + - "#b4befe" + # 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: + - "#a6e3a1" + - "#f38ba8" ``` ### So, what's the purpose of this project? -I could have used [waybar](https://github.com/Alexays/Waybar) that's for sure is a -a great project but I wanted something more sophisticated + +I could have used [waybar](https://github.com/Alexays/Waybar) that's for sure is a +a great project but I wanted something more sophisticated with submenus and other stuff. I tried with other great projects like [eww](https://github.com/elkowar/eww) but -instead of writing or copy-paste eww configurations I prefered to create +instead of writing or copy-paste eww configurations I prefered to create my Wayland bar. -So, I copy-pasted from iced pop-os fork created a layer to interact -with wayland layer shell protocol from iced [Iced SCTK](https://github.com/MalpenZibo/iced_sctk) +So, I copy-pasted from iced pop-os fork created a layer to interact +with wayland layer shell protocol from iced [Iced SCTK](https://github.com/MalpenZibo/iced_sctk) and I started to create this project. Feel free to fork this project and customize it for your needs or just open an @@ -214,13 +226,10 @@ issue to request a particular feature. I will try my best to keep these screenshots as updated as possible but some details could be different - - -| ![](https://raw.githubusercontent.com/MalpenZibo/ashell/main/screenshots/updates-panel.png) | ![](https://raw.githubusercontent.com/MalpenZibo/ashell/main/screenshots/settings-panel.png) | -| --- | --- | -| ![](https://raw.githubusercontent.com/MalpenZibo/ashell/main/screenshots/power-menu.png) | ![](https://raw.githubusercontent.com/MalpenZibo/ashell/main/screenshots/sinks-selection.png) | -| ![](https://raw.githubusercontent.com/MalpenZibo/ashell/main/screenshots/network-menu.png) | ![](https://raw.githubusercontent.com/MalpenZibo/ashell/main/screenshots/bluetooth-menu.png) | -| ![](https://raw.githubusercontent.com/MalpenZibo/ashell/main/screenshots/vpn-menu.png) | ![](https://raw.githubusercontent.com/MalpenZibo/ashell/main/screenshots/airplane-mode.png) | - - + +| ![](https://raw.githubusercontent.com/MalpenZibo/ashell/main/screenshots/updates-panel.png) | ![](https://raw.githubusercontent.com/MalpenZibo/ashell/main/screenshots/settings-panel.png) | +| ------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| ![](https://raw.githubusercontent.com/MalpenZibo/ashell/main/screenshots/power-menu.png) | ![](https://raw.githubusercontent.com/MalpenZibo/ashell/main/screenshots/sinks-selection.png) | +| ![](https://raw.githubusercontent.com/MalpenZibo/ashell/main/screenshots/network-menu.png) | ![](https://raw.githubusercontent.com/MalpenZibo/ashell/main/screenshots/bluetooth-menu.png) | +| ![](https://raw.githubusercontent.com/MalpenZibo/ashell/main/screenshots/vpn-menu.png) | ![](https://raw.githubusercontent.com/MalpenZibo/ashell/main/screenshots/airplane-mode.png) |