Мне действительно нравится средство запуска Единицы, особенно то, что я могу легко переключиться на (или открытый) приложение, которое я знаю с Супер + [0-9] (вместо того, чтобы иметь необходимость к Alt+Tab для всех открытых вкладок, пока я не определяю свое открытое приложение).
Через какое-то время с теми же фиксированными приложениями, каждый добирается для запоминания отлично, которому соответствует число, какое приложение (1 для Файлов, 2 для Браузера, 3 для Терминала, и т.д.) и оно заставляет меня чувствовать себя подобно ниндзя, когда я переключаюсь между ними.
Факт - то, что теперь, используя 10 слотов по умолчанию (от номера 0-9) я, например, хотел бы иметь буквы, присвоенные остальной части значков (те без присвоенного номера):
Я просто задавался вопросом, возможно ли, и раз так где я могу найти некоторую документацию или некоторые инструкции (я ничего не мог найти до сих пор).
Заранее большое спасибо.
PS: жаль о плохой качественной фотографии; я пытался сделать снимок экрана, но числа не сделали появился, в то время как я обрезал область, нажимающую Супер клавишу.
По умолчанию, Супер + (число) ограничен десять. С небольшим приемом мы можем расширить это. Скрипт ниже может быть запущен с любым числом как аргумент и затем активирует соответствующий значок средства запуска + 10.
Как обычно, Супер + 1 активирует первый значок в средстве запуска
... и так далее
Сценарий читает текущее средство запуска с командой:
gsettings get com.canonical.Unity.Launcher favorites
Так как каждый значок (если это - значок приложения) представляет a .desktop
файл в также /user/share/applications
или ~/.local/share/applications
, сценарий ищет команду в соответствии .desktop
файл. [Эти команды однако могут быть в различных формах, которые я не объясню здесь по причинам простоты.]
Потребности сценария wmctrl
быть установленным:
sudo apt-get install wmctrl
Скопируйте сценарий в пустой файл, сохраните его как numberlaunch.py
.
#!/usr/bin/env python3
import subprocess
import os
import sys
dir1 = os.path.join(os.environ["HOME"], ".local/share/applications")
dir2 = "/usr/share/applications"
index = int(sys.argv[1])+9
def get_file(dr, app):
try:
return [os.path.join(dr, dt) for dt in os.listdir(dr) if dt in app][0]
except IndexError:
pass
def clean_command(cmd):
for s in ["%U", "%u", "%F", "%f"]:
cmd = cmd.replace(s, "")
return (cmd.strip())
def check_windowtype(wid):
w_data = subprocess.check_output(["xprop", "-id", wid]).decode("utf-8")
return not "_NET_WM_WINDOW_TYPE_DESKTOP" in w_data
def get_window(appname):
try:
pid = subprocess.check_output(["pgrep", appname]).decode("utf-8").strip()
except subprocess.CalledProcessError:
return False
else:
wlist = subprocess.check_output(["wmctrl", "-lp"]).decode("utf-8").splitlines()
try:
wmatch = [w.split()[0] for w in wlist if pid in w]
relevant = [wid for wid in wmatch if check_windowtype(wid) == True][0]
subprocess.Popen(["wmctrl", "-ia", relevant])
return True
except IndexError:
return False
def raise_app():
app = current_launcher()[index]
f = get_file(dir1, app)
f = f if f else get_file(dir2, app)
cmd = [l.strip().split("=")[1] for l in open(f).readlines() if "Exec" in l][0]
cmd = clean_command(cmd); tryraise = cmd.split()[0]
tryraise = "soffice.bin" if tryraise == "libreoffice" else tryraise
if get_window(tryraise) == False:
subprocess.Popen(cmd.split())
def current_launcher():
get_current = subprocess.check_output(["gsettings", "get", "com.canonical.Unity.Launcher", "favorites"]).decode("utf-8")
return [item for item in eval(get_current) if any([
"device://" in item, "application://" in item,
])]
raise_app()
Тестовый прогон сценарий командой:
python3 /path/to/numberlaunch.py 3
В Вашем изображении в качестве примера это должно повысить или запустить Калеку
Если все хорошо работает, создайте thye после ярлыков, выполнив команду (команды)
Высокий звук Супер + 1, выполняя команду:
python3 /path/to/numberlaunch.py 1
Высокий звук Супер + 2, выполняя команду:
python3 /path/to/numberlaunch.py 2
Высокий звук Супер + 3, выполняя команду:
python3 /path/to/numberlaunch.py 3
... и так далее
N.B. в использовании ярлыков, удостоверьтесь, что не нажали Super перед Высоким звуком. Супер будет иметь приоритет по другим ключам, если Вы сделаете. Если это беспокоит Вас, выберите другие ярлыки, как:
Ctrl + высокий звук + (число)
К сожалению, существует несколько ограничений:
Необходимо будет видеть, имеют ли эти ограничения значение для Вас.