(Mac) Stänga av touchpad medans man skriver på tangentbord?

Permalänk

(Mac) Stänga av touchpad medans man skriver på tangentbord?

Hej!

Är det någon som vet hur man kan få detta script att autostarta med MacOS?

Jag använder externt tangentbord och touchpad men lyckas alltid komma åt den känsliga touchpaden medans jag skriver.

https://github.com/thesyntaxinator/TouchGuard

Tack för tips.
(Kanske måste söka efter någon att betala för att lösa detta?).

Permalänk

Relevant mening:

Citat:

NOTE: Must be run with administrative privileges.

Du kan utan problem köra ett script (eller kanske en Shortcut?) vid inloggning, vilket kallar på programmet via sudo, men du kan inte starta programmet på ett säkert sätt utan en interaktion i form av en extra inloggning.

Permalänk
Skrivet av stefaneriksson123:

(Kanske måste söka efter någon att betala för att lösa detta?).

Kör du med Apples Magic Keyboard/Magic Trackpad eller med tredjepartsutrustning?
Deras egna grejer är nämligen ett sätt att betala sig ur problemställningen för de flesta: deras palm rejection-algoritm är fantastisk.

Permalänk
Medlem
Skrivet av stefaneriksson123:

Hej!

Är det någon som vet hur man kan få detta script att autostarta med MacOS?

Jag använder externt tangentbord och touchpad men lyckas alltid komma åt den känsliga touchpaden medans jag skriver.

https://github.com/thesyntaxinator/TouchGuard

Tack för tips.
(Kanske måste söka efter någon att betala för att lösa detta?).

Länken ovan länkar vidare till https://github.com/amanagr/TouchGuard
"To auto-start after you restart your computer, see an unofficial extension of the project at amanagr/TouchGuard"

Kanske kan vara något?

Visa signatur

ASUS P8Z68-v Pro i7 2600K@4.5, 32GB RAM, RX 580, 4K Samsung u24e590, Intel SSD, Seagate SSHD, LG BH16NS55 BD/RW, MacOS Monterey, Win 10+11, Linux Mint

Macbook Pro 2009, 8GB RAM, SSD, MacOS Catalina + Windows 7

Permalänk
Skrivet av Pirum:

Länken ovan länkar vidare till https://github.com/amanagr/TouchGuard
"To auto-start after you restart your computer, see an unofficial extension of the project at amanagr/TouchGuard"

Kanske kan vara något?

Verkar vara något utan öppen källkod. Inget folk verkar vilja ladda ner. Har iofs testat det ändå men fungerade inte. Ska se om jag kan hitta någon att betala för att lösa detta.

Permalänk
Skrivet av Det Otroliga Åbäket:

Kör du med Apples Magic Keyboard/Magic Trackpad eller med tredjepartsutrustning?
Deras egna grejer är nämligen ett sätt att betala sig ur problemställningen för de flesta: deras palm rejection-algoritm är fantastisk.

Jag lider av MS, så gör fruktansvärt ont att trycka på tangenterna på macbooken. Har därför ett väldigt mjukt externt microsoft-tangentbord med en apple magic trackpad 2.

Har trackpaden i mitten under tangentbordet som på macbooken ungefär. Men utan detta program kommer man alltid åt den känsliga trackpaden.

Vore en lifesaver att kunna köra detta med autostart.

Ska leta lite och se vart man kan hyra programmerare som kan göra detta.

Tack.

Permalänk
Datavetare

Detta borde fungera om det bara handlar om att köra ett specifikt program som måste köras som "root" vid inloggning.

Gör ett konkrent exempel, mitt användarnamn på datorn är 'kjn'. Har lagt detta script

#!/bin/sh echo "Running as ${USER}"

här: /Users/kjn/script/run-me.sh

Exempel på output

➜ script ./run-me.sh Running as kjn ➜ script sudo ./run-me.sh Running as root

För att kunna köra detta m.h.a. sudo utan att ange lösenord, gör detta

sudo visudo

Du är nu i VIM, att ens ta sig ut ur det programmet kan vara utmanande för de som aldrig använt det... Fördelen med att göra så här är att om du skrivet något fel upptäcks det, gör man fel i sudo-filen kan det bli rätt svårt att ta sig in i den igen!

Navigera nedåt med piltangenter till du hittar detta

# root and users in group wheel can run anything on any machine as any user root ALL = (ALL) ALL %admin ALL = (ALL) ALL

ställ dig på den tomma raden efter raden som börjar med '%admin' och tryck 'i' (för insert)

För exemplet ovan ska det stå detta, du ska ange ditt användarnamn istället för 'kjn' och din korrekt sökväg till ditt script

kjn ALL = NOPASSWD: /Users/kjn/script/run-me.sh

Tryck 'ESC : w <RET>' inga mellanslag, följt av 'ESC : q'. Done!

