【问题标题】:Run xfce4-terminal drop down with a python script without it closing instantly使用 python 脚本运行 xfce4-terminal 下拉菜单,而不会立即关闭
【发布时间】:2021-10-22 00:04:33
【问题描述】:

我创建了以下脚本

#!/bin/bash

import subprocess
import sys
from datetime import datetime
from curtsies import Input

locale = datetime.now()
locale = locale.strftime("%m %Y")
locale = locale.split(' ')
MONTH = locale[0]
YEAR = locale[1]

subprocess.Popen(['clear'], shell=False)
subprocess.Popen(['cal', MONTH, YEAR], shell=False)

while True:
    with Input(keynames='curses') as input_generator:
        for key in input_generator:
            if (key is '') or (key is 'q'):
                sys.exit()
            elif (key is 'KEY_UP') or (key is 'w'):
                YEAR = str(int(YEAR)+1)
            elif (key is 'KEY_DOWN') or (key is 's'):
                YEAR = str(int(YEAR)-1)
            elif (key is 'KEY_RIGHT') or (key is 'd'):
                if (MONTH == '12'):
                    MONTH = '1'
                    YEAR = str(int(YEAR)+1)
                else:
                    MONTH = str(int(MONTH)+1)
            elif (key is 'KEY_LEFT') or (key is 'a'):
                if (MONTH == '1'):
                    MONTH = '12'
                    YEAR = str(int(YEAR)-1)
                else:
                    MONTH = str(int(MONTH)-1)
            subprocess.Popen(['clear'], shell=False)
            subprocess.Popen(['cal', MONTH, YEAR], shell=False)

如果我打开终端窗口并输入 python3 /path/to/file.py,它可以完美运行 但是,我很贪心,我想用一个命令打开它来创建一个运行该东西的下拉终端。 我尝试了以下命令:

xfce4-terminal --geometry 135x40-0+0 --command "python3 ~/.config/polybar/polybar-scripts/calendar-polybar.py" --hide-menubar --hide-toolbar --hide-scrollbar --hide-borders --drop-down --title Calendar

但它会立即打开和关闭。由于我的脚本上有一个无限循环,我认为它会保持打开状态,直到我强制关闭它或简单地按下转义键,但终端正在对我耍花招。我做错了什么?

【问题讨论】:

    标签: python python-3.x terminal script xfce


    【解决方案1】:

    好吧,我不知道为什么终端不阻塞并等待程序在您的情况下返回,但以下替代方案按预期工作:

    xfce4-terminal --geometry 135x40-0+0 --command "sh -c 'python3 ~/.config/polybar/polybar-scripts/calendar-polybar.py'" --hide-menubar --hide-toolbar --hide-scrollbar --hide-borders --drop-down --title Calendar
    
    xfce4-terminal --geometry 135x40-0+0 --hide-menubar --hide-toolbar --hide-scrollbar --hide-borders --drop-down --title Calendar --execute python3 ~/.config/polybar/polybar-scripts/calendar-polybar.py
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-19
      • 2020-05-23
      • 1970-01-01
      • 2019-12-11
      • 1970-01-01
      • 1970-01-01
      • 2012-10-30
      相关资源
      最近更新 更多