Linux-Mint Maya Mate теряет меню Alt-F1 и диалог запуска Alt-F2 с Compiz

3596
Peter.O

Мне нравится меню Linux-Mint 13 Mate Alt-F1 и Alt-F2диалог запуска, но как только я установил Compiz, эти клавиши перестали работать.

В Conpiz есть панель настроек совместимости с Gnome, которая позволяет вам устанавливать эти ключи, но использование этой панели настроек Compix не имеет никакого значения (вероятно, потому что Mate, строго говоря, не является Gnome) ...

Есть ли способ вернуть эти два сочетания клавиш в Acton с помощью Compiz?

2

2 ответа на вопрос

6
Bojan Markovic

Alt + F2 с форумов Mint http://forums.linuxmint.com/viewtopic.php?f=206&t=104169

Короче говоря (для тех, кто хочет пропустить чтение всей ветки). Вставьте приведенный ниже код в mate-run.c

#include <stdio.h> #include <stdlib.h> #include <X11/Xlib.h>  void die(const char *message) { fputs(message, stderr); exit(1); }  Atom get_atom(Display *display, const char *atom_name) { Atom atom = XInternAtom(display, atom_name, False); if (atom == None) die("can't find an atom I need"); return atom; }  int main() { Display *display; Atom gnome_panel_atom, run_atom; XClientMessageEvent event;  display = XOpenDisplay(NULL); if (display == NULL) die("can't open display");  gnome_panel_atom = get_atom(display, "_MATE_PANEL_ACTION"); run_atom = get_atom(display, "_MATE_PANEL_ACTION_RUN_DIALOG");  event.type = ClientMessage; event.window = DefaultRootWindow(display); event.message_type = gnome_panel_atom; event.format = 32; event.data.l[0] = run_atom; event.data.l[1] = (Time)(time(NULL) * 1000);  XSendEvent(display, event.window, False, StructureNotifyMask, (XEvent *)&event);  XCloseDisplay(display);  return 0; } 

Скомпилируйте и установите с помощью:

$ gcc mate-run.c -o mate-run -L/usr/X11R6/lib -lX11 $ chmod 755 mate-run $ sudo cp mate-run /usr/local/bin 

и просто в CCSM> Commands добавьте команду, которая связывает «mate-run» с «ALT + F2» key-combo.

Работает в Maya x64 (у меня есть основы сборки и так далее, так что вы можете проверить, что установить, чтобы иметь библиотеки X11 и gcc).

Я не заслуживаю уважения за это, кроме обнаружения его на форумах.

Спасибо, Боян. Я хорошо работаю, и нахожу, что он ведет себя лучше с помощью следующего дополнительного шага * bash *, чтобы сфокусировать его: `mate-run; сон .1; xdotool windowactivate $ (wmctrl -lx | sed -nr 's / ^ ([^] +). * mate-panel.Mate-panel. * Запустить приложение / \ 1 / p') ` Peter.O 11 лет назад 1
Спасибо, теперь это намного лучше, так как я часто забываю щелкнуть в текстовом поле, и CCSM больше не имеет опции Focus Protection Windows. Также вы можете попробовать это как элегантное решение, которое решает проблемы Alt + F1 и Alt + F2 с одним исполняемым файлом, который одинаково легко компилируется: http://forums.linuxmint.com/viewtopic.php?f=219&p= 615178 Bojan Markovic 11 лет назад 0
0
Peter.O

Кажется, что нет стандартного способа сделать это, я написал скрипт, который позволяет Alt-F1открыть главное меню. Он использует Panel Applet Main Menu (главное меню MATE)

  • Добавьте новый апплет psanel: Main Menu
  • Сделайте его самым левым значком на верхней панели. Если вы хотите изменить положение, измените первое «движение мышью» соответствующим образом, чтобы оно щелкало по положению экрана вашего значка.
  • Поместите этот скрипт где-нибудь в вашей PATH

    #!/bin/bash # name: mouse-click-screen { eval $(xdotool getmouselocation --shell) # save current mouse position sleep .15 # It needs a delay (?!).. Your Mileage May Vary xdotool mousemove --sync $ $ click 1 xdotool mousemove --sync $X $Y # restore saved mouse position } 2>/dev/null 
  • В «Система» -> «Настройки» -> «Сочетания клавиш» нажмите «Добавить».
    Обратите внимание, что, поскольку compiz является менеджером рабочего стола, нет никакого конфликта с предыдущим Alt-F1)

    Name: main-menu  Command: mouse-click-screen Shortcut: Alt+F1 

Вот и все. Alt+F2все еще в ожидании . но по крайней мере Alt+F1работает. Это не идеально, но работает довольно хорошо.