Как изменить имя принтера в GNOME 3?

Я написал две рекурсивные функции, которые отслеживают родителей процесса

get_parent()
{
 ps --no-headers -p $1 -o ppid,cmd 
}

process_list()
{
  if [ "$1" -ne "1"  ]; then
   PARENT="$(get_parent $1 )"
   printf "%s\n" "$PARENT"
   process_list $( printf "%s" "$PARENT" | awk '{print $1}'  )
  fi 
}

print_header()
{
  printf "PPID\tPROCESS\n"
  for i in $(seq 1 20 ) 
  do
     printf "-"
  done
  printf "\n"
}
print_header
process_list $$

. Я нашел в этом процессе:

$ bash get_process_list                                                        
PPID    PROCESS
--------------------
31264 bash get_process_list
31251 mksh
16696 gnome-terminal
15565 /bin/mksh
 2164 x-terminal-emulator
 1677 init --user
 1342 lightdm --session-child 12 19
    1 lightdm

Таким образом, мы могли бы используйте две функции и grep gnome-terminal, считая, что это то, чего хочет пользователь. Если пользователю нужен какой-либо эмулятор терминала, это может быть проблематичным, поскольку, кроме проверки lsof для открытого устройства pts, невозможно определить, является ли процесс эмулятором терминала.

Кроме того, есть что-то очень интересное:

$ bash get_process_list                                                                    
PPID    PROCESS
--------------------
32360 bash get_process_list
23728 -mksh
 2164 tmux
 1677 init --user
 1342 lightdm --session-child 12 19
    1 lightdm

tmux, по-видимому, развивает себя, и процесс подхватывается init, поэтому снова есть препятствие.

Использование Ayatana Unity

В приведенном ниже коде используется qdbus и dbus-интерфейс Ayatana для отображения всех окон терминала gnome и того, сфокусированы они в данный момент или нет. Это может быть позже проанализировано или отредактировано для вывода только активного / сфокусированного окна PID

Пример прогона:

$ bash get_gt_pd.sh                                                                    
XID:33554486    PID:20163   ACTIVE:true
XID:33554444    PID:20163   ACTIVE:false

И сам код

get_gt_xid()
{ # Prints XID of each gnome-terminal window
 qdbus --literal org.ayatana.bamf \
      /org/ayatana/bamf/matcher \
     org.ayatana.bamf.matcher.XidsForApplication \
    /usr/share/applications/gnome-terminal.desktop
}

for window in  $(get_gt_xid | awk -F'{' '{ gsub(/\,|}|]/," ");print $2  }' )
do
  PID=$(qdbus org.ayatana.bamf /org/ayatana/bamf/window/"$window"\
        org.ayatana.bamf.window.GetPid)
  ACTIVE=$( qdbus org.ayatana.bamf /org/ayatana/bamf/window/"$window"\
            org.ayatana.bamf.view.IsActive  )
  printf "XID:%s\tPID:%s\tACTIVE:%s\n" "$window" "$PID" "$ACTIVE"
done
1
задан 12 September 2017 в 00:14

1 ответ

Есть способ редактировать имена принтеров без установки какого-либо нового пакета:

Остановить службу CUPS (sudo service cups stop) Открыть /etc/cups/printers.conf Найти строку <Printer PRINTER_NAME_HERE> Изменить PRINTER_NAME_HERE на любое имя, которое вы хотите Перезапустить CUPS (sudo service cups start)
3
ответ дан 25 May 2018 в 05:39

Другие вопросы по тегам:

Похожие вопросы: