最近换了一个鼠标

工作这么多年了,断断续续用过好多鼠标。从最初的有线鼠标,到现在的无线鼠标、蓝牙鼠标。作为一个码农,和鼠标、键盘打交道的的时间相当长,越来越体会到一款好的鼠标是对自己的爱护。

最近换了鼠标,中间走了弯路不少,感觉有必要分享出来,希望对有同样想法的同学有所帮助。;)

1. 曾经的主力鼠标M345

这里写图片描述
以前用Windows开发的时候一直用罗技的M345鼠标,这个鼠标是当时和我的ThinkPad一起买的,后来换了Vaio 15也一直没有更换。我特别喜欢这个鼠标的滚轮,罗技官方称为“超级棘齿滚轮”,滚动起来相当快,比以前用过的罗技、微软有线鼠标快的多。而且慢慢滚动的时候也可以精确的滚动。另外,M345的个头比较小巧(三维:10.3x3.80x6.30cm),便携性比较好。所以这款鼠标一直陪伴了大概有6年的时间(想想时间真长啊)。

大概半年之前,鼠标滚轮上的胶皮老化逐渐脱落了。因为一直用着比较顺手,所以就想着修理一下。从万能的某宝上居然淘到了滚轮配件,换上之后就和新鼠标的感觉一样。
这里写图片描述

总体感觉M345这款鼠标从设计到质量都还不错。留给我的印象挺好。

2. MX Anywhere2

半年多之前,换用MBPR开发的时候,因为一时找不到合适的鼠标,所以还一直延续使用之前的M345。虽说Mac本子的触摸板很好用,但是对程序员来说,一款鼠标还是少不了的。

M345用着还算顺手,但是毕竟是7,8年前的产品了,从功能上来说远远赶不上现在的产品了。因为M345留下的印象,初步选定的几款产品都是罗技的:

2.1 M546

这里写图片描述
三维:10.2x3.84x5.85cm

2.2 M557

这里写图片描述
三维:99.75x34.13x57.9mm

2.3 MX Anywhere2

这里写图片描述
三维:10.0x3.44x6.16cm

三款各有优势:

  • M546有两个侧键可以自定义,有Mac的驱动Logitech Options支持进行自定义;但是问题是这款驱动只支持新版本的鼠标(新版本的鼠标序号前四位和旧款不同)。而网购很难保证能够买到新版本,万一买到旧版本,相当于两个侧键毫无作用。
  • M557是蓝牙鼠标,因此可以少占用一个USB口。毕竟MBPR只有两个USB口。但是缺点是蓝牙是2.4G协议,当环境中2.4G无线信号比较多的时候容易形成干扰,导致丢帧。
  • MX Anywhere2优点是:1)可充电;2)蓝牙、无线双适配;3)有两个侧键可以自定义;4)激光引擎,号称可以支持任何表面。缺点就是贵,某东价449。

凑巧的是弄到了一张某东的购物券,加上618大庆,可以以相对低的价格买到MX Anywhere2,于是毫不犹豫的下手了。

不得不说某东的快递真不错,晚上下单,第二天就收到了。但是简单试用之下,不禁大失所望,这还是我熟悉的那个罗技吗?

在试用的半天时间里,碰到了几个问题:

  1. 首先是滚轮:罗技官方宣传的MX Anywhere2滚轮支持两种模式:无阻尼滚轮和有阻尼滚轮,两种模式可以通过通过按鼠标滚轮实现切换。也就是说通常按压滚轮是触发鼠标中键,但是在MXA2上却不是。为了实现中键的功能,MXA2特意在滚轮后面增加了一个按键,看上面的图。但是要按这个中键可就有点困难了,手指要缩回来才能按上,操作起来不是很方便。
  2. 其次还是滚轮:如果只是鼠标中间不方便也还好,适应一下应该没问题。致命的问题在于不管是有阻尼状态还是无阻尼状态,在Mac的Launchpad中滚动都有问题。表现是Launchpad左右滚动的时候特别慢。感觉上像是一个一个像素左右滚动的。猜测是鼠标向电脑发送了大量的滚动消息,但是每次都滚动了一点点距离(这个可能是为了滚动更精确吧),Launchpad也就一点一点的刷新,造成了滚动特别慢的问题。这个问题简直无法忍受。
  3. 再次还是滚轮:买之前就知道在Mac上MXA2的四项滚轮左右滚动是无效的。但是没想到的是在某些应用中,上下滚轮也会无效。这真是有点不好理解了。简单试了一下碰到了几个应用:a)Mac的“终端”应用,没错就是系统自带的那个终端Terminal。在这里面滚轮是不好用的!!!WTF! b)爱壁纸HD:爱壁纸HD里面显示的内容是需要横向滚动的,使用触控板左右滑动感觉很好。以前使用M345的时候,使用鼠标滚轮上下滚动也可以左右滚动显示的内容。但是MXA2不知道为什么没有反应了。后来Google了一下,发现这款产品确实有这个问题,很多用户都碰到过。
  4. 其他:其他方面MXA2表现还是不错的。激光引擎表现不错,确实在测试中的平面上都可以使用;另外,蓝牙表现也不错,虽然偶尔会丢帧,但不严重(可能跟我用5G Wifi有关?不确定);蓝牙能够支持多设备也是个卖点。电池待机时间限于测试时间就不知道表现如何了。

