Giter Club home page Giter Club logo

sov's People

Contributors

b1rger avatar c1ttim avatar cedrus-8864 avatar ckyb avatar crispyricepc avatar jelmer avatar keloran avatar larskotthoff avatar luis-barrera avatar milgra avatar pound-hash avatar slickytail avatar trinitronx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

sov's Issues

Some apps show "wrong" name

Not sure how to put the title properly to describe this, so I attached a screenshot.

"Electron" on screen 1 is obsidian
"org.wezfurlong.wezterm" is wezterm

20221222_23h00m02s_grim

Is there something I can do on my end to make them show different names?

Using aur/sov 0.87b-1 (arch)

PS, thanks for sharing such a cool project!

EndeavourOS - New install of SOV fails to start systemd sov.service

New install of SOV fails to start systemd sov.service

System

Linux distribution: EndeavourOS

Behaviour

When attempting to start sov.service with systemd, the following message appears in journalctl:

[marioagustincarranza@sway ~]$ systemctl status --user sov.service 
× sov.service - An overlay that shows schemas for all workspaces to make navigation in sway easier
     Loaded: loaded (/home/marioagustincarranza/.local/share/systemd/user/sov.service; disabled; preset: enabled)
     Active: failed (Result: start-limit-hit) since Sat 2022-10-22 11:19:22 CEST; 1s ago
   Duration: 8ms
TriggeredBy: × sov.socket
    Process: 5867 ExecStart=/usr/bin/sov (code=exited, status=0/SUCCESS)
   Main PID: 5867 (code=exited, status=0/SUCCESS)
        CPU: 8ms

Okt 22 11:19:22 sway systemd[907]: Started An overlay that shows schemas for all workspaces to make navigation in sway easier.
Okt 22 11:19:22 sway systemd[907]: sov.service: Start request repeated too quickly.
Okt 22 11:19:22 sway systemd[907]: sov.service: Failed with result 'start-limit-hit'.
Okt 22 11:19:22 sway systemd[907]: Failed to start An overlay that shows schemas for all workspaces to make navigation in sway easier.

I am currently attempting to know if its an issue made by me, or if something needs to be modified

Typo in error message

Running sov prints:

Ttrying to allocate 0 bytes for ../sov-0.62/src/modules/zen_core/zc_cstring.c 208

Trying has a typo.

Clickable Workspaces + Auto-update while Shown [Feature Request]

Using SOV on a tablet would benefit greatly from allowing the user to move to a given workspace by tapping (clicking) on it.

In addition, auto-updating a static SOV in sitting "show" mode could, along with the above feature, allow SOV to be used not just as a map of workspaces, but as a also as a great touchscreen/tablet navigation tool. This could presumably be accomplished by listening to workspace / window events via the sway IPC socket.

Build fails with multiple errors

I've been trying to get this working on Void Linux both using xbps-src as well as directly running meson build and ninja -C build from a terminal and it fails during the second command (i.e. ninja -C build) with the error ninja: build stopped: subcommand failed

and with the following output:

