AdamWagner / stackline

Visualize yabai window stacks on macOS. Works with yabai & hammerspoon.
944 stars 47 forks source link

[Bug] Stackline is not showing Icons on Stack mode #125

Open Isaacwhyuenac opened 11 months ago

Isaacwhyuenac commented 11 months ago

Hi,

I have Stackline installed and with the following config.

hs.inspect(stackline.config)
<1>{
  __index = <table 1>,
  autosuggestions = { "features.dynamicLuminosity", "appearance.offset.x", "appearance.iconDimmer", "appearance.shouldFade", "appearance.dimmer", "appearance.vertSpacing", "features.fzyFrameDetect.enabled", "appearance.fadeDuration", "paths.yabai", "features.winTitles", "appearance.color.white", "features.clickToFocus", "appearance.iconPadding", "appearance.pillThinness", "features.hsBugWorkaround", "features.fzyFrameDetect.fuzzFactor", "appearance.radius", "appearance.size", "appearance.alpha", "appearance.showIcons", "appearance.offset.y", "advanced.maxRefreshRate" },
  conf = {
    advanced = {
      maxRefreshRate = 0.5
    },
    appearance = {
      alpha = 1,
      color = {
        white = 0.9
      },
      dimmer = 2.5,
      fadeDuration = 0.2,
      iconDimmer = 1.1,
      iconPadding = 4,
      offset = {
        x = 4,
        y = 2
      },
      pillThinness = 6,
      radius = 3,
      shouldFade = true,
      showIcons = true,
      size = 32,
      vertSpacing = 1.2
    },
    features = {
      clickToFocus = true,
      dynamicLuminosity = "not_implemented",
      fzyFrameDetect = {
        enabled = true,
        fuzzFactor = 30
      },
      hsBugWorkaround = true,
      winTitles = "not_implemented"
    },
    paths = {
      yabai = "/opt/homebrew/opt/yabai"
    }
  },
  events = {
    advanced = {
      maxRefreshRate = <function 1>
    },
    appearance = <function 2>,
    features = {
      clickToFocus = <function 3>
    }
  },
  generateValidator = <function 4>,
  get = <function 5>,
  getOrSet = <function 6>,
  getPathSchema = <function 7>,
  init = <function 8>,
  schema = {
    advanced = {
      maxRefreshRate = "number"
    },
    appearance = {
      alpha = "number",
      color = "color",
      dimmer = "number",
      fadeDuration = "number",
      iconDimmer = "number",
      iconPadding = "number",
      offset = {
        x = "number",
        y = "number"
      },
      pillThinness = "number",
      radius = "number",
      shouldFade = "boolean",
      showIcons = "boolean",
      size = "number",
      vertSpacing = "number"
    },
    features = {
      clickToFocus = "boolean",
      dynamicLuminosity = "dynamicLuminosity",
      fzyFrameDetect = {
        enabled = "boolean",
        fuzzFactor = "number"
      },
      hsBugWorkaround = "boolean",
      winTitles = "winTitles"
    },
    paths = {
      yabai = "string"
    }
  },
  set = <function 9>,
  setLogLevel = <function 10>,
  toggle = <function 11>,
  types = {
    boolean = {
      coerce = <function 12>,
      validator = <function 13>
    },
    color = {
      coerce = <function 14>,
      validator = <function 15>
    },
    dynamicLuminosity = {
      coerce = <function 14>,
      validator = <function 16>
    },
    number = {
      coerce = <function 17>,
      validator = <function 18>
    },
    string = {
      coerce = <function 19>,
      validator = <function 20>
    },
    table = {
      coerce = <function 14>,
      validator = <function 21>
    },
    winTitles = {
      coerce = <function 14>,
      validator = <function 22>
    }
  },
  validate = <function 23>
}

In my init.lua I have

hs.ipc.cliInstall('/opt/homebrew') -- Install the command line tool

local log = hs.logger.new('init.lua', 'debug')

stackline_conf = require('stackline_conf')

stackline = require("stackline")
stackline:init(stackline_conf)

The yabai path is configured correctly.

I have created a Stack and there are no Icons on the Left.

Screenshot 2023-09-24 at 14 14 14

When I debug the StackManager in Hammerspoon Console, I found the manager always returns empty table to me.

Screenshot 2023-09-24 at 14 16 18

May I know how to have the App Icons Indicators shown??

Isaacwhyuenac commented 11 months ago

Here is my yabai config

#!/usr/bin/env sh

# global settings

yabai -m config                                                   \
                external_bar                 off                  \
                mouse_follows_focus          on                   \
                focus_follows_mouse          off                  \
                window_origin_display        default              \

# New window spawns to the right if vertical split, or bottom if horizontal split
yabai -m config                                                   \
                window_placement             second_child         \
                window_zoom_persist          on                   \
                window_topmost               off                  \
                window_shadow                on                   \
                window_animation_duration    0.0                  \
                window_animation_frame_rate  120                  \

