Code Monkey home page Code Monkey logo

supernerd.widget's Introduction

** ⚠️ Development has definitively shifted to snwe ⚠️ ** a standalone verison of this widget, which works without Ubersicht and has a lot more capabilities.

** 🤷‍♂️ guys really snwe is much better, why are you still downloading this? **

** seriously, let me know why you're sitll downloading this. if there's any upside I'll try to figure out if I can build it into snwe. Let me know at blahsd101 at gmail.com **

An extensible, customisable menubar replacement for macOS. Built with Ubersicht.

demo

The idea behing this widget is to put everything you might want to know at a glance to operate your computer in one place. From system monitoring, to currently playing music, supernerd, gives you an overview of everything you need to know, and it does it in a visually plasing and unobstrusive way.

Yes but what does it do

Supernerd is still undergoing very active development – I'm adding, modifying, and moving around functions on a weekly basis. The list of displays that follows is indicative and relative only to the default configuration which can be very easily switched up with any of the other configuration files that are included in the download.

  • Current Desktop
  • Application Launcher
  • Music playing on mpd (or iTunes / Spotify)
  • Date and weather information
  • Base system monitoring (volume, wifi, battery)
  • Time
  • Advanced system monitoring (network traffic, ram, cpu and HD usage)

Eye candy and shit

I honestly have not seen any other menubar widget that is has this level of pointless and cool eye candy.

  • Adaptive Colors & Icons Want to master knowing what your mac is up to in a glance? Most of the indicators are color-coded, so the widget's colors reflect the load / usage / etc. System monitors, such as the CPU monitor change color as the get more loaded, the battery as it's drained, the volume as it lowers, etc. Icons are adaptive too where applicable: volume, battery, wifi, etc. all change to reflect their status.

  • Notification You can enable notifications and buttons will light up discreetly to let you know when there is one.

Does this really work? No! I'm still working on making it go off correctly.

Update: It's a lot harder than I thought, but it's on the to-do list

## Green policy & resource impact Since tools like this one are most useful if you set it and forget it, making it run continuously, their biggest limitation is the resource overhead that they force onto you. This is why I put a lot of consideration into developing supernerd with the least possible impact on system resources. As a means of simple benchmarking, similar tools, when running without being actively used, can bring Ubersicht's average energy impact up to 25. In contrast, supernerd will usually keep it well below 1. This is accomplished by reducing the updates that the widget undergoes when drawn on your desktop via a mix of thoughful coding that can skip updates when they're not needed, and a reduction of it's overall refresh rate – the latter instrument reduces responsiveness, however, it does so in ways that are hard to notice if one isn't looking. Since not everyone has the same requirements and you might have more resources to spare, it's really easy to up the responsiveness – check the "usage" section for more info.

Installation

(By this point we both know you want it.) Please note that you might already have Brew, Ubersicht, or both, installed. In this case you can skip a step!

  1. Install Brew. In a terminal,

run: ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null ; brew install caskroom/cask/brew-cask 2> /dev/null

  1. Install Übersicht.

Run:

brew tap caskroom/cask

brew cask install ubersicht

Alternatively, you can download it from its own website, which I don't recommend. Learn to use brew. Brew is love, brew is life.

  1. Install Supernerd.

Run: git clone https://github.com/blahsd/supernerd.widget $HOME/Library/Application\ Support/Übersicht/widgets/supernerd.widget

Desktop indicator setup

The desktop indicator and switcher relies on chunkwm. You can find all the necessary information here: https://github.com/koekeishiya/chunkwm

You can install it quickly through Homebrew, but I don't recommend installing it if you don't know what you are getting into, so check out the link above and take a reasoned decision. These are the homebrew commands:

brew tap crisidev/homebrew-chunkwm

# install latest stable version
brew install chunkwm

# install from git repo
brew install --HEAD chunkwm

Music indicator setup

The music indicator by default uses mpd/mpc. These are both installed easily through:


brew install mpc

If you don't want to use mpc/mcp, but would rather have the music indicator point to your iTunes or Spotify music, you should disable apps-and-music.coffee (for instance by renaming it to apps-and-music.coffee.optional) and enable apps-and-itunes.coffee.optional (by renaming it to apps-and-itunes.coffee).

Weather widget setup

The weather widget needs further steps in order for them to work correctly. Skip it if you don't care for it. DarkSky's free version (which is what the widget uses to fetch the weather information) only allows a limited number of calls to the API per day. This means that if enough of you fucks use my widget the way it was setup before (which is with my private API key) I myself don't get to use it no more. So you're gonna need to get your own private API key (free) here: https://darksky.net/dev and put it in scripts/weather-update.sh. You'll see where.

Usage

Supernerd, by default, hides a lot of information from the user. This is in observance to the principle according to which you might want to have as little clutter as possible and only show what you actually need.

