Giter VIP home page Giter VIP logo

tamperish's Introduction

Tamperish for Safari

Tamperish is developed to be an easy-to-use user styles & scripts injection tool. πŸ’‰ It allows you to tamper with web pages using CSS & JavaScript snippets pretty much any way possible. πŸ‘·β€β™‚οΈ

Main window of Tamperish

Tamperish attempts to recover most of the customisation abilities formerly provided by Tampermonkey and Stylish extensions, but using a simpler, more strict injection hierarchy. πŸ‘Ύ

Customisation examples

Some examples of how can Tamperish be used for customisation are now available on GitHub, too!

https://github.com/username0x0a/Tamperish-tweaks

Feel free to use these as inspiration and eventually push your own contributions, too! πŸ™

How to use

  • Open the app
  • Pick a Tampers folder where all customisation files will be stored πŸ—‚
  • Add some Tamper files (either CSS styles or JavaScript scripts) according to the hierarchy described below: πŸ– Folder structure
    • www.google.com folder will be applied on Google Search page
    • com folder contents will be applied on all com domains
    • Tamper files placed directly to the Tampers folder will be applied everywhere
  • Enable the extension in Safari preferences – can be done by clicking the On/Off button in the app
  • Refresh the desired web page & profit. πŸ‘

Page style snippet example

tamperish's People

Contributors

username0x0a 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

Watchers

 avatar  avatar  avatar  avatar

tamperish's Issues

Unable to use custom font

I want to change the font of news.ycombinator from sans-serif to monospaced custom font called PragmataPro which I have on my computer.

This is failing I also tried to use google font using @import in CSS but this is not working as well.

JS context cannot be escaped

Unlike tamperMonkey this tool does not seem to provide means to use the global JS context on the top window (in which it is injected) and thus I see no way to access the globally defined APIs added by the site's creators and those are added explicitly for allowing user scripting via such tools.

Example:
Server sent JS file:

window.someFunction = function() { ... }

Tamperish script

document.onreadystatechange = function(e) { 
  if (document.readyState === 'complete') {
    window.someFunction(); // DOES NOT WORK as the symbol is missing.
  }
}

Excluding domains

Is it possible to exclude a domain, so that Tamperish doesn't apply global scripts to it? I have in mind something like Tampermonkey's @exclude parameter. Thanks.

Restarting Mac / quitting Safari breaks file opening from popup

Hi,

Running Safari Version 13.1.1 (13609.2.9.1.3) on macOS High Sierra 10.13.6, and whenever you quit Safari, you lose the ability to access your Tamperish modifications from the Tamperish button in Safari - you end up with this error message:

Screen Shot 2020-07-14 at 18 31 54 pm

The only solution appears to be going through a dance of disabling Tamperish, renaming the Tampers folder, reenabling Tamperish and restarting Safari - but then it breaks again as soon as you quit Safari the next time.

Feature request -- custom URL instead of folder

Would it be possible to specify a URL instead of a local folder? For example, if I could specify a public Github repo or ghpages URL that has the same hierarchy as the local folder option, I could then share my customizations across installations without any server hierarchy needed on your part.

There would be noticeable lag and that would be the tradeoff required of users.

Hopefully Apple's strict policies on extensions would allow for this functionality, but could see that being an issue.

Naturally, I could simply clone this repo locally and make a script to pull/push changes from time to time. And that's what I'll in the mean time, but thank you for considering this feature!

Awesome work on this. Thanks for making it and making it work so flawlessly.

Can't create the proper folder name

I'm trying to tweak my Plex Web interface, that is available at:

https://app.plex.tv/

But I can't create a folder that can be seen by Tamperish.

I've tried "plex.tv" and "app.plex.tv", but in the extension menu it still says "Nothing's here yet".

What can I do?

Scripts & styles are injected multiple times on many sites including YouTube, Google

Looking at the browser console, I sometimes see Tamperish's [Tamperish] Injecting filename.ext ← youtube.com being logged multiple times, as well as injected scripts' logs being duplicated. Sometimes hundreds of times, causing concern for resource usage.

I found a case where scripts were injected 211 times, a specific question on StackOverflow, while other questions don't cause this behavior. An example of a site that does not cause this behavior is example.com.

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.