[PYTHON] Rendre le pointeur de la souris OS X translucide

Étant donné que le pointeur de la souris ne touche généralement que la pointe, j'ai pensé qu'il serait préférable de le rendre légèrement transparent. En particulier, je fais le pointeur plus grand que d'habitude, donc lorsque je place le pointeur sur un lien, j'ai parfois du mal à voir les lettres ci-dessous.

non-transparent.png

Si le pointeur était translucide, je pensais qu'il serait confortable de lire les lettres ci-dessous même si le pointeur de la souris était tellement énorme.

Le déroulement global pour rendre le pointeur de la souris translucide est le suivant.

  1. Vider les données actuelles du pointeur de la souris avec Mousecape
  2. Lisez les données du pointeur de la souris avec un script Python et rendez-les translucides
  3. Lisez les données traitées par Python
  4. Installez Helper Tool pour activer Mousecape au démarrage de l'ordinateur
  5. Enregistrez le script Apple qui remplit le bogue Mousecape au démarrage

Préparation

Pour réaliser le contenu de cet article, vous aurez besoin des éléments suivants:

Mousecape est un outil permettant de changer facilement le pointeur de la souris. Je vais télécharger et utiliser la dernière version 0.0.5.

Décompressez le fichier téléchargé et ouvrez le fichier app qui apparaît, et la fenêtre suivante apparaîtra.

スクリーンショット 2015-03-16 17.08.10.png

Vider le pointeur actuel de la souris

Cliquez sur ** Capes-> Dump Cusros .. ** dans la barre d'outils pour vider les paramètres actuels. Une fois terminé, cela ressemblera à ceci:

スクリーンショット 2015-03-16 17.15.43.png

Cliquez avec le bouton droit sur cette zone bleue et sélectionnez ** Afficher dans le Finder ** pour voir le fichier cape vidé dans le Finder, copiez-le pour obtenir le fichier cape. Cela devient clair lorsque vous l'ouvrez avec un éditeur de texte, mais à l'intérieur se trouve un énorme fichier XML qui stocke l'image du pointeur de la souris dans un encodage Base64.

Rendre le pointeur de la souris translucide

Exécutez le script Python qui gère le fichier cape que vous venez d'obtenir. Cependant, ce script Python nécessite les bibliothèques suivantes:

$ pip install Pillow

Vous pouvez l'installer avec.

Ensuite, enregistrez le script suivant quelque part.

convert.py


from base64 import decodestring, encodestring
from xml.etree.ElementTree import ElementTree
import sys
import io
from PIL import Image

inputfile  = sys.argv[1].strip()
outputfile = sys.argv[2].strip()
opacity    = sys.argv[3].strip()

tree = ElementTree()
tree.parse(inputfile)

imagedata = tree.findall("dict/dict/dict/array/data")

for i in imagedata:
    img = decodestring(i.text)
   
    img  = Image.open(io.BytesIO(img))
    img  = img.convert('RGBA')
    data = img.getdata()

    new = []
    for p in data:
        new.append((p[0], p[1], p[2], int(p[3] * opacity)))

    img.putdata(new)
    img.save('temp.png', 'PNG')
    
    result = open('temp.png', 'r')
    base64 = encodestring(result.read())
    result.close()

    i.text = base64

tree.write(outputfile)

Exécutez comme suit.

$ python convert.py /path/to/dumpfile.cape output.cape 0.5

Ce script prend les arguments de ligne de commande suivants:

Premier argument
Fichier cape vidé
Deuxième argument
Chemin du fichier de destination de sortie
Troisième argument
Transparence (0 à 1)

Après un certain temps d'attente, un fichier tel que output.cape sera créé.

Lire les données traitées avec Mousecape

Cliquez sur ** Fichier-> Importer Cape ** dans la barre d'outils pour importer le fichier cape que vous venez de générer. Cela ressemble à ceci:

スクリーンショット 2015-03-16 17.37.48.png

Vous pouvez supprimer celui qui a été vidé à ce stade. Vous pouvez le supprimer en cliquant avec le bouton droit de la souris et ** Supprimer **. Sélectionnez ensuite le transparent, faites un clic droit et sélectionnez ** Appliquer ** pour postuler.

Installer l'outil d'aide

Installez l'outil d'assistance pour rendre le pointeur de la souris transparent au démarrage de l'ordinateur. Vous pouvez démarrer Mousecape et l'installer à partir de la barre d'outils avec ** Mousecape-> Install Helper Tool **.

Bogues de souris et leurs compléments

J'ai agrandi le pointeur de la souris, mais lorsque je l'ai redémarré, la taille du pointeur est revenue à sa taille d'origine. Il me semblait difficile d'analyser le code source et de trouver le bogue à partir de maintenant, j'ai donc créé un Apple Script pour augmenter la taille et lancé le script lors de la connexion à l'ordinateur pour l'éviter.

set_cursor_size.scpt


tell application "Mousecape"
	activate
end tell

delay 0.1

tell application "System Events" to tell application process "Mousecape"
	click (menu item 3 of menu 1 of menu bar item 2 of menu bar 1)
	set theSlider to slider 1 of window 1
	set value of theSlider to 3.0
end tell

quit application "Mousecape"

Vous pouvez changer la taille en réécrivant la partie «3.0» sur votre numéro préféré. Collez ce code dans un éditeur de script et exportez-le en tant qu'application avec ** Fichier-> Exporter ** depuis la barre d'outils et enregistrez-le dans un emplacement approprié. Une fois exécuté, Yosemite demandera les autorisations comme suit:

スクリーンショット 2015-03-16 17.55.50.png

Ouvrez les préférences système et accordez des autorisations.

スクリーンショット 2015-03-16 17.56.55.png

Sélectionnez ensuite ** Préférences système-> Utilisateurs et groupes-> Éléments de connexion ** pour enregistrer l'application afin qu'elle s'exécute au démarrage.

スクリーンショット 2015-03-16 18.00.24.png

Résumé

Je pense que cela rendra le pointeur de la souris translucide. Je ne l'ai essayé que sur Yosemite, alors peut-être que d'autres versions ne fonctionneront pas.

semi-transparent.png

Recommended Posts

Rendre le pointeur de la souris OS X translucide