Git Product home page Git Product logo

ags-top-panel's Introduction

HyprPanel

A panel built for Hyprland with Aylur's Gtk Shell

HyprPanel

Installation

The HyprPanel Wiki contains in depth instructions for installing the panel and all of its dependencies. The instructions below are general instructions for installing the panel.

Requirements

Bun

curl -fsSL https://bun.sh/install | bash && \
  sudo ln -s $HOME/.bun/bin/bun /usr/local/bin/bun

Additional dependencies:

pipewire
bluez
bluez-utils
grimblast
gpu-screen-recorder
hyprpicker
btop
networkmanager
matugen
wl-clipboard
swww
dart-sass
brightnessctl
gnome-bluetooth-3.0

Optional Dependencies:

## Used for Tracking GPU Usage in your Dashboard (NVidia only)
python
python-gpustat

Arch (pacman):

sudo pacman -S pipewire bluez bluez-utils btop networkmanager dart-sass wl-clipboard brightnessctl swww python gnome-bluetooth-3.0

Arch (AUR):

yay -S grimblast-git gpu-screen-recorder hyprpicker matugen-bin python-gpustat aylurs-gtk-shell-git

For NixOS/Home-Manager, see NixOS & Home-Manager instructions.

Instructions

AGS

Once everything is installed you need to put the contents of this repo in ~/.config/ags. If you already have something in ~/.config/ags, it's recommended that you back it up with:

mv $HOME/.config/ags $HOME/.config/ags.bkup

Otherwise you can use this command to install the panel:

git clone https://github.com/Jas-SinghFSU/HyprPanel.git && \
  ln -s $(pwd)/HyprPanel $HOME/.config/ags

Nerd Fonts

Additionally, you need to ensure that you have a Nerd Font installed for your icons to render properly.

Launch the panel

Afterwards you can run the panel with the following command in your terminal:

ags

Or you can add it to your Hyprland config (hyprland.conf) to auto-start with:

exec-once = ags

NixOS & Home-Manager

Alternatively, if you're using NixOS and/or Home-Manager, you can setup AGS using the provided Nix Flake. First, add the repository to your Flake's inputs, and enable the overlay.

# flake.nix

{
  inputs.hyprpanel.url = "github:Jas-SinghFSU/HyprPanel";
  # ...

  outputs = { self, nixpkgs, ... }@inputs: 
  let
    # ...
	system = "x86_64-linux"; # change to whatever your system should be.
    pkgs = import nixpkgs {
	  inherit system;
	  # ...
	  overlays = [
        inputs.hyprpanel.overlay
	  ];
	};
  in {
    # ...
  }
}

Once you've set up the overlay, you can reference HyprPanel with pkgs.hyprpanel as if it were any other Nix package. This means you can reference it as a NixOS system/user package, a Home-Manager user package, or as a direct reference in your Hyprland configuration (if your configuration is managed by Home-Manager). The first three methods will add it to your $PATH (first globally, second two user-only), however the final will not.

# configuration.nix

# install it as a system package
environment.systemPackages = with pkgs; [
  # ...
  hyprpanel
  # ...
];

# or install it as a user package
users.users.<username>.packages = with pkgs; [
  # ...
  hyprpanel
  # ...
];


# home.nix

# install it as a user package with home-manager
home.packages = with pkgs; [
  # ...
  hyprpanel
  # ...
];

# or reference it directly in your Hyprland configuration
wayland.windowManager.hyprland.settings.exec-once = ''
  # ...
  ${pkgs.hyprpanel}/bin/hyprpanel
  # ...
'';

Notifications

HyprPanel handles notifications through the AGS built-in notification service. If you're already using a notification daemon such as Dunst or Mako, you may have to stop them to prevent conflicts with HyprPanel.

NOTE: If your system is in a language other than English, the resource monitor in the dashboard may not work properly.

Configuration

The HyprPanel comes with a configuration menu which is available by opening the Dashboard menu (click the button in the bar with the default - Arch - icon) and then clicking the Gear icon.

Size

The panel is automatically scaled based on your font size in Configuration > General.

Specifying bar layouts per monitor

To specify layouts for each monitor you can create a JSON object such as:

{
    "0": {
        "left": [
            "dashboard",
            "workspaces",
            "windowtitle"
        ],
        "middle": [
            "media"
        ],
        "right": [
            "volume",
            "clock",
            "notifications"
        ]
    },
    "1": {
        "left": [
            "dashboard",
            "workspaces",
            "windowtitle"
        ],
        "middle": [
            "media"
        ],
        "right": [
            "volume",
            "clock",
            "notifications"
        ]
    },
    "2": {
        "left": [
            "dashboard",
            "workspaces",
            "windowtitle"
        ],
        "middle": [
            "media"
        ],
        "right": [
            "volume",
            "network",
            "bluetooth",
            "systray",
            "clock",
            "notifications"
        ]
    }
}

Where each monitor is defined by its index (0, 1, 2 in this case) and each section (left, middle, right) contains one or more of the following modules:

"battery"
"dashboard"
"workspaces"
"windowtitle"
"media"
"notifications"
"volume"
"network"
"bluetooth"
"clock"
"systray"

Since the text-box in the options dialog isn't sufficient, it is recommended that you create this JSON configuration in a text editor elsewhere and paste it into the layout text-box under Configuration > Bar > "Bar Layouts for Monitors".

Additional Configuration

GPU Tracking

If you have an NVidia GPU, you can track your GPU usage in your Dashboard by going to your Settings > Configuration > Dashboard Menu > Track GPU and turning it on.

ags-top-panel's People

Contributors

jas-singhfsu avatar matavach avatar orxngc avatar painerp avatar mitsuruu avatar noamsto avatar greed-d avatar nebunebu avatar rishav12s avatar

Stargazers

 avatar Ryan Omasta avatar  avatar  avatar Gage Atkinson avatar RichardApps avatar Patrick G avatar Giovanni Nicosia (mood) avatar  avatar Matt avatar 『N•LV』システム avatar  avatar cat avatar 廿六AhJi avatar s1dd avatar Slipstream avatar Aleksander avatar  avatar HabibAlShaikh avatar Hannes Ziereis avatar  avatar Donatas avatar Lefteris @SomniusX avatar Brandon avatar Kamran Bhatti avatar cudatuda avatar  avatar Michał Łowkiet avatar  avatar Voidus X avatar Lexian avatar  avatar  avatar monztrum avatar Ondřej Zeman avatar Alexis Boni avatar  avatar Ferdous Shuvraw avatar Keanu Ashwell avatar Jann Louie Almirante avatar Ryan Foster avatar Bui Dai avatar Kristoffer Plagborg Bak Sørensen avatar Kiran George avatar uzeyir-yariz avatar  avatar Mateus Alves avatar jilen avatar  avatar Rushikesh Gaikwad avatar  avatar Tattwamashi Nayak avatar Vattana Sun avatar Haize avatar sStmtz avatar  avatar  avatar Santiago Z avatar  avatar pita avatar Willow avatar StellarCoder avatar Wenhao Li avatar Gabe Duarte avatar Rodrigo Ramos Silva avatar LightCrimson avatar  avatar r4ds3c avatar Viktor Danov avatar Jaren Glenn avatar  avatar Dexys avatar  avatar Amin D. avatar Jonathan Vuillemin avatar  avatar Michael avatar  avatar  avatar eaxly avatar Alessio Molinari avatar Nico Kokonas avatar Horan Mustaplot avatar Zan avatar  avatar linhusp avatar wrocket avatar  avatar Gilang ramadhan avatar Ygor Luiz avatar Lurian avatar Iqbal Thaker avatar zDyant avatar  avatar Amjad Shomali avatar NECOdes avatar xmento avatar Christopher Dockter avatar Lorenzo Mauro avatar Keith Bates avatar

Watchers

Maikel avatar  avatar

ags-top-panel's Issues

workspace module padding issue

240728_11h04m18s_screenshot

this popped up after pulling the latest changes
the last workspace icon gets cut when the show workspace icons is enabled

Fails to run from nix dev shell

Describe the bug
A clear and concise description of what the bug is.

Does not run from nix dev shell

To Reproduce
Steps to reproduce the behavior:

$ git clone [email protected]:Jas-SinghFSU/HyprPanel.git
$ cd HyprPanel
$ nix develop
$ ags -c ./config.js

Expected behavior
Hyprpanel runs

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • Distribution: nixOS
  • Window Manager/Desktop Environment: Hyprland

Additional context

❯ ags -c ./config.js