鉴于碰到了上面这些问题,让我大失所望。没想到新产品居然有这么多的兼容性问题。所以第二天就申请退货了。还好某东的7天无理由退货还不错,快递员第二天来拿走了鼠标,过了一周左右收到了退款。

3. 微软Sculpt Ergonomic

这里写图片描述
微软Sculpt Ergonomic鼠标,中文名是微软Sculpt人体工学鼠标。江湖人称“大馒头”。从形状来看确实像是一个大馒头,呵呵

MXA2退货之后,又陷入了选择困难症。鉴于MXA2的“良好”表现,对罗技彻底没了信心。鉴于当年用过微软的IE3.0,虽然IE3.0的微动质量不怎么样,但是感觉其人体工学设计还是不错的,鼠标手感还是很舒服的。所以最后选择了微软鼠标。

在Sculpt Comfortable(舒适鼠标)和Sculpt Ergonomic之间犹豫了一下之后,决定选择“大馒头”。因为MXA2过于小巧的体型让手腕很不舒服,所以决定选一款大一点的鼠标。

还是选择在某东出手,因为618大庆期间只要269,感觉相当划算。

到手之后试用之下感觉不错,越用越喜欢 :)

简单总结一下优缺点,希望对大家有所帮助:

  1. 滚轮左右好用:滚轮左右方向摆动直接好用。这个要赞一个!在Excel或者爱壁纸HD这种有左右滚动条的应用中,左右摆动直接好用,不用驱动,不用设置。
  2. 两个侧键可以自定义:虽然微软没有提供官方驱动,但是通过第三方驱动Karabiner可以实现两个侧键的自定义。我现在将其中的Windows键定义成了Launchpad,将后退键定义成了Mission Control。以前这两个功能都需要通过键盘或者触摸板才能完成,现在都可以直接通过鼠标完成了。
  3. 手感相当不错。鼠标高度比较高,所以感觉整个手都有很充实的握感。另外鼠标表面有个倾斜的角度,手腕扭转的角度小了,舒服了不少。

当然,缺点也是有的:

  1. DPI值有点低,虽然和以前的M345一样都是1000DPI,但是移动起来感觉还稍稍不如M345;
  2. 滚轮滚动速度不如M345。可能以前用M345习惯了,感觉那个滚轮特别舒服。Sculpt的滚轮有点偏慢,而且轻轻滚动的时候感觉过于慢了,移动不够精确。

总体来说,微软Sculpt这款鼠标让我有点惊艳的感觉。虽有美中不足,但是还是非常喜欢。

4. Karabiner

前面提到了Kinabiner这款软件,这是一款非常棒的Mac下自定义键盘、鼠标按键的软件。它可以拦截键盘、鼠标驱动,替换特定的键盘鼠标组合到你想要的功能。譬如,我将鼠标两个侧键定义成Launchpad和Mission Control。具体试用方法我就不写了,有兴趣大家百度、Google一下就知道了。

附上我的修改配置:

<?xml version="1.0"?>
<root>
  <devicevendordef>
    <vendorname>MICROSOFT</vendorname>
    <vendorid>0x045e</vendorid>
  </devicevendordef>

  <deviceproductdef>
    <productname>SCULPT_ERGONOMIC</productname>
    <productid>0x07a5</productid>
  </deviceproductdef>

  <item>
    <name>Windows Button to Launchpad</name>
    <identifier>com.microsoft.mouse.sculpt_ergonomic.win_button_to_forwards</identifier>
    <device_only>DeviceVendor::MICROSOFT,DeviceProduct::SCULPT_ERGONOMIC</device_only>
    <autogen>
      __HoldingKeyToKey__

      KeyCode::COMMAND_R,

      <!-- Short press -->
      @begin
      KeyCode::LAUNCHPAD,
      @end

      <!-- Long press -->
      @begin
      KeyCode::TAB, ModifierFlag::COMMAND_L,
      KeyCode::COMMAND_L,
      @end

      Option::NOREPEAT,
    </autogen>
  </item>
</root>

Sculpt鼠标上的Windows按键会直接发送Command_R按键事件。上面配置将单击Windows按键映射成了Launchpad事件。另外,我还将长按这个按钮定义成了Command+Tab键(就是Mac上的窗口切换功能),不过这个体验并不是非常好,大家可以自行尝试其他组合。

另外,Sculpt鼠标上的后退键(鼠标侧键),相当于鼠标上的第四按钮。可以直接在“系统偏好设置”-“Mission Control”中配置“Mission Control”为“鼠标第4键”就行了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 matplotlib 的 event handling 来实现曲线上点击鼠标显示自定义标注的功能。具体步骤如下: 1. 导入必要的库和数据: ```python import numpy as np import matplotlib.pyplot as plt # 生成数据 x = np.linspace(0, 2*np.pi, 100) y1 = np.sin(x) y2 = np.cos(x) ``` 2. 创建一个 figure 和两个子图,并画出两条曲线: ```python # 创建 figure 和两个子图 fig, (ax1, ax2) = plt.subplots(2, 1, sharex=True) # 在第一个子图上画出第一条曲线 ax1.plot(x, y1) ax1.set_ylabel('sin(x)') # 在第二个子图上画出第二条曲线 ax2.plot(x, y2) ax2.set_ylabel('cos(x)') ax2.set_xlabel('x') ``` 3. 定义一个函数 `on_click`,用于处理鼠标点击事件。在该函数中,首先获取当前鼠标点击的坐标,并将其转为数据坐标。然后根据数据坐标找到最近的点,并在该点上添加一个文本标注: ```python def on_click(event): if event.inaxes is not None: ax = event.inaxes x, y = event.xdata, event.ydata index = np.argmin(np.abs(x - xdata)) x_near, y_near = xdata[index], ydata[index] text = ax.text(x_near, y_near, f'({x_near:.2f}, {y_near:.2f})', fontsize=10, ha='center', va='bottom', color='red') fig.canvas.draw() ``` 在该函数中,`event.inaxes` 表示当前鼠标点击的坐标所在的子图对象,如果为 `None` 则表示鼠标点击位置不在任何一个子图对象上。`event.xdata` 和 `event.ydata` 分别表示鼠标点击位置的横坐标和纵坐标,需要将其转为数据坐标。在这里我们没有保存每个子图对应的数据集,而是使用了前面定义的 `x` 和 `y1, y2`,因此需要在函数中先将这些数据集取出来: ```python xdata, ydata = ax.lines[0].get_data() ``` 然后使用 `np.argmin` 找到最近的点的下标,再根据下标取出该点的坐标,最后在该点上添加一个文本标注。 4. 将 `on_click` 函数绑定到 figure 上的 `button_press_event` 事件: ```python cid = fig.canvas.mpl_connect('button_press_event', on_click) ``` 5. 运行程序并点击曲线上的点,可以看到在最近的点上添加了一个文本标注。此时如果再点击其他点,则新的文本标注会覆盖之前的文本标注。如果要保留之前的文本标注,可以将每个文本标注的对象保存在一个列表中,再在 `on_click` 函数中先清除所有的文本标注,再重新添加新的文本标注: ```python # 在程序开始时定义一个空的列表 texts = [] # 修改 on_click 函数 def on_click(event): if event.inaxes is not None: ax = event.inaxes x, y = event.xdata, event.ydata index = np.argmin(np.abs(x - xdata)) x_near, y_near = xdata[index], ydata[index] # 先清除所有的文本标注 for text in texts: text.remove() texts.clear() # 添加新的文本标注 text = ax.text(x_near, y_near, f'({x_near:.2f}, {y_near:.2f})', fontsize=10, ha='center', va='bottom', color='red') texts.append(text) fig.canvas.draw() ``` 这样就可以在曲线上保留多个文本标注了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值