ninja: Entering directory `build'
[19/60] Compiling C object sov.p/src_sov_config_fontconfig.c.o
../src/sov/config/fontconfig.c: In function 'fontconfig_new_path':
../src/sov/config/fontconfig.c:22:19: warning: implicit declaration of function 'popen'; did you mean 'fopen'?  -Wimplicit-function-declaration]
   22 |   FILE* pipe    = popen(command, "r");                                    // CLOSE 0
      |                   ^~~~~
      |                   fopen
../src/sov/config/fontconfig.c:22:19: warning: initialization of 'FILE *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
../src/sov/config/fontconfig.c:26:3: warning: implicit declaration of function 'pclose'; did you mean 'fclose'? [-Wimplicit-function-declaration]
   26 |   pclose(pipe); // CLOSE 0
      |   ^~~~~~
      |   fclose
../src/sov/config/fontconfig.c:32:18: warning: initialization of 'FILE *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   32 |     FILE* pipe = popen(command, "r");                                   // CLOSE 1
      |                  ^~~~~
../src/sov/config/fontconfig.c:42:20: warning: initialization of 'FILE *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   42 |       FILE* pipe = popen(command, "r");                    // CLOSE 2
      |                    ^~~~~
[20/60] Compiling C object sov.p/src_modules_storage_kvlines.c.o
FAILED: sov.p/src_modules_storage_kvlines.c.o
cc -Isov.p -I. -I.. -I../src/sov/config -I../src/sov/tree -I../src/modules/json -I../src/modules/storage -I../src/modules/zen_core -I../src/modules/zen_text -I/usr/include/freetype2 -I/usr/include/libpng16 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=c99 -O0 -g '-DSOV_VERSION="0.61"' -DDEBUG -MD -MQ sov.p/src_modules_storage_kvlines.c.o -MF sov.p/src_modules_storage_kvlines.c.o.d -o sov.p/src_modules_storage_kvlines.c.o -c ../src/modules/storage/kvlines.c
../src/modules/storage/kvlines.c: In function 'kvlines_write':
../src/modules/storage/kvlines.c:102:32: error: 'PATH_MAX' undeclared (first use in this function)
  102 |   char* path = cstr_new_format(PATH_MAX + NAME_MAX, "%snew", libpath); // REL 0
      |                                ^~~~~~~~
../src/modules/storage/kvlines.c:102:32: note: each undeclared identifier is reported only once for each function it appears in
../src/modules/storage/kvlines.c:102:43: error: 'NAME_MAX' undeclared (first use in this function)
  102 |   char* path = cstr_new_format(PATH_MAX + NAME_MAX, "%snew", libpath); // REL 0
      |                                           ^~~~~~~~
[25/60] Compiling C object sov.p/src_modules_zen_core_zc_bitmap.c.o
ninja: build stopped: subcommand failed.

Any help? I'm quite new to meson-style builds.

No representation for tabbed workspaces

Below is a screenshot of workspace 9. I would expect that:

  1. the windows shown in sov are the same ones that are shown on screen
  2. a thin line above them to represent the tab bar
  3. some indication of which tab is focused.
    Instead it's defaulted to showing the second tab, which is just a grid of terminals I have for monitoring.
    image
❯ swaymsg -t get_tree
#1: root "root"
  #2147483647: output "__i3"
    #2147483646: workspace "__i3_scratch"
  #1553: output "DP-2"
    #1128: workspace "1"
      #1569: con "(null)"
        #1130: con "Mozilla Firefox" (xdg_shell, pid: 1505430, app_id: "firefox")
    #1117: workspace "2"
      #645: con "Untitled-1 - Visual Studio Code" (xwayland, pid: 1586762, instance: "code", class: "Code", X11 window: 0x4A00003)
    #1211: workspace "3"
      #1121: con "Mozilla Firefox" (xdg_shell, pid: 1505430, app_id: "firefox")
    #1450: workspace "4"
      #1161: con "Mozilla Firefox" (xdg_shell, pid: 1505430, app_id: "firefox")
    #1586: workspace "5"
      #1585: con "Home · swaywm/sway Wiki — Mozilla Firefox" (xdg_shell, pid: 1505430, app_id: "firefox")
      #1588: con "swaymsg -t get_tree" (xdg_shell, pid: 147226, app_id: "foot")
    #5: workspace "8"
      #1555: con "Element * | Welcome" (xwayland, pid: 109664, instance: "element", class: "Element", X11 window: 0x1000003)
      #1267: con "#general | SwitchCraft - Discord" (xwayland, pid: 2747194, instance: "discord", class: "discord", X11 window: 0x1A0000A)
    #10: workspace "9"
      #15: con "(null)"
        #13: con "(null)"
          #967: con "Carla - main.carxp" (xdg_shell, pid: 3821481, app_id: "carla")
          #1218: con "main [modified] — A PipeWire Graph Qt GUI Interface" (xdg_shell, pid: 2486051, app_id: "org.rncbc.qpwgraph")
        #17: con "(null)"
          #1153: con "Spotify" (xwayland, pid: 2084961, instance: "spotify", class: "Spotify", X11 window: 0x2C00003)
          #1430: con "(null)"
            #18: con "foot" (xdg_shell, pid: 2234, app_id: "foot")
            #1432: con "watch -n 60 "sensors | tail -n 28"" (xdg_shell, pid: 2987201, app_id: "foot")
      #22: con "(null)"
        #20: con "(null)"
          #19: con "foot" (xdg_shell, pid: 2285, app_id: "foot")
          #21: con "foot" (xdg_shell, pid: 2341, app_id: "foot")
        #24: con "(null)"
          #23: con "foot" (xdg_shell, pid: 2380, app_id: "foot")
          #25: con "foot" (xdg_shell, pid: 2690, app_id: "foot")

Build succeeds on 0.72, but fails on 0.74

I don't know if it's my system or an issue in release 0.74, but I cannot compile it, though 0.72 compiles fine.

Edit: 0.73 compiles fine, too.

rasmus@x301:~/tmp/sov-0.74$ ninja -C build
ninja: Entering directory `build'
[29/64] Compiling C object sov.p/src_zen_core_zc_log.c.o
FAILED: sov.p/src_zen_core_zc_log.c.o 
cc -Isov.p -I. -I.. -I../src/sov/config -I../src/sov/tree -I../src/sov/json -I../src/sov/utils -I../src/sov -I../src/zen_core -I../src/zen_gfx -I/usr/include/freetype2 -I/usr/include/libpng16 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=c99 -O3 '-DPKG_DATADIR="/usr/local/share/sov"' '-DSOV_VERSION="0.74"' -MD -MQ sov.p/src_zen_core_zc_log.c.o -MF sov.p/src_zen_core_zc_log.c.o.d -o sov.p/src_zen_core_zc_log.c.o -c ../src/zen_core/zc_log.c
../src/zen_core/zc_log.c: In function ‘zc_log’:
../src/zen_core/zc_log.c:90:21: error: storage size of ‘ts’ isn’t known
   90 |     struct timespec ts;
      |                     ^~
../src/zen_core/zc_log.c:91:9: warning: implicit declaration of function ‘clock_gettime’ [-Wimplicit-function-declaration]
   91 |     if (clock_gettime(CLOCK_REALTIME, &ts) != 0)
      |         ^~~~~~~~~~~~~