För att veta ditt användarnamn och fullständig path till scriptet, ställ dig i katalogen där scriptet ligger och gör

echo $USER pwd

För mig blir det då

➜ script echo $USER kjn ➜ script pwd /Users/kjn/script

Det som skrivs ut efter 'pwd' + '/<namn-på-script>' är det som ska in ovan.

Rent generellt bör man undvika att låta program köra som 'root', framförallt utan att ange lösenord. Så är en "feature" att det inte är trivialt att få till

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Skrivet av Yoshman:

Detta borde fungera om det bara handlar om att köra ett specifikt program som måste köras som "root" vid inloggning.

Gör ett konkrent exempel, mitt användarnamn på datorn är 'kjn'. Har lagt detta script

#!/bin/sh echo "Running as ${USER}"

här: /Users/kjn/script/run-me.sh

Exempel på output

➜ script ./run-me.sh Running as kjn ➜ script sudo ./run-me.sh Running as root

För att kunna köra detta m.h.a. sudo utan att ange lösenord, gör detta

sudo visudo

Du är nu i VIM, att ens ta sig ut ur det programmet kan vara utmanande för de som aldrig använt det... Fördelen med att göra så här är att om du skrivet något fel upptäcks det, gör man fel i sudo-filen kan det bli rätt svårt att ta sig in i den igen!

Navigera nedåt med piltangenter till du hittar detta

# root and users in group wheel can run anything on any machine as any user root ALL = (ALL) ALL %admin ALL = (ALL) ALL

ställ dig på den tomma raden efter raden som börjar med '%admin' och tryck 'i' (för insert)

För exemplet ovan ska det stå detta, du ska ange ditt användarnamn istället för 'kjn' och din korrekt sökväg till ditt script

kjn ALL = NOPASSWD: /Users/kjn/script/run-me.sh

Tryck 'ESC : w <RET>' inga mellanslag, följt av 'ESC : q'. Done!

För att veta ditt användarnamn och fullständig path till scriptet, ställ dig i katalogen där scriptet ligger och gör

echo $USER pwd

För mig blir det då

➜ script echo $USER kjn ➜ script pwd /Users/kjn/script

Det som skrivs ut efter 'pwd' + '/<namn-på-script>' är det som ska in ovan.

Rent generellt bör man undvika att låta program köra som 'root', framförallt utan att ange lösenord. Så är en "feature" att det inte är trivialt att få till

Hej!
Tack för ditt svar men fick det inte att fungera, är ganska dålig på detta.

När jag tryckte på ESC+W så fick jag ingen riktig "write" på filen. Inte heller något med ESC+Q. Var tvungen att köra command+Q för att komma ur terminal.

Menar du att jag ska byta ut run-me.sh med Touchguard?

Är väldigt tacksam om du har lust att göra en förklaring till mig som inte kan detta ;D

Tack igen.
Mitt användarnamn är: admin
Kör MacOS Sonoma 14.4.1 på en Macbook Air M3.

Permalänk

Provade även att göra enligt vad kodaren har svarat men det fungerade inte heller.
https://github.com/thesyntaxinator/TouchGuard-1/tree/fix-for-...

Permalänk
Datavetare
Skrivet av stefaneriksson123:

Hej!
Tack för ditt svar men fick det inte att fungera, är ganska dålig på detta.

Skrivet av stefaneriksson123:

När jag tryckte på ESC+W så fick jag ingen riktig "write" på filen. Inte heller något med ESC+Q. Var tvungen att köra command+Q för att komma ur terminal.

Det är pillrigt, det ska vara "ESC", följt av ":" (kolon), följt av "w".
Samma för att gå ur, "ESC", följt av ":", följt av "q".

Skrivet av stefaneriksson123:

Menar du att jag ska byta ut run-me.sh med Touchguard?

Hmm, inser att jag missade ett steg här. Du behöver ett eget skript. Lägg det på samma ställe där Touchguard ligger med följande innehåll (går att kopiera rakt av):

#!/bin/sh PATH_TO_THIS_DIR="$(dirname $(realpath $0))" sudo "$PATH_TO_THIS_DIR/Touchguard"

Är detta script som skript som ska köras vid login, du kan kalla det t.ex. RunTouchguard.

Gör det körbart så här (är ett kommando i terminalen, kör det när du är i katalogen där RunTouchguard ligger)

chmod +x RunTouchguard

Är just Touchguard som sedan ska tillåtas köras med sudo utan lösenord, så om det ligger direkt i din hemkatalog och du heter admin borde det som ska läggas in vara

admin ALL = NOPASSWD: /Users/admin/Touchguard

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk

Testade nu köra igenom dessa steg:

1.
Lägger båda filerna RunTouchguard och TouchGuard
i:

Användare/admin/

2.
gjorde RunTouchGuard och TouchGuard körbart med

chmod +x RunTouchguard
 chmod +x TouchGuard

ikonerna ändrades på filerna i mappen till Unix-körbara filer.

3.
körde sudo visudo i terminal
och la till detta nedan och sparade med esc,w,esc,q. Fick det bekräftat med "written".

admin ALL = NOPASSWD: /Users/admin/TouchGuard

_______________________

(märker att det är lite stora bokstäver inblandat i mitt i båda filernas namn, gör det något eller ska jag döpa om dem till endast små bokstäver?
Menar RunTouchguard och TouchGuard.



T.ex skrev vi:

#!/bin/sh PATH_TO_THIS_DIR="$(dirname $(realpath $0))" sudo "$PATH_TO_THIS_DIR/Touchguard"



Men kanske istället ska vara:

sudo "$PATH_TO_THIS_DIR/TouchGuard"




Och:


admin ALL = NOPASSWD: /Users/admin/Touchguard



Istället för


admin ALL = NOPASSWD: /Users/admin/TouchGuard

Jag testade iofs ändra detta nu till exakt vad de heter men det verkar inte göra någon skillnad?

Avslutningsvis körde jag RunTouchguard med terminal och fick upp detta:

EDIT:
Jag var tvungen att släppa förbi scriptet i macos systemsettings "integritet och säkerhet" då får jag istället upp detta nedan. Ser ut som att det fungerar!! Behöver bara kunna ändra millisekunderna till kanske 1 sekund?

Permalänk

Kanske kan det vara så att vi missar detta kommando som körs
som står här: https://github.com/thesyntaxinator/TouchGuard

# make the downloaded release file executable
chmod +x TouchGuard
# run it
sudo ./TouchGuard -time 0.2

The above launches TouchGuard with a time interval of 200 ms (disables the touchpad for 200 ms each time a key is pressed on the keyboard).

Vi kanske alltså måste skriva in -time 0.2 någonstans för att det ska fungera?
Nu gissar jag bara.

Edit:

Jag löste det verkar det som!!!

Ändrade i RunTouchguard filen till detta:

#!/bin/sh PATH_TO_THIS_DIR="$(dirname $(realpath $0))" sudo "$PATH_TO_THIS_DIR/TouchGuard" -time 0.5

Permalänk
Datavetare
Skrivet av stefaneriksson123:

Testade nu köra igenom dessa steg:

1.
Lägger båda filerna RunTouchguard och TouchGuard
i:

Användare/admin/

2.
gjorde RunTouchGuard och TouchGuard körbart med

chmod +x RunTouchguard
 chmod +x TouchGuard

ikonerna ändrades på filerna i mappen till Unix-körbara filer.

3.
körde sudo visudo i terminal
och la till detta nedan och sparade med esc,w,esc,q. Fick det bekräftat med "written".

admin ALL = NOPASSWD: /Users/admin/TouchGuard

_______________________

(märker att det är lite stora bokstäver inblandat i mitt i båda filernas namn, gör det något eller ska jag döpa om dem till endast små bokstäver?
Menar RunTouchguard och TouchGuard.



T.ex skrev vi:

#!/bin/sh PATH_TO_THIS_DIR="$(dirname $(realpath $0))" sudo "$PATH_TO_THIS_DIR/Touchguard"



Men kanske istället ska vara:

sudo "$PATH_TO_THIS_DIR/TouchGuard"




Och:


admin ALL = NOPASSWD: /Users/admin/Touchguard



Istället för


admin ALL = NOPASSWD: /Users/admin/TouchGuard

Jag testade iofs ändra detta nu till exakt vad de heter men det verkar inte göra någon skillnad?

Avslutningsvis körde jag RunTouchguard med terminal och fick upp detta:

EDIT:
Jag var tvungen att släppa förbi scriptet i macos systemsettings "integritet och säkerhet" då får jag istället upp detta nedan. Ser ut som att det fungerar!! Behöver bara kunna ändra millisekunderna till kanske 1 sekund?

<Uppladdad bildlänk>

Stora och små bokstäver tolkas som olika saker i UNIX/Linux, så de måste skrivas exakt. Men det hade du redan räknat ut.
Du lurade även ut att eventuella argument till Touchguard är bara att sätta in i TunTouchguard scriptet.

Kul att det fungerar!

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Skrivet av Yoshman:

Stora och små bokstäver tolkas som olika saker i UNIX/Linux, så de måste skrivas exakt. Men det hade du redan räknat ut.
Du lurade även ut att eventuella argument till Touchguard är bara att sätta in i TunTouchguard scriptet.

Kul att det fungerar!

Jaa! Tackar så mycket, har testat starta om och det fungerar! Underbart.

Ska se om man kan flytta så den körs i bakgrunden eller kanske i menu bar. Slipper man ha en terminal ikon igång hela tiden. Men det är inget riktigt problem. Viktiga är att det funkar! Tack igen!

Jobbar du med programmering?