[中秋节发月饼] 深度终端内测啦!
Tofloor
default avatar
186******98
deepin
2013-09-19 02:16
Author
《深度终端诞生记》(2013-09-19)

深度终端诞生导火线

我记得一个月前, 我们在周三用户反馈的例会上查看用户新报的反馈, 不止一个用户抱怨新的 gnome-terminal 背景不能透明了, 但是原来的老版本是可以的。

终端透明是一个非常有用的功能, 有时候在网上找到有用的教程, 这个时候就需要开一个终端试一下, 透明的目的就是打开终端的同时可以看到浏览器页面的内容, 这时候我们可以一边看网页内容, 一边在终端中输入内容, 而不是为了看网页内容反复在网页和终端之间切换。

我不知道Gnome团队到底是为了什么原因去掉背景透明这个功能, 每一个软件不管它有多少功能, 但是如果核心功能不够好, 用户就不会喜欢,同样背景透明作为终端爱好者都是必备的一个功能就这样随性的被去掉, 完全不是技术问题。

其实从Gnome3开始, 我感觉Gnome团队不再是原来的Gnome团队, 原来的gnome团队虽然不够华丽, 但是很简洁, 功能很细心, 每个版本在保持稳定的同时总是添加一些贴心的小功能。Gnome吸引大家的就是简单、稳定、贴心小功能逐渐累积, 越用越舒服。 但是现在的Gnome团队除了追求新的设计, 完全不考虑新的设计是否用户真的喜欢, 或者gnome现在就是为了不同而不同?最让人气愤的是, 把十几年积累的各种贴心设置随性的抛弃, 完全不考虑忠实用户的感受。

而我早已经厌倦这样回答用户:“这是上游的bug, 请你报告给上游, 我们现在修复不了”。我同样也厌倦了这种随性的反复改, 新版本不是更稳定了, 而是又有新的问题。 为了让用户开心, 为了一劳永逸的解决问题, 我决定重新写一个终端来解决用户的问题。

深度终端重写的必要性

但是在写之前, 我首先要问自己一个问题:“究竟有哪些功能值得我们重新写一个?”, 是的如果重写只是和现有终端的功能一样, 我们完全没有必要重写。

接下来我就开始思考深度终端应该具备哪些功能?下面是当时我写深度终端定下来的目标:

1. 背景透明调整 (这个必须的)

2. 自定义字体和字体大小

3. 自定义颜色方案

4. 自定义快捷键

5. 自定义 shell 命令

6. 自定义光标形状

7. Ctrl + 左键打开当前光标处的连接地址

这些其实都是大部分终端都有的功能, 那么深度终端要实现哪些新的功能呢?

1. 分屏功能:

    当前终端正在运行命令的时候, 为什么我需要开一个标签处来开一个新的标签来处理新的任务?其实大部分我们就希望在当前窗口分一个临时的窗口来处理新的任务, 如果新的任务处理完了就关闭临时分屏窗口, 分屏的好处是对于一个多任务码农来说, 我们能同时监控几个任务的执行, 而不是要在几个标签中来回切换, 一旦标签多了, 我们还需要用人脑来记住那个标签里面是什么。 程序是用来帮用户记忆的,而不是让用户浪费脑细胞去记忆标签。 深度终端就可以按 Ctrl + v / Ctrl + h 来自由的纵向/横向分屏了,当然是可以通过 Alt + j/k/h/l 快捷键自动聚焦到不同的终端。 分屏的新终端自动克隆当前的工作目录, 省得用户再敲一遍cd命令, 如果当前目录很长, 敲cd加各种tab键补全也是非常痛苦的。当然对于很多运维人员来说, 如果需要在新终端中指定特定的目录, 也可以简单定制启动目录选项。

2. 工作区切换

   工作区的目的就是把几个类型不同的终端放在一起好方便切换。现有的终端的工作区就是开一个新的标签, 比如 '工作区1', '工作区2' , '工作区3'  .... , 这里我们就要思考了? 如果我们开了很多工作区, 比如我们建立5个工作区, 在我们真正点击标签的之前, 我们是不知道标签下的工作区究竟是哪一个类型的工作区, 人都是健忘的。 是不是经常有这种体验? 在非常忙碌的情况下, 想切换到刚才工作的工作区看看进度怎样的时候, 忘记究竟是哪个工作区, 这个时候我们就点击一个标签看一下是不是我们要的内容, 不是, 点击下一个, 还不是, 再继续点击下一个,还不是, 再继续 ... 工作区越多我们就越记不住, 就浪费了很多时间在做不确定的标签切换动作。有人会说, 给标签重命名, 但是工作区新开的目的每天都会不一样, 如果每次新建工作区我都需要想一个名字是不是也很不科学呢?其实我们切换终端的时候, 就应该像我们按 Alt + Tab 切换程序窗口一样, 我们虽然不知道下一个工作区是什么, 但是我们可以把所有工作区的截图展示出来, 人记忆图像的能力远远好于记文字, 我们通过所有工作区的截图可以快速判断出我们想切换的工作区, 直接选择就可以了, 这样整个动作流程就是连贯的, 直观的, 快速的。比如, 我要切换到 vim 标签, 只需要瞄一下哪个截图像 vim 的图形特征就可以直接切换过去, 比如我要切换到更新源终端, 直接看一下截图是否有服务器一屏服务器地址列表就知道了。 所以深度终端添加了工作区截图预览的功能, 用图让用户快速切换到自己想要的工作区, 节省用户的时间。在深度终端中, Ctrl + / 新建工作区, Ctrl + , 和 Ctrl + . 就可以快速的切换工作区。

当然鼠标党也可以体验用鼠标选中工作区和动态添加工作区。

3. 方便的 SSH 管理工具

   运维大大们天天要维护各种服务器, 每种服务器有各种不同的登陆信息, 如果超过几十个, 每次都要人工记忆对于运维大大们真的非常枯燥, 而且在长时间疲劳的情况下, 还容易敲错, 一旦远程服务器操作失误后果大家都懂的。 所以深度终端加入了简单方便的远程登陆管理功能, 你只需要新建一个 SSH 连接, 只用填写一次服务器登录信息, 然后直接点击就可以连接并自动帮你回答密钥yes并自动填写密码。下次再打开终端的时候只用点击”连接“就可以了, 脑子再也不用塞那么多服务器信息了。

4. 定制启动窗口的方式

   一般终端都是启动一个小的窗口, 但是很多高手很喜欢在终端启动以后按 F11 全屏工作, 我就在想, 那些高手要花多少时间浪费在 F11 上?所以深度终端添加了 ”启动方式“ 的选项, 默认是 ”正常窗口“, 你可以选择 ”最大化启动” 还是 “全屏启动”, 再也不用每天都要按一下 F11.

5. 简单的设置

   即使是终端这么专业的工具, 大多数用户第一次看到那么多设置都不一定会用。

比如 "单词选中正则表达式“, 对于很多不精通正则表达式的人来说, 这个选项开了就会导致选词错误。 所以深度终端归纳了3中简单的设置:

    1> 简单的配置喜欢的字体、颜色、以及透明度

    2> 自定义快捷键

    3> 针对高级用户, 自定义shell, 启动目录设置, 滚动设置

6. 实时调整背景透明度

    很多终端调整透明度的时候, 都不能实时的反馈用户调整的透明度, 就拿做的比较好的 terminator 来说, 每次调整透明度的时候都需要先让用户调整以后, 只有关闭设置窗口的时候才生效, 一会透明度调高了或者调低了, 都需要又一次让用户再次打开设置窗口调节, 用户需要猜想 0.7 和 0.5 的透明效果。 所以深度终端修改了底层的 vte 控件, 让深度终端在调节透明度的时候, 所有终端自动实时变化, 用户可以直观的感受透明度的调整, 当然如果你只是想调整背景透明度, 完全不用进设置界面, 直接 Ctrl + 鼠标滚轮就可以实时调整。

7. 快速调整字体大小

   当我们在投影分享我们终端内容的时候, 经常因为终端的字太小观众看不到。 深度终端中,只需要按 Ctrl + - 和 Ctrl + = 就可以调整字体的大小, 当然随时要恢复默认, 直接按 Ctrl + 0 就可以了。

8. 快捷的搜索

    在深度终端中只需要按 Ctrl + ' 就可以在顶部显示一个搜素工具条, 在工具条中敲击的时候, 光标会自动定位到第一个搜索到的位置, 然后接下来直接按回车就会继续跳到下一个搜索位置, 就是这么简单。

9. 支持文件拖拽

   只需要打开文件夹拖动文件或者目录到终端, 终端自动会把拖拽的文件路径插入, 再也不用敲打超长的路径。

10. Ctrl + 左键智能地做正确的事情
     比如当光标停留在连接 http://www.google.com 的时候, 按住 Ctrl + 左键可以打开浏览器
     比如当前光标的是文件, 用文件管理器打开
     比如当前光标处是命令, 自动打开一个终端显示 man 的内容