../src/zen_core/zc_log.c:91:23: error: ‘CLOCK_REALTIME’ undeclared (first use in this function)
   91 |     if (clock_gettime(CLOCK_REALTIME, &ts) != 0)
      |                       ^~~~~~~~~~~~~~
../src/zen_core/zc_log.c:91:23: note: each undeclared identifier is reported only once for each function it appears in
../src/zen_core/zc_log.c:90:21: warning: unused variable ‘ts’ [-Wunused-variable]
   90 |     struct timespec ts;
      |                     ^~
[31/64] Compiling C object sov.p/src_zen_core_zc_map.c.o
ninja: build stopped: subcommand failed.

Font fallbacks

Is it possible to support font fallbacks? Non-Latin codepoints show up as a box when using a monospace font because it doesn't have a glyph for it. Skimming through the code briefly, I think it might involve using the fontconfig library (and add an option to use fontconfig instead of parsing font-family), or making a fallback mechanism manually by calling FT_Get_Char_Index in a loop to swap out different fonts if it returns 0, and making the css parser recognize comma separated font descriptions. (I did not try this with a patch yet)

How do I activate sov in Sway?

Hi there and thank you for creating SOV. How can I use it?

I have installed sov under EndeavourOS (Arch-based distro) and think to have configured correctly the relevant sway files. Waybar launches fine and now, how do I use SOV?

In the command line, I get :

❯ sov
Sway Overview v0.92b by Milan Toth ( www.milgra.com )
If you like this app try :
- Wayland Control Panel ( github.com/milgra/wcp )
- Visual Music Player (github.com/milgra/vmp)
- Multimedia File Manager (github.com/milgra/mmfm)
- SwayOS (swayos.github.io)
Games :
- Brawl (github.com/milgra/brawl)
- Cortex ( github.com/milgra/cortex )
- Termite (github.com/milgra/termite)

style path    : /usr/share/sov
css path      : /usr/share/sov/html/main.css
html path     : /usr/share/sov/html/main.html
image path    : /usr/share/sov/img
ratio         : 8
anchor        :
margin        : 0
timeout       : 0
columns       : 5
use_name      : false

I cannot see if there is a default key combination.

Missing error checking in src/sov/config/fontconfig.c

I noticed that in src/sov/config/fontconfig.c, 'popen' is called without checking for NULL (e.g. if fc-match was not in $PATH). For better error messages (instead of a crash because of a NULL, or maybe even silently continuing or corrupting memory on systems without memory protection), I recommend checking the return value.

When new output is created and old output is gone, sov still draws to the old dead output

I use a tool named kanshi that dynamically manages my outputs and workspaces. However, whenever kanshi activates after a new output is created and the former output is gone, sov thinks there are 0 workspaces. Debug messages below were generated after first running it, switching between two workspaces (that works fine), then migrating to a new output, then switching between two workspaces (thinks there are 0 workspaces, so it just shows a blank bar in the middle of the screen).

tail -f $XDG_RUNTIME_DIR/sov.sock| sov -v                                            INT|INT ✘  38s  19:32:24 
Sway Overview v0.9b by Milan Toth ( www.milgra.com )
If you like this app try :
- Wayland Control Panel ( github.com/milgra/wcp )
- Visual Music Player (github.com/milgra/vmp)
- Multimedia File Manager (github.com/milgra/mmfm)
- SwayOS (swayos.github.io)
Games :
- Brawl (github.com/milgra/brawl)
- Cortex ( github.com/milgra/cortex )
- Termite (github.com/milgra/termite)

