rattle-snake

Tab Scroll for brave

Jan 23rd, 2021 (edited)
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; Mouse Wheel Tab Scroll - Brave
  2. ; -------------------------------
  3. ; Fait défiler les onglets Brave avec la molette de la souris lorsque vous survolez la barre d'onglets.
  4. ;Avant d'executer le script, le placer dans un répertoire ou il ne bougera pas. En effet, il sera executé a chaque démarrage de windows.
  5.  
  6. ;On lance le script en mode admin (utile si brave est en admin)
  7. if not A_IsAdmin
  8. Run *RunAs "%A_ScriptFullPath%"
  9.  
  10. ;Optionnel : on écrit dans la base de registre pour lancer l'exe a chaque démarrage de windows (penser à désactiver l'UAC de windows)
  11. scriptFullPath = %A_ScriptFullPath%
  12. SplitPath, scriptFullPath,,, ext
  13. if (ext = "exe")
  14. {
  15.     ;On écrit dans la base de registre pour lancer l'exe a chaque démarrage de windows
  16.     RegWrite, REG_SZ,HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run, tabScrollBrave_AHK, %A_ScriptFullPath%
  17. }
  18.  
  19. #NoEnv  ; Recommandé pour les performances et la compatibilité avec les futures versions d'AutoHotkey.
  20. #SingleInstance, force
  21. #Warn   ; Activer les avertissements pour aider à détecter les erreurs courantes.
  22. #SingleInstance force   ; Détermine si un script est autorisé à s'exécuter à nouveau alors qu'il est déjà en cours d'exécution.
  23. #UseHook Off    ; Pas besoin du hook pour le clavier ici
  24. #InstallMouseHook ; Hook pour la souris
  25. #MaxHotkeysPerInterval 99999999999  ; Évite les messages d'avertissement si wheel a haute vitesse
  26. #IfTimeout 500 ; Permet de laisser respirer les "If" contextuels (avec "#") et evite des crashs si scroll trop rapide
  27. ;#NoTrayIcon ;On n'affiche pas l'icone dans la barre des tâches
  28.  
  29. SendMode Input  ; Recommandé pour les nouveaux scripts en raison de sa rapidité et de sa fiabilité supérieure
  30.  
  31. ;Titre du script
  32. Menu, Tray, Tip, Mousewheel tab scroll for Brave
  33.  
  34. ;Pour voir les icons https://www.nirsoft.net/utils/iconsext.html
  35. ; Chemins disponibles (icones pas a jour sur el site) https://diymediahome.org/windows-icons-reference-list-with-details-locations-images/
  36.  
  37. iconPath := "C:\Windows\system32\ieframe.dll"
  38. iconIndex := 74
  39. Menu, Tray, Icon, %iconPath%, %iconIndex%
  40.  
  41. ;msgbox Both buttons! ;Message pour debug
  42.  
  43. ;Si la souris survol une instance de Brave (le "#" permet de s'assurer que les hotkeys seront bien initialisée uniquement dans ce contexte).
  44. #If MouseIsOver("ahk_class Chrome_WidgetWin_1")
  45. {
  46.     ;https://autohotkey.com/board/topic/80118-issue-with-rbutton/
  47.     ;Astuce pour empecher le menu contextuel de s'afficher lors du clique D + scroll
  48.     ;Sa mise en place implique d'utiliser "RButton & WheelUp::" et non "~RButton & WheelUp::"
  49.     $RButton::
  50.         Sleep, 100
  51.        Send {RButton}
  52.     Return
  53.  
  54.     ;On liste ici les touches appuyées que l'on va traiter
  55.     WheelUp::
  56.     WheelDown::
  57.     ~LButton & MButton:: ; "~" => Clique M préssé pendant que l'on maintient le clique G
  58.     RButton & MButton::
  59.     RButton & WheelUp::
  60.     RButton & WheelDown::
  61.         MouseGetPos,, ypos, id
  62.  
  63.         ;On force le focus sur brave au passage de la souris
  64.         IfWinNotActive ahk_id %id%
  65.             WinActivate ahk_id %id%
  66.            
  67.         ; Si la souris est dans la zone de la barre d'onglet (<45px )
  68.         ; On fait défiler les onglets au mousewheel
  69.         If (ypos < 45)
  70.         {
  71.             If A_ThisHotkey = WheelUp
  72.                 Send ^{PgUp}  ; Raccourcis CTRL+pageUp
  73.             If A_ThisHotkey = WheelDown
  74.                 Send ^{PgDn} ; Raccourcis CTRL+pageDown
  75.         }
  76.        
  77.         ;Onglet suivant/précédent si clique D + mousewheel :
  78.         Else If A_ThisHotkey = RButton & WheelUp
  79.             Send ^{PgUp} ;CTRL + PgUp envoyé
  80.         Else If A_ThisHotkey = RButton & WheelDown
  81.             Send ^{PgDn} ;CTRL + PgDn envoyé
  82.            
  83.         ;Nouvel onglet si clique D + clique M
  84.         Else If A_ThisHotkey = RButton & MButton
  85.             Send ^{t} ;Si clique D+Clique M => CTRL + T
  86.            
  87.         ;Activation extension LinkClump si clique G + clique M
  88.         Else If A_ThisHotkey = ~LButton & MButton
  89.         {
  90.             SendInput {Ctrl down}{LButton down} ;CTRL + clique G envoyé
  91.             Keywait, LButton ;Si clique G Up
  92.             SendInput {LButton up}{Ctrl up} ;On "dé-clique" tout
  93.         }
  94.        
  95.         ;Sinon on fait passer les events tel quel
  96.         Else If A_ThisHotkey = WheelUp
  97.             Send {WheelUp}
  98.            
  99.         Else If A_ThisHotkey = WheelDown
  100.             Send {WheelDown}
  101.            
  102.         Else If A_ThisHotkey = RButton
  103.             Send {RButton}
  104.            
  105.  
  106.     Return
  107. }
  108.  
  109. ;Fonction pour récuperer le nom du processus sous focus
  110. MouseIsOver(WinTitle)
  111. {
  112.     MouseGetPos,,, Win
  113.     return WinExist(WinTitle . " ahk_id " . Win)
  114. }
  115.  
Add Comment
Please, Sign In to add comment