Почему делает F10 в терминале гнома, открытом контекстное меню?

Два процесса могут иметь тот же дескриптор файла, открытый для записи. Точно так же, как с чем-либо, последние выполняют победы.

Когда процесс открывает дескриптор файла, затем некоторый другой процесс пишет 80 строк в него, буфер памяти первого процесса не будет иметь тех 80 строк. Если это затем запишет буфер в дескриптор файла, то содержание файла будет только, что было во втором буфере памяти.

Теперь, это сказанное много программ в эти дни обнаружит, что исходное содержание файла изменилось, так как это было в последний раз открыто. Некоторые откажутся писать, некоторые предложат Вам перезагружать буфер. Некоторые могут сделать что-то еще. Это до каждой программы, чтобы удостовериться, что это делает правильную вещь. Ядро/файловая система не заботится, и обо всем, что оно знает, что буфер памяти, испытывающий недостаток в 80 строках, является правильной копией.

Теперь, если это - что-то значительно более важное как, говорят, база данных, а не просто некоторый текстовый файл или документ в Вашем корневом каталоге затем, намного более вероятно, что захват файла будет использоваться (который также не должен говорить это vim или gedit не используйте блокировки). База данных будет, вероятно, иметь свой собственный внутренний механизм блокировки также.

Общая философия на платформах стиля UNIX должна быть совместной относительно записей дескриптора файла. Блокировка не является механизмом управления безопасностью (это - то, что полномочия/ACL для), это - механизм целостности данных. Две программы, которые хотят записать данные обычно, хотят удостовериться, что данные записаны правильно, таким образом, они приносят пользу обоим для уважения блокировок друг друга. Ядро/файловая система предупредит о блокировках, но все еще позволяет каждому процессу сделать то, что это думает, является лучшим. Однако Linux действительно поддерживает обязательное осуществление блокировки как опцию монтирования (это может также потребовать поддержки файловой системы, но я не уверен в этом).

Можно читать, больше информации о привязывает статью File Locking Википедии.

15
08.06.2012, 00:00
5 ответов

Вот простое решение для проблемы, описал:

Для GTK 3 приложения как терминал гнома и наутилус просто создают (или редактирование, если у Вас есть один), файл ~/.config/gtk-3.0/gtk.css со следующим содержанием:

$ cat ~/.config/gtk-3.0/gtk.css
@binding-set NoKeyboardNavigation {
unbind "F10"
}

* {
gtk-key-bindings: NoKeyboardNavigation
}

Больше на проблеме посмотрите по http://youdev.co/fedora-17-f10-key-frustrating-behaviour-solved/

9
27.01.2020, 19:49
  • 1
    Хорошо работавший для меня с Ubuntu 12.04 –  Betlista 03.01.2013, 23:40

Это - функция. Перейдите к Редактированию-> Горячие клавиши

И снимите флажок, "Включают сочетание клавиш меню"

выключить его.

13
27.01.2020, 19:49
  • 1
    "я отключил установку, он начал открывать 'контекстное меню' в курсоре мыши, когда я нажимаю F10". Это начало открывать другое меню после того, как я снял флажок с той установкой., который я уже сделал. –  varesa 08.06.2012, 11:10
  • 2
    Эта установка отключает ярлык F10 для Меню терминалов Gnome, но это кажется, что у Вас есть другой ярлык, определенный где-то в другом месте, если Вы все еще получаете контекстное меню. Я не настолько знаком с Fedora, но у Вас должны быть Горячие клавиши или подобный апплет, который может иметь что-то соответствующее. –  Bill B 09.06.2012, 03:53
  • 3
    Спасибо, я правильно не считал этот Q, который является о терминале гнома, таким образом, я попробовал его в xfce-terminal и обнаруженный, что существует опция просто выключить F10 с одним флажком ;-) –  A.D. 22.02.2013, 20:18
  • 4
    С Fedora 19 <kbd> F10 </kbd> открывает меню файла и теперь установку, перемещенную в Редактирование-> Предпочтения-> Общий, где можно деактивироваться, 'Включают сочетание клавиш меню (F10 по умолчанию)'. –  maxschlepzig 15.02.2014, 00:37
  • 5
    в моем случае (Debian Jessie 8.2, Корица), это было Enable the menu accelerator key (F10 by default) на Edit -> Preferneces -> General вкладка –  vladkras 15.12.2015, 14:15

Для Fedora 17 можно найти отчет об ошибках здесь

https://bugzilla.redhat.com/show_bug.cgi? id=800856

Обходное решение там, создайте ~/.config/gtk-3.0/gtk.css файл со следующим содержанием:

@binding-set NoKeyboardNavigation {
    unbind "<shift>F10"
}

* {
    gtk-key-bindings: NoKeyboardNavigation
}
2
27.01.2020, 19:49

Я закрепил это на Ubuntu путем создания нового ~/.config/gtk-3.0/gtk.css и помещение этого в нем:

@binding-set NoKeyboardNavigation {
    unbind "<shift>F10"
}

* {
    gtk-key-bindings: NoKeyboardNavigation
}
0
27.01.2020, 19:49
  • 1
    Это не работало на меня с Ubuntu 12.04, хорошо работал, когда я использовал 'ubind "F10"', как описано в первом ответе. –  Betlista 03.01.2013, 23:38

в centos, rhel, oracle linux

перейдите к редактированию->Кейбордные ярлыки И уберите флажок "Включить клавишу быстрого доступа в меню". чтобы выключить его.

0
27.01.2020, 19:49

Теги

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