DEBUG  Set log level to DEBUG                                                                        19:32:54:746652 ../sov-0.9b/src/mt_core/mt_log.c : 172 
style path    : /home/lj/.config/sov
css path      : /home/lj/.config/sov/html/main.css
html path     : /home/lj/.config/sov/html/main.html
image path    : /home/lj/.config/sov/img
ratio         : 8
anchor        : 
margin        : 0
timeout       : 0
columns       : 5
use_name      : false
DEBUG  xdg output handle logical size, 1920 1080 for monitor 0                                       19:32:54:764918 ..
/sov-0.9b/src/kinetic_ui/ku_connector_wayland.c : 1488 
DEBUG  Found workspace, name: 1: ‭‬  num : 1 output : eDP-1                                           19:32:56:736169 ../sov-0.9b/src/sov/tree.c : 153 
DEBUG  Found workspace, name: 2: ‭‬ ‭‬ ‭‬  num : 2 output : eDP-1                                       19:32:56:736194 ../sov-0.9b/src/sov/tree.c : 153 
DEBUG  Found workspace, name: 3 num : 3 output : eDP-1                                               19:32:56:736206 ../sov-0.9b/src/sov/tree.c : 153 
DEBUG  Found window, appid betterbird title Inbox - School - Betterbird 0 57 1920 1023               19:32:56:736832 ../sov-0.9b/src/sov/tree.c : 220 
DEBUG  Found window, appid kitty title journalctl -b 0 57 960 500                                    19:32:56:736872 ../sov-0.9b/src/sov/tree.c : 220 
DEBUG  Found window, appid kitty title tail -f $XDG_RUNTIME_DIR/sov.sock| sov -v 0 580 960 500       19:32:56:736895 ../sov-0.9b/src/sov/tree.c : 220 
DEBUG  Found window, appid kitty title config (~/.config/sway) - NVIM 960 57 960 1023                19:32:56:736913 ../sov-0.9b/src/sov/tree.c : 220 
DEBUG  Creating layer for eDP-1 : workspaces 3 cols 5 rows 1 ratio 8 width 1320 height 175           19:32:56:736938 ../sov-0.9b/src/sov/sov.c : 119 
DEBUG  Drawing layer eDP-1 : workspaces 3 cols 5 rows 1 ratio 8                                      19:32:56:737069 ../sov-0.9b/src/sov/sov.c : 150 
DEBUG  adding row row0                                                                               19:32:56:737100 ../sov-0.9b/src/sov/gen.c : 140 
DEBUG  xdg output handle logical size, 2127 1196 for monitor 1                                       19:33:09:963239 ../sov-0.9b/src/kinetic_ui/ku_connector_wayland.c : 1488 
DEBUG  handle global remove                                                                          19:33:10:507083 ../sov-0.9b/src/kinetic_ui/ku_connector_wayland.c : 1743 
DEBUG  Found workspace, name: 1: ‭‬  num : 1 output : DP-5                                            19:33:18:065635 ../sov-0.9b/src/sov/tree.c : 153 
DEBUG  Found workspace, name: 2: ‭‬ ‭‬ ‭‬  num : 2 output : DP-5                                        19:33:18:065654 ../sov-0.9b/src/sov/tree.c : 153 
DEBUG  Found workspace, name: 3 num : 3 output : DP-5                                                19:33:18:065660 ../sov-0.9b/src/sov/tree.c : 153 
DEBUG  Found window, appid betterbird title Inbox - School - Betterbird 1920 57 2127 1139            19:33:18:066027 ../sov-0.9b/src/sov/tree.c : 220 
DEBUG  Found window, appid kitty title journalctl -b 1920 57 1064 558                                19:33:18:066049 ../sov-0.9b/src/sov/tree.c : 220 
DEBUG  Found window, appid kitty title tail -f $XDG_RUNTIME_DIR/sov.sock| sov -v 1920 638 1064 558   19:33:18:066063 ../sov-0.9b/src/sov/tree.c : 220 
DEBUG  Found window, appid kitty title config (~/.config/sway) - NVIM 2984 57 1063 1139              19:33:18:066078 ../sov-0.9b/src/sov/tree.c : 220 
DEBUG  Creating layer for eDP-1 : workspaces 0 cols 5 rows 0 ratio 8 width 1320 height 20            19:33:18:066105 ../sov-0.9b/src/sov/sov.c : 119 
DEBUG  Drawing layer eDP-1 : workspaces 0 cols 5 rows 0 ratio 8                                      19:33:18:066194 ../sov-0.9b/src/sov/sov.c : 150 
DEBUG  Found workspace, name: 1: ‭‬  num : 1 output : DP-5                                            19:33:20:661534 ../sov-0.9b/src/sov/tree.c : 153 
DEBUG  Found workspace, name: 2: ‭‬ ‭‬ ‭‬  num : 2 output : DP-5                                        19:33:20:661565 ../sov-0.9b/src/sov/tree.c : 153 
DEBUG  Found window, appid betterbird title Inbox - School - Betterbird 1920 57 2127 1139            19:33:20:662191 ../sov-0.9b/src/sov/tree.c : 220 
DEBUG  Found window, appid kitty title journalctl -b 1920 57 1064 558                                19:33:20:662231 ../sov-0.9b/src/sov/tree.c : 220 
DEBUG  Found window, appid kitty title tail -f $XDG_RUNTIME_DIR/sov.sock| sov -v 1920 638 1064 558   19:33:20:662254 ../sov-0.9b/src/sov/tree.c : 220 
DEBUG  Found window, appid kitty title config (~/.config/sway) - NVIM 2984 57 1063 1139              19:33:20:662271 ../sov-0.9b/src/sov/tree.c : 220 
DEBUG  Creating layer for eDP-1 : workspaces 0 cols 5 rows 0 ratio 8 width 1320 height 20            19:33:20:662293 ../sov-0.9b/src/sov/sov.c : 119 
DEBUG  Drawing layer eDP-1 : workspaces 0 cols 5 rows 0 ratio 8                                      19:33:20:662404 ../sov-0.9b/src/sov/sov.c : 150 

Edit: it seems that sov thinks the old output, which is gone, is still being focused, so it sees that the old output has 0 workspaces. At least it recognizes the new output's workspaces in the debug messages that happen right after kanshi activates.

How do I set it up and use it on nix os?

you can download sov package and run
rm -rf -f /tmp/sovpipe && mkfifo /tmp/sovpipe && tail -f /tmp/sov | sov -v -t 200
but it does nothing

sov works from cli (pressing 0 1 2 3 and enter) but not with pipes/sockets

Blurry font with scaled displays

I just found sov. I love the idea ❤️ , but when I gave it a try, found out that the text it shows is actually quite blurry:

