Это указано в быстрых клавишах клавиш (удерживайте клавишу Super / Win до тех пор, пока они не появятся на экране) в качестве комбинации «Alt + Dead Grave» ... это клавиша «слева» от номера 1 на моей клавиатуре, выше вкладка - извинения, если ваша находится в другом месте!
Это позволит вам циклически запускать несколько окон одного и того же приложения - к сожалению, я не думаю, что есть способ сказать, перебирать разные вкладки в одном окне ( используя ваш пример Firefox).
Для полноты вы можете добиться аналогичного эффекта, установив бит setuid в разрешениях файла.
Немного сложная часть состоит в том, что по соображениям безопасности setuid бит в скриптах игнорируется ядром, поэтому вам нужно будет скомпилировать небольшую программу-оболочку на C и использовать ее для вызова вашего скрипта. Сохраните это как runscript.c:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
setuid( 0 );
system( "/path/to/script.sh" );
return 0;
}
, затем скомпилируйте его с
gcc runscript.c -o runscript
и установите бит setuid в исполняемом файле:
sudo chown root:root runscript
sudo chmod 4755 runscript
] Также важно убедиться, что ваш скрипт доступен только для записи root, поскольку каждый, кто может изменить скрипт, сможет выполнять произвольные программы:
sudo chown root:root /path/to/script.sh
sudo chmod 0711 /path/to/script.sh
Вот статья, в которой у меня есть обертка программный код из: setuid .
По соображениям безопасности оба подхода - один с sudo и один с setuid - довольно плохи, но, вероятно, будут в порядке на домашней машине. Разница в том, что каждый пользователь системы сможет запустить команду setuid, даже не будучи в файле sudoers. Также, очевидно, вам не нужно будет префикс команды с помощью sudo.
Тег «NOPASSWD» вам нужен.
Используйте visudo и установите что-то вроде этого в конце файла:
имя пользователя ALL = NOPASSWD: / bin / echo
Замените имя пользователя вашим именем пользователя и / bin / echo командой, которую вы хотите запустить.
Вам нужно будет добавить полный путь к программе, которую вы запускаете, в файл sudoers, а не сценарий. Я предполагаю, что это pm-hibernate, поэтому:
john ALL=NOPASSWD: /usr/sbin/pm-hibernate