Как я могу установить расширения оболочки GNOME с extension.gnome.org через Firefox на NixOS?

В Linux и, по крайней мере, с OpenJDK , значение, возвращаемое функцией exitValue () , такое же, как и в оболочке zsh или bash и большинство sh реализаций (но не ksh93 или yash ) назначат его $? переменная.

То есть, это:

  • если процесс завершился с exit (n) или вернуть n из main () : младшие 8 бит из n ( n & 0xFF ).
  • , если процесс был остановлен сигналом n : n + 128 .

Итак, если вы получили число 130, возникает двусмысленность в том, что вы не знаете, умирает ли процесс из-за сигнала 2 или только что выполнил exit (130) .

Однако, поскольку так много оболочек следуют этому соглашению о наличии 128 + signal_number , программы знают, что следует избегать использования этих значений выше 128 для своего кода выхода (или когда они делают exit (130) , это сообщение о смерти ребенка, который умирает от сигнала 2, как некоторые снаряды при определенных обстоятельствах).

Итак, здесь, скорее всего, процесс умер из-за сигнала 2. Вы можете определить, какой это был сигнал, запустив:

$ kill -l 130
INT

в приглашении оболочки в стиле POSIX.

В большинстве систем сигнал 2 будет SIGINT. Это сигнал, который отправляется группе процессов переднего плана терминала, когда вы нажимаете Ctrl-C в этом терминале.

$ sleep 10
^C
$ echo "$?"
130

SIGINT должен быть зарезервирован для прерывания терминала, и приложения не должны в противном случае отправлять его другим процессам, но ничто не мешает им это делать, поэтому все еще возможно, что что-то сделало kill (postgres_pid, SIGINT) ( kill -s INT или kill -INT или kill -2 в оболочке).

$ sleep 10 &
[1] 20171
$ kill -s INT "$!"
[1]  + interrupt  sleep 10
$ wait "$!"
$ echo "$?"
130

4
12.04.2018, 14:04
1 ответ

Как сказано в longDescription для chrome-gnome-shell, вам нужно будет установить конкретный gnome3 и конкретный параметр firefox. Для этого включите следующее в /etc/nixos/configuration.nixи перестройте:

  nixpkgs.config.firefox.enableGnomeExtensions = true;
  services.gnome3.chrome-gnome-shell.enable = true;

(К сожалению, эти опции отсутствуютв списке наhttps://nixos.org/nixos/options.html)

Вам не нужно явно указывать chrome-gnome-shellи gnome3.gnome-shell-extensionsкак системные пакеты, так как они будут задействованы как зависимости. Расширение Firefox «Интеграция с GNOME Shell» по-прежнему должно быть установлено пользователем через Firefox, как и вы.

5
27.01.2020, 20:57

Теги

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