不理解为什么 Linux 鼠标右键按下 弹出菜单..

2023-05-08 18:26:51 +08:00
 xifangczy

在 mac os 和 linux 中 都是按下右键(mousedown) 即弹出菜单. 而 windows 中就是 右键松开才开始弹出菜单(mouseup).

不明白为什么要这么设计,我唯一能想到的是 按住右键 然后移动到想要的选项 松开 完成一次菜单选择.但是有什么意义?

这个问题甚至在早期还有一些奇怪的 BUG( https://bugs.launchpad.net/ubuntu/+source/gtk+2.0/+bug/410636) 由于菜单离鼠标比较近 菜单一个选项和鼠标位置刚好有几像素重叠, 你完成整个 click 操作后默认就选择了菜单第一项. 为了解决这个问题,他们把菜单离开鼠标几个像素....都这样 都不改松开出菜单?

有人说有一个发行版 ZorinOS 特点是模仿 windows 的操作习惯 只有这个发行版解决了这个问题.

4519 次点击
所在节点    Linux
49 条回复
zoharSoul
2023-05-08 22:41:04 +08:00
@xifangczy #19 我怎么还是看不懂...

而 windows 中就是 右键松开才开始弹出菜单(mouseup).
不明白为什么要这么设计(这句话中的设计, 指的是上面那句吧? 就是 win 的, 右键松开才弹出

是这个意思吗?
Finnn
2023-05-08 22:48:11 +08:00
@xifangczy 拖拽在哪里都是左键的功能,怎么到你这非得右键了
Linux 下框选要干什么呢, 系统本就没这个功能定义
cnbatch
2023-05-09 00:21:19 +08:00
OP 不如使用补充功能讲清楚到底哪个不适合

根据这么多的讨论,我猜测如下——


Linux & macos 式右键( mouse down 就跳菜单)可以实现以下功能(感谢 @NoOneNoBody 提醒):
按住右键→跳出菜单→光标移到任意菜单项→松开右键→系统执行菜单项功能

OP 认为,这个使用方式毫无意义。


Windows 式右键( mouse up 跳菜单)可以实现以下功能:

1. 按住右键,拖拽多选一堆文件,松开后可以自动跳出多选后的右键菜单,而不需要左键多选再右键
2. 选中单个或多个文件,右键拖到某个位置,松开,自动跳出右键菜单
3. 对于浏览器鼠标手势十分友好

对于 1 ,压缩文件时比较方便。
对于 2 ,适合压缩以及解压文件。说起来,这个我有时也会用到,比如把某个 7zip 压缩包解压到另一个文件夹(开两个窗口,或者左侧“此电脑”目录树打开),用右键拖拽解压确实比较方便,既不需要复制或移动后再解压,又不需要打开命令行敲命令)。还有打包一堆文件时也会用到,可以直接创建到目标文件夹,而不需要打包完再剪切粘贴。

OP 认为应该采用 Windows 式右键更合理。

是这样吧?
cnbatch
2023-05-09 00:25:37 +08:00
@zoharSoul
@Finnn
看来看去,似乎 OP 是想说:“我想要 Linux 使用 Windows 式右键方案,因为对浏览器手势更友好”
而 OP 在顺着思路写的时候,可能没来得及整理好内容就发了出来,造成了歧义(我都觉得第二段的表述模棱两可)
aloxaf
2023-05-09 01:46:39 +08:00
探究了一下这个问题。首先最早似乎是 GTK 这么干的,官方认为这种设计并没有问题,因为当你点击右键时,你肯定是要选择某一项,所以这种设计可以为你节省一次点击(真是 Geek 风的设计理由……)
然后 Gnome 是基于 GTK 的,并且 Gnome 当时是 Linux 第一大桌面,所以大家就都继承了这个行为……


吐槽一下,这种问题吧,我认为可以探究,但实在没有纠结的必要。因为真的并不是每一个设计都是深思熟虑的,尤其是历史悠久的设计。大概率当初设计这个的程序员觉得没啥问题,然后就一直传承下来了,传承久了就不好改了。这类问题在不同操作系统中都普遍存在,比如我也可以问:
- Windows 下的路径为什么要用 \ 来作为分隔符,这种设计和主流转义符冲突,还逼得 cmd 和 pwsh 选用了其他的转义符,这种设计有什么意义?
- Windows 自带命令行工具为什么要用 / 来表示命令行参数,逼得路径只能用 \ 来表示?
- 为什么 Windows 文件名不能包含 \?*<":>,微软程序员不会转义吗?
- 为什么 win32 API 要分 A W 两套,而且内部使用 UTF-16 而不是 UTF-8 ?
- 为什么 Windows 要将硬件时间视为本地时间,这样切换时区的时候硬件时间也要变更?
……
terence4444
2023-05-09 01:58:10 +08:00
我用了那么久都没发现这个问题,右键框选拖拽其实是伪需求。可能手势会有影响。
tin3w5
2023-05-09 03:51:58 +08:00
这个问题完全没意义啊!人家就是那么设计的,你感觉不妥,你可以加入他们的 mail thread 、去提 issue 或者自己做二次开发啊!你提的这个问题好比关公战秦琼,他俩不是一个时代的,没打过,咋能知道谁能打得过谁?又好比如果谭嗣同他们成功了,能不能避免入侵?当年变法成功,人家当初就那么选的,你在 V2 上问?你应该去问对应的桌面环境开发者,毕竟大清现在早没了,开发者还健在呢!
xifangczy
2023-05-09 05:21:30 +08:00
@aloxaf
是的 了解到是 GTK 的原因 我一直以来用的都是 gnome


@terence4444
也不是伪需求吧... 需要右键拖拽的地方都改过了, 比如 firefox 浏览器为了手势扩展, cad 软件 等等... 然后很多软件需要特殊拖拽操作使用比如 ctrl+左键的方式, 这时候右键可能更方便



七八年前用过一个鼠标 忘记啥牌子
可以自定义 按住右键的时候滚轮就变成音量调节... 这种操作方式简直完美, 换成其他鼠标始终找不到这种设置, 最后自己写了一个小工具模拟这个操作逻辑...
paranoiagu
2023-05-09 07:31:39 +08:00
你可以试试 Windows 下按下右键拖动后再放开
cnfczn
2023-05-09 08:30:07 +08:00
反正我是特别服气 windows 的右键菜单,系统用久了一按右键卡半天
zoharSoul
2023-05-09 09:41:33 +08:00
@cnbatch #24 还是需要你这样的解说侠, 我终于看懂楼主的意思了. 啧
U2Fsd
2023-05-09 09:42:54 +08:00
因为这些系统的开发者,并不使用鼠标手势。

也不关心使用鼠标手势的少数群体。
HeyWeGo
2023-05-09 10:03:54 +08:00
就像 29 楼那样的操作:按照右键拖动某个对象,到达目标位置后释放,出现菜单。windows 上我经常用,mac 上如何通过一个鼠标实现呢?
micromars
2023-05-09 10:23:44 +08:00
特意在 gnome 的桌面上试了一下,竟然发现之前不知道的功能, 长按鼠标右键是选择菜单,不选择也可以自动关闭菜单,感觉很好用
e7
2023-05-09 11:09:38 +08:00
为啥不做成 2 种方式都行,可配
ysc3839
2023-05-09 12:18:22 +08:00
@aloxaf Windows 的 Unicode 支持应该是经过深思熟虑的,因为很多老旧软件不支持 Unicode ,所以要保留一套非 Unicode 的 API 。至于 UTF-16 ,是因为当时还没有 UTF-8 ,同时代的其他系统,如 Java 或 NextSETP 也是使用 UTF-16 。
yuruizhe
2023-05-09 12:29:36 +08:00
@ysc3839 你不说我都没发现。。。大多数时候,都是左键选中再右键,这个快捷方式似乎被忽略了~
winterbells
2023-05-09 12:32:19 +08:00
一开始我也不知道,只是觉得好像鼠标有什么毛病,每次都自动点了第一个
iloveayu
2023-05-09 12:39:36 +08:00
Windows 得考虑防误触吧,毕竟用户多,很多带 GUI 的工业 /行业软件也在跑。
yulon
2023-05-09 12:47:09 +08:00
@aloxaf W 其实是 USC-2 ,只是现在为了方便都当它是 UTF-16

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/938355

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX