# mm **Repository Path**: zhengyitian/mm ## Basic Information - **Project Name**: mm - **Description**: 另一种鼠标使用方式 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-11-12 - **Last Updated**: 2024-11-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README mm.py 使用说明 windows中,管理员运行PowerToys,将数字键盘除enter外的键和caps_lock scroll_lock pause设置为disable, 将数字键盘enter键设置为Undefined 用XMouse软件,将鼠标的前进、后退键设置为disable。 准备一个55mm直径kensington 轨迹球鼠标(最好有实体滚动轮),放左手边,左下按键设置为后退, 右下按键设置为前进,左上按键设置为ctrl+ctrl 一个外接数字小键盘,放左手。 右手可以使用普通鼠标,如果有多余按键,可以设置为scroll_lock,后退等。 安装 pyqt5 pynput win-raw-in 等。 win-raw-in运行会报错,按照test_winrawin.py中的说明修改,test_winrawin.py用来测试win-raw-in是否正常。 用管理员运行mm.py 需要修改的配置:屏幕起点和分辨率(支持多屏),最多显示数字坐标个数和长度;数字坐标间最小距离。 其他显示元素的大小,坐标长度变化速率等参数也可修改。 说明: 回车、数字键等指的是数字键盘的按键。 程序区分左右手鼠标,启动程序后,先移动左手的鼠标。 程序的基本逻辑是:计算当前鼠标位置和起始位置的差异,用数字键盘输入数字(可带小数点),将鼠标移动差异的倍数。 输入倍数,按回车或+,鼠标箭头将移动,并且重置鼠标起始位置。倍数的处理见change_sum函数。 提示窗口显示的内容:相对与起始位置的位移,上次的位移。 如果没有位移,输入数字后按回车,将移动上次位移的倍数,倍数的处理见change_sum函数。 如果不输入数字,回车将本次位移变为上次位移,0的时候再按0,重置起点,不修改上次位移。 数字坐标显示:分为满长度显示和定长显示。定长显示下,会隐藏某些坐标。重置初始位置后,不显示数字坐标, 通过起手方法或按键,可开启定长显示,初始时,定长长度为一个坐标。数字为0时,+可以在定长和满长度间切换。 起手方式:短距离移动左手鼠标,再反方向移动右手鼠标。或短距离移动左手鼠标,停顿,再同方向短距离移动左手鼠标, 再同方向移动右手鼠标。 强制显示数字坐标:按后退,再移动鼠标。在显示时,按后退,可取消显示。 调整定长长度:①滚轮 ②按住前进或后退,移动鼠标。③反方向同时移动左右手鼠标。 同时按前进后退,补全隐藏的坐标。 鼠标移动到最后一个坐标:连击ctrl(之前配的左手左上键),scroll_lock。 删除数字:/删一个,num_lock,全删 固定数字坐标:后退键(可选坐标需大于1个,否则移动至终点)。 固定后,调节目的点:①滚轮②按住前进或后退,移动鼠标。③后退键。④数字键盘和* + 数字为空,按回车,取消固定;按其他无效键,取消固定并不再显示坐标。 按后退键或scroll_lock,鼠标移动至目的点。数字不为0时,按回车也可移动。 移动并点击:输入数字后,按-,将移动到目的位置,再点击: 用鼠标触发移动:输入数字后,短距离移动鼠标,停顿,将触发鼠标箭头移动。 不捕捉滚轮:按住前进、后退键或enter,滚轮对程序不生效,输入到系统。 角度微调模式:按/,实际角度是鼠标移动的角度乘以微调倍率。按0变换锚定点,连按两下0,取消角度微调模式。 单步模式:按num_lock,数字键盘按键控制单步移动。12346789向各方向移动,5增大步长,.减小步长,0重置步长。 *进入单步倍数模式,输入数字,回车,移动上次单步的倍数。+,按数字,移动此数字倍数的上次步长。 数字如果是0.开头,反方向移动。单步模式会在提示窗中显示。方向箭头是上次的移动方向。 连按两下.:切换是否显示数字坐标。 鼠标漂移:不显示数字坐标情况下,同时移动左右手鼠标,将产生鼠标随机漂移。设计的初衷是:快速移动鼠标时, 不要紧盯着鼠标箭头。 命令模式:cltr+scroll_lock,单步模式下按scroll_lock,回车+5 进入命令模式。命令模式下按num_lock进入 设置点位模式(set_mode)。在设置点位模式,按0~9或.,把当前鼠标点位记录。在命令模式下,按0~9或.,鼠标移动到之前设置的点位。 按数字,再按pause,鼠标移动到点位,并且点击(0.开头或.结尾,不点击)。 双击:数字为0时,按pause 绝对定位:按住左alt,输入x方向决定坐标(右alt输入y方向),(当前屏幕的起始点为(0,0)),-为负值,+变化xy方向, 松开alt,鼠标移动。 若数字以.结尾,则把下一块屏幕的起始点当作(0,0)。若数字是0.0,则移动到下一块屏幕相同位置。 如果alt_fix_y设置为true,屏幕间移动保持y方向不变。 也可以先输入数字,再按alt。按alt后也可以按下ctrl再松开(单按alt对其他程序可能有影响)。 按alt前,如果数字0.开头,0.相当于负号;以.0结尾,也相当于负数。 相对坐标移动:输入12346789方向,再输入移动像素值,按左ctrl,如果把方向键放后面,则需按右ctrl。 按ctrl后也可按下alt(单按ctrl对其他程序可能有影响) 单步模式下与ctrl,alt的配合:单步模式下,按住ctrl,进入单步*模式,松开ctrl,输入的倍数生效。 非单步模式,按住ctrl进入单步模式,再按住alt,进入单步*模式,松开alt,输入的倍数生效。 同时按住ctrl、alt时,如果需要输入.,输入*。 重新设置左右手坐标:命令模式下按/ 定长坐标长度调节:输入数字,按*,显示到此数值的坐标。0.开头,按*,增加0.后数的坐标个数(.结尾,同样)。 输入数值,按前进,减少坐标个数。输入数字按scroll_lock,增加此像素值的长度,0.开头按scroll_lock,减少此像素值。 按住回车,输入方向(12346789),开启指向此方向的定长模式,按住+,输入方向,开启此方向的全长度模式。 输入数字后,可直接连接下一次此操作。 caps_lock:按住和释放左键。 scroll_lock+caps_lock,提示窗移动到鼠标位置,scroll_lock+回车,鼠标移动到提示窗位置。 长时间无操作,程序自动退出。默认10分钟。 提示窗右击,隐藏,中键,关闭程序。托盘,左击,隐藏,右击,关闭程序。enter+*,关闭程序。 scroll_lock:范围移动。按住scroll_lock,屏幕最左侧为0,最右侧为9,输入数字,在x方向移动。支持小数。 +切换x、y方向。*切换屏幕。 在不显示坐标时,也可先输入数字(小于100,或为特殊格式数字,见is_ff函数),再按scroll_lock。 对数字的处理见change_sum_10函数。 按住enter组合键:.不显示鼠标提示点。+关闭定长显示。-定长模式时不显示鼠标提示点。0不显示坐标。*退出程序, /重置左右手鼠标。 命令模式下:+-功能和enter组合键一样,*不显示鼠标提示点。 一键设置坐标长度:数字为0时,按*或前进,或按完此两键再连击ctrl或按scroll,可设置坐标长度。 见ge_add_xing,get_ge等函数。 未显示坐标时也可以生效,并且会开启强制显示。 在只显示一个坐标时,可以用+ 前进强制显示全。在显示全前,按-,可以强制不显示全,必须按+ 前进才显示。 如果没有开启一键设置,显示坐标后,数字为0时按*,增加一定数量的坐标个数。 调节坐标角度:数字为特殊格式时(见is_ff函数),按+ - enter,旋转坐标。enter顺时针,+ -逆时针。 滚轮速度模式有两种,模式①一次只移动一个坐标,模式②一次移动固定像素长度。 在初始时,左手滚轮进入模式①,右手滚轮进入模式②。 用反向移动鼠标和按住前进后退的方式调节坐标长度后,重置为初始模式。 数字为0,并显示坐标时,并且-不符合其他情况,-可以调节滚轮速度模式。 其他的操作: 输入数字,按后退,相当于按回车 如果没显示坐标,输入数字(大于100),按scroll_lock,开启强制显示(右手鼠标按键可配置为输入数字再输入scroll_lock)。 三连击后退键:隐藏提示点 某些情况下,*和后退功能相同。 双击scroll_lock,隐藏提示窗 数字是0.0,按*,不捕捉滚轮 enter+caps_lock,进入set_mode 按住enter移动鼠标,也可调节坐标长度,与按前进、后退不同的是,不能强制显示坐标。 未完待续。 #################### #################### #################### 后面是以前写的,可能不对了。 模式介绍: 是否显示数字坐标:开启则可以显示数字坐标,提示移动倍数位置差后的目的在哪里。 单步移动模式:数字1~9(不含5)控制单步移动,不修改倍数数字。 角度微调模式:会固定角度起点, 精确点位移动:ctrl+数字键盘enter或单步模式下按数字键盘enter,再按num_lock,再按0~9或.,记录此时的鼠标位置。 ctrl+数字键盘enter单步模式下按数字键盘enter,再按0~9或.,将鼠标移动到上面记录的位置。 提示窗口: 程序会显示一个提示窗。 内容为:倍数数字、目标方向、角度微调速率、单步移动速度和是否开启单步移动模式、是否显示数字坐标、是否按住了左键。 在窗口上左键拖拽可移动窗口,点右键隐藏,点中键或alt+f4退出程序。 系统托盘: 若配置了系统托盘图标,会显示系统托盘。在系统托盘上点左键,会隐藏或显示提示窗,点右键退出程序。 按键功能: 三连击后退键:隐藏提示点 enter+.:隐藏提示点 enter+(+):关闭/打开单坐标提示 enter + (*):关闭/打开 左边提示点 enter+0 :清零。 单步模式下:enter进入cmd模式 cmd模式:-切换指示坐标显示规则,*切换是否显示鼠标提示点 enter+.:切换是否显示指示坐标 pause+caps_lock:移动提示窗口当前鼠标位置 num_lock:切换单步移动模式。1~9(不含5)产生单步移动,0、5、. 调节单步速度。 若按num_lock时倍数数字不为0,相当于进行了下列操作: 开启单步模式,重置速度,逐个输入倍数数字(.后的0当.处理),关闭单步模式。 /:倍数数字不为0时将倍数数字清零。倍数数字为0时,开启角度微调模式或者调节角度微调速率。 0:当倍数数字为0时,重置起始位置。角度微调模式时,重置角度起点,若起点重合,退出角度微调模式。 .:连击,变换是否显示数字坐标。 按住ctrl:1~9(不含5)产生单步移动,0、5、. 调节单步速度。 单步移动时若按住alt会开启单步移动模式。 *:若处于显示模式,关闭显示模式;若不处于显示模式,重置起始位置,开启显示模式。 -:数字为0,左键;数字不为0,移动到位置,左键 数字键盘enter:移动并重置。如果数字为0,开启显示模式,否则关闭。 +:若数字为0,开启显示。不为0,同enter 物理鼠标:数字不为0时移动鼠标,让程序识别出鼠标移动中的停顿(比如移动一小段距离后停住鼠标), 会在鼠标移动停顿后,将鼠标箭头移动至目的位置再加上停顿前的移动距离。 程序内部会区分鼠箭头的移动是真实鼠标产生的还是移动了倍数位置差产生的。 单步移动模式下的单步移动,程序会当作真实鼠标移动处理。 点击鼠标会重置起始位置。 scroll_lock:左键双击 pause:双击隐藏或显示提示窗。 按住pause,0~9和. 为单步移动,并且/相当于2,*相当于6,num_lock相当于. 按住pause,-为鼠标右键,+为鼠标中键,数字键盘enter将鼠标移动到提示窗口。 左ctrl:双击效果同* 。可以映射成一些轨迹球鼠标的按键。 ctrl+数字键盘enter单步模式下按数字键盘enter,再按+:切换点击鼠标后是否开启显示。 可调参数: 见代码文件开头的说明。 推荐的使用方法: 可准备一个外接数字小键盘,左手操作。右手可用多按键鼠标,将按键映射为数字键盘的 enter和*。可关闭鼠标加速。 另外,无论是否使用本程序,左手可放一个55mm直径轨迹球鼠标。大范围移动鼠标时,左右手一起用, 小范围移动时只用右手鼠标。 左右手一起移动鼠标时,可通过程序(mouse_flow.py)让鼠标产生小的随机漂移效果。