-
-
Save devel787/a82c250871d3ba80ec0a to your computer and use it in GitHub Desktop.
#! /usr/bin/env python | |
# coding: utf-8 | |
import click | |
import subprocess | |
def get_postfix(title): | |
file_path = '/tmp/yakuake_{}_postfix'.format(title) | |
try: | |
with open(file_path, 'r') as f: | |
postfix_number = int(f.readline()) | |
postfix_number += 1 | |
except FileNotFoundError: | |
postfix_number = 1 | |
with open(file_path, 'w') as f: | |
f.write(str(postfix_number)) | |
return '{:02}'.format(postfix_number) | |
@click.command() | |
@click.argument('title') | |
def set_yakuake_title(title): | |
""" | |
Set Yakuake title for current active tab. | |
""" | |
qbus_cmd = 'qdbus org.kde.yakuake' | |
compound_title = '**{title}-{postfix}**'.format( | |
title=title, | |
postfix=get_postfix(title) | |
) | |
session_id_cmd = '{qbus} {active_session}'.format( | |
qbus=qbus_cmd, | |
active_session='/yakuake/sessions org.kde.yakuake.activeSessionId' | |
) | |
set_tab_title_cmd = '{qbus} {tab_title} `{session_id}` "{title}"'.format( | |
qbus=qbus_cmd, | |
tab_title='/yakuake/tabs setTabTitle', | |
session_id=session_id_cmd, | |
title=compound_title | |
) | |
subprocess.call(set_tab_title_cmd, shell=True) | |
if __name__ == '__main__': | |
set_yakuake_title() |
Спасибо.
Подправил и "перезалил" новую версию.
subprocess.call можно заменить на os.system
Можно, но в документации рекомендуют обратное действие
https://docs.python.org/3.4/library/subprocess.html#replacing-os-system
Не совсем понятно, зачем нужны лидирующие подчеркивания в локальных переменных.
Убрал.
Я бы 12-18 заменил на try...except.
Заменил.
Ещё можно подумать над тем, как формировать file_path. Можно было бы сгруппировать все файлы в одну директорию, чтоб не засорять листинг /tmp.
Не хочу каждый раз после перезагрузки создавать папку.
Текущая реализация в данный момент устраивает.
В питоне < 2.7 форматирование с пустыми "{}" не прокатит.
Забыл сразу написать, что запускает под Python 3.4.*.
Для читаемости можно было бы использовать именованые парамтетры.
Добавил.
В общем-то нормально, но лично я бы немного подправил бы:
subprocess.call
можно заменить наos.system
.file_path
. Можно было бы сгруппировать все файлы в одну директорию, чтоб не засорять листинг/tmp
.