web-dev-qa-db-fra.com

Comment verrouiller l'écran lorsque la souris est déplacée vers le coin inférieur droit?

J'aimerais verrouiller l'écran lorsque je déplace la souris dans le coin inférieur droit.

Existe-t-il une configuration compiz pour cette tâche?

Je n'ai rien trouvé dans les paramètres système et compizconfig-settings-manager.

4
Edward

Les outils simples pour obtenir la position de la souris est xdotool il suffit d’installer d’abord et ensuite de suivre les étapes suivantes:

Sudo apt-get install xdotool

alors nous utilisons xdotool getmouselocation --Shell pour voir la position actuelle de la souris: le résultat ressemblera à ceci:

X=845
Y=447
SCREEN=0

ou en exécutant eval $(xdotool getmouselocation --Shell) placera la position dans les variables shell X, Y et SCREEN. Après cela, nous pouvons accéder à ces variables avec ceci:

echo $X $Y $SCREEN

Nous avons maintenant besoin d’une boucle while pour vérifier la position de la souris à chaque fois:

while true
  do
    [get mouse position]
    [if position =bottom-right corner then lock screen]
  done

ok donc nos scripts seraient comme ça:

#! /bin/sh
while true
  do
    eval $(xdotool getmouselocation --Shell)
    if [ $X -ge 1919 -a  $Y -ge 1079 ]; then
        gnome-screensaver-command -l
    fi
  done

sauvegardez le script nommé "lock.sh" dans votre répertoire personnel et exécutez-le avec sh lock.sh puis déplacez la souris vers le coin inférieur droit pour afficher le résultat. cool!

explique:

Nous combinons les conditions en utilisant certains opérateurs. Pour la syntaxe à crochet unique que nous avons utilisée jusqu’à présent, "-a" est utilisé pour et. et "-o" pour ou. Exemple:

if [ $foo -ge 3 -a $bar -ge 10 ]; then

La condition ci-dessus retournera la valeur vraie si $foo contient un entier g supérieur à ou ou e qual to 3 (-ge 3) et aussi $bar contient un entier g supérieur à ou e qualifiez-vous pour 10. puis exécutez la ligne de commande de l'écran de verrouillage gnome-screensaver-command -l

2
αғsнιη

Je ne pouvais trouver aucun paramètre dans Compiz Manager, ni dans les paramètres de Unity Tweak (qui utilise la même chose), mais si vous ajoutez le script ci-dessous à vos applications de démarrage, il vérifiera la résolution de votre écran et la position de votre souris. Si la souris est à une marge du coin (définie dans l'en-tête du script), l'écran sera verrouillé.

Comment utiliser

  1. Installez xdotool:

    Sudo apt-get install xdotool
    
  2. Collez le script ci-dessous dans un fichier vide, définissez la marge (en pixels) dans laquelle vous souhaitez que le hotcorner agisse, enregistrez-le sous le nom screenlock.py, rendez-le exécutable pour des raisons de commodité et ajoutez-le à vos applications de démarrage (Dash> Applications de démarrage > Ajouter). Ajouter ajouter la commande:

    /path/to/screenlock.py
    

Le scénario:

#!/usr/bin/env python3

import time
import subprocess

marge = 3 # (pixels) increase to increase sensitivity

output = subprocess.check_output(["xrandr"]).decode('utf-8').strip().split()
idf = output.index("current")
res = (int(output[idf+1]), int(output[idf+3].replace(",", "")))

command = "gnome-screensaver-command -l"

while True:
    get_pos = subprocess.check_output(["xdotool", "getmouselocation", "--Shell"]).decode('utf-8').strip().split("\n")
    pos = (int(get_pos[0][2:]), int(get_pos[1][2:]))
    if res[0] - pos[0] < marge and res[1] - pos[1] < marge:
        subprocess.Popen(["/bin/bash", "-c", command])
    time.sleep(1)
1
Jacob Vlijm