SketchyBar icon indicating copy to clipboard operation
SketchyBar copied to clipboard

Cannot run SketchyBar if configuration is execeutable symbolic link

Open vkravets opened this issue 1 month ago • 0 comments

In case of nix all config files are symlink. The SketcyBar check if config file is executable (and it will be false in case of symlink, even if target is executable) and try to set the execute permission and it's fail since it's a nix )))

It seems issue is arising here https://github.com/FelixKratz/SketchyBar/blob/4aa602ac71f98fe9f4a4edb7cd0fd434c38010f9/src/misc/helpers.h#L427

and this code for executable symlink won't return true

I don't have knowladge of c++ to fix this, so please aware of the issue related to symlinked configuration

in my case I've fixed it, by manualy configure launchctl service using following changes at my configuration and don't using the nix-darwin service for the integration

    launchd.user.agents.sketchybar = {
      path = [ pkgs.sketchybar ] ++ [ pkgs.sketchybar-app-font ] ++ [ config.environment.systemPath ];
      serviceConfig.ProgramArguments = [ "${pkgs.sketchybar}/bin/sketchybar" ] ++ ["--config" "${self}/sketchybar/sketchybarrc"];
      serviceConfig.KeepAlive = true;
      serviceConfig.RunAtLoad = true;
    };

Where self it's my flake configuration inherits to system configuration and to home-manager configuration via specialArgs and extraSpecialArgs.

Note: nix-darwin solution works since create the service using real path to configuration, not symlink

vkravets avatar May 27 '24 16:05 vkravets