• Stars
    star
    3,735
  • Rank 11,547 (Top 0.3 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 5 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Cross-platform application to open any website or media in a floating window

Pennywise

Cross-platform application to open website or media in a floating window

platforms prs welcome

Pennywise opens any website or media in a small floating window that remains on top of all other applications. Pennywise windows stays up all the time. No need to keep struggling with alt + tab, use Pennywise for easy multitasking.

Features

  • Always stays on top of any open applications
  • Adjustable opacity – it gets out of your way while you work
  • Resize and place it anywhere
  • Shortcuts to make you more productive
  • Lets you multitask while you work
  • Open source licensed under MIT
  • Lean small resource footprint, minimal User Interface.
  • Cross-platform works on MacOS, Windows and Linux

Installation

Download and install the relevant distribution from the releases page.

If you are on MacOS, you can use Homebrew to install it

brew install --cask pennywise

Enable Flash Support

To enable flash support, copy or link Chrome's Pepperflash plugin into your $HOME/.pennywise-flash. You can find the plugin at the installation path of the Chrome. For example, on MacOS, you can do the below to enable Flash support

ln -s ~/Library/Application\ Support/Google/Chrome/PepperFlash/[version]/PepperFlashPlayer.plugin" ~/.pennywise-flash

Usecases

Here is the list of some of the possible use cases off the top of my head

  • Use it as a floating window for your calendar/checklist/assigned-tickets etc
  • Watching tutorial while you code? Open the video in Pennywise and keep it in front of you
  • Making a video course? Open the demo in Pennywise and show the output in real time
  • Working on some web UI? Open it in Pennywise to avoid pressing alt + tab again and again
  • Play some video, watch some talk or play some TV series while you work
  • Working on something non-familiar? Open the docs in Pennywise
  • Open that live football match that you won't want to miss
  • Use it as a desktop widget

Development

Clone the repository, install the dependencies and start the app

yarn install
yarn start

Shortcuts

Here is the list of available shortcuts that you may use

Shortcut Description
Cmd/Ctrl + L Show Navbar and focus URL input
Cmd/Ctrl + Shift + D Enable detached mode
Cmd/Ctrl + M Refresh Page
Cmd/Ctrl + Shift + L Toggle Navbar on WebPages
Cmd/Ctrl + Shift + Up Increase Opacity
Cmd/Ctrl + Shift + Down Decrease Opacity
Cmd/Ctrl + Alt + I Show Developer Tools
Cmd/Ctrl + [0-9] Switch Window Opacity

Note – Changing the opacity is only supported in Windows and MacOS

Detached Mode

  • Enabling the detached mode makes Pennywise non-interactive – it will let any interactions fall through to the window below it. To remove the detached mode, focus the window either by clicking the dock icon or by activating it using alt + tab

Screenshots

Homescreen for the application

Anything running in pennywise stays on top of everything

You can change the opacity too

Auto-embed Videos

For some video streaming websites such as Youtube, Vimeo, Twitch, Daily Motion etc, Pennywise shows you the video only web page by default (using the auto-generated embed links), showing you the video in a distract free manner. You can disable that by toggling the Edit > Embed Videos.

Note – In case of youtube, it might not work sometime when the user has put restrictions on the video – in that case, you will have to disable "Auto Embed" option from the Edit menu to make them work.

Why is it named Pennywise?

Because the application helps in floating and Pennywise loved to do that

Planned Roadmap

  • Persist options and linking options to website
  • Bookmarking links for later use
  • Write tests

Contributions

Feel free to implement anything from the roadmap, submit pull requests, create issues, discuss ideas or spread the word.

License

MIT © Kamran Ahmed

More Repositories

1

developer-roadmap

Interactive roadmaps, guides and other educational content to help developers grow in their careers.
TypeScript
281,977
star
2

design-patterns-for-humans

An ultra-simplified explanation to design patterns
43,931
star
3

driver.js

A light-weight, no-dependency, vanilla JavaScript engine to drive the user's focus across the page
TypeScript
21,286
star
4

git-standup

Recall what you did on the last working day. Psst! or be nosy and find what someone else in your team did ;-)
Shell
7,555
star
5

githunt

Hunt the most starred projects on any date on GitHub
JavaScript
2,825
star
6

roadmap.sh

Community driven roadmaps, articles and resources for developers
Nunjucks
2,196
star
7

jquery-toast-plugin

Highly customizable jquery plugin to show toast messages
JavaScript
1,503
star
8

brusher

Create beautiful webpage backgrounds
JavaScript
746
star
9

tab-switcher