11. Quake 模式
      发布的时候按 F12 就可以一键显示和隐藏终端了。
      现在可以绑定按键到 ./deepin-terminal/src/main.py --quake-mode

      交互细节:
      1) 如果quake窗口没有启动, 创建一个
      2)   如果quake窗口当前聚焦, 在按一下 f12 自动隐藏
      3) 这点很关键, 如果 quake 窗口显示着但不是在最顶部聚焦, 按 f12 不会隐藏, 而是直接跳到最上面, 因为这时候用户希望快速调出来, 而不是要先隐藏再显示按两次 f12

12. 快速切换到当前终端运行的调试程序窗口
      开发人员一般都会在终端中启动一个 GUI 程序进行测试, 有时候开了太多的终端和测试窗口, 然后在 Alt + Tab 中查找由当前终端打开的窗口非常麻烦, 特别是几个终端打开的窗口类似的时候。 深度终端中只有按 Ctrl + 8 就可以自动查找到当前终端相关联的GUI窗口并自动显示到最前面, 方便开发人员快速找到调试窗口。

13. 快速关闭当前工作区的其他终端
      有时候开太多终端, 需要关闭其他终端, 不可能切换到每一个其他终端然后进行关闭。
      在深度终端中只需要按 Ctrl + Shift + Q 会自动关闭其他终端。

14. 坑爹, 我记得这个功能的快捷键是什么呢?

   一个强大的终端需要很多快捷键才能高效工作, 但是快捷键太多都记不住, 每次都需要打开设置界面看, 太慢了。 在深度终端中, 只需要按 Ctrl + ? 就可以显示所有快捷键, 你其实只用记住 Ctrl + ? 就可以了, 等手指肌肉记忆形成以后, 就不用再想快捷键了。

交互小细节, 只要松开按键, 快捷键窗口会自动消失, 或者点击窗口任何位置都会消失。

深度终端内测版提前体验:

1. Linux Deepin 用户只需要更新系统以后执行下面命令就可以体验了:
    sudo apt-get update && sudo apt-get install python-vte

    git clone https://github.com/linuxdeepin/deepin-terminal.git && cd ./deepin-terminal/src && ./main.py

