Вы можете изменить это поведение с помощью редактора dconf. Установите пакет dconf-tools. Запустите dconf Editor из Dash, перейдите к com -> ubuntu -> update-notifier и отключите автозапуск.
Обычно это делается на уровне инструментария, например, в GTK или Qt. Таким образом, предполагаемый способ сделать это - это запланировать Swing, если это инструментарий GUI, который вы используете. Тем не менее, все компоненты Unity обмениваются данными с помощью DBus, поэтому, если вы действительно этого захотите, вы можете сделать это сами, реализовав DBus API самостоятельно. Если вы хотите это сделать, вы можете взглянуть на libdbusmenu и посмотреть, как это работает.
Существует библиотека под названием java-gnome (java gtk wrapper), которая позволяет вашим приложениям вести себя как все родные приложения. Это дает им всю славу: собственные виджеты, глобальное меню и т. Д.
Библиотека доступна в репозиториях ubuntu:
Целью библиотеки является разработка богатого опыта Java + Gnome. Помните, что если вы используете эту библиотеку, ваше приложение потеряет многоплатформенную функцию Java (поскольку она будет привязана к java-gnome).
Вот пример приложения (которое поставляется с java-gnome) отображение интеграции меню:
[/g5]
Вы можете использовать ppa: ppa: danjaredg / jayatana
http://www.webupd8.org/2014/02/get-unity-global-menu-hud-support- for.html
Попробуйте Аятана. Инструкции вы можете найти здесь: http://hanynowsky.wordpress.com/2012/05/12/integration-of-java-swing-applications-with-unity-global-menu-in-ubuntu-12-04 /
Все, что вам нужно сделать, - это импортировать библиотеку Java Ayatana и вызвать ее в своем основном классе JFrame. Это фактически подразумевает добавление следующих двух строк в ваш код (а также импорт классов Ayatana):
if (AyatanaDesktop.isSupported())
ApplicationMenu.tryInstall(mainFrame);
Вот пример:
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import org.java.ayatana.ApplicationMenu;
import org.java.ayatana.AyatanaDesktop;
public class MyAppWithUnityMenu {
public MyAppWithUnityMenu () {
JFrame mainFrame = new JFrame("This app integrates in Unity menu bar");
// set up mainFrame, by adding components, etc.
JPanel panel = new JPanel();
panel.add(new JLabel("This is a sample application for testing menu integration in Unity. Enjoy!"));
mainFrame.getContentPane().add(panel);
mainFrame.addWindowListener ( new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
// set up the menu bar, by adding menus, etc.
JMenuBar menuBar = new JMenuBar();
JMenu file = new JMenu("File");
file.add(new JMenuItem("Open"));
file.add(new JMenuItem("Save"));
file.add(new JMenuItem("Close"));
JMenu edit = new JMenu("Edit");
edit.add(new JMenuItem("Copy"));
edit.add(new JMenuItem("Cut"));
edit.add(new JMenuItem("Paste"));
JMenu help = new JMenu("Help");
help.add(new JMenuItem("Help topics"));
help.add(new JMenuItem("About"));
menuBar.add(file);
menuBar.add(edit);
menuBar.add(help);
menuBar.setVisible(true);
mainFrame.setJMenuBar(menuBar);
mainFrame.pack();
mainFrame.setVisible(true);
// Java Ayatana Call
if (AyatanaDesktop.isSupported()) {
ApplicationMenu.tryInstall(mainFrame);
}
}
public static void main(String[] args) {
new MyAppWithUnityMenu();
}
}
И Самое главное, что ваше приложение по-прежнему является межплатформенным. Я тестировал приведенный выше пример как в Ubuntu 12.04 LTS, так и в Windows XP.
Не исправление для вас, но FYI: я подал ошибку Ubuntu # 984916 , чтобы отслеживать, что меню Swing (полу) автоматически интегрировано в глобальное меню.
Обычно это делается на уровне инструментария, например, в GTK или Qt. Таким образом, предполагаемый способ сделать это - это запланировать Swing, если это инструментарий GUI, который вы используете. Тем не менее, все компоненты Unity обмениваются данными с помощью DBus, поэтому, если вы действительно этого захотите, вы можете сделать это сами, реализовав DBus API самостоятельно. Если вы хотите это сделать, вы можете взглянуть на libdbusmenu и посмотреть, как это работает.
Существует библиотека под названием java-gnome (java gtk wrapper), которая позволяет вашим приложениям вести себя как все родные приложения. Это дает им всю славу: собственные виджеты, глобальное меню и т. Д.
Библиотека доступна в репозиториях ubuntu:
Целью библиотеки является разработка богатого опыта Java + Gnome. Помните, что если вы используете эту библиотеку, ваше приложение потеряет многоплатформенную функцию Java (поскольку она будет привязана к java-gnome).
Вот пример приложения (которое поставляется с java-gnome) отображение интеграции меню:
[/g5]
Вы можете использовать ppa: ppa: danjaredg / jayatana
http://www.webupd8.org/2014/02/get-unity-global-menu-hud-support- for.html
Попробуйте Аятана. Инструкции вы можете найти здесь: http://hanynowsky.wordpress.com/2012/05/12/integration-of-java-swing-applications-with-unity-global-menu-in-ubuntu-12-04 /
Все, что вам нужно сделать, - это импортировать библиотеку Java Ayatana и вызвать ее в своем основном классе JFrame. Это фактически подразумевает добавление следующих двух строк в ваш код (а также импорт классов Ayatana):
if (AyatanaDesktop.isSupported())
ApplicationMenu.tryInstall(mainFrame);
Вот пример:
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import org.java.ayatana.ApplicationMenu;
import org.java.ayatana.AyatanaDesktop;
public class MyAppWithUnityMenu {
public MyAppWithUnityMenu () {
JFrame mainFrame = new JFrame("This app integrates in Unity menu bar");
// set up mainFrame, by adding components, etc.
JPanel panel = new JPanel();
panel.add(new JLabel("This is a sample application for testing menu integration in Unity. Enjoy!"));
mainFrame.getContentPane().add(panel);
mainFrame.addWindowListener ( new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
// set up the menu bar, by adding menus, etc.
JMenuBar menuBar = new JMenuBar();
JMenu file = new JMenu("File");
file.add(new JMenuItem("Open"));
file.add(new JMenuItem("Save"));
file.add(new JMenuItem("Close"));
JMenu edit = new JMenu("Edit");
edit.add(new JMenuItem("Copy"));
edit.add(new JMenuItem("Cut"));
edit.add(new JMenuItem("Paste"));
JMenu help = new JMenu("Help");
help.add(new JMenuItem("Help topics"));
help.add(new JMenuItem("About"));
menuBar.add(file);
menuBar.add(edit);
menuBar.add(help);
menuBar.setVisible(true);
mainFrame.setJMenuBar(menuBar);
mainFrame.pack();
mainFrame.setVisible(true);
// Java Ayatana Call
if (AyatanaDesktop.isSupported()) {
ApplicationMenu.tryInstall(mainFrame);
}
}
public static void main(String[] args) {
new MyAppWithUnityMenu();
}
}
И Самое главное, что ваше приложение по-прежнему является межплатформенным. Я тестировал приведенный выше пример как в Ubuntu 12.04 LTS, так и в Windows XP.
Не исправление для вас, но FYI: я подал ошибку Ubuntu # 984916 , чтобы отслеживать, что меню Swing (полу) автоматически интегрировано в глобальное меню.
Обычно это делается на уровне инструментария, например, в GTK или Qt. Таким образом, предполагаемый способ сделать это - это запланировать Swing, если это инструментарий GUI, который вы используете. Тем не менее, все компоненты Unity обмениваются данными с помощью DBus, поэтому, если вы действительно этого захотите, вы можете сделать это сами, реализовав DBus API самостоятельно. Если вы хотите это сделать, вы можете взглянуть на libdbusmenu и посмотреть, как это работает.