问题标签 [vte]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2883 浏览

python - python VTE终端怪异

我正在尝试使用来自 python VTE绑定的终端(来自 debian 挤压的 python-vte)作为虚拟终端模拟器(仅用于 ANSI/控制字符文本处理)

在交互式 python 控制台中,一切看起来(几乎)都很好:

但是,将此代码(稍加修改)作为 python 脚本启动,会产生不同的结果:

奇怪的是,将代码粘贴回(新的)交互式 python 会话也会产生空字符串:

我首先想到的是,这两种情况的唯一区别是时间——之前必须有一些延迟get_text。不幸的是,前get_text几秒钟的睡眠并没有帮助

然后我认为它与X窗口环境有关。但结果是相同的纯 linux 控制台(缺少图形时有一些警告)。

我想知道是什么导致了这种不可预测的行为(交互式控制台 - 粘贴与键入,这不是延迟..交互式控制台与 vte 终端对象无关..我猜)

有人可以解释发生了什么吗?是否可以这样使用 VTE 术语?

输出中的“b”字母前面有空格,这是另一个奇怪的地方(所有连续的行前面都有更多的空格..看起来我必须在字符串之前发送回车。)

(我使用的lambda *a: True get_text方法参数是一个虚拟回调,它是一些SlotSelectedCallback .. 对于它的解释,我也将不胜感激:))

0 投票
2 回答
794 浏览

python - 从 Python 中的 Vte(GTK 终端小部件)获取当前工作目录

嘿,如何在 Python 中获取 VTE 小部件的当前工作目录?谢谢。

0 投票
1 回答
205 浏览

gtk - 在焦点事件中将 GdkX11Window 转换为 VTE 终端类

我需要在终端(VTE)上的事件中接收 GTK+ 焦点,但该事件返回 EventFocus,其中包含 Gtk.Window 引用:

http://www.valadoc.org/gdk-3.0/Gdk.EventFocus.html

如何从 Window 参考中获取终端?我无法重新输入它,它看起来像是一个容器。但我找不到调用哪种方法来获取终端。

感谢您指出我不需要它。是的,我的真实代码是:

不幸的是,它总是打印 null :-(

谢谢!

0 投票
1 回答
1094 浏览

gtk - vte_terminal_set_colors 调色板的颜色顺序是什么?

我想为 VTE 终端实现 Solarized 调色板。在 GTK+ 文档中,我可以找到如何设置所有颜色的方法。但是没有关于调色板中颜色顺序的信息:

http://developer.gnome.org/vte/unstable/VteTerminal.html#vte-terminal-set-colors

我在哪里可以找到它?我尝试了 Solarized 网页中的订单,但显然不匹配:

http://ethanschoonover.com/solarized

谢谢!

0 投票
1 回答
1010 浏览

python - GTK 应用程序中的终端小部件

我在我的应用程序中需要类似终端小部件的东西,但没有像 Bash 这样的外壳。我听说过VTE。要将 VTE 与我使用的 shell 连接起来:

是否有可能将输入数据重定向到自定义函数而不是 shell?

如果 VTE 不可能,我想知道其他建议如何解决我的问题。

0 投票
3 回答
1078 浏览

c - gtk + vte 回滚不起作用

gtk+ 版本 2.24.8

vte 版本 0.28.2

我刚开始创建一个终端应用程序,但是,我在网上找到的所有示例 (5) 都没有工作回滚。vte 中的回滚是否有问题,还是我没有看到?这是一个例子:

这个例子将滚动,但只是为了适应 vte 集的原始大小,vte_terminal_set_size(VTE_TERMINAL(vte), 80, 45);如果通过简单地点击返回或从程序产生输出来向终端添加更多行,则回滚缓冲区不会扩展。尽管指定了无限回滚,但它还是固定在 45 行vte_terminal_set_scrollback_lines(VTE_TERMINAL (vte), -1); /* infinite scrollback */

我错过了什么?谢谢。

0 投票
4 回答
294 浏览

python - 如何清除 Vte.Terminal 中的输出?

如何清除 Vte.Terminal 中的所有输出?

0 投票
0 回答
334 浏览

python - 在 python VTE 终端小部件上监控命令输入

我希望监视 python VTE 小部件上的每个命令输入,以便我可以将其传递给我的程序以处理与某个正则表达式匹配的命令。有可能吗,我正在连接信号和所有这些东西,但我只是不知道比这更远的东西。请问有什么帮助吗?

谢谢,

0 投票
1 回答
776 浏览

python - 嵌入 vte。如何使用 wxPython 执行与此 PyGtk 应用程序相同的操作?

这是我的第一篇文章。我每天在 Stackoverflow 上阅读很多主题,我很感激能找到一些帮助。今天轮到我提问了,因为我没有找到满足我需求的解决方案。

我想在我正在编写的应用程序中有一个终端;我(已经阅读了很多(子进程、线程、pty 等),但我没有找到一个简单的解决方案,因为这是用 pygtk 和 vte 编写的。这是代码:

你知道用 wxPython 做到这一点的方法吗?

非常感谢您的帮助,非常感谢!!:)

编辑0:

我必须准确地说:

  • 我说的是 bash shell(如上面的代码),而不是 python shell
  • 我为 linux 写的

编辑1:

感谢您的回答!:)

Joran,我已经阅读了这个问题,并且我已经尝试了所有建议的代码。尽管这很有趣,但这不是我想要的方式,正如您在我的问题中看到的那样。编写一个重新创建终端模拟器的应用程序似乎非常困难。

这就是为什么我正在寻找像我提出的代码这样的解决方案。

pythonm,我看不出你的想法和我的问题之间的关系......

谢谢你的帮助!

编辑2

请看这个短代码:

有什么想法可以用 wxpython 将其“放入”小部件中吗?

编辑3

也看一下:

如此简单,如此容易做到……

告诉我是否不可能将其嵌入到 wx 小部件中。

0 投票
0 回答
287 浏览

gtk - 无法使用键盘在 VTE 中选择文本

我正在使用 VTE 库用 C 语言编写自己的终端应用程序。一切都很好,除了我不能用键盘选择文本。例如,如果我刚刚输入了一些内容,在大多数终端中,您可以按住 shift 键并使用左箭头键选择上一个文本,然后您可以将其粘贴到您想要的任何位置。在 VTE 中,所发生的只是您在当前光标位置获得一个 D。我显然可以通过从按键返回 TRUE(我已经完成)来阻止终端中 D 的打印,但我仍然无法选择文本。

我以为我可以从 开始手动执行此操作vte_terminal_get_cursor_position(),但是一旦我有了选择的边界,就没有方法可以在 VTE 中选择一个文本块(我可以找到)。

我查看了其他基于 VTE 的项目,例如 tinyterm 和 evilvte,但是当按下该组合键时,它们也只会在终端中打印 D。

那么有没有办法使用键盘在 VTE 中选择文本呢?谢谢。

更正: 事实证明,很少有终端允许您使用键盘选择文本。不知道那是怎么进入我的脑海的。无论如何,我仍然认为这将是一个方便的功能,所以问题是存在的。任何想法将不胜感激。