{"id":21113204,"url":"https://github.com/malpenzibo/ashell","last_synced_at":"2025-04-05T15:03:20.605Z","repository":{"id":207222675,"uuid":"662689471","full_name":"MalpenZibo/ashell","owner":"MalpenZibo","description":"A ready to go Wayland status bar for Hyprland","archived":false,"fork":false,"pushed_at":"2025-04-01T21:46:38.000Z","size":5455,"stargazers_count":126,"open_issues_count":13,"forks_count":15,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-01T22:34:02.579Z","etag":null,"topics":["bar","hyprland","iced-rs","statusbar","wayland","wlroots"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MalpenZibo.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-05T17:10:23.000Z","updated_at":"2025-04-01T21:46:36.000Z","dependencies_parsed_at":"2023-12-06T22:31:21.194Z","dependency_job_id":"f05116cf-248d-467a-a52e-0150e5547a77","html_url":"https://github.com/MalpenZibo/ashell","commit_stats":null,"previous_names":["malpenzibo/ashell"],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MalpenZibo%2Fashell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MalpenZibo%2Fashell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MalpenZibo%2Fashell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MalpenZibo%2Fashell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MalpenZibo","download_url":"https://codeload.github.com/MalpenZibo/ashell/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247353729,"owners_count":20925329,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bar","hyprland","iced-rs","statusbar","wayland","wlroots"],"created_at":"2024-11-20T01:40:06.011Z","updated_at":"2025-04-05T15:03:20.598Z","avatar_url":"https://github.com/MalpenZibo.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ashell\n\nA ready to go Wayland status bar for Hyprland.\n\nFeel free to fork this project and customize it for your needs or just open an\nissue to request a particular feature.\n\n\u003e If you have graphical issues like missing transparency or graphical artifact you could launch ashell with WGPU_BACKEND=gl. This env var forces wgpu to use OpenGL instead of Vulkan\n\n### Does it only work on Hyprland?\n\nWhile it's currently tailored for Hyprland, it could work with other compositors.\n\nHowever, it currently relies on [hyprland-rs](https://github.com/hyprland-community/hyprland-rs)\nto gather information about the active window and workspaces. I haven't implemented any\nfeature flags to disable these functionalities or alternative methods to obtain this data.\n\n## Install\n\n[![Packaging status](https://repology.org/badge/vertical-allrepos/ashell.svg)](https://repology.org/project/ashell/versions)\n\n### Arch Linux\n\nYou can get the official Arch Linux package from the AUR:\n\n#### Tagged release\n\n```\nparu/yay -S ashell\n```\n\n#### Main branch\n\n```\nparu/yay -S ashell-git\n```\n\n### ALT Linux\n\n```\nsu -\napt-get install ashell\n```\n\n### Nix\n\nTo install ashell using the nix package be sure to enable flakes and then run\n\n#### Tagged release\n\n```\nnix profile install github:MalpenZibo/ashell?ref=0.3.1\n```\n\n#### Main branch\n\n```\nnix profile install github:MalpenZibo/ashell\n```\n\n### NixOS\n\nI haven't tested ashell on NixOS.\n\nTo enable this flake use\n\n```nix\n{ pkgs, ... }:\n\n{\n  environment.systemPackages = with pkgs; [\n    (import (pkgs.callPackage (pkgs.fetchFromGitHub {\n      owner = \"MalpenZibo\";\n      repo = \"ashell\";\n      rev = \"refs/heads/main\"; # Or specify the branch/tag you need\n      sha256 = \"sha256-PLACEHOLDER\"; # Replace with the correct hash\n    }) {}).defaultPackage.x86_64-linux)\n  ];\n}\n```\n\n\u003e I'm not an expert and I haven't tested this configuration\n\u003e but I'm quite sure that if you use NixOS you are smart enough to add ashell to your configuration :D\n\n## Features\n\n- App Launcher button\n- Сlipboard button\n- OS Updates indicator\n- Hyprland Active Window\n- Hyprland Workspaces\n- System Information (CPU, RAM, Temperature)\n- Hyprland Keyboard Layout\n- Hyprland Keyboard Submap\n- Tray\n- Date time\n- Privacy (check microphone, camera and screenshare usage)\n- Media Player\n- Settings panel\n  - Power menu\n  - Battery information\n  - Audio sources and sinks\n  - Screen brightness\n  - Network stuff\n  - VPN\n  - Bluetooth\n  - Power profiles\n  - Idle inhibitor\n  - Airplane mode\n\n## Configuration\n\n\u003e The following are the configuration for the `main` branch and could contain breaking changes.\n\u003e For the tagged release you can find the configuration instruction in the corresponding README file.\n\u003e eg: https://github.com/MalpenZibo/ashell/blob/0.4.1/README.md\n\nThe configuration file uses the toml file format and is named `~/.config/ashell/config.toml`\n\n```toml\n# Ashell log level filter, possible values \"debug\" | \"info\" | \"warn\" | \"error\". Needs reload\nlogLevel = \"warn\"\n# Possible status bar outputs, values could be: all, active, or a list of outputs\n# all: the status bar will be displayed on all the available outputs, example: outputs = \"all\"\n# active: the status bar will be displayed on the active output, example: outputs = \"active\"\n# list of outputs: the status bar will be displayed on the outputs listed here, example: outputs = { targets = [\"DP-1\", \"eDP-1\"] }\n# if the outputs is not available the bar will be displayed in the active output\noutputs = \"all\"\n# Bar position, possible values top | bottom.\nposition = \"top\"\n# App launcher command, it will be used to open the launcher,\n# without a value the related button will not appear\n# optional, default None\nappLauncherCmd = \"~/.config/rofi/launcher.sh\"\n# Clipboard command, it will be used to open the clipboard menu,\n# without a value the related button will not appear\n# optional, default None\nclipboardCmd = \"cliphist-rofi-img | wl-copy\"\n# Maximum number of chars that can be present in the window title\n# after that the title will be truncated\n# optional, default 150\ntruncateTitleAfterLength = 150\n\n# Declare which modules should be used and in which position in the status bar.\n# This is the list of all possible modules\n#  - appLauncher\n#  - updates\n#  - clipboard\n#  - workspaces\n#  - windowTitle\n#  - systemInfo\n#  - keyboardLayout\n#  - keyboardSubmap\n#  - tray\n#  - clock\n#  - privacy\n#  - mediaPlayer\n#  - settings\n# optional, the following is the default configuration\n[modules]\n# The modules that will be displayed on the left side of the status bar\nleft = [ \"workspaces\" ]\n# The modules that will be displayed in the center of the status bar\ncenter = [ \"windowTitle\" ]\n# The modules that will be displayed on the right side of the status bar\n# The nested modules array will form a group sharing the same element in the status bar\nright = [ \"systemInfo\", [ \"clock\", \"privacy\", \"settings\" ] ]\n\n# Update module configuration.\n# Without a value the related button will not appear.\n# optional, default None\n[updates]\n# The check command will be used to retrieve the update list.\n# It should return something like `package_name version_from -\u003e version_to\\n`\ncheckCmd = \"checkupdates; paru -Qua\"\n# The update command is used to init the OS update process\nupdateCmd = 'alacritty -e bash -c \"paru; echo Done - Press enter to exit; read\" \u0026'\n\n# Workspaces module configuration, optional\n[workspaces]\n# The visibility mode of the workspaces, possible values are:\n# all: all the workspaces will be displayed\n# monitorSpecific: only the workspaces of the related monitor will be displayed\n# optional, default all\nvisibilityMode = \"all\"\n# Enable filling with empty workspaces\n# For example:\n# With this flag set to true if there are only 2 workspaces,\n# the workspace 1 and the workspace 4, the module will show also\n# two more workspaces, the workspace 2 and the workspace 3\n# optional, default false\nenableWorkspaceFilling = false\n\n# The system module configuration\n[system]\n# cpu indicator warning level (default 60)\ncpuWarnThreshold = 60\n# cpu indicator alert level (default 80)\ncpuAlertThreshold = 80\n# mem indicator warning level (default 70)\nmemWarnThreshold = 70\n# mem indicator alert level (default 85)\nmemAlertThreshold = 85\n# temperature indicator warning level (default 60)\ntempWarnThreshold = 60\n# temperature indicator alert level (default 80)\ntempAlertThreshold = 80\n\n# Clock module configuration\n[clock]\n# clock format see: https://docs.rs/chrono/latest/chrono/format/strftime/index.html\nformat = \"%a %d %b %R\"\n\n# Media player module configuration\n[mediaPlayer]\n# optional, default 100\nmaxTitleLength = 100\n\n# Settings module configuration\n[settings]\n# command used for lock the system\n# without a value the related button will not appear\n# optional, default None\nlockCmd = \"hyprlock \u0026\"\n# command used to open the sinks audio settings\n# without a value the related button will not appear\n# optional default None\naudioSinksMoreCmd = \"pavucontrol -t 3\"\n# command used to open the sources audio settings\n# without a value the related button will not appear\n# optional, default None\naudioSourcesMoreCmd = \"pavucontrol -t 4\"\n# command used to open the network settings\n# without a value the related button will not appear\n# optional, default None\nwifiMoreCmd = \"nm-connection-editor\"\n# command used to open the VPN settings\n# without a value the related button will not appear\n# optional, default None\nvpnMoreCmd = \"nm-connection-editor\"\n# command used to open the Bluetooth settings\n# without a value the related button will not appear\n# optional, default None\nbluetoothMoreCmd = \"blueman-manager\"\n\n# Appearance config\n# Each color could be a simple hex color like #228800 or an\n# object that define a base hex color and two optional variant of that color (a strong one and a weak one)\n# and the text color that should be used with that base color\n# example:\n# [appearance.backgroundColor]\n# base = \"#448877\"\n# strong = \"#448888\" # optional default autogenerated from base color\n# weak = \"#448855\" # optional default autogenarated from base color\n# text = \"#ffffff\" # optional default base text color\n[appearance]\n# optional, default iced.rs font\nfontName = \"Comic Sans MS\"\n# The style of the main bar, possible values are: islands | solid | gradient\n# optional, default islands\nstyle = \"islands\"\n# The opacity of the main bar, possible values are: 0.0 to 1.0\n# optional, default 1.0\nopacity = 0.7\n# used as a base background color for header module button\nbackgroundColor = \"#1e1e2e\"\n# used as a accent color\nprimaryColor = \"#fab387\"\n# used for darker background color\nsecondaryColor = \"#11111b\"\n# used for success message or happy state\nsuccessColor = \"#a6e3a1\"\n# used for danger message or danger state (the weak version is used for the warning state\ndangerColor = \"#f38ba8\"\n# base default text color\ntextColor = \"#f38ba8\"\n# this is a list of color that will be used in the workspace module (one color for each monitor)\nworkspaceColors = [ \"#fab387\", \"#b4befe\" ]\n# this is a list of color that will be used in the workspace module\n# for the special workspace (one color for each monitor)\n# optional, default None\n# without a value the workspaceColors list will be used\nspecialWorkspaceColors = [ \"#a6e3a1\", \"#f38ba8\" ]\n\n# menu options\n[appearance.menu]\n# The opacity of the menu, possible values are: 0.0 to 1.0\n# optional, default 1.0\nopacity = 0.7\n# The backdrop of the menu, possible values are: 0.0 to 1.0\n# optional, default 0.0\nbackdrop = 0.3\n```\n\n## Some screenshots\n\nI will try my best to keep these screenshots as updated as possible but some details\ncould be different\n\n#### default style\n\n\u003cimg src=\"https://raw.githubusercontent.com/MalpenZibo/ashell/main/screenshots/ashell.png\"\u003e\u003c/img\u003e\n\n#### solid style\n\n\u003cimg src=\"https://raw.githubusercontent.com/MalpenZibo/ashell/main/screenshots/ashell-solid.png\"\u003e\u003c/img\u003e\n\n#### gradient style\n\n\u003cimg src=\"https://raw.githubusercontent.com/MalpenZibo/ashell/main/screenshots/ashell-gradient.png\"\u003e\u003c/img\u003e\n\n#### opacity settings\n\n\u003cimg src=\"https://raw.githubusercontent.com/MalpenZibo/ashell/main/screenshots/opacity.png\"\u003e\u003c/img\u003e\n\n| ![](https://raw.githubusercontent.com/MalpenZibo/ashell/main/screenshots/updates-panel.png) | ![](https://raw.githubusercontent.com/MalpenZibo/ashell/main/screenshots/settings-panel.png)  |\n| ------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |\n| ![](https://raw.githubusercontent.com/MalpenZibo/ashell/main/screenshots/power-menu.png)    | ![](https://raw.githubusercontent.com/MalpenZibo/ashell/main/screenshots/sinks-selection.png) |\n| ![](https://raw.githubusercontent.com/MalpenZibo/ashell/main/screenshots/network-menu.png)  | ![](https://raw.githubusercontent.com/MalpenZibo/ashell/main/screenshots/bluetooth-menu.png)  |\n| ![](https://raw.githubusercontent.com/MalpenZibo/ashell/main/screenshots/vpn-menu.png)      | ![](https://raw.githubusercontent.com/MalpenZibo/ashell/main/screenshots/airplane-mode.png)   |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmalpenzibo%2Fashell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmalpenzibo%2Fashell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmalpenzibo%2Fashell/lists"}