In order to achieve this, a lot of the indicators are hidden behind icons. There are two ways to interact with supernerd:

  1. Disable your desktop, be liberated, and get the full supernerd experience Lucky for you, in order to use all of the interactive shit, you must renounce interacting with your desktop icons. I know, I know. But since using your desktop like a 'put shit here' folder is not a good idea, this might actually help you. Do so: defaults write com.apple.finder CreateDesktop -bool FALSE;killall Finder

When you're ready to revert back to your barbarian-like usage of your desktop/dumpster, do this: defaults delete com.apple.finder CreateDesktop;killall Finder

  1. Keep your desktop and interact with supernerd through Ubersicht's Interaction Shortcut. If you don't want to disable your desktop, which I really can't see why you would want, you can still use Supernerd, although you miss out on some cool effects. It just means that you have to click on things while holding down Ubersicht's global interaction shortcut, which you can configure in Ubersicht's preferences.

Customisation

We owe the customisability of Supernerd to the amazing work of davidlday. Thanks to him, Supernerd is now the only menubar replacement which employs .css files shared across all the widgets.

Supernerd is also fully compatible with wal / pywal.

The wiki has more detailed information on how the theme works so that you can easily hack into it and customise it as you like it.

Currently Supernerd ships with the following themes:

  • mono

1

  • middle

4

  • flat

3

  • floating

2

Too few themes? Not to worry. Thanks to its wal compatibility, supernerd can take on colors drawn from your wallpaper, allowing limitless customisation to your setup. All of the following screenshots where achieved with one line of code and a refresh:

1 2 3 4

Credits

  • davidlday: this man gave us CSS separated from the code logic. He made it possible to have each widget split in a different file while maintaining the level of customisability we're used to. No way to thank him enough.

  • splintah/nerdbar.widget: tons of code that I took shamelessly and adapted/expanded. Definitely would not have done supernerd if it wasn't for this code.

  • felixhageloh: shamelessly stole and mutilated the code that fetches and formats weather information from here.

  • Me. I mean, I think I did a pretty good job. Buy me a coffe or thoughts & prayers.

supernerd.widget's People

Contributors

benkesselring avatar blahsd 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

supernerd.widget's Issues

[Upstream Issue] Error text shown above and in top bar; top and bottom bars transparent

I am assuming that #21 was referencing this problem as well though it was not expanded upon. I have posted a screenshot for clarity:

error

Interestingly, for some reason, the bottom bar does not show up in the screenshot. It looks similar to the top bar except that there is no error text and only a power off symbol shown in the center with nothing else. The picture was cropped when I was looking at it; the bottom bar does show up in the image above.

I installed Übersicht through its desktop installer (I can't find the Homebrew package...) disabled my desktop using the provided command, and installed supernerd through cloning the repository to the Übersicht widgets folder as outlined in the README. Other widgets are working properly, so this doesn't seem to be an installation method issue or one with Übersicht itself, I believe. I have disabled all other Übersicht packages for the moment for troubleshooting and that has not helped.

I use Little Snitch for network monitoring. I tried to disable this to ensure it wasn't breaking any connections which caused downstream errors in supernerd. After disabling network monitoring and both restarting and refreshing Übersicht, the error persisted.

The animations are functional (mousing over the volume icon reveals volume percentage, etc.) but are likely not properly styled.

No modifications were made to the provided scripts. I am not certain whether the error text visible in the interface contains the entire error or only part of it (probably the latter).

Assistance would be much appreciated!

Ideas for Super Nerd

I'm using Betterbar right now, and would like to see battery here too, I would do it myself but I think that it was also be better here. I would attach my .coffee but I don't know how too.

The option to automatically resize the bar

Would this be possible? Sometimes I'll plug into my ultrawide, so had it set to that width in default.css & it threw out the centering

screen shot 2018-03-06 at 13 15 55

Easy fix to switch it back, but automatically adjusting would be cool

Energy efficient restructuring

In order to make the widget more energy-efficient, it will have to be restructured so that only functions with similar required refresh times are grouped together – that way it will be possible to keep refreshes to a minimum. This is a tentative structure, sorted by frequency at which the widget must refresh in order to be funcitonal:

  • Never: app-launcher, bar-top, bar-botton
  • Few times a day: date, weather
  • Every few minutes: system-monitor, battery
  • Constantly: music-player, volume, time, desktops, window/task-manager

Standalone Electron Version

Testing is underway here: snwe.

I'm looking for feedback on how the two versions compare with regards to:

  • Cross platform compatibility
  • Resource usage
  • Ease of installation and setup
  • Overall functionality

The standalone version does not have all features included yet, so the feedback should only be focused on the features that have been already implemented.

Expand App List

app-switch.coffee assigns icons based on a list of correspondences between app names and font awesome icons. The list is incomplete (of fucking course, and it will always be). You can help by expanding it.

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.