yabai -m config                                                   \
                window_opacity               off                  \
                window_opacity_duration      0.0                  \
                active_window_opacity        1.0                  \
                normal_window_opacity        0.95                 \
                window_border                on                   \
                window_border_width          6                    \
                window_border_radius         12                   \
                window_border_blur           off                  \
                window_border_hidpi          on                   \
                active_window_border_color   0xff008000           \
                normal_window_border_color   0xff555555           \
                insert_feedback_color        0xffd75f5f           \
                split_ratio                  0.50                 \
                split_type                   auto                 \
                auto_balance                 off                   \

# set modifier + left-click drag to resize window (default: move)
yabai -m config                                                   \
                mouse_modifier               fn                   \
                mouse_action1                move                 \

# set modifier + right-click drag to resize window (default: resize)
yabai -m config                                                   \
                mouse_action2                resize               \
                mouse_drop_action            stack

# general space settings
yabai -m config                                                   \
                layout                       bsp                  \
                top_padding                  0                    \
                bottom_padding               0                    \
                left_padding                 5                    \
                right_padding                0                    \
                window_gap                   06

# restore position of floating windows when they are manually unfloated
# ~/Scripts/yabai_restore.sh
yabai -m rule --add app="^System Preferences$" sticky=on layer=above manage=off
yabai -m rule --add app="^Karabiner-Elements$" sticky=on layer=above manage=off
yabai -m rule --add app="^Karabiner-EventViewer$" sticky=on layer=above manage=off
yabai -m rule --add app="^Finder$" sticky=on layer=above manage=off
yabai -m rule --add app="^Keka$" sticky=on layer=above manage=off
yabai -m rule --add app="^Alfred Preferences$" sticky=on layer=above manage=off
yabai -m rule --add app="^Disk Utility$" sticky=on layer=above manage=off
yabai -m rule --add app="^System Information$" sticky=on layer=above manage=off
yabai -m rule --add app="^Activity Monitor$" sticky=on layer=above manage=off
yabai -m rule --add app="^KeyCastr$" sticky=on layer=above manage=off
yabai -m rule --add app="^System Settings$" manage=off
yabai -m rule --add app="^Archive Utility$" manage=off
yabai -m rule --add app="^IINA$" sticky=on layer=above manage=off
yabai -m rule --add app="^Calculator$" sticky=on layer=above manage=off
yabai -m rule --add app="^Notion$" sticky=on layer=above manage=off
yabai -m rule --add app="^Hammerspoon" sticky=on layer=above manage=off
yabai -m rule --add app="^Music$" manage=off
yabai -m rule --add app="^Docker" manage=off
#find ~/Library/Parallels/Applications\ Menus/ -maxdepth 3 -type f | awk -F'/' '{ print $NF; }' | awk '{$1=$1};1' | sort | uniq | tr "\n" "\0" | xargs -0 -I{} yabai -m rule --add app="^{}\$" title=".*" manage=on

yabai -m rule --add app="^IntelliJ IDEA$" manage=off
yabai -m rule --add app="^PyCharm$" manage=off
yabai -m rule --add app="^GoLand$" manage=off
yabai -m rule --add app="^CLion$" manage=off
yabai -m rule --add app="^RubyMine$" manage=off
yabai -m rule --add app="^DataGrip$" manage=off
yabai -m rule --add app="^DataSpell$" manage=off
yabai -m rule --add app="^Aqua$" manage=off

yabai -m signal --add event=window_destroyed action="bash ~/.config/yabai/window-focus-on-destroy.sh"

# My custom space names for my 3 monitor setup. These names are used in some of my scripts.
yabai -m space 1 --label one
yabai -m space 2 --label two
yabai -m space 3 --label three
yabai -m space 4 --label four
yabai -m space 5 --label five
yabai -m space 6 --label six

echo "yabai configuration loaded.."
jigfox commented 10 months ago

yabai = "/opt/homebrew/opt/yabai"

should probably be:

yabai = "/opt/homebrew/bin/yabai"
--                     ^^^
gennaro-tedesco commented 9 months ago

I am seeing the same problem, even after fixing the yabai path to the correct one. In the README.md it states

Did the terminal window expand to cover the area previously occupied by Safari? Great! At this point, you should notice two app icons at the top-left corner of your terminal window, like this:

but it doesn't show any icon in my case either.

Isaacwhyuenac commented 9 months ago

yabai = "/opt/homebrew/opt/yabai"

should probably be:

yabai = "/opt/homebrew/bin/yabai"
--                     ^^^

My yabai is installed by homebrew in there, as shown in

image

Liquidmantis commented 7 months ago

@Isaacwhyuenac That seems to be a bug of some kind. I just reinstalled Stackline and was fixing the brew-based path in the config. Here are my results: CleanShot 2024-01-23 at 07 22 26@2x