Coder Social home page Coder Social logo

nibar's Introduction

nibar

Simple Übersicht widget status bar with yabai support.

Originally forked from https://github.com/ajdnik/powerbar. I made it work with yabai and tweaked the aesthetics to match my preference.

img

Installation

Clone this repo to your Übersicht widgets directory.

# assuming your widgets are in the default Übersicht location
$ git clone https://github.com/kkga/nibar $HOME/Library/Application\ Support/Übersicht/widgets/nibar

Dependencies

  • SF Symbols (optional) — used for symbols in the statusbar widget

Usage

Refreshing yabai workspaces widget

The workspaces widget is not refreshing automatically (to preserve battery). Add these lines at the end of your yabairc to utilize yabai's signals for auto-updating the widget whenever a workspace is changed:

yabai -m signal --add event=space_changed \
    action="osascript -e 'tell application id \"tracesOf.Uebersicht\" to refresh widget id \"nibar-spaces-jsx\"'"

# if using multple displays, add an additional rule for "display_changed" event
yabai -m signal --add event=display_changed \
    action="osascript -e 'tell application id \"tracesOf.Uebersicht\" to refresh widget id \"nibar-spaces-jsx\"'"
# add these rules to auto-update the "windows" widget
yabai -m signal --add event=window_focused \
    action="osascript -e 'tell application id \"tracesOf.Uebersicht\" to refresh widget id \"nibar-windows-jsx\"'"
yabai -m signal --add event=window_destroyed \
    action="osascript -e 'tell application id \"tracesOf.Uebersicht\" to refresh widget id \"nibar-windows-jsx\"'"
yabai -m signal --add event=window_created \
    action="osascript -e 'tell application id \"tracesOf.Uebersicht\" to refresh widget id \"nibar-windows-jsx\"'"
yabai -m signal --add event=space_changed \
    action="osascript -e 'tell application id \"tracesOf.Uebersicht\" to refresh widget id \"nibar-windows-jsx\"'"

nibar's People

Contributors

ajdnik avatar granitosaurus avatar kkga avatar kratoze avatar kvaps avatar leavenha avatar theshortcut 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  avatar  avatar  avatar

nibar's Issues

Error 500

Error 500's in the console when the widget is loaded

Missing signals to support yabai on multiple displays

When changing display to an already active space, yabai will not trigger the space_changed signal. However, adding the following signal will fix the problem:

yabai -m signal --add label=labi event=display_changed \
    action="osascript -e 'tell application \"Übersicht\" to refresh widget id \"nibar-spaces-primary-jsx\"'"

yabai -m signal --add label=labo event=display_changed \
    action="osascript -e 'tell application \"Übersicht\" to refresh widget id \"nibar-spaces-secondary-jsx\"'"

Note: This will trigger two refresh if you both change display and active space.

Two Ü make so much trouble

I think I find the reason for these two issues.

  1. #1 (comment)
  2. #5 (comment)

Because there are two Ü. One is U+00DC, the devil. If you directly copy from the website, you probably will end up with this. The right one but actually is two chars: U+0055(U) U+0308(Combining Diaeresis).

I think this information should be added to the readme somehow.

Performance of AppleScript Ubersicht refresh

I found that the refresh of widgets via AppleScript was too slow. It turns out it was quite an effort to do it another way, but I came up with a solution that you might be interested in:

https://github.com/camspiers/dotfiles/tree/master/files/.config/ubersicht

New program to get active space changes from stdout:

https://github.com/camspiers/dotfiles/blob/master/files/.config/ubersicht/activespace.swift

Build step:

https://github.com/camspiers/dotfiles/blob/master/Makefile#L18

SSE server for delivering SSE's to Ubersicjt widgets:

https://github.com/camspiers/dotfiles/blob/master/files/.config/ubersicht/lib/activeSpaceServer.js

Subscription to it from a widget:

https://github.com/camspiers/dotfiles/blob/master/files/.config/ubersicht/left.jsx#L43

undefined is not an object (evaluating 'display.index')

I updated macOS to Big Sur (11.2.3) and the spaces feature stopped working. I get the following error:

Screenshot 2021-04-04 at 19 47 13

When I refresh all widgets, I see 'Error : unknown script output' for a split second and then I see the error above.

Is jq still a dependency?

I see that in the readme jq is listed as a dependency but I don't see it used anywhere, if it's not used then could we please remove it from readme? if it's used and I missed it please feel free to close the issue
and thanks for the awesome work!

Yabai & Apple Silicon errors(?)

I attempted to install nibar and received these three errors.
image
I figured it was a problem with yabai's scripting additions not working properly on M1. However, I followed the advice in this thread:
koekeishiya/yabai#725
and ended up getting yabai --load-sa to work just fine. However, the error messages still won't go away.
I also installed jq as per this thread:
#1
I assume the secondary spaces jsx file they mention in that thread is from an older version of nibar because I can't find it in the widget's folder.

I have no clue what I'm missing, any help would be appreciated!!

Silly question: what do you mean by "yabai support"

Pretty new to unix ricing, but have been playing around with yabai and Übersicht for some time.

I just fail to see what is meant by yabai support.

And what is the purpose of the numbers to the left, as seen on the readme screenshot

Are these used used to show label of the current desktop, if so then that would be awesome.

Silly question, but perhaps useful for any other newcomers.

Thanks!

Unknow script output

Hi,

I just installed your widget and in the desktop infos (on the left) i have an error :
Error : unknown script output

image

I looked at both primary and secondary spaces scripts and ran them manually. Primary printed a correct result but secondary did not, saying it could not locate the given display.

In spaces-secondary.sh I replaced this line by :

SPACES=$(yabai -m query --spaces --display)

But i still have the same error. Do you know what's causing this ?

Thanks

Apple Script not working

I had to make minor changes to the Apple Script to make it work. Referring to the app by id works fine.

yabai -m signal --add event=space_changed \
    action="osascript -e 'tell application id \"tracesOf.Uebersicht\" to refresh widget id \"nibar-spaces-primary-jsx\"'"

Font name?

Totally unrelated to the project itself: what font are you using in the README.md screenshot?

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.