image

Above is a screenshot with crisp text from foot but blurry text from sov. The above screen is scaled with a scaling factor of 2. I also have another screen with a scaling factor of 1.5, in case that's relevant.

Adding border color and radius

I suggest adding 5 more config variables (if possible):
window_border_radius - change window border radius
window_border_color - change window border color
window_border_sizer - change window border thickness?
border_radios - for workspace border
border_size - workspace border thickness

Adding those 5 would help people to style it more to their looks and feel with custom styles.

Does not launch on EndeavourOS / pipe value not read

fresh install on sway using the config method, using the binding keys does not show sov, while it works by launching from a terminal. Manually echoing "1" to the pipe after sov is running also does not show sov.

[Feature Request] Show overview until release of $mod

I would love if Sway Overview could be set to

  1. show on $mod+key (as it is now),
  2. remain shown when key is released, but $mod held,
  3. refresh on workspace switching, and
  4. hide when $mod is released.

I think this would both improve the experience of using Sway Overview when changing with $mod+1-$mod+9 etc., where $mod could now be held while choosing what number to change to, and also when switching to next and previous workspaces.

I could imagine others would also be happy for this feature. @larskotthoff mentions mentions it, and it is an implemented feature of Workspace Matrix for Gnome where it makes maneuvering the space of workspaces a breeze.

It is my impression that the way keybindings are implemented in Sway makes it impossible to implement this through the Sway config alone. The patch from this rejected PR makes it possible, but changes --release a lot, which was given as a reason for rejecting it. Additionally, Sway Overview does not refresh when workspaces are switched if it remains shown.

Another reason given for the PR rejection is that the behavior should be implementable through current Wayland protocols for apps that use layer-shell---which I from the description guess Sway Overview does?

Layers of workspaces like cards?

I somehow like the idea of like press alt-tab and then sov displays on screen array of workspaces and its window thumnails like a stack of cards (reveal some portion of next workspace and next and next -- the more the less spaces to reveal) and cycle through them.

Some animations would be better :)

Unable to switch to the selected workspace properly by clicking if there are more than 10 workspaces

I'm using a script that I wrote, called "swayworkroom.sh". It creates sets of each being able to have its 10 workspaces, for example 11 to 20, and 21 to 30, r1 to r0.

Selecting a workspace by clicking in the sov panel doesn't switch to the corresponding one properly.

What happened?

Also, is there any output to be listened from, for indicating which workspace after that I've just selected with sov by clicking? I need to keep track of it to notify the script which set that I'm currently in.

Bug: CSS colors don't follow standard: #RRGGBBAA

After trying to set colors for sov to match my desktop theme, I noticed that colors didn't seem to be displayed correctly. Later, by experimenting with setting FF for each octet, I discovered that the format currently seems to be:

#BBGGRRAA

Since this Kinetic UI seems to be using CSS files for styling, it should probably be corrected to use the standard CSS format instead:

#RRGGBBAA

It might be that the color channels are flipped in endian-ness, or some other mistake was made to flip them when handling the hexidecimal color codes somewhere in the code.

[Feature Request] Add support to scroll through workspaces to display ones that exceed the screen

I have a script here, as an extension to sway to have more than 10 workspaces.

Now, when I have a lot of workspaces opened, sov will display some workspaces exceeding on the screen.

Like the following:
screenShot-grim_20230622164817
screenShot-grim_20230622164633

How can I see the rest of workspaces, without shrinking down sov to display on my screen?

Since I'm working on a small screen laptop, making it display smaller overally isn't really an option, as the text will be too small to see.

Repeating the `workspace next` sway action causes the sov overview to repeat, as in compound. So the opacity increases per keypress

