仅删除一个终端的白色闪烁光标 - bash 脚本

仅删除一个终端的白色闪烁光标 - bash 脚本

最近我一直在研究如何创建一个固定终端,该终端在启动时打开,位于特定的 x + y 位置,大小固定。通过浏览论坛,我发现了两种实现此目的的方法:一种是解释在这个论坛里,它与必须在启动应用程序设置时运行的 bash 脚本一起工作。

我的想法是添加新取回在那个终端中,我对脚本文件和命令一无所知,所以我无法让 neofetch 每次打开终端时都启动。我试图修改脚本,但没有成功。

剧本

#!/usr/bin/env python3
import subprocess
import time
import sys

app = sys.argv[1]

get = lambda x: subprocess.check_output(["/bin/bash", "-c", x]).decode("utf-8")
ws1 = get("wmctrl -lp"); t = 0
subprocess.Popen(["/bin/bash", "-c", app])

while t < 30:      
    ws2 = [w.split()[0:3] for w in get("wmctrl -lp").splitlines() if not w in ws1]
    procs = [[(p, w[0]) for p in get("ps -e ww").splitlines() \
              if app in p and w[2] in p] for w in ws2]
    if len(procs) > 0:
        w_id = procs[0][0][1]
        cmd1 = "wmctrl -ir "+w_id+" -b remove,maximized_horz"
        cmd2 = "wmctrl -ir "+w_id+" -b remove,maximized_vert"
        cmd3 = "xdotool windowsize --sync "+procs[0][0][1]+" "+sys.argv[4]+"% "+sys.argv[5]+"%"
        cmd4 = "xdotool windowmove "+procs[0][0][1]+" "+sys.argv[2]+" "+sys.argv[3]
        for cmd in [cmd1, cmd2, cmd3, cmd4]:   
            subprocess.call(["/bin/bash", "-c", cmd])
        break
    time.sleep(0.5)
    t = t+1

代码提供者:雅各布·弗莱姆

我的第二个选择在某种程度上是可行的,那就是使用以下命令:

gnome-terminal --geometry 82x26+1190+32 -- bash -c "neofetch; read"

我使用 neofetch 的设置

添加了命令在 bash 的末尾,所以“bash 输入”不会出现,但我试图隐藏白色闪烁光标作为一个想法,我试图让 neofetch 程序处于暂停状态,这样它就不会结束,除非发生某些事情。如果脚本结束,则会出现这个白色光标,我很挑剔,我讨厌这样。我不想完全删除白色闪烁光标但仅适用于该终端。有没有办法隐藏该光标?或者有没有办法修改 neofetch .conf 设置以便创建暂停命令?

谢谢!Nick

答案1

在 gnome-terminal 中,您应该能够设置 cvvis(光标可见)和 civis(光标不可见)。

$ tput civis ## turn cursor off
$ tput cvvis ## turn curson on

相关内容