2. 非 Linux Deepin 的用户需要:

   1> 安装 deepin-ui

    2> 安装 Deepin 仓库的 vte 库(添加了支持搜索和背景实时透明的补丁)

          先下载这个目录下所有的 deb 包 http://packages.linuxdeepin.com/deepin/pool/main/v/vte/

          然后执行

               sudo dpkg -i ./*.deb

    3> 安装深度终端

         git clone https://github.com/linuxdeepin/deepin-terminal.git && cd ./deepin-terminal/src && ./main.py

现在只是功能开发完成, 但是国际化和UI美化都还没有做, 今天是中秋节, 先发一个内测版给大家尝鲜吧, 等国际化和UI美化完成以后会直接替换 gnome-terminal 并通过软件中心安装。

在正式版之前相关的功能会快速开发, 在测试git之前请先删除原先的配置文件:

rm -r ~/.config/deepin-terminal/

下面是深度终端的一些截图:
Reply Favorite View the author
All Replies
...7 / 7
To page
186******98
deepin
2013-11-29 09:43
#121
本来想试试装上看看的,但是一发现那么多依赖就算了,这个比较蛋疼……

首先,表示非常喜欢这个终端的,支持一下作者。不过我发现这些功能其实有一部分有现成的解决方案的,我简单介绍一下我所知道给作者分享一下吧,希望我不至于太火星吧。

我的方案是 xfce4-terminal + tmux + zsh
1. 背景透明调整 (xfce4-terminal自带的,还是实时的哦)
2. 自定义字体和字体大小(必须的)
3. 自定义颜色方案(必须的)
4. 自定义快捷键(zsh和tmux解决)
5. 自定义 shell 命令(这个不是靠alias的么?)
6. 自定义光标形状(必须的)
7. Ctrl + 左键打开当前光标处的连接地址(必须的)
8. 分屏功能(tmux解决)
9. 工作去切换(tmux解决,但是预览的话做不到,切换来切换去很烦人的)
10.ssh管理工具(靠zsh的自动补全,但是还是要输密码。我一般都是通过密钥认证登陆的)
11.定制启动窗口方式(xfce4-terminal价加个参数啥的就行了)
12.简单的设置(这个设置就真没办法简单了……)
13.快速调整字体大小(这个不知道唉,没试过……暂且算没有吧)
14.快捷搜索(tmux解决)
15.文件拖拽(这个不是连cmd那种垃圾都能做到么?)
16.Ctrl+左键(打开个链接还是能做到的……其他的做不到)
17.GUI调试(那个做不到)
18.快捷关闭其他终端(tmux解决)
19.快捷键(主要是tmux的快捷键 ? 就好)

先简单介绍一下我所用的终端:xfce4-terminal

下面是 xfce4-terminal --help的节选。
Usage:
  terminal [OPTION...]

General Options:
  -h, --help; -V, --version; --disable-server;
  --default-display=display; --default-working-directory=directory

Window or Tab Separators:
  --tab; --window

Tab Options:
  -x, --execute; -e, --command=command; -T, --title=title;
  --working-directory=directory; -H, --hold

Window Options:
  --display=display; --geometry=geometry; --role=role;
  --startup-id=string; -I, --icon=icon; --fullscreen; --maximize;
  --show-menubar, --hide-menubar; --show-borders, --hide-borders;
  --show-toolbars, --hide-toolbars

See the terminal man page for full explanation of the options above.

看过上面的的这个帮助文件应该不难看出了,初始化窗口完全可以用参数来设置
比如我的 t 绑定的命令是 xfce4-terminal --hide-menubar -x tmux -2。
希望启动的时候有那些选项在后面加参数就是了,比如希望启动就全屏,那就用 --fullscreen 参数启动,希望用什么什么工作目录启动就 加上--working-directory=directory

tmux是一个很强大的终端复用工具大家应该都听过,而zsh是一个很强的终端。网上有大量的介绍这两个货的文章。简单的介绍就是,分屏和多工作区都能用tmux实现,而且当终端意外关闭是,tmux的会话是可以恢复的,这是普通终端做不到的。并且tmux可以在tty下工作。对于我这种低端玩家来说,就是一直吧tmux当一个命令行下的窗口管理器。

zsh是一个非常强的终端,具体有多强大我也说不出来。反正我只会用他强大的命令补全,参数补全,自动纠错等功能。具体的还是自行查找资料吧,我也没折腾的太多。
最大的问题是如果要一般终端用户体验分屏和工作区, 他们没有必要折腾和配置 tmux, 拿来就可以用, 这是为什么开发这些功能的原因。

不管内在功能多么强大, 最快速度看了快捷键上手才是王道。
Reply View the author
brambles
deepin
2013-11-29 13:30
#122
[quote]本来想试试装上看看的,但是一发现那么多依赖就算了,这个比较蛋疼……

首先,表示非常喜欢这个终端的,支持一下作者。不过我发现这些功能其实有一部分有现成的解决方案的,我简单介绍一下我所知道给作者分享一下吧,希望我不至于太火星吧。

我的方案是 xfce4-terminal + tmux + zsh
1. 背景透明调整 (xfce4-terminal自带的,还是实时的哦)
2. 自定义字体和字体大小(必须的)
3. 自定义颜色方案(必须的)
4. 自定义快捷键(zsh和tmux解决)
5. 自定义 shell 命令(这个不是靠alias的么?)
6. 自定义光标形状(必须的)
7. Ctrl + 左键打开当前光标处的连接地址(必须的)
8. 分屏功能(tmux解决)
9. 工作去切换(tmux解决,但是预览的话做不到,切换来切换去很烦人的)
10.ssh管理工具(靠zsh的自动补全,但是还是要输密码。我一般都是通过密钥认证登陆的)
11.定制启动窗口方式(xfce4-terminal价加个参数啥的就行了)
12.简单的设置(这个设置就真没办法简单了……)
13.快速调整字体大小(这个不知道唉,没试过……暂且算没有吧)
14.快捷搜索(tmux解决)
15.文件拖拽(这个不是连cmd那种垃圾都能做到么?)
16.Ctrl+左键(打开个链接还是能做到的……其他的做不到)
17.GUI调试(那个做不到)
18.快捷关闭其他终端(tmux解决)
19.快捷键(主要是tmux的快捷键 ? 就好)

先简单介绍一下我所用的终端:xfce4-terminal

下面是 xfce4-terminal --help的节选。
Usage:
  terminal [OPTION...]

General Options:
  -h, --help; -V, --version; --disable-server;
  --default-display=display; --default-working-directory=directory

Window or Tab Separators:
  --tab; --window

Tab Options:
  -x, --execute; -e, --command=command; -T, --title=title;
  --working-directory=directory; -H, --hold

Window Options:
  --display=display; --geometry=geometry; --role=role;
  --startup-id=string; -I, --icon=icon; --fullscreen; --maximize;
  --show-menubar, --hide-menubar; --show-borders, --hide-borders;
  --show-toolbars, --hide-toolbars

See the terminal man page for full explanation of the options above.

看过上面的的这个帮助文件应该不难看出了,初始化窗口完全可以用参数来设置
比如我的 t 绑定的命令是 xfce4-terminal --hide-menubar -x tmux -2。
希望启动的时候有那些选项在后面加参数就是了,比如希望启动就全屏,那就用 --fullscreen 参数启动,希望用什么什么工作目录启动就 加上--working-directory=directory

tmux是一个很强大的终端复用工具大家应该都听过,而zsh是一个很强的终端。网上有大量的介绍这两个货的文章。简单的介绍就是,分屏和多工作区都能用tmux实现,而且当终端意外关闭是,tmux的会话是可以恢复的,这是普通终端做不到的。并且tmux可以在tty下工作。对于我这种低端玩家来说,就是一直吧tmux当一个命令行下的窗口管理器。

zsh是一个非常强的终端,具体有多强大我也说不出来。反正我只会用他强大的命令补全,参数补全,自动纠错等功能。具体的还是自行查找资料吧,我也没折腾的太多。
最大的问题是如果要一般终端用户体验分屏和工作区, 他们没有必要折腾和配置 tmux, 拿来就可以用, 这是为什么开发这些功能的原因。

不管内在功能多么强大, 最快速度看了快捷键上手才是王道。[/quote]

虽然说上手的简单吧……但是确实个感觉……怎么说呢?耦合度太高了,于是便失去了灵活性的感觉。

感觉好像deepin开发的软件都是纯粹的gui交互式的,非常注重“普通用户”的体验,但是却完全没有办法成为管道的一环,也很难写进脚本里来进行自动的处理任务……

拿篇文章看,在你们开发这个终端之前,肯定没有想过其他终端会有所谓的“启动参数”这一说吧?不然也不至于会有“按F11”全屏浪费时间这一说。我不能理解的是难道没有人看看自己用的终端的手册么?

然后再说说深度截图。真的非常喜欢深度截图,用户体验真的非常非常棒,甚至可以说是在linux下用过的最棒的截图工具了,没有之一。但是问题同样的明显,依旧是纯粹的gui交互式界面,无法写进脚本里进行自动的截图处理。比如我需要为当前窗口每隔一秒截一张图,并且需要以固定的文件格式命名。这时候深度截图就几乎无法实现了。

但是非常简单的xfce4-screenshooter 却能轻松实现。下面是xfce4-screenshooter --help
Usage:
  xfce4-screenshooter [OPTION...]

Help Options:
  -h, --help               Show help options
  --help-all               Show all help options
  --help-gtk               Show GTK+ Options

Application Options:
  -c, --clipboard          Copy the screenshot to the clipboard
  -d, --delay              Delay in seconds before taking the screenshot
  -f, --fullscreen         Take a screenshot of the entire screen
  -m, --mouse              Display the mouse on the screenshot
  -o, --open               Application to open the screenshot
  -r, --region             Select a region to be captured by clicking a point of th
e screen without releasing the mouse button, dragging your mouse to the other corne
r of the region, and releasing the mouse button.
  -s, --save               Directory where the screenshot will be saved
  -u, --upload             Host the screenshot on ZimageZ, a free online image host
ing service
  -V, --version            Version information
  -w, --window             Take a screenshot of the active window
  --display=DISPLAY        X display to use

接下来是深度音乐。深度音乐也是非常好用,功能非常全的音乐媒体软件了。但是有时候需要在特殊的场景响应某些事件来 暂停/播放 音乐的时候。深度音乐就已经力不从心了……

同样的,轻量级的audacious就能轻松写进脚本里面进行事件响应。下面是audacious --help
Usage:
  audacious [OPTION...] - play multimedia files

Help Options:
  -?, --help                      Show help options
  --help-all                      Show all help options
  --help-gtk                      Show GTK+ Options
  --help-sm-client                Show session management options

Application Options:
  -r, --rew                       Skip backwards in playlist
  -p, --play                      Start playing current playlist
  -u, --pause                     Pause current song
  -s, --stop                      Stop current song
  -t, --play-pause                Pause if playing, play otherwise
  -f, --fwd                       Skip forward in playlist
  -j, --show-jump-box             Display Jump to File dialog
  -e, --enqueue                   Add files to the playlist
  -E, --enqueue-to-temp           Add new files to a temporary playlist
  -m, --show-main-window          Display the main window
  -v, --version                   Show version
  -V, --verbose                   Print debugging messages
  -h, --headless                  Headless mode (beta)
  --display=DISPLAY               X display to use

不过,作为一个用户。个人对这些产品都是非常支持的,但是依旧不是非常明白这些深度这些软件的定位是什么?就是仅仅是为了让真正的“普通用户”轻松使用么?
Reply View the author
136******54
deepin
2013-11-29 13:39
#123
不过,作为一个用户。个人对这些产品都是非常支持的,但是依旧不是非常明白这些深度这些软件的定位是什么?就是仅仅是为了让真正的“普通用户”轻松使用么?
应该是的,Deepin的目标就是让Linux更加普及,更加易用,让普通用户使用起来毫无困难
可能对于习惯使用脚本和命令行的高手,Deepin太傻瓜化了
Reply View the author
brambles
deepin
2013-11-29 13:57
#124
[quote]

不过,作为一个用户。个人对这些产品都是非常支持的,但是依旧不是非常明白这些深度这些软件的定位是什么?就是仅仅是为了让真正的“普通用户”轻松使用么?
应该是的,Deepin的目标就是让Linux更加普及,更加易用,让普通用户使用起来毫无困难
可能对于习惯使用脚本和命令行的高手,Deepin太傻瓜化了[/quote]

傻瓜化是好事,我写脚本的目的就是为了尽量少的接触命令行,尽量让繁琐的任务变得傻瓜化,变得能够“一键”解决。如果能够按一个按钮就能解决的问题还要跑到命令行下打一大串命令,那绝对是愚蠢。
Reply View the author
fredy4212
deepin
2013-11-29 21:35
#125
不知道:終端機捷徑鍵列表會因為終端機視窗不在中間而顯示不完全的Bug修了沒?
Reply View the author
186******98
deepin
2013-11-29 22:47
#126
不知道:終端機捷徑鍵列表會因為終端機視窗不在中間而顯示不完全的Bug修了沒?
git 已经修复, 下周就会推送测试源
Reply View the author
186******98
deepin
2013-11-29 22:59
#127
[quote][quote]本来想试试装上看看的,但是一发现那么多依赖就算了,这个比较蛋疼……

首先,表示非常喜欢这个终端的,支持一下作者。不过我发现这些功能其实有一部分有现成的解决方案的,我简单介绍一下我所知道给作者分享一下吧,希望我不至于太火星吧。

我的方案是 xfce4-terminal + tmux + zsh
1. 背景透明调整 (xfce4-terminal自带的,还是实时的哦)
2. 自定义字体和字体大小(必须的)
3. 自定义颜色方案(必须的)
4. 自定义快捷键(zsh和tmux解决)
5. 自定义 shell 命令(这个不是靠alias的么?)
6. 自定义光标形状(必须的)
7. Ctrl + 左键打开当前光标处的连接地址(必须的)
8. 分屏功能(tmux解决)
9. 工作去切换(tmux解决,但是预览的话做不到,切换来切换去很烦人的)
10.ssh管理工具(靠zsh的自动补全,但是还是要输密码。我一般都是通过密钥认证登陆的)
11.定制启动窗口方式(xfce4-terminal价加个参数啥的就行了)
12.简单的设置(这个设置就真没办法简单了……)
13.快速调整字体大小(这个不知道唉,没试过……暂且算没有吧)
14.快捷搜索(tmux解决)
15.文件拖拽(这个不是连cmd那种垃圾都能做到么?)
16.Ctrl+左键(打开个链接还是能做到的……其他的做不到)
17.GUI调试(那个做不到)
18.快捷关闭其他终端(tmux解决)
19.快捷键(主要是tmux的快捷键 ? 就好)

先简单介绍一下我所用的终端:xfce4-terminal

下面是 xfce4-terminal --help的节选。
Usage:
  terminal [OPTION...]

General Options:
  -h, --help; -V, --version; --disable-server;
  --default-display=display; --default-working-directory=directory

Window or Tab Separators:
  --tab; --window

Tab Options:
  -x, --execute; -e, --command=command; -T, --title=title;
  --working-directory=directory; -H, --hold

Window Options:
  --display=display; --geometry=geometry; --role=role;
  --startup-id=string; -I, --icon=icon; --fullscreen; --maximize;
  --show-menubar, --hide-menubar; --show-borders, --hide-borders;
  --show-toolbars, --hide-toolbars

See the terminal man page for full explanation of the options above.

看过上面的的这个帮助文件应该不难看出了,初始化窗口完全可以用参数来设置
比如我的 t 绑定的命令是 xfce4-terminal --hide-menubar -x tmux -2。
希望启动的时候有那些选项在后面加参数就是了,比如希望启动就全屏,那就用 --fullscreen 参数启动,希望用什么什么工作目录启动就 加上--working-directory=directory

tmux是一个很强大的终端复用工具大家应该都听过,而zsh是一个很强的终端。网上有大量的介绍这两个货的文章。简单的介绍就是,分屏和多工作区都能用tmux实现,而且当终端意外关闭是,tmux的会话是可以恢复的,这是普通终端做不到的。并且tmux可以在tty下工作。对于我这种低端玩家来说,就是一直吧tmux当一个命令行下的窗口管理器。

zsh是一个非常强的终端,具体有多强大我也说不出来。反正我只会用他强大的命令补全,参数补全,自动纠错等功能。具体的还是自行查找资料吧,我也没折腾的太多。
最大的问题是如果要一般终端用户体验分屏和工作区, 他们没有必要折腾和配置 tmux, 拿来就可以用, 这是为什么开发这些功能的原因。

不管内在功能多么强大, 最快速度看了快捷键上手才是王道。[/quote]

虽然说上手的简单吧……但是确实个感觉……怎么说呢?耦合度太高了,于是便失去了灵活性的感觉。

感觉好像deepin开发的软件都是纯粹的gui交互式的,非常注重“普通用户”的体验,但是却完全没有办法成为管道的一环,也很难写进脚本里来进行自动的处理任务……

拿篇文章看,在你们开发这个终端之前,肯定没有想过其他终端会有所谓的“启动参数”这一说吧?不然也不至于会有“按F11”全屏浪费时间这一说。我不能理解的是难道没有人看看自己用的终端的手册么?

然后再说说深度截图。真的非常喜欢深度截图,用户体验真的非常非常棒,甚至可以说是在linux下用过的最棒的截图工具了,没有之一。但是问题同样的明显,依旧是纯粹的gui交互式界面,无法写进脚本里进行自动的截图处理。比如我需要为当前窗口每隔一秒截一张图,并且需要以固定的文件格式命名。这时候深度截图就几乎无法实现了。

但是非常简单的xfce4-screenshooter 却能轻松实现。下面是xfce4-screenshooter --help
Usage:
  xfce4-screenshooter [OPTION...]

Help Options:
  -h, --help               Show help options
  --help-all               Show all help options
  --help-gtk               Show GTK+ Options

Application Options:
  -c, --clipboard          Copy the screenshot to the clipboard
  -d, --delay              Delay in seconds before taking the screenshot
  -f, --fullscreen         Take a screenshot of the entire screen
  -m, --mouse              Display the mouse on the screenshot
  -o, --open               Application to open the screenshot
  -r, --region             Select a region to be captured by clicking a point of th
e screen without releasing the mouse button, dragging your mouse to the other corne
r of the region, and releasing the mouse button.
  -s, --save               Directory where the screenshot will be saved
  -u, --upload             Host the screenshot on ZimageZ, a free online image host
ing service
  -V, --version            Version information
  -w, --window             Take a screenshot of the active window
  --display=DISPLAY        X display to use

接下来是深度音乐。深度音乐也是非常好用,功能非常全的音乐媒体软件了。但是有时候需要在特殊的场景响应某些事件来 暂停/播放 音乐的时候。深度音乐就已经力不从心了……

同样的,轻量级的audacious就能轻松写进脚本里面进行事件响应。下面是audacious --help
Usage:
  audacious [OPTION...] - play multimedia files

Help Options:
  -?, --help                      Show help options
  --help-all                      Show all help options
  --help-gtk                      Show GTK+ Options
  --help-sm-client                Show session management options

Application Options:
  -r, --rew                       Skip backwards in playlist
  -p, --play                      Start playing current playlist
  -u, --pause                     Pause current song
  -s, --stop                      Stop current song
  -t, --play-pause                Pause if playing, play otherwise
  -f, --fwd                       Skip forward in playlist
  -j, --show-jump-box             Display Jump to File dialog
  -e, --enqueue                   Add files to the playlist
  -E, --enqueue-to-temp           Add new files to a temporary playlist
  -m, --show-main-window          Display the main window
  -v, --version                   Show version
  -V, --verbose                   Print debugging messages
  -h, --headless                  Headless mode (beta)
  --display=DISPLAY               X display to use

不过,作为一个用户。个人对这些产品都是非常支持的,但是依旧不是非常明白这些深度这些软件的定位是什么?就是仅仅是为了让真正的“普通用户”轻松使用么?[/quote]
一个工具的定位一定要精准, Deepin 是为了简化 Linux 几十年难用的交互体验, 不是来增加更多灵活但使用复杂的工具。

你上面说的这么多灵活的命令, 对于Linux 脚本一行帝们毋庸置疑, 非常好用, 但是如果从普通没有计算机基础的用户角度来看, 他们眼里的灵活性是, 最少的时间学习, 最少的时间享受工作和娱乐, 而不是折腾!

从软件开发的角度来说, Linux很多软件, 当然包括很多工具的命令行参数来说, 很多都不是精心研究使用者的需求, 而是想”我能不能实现这个功能, 开始自己也不知道有没有人, 一旦自己实现碉堡功能, 就会臆想会有很多人用, 其实有时候作者都不用自己开发的一些偏门参数和功能“, 这是Linux世界开发软件最大的问题, 不论是命令行还是GUI程序, 不是研究交互, 设计实现精巧的功能, 而是 ”堆砌功能”!堆砌到软件臃肿被别人 fork 为止, 然后fork的人继续堆砌, 日复一日, 就是现在Linux桌面的现状!

我们的定位很简单, 做好普通用户的交互体验, 我们不会又做好GUI, 有满足命令行各种组合的目的, 这种东西出来也是畸形软件, 没有任何价值而言。

其实我更想表达的是, 好用的普通软件和高手使用的碉堡命令行工具是可以共存的, 为什么Linux传统用户一遇到交互好用的系统就会下意识的认为他们命令行不友好? 好用的应用软件和桌面环境并不会阻碍我们使用 tmux, vi, git, emacs, 等碉堡工具啊?哎, 为什么Linux高手们都有强迫症和自虐呢?

所以作为结论, 我们会坚持现在的软件设计, 而不会改成对编程目的的软件, 我相信Linux仓库不会缺少这些软件的。
Reply View the author
brambles
deepin
2013-11-29 23:59
#128
[quote][quote]
一个工具的定位一定要精准, Deepin 是为了简化 Linux 几十年难用的交互体验, 不是来增加更多灵活但使用复杂的工具。

你上面说的这么多灵活的命令, 对于Linux 脚本一行帝们毋庸置疑, 非常好用, 但是如果从普通没有计算机基础的用户角度来看, 他们眼里的灵活性是, 最少的时间学习, 最少的时间享受工作和娱乐, 而不是折腾!

从软件开发的角度来说, Linux很多软件, 当然包括很多工具的命令行参数来说, 很多都不是精心研究使用者的需求, 而是想”我能不能实现这个功能, 开始自己也不知道有没有人, 一旦自己实现碉堡功能, 就会臆想会有很多人用, 其实有时候作者都不用自己开发的一些偏门参数和功能“, 这是Linux世界开发软件最大的问题, 不论是命令行还是GUI程序, 不是研究交互, 设计实现精巧的功能, 而是 ”堆砌功能”!堆砌到软件臃肿被别人 fork 为止, 然后fork的人继续堆砌, 日复一日, 就是现在Linux桌面的现状!

我们的定位很简单, 做好普通用户的交互体验, 我们不会又做好GUI, 有满足命令行各种组合的目的, 这种东西出来也是畸形软件, 没有任何价值而言。

其实我更想表达的是, 好用的普通软件和高手使用的碉堡命令行工具是可以共存的, 为什么Linux传统用户一遇到交互好用的系统就会下意识的认为他们命令行不友好? 好用的应用软件和桌面环境并不会阻碍我们使用 tmux, vi, git, emacs, 等碉堡工具啊?哎, 为什么Linux高手们都有强迫症和自虐呢?

所以作为结论, 我们会坚持现在的软件设计, 而不会改成对编程目的的软件, 我相信Linux仓库不会缺少这些软件的。
[/quote][/quote]

感谢回复。不过首先先澄清一下,我并没有带有任何偏见并且也非常肯定这些交互友好的系统,而且我也只是以我个人的角度提供一些我的看法而已,也没有想要将我个人的想法强加给任何人的意思,所以大可不必那么激动。

其次,其实很多人有强迫症吧,比如同样功能的软件在系统里出现两个就很难受,比如码农经常有的代码洁癖。 表示的确有那么一些强迫症。

自虐倒没有,所有一切的折腾目的就是尽量简化不必要的操作。个人觉得,到目前为止之前的折腾都是有意义的,并且现在正在因为以前的折腾而受益。

Reply View the author
...7 / 7
To page