Is there anything I can do to counteract this?
Kooha-2023-11-28-14-29-57.webm
This is my config:

    bindsym --no-repeat $mod+Tab workspace next; exec "echo 1 > /tmp/sovpipe"
    bindsym --release $mod+Tab exec "echo 0 > /tmp/sovpipe"
    bindsym --no-repeat $mod+Shift+Tab workspace prev; exec "echo 1 > /tmp/sovpipe"
    bindsym --release $mod+Shift+Tab exec "echo 0 > /tmp/sovpipe"

    # Switch to workspace with `sov` integration
    # Attempted holdkey style functionality with win-key: `sov -k 65515`
    # exec_always rm -f /tmp/sovpipe && mkfifo /tmp/sovpipe && tail -f /tmp/sovpipe | sov -k 65515
    exec_always "pkill sov; rm -f /tmp/sovpipe && mkfifo /tmp/sovpipe && tail -f /tmp/sovpipe | sov -k 65515"

    bindsym --no-repeat $mod+1              workspace $ws1; exec "echo 1 > /tmp/sovpipe"
    bindsym --no-repeat Control+$Alt+$mod+p workspace $ws1; exec "echo 1 > /tmp/sovpipe"
    bindsym --no-repeat $mod+2              workspace $ws2; exec "echo 1 > /tmp/sovpipe"
    bindsym --no-repeat Control+$mod+$Alt+o workspace $ws2; exec "echo 1 > /tmp/sovpipe"
    bindsym --no-repeat $mod+3              workspace $ws3; exec "echo 1 > /tmp/sovpipe"
    bindsym --no-repeat Control+$mod+$Alt+c workspace $ws3; exec "echo 1 > /tmp/sovpipe"
    bindsym --no-repeat $mod+4              workspace $ws4; exec "echo 1 > /tmp/sovpipe"
    bindsym --no-repeat Control+$mod+$Alt+i workspace $ws4; exec "echo 1 > /tmp/sovpipe"
    bindsym --no-repeat $mod+5              workspace $ws5; exec "echo 1 > /tmp/sovpipe"
    bindsym --no-repeat $mod+6              workspace $ws6; exec "echo 1 > /tmp/sovpipe"
    bindsym --no-repeat $mod+7              workspace $ws7; exec "echo 1 > /tmp/sovpipe"
    bindsym --no-repeat $mod+8              workspace $ws8; exec "echo 1 > /tmp/sovpipe"
    bindsym --no-repeat $mod+9              workspace $ws9; exec "echo 1 > /tmp/sovpipe"
    bindsym --no-repeat $mod+0              workspace $ws10; exec "echo 1 > /tmp/sovpipe"

    bindsym --release $mod+1 exec "echo 0 > /tmp/sovpipe"
    bindsym --release Control+$Alt+$mod+p exec "echo 0 > /tmp/sovpipe"
    bindsym --release $mod+2 exec "echo 0 > /tmp/sovpipe"
    bindsym --release Control+$mod+$Alt+o exec "echo 0 > /tmp/sovpipe"
    bindsym --release $mod+3 exec "echo 0 > /tmp/sovpipe"
    bindsym --release Control+$mod+$Alt+c exec "echo 0 > /tmp/sovpipe"
    bindsym --release $mod+4 exec "echo 0 > /tmp/sovpipe"
    bindsym --release Control+$mod+$Alt+i exec "echo 0 > /tmp/sovpipe"
    bindsym --release $mod+5 exec "echo 0 > /tmp/sovpipe"
    bindsym --release $mod+6 exec "echo 0 > /tmp/sovpipe"
    bindsym --release $mod+7 exec "echo 0 > /tmp/sovpipe"
    bindsym --release $mod+8 exec "echo 0 > /tmp/sovpipe"
    bindsym --release $mod+9 exec "echo 0 > /tmp/sovpipe"
    bindsym --release $mod+0 exec "echo 0 > /tmp/sovpipe"

Workspaces with no windows in them are missing

In the scenario where this screenshot was taken, workspaces 6, 7 and 10 had no windows on them:
image
When clicking on workspaces 8 and 9 I instead get taken to workspace 6 and 7 due to the missing workspaces not appearing. I saw in screenshots that it should work so I'm a bit confused.

❯ swaymsg -t get_tree
#1: root "root"
  #2147483647: output "__i3"
    #2147483646: workspace "__i3_scratch"
  #1553: output "DP-2"
    #1128: workspace "1"
      #1569: con "(null)"
        #1130: con "Mozilla Firefox" (xdg_shell, pid: 1505430, app_id: "firefox")
    #1117: workspace "2"
      #645: con "Untitled-1 - Visual Studio Code" (xwayland, pid: 1586762, instance: "code", class: "Code", X11 window: 0x4A00003)
    #1211: workspace "3"
      #1121: con "Mozilla Firefox" (xdg_shell, pid: 1505430, app_id: "firefox")
    #1450: workspace "4"
      #1161: con "Mozilla Firefox" (xdg_shell, pid: 1505430, app_id: "firefox")
    #1586: workspace "5"
      #1585: con "Home · swaywm/sway Wiki — Mozilla Firefox" (xdg_shell, pid: 1505430, app_id: "firefox")
      #1588: con "swaymsg -t get_tree" (xdg_shell, pid: 147226, app_id: "foot")
    #5: workspace "8"
      #1555: con "Element * | Welcome" (xwayland, pid: 109664, instance: "element", class: "Element", X11 window: 0x1000003)
      #1267: con "#general | SwitchCraft - Discord" (xwayland, pid: 2747194, instance: "discord", class: "discord", X11 window: 0x1A0000A)
    #10: workspace "9"
      #15: con "(null)"
        #13: con "(null)"
          #967: con "Carla - main.carxp" (xdg_shell, pid: 3821481, app_id: "carla")
          #1218: con "main [modified] — A PipeWire Graph Qt GUI Interface" (xdg_shell, pid: 2486051, app_id: "org.rncbc.qpwgraph")
        #17: con "(null)"
          #1153: con "Spotify" (xwayland, pid: 2084961, instance: "spotify", class: "Spotify", X11 window: 0x2C00003)
          #1430: con "(null)"
            #18: con "foot" (xdg_shell, pid: 2234, app_id: "foot")
            #1432: con "watch -n 60 "sensors | tail -n 28"" (xdg_shell, pid: 2987201, app_id: "foot")
      #22: con "(null)"
        #20: con "(null)"
          #19: con "foot" (xdg_shell, pid: 2285, app_id: "foot")
          #21: con "foot" (xdg_shell, pid: 2341, app_id: "foot")
        #24: con "(null)"
          #23: con "foot" (xdg_shell, pid: 2380, app_id: "foot")
          #25: con "foot" (xdg_shell, pid: 2690, app_id: "foot")