(com.github.Aylur.ags:1057294): Gjs-Console-CRITICAL **: 00:23:42.680: ============================================================
\u001b[0m\u001b[2mBun v1.1.20 (ae194892) Linux x64
Linux Kernel v6.6.41 | glibc v2.39
CPU: sse42 popcnt avx
Args:
Features: no_avx2
Elapsed: 1ms | User: 1ms | Sys: 3ms
RSS: 0B  | Peak:

App Launcher

AGS allows for a built in app launcher, removing the need for external ones like Rofi.
Is it a goal to add that feature to hyprpanel? Could easily tie it to dynamic theming.

Adding a persistent configuration file which contains our preferences

Is your feature request related to a problem? Please describe.
I could not find where the preferences are stored, but related to this, it would be nice to have a file that we could add to our dotfiles for persistence of settings. As of now I cannot move my setup from one PC to another.

Describe the solution you'd like
Adding a file in the .config folder like ags.conf which contains our preferences.

Describe alternatives you've considered
A JSON or TS file would also suffice. Thanks!

Auto start not working

I am using hyprland I use exec-once=ags
but ags doesn't started. I also try ags -c option.

Missing font

Hello,

I found your project really incredible so I installed it on my computer using Arch & Hyprland but I'm missing some fonts because the icons are buggy, do you know what fonts I need?

image

Notification and Date Pannel are outside of the screen

Describe the bug
The panel is cut off and outside of the screen

To Reproduce
open any panel that goes to the right side

Expected behavior
The right side of the display is set wrong

Screenshots
image
image

Desktop (please complete the following information):

  • Distribution: [e.g. Arch Linux] Arch Linux
  • Window Manager/Desktop Environment: [e.g. Hyprland] Hyprland

Additional context
I have rebooted the system and only problems on the right side

OSD for mic mute

volume mute has OSD but mic mute does not have it. It would be great to notified when pressed mute.

ags crashes on NixOS

Describe the bug
When attempting to start ags, it crashes. A screenshot is below. More accurately, it doesn't start at all, not crash.

Expected behavior
Ags to start.
Screenshots
image
Desktop (please complete the following information):

  • Distribution: NixOS
  • Window Manager/Desktop Environment: Hyprland

Additional context
I think it may be due to not having one of the dependencies installed. In NixOS, there is no package for bluez-utils (although I do have bluez installed.)

OSD obstructing screen when not showing

Describe the bug
The OSD will obstruct the user from interacting with the screen below the location of the OSD when it is not showing

To Reproduce
Move cursor to the location the OSD usually is

Expected behavior
The OSD will allow the user to press under it when not displaying

Desktop (please complete the following information):

  • EndeavourOS
  • Hyprland

Additional context
This issue does not come up when the OSD is disabled

Battery percentage not rounded up

Describe the bug
On the status bar, the battery percentage is displayed as a very long float, like %99.75837836523756.

To Reproduce
Steps to reproduce the behavior: Have battery, use AGS.

Expected behavior
The battery amount rounded up to two decimals after float, like 99.75%.

Screenshots
If applicable, add screenshots to help explain your problem.
image

Desktop (please complete the following information):

  • Distribution: Arch Linux
  • Window Manager/Desktop Environment: Hyprland

Additional context
Using Thinkpad T480 with dual batteries.

Add option to bind keys to open widgets

Add the option to add keybinds to open widgets.
Example: SUPER+A to open the notification widget.
This needn't necessarily implemented in ags; if there was a menu to generate a Hyprland bind line to copy and insert into hyprland.conf that would work too. Example: pressing a button would copy {command} and then the user could go into hyprland.conf and insert bind = SUPER+A,exec,{command}.

Add adjustable or scalable top/bottom widget padding

Le Problemo?
When I use different font sizes to scale hyprpanel appropriately, the padding between the bar's widgets and the top and bottom of the black panel background seems to stay consistent/very similar across all scaling, instead of scaling with the bar.

Now that I've tried scaling hyprpanel down, the top/bottom padding of the bar widgets seems aesthetically too big but there is no customisation option.

Solution? Maybe?
To solve this, I would propose either adding a 'top/bottom' padding customisation option in Configurations > Bar OR making the top/bottom gap scale up and down appropriately.

Pics
60ish% Scaling: Top/bottom gap way bigger than inter-widget spacing.
40ish%

200ish% Scaling: Top/bottom gap similar to inter-widget spacing.
200ish%

400ish% Scaling: Top/bottom gap way smaller than inter-widget spacing.
400%

Among these three screenshots, the gap between the top/bottom of each widget seemingly stays (approximately) the same, despite much change in scaling (to the point where the margins between widgets are either larger or smaller than the top/bottom gaps depending on the current scaling settings).

Mmmm, Anything Else?
Maybe less related to this issue, but I'd love to have the option for non-floating bars to set the black background to transparent (sort of floating? but not really floating). If this option were selected, the above issue would become largely irrelevant, but this probably isn't worth making a separate issue over.

CSS - Anchoring / more nuanced positioning.

I would like to anchor some bar modules in set positions. I want to have "workspaces" always be in the center of the bar, but they are currently offset by having the media menu in the same grouping.

snapshot_2024-08-01_09-03-55

This is easily doable with the CenterBox AGS Widget. Adding specific 'hpack' values the modules' boxes can anchor them in place.

I'm not sure how to add this without breaking the current bar layout config scheme. We could add the ability to add more specificity in the bar layout JSON

ie -

"0":{
  "left":[
    "dashboard" : {
       "hpack":"start"
     },
    "windowtitle"
   ]
}

Right modules aren't displaying after installation

Describe the bug
After installation by instruction in README.md modules "dashboard", "workspaces", "windowtitle" aren't displaying

To Reproduce

  1. Install dotfiles
  2. Run ags in a terminal

Expected behavior
modules "dashboard", "workspaces", "windowtitle" are displaying

Screenshots
bar

Desktop (please complete the following information):

  • Distribution: Arch Linux
  • Window manager: Hyprland v0.41.2

Additional context
Console output when ags is launched

(com.github.Aylur.ags:11874): Gjs-Console-WARNING **: 20:10:24.935: Another notification daemon is already running: SwayNotificationCenter

(com.github.Aylur.ags:11874): Gjs-Console-CRITICAL **: 20:10:25.180: Could not find monitor with id: 2

(com.github.Aylur.ags:11874): Gjs-CRITICAL **: 20:10:25.235: JS ERROR: TypeError: wsRules[currentMonitorName] is undefined
getWorkspacesForMonitor@file:///tmp/ags/hyprpanel/main.js:1138:5
Workspaces/<.component<.children</<@file:///tmp/ags/hyprpanel/main.js:1227:18
Workspaces/<.component<.children<@file:///tmp/ags/hyprpanel/main.js:1222:41
update@resource:///com/github/Aylur/ags/utils/binding.js:4:28
merge@resource:///com/github/Aylur/ags/utils/binding.js:5:34
Workspaces@file:///tmp/ags/hyprpanel/main.js:1221:23
workspaces@file:///tmp/ags/hyprpanel/main.js:1785:39
Bar/setup/</self2.children<@file:///tmp/ags/hyprpanel/main.js:1814:120
Bar/setup/<@file:///tmp/ags/hyprpanel/main.js:1814:100
hook/<@resource:///com/github/Aylur/ags/widgets/widget.js:43:25
_init/GLib.MainLoop.prototype.runAsync/</<@resource:///org/gnome/gjs/modules/core/overrides/GLib.js:266:34

(com.github.Aylur.ags:11874): Gjs-CRITICAL **: 20:10:34.560: Attempting to call back into JSAPI during the sweeping phase of GC. This is most likely caused by not destroying a Clutter actor or Gtk+ widget with ::destroy signals connected, but can also be caused by using the destroy(), dispose(), or remove() vfuncs. Because it would crash the application, it has been blocked and the JS callback not invoked.
The offending signal was destroy on Ags_Box 0x5b793451e950.
== Stack trace for context 0x5b7933466200 ==
#0   5b793352e198 i   resource:///org/gnome/gjs/modules/core/overrides/GLib.js:266 (25396f47d560 @ 139)

(com.github.Aylur.ags:11874): Gjs-CRITICAL **: 20:10:34.560: Attempting to call back into JSAPI during the sweeping phase of GC. This is most likely caused by not destroying a Clutter actor or Gtk+ widget with ::destroy signals connected, but can also be caused by using the destroy(), dispose(), or remove() vfuncs. Because it would crash the application, it has been blocked and the JS callback not invoked.
The offending signal was destroy on Ags_Label 0x5b793380f480.
== Stack trace for context 0x5b7933466200 ==
#0   5b793352e198 i   resource:///org/gnome/gjs/modules/core/overrides/GLib.js:266 (25396f47d560 @ 139)

(com.github.Aylur.ags:11874): Gjs-CRITICAL **: 20:10:34.560: Attempting to call back into JSAPI during the sweeping phase of GC. This is most likely caused by not destroying a Clutter actor or Gtk+ widget with ::destroy signals connected, but can also be caused by using the destroy(), dispose(), or remove() vfuncs. Because it would crash the application, it has been blocked and the JS callback not invoked.
The offending signal was destroy on Ags_Label 0x5b793380f480.
== Stack trace for context 0x5b7933466200 ==
#0   5b793352e198 i   resource:///org/gnome/gjs/modules/core/overrides/GLib.js:266 (25396f47d560 @ 139)

Settings app doesn't retain changes to dashboard config

Describe the bug
I've tried it several times. Changing Edge to Firefox, or Spotify to Youtube Music, nothing gets saved. I tried opening/closing the app after edits, or switching to another tab, but everytime I go back to the Dashboard panel it reverts to original setings, and my changes never show on the actual dashboard.

To Reproduce
As above

Expected behavior
Once I edit the dashboard config, I expect it to take effect immediately and remember those changes across restarts

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • Distribution: Endeavor
  • Window Manager/Desktop Environment: Hyprland, of course

Additional context
Add any other context about the problem here.

[Feat.Req] is it possible to make it so that other ags configs can be used.

Is your feature request related to a problem? Please describe.
your panel is very nice and all. but um is it possible to make other ags configs integratable. like there is a hyprand rice by End_4. and honestly i want to use his ags overview and stuff but i am not able to.

Describe the solution you'd like
so my suggestion is make so that other ags configs can be integrated seamlessly. as i really need that ags config. i am very noob first time using ags. pls feel free to tell what i am doing wrong.

Describe alternatives you've considered
so something like a conf file where you mention the path it is considered as a part of hyprpanel and itgerates it without conflicts. like main category sub category etc.

Additional context
Add any other context or screenshots about the feature request here.
umm its as far as it goes https://github.com/end-4/dots-hyprland

[BUG]: very annoying bug. if internet connection is lost ags is killed

Describe the bug
A clear and concise description of what the bug is.
so my issue is that i have very bad internet connection and my ethernet cable is broken. so like it keeps getting killed when internet is disconnected.

To Reproduce
Steps to reproduce the behavior:
i aint sure if its reproducable but
kill internet. wait for it to get killed

Expected behavior
A clear and concise description of what you expected to happen.
like it will keep running like. normal. as far as i have seen the code. its very dependant on each modules which is annoying. it loses functionality that way.
Screenshots
If applicable, add screenshots to help explain your problem.
welp i mean none
Desktop (please complete the following information):

  • Distribution: EOS Linux Aurora 6.10.0-arch1-2 #1 SMP PREEMPT_DYNAMIC Mon, 22 Jul 2024 17:28:23 +0000 x86_64 GNU/Linux
  • Window Manager/Desktop Environment: hyprland duh

Additional context
Add any other context about the problem here.
hmm as far as i know none

Some tray icons are not visible using Xwayland as backend

Describe the bug
Tray icons using GDK_BACKEND = x11 ... not showing on tray

To Reproduce

  • Install Spotify-tray and run under Xwayland
  • Open spotify and see if the tray icon shows

Expected behavior
Tray icon for apps using Xwayland to be visible

Screenshots

spotify-tray.mp4

Desktop (please complete the following information):

  • Distribution: EndeavourOS
  • Window Manager/Desktop Environment: Hyprland

Additional context
Above screenshot shows Fabric bar, which shows spotify-tray as expected but AGS doesn't show it..

The weather interval seems to be stacking instead of replacing the existing one.

Describe the bug
The weather interval seems to stack anytime changes are made to the locations, interval or api key. This will exhaust the API call limit that weatherAPI produces faster.

To Reproduce
Put a log somewhere inside the Utils.interval of modules/menus/calendar/weather/index.ts and notice that it's being stacked when the values above change.

Expected behavior
The interval is replaced instead of stacked

Error opening AGS

Describe the bug
Give an error when trying to open AGS

To Reproduce
Clone the config, install deps and try doing ags

Expected behavior
AGS gets started

Screenshots

(com.github.Aylur.ags:268228): Gjs-CRITICAL **: 09:13:39.223: Attempting to call back into JSAPI during the sweeping phase of GC. This is most likely caused by not destroying a Clutter actor or Gtk+ widget with ::destroy signals connected, but can also be caused by using the destroy(), dispose(), or remove() vfuncs. Because it would crash the application, it has been blocked and the JS callback not invoked.
The offending signal was destroy on Ags_Button 0x622491887320.
== Stack trace for context 0x622490a69cf0 ==

Desktop (please complete the following information):

  • Distribution: EndeavourOS
  • Window Manager/Desktop Environment: Hyprland

Additional context
It repeats many times like this :
image

Add custom script support and change values on scroll

Is your feature request related to a problem? Please describe.
It's frustrating that you have to click on the module on the panel to change volume of mic or speaker, which can be achieved with scroll itself

Custom Script support refers to using own custom script to show modules ( like script to check packages update etc.)

Describe the solution you'd like
Change volume and brightness on scroll when hovering over their respective module

Describe alternatives you've considered
None

Additional context

scroll_change.mp4

Floating bar instead of attaching to the edges of screen

Is your feature request related to a problem? Please describe.
A floating bar instead of bar attaching to the edges of screen and also the ability to decrease left and right margin

Describe the solution you'd like
Have an option to switch between the floating and fixed bar and also manage the spacing

Describe alternatives you've considered
Waybar has similar features

Additional context
Waybar :
image

Hyprpanel:
image

Decrease internal padding of bar and it's modules

Is your feature request related to a problem? Please describe.
Decrease the internal padding of modules like the text in modules or the gaps between module, edge gap between module and bar etc.

Describe the solution you'd like
An option to change padding of module, text etc

Describe alternatives you've considered
Removing hardcoded white space will somewhat achieve the result

Additional context
image
Here the padding between the Arch logo and edge of bar as well as notification module and bar is pretty massive, some option to remove or decrease that would be great

Toggle Ethernet Connection (applet)

Is your feature request related to a problem? Please describe.
My home connection (Ethernet) is pretty poor and requires me to switch to a tethered Wi-Fi connection for large downloads.
Therefore I often need to connect to Wi-Fi and disable my Ethernet for the system to use said Wi-Fi.
Right now the networking applet doesn't let you do that.

Describe the solution you'd like
I'd like a way to toggle the Ethernet connection on and off from the network applet.

Describe alternatives you've considered
Right now I'm using nm-applet --indicator as a workaround solution, it popups up in the system tray and gives me more options there.

Additional context
n/a

Nix build failure caused by GdkPixbuf-2.0

Describe the bug
A clear and concise description of what the bug is.

To Reproduce

  • Clone the repository
  • Run nix build
error: builder for '/nix/store/bjrkxrfk0z3q4gwnidhm4ilz7dyimygh-hyprpanel-latest.drv' failed with exit code 1;
       last 10 log lines:
       > Running phase: patchPhase
       > Running phase: updateAutotoolsGnuConfigScriptsPhase
       > Running phase: configurePhase
       > calling 'preConfigure' function hook '_multioutConfig'
       > no configure script, doing nothing
       > Running phase: buildPhase
       > 4 | import GdkPixbuf from "types/@girs/gdkpixbuf-2.0/gdkpixbuf-2.0.js";
       >                           ^
       > error: Could not resolve: "types/@girs/gdkpixbuf-2.0/gdkpixbuf-2.0.js". Maybe you need to "bun install"?
       >     at /build/nrn2j05b1w5qinz0a77jva3xqj135kcc-source/modules/menus/dashboard/profile/index.ts:4:23
       For full logs, run 'nix log /nix/store/bjrkxrfk0z3q4gwnidhm4ilz7dyimygh-hyprpanel-latest.drv'.
error: 1 dependencies of derivation '/nix/store/0r8shgja2cgq0d3sgbmic1fi1vpb5kg8-hyprpanel.drv' failed to build

Expected behavior
HyprPanel should build

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • Distribution: NixOS
  • Window Manager/Desktop Environment: Hyprland

Additional context
This issue is caused by modules/menus/dashboard/profile/index.ts:4 with

import GdkPixbuf from "types/@girs/gdkpixbuf-2.0/gdkpixbuf-2.0.js";

which (as far as I'm aware anyway) isn't part of the default Ags types. Removing this line, and removing line 30 resolves the build issue, and doesn't seem to cause any issues in my testing.

Option for workspace numbers

Is your feature request related to a problem? Please describe.
No

Describe the solution you'd like
I use a multi-monitor setup (4 total) it would be convenient to be able to see the workspace number(s) to switch quickly to the desired workspace.

Preferably just a option in the settings.

Describe alternatives you've considered
I have tried scan through the source to see if I could implement it myself, but I am not familiar with ags

Bar size changes with "underline" Workspace highlight and changing monitor focus

Describe the bug
The underline workspace highlight adds a bit of padding to the bar height, which is fine, however, when the monitor that's highlight loses focus, the highlight dissapears and the whole bar shrinks back. It's a bit hard to see in screenshots, but is very noticeable when the hyprland windows readjust to the new bar size.

image
image

This could be fixed by changing the bar to not flex its size when its not being highlighted, however, I would like to rework the way workspaces are highlighted to allow for highlights to appear on all active monitors.

Help adding updates and brightness modules, as well as a border around modules

Is your feature request related to a problem? Please describe.
I'm not quite sure how to add additional modules to this bar. I'd like a module (quite similar to the volume module) that displays brightness. And I'd like to know how to create a new module (perhaps by duplicating and modifying existing code for 1 module?) for showing the number of updates (on hover, it shows what updates are available - via yay -Qu on Arch, and if i click it it opens a terminal window prompting me to update). I have achieved this on Waybar, but I have no idea how to get this working on AGS.

Describe the solution you'd like

  • how to create a custom module
  • module for brightness
  • module for updates
  • blue border around windows

Describe the steps you've taken
This is how it looks in my fork. I'd modified the border of the individual menus, but I'm not able to set this blue border around
image

Additional context
Forgive me if this isn't the right place to ask for help (I guess it isn't).

Unable to save "Bar Layouts for Monitors"

Hi! I love what you have done with this panel, I am having an issue trying to save my layout. I have 2 monitors, "0" is a vertical monitor, "1" is a horizontal monitor. I only want the bar to show on my horizontal monitor. Here is the JSON I have formatted:

{
  "1": {
    "left": [
      "dashboard",
      "workspaces",
      "windowtitle"
    ],
    "middle": [
      "media"
    ],
    "right": [
      "volume",
      "network",
      "bluetooth",
      "battery",
      "systray",
      "clock",
      "notifications"
    ]
  }
}

I was able to change the font and it seems to be saved in the config, but the layout couldn't be saved, I couldn't save the weatherapi key as well. There don't seem to be a save button, am I doing something wrong?

Weather module does not check for null API key

Describe the bug
Weather module does not check for a null key. Results in widget constantly trying to parse a null value and throwing errors.

Expected behavior
Weather module does not load on null value

Desktop (please complete the following information):

  • Distribution: Arch
  • Window Manager/Desktop Environment: Hyprland

To-Do List

Is your feature request related to a problem? Please describe.
No problems here just think a To-Do list would be a really cool feature.

Describe the solution you'd like
Similar to end-4s ags config it would be really cool to see a To-Do List implemented with the Calendar in some way.

Additional context
Love the project!

More Weather Providers

Is your feature request related to a problem? Please describe.
WeatherApi isn't that great. At least here in France, it's missing a lot of mid size cities which should be available.
The weather of the city the website recommends for my location is very different from mine.

Describe the solution you'd like
I'd like a choice between a few weather api's, not sure which are best, would have to be discussed/researched.

Describe alternatives you've considered
AccuWeather offers 50 calls/day with a free developer account for example, and most weather providers with an api offer a free plan. Not sure how they compare though.

Additional context
n/a

Hide unoccupied workspaces

Is your feature request related to a problem? Please describe.
It would be nice to have an option where unoccupied workspaces do not appear in the workspace list.

Describe the solution you'd like
When a given workspace is not in use, it would be nice if we could make its number not appear in the workspace list.
However, I'm not sure if this would make sense in the case where the user is not using workspace numbers.

Additional context
Take the following example, where only workspaces 1 and 3 have windows:

image

I would like to have an option to temporarily hide workspaces 2 and 4, while they are empty or not focused.

Font weight breaks on spinner button press

Describe the bug
Font weight (and possibly other settings) break on spinner button press. This is because font weight only accepts increments of 100, but the spinner buttons change the value by 1. This causes all CSS to error.

To Reproduce
Steps to reproduce the behavior:
Any press on spinner button for "Font Weight"

Expected behavior
Spinner buttons to adjust values in valid increments

Screenshots

Desktop (please complete the following information):

  • Distribution: Arch Linux
  • Window Manager/Desktop Environment: Hyprland

Notification hints

Is your feature request related to a problem? Please describe.
For example, my volume control script uses value hints to show a "progress" bar in the volume notification:

notify-send -e -h int:value:"$(get_volume)" -h string:x-canonical-private-synchronous:volume_notif -u low -i "$(get_icon)" "Volume: $(get_volume)"

This causes an avalanche of notifications and no progress bar.

Describe the solution you'd like
I would like that every call to this script (that increases or decreases the volume by a certain amount) would result in a single notification with a progress bar update (each notification should be replaced).

Describe alternatives you've considered
No other alternatives considered.

Additional context
This should be a single notification with a progress bar:

image

Thanks in advance!

AGS not respecting libnotify convention

Describe the bug
When using swaync a notification can be overridden using "synchronous" hint to to create a "confirmation" notification that will replace previous confirmation notifications. For example:

notify-send "Message" -h string:x-canonical-private-synchronous:anything

and doing

notify-send "Message1" -h string:x-canonical-private-synchronous:anything

will replace "Message" with "Message1", IDK if this is expected behavior or not but AGS notification doesn't follow said convention

To Reproduce

  • Install swaync and execute it
  • Try running : notify-send "Message" -h string:x-canonical-private-synchronous:anything and notify-send "Message1" -h string:x-canonical-private-synchronous:anything
  • The "Message" will be overridden by "Message1" but doesn't happen in AGS

Expected behavior
Previous notification with same ID be overridden instead of shown in different notification

Screenshots

notify-rules-compressed.mp4

Desktop (please complete the following information):

  • Distribution: EndeavourOS
  • Window Manager/Desktop Environment: Hyprland

Additional context
None

How are you hiding the dropdown windows when the user clicks away from it?

This isn't a bug or a feature request. I was just curious how you implemented this functionality. I already have my own ags config which includes a bar for each monitor and a dropdown window. Right now, the only way to hide or show the dropdown window for my config is to click on a button on the bar. I'd love to be able to close the dropdown window by clicking away from it anywhere.

I tried looking at your config but couldn't figure out how you accomplished this. I'm guessing it has something to do with all the EventBox widgets in DropdownMenu?

Left elements of panel not showing up on vertical + ultrawide monitor setup

On my pc with a vertical monitor to the left of an ultrawide monitor, the left elements of hyprpanel do not show up "dashboard","workspaces","windowtitle".

This is with vanilla, completely unedited monitor configurations (ie, I haven't removed the left elements, they're definitely there in the config but not being displayed.

image
Sorry for the image taken on my potato, I still haven't debugged grimblast yet on this computer. Hopefully you get the idea.

Arch linux, hyprpanel commit 0893952.

My monitor setup in hyprland.conf is:

monitor=DP-2, 2560x1080, 1080x+400, 1
monitor=DP-1, 1920x1080, 0x0, 1, transform, 1

And output of hyprctl monitors is:

❯ hyprctl monitors
Monitor DP-1 (ID 0):
	[email protected] at 0x0
	description: Samsung Electric Company C27FG70 HTHJ200453
	make: Samsung Electric Company
	model: C27FG70
	serial: HTHJ200453
	active workspace: 2 (2)
	special workspace: 0 ()
	reserved: 0 45 0 0
	scale: 1.00
	transform: 1
	focused: no
	dpmsStatus: 1
	vrr: 0
	activelyTearing: false
	disabled: false
	currentFormat: XRGB8888
	availableModes: [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected]

Monitor DP-2 (ID 1):
	[email protected] at 1080x400
	description: Dell Inc. DELL U2917W 1YG1V74H307L
	make: Dell Inc.
	model: DELL U2917W
	serial: 1YG1V74H307L
	active workspace: 3 (3)
	special workspace: 0 ()
	reserved: 0 45 0 0
	scale: 1.00
	transform: 0
	focused: yes
	dpmsStatus: 1
	vrr: 0
	activelyTearing: false
	disabled: false
	currentFormat: XRGB8888
	availableModes: [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected]

Bar overflow moves notifications off screen

Describe the bug
When a particularly long window name is encountered, filling all the available bar space, HyprPanel prefers to start pushing bar entries (such as the notifications icon) off of the screen instead of only displaying a portion of the window name.

To Reproduce
Use default bar configuration (on some monitors at least), open a long-named window.

Expected behavior
I would expect for very long-named windows, HyprPanel would prefer shortening the displayed name instead of pushing entries off of the screen.

Screenshots
Good behaviour:
snapshot_2024-07-29_12-20-28

Bad behaviour:
snapshot_2024-07-29_12-21-07

Desktop (please complete the following information):

  • Arch linux + hyprland, latest.
  • Plasma 6 with 150% scaling installed beside hyprland.
  • 1920x1080 resolution, (probably being shown as 1280x720 from plasma scaling).
  • $GTK_SCALING is not set to anything.

Additional context
You can do a dirty workaround by removing battery percentage status, date from widgets etc, and more space appears. Definitely a stopgap solution though.

Weather Icons display as squares

Describe the bug
The weather and sleep icon (which uses a weather icon) show as simple black squares

To Reproduce
This behavior occurs constantly

Expected behavior
Show the correct weather icons

Screenshots
image
image

Desktop (please complete the following information):

  • EndeavourOS
  • Hyprland

Additional context
I have got nerd fonts installed

[BUG\Feat.Req]: slightly annoying bug. volume isnt on 5 or 0 percentages. eg 50% or 55%.

Describe the bug
welp. it seems to be a bug as when i increase volume.
when increasing or decreasing voulme it isnt on perfect 5 or 0 percentages which is annoying since it triggers me. long time ocd sufferer and i dont like this.
To Reproduce
when increasing or decreasing voulme it isnt on perfect 5 or 0 percentages which is annoying since it triggers me. long time ocd sufferer and i dont like this.

Expected behavior
A clear and concise description of what you expected to happen.
increaments of 5 like normal. increaments of 2/4 is very annoying ngl. i dont like this
Screenshots
image
image

Desktop (please complete the following information):

  • Distribution: EOS Linux Aurora 6.10.0-arch1-2 #1 SMP PREEMPT_DYNAMIC Mon, 22 Jul 2024 17:28:23 +0000 x86_64 GNU/Linux
  • Window Manager/Desktop Environment: hyprland duh

Additional context
Add any other context about the problem here.
idk if this is issue on hypr panel but i belive that it is as before this my script works just fine.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.