Saya punya mouse dengan tiga tombol tetapi tidak ada roda.
Di OS X, apakah ada cara (mungkin dengan perangkat lunak addon) yang akan memungkinkan saya untuk menggunakan tombol ketiga untuk menggulir dengan memegang dan menggerakkan mouse?
Smart Scroll melakukan apa yang Anda cari, dengan fitur 'Grab Scroll'. Tetapkan ke 'Tombol 3 (Tengah)' dan menyeret pada kedua sumbu akan bekerja di aplikasi seperti browser (Chrome), Terminal, Adobe Photoshop, dan Finder - tidak ada aplikasi yang saya coba belum bekerja dengan itu (menggunakan 4.0 betas ke atas). Ini memiliki uji coba gratis.
Saya melakukannya dengan Hammerspoon dengan skrip konfigurasi berikut yang terinspirasi oleh utas ini: https://github.com/tekezo/Karabiner/issues/814#issuecomment-337643019
Langkah:
Open Config
Rekatkan lua
skrip berikut ke dalam konfigurasi:
-- HANDLE SCROLLING WITH MOUSE BUTTON PRESSED
local scrollMouseButton = 2
local deferred = false
overrideOtherMouseDown = hs.eventtap.new({ hs.eventtap.event.types.otherMouseDown }, function(e)
-- print("down")
local pressedMouseButton = e:getProperty(hs.eventtap.event.properties['mouseEventButtonNumber'])
if scrollMouseButton == pressedMouseButton
then
deferred = true
return true
end
end)
overrideOtherMouseUp = hs.eventtap.new({ hs.eventtap.event.types.otherMouseUp }, function(e)
-- print("up")
local pressedMouseButton = e:getProperty(hs.eventtap.event.properties['mouseEventButtonNumber'])
if scrollMouseButton == pressedMouseButton
then
if (deferred) then
overrideOtherMouseDown:stop()
overrideOtherMouseUp:stop()
hs.eventtap.otherClick(e:location(), pressedMouseButton)
overrideOtherMouseDown:start()
overrideOtherMouseUp:start()
return true
end
return false
end
return false
end)
local oldmousepos = {}
local scrollmult = -4 -- negative multiplier makes mouse work like traditional scrollwheel
dragOtherToScroll = hs.eventtap.new({ hs.eventtap.event.types.otherMouseDragged }, function(e)
local pressedMouseButton = e:getProperty(hs.eventtap.event.properties['mouseEventButtonNumber'])
-- print ("pressed mouse " .. pressedMouseButton)
if scrollMouseButton == pressedMouseButton
then
-- print("scroll");
deferred = false
oldmousepos = hs.mouse.getAbsolutePosition()
local dx = e:getProperty(hs.eventtap.event.properties['mouseEventDeltaX'])
local dy = e:getProperty(hs.eventtap.event.properties['mouseEventDeltaY'])
local scroll = hs.eventtap.event.newScrollEvent({-dx * scrollmult, dy * scrollmult},{},'pixel')
-- put the mouse back
hs.mouse.setAbsolutePosition(oldmousepos)
return true, {scroll}
else
return false, {}
end
end)
overrideOtherMouseDown:start()
overrideOtherMouseUp:start()
dragOtherToScroll:start()
Smooze melakukan itu, antara lain. (Saya pengembang)
Apa yang membedakannya dari saran lain adalah kemampuan untuk menggunakannya di setiap aplikasi mac sambil mengidentifikasi tautan, misalnya. (jika Anda menggunakan seret tombol tengah untuk meraih dan melempar, tetapi tetap ingin bahwa klik tombol tengah akan bertindak sebagai tombol tengah)
Dengan Smooze lebih mirip grab-drag-throw daripada grab-drag. Rilis ini mempengaruhi momentum dan animasi dari gulir, mirip dengan gulir iPhone.
sumber
Ada aplikasi open source yang sangat bagus bernama Karabiner yang akan melakukan ini dan banyak lagi (Keyboard dan mouse remapping dll). Lihat pertanyaan ini untuk beberapa contoh. Juga untuk produsen tertentu mereka menyediakan perangkat lunak kontrol kustom yang memungkinkan untuk fungsionalitas yang ditingkatkan / dimodifikasi (misalnya Pusat Kontrol Logitech).
Seperti disebutkan dalam komentar di bawah ini bahwa sementara versi baru 'Karabiner Elements' telah dirilis untuk MacOS Sierra (10.12) dan seterusnya, hanya menyediakan remapping berbasis keyboard sejauh ini - jadi saat ini remapping mouse tidak dapat dilakukan dengan itu.
Namun Hammerspoon adalah alat open source gratis lain yang dapat digunakan, di antara banyak hal lain, untuk memetakan kembali tombol pada mouse (dan / atau keyboard) ke berbagai fungsi. Anda harus menginstal alat dan menyediakannya dengan beberapa konfigurasi yang sesuai - lihat contoh di sini untuk memetakan ulang mouse.
Untuk memeriksa jenis acara dan mouseEventButtonNumber yang sedang dibuat oleh perangkat Anda, Anda dapat menjalankan ini (cukup salin / tempel 4 baris ke konsol) di konsol Hammerspoon (Gunakan
reload config
untuk menghentikannya):Catatan: Jika Anda telah menginstal alat Logitech Control Center (LCC) - itu mengambil peristiwa langsung dari perangkat Logitech menggunakan modul kernel yang terpasang sehingga Hammerspoon tidak dapat melihatnya. Anda harus menghapus LCC jika Anda ingin memetakan kembali tombol mouse menggunakan Hammerspoon.
sumber
Tergantung pada perangkat lunak - misalnya, Firefox mendukungnya, sedangkan Google Chrome tidak.
Sayangnya, saat ini tidak ada perangkat lunak untuk mengaktifkan fitur sistem seperti itu di OS X.
sumber
Saya menggunakan Better Touch Tool untuk menetapkan Ctrl + klik tengah ke PgUp, dan Option + klik tengah ke PgDown. Ini gratis, perangkat lunak luar biasa, dan berfungsi dengan baik.
sumber
+1 untuk Hammerspoon dan skrip, mouse / trackball yang normal membuat saya marah pada Mac.
Saya menulis satu untuk menggulir sementara tombol tengah mouse ditekan ke bawah - semakin jauh Anda menggerakkan mouse semakin cepat akan bergulir.
Klik masih berfungsi seperti klik normal dengan zona mati 5 piksel sehingga Anda tidak perlu menjaga mouse tetap diam antara menekan dan melepaskan roda.
sumber
deltaX = deltaY * -1
seharusnyadeltaY = deltaY * -1
dan saya berkomentardeltaX = deltaX * -1
karena saya tidak ingin sumbu X terbalik.