andreykaere / ixwindow

Iconized xwindow module for Polybar (for bspwm and i3wm)
38 stars 3 forks source link

No Icons after manually compiling (multiple issues). #10

Closed Samueru-sama closed 9 months ago

Samueru-sama commented 9 months ago

This is on Archlinux with i3wm.

I could not do a git clone git@github.com:andreykaere/ixwindow.git because I get a permission denied error.

I manually downloaded the directory and extracted the files to ~/ixwindow.

Running ./install resulted in ixwindow.toml being created and nothing else happened.

Reading the install script, I was able to manually create and place ~/.config/ixwindow/ixwindow.toml then I ran cargo build --release which compiled without errors and I placed ixwindow in ~/.config/polybar/scripts/ixwindow/

Then I modified my polybar config to start the script and I'm just met with an error telling me that there was no config file found.

Then I tried all again all the steps again but using the dev branch, again same error that there was no config file even though ixwindow.toml was in ~/.config/ixwindow/

Finally I was able to get it to start by manually poiting to the config file using exec = ~/.config/polybar/scripts/ixwindow/ixwindow -c ~/.config/ixwindow/ixwindow.toml on polybar.

For another reason --config= didn't work, likely it was changed in the dev version no idea.

Now the app starts and I can see the window title, however no icon is drawn on the screen, I tried changing the icon size and placement by editing the .toml file but no icon is seen, there's the blank space of where the icon would be but that is it, any help?

EDIT: ~/.config/polybar/scripts/ixwindow/polybar-icons is present and there are icons from the apps being used but no icon is being displayed on polybar.

EDIT2: After more testing, turns out what happened is that the icon is being rendered behind polybar and the window and that's why I could not see it lol.

Also because the icon position is fixed it seems this wont work on what I wanted to do, because my window module is in the middle of the bar it means that the icon wont be at the correct place every time the window title changes:

image

andreykaere commented 9 months ago

Hi! Thank you for drawing my attention to this bugs. I fixed some installation bugs easily. (see PR)

About icon not being visible: recently I created a feature, such that the icon is placed under all windows (except polybar). Because it was annoying when floating windows were overlapped by icon ... But current implementation is relying on WM_NAME and WM_CLASS of polybar window. Could you run xprop and point on polybar and post output here?

About position of the icon: on i3wm it's supposed to be dynamic (depending on the current number of desktops). However, right now it's not supposed to be depending on the length of the title. But to be honest, I don't get what you want to do ... Could you please draw on the picture that you attached, place of the icon you want it to be at?

Samueru-sama commented 9 months ago

Hi! Thank you for drawing my attention to this bugs. I fixed some installation bugs easily. (see PR)

About icon not being visible: recently I created a feature, such that the icon is placed under all windows (except polybar). Because it was annoying when floating windows were overlapped by icon ... But current implementation is relying on WM_NAME and WM_CLASS of polybar window. Could you run xprop and point on polybar and post output here?

About position of the icon: on i3wm it's supposed to be dynamic (depending on the current number of desktops). However, right now it's not supposed to be depending on the length of the title. But to be honest, I don't get what you want to do ... Could you please draw on the picture that you attached, place of the icon you want it to be at?

~/ xprop
WM_STATE(WM_STATE):
        window state: Normal
        icon window: 0x0
_NET_SYSTEM_TRAY_ORIENTATION(CARDINAL) = 0
_NET_SYSTEM_TRAY_COLORS(CARDINAL) = 54484, 55769, 54998, 54484, 55769, 54998, 54484, 55769, 54998, 54484, 55769, 54998
WM_NORMAL_HINTS(WM_SIZE_HINTS):
        program specified location: 1440, 0
        program specified size: 1440 by 16
        program specified minimum size: 1440 by 16
        program specified maximum size: 1440 by 16
        program specified base size: 1440 by 16
_NET_WM_PID(CARDINAL) = 801
_NET_WM_DESKTOP(CARDINAL) = 4294967295
_NET_WM_STATE(ATOM) = _NET_WM_STATE_STICKY, _NET_WM_STATE_ABOVE
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_DOCK
WM_CLASS(STRING) = "polybar", "Polybar"
WM_NAME(STRING) = "polybar-main_DP-2"
_NET_WM_STRUT_PARTIAL(CARDINAL) = 0, 0, 16, 0, 0, 0, 0, 0, 1440, 2879, 0, 0
_NET_WM_STRUT(CARDINAL) = 0, 0, 16, 0
andreykaere commented 9 months ago

Hmmm, weird ... Everything should be working just fine (I mean icon being on top of the bar)...

andreykaere commented 9 months ago

Try to switch the windows ... Because at start up icon might not be displayed ... You will have to add sleep in your polybar config to start ixwindow a bit later. Something like sleep 0.5. This is because ixwindow needs to know WM_CLASS property of polybar and you have to wait for it to be set.

But again, try to change the windows and put big size in config. And try to switch windows, desktops.

Let me know if anything of the above will show you icon.

Samueru-sama commented 9 months ago

Try to switch the windows ... Because at start up icon might not be displayed ... You will have to add sleep in your polybar config to start ixwindow a bit later. Something like sleep 0.5. This is because ixwindow needs to know WM_CLASS property of polybar and you have to wait for it to be set.

But again, try to change the windows and put big size in config. And try to switch windows, desktops.

Let me know if anything of the above will show you icon.

https://streamable.com/l8yr7o

Tried with:

exec = sleep 0.5 && ~/.config/polybar/scripts/ixwindow/ixwindow -c ~/.config/ixwindow/ixwindow.toml

and

exec = sleep 1 && ~/.config/polybar/scripts/ixwindow/ixwindow -c ~/.config/ixwindow/ixwindow.toml

The icon still gets rendered behind the bar as seen in the vid.

andreykaere commented 9 months ago

I suggest to move this discussion to related PR, in order to make testing/debuging process easier.