Configuration section in README incorrect

This section specifies:

mkdir -p ~/.config/sov/config
cp /usr/share/sov/config ~/.config/sov/config

But it should be:

mkdir -p ~/.config/sov
cp /usr/share/sov/config ~/.config/sov

SOV glitch starting from swayconfig

Using a similar method to bind the show/hiding and the start of sov as described in the README i get the following undesired behaviour:
sov glitches and remains showed as if the pipe gets repeatedly filled with 1s an 0s, in the journal I can see a lot of:

Jun 24 14:48:41 DELL-XPS-9570 sway[21260]: 1656074921.313939 INFO ../src/sov/main.c:554: Showing on output eDP-1
Jun 24 14:48:41 DELL-XPS-9570 sway[21260]: 1656074921.327357 INFO ../src/sov/main.c:554: Showing on output eDP-1
Jun 24 14:48:41 DELL-XPS-9570 sway[21260]: 1656074921.335062 INFO ../src/sov/main.c:554: Showing on output eDP-1
Jun 24 14:48:41 DELL-XPS-9570 sway[21260]: 1656074921.343886 INFO ../src/sov/main.c:554: Showing on output eDP-1
Jun 24 14:48:41 DELL-XPS-9570 sway[21260]: 1656074921.351279 INFO ../src/sov/main.c:554: Showing on output eDP-1
Jun 24 14:48:41 DELL-XPS-9570 sway[21260]: 1656074921.360054 INFO ../src/sov/main.c:554: Showing on output eDP-1
Jun 24 14:48:41 DELL-XPS-9570 sway[21260]: 1656074921.367750 INFO ../src/sov/main.c:554: Showing on output eDP-1
Jun 24 14:48:41 DELL-XPS-9570 sway[21260]: 1656074921.376243 INFO ../src/sov/main.c:554: Showing on output eDP-1
Jun 24 14:48:41 DELL-XPS-9570 sway[21260]: 1656074921.383652 INFO ../src/sov/main.c:554: Showing on output eDP-1
Jun 24 14:48:41 DELL-XPS-9570 sway[21260]: 1656074921.392089 INFO ../src/sov/main.c:554: Showing on output eDP-1
Jun 24 14:48:41 DELL-XPS-9570 sway[21260]: 1656074921.399383 INFO ../src/sov/main.c:554: Showing on output eDP-1
Jun 24 14:48:41 DELL-XPS-9570 sway[21260]: 1656074921.407826 INFO ../src/sov/main.c:554: Showing on output eDP-1
Jun 24 14:48:41 DELL-XPS-9570 sway[21260]: 1656074921.416950 INFO ../src/sov/main.c:554: Showing on output eDP-1
Jun 24 14:48:41 DELL-XPS-9570 sway[21260]: 1656074921.426389 INFO ../src/sov/main.c:554: Showing on output eDP-1

Untill at some point the program crasshes with the following output:

Jun 24 14:43:35 DELL-XPS-9570 sway[1559]: 00:49:16.010 [INFO] [wlr] [wayland] error in client communication (pid 18737)
Jun 24 14:43:38 DELL-XPS-9570 sway[18737]: Error sending request: Broken pipe
Jun 24 14:43:38 DELL-XPS-9570 sway[18737]: 1656074618.976666 ERROR ../src/sov/main.c:550: wl_display_roundtrip failed
Jun 24 14:43:38 DELL-XPS-9570 kernel: show_signal_msg: 63 callbacks suppressed
Jun 24 14:43:38 DELL-XPS-9570 kernel: sov[18737]: segfault at 10 ip 00007fbda6e6727a sp 00007ffd4b87b500 error 4 in libwayland-client.so.0.20.0[7fbda6e66000+6000]
Jun 24 14:43:38 DELL-XPS-9570 kernel: Code: 8b 55 00 4c 8d 7c 24 20 48 8d 4c 24 08 48 8d 84 24 c0 01 00 00 c7 44 24 08 28 00 00 00 48 89 44 24 10 48 8d 84 24 d0 00 00 00 <48> 8b 72 10 ba 14 00 00 00 48 89 44 24 18 44 89 e0 48 8d 04 40 c7
Jun 24 14:43:38 DELL-XPS-9570 systemd[1]: Created slice Slice /system/systemd-coredump.
Jun 24 14:43:38 DELL-XPS-9570 systemd[1]: Started Process Core Dump (PID 19527/UID 0).
                                                       ELF object binary architecture: AMD x86-64
                                                       #7  0x0000000000403cd1 _start (sov + 0x3cd1)
                                                       #6  0x00007fbda6aea2f5 __libc_start_main@@GLIBC_2.34 (libc.so.6 + 0x292f5)
                                                       #5  0x00007fbda6aea237 __libc_start_call_main (libc.so.6 + 0x29237)
                                                       #4  0x00000000004039fc main (sov + 0x39fc)
                                                       #3  0x000000000040db55 sov_destroy (sov + 0xdb55)
                                                       #2  0x000000000040cf63 sov_output_destroy (sov + 0xcf63)
                                                       #1  0x000000000040cf02 sov_surface_destroy (sov + 0xcf02)
                                                       #0  0x00007fbda6e6727a wl_proxy_marshal_flags (libwayland-client.so.0 + 0x727a)
                                                       Stack trace of thread 18737:
                                                       Module sov without build-id.
                                                       Module libwayland-client.so.0 with build-id 4fef743edf9c2b855a7dd35711bc9826f5a2375e
                                                       Module libfreetype.so.6 without build-id.
                                                       Module libm.so.6 with build-id 1a2e2d6f7d6ffb7928167842f22cd9530c5a977b
                                                       Module libc.so.6 with build-id c03db892abc48c05e03cffe78611747cc59d2842
                                                       Module libffi.so.8 without build-id.
                                                       Module libbz2.so.1 without build-id.
                                                       Module libpng16.so.16 without build-id.
                                                       Module libz.so.1 without build-id.
                                                       Module libpthread.so.0 with build-id ce291a619265ed432f53f6d68623ffa0f03e6bbf
                                                       Module ld-linux-x86-64.so.2 with build-id 6d56d9fcd67825480fa57abbc3ea66703f536339
                                                       Module linux-vdso.so.1 with build-id 95945c6f4f0a2d417f23f38a4d5cb85d7df2f0ad

