刚刚遇到的深度终端的分屏如何进行缩放?
Tofloor
poster avatar
153******66
deepin
2018-01-27 01:58
Author
RT

我分屏之后. 如何对某一个panel 进行最大化 和还原?


Reply Favorite View the author
All Replies
avatar
aida
deepin
2018-01-27 02:15
#1
这个不行的啊。
Reply View the author
avatar
wangyong
deepin
2018-01-27 06:37
#2
最大化和还原好做,关键是最大化以后又继续分屏然后怎么恢复?

深度终端的每个pane都是控件,不像emacs/tmux/screen那样只是坐标和窗口,可以随意切换内容。

技术不是问题,我没有想好怎么做交互
Reply View the author
avatar
wangyong
deepin
2018-01-27 06:58
#3
我想了一个备选方案:

分屏后想最大化的目的就是,在保持终端上下文状态的情况下,最大化查看。

所以能否,按一个快捷键就把pane最大化成新的标签?
Reply View the author
avatar
153******66
deepin
2018-01-27 07:56
#4
https://bbs.deepin.org/post/152435
我想了一个备选方案:

分屏后想最大化的目的就是,在保持终端上下文状态的情况下,最大化查看。

最大化成为新标签的话 有一个问题 来自标签切换 这个时候 相当于多增加了一个标签.  那么此时 如果我切换到第一个标签. 然后要切换回来的时候 我是切换到 -2 标签呢, 还是-1标签呢?

其实我在想 能新起标签的话. 是否可以直接新起窗口, 一个没有窗口管理器的窗口. 它贴在父窗口上. 这样看起来就像是放大了一样.
但是这个也没有解决标签切换带来的麻烦.  甚至比你那个方案还要麻烦. 因为这个直接是新窗口了. 是没有标签的 而当前焦点是在这个新窗口上.
Reply View the author
avatar
wangyong
deepin
2018-01-27 08:01
#5
https://bbs.deepin.org/post/152435
最大化成为新标签的话 有一个问题 来自标签切换 这个时候 相当于多增加了一个标签.  那么此时 如果我切换 ...

最大化当前pane后,再在这个最大化的pane进行复杂分屏后,这时候执行“恢复布局”动作后,应该恢复成什么的布局?

这个问题没想清楚,写出来也是bug一堆。
Reply View the author
avatar
wangyong
deepin
2018-01-27 08:06
#6
像Emacs这种编辑器都很好做这种功能,因为所有真正有价值的内容都在后台,分屏布局无非就是窗口和位置而已,即使丢掉了布局,每个终端的内容都不会丢。

但是像终端这种,每个pane就对应一个vte控件,终端的内容和vte控件的生死绑在一起,一旦控件丢了或者看不到了,对用户来说和终端内容丢了没有什么分别。
Reply View the author
avatar
153******66
deepin
2018-01-27 08:57
#7
本帖最后由 eleveni386 于 2018-1-27 00:58 编辑
https://bbs.deepin.org/post/152435
最大化当前pane后,再在这个最大化的pane进行复杂分屏后,这时候执行“恢复布局”动作后,应该恢复成什么 ...

按照tmux的效果来说的话. 它是直接恢复最大化之前的 然后再分屏.
例如 分屏A|B

此时 焦点在B上. 然后执行B最大化. B占据整个窗口大小, A看不见. 此时 再次分屏, 则 退出最大化效果

分屏A|B|C (取决于水平还是垂直分)

不过这里和你vte不同在于 你每个panel都是一个控件 这个确实很麻烦.
Reply View the author
avatar
wangyong
deepin
2018-01-27 09:19
#8
https://bbs.deepin.org/post/152435
按照tmux的效果来说的话. 它是直接恢复最大化之前的 然后再分屏.
例如 分屏A|B

想了一个比较完整的逻辑:

  • 正常分屏
  • 一旦最大化当前终端,就在最大化前记住当前标签内所有终端的分屏布局
  • 如果最大化的终端关闭,自动恢复分屏布局
  • 如果在最大化终端中执行分屏,自动恢复分屏布局后再继续分屏(但是这个的体验可能还不是很完美)
  • 如果最大化的终端不关闭也不在里面继续分屏,只有用户手动恢复分屏布局才能看到别的终端

深度内部对于没有想清楚的问题,但是有突然头脑风暴的情况都是先睡一觉,如果睡觉起来冷静后依然觉得前一天的点子很棒,就是可以做的。

等我明天早上醒来再审视上面的逻辑,也欢迎大家提出更好的建议。

Reply View the author
avatar
153******66
deepin
2018-01-27 17:17
#9
https://bbs.deepin.org/post/152435
想了一个比较完整的逻辑:

这是一个好的做事方法, 避免头脑发热就直接动手而导致的人力浪费.

不过 ...

emm. 你该起床去公司了.
Reply View the author
avatar
wangyong
deepin
2018-01-27 18:44
#10
eleveni386 发表于 2018-1-27 09:17
这是一个好的做事方法, 避免头脑发热就直接动手而导致的人力浪费.

不过 ...

上面的逻辑okay不?
Reply View the author
avatar
153******66
deepin
2018-01-27 19:26
#11
https://bbs.deepin.org/post/152435
上面的逻辑okay不?



你上面的逻辑实现类似的效果么?

我最大化之后 再进行分屏 就会 自动退出最大化. 然后完成分屏动作.

另外在吐槽一下. panel焦点高亮提示还是没有呢. 是我版本低么? V2.7 我的版本
Reply View the author
avatar
wangyong
deepin
2018-01-27 19:49
#12
eleveni386 发表于 2018-1-27 11:26
你上面的逻辑实现类似的效果么?

我最大化之后 再进行分屏 就会 自动退出最大化. 然后完成分屏动作.

焦点高亮看github readme
Reply View the author