Chrome Extension - Switch between the opened tabs in the blink of an eye
JavaScript
446
star
10

aws-cost-cli

CLI tool to perform cost analysis on your AWS account with Slack integration
TypeScript
406
star
11

itomate

Automate your iTerm layouts and session setup
Python
336
star
12

datastructures-in-javascript

Illustrated Data Structures — Video Series
JavaScript
172
star
13

kamranahmedse.github.io

Blog created using github-pages-blog-action
HTML
155
star
14

local-ses

Trap and test AWS SES emails locally
TypeScript
149
star
15

pipeline-js

Pipeline pattern implementation with the support for sync and async stages
JavaScript
148
star
16

awesome-minimal-sites

An opinionated collection of minimal yet beautiful websites.
137
star
17

github-pages-blog-action

Create good looking blog from your markdown files in a GitHub repository
CSS
84
star
18

redux-persist-expire

Expiring transformer for redux-persist
JavaScript
79
star
19

stylos

Webpack plugin to automatically generate and inject CSS utilities to your application
JavaScript
67
star
20

css-tailor

✂ Automatically generate CSS from your HTML classes
JavaScript
67
star
21

git-first

Chrome Extension – Takes you to the first commit of a GitHub repository
JavaScript
65
star
22

express-api-problem

Express package to automatically turn your exceptions to the API Problem JSON response
TypeScript
65
star
23

laravel-faulty

Automatically turn your thrown exceptions to JSON response while conforming to API problem specification
PHP
64
star
24

smasher

Smash your directories to get JSON or Array representation and vice versa.
PHP
60
star
25

laravel-modular-boilerplate

A boilerplate to create modular application in laravel 5.1
PHP
59
star
26

copy-marker

Chrome extension — Create URLs with highlighted page selection
JavaScript
55
star
27

beetle

Abuse unicode to incite mayhem
Shell
51
star
28

jumper-bot

A game developed using HTML-5 canvas and Javascript
JavaScript
51
star
29

laravel-censor

A middleware for Laravel 5.* to easily redact or replace the words from the pages you want.
PHP
43
star
30

db-playground

Easily create a sandbox environment for your database exploration.
Shell
42
star
31

github-notable-comments

Chrome Extension – Navigate through the most reacted comments in github issues and PRs
JavaScript
40
star
32

gulp-css-tailor

✂ Gulp plugin to automatically generate CSS from your HTML classes
JavaScript
39
star
33

github-diffs

Easier code reviews by collapse/expand diffs in pull requests
JavaScript
35
star
34

laraformer

Laravel 5.* package to easily introduce a transformation layer for your data
PHP
32
star
35

brainza-fps-unity3d-game

First person shooter 3d game.
ASP
31
star
36

makers.ae

Community of makers in UAE
TypeScript
31
star
37

github-actions-youtube

Codebase for my youtube video on GitHub actions
HTML
25
star
38

php-shorthand

Calculate unique shorthands for a given set of strings
PHP
25
star
39

node-basic-auth-example

Sample implementation of Basic Authentication in Node.js
JavaScript
23
star
40

promises-examples

Codebase accompanying my YouTube video: All about Asynchronous JavaScript
23
star
41

mongo-playground

Single command to setup MongoDB playground with different datasets
Shell
21
star
42

tweet-counter

Chrome Extension - Bring back the character counters in tweet boxes
JavaScript
20
star
43

node-session-auth-example

Sample implementation of Session Authentication in Node.js
JavaScript
19
star
44

mongodumper

Docker image to back up MongoDB database and upload to S3
Shell
18
star
45

gcuf-news-caster

Google Chrome Extension that shows the latest news from GCUF Website
JavaScript
17
star
46

slack-msg

Dead simple CLI tool to send messages to Slack
JavaScript
17
star
47

mondex

CLI tool to create and manage MongoDB indexes using code
TypeScript
16
star
48

walkers

A console based fan fiction RPG for The Walking Dead TV Series
PHP
14
star
49

ng-atlas

An Angular JS application that lets you tour around the globe ..free of cost ;-)
JavaScript
13
star
50

markdown-it-class

Plugin for markdown-it to allow adding classes to HTML tags.
JavaScript
10
star
51

yaml-sample

JavaScript
9
star
52

egghead-mongo-aggregation

Codebase for my "Aggregation in MongoDB" videos on Egghead
JavaScript
9
star
53

sendy

Dockerized Sendy application with one-click deployment setup for Railway.
Shell
7
star
54

kamranahmedse

5
star
55

mulk

Gets the country details by country name, ITU or ISO codes
JavaScript
4
star
56

astro-view-transitions-bug

JavaScript
4
star