Jun 24 14:43:39 DELL-XPS-9570 systemd-coredump[19528]: [🡕] Process 18737 (sov) of user 1000 dumped core.

Instead if I start sov from the terminal this does not happen: the keybinding correctly shows/hides sov.

This is what I put in my sway config (as you can see they are similar to the default in the README) :

bindsym --no-repeat $mod+equal  exec "echo 1 > /tmp/sovpipe"
bindsym --release $mod+equal  exec "echo 0 > /tmp/sovpipe"
exec_always rm -f /tmp/sovpipe && mkfifo /tmp/sovpipe && tail -f /tmp/sovpipe | sov

Versions:
sov v0.71 from nixpkgs unstable
sway 1.7 from nixpkgs 22.05

What type of color code does the css file use?

Each color code has eight-digits, it looks really confusing, as regular color codes are either RGB or Hex, why in this case, do color codes have eight-digits?

The css file named main.css is located under /usr/local/share/sov/ along with the main.html file.

I couldn't find a converter online to convert a hex color code to octal color code that would convert it correctly. Once converting to octal, the color looked not the same.

Nor can I use just hex color codes, they just don't look right. :(

Any helps?

Add compilation flag to overwrite default `/etc` `/usr` paths

For distros like NixOS that "sandbox" applications it is helpful to be able to overwrite the default path where SOV will read default cofigurations or other hardcoded files.
For now the problem is resolved via a patch applied before the buildling phase of the package (see patch of @TravisDavis-ops here ) but this is not the best way of handling this in my opinion.
Instead a solution like this one is more appropriate.

I the next days I'll take a look at the repo to see if I can issue a PR but I never had experience with meson/ninja so I will not promise anything.

Dependencies clarifications

It seems libglew is listed as a dependency but is not used anywhere in the code.

Also libwegl is listed but is actually libwayland-egl and should be part of any wayland deployment. I don't see the reason for listing it in addition to wayland. This is reflected by its absence in the list of packages to be installed on either Debian or Arch.

Did I miss something somewhere or does the readme need an update?

Escaping a forward slash

If the window title contains "/", it will be displayed escaped.
These are present at the time of swaymsg -t get_tree, but is there any plan to solve this problem with sov?
Thank you.

Crash on no config

╰─ sov
                                   ─╯
Sway Overview v0.85b by Milan Toth ( www.milgra.com )
If you like this app try :
- Wayland Control Panel ( github.com/milgra/wcp )
- Visual Music Player (github.com/milgra/vmp)
- Multimedia File Manager (github.com/milgra/mmfm)
- SwayOS (swayos.github.io)
Games :
- Brawl (github.com/milgra/brawl)
- Cortex ( github.com/milgra/cortex )
- Termite (github.com/milgra/termite)

style path    : /home/keloran/.config/sov
css path      : /home/keloran/.config/sov/html/main.css
html path     : /home/keloran/.config/sov/html/main.html
image path    : /home/keloran/.config/sov/img
ratio         : 8
anchor        : 
margin        : 0
timeout       : 0
columns       : 5
fish: Job 1, 'sov' terminated by signal SIGSEGV (Address boundary error)

I get the following error because it cant find the html files
once those are copied it works, I guess it found that there was a "sov" path in my config path and then assumed that the html was there, instead of checking for it and falling back to the "/usr/share" version

Font defaults to "Terminus (TTF):style=Bold"

I do not have this font installed, so the text is a bunch of boxes.

You could change the default to 'sans' or 'monospace' which are aliases to other fonts that should be present on any system. 'sans' on my system is an alias to 'Liberation Sans'.

From a brief glance src/sov/config/config.c needs to be changed.

If you're intending on making the config part of the code (like dwm/st), then perhaps it could output an error if the font can't be found.

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.