Compare commits

...

47 Commits

Author SHA1 Message Date
9a02d53c3d Release 5.3 2024-08-06 17:20:46 +02:00
c0d12835dc Fix taskbar icon and left clic on wayland, code improvements 2024-08-06 17:20:15 +02:00
caff60b8b6 Release 5.2 2024-02-25 16:58:22 +01:00
e0664fa1de mambatray.py: wayland: workaround left-click causing menu to appear in screen center by disabling if plasmawayland session 2024-02-25 16:39:08 +01:00
ee9bf1f12b mambatray.py: remove obsolete code for setting proxy for smart and more code cleanups 2024-02-25 15:39:30 +01:00
bc1b15a666 mambatray.py: support for "plasmawayland" session 2024-02-25 15:16:46 +01:00
44e6b42342 Release 5.1 2022-06-19 19:07:53 +02:00
c69b843883 Use correct icon for mambabase; improve About box 2022-06-19 19:05:43 +02:00
3d9e14a5d9 Release 5.0 2022-06-19 13:04:31 +02:00
6163f9ea7d Update translations using python-distro and placeholders 2022-06-19 13:03:22 +02:00
797e081b43 Makefile, icons: remove icons (use mambatray icon from openmamba-icons) 2022-06-19 12:37:00 +02:00
a81dec30c4 Release 4.4 2022-01-02 20:54:19 +01:00
dc82198db9 mambatray: run plasma-discover and pkcon in every kind of sessione (KDE and LXQt) 2022-01-02 20:53:33 +01:00
8126e139eb Release 4.3 2021-09-19 11:05:05 +02:00
8879cd3695 Remove sun-java and flash plugins update check 2021-09-19 11:04:44 +02:00
dceafaa52c Release 4.2.0 2021-06-18 13:56:04 +02:00
e7499ad3e2 Support for new plasma-firewall kcm module for Plasma 2021-06-18 13:55:00 +02:00
76e96a26b0 Release 4.1.0 2020-07-24 11:35:08 +02:00
e35590a7e3 Really use plasma-discover instead of apper 2020-07-24 11:34:53 +02:00
c0316dba3a Use python3, switch from apper to discover, small changes to italian translation 2020-07-22 17:35:36 +02:00
2d74975e4a Release 4.0.0 2019-10-24 18:52:11 +02:00
57c67d39c9 Support for launching the new mambabase 2019-10-24 18:51:57 +02:00
3978f8a721 Add update check for chromium-widevine 2019-10-24 18:35:16 +02:00
7d20fe46fc Release 3.0.4 2019-08-15 18:56:06 +02:00
9f70e7d0bd mambatray: remove usage and dependency for discover; use 'pkcon refresh force' for the check updates function 2019-08-15 18:53:37 +02:00
8b563c1edb Release 3.0.3 2019-07-12 13:25:24 +02:00
9444b6052d Call 'pkcon refresh' with force argument to workaround PackageKit not refreshing since rpm 4
sun-java7, sun-java8: replaced by sun-java
Fix crashes
2019-07-12 13:08:41 +02:00
2d44c33365 Fix for context menu position 2019-04-02 19:51:25 +02:00
93a7dcc4a1 Other basic fixes to avoid crashing. Release 3.0.2 2019-04-02 18:01:40 +02:00
bb3c73f8c8 Post commit fix 2019-03-31 20:43:03 +02:00
15fca674ad Release 3.0.1 2019-03-31 19:44:06 +02:00
c3e25efaef Basic PyQt5 + Python 3.6 support 2019-03-31 19:43:46 +02:00
2038c0f763 Release 3.0 2018-02-10 18:19:55 +01:00
11c3d8be9e PyQt5 porting with 'plasma' session support 2018-02-10 18:19:32 +01:00
aa5c3e894d mambatray: use kcmshell5 to run proxy configuration in kde plasma 5 2018-02-10 16:48:26 +01:00
544ab79409 Update check support for sun-java8 2016-12-03 19:19:13 +01:00
1df82005d8 Release 2.0 2015-01-29 11:12:07 +01:00
f31a931b53 Updated openmamba website references and copyright year 2015-01-29 11:03:39 +01:00
5b1e3e4254 Added netsrpm check for chromium-pepper-flash and spotify 2015-01-29 10:56:41 +01:00
f713c49dad Added french translation (thanks to Antonio and french friends) 2013-12-21 11:13:26 +01:00
a960b86653 Release 1.98 2013-05-14 15:45:00 +02:00
3a42a59ee9 Check that network is online before checking and asking the user about network SRPMS updates 2013-05-14 15:42:02 +02:00
c60d78329a Firewall disable: call ufw disable instead of iptables stop 2013-05-13 16:11:40 +02:00
2371b9ac2a Release 1.97 2013-04-24 18:47:44 +02:00
11add673ec mambatray: support netsrpm update for sun-java7 and virtualbox-extension-pack 2013-04-24 18:44:44 +02:00
cac69a870d mambatray: configure smart through libproxy (requires python-libproxy) 2013-04-24 18:43:15 +02:00
77e45e4e2b Support for Gnome 3 proxy configuration (currently dropped Gnome 2 support) 2012-11-08 01:44:10 +01:00
17 changed files with 492 additions and 412 deletions

View File

@ -1,40 +0,0 @@
Changes in version 1.90
- full program rewrite using PyQt4
-------------------------------------------------------------------------------
Changes in version 0.4.3
- patches integration:
* disable_Desktop.patch
* fix_proxy_with_kde4.patch
* move_proxy_to_network_menu.patch
-------------------------------------------------------------------------------
Changes in version 0.4.2
- use kcmshell4 to launch proxy configuration with KDE4
- added spanish translation
-------------------------------------------------------------------------------
Changes in version 0.4.1
- disabled configure and restart network functions (for use with wicd instead)
-------------------------------------------------------------------------------
Changes in version 0.4
- added support for proxy
-------------------------------------------------------------------------------
Changes in version 0.3.6
- mambapt: run the first time after 5 minutes, then every 3 hours and 31 minutes
-------------------------------------------------------------------------------
Changes in version 0.3.4
- added italian translation
-------------------------------------------------------------------------------
Changes in version 0.3.3
- enable network menu for superuser
-------------------------------------------------------------------------------
Changes in version 0.3.2
- introduced a Changelog
- add mambatray::apply_init_workarounds to fix ccsm default user configuration
-------------------------------------------------------------------------------

View File

@ -1,5 +1,5 @@
# Makefile for livecd-tools
# Copyright (c) 2011 by Silvan Calarco <silvan.calarco@mambasoft.it>
# Makefile for mambatray
# Copyright (c) 2011-2022 by Silvan Calarco <silvan.calarco@mambasoft.it>
# Released under the terms of the GNU GPLv3 license
PACKAGE=mambatray
@ -18,10 +18,10 @@ bindir = ${exec_prefix}/bin
mandir = ${prefix}/usr/share/man
datadir = ${prefix}/share
iconsdir = ${datadir}/icons/hicolor
initrddir = ${sysconfdir}/rc.d/init.d
sysconfigdir= ${sysconfdir}/sysconfig
localesdir = ${datadir}/locale
xdgautostartdir = ${sysconfdir}/xdg/autostart
xdgapplicationsdir = ${datadir}/applications
srcdir = .
DESTDIR =
@ -53,24 +53,18 @@ install-locales: locales
install-dirs:
@$(INSTALL_DIR) $(DESTDIR)$(bindir)
@$(INSTALL_DIR) $(DESTDIR)$(xdgautostartdir)
@$(INSTALL_DIR) $(DESTDIR)$(xdgapplicationsdir)
install-icons:
@for i in 16 22 32 64 128; do \
$(INSTALL_DIR) $(DESTDIR)$(iconsdir)/$${i}x$${i}/apps/; \
$(INSTALL_DATA) icons/hi$$i-app-mambatray.png $(DESTDIR)$(iconsdir)/$${i}x$${i}/apps/mambatray.png; \
done
install: install-dirs install-locales install-icons
$(INSTALL_PROGRAM) src/mambatray $(DESTDIR)$(bindir)/mambatray
install: install-dirs install-locales
$(INSTALL_PROGRAM) mambatray.py $(DESTDIR)$(bindir)/mambatray
$(INSTALL_DATA) mambatray.desktop $(DESTDIR)$(xdgautostartdir)/mambatray.desktop
$(INSTALL_DATA) mambatray.desktop $(DESTDIR)$(xdgapplicationsdir)/mambatray.desktop
clean:
rm -f $(pck_catalogs:.po=.mo)
rm -f $(dist_archive)
dist: clean
@git clean -f
@git log > ChangeLog
@mkdir /tmp/$(distdir)
@cp -a * /tmp/$(distdir)/
@rm -f $(dist_archive);\

View File

@ -1 +1 @@
VERSION=1.96
VERSION=5.3

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 768 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -8,3 +8,4 @@ Comment=openmamnba control center
Comment[it]=Centro di controllo openmamba
X-KDE-autostart-after=panel
X-KDE-autostart-phase=2
NoDisplay=true

262
mambatray.py Executable file
View File

@ -0,0 +1,262 @@
#!/usr/bin/python3
# mambatray 2
# Copyright (C) 2011-2024 by Silvan Calarco
# Copyright (C) 2011 by michiamophil
# Distributed under the terms of the GPL version 3 FLOSS License
#
import sys
import os
import gettext
import distro
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QIcon, QCursor
from PyQt5.QtWidgets import QSystemTrayIcon, QApplication, QMenu, QMessageBox
from PyQt5.QtCore import QTimer, QProcess
DATADIR = os.path.dirname(os.path.realpath((__file__))) + "/"
class SystemTrayIcon(QSystemTrayIcon):
menu = None
contatore = 0
NetsrpmsArg = "-c"
lista = []
nOre = 2
srpm = [
"skype", "win32codecs", "msttcorefonts", "b43-firmware",
"virtualbox-extension-pack", "chromium-widevine", "spotify"
]
desktop_session = 'default'
xdg_session_type = 'x11'
refreshPackagesTimer = None
checkSRPMSUpdatesTimer = None
refreshPackagesCacheProcess = None
SRPMUpdateProcess = None
softwareManagerProcess = None
softwareCheckUpgradesProcess = None
softwareBaseInstallsProcess = None
networkOnlineProcess = None
networkFirewallDisableProcess = None
networkFirewallEnableProcess = None
networkFirewallConfigureProcess = None
networkProxyProcess = None
def __init__(self, icon):
QSystemTrayIcon.__init__(self, icon)
self.menu = QMenu()
try:
self.desktop_session = os.path.basename(os.getenv('DESKTOP_SESSION'))
except:
None
try:
self.xdg_session_type = os.path.basename(os.getenv('XDG_SESSION_TYPE'))
except:
None
if self.desktop_session == 'default':
self.desktop_session = 'plasma'
elif self.desktop_session[:3] == 'kde':
self.desktop_session = 'kde'
# refresh packages cache timer
self.refreshPackagesTimer = QTimer(self)
self.checkSRPMSUpdatesTimer = QTimer(self)
self.refreshPackagesCacheProcess = QProcess(self)
self.SRPMUpdateProcess = QProcess(self)
self.networkOnlineProcess = QProcess(self)
self.refreshPackagesTimer.timeout.connect(self.refreshPackagesCache)
self.refreshPackagesCacheProcess.finished.connect(self.restartRefreshPackagesTimer)
self.checkSRPMSUpdatesTimer.timeout.connect(self.SRPMSCheckUpgradeList)
# software menu
self.softwareManagerProcess = QProcess(self)
self.softwareCheckUpgradesProcess = QProcess(self)
self.softwareBaseInstallsProcess = QProcess(self)
self.softwareMenu = self.menu.addMenu(QIcon.fromTheme("applications-system"),_("Software"))
self.softwareManageAction = self.softwareMenu.addAction(QIcon.fromTheme("applications-other"),_("Add/Remove software packages..."))
self.softwareManageAction.triggered.connect(self.softwareManager)
self.softwareCheckUpgradesAction = self.softwareMenu.addAction(QIcon.fromTheme("system-software-update"),_("Check for updates now..."))
self.softwareCheckUpgradesAction.triggered.connect(self.softwareCheckUpgrades)
self.softwareBaseInstallsAction = self.softwareMenu.addAction(QIcon.fromTheme("mambabase"),_("{} components...").format(distro.name()))
self.softwareBaseInstallsAction.triggered.connect(self.softwareBaseInstalls)
# network menu
self.networkFirewallDisableProcess = QProcess(self)
self.networkFirewallEnableProcess = QProcess(self)
self.networkFirewallConfigureProcess = QProcess(self)
self.networkProxyProcess = QProcess(self)
self.networkMenu = self.menu.addMenu(QIcon.fromTheme("preferences-system-network"), _("Network"))
self.networkFirewallMenu = self.networkMenu.addMenu(QIcon.fromTheme("security-medium"),_("Firewall"))
self.networkFirewallDisableAction = self.networkFirewallMenu.addAction(QIcon.fromTheme("security-low"),_("Disable"))
self.networkFirewallDisableAction.triggered.connect(self.networkFirewallDisable)
self.networkFirewallDisableProcess.finished.connect(self.networkFirewallDisableMessage)
self.networkFirewallEnableAction = self.networkFirewallMenu.addAction(QIcon.fromTheme("security-high"),_("Enable"))
self.networkFirewallEnableAction.triggered.connect(self.networkFirewallEnable)
self.networkFirewallEnableProcess.finished.connect(self.networkFirewallEnableMessage)
self.networkFirewallConfigureAction = self.networkFirewallMenu.addAction(QIcon.fromTheme("security-medium"),_("Configure..."))
self.networkFirewallConfigureAction.triggered.connect(self.networkFirewallConfigure)
self.networkProxyAction = self.networkMenu.addAction(QIcon.fromTheme("network-server"),_("Proxy..."))
self.networkProxyAction.triggered.connect(self.networkProxy)
self.SRPMUpdateProcess.finished.connect(self.SRPMSCheckUpgrade)
# about box
self.aboutAction = self.menu.addSeparator()
self.aboutAction = self.menu.addAction(QIcon.fromTheme("system-logo"),_("About"))
self.aboutAction.triggered.connect(self.about)
self.setToolTip(_("{} control center").format(distro.name()))
self.activated.connect(self.iconActivated)
self.setContextMenu(self.menu)
# the first time refresh packages cache after 5 minutes
self.refreshPackagesTimer.start( 5 * 60000 )
# the first time check for SRPMS updates after 4 minutes
self.checkSRPMSUpdatesTimer.start( 4 * 60000 )
def iconActivated(self, reason):
if reason in (QSystemTrayIcon.Trigger, QSystemTrayIcon.DoubleClick, QSystemTrayIcon.Context):
# FIXME: on plasma wayland and left click menu will popup in the center of the screen
# disabling and only supporting right click.
if self.xdg_session_type != 'wayland':
self.contextMenu().popup(QCursor.pos())
def about(self):
aboutBox = QMessageBox(self.menu)
aboutBox.setWindowIcon(QIcon.fromTheme("mambatray"))
aboutBox.setWindowTitle(_("About"))
aboutBox.setText(
"<center><b>"+_("{} control center").format(distro.name()+"</b>"
"<br/><br/>"+distro.name(pretty=True)+
"<br/><br/><a href=\""+distro.os_release_info()['home_url']+
"\">" + distro.os_release_info()['home_url'] + "</a>"
"</center>"))
aboutBox.setTextFormat(Qt.RichText)
aboutBox.setIconPixmap(QIcon.fromTheme("system-logo").pixmap(32));
aboutBox.setWindowModality(Qt.NonModal);
aboutBox.exec()
def networkOnline(self):
return self.networkOnlineProcess.execute("/usr/bin/nm-online",['-q','-x'])
def softwareManager(self):
self.softwareManagerProcess.execute("/usr/bin/plasma-discover")
def softwareCheckUpgrades(self):
self.softwareCheckUpgradesProcess.start("/usr/bin/pkcon", ['refresh', 'force'])
def refreshPackagesCache(self):
self.refreshPackagesTimer.stop()
self.refreshPackagesCacheProcess.start("/usr/bin/pkcon", ['refresh', 'force'])
def restartRefreshPackagesTimer(self,status):
# check every 4 hours and 31 minutes */
self.refreshPackagesTimer.start( (4 * 60 + 31) * 60000)
def softwareBaseInstalls(self):
self.softwareBaseInstallsProcess.start("/usr/bin/mambabase")
def networkFirewallDisable(self):
self.networkFirewallDisableProcess.start("sudo",['/usr/sbin/ufw','disable'])
def networkFirewallDisableMessage(self,status):
if (status == QProcess.NormalExit):
self.showMessage("Firewall", _("Firewall disabled in current session"))
else:
self.showMessage("Firewall", _("Could not disable firewall"))
def networkFirewallEnable(self):
self.networkFirewallEnableProcess.start("sudo",['/usr/sbin/ufw','enable'])
def networkFirewallEnableMessage(self,status):
if (status == QProcess.NormalExit):
self.showMessage("Firewall", _("Firewall enabled in current session"))
else:
self.showMessage("Firewall", _("Could not enable firewall"))
def networkFirewallConfigure(self):
if self.desktop_session == 'kde' or self.desktop_session.startswith('plasma'):
self.networkFirewallConfigureProcess.execute("/usr/bin/kcmshell5", list(set(['firewall'])))
else:
self.networkFirewallConfigureProcess.execute("/usr/bin/gufw")
def networkProxy(self):
if self.desktop_session.startswith('plasma'):
self.networkProxyProcess.execute("/usr/bin/kcmshell5", list(set(['proxy'])))
elif self.desktop_session == 'kde':
self.networkProxyProcess.execute("/opt/kde/bin/kcmshell4", list(set(['proxy'])))
elif self.desktop_session == 'gnome':
self.networkProxyProcess.execute("/usr/bin/gnome-control-center", "network")
def SRPMSCheckUpgradeList(self):
self.checkSRPMSUpdatesTimer.stop()
if (self.networkOnline() == 0):
try:
self.SRPMUpdateProcess.start("/usr/bin/openmamba-netsrpms",[self.NetsrpmsArg,self.srpm[self.contatore]])
except:
self.contatore = 0
if self.NetsrpmsArg == '-c':
self.SRPMSAskAndInstall()
else:
self.lista = []
self.NetsrpmsArg = '-c'
self.checkSRPMSUpdatesTimer.start((self.nOre * 60) * 60000)
# run for each netsrpm at the end of SRPMUpdateProcess
def SRPMSCheckUpgrade(self, status):
if status == 1:
self.lista.append(self.srpm[self.contatore])
self.contatore += 1
self.SRPMSCheckUpgradeList()
# netsrpm updates ask and install
def SRPMSAskAndInstall(self):
if not self.lista == []:
self.Lista = self.PrintLista()
msg = QMessageBox.question(self.menu,
(_("Not Open Source {} components").format(distro.name())),
(_("The following components are available for update: ") +
"\n\n" + self.Lista + "\n\n" + _("Ok to proceed?")),
QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes)
if msg == QMessageBox.Yes:
self.NetsrpmsArg = '-u'
self.SRPMSCheckUpgradeList()
else:
self.lista = []
self.checkSRPMSUpdatesTimer.start((self.nOre * 60) * 60000)
else:
self.checkSRPMSUpdatesTimer.start((self.nOre * 60) * 60000)
# starting from the list "lista" returns the list in readable format
# FIXME: make this code more clear and clean
def PrintLista(self):
testo = ''
for a in self.lista:
testo = testo + a + ', '
return testo[0:len(testo)-2]
if __name__ == '__main__':
app = QApplication(sys.argv)
app.setDesktopFileName("mambatray")
if app.isSessionRestored():
app.exit(1)
else:
app.setQuitOnLastWindowClosed(0)
gettext.install('mambatray', '/usr/share/locale')
trayIcon = SystemTrayIcon(QIcon.fromTheme("mambatray"))
trayIcon.show()
sys.exit(app.exec())

View File

@ -1,2 +1,2 @@
EXTRA_DIST = it.po es.po
POFILES = it.po es.po
EXTRA_DIST = it.po es.po fr.po
POFILES = it.po es.po fr.po

112
po/es.po
View File

@ -5,77 +5,89 @@
msgid ""
msgstr ""
"Project-Id-Version: 1.90\n"
"POT-Creation-Date: 2011-04-26 18:37+CEST\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-19 12:53+0200\n"
"PO-Revision-Date: 2011-04-26 18:37+CEST\n"
"Last-Translator: Silvan Calarco <silvan.calarco@mambasot.it>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"
#: mambatray.py:102 mambatray.py:134
msgid "About"
msgstr "Sobre"
#: src/mambatray:27
msgid "Software"
msgstr ""
#: src/mambatray:28
#: mambatray.py:68
msgid "Add/Remove software packages..."
msgstr "Añadir/Eliminar paquetes software..."
#: src/mambatray:31
#: mambatray.py:71
msgid "Check for updates now..."
msgstr "Controla la disponibilidad de actualizaciones..."
#: src/mambatray:34
msgid "openmamba components..."
msgstr "Componentes de openmamba..."
#: src/mambatray:44
msgid "Network"
msgstr "Red"
#: src/mambatray:45
msgid "Firewall"
msgstr ""
#: src/mambatray:46
msgid "Disable"
msgstr "Desactiva"
#: src/mambatray:49
msgid "Enable"
msgstr "Activa"
#: src/mambatray:52
#: mambatray.py:94
msgid "Configure..."
msgstr "Configura..."
#: src/mambatray:54
msgid "Proxy..."
msgstr ""
#: src/mambatray:59
msgid "About"
msgstr ""
#: src/mambatray:63
msgid "openmamba control center"
msgstr "Centro de control de openmamba"
#: src/mambatray:91
msgid "Firewall disabled in current session"
msgstr "Firewall desactivado en la sesión actual"
#: src/mambatray:93
#: mambatray.py:168
msgid "Could not disable firewall"
msgstr "No se ha podido desactivar el firewall"
#: src/mambatray:100
msgid "Firewall enabled in current session"
msgstr "Firewall activo en la sesión actual"
#: src/mambatray:102
#: mambatray.py:177
msgid "Could not enable firewall"
msgstr "No se ha podido activar el firewall"
#: mambatray.py:88
msgid "Disable"
msgstr "Desactiva"
#: mambatray.py:91
msgid "Enable"
msgstr "Activa"
#: mambatray.py:87
msgid "Firewall"
msgstr "Firewall"
#: mambatray.py:166
msgid "Firewall disabled in current session"
msgstr "Firewall desactivado en la sesión actual"
#: mambatray.py:175
msgid "Firewall enabled in current session"
msgstr "Firewall activo en la sesión actual"
#: mambatray.py:86
msgid "Network"
msgstr "Red"
#: mambatray.py:222
msgid "Not Open Source {} components"
msgstr "No componentes de código abierto de {}"
#: mambatray.py:223
msgid "Ok to proceed?"
msgstr "Bien para proceder?"
#: mambatray.py:96
msgid "Proxy..."
msgstr "Proxy..."
#: mambatray.py:67
msgid "Software"
msgstr "Software"
#: mambatray.py:223
msgid "The following components are available for update: "
msgstr "Los siguientes componentes están disponibles para actualizar"
#: mambatray.py:74
msgid "{} components..."
msgstr "Componentes de {}..."
#: mambatray.py:105 mambatray.py:135
msgid "{} control center"
msgstr "Centro de control de {}"

93
po/fr.po Normal file
View File

@ -0,0 +1,93 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: 1.90\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-19 12:53+0200\n"
"PO-Revision-Date: 2011-04-26 18:37+CEST\n"
"Last-Translator: Silvan Calarco <silvan.calarco@mambasot.it>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"
#: mambatray.py:102 mambatray.py:134
msgid "About"
msgstr "Informations"
#: mambatray.py:68
msgid "Add/Remove software packages..."
msgstr "Installer/Supprimer paquets logiciels..."
#: mambatray.py:71
msgid "Check for updates now..."
msgstr "Mise à jour du système..."
#: mambatray.py:94
msgid "Configure..."
msgstr "Configurer..."
#: mambatray.py:168
msgid "Could not disable firewall"
msgstr "Impossible de désactiver le pare-feu"
#: mambatray.py:177
msgid "Could not enable firewall"
msgstr "Impossible d'activer le pare-feu"
#: mambatray.py:88
msgid "Disable"
msgstr "Désactiver"
#: mambatray.py:91
msgid "Enable"
msgstr "Activer"
#: mambatray.py:87
msgid "Firewall"
msgstr "Pare-feu"
#: mambatray.py:166
msgid "Firewall disabled in current session"
msgstr "Pare-feu désactivé pour la session en cours"
#: mambatray.py:175
msgid "Firewall enabled in current session"
msgstr "Pare-feu activé pour la session en cours"
#: mambatray.py:86
msgid "Network"
msgstr "Réseau"
#: mambatray.py:222
msgid "Not Open Source {} components"
msgstr "Composants non open source de {}"
#: mambatray.py:223
msgid "Ok to proceed?"
msgstr "Mettre à jour maintenant?"
#: mambatray.py:96
msgid "Proxy..."
msgstr "Proxy..."
#: mambatray.py:67
msgid "Software"
msgstr "Logiciels"
#: mambatray.py:223
msgid "The following components are available for update: "
msgstr "Les composants suivants sont disponibles pour la mise à jour: "
#: mambatray.py:74
msgid "{} components..."
msgstr "Composants de {}..."
#: mambatray.py:105 mambatray.py:135
msgid "{} control center"
msgstr "Centre de contrôle de {}"

124
po/it.po
View File

@ -5,97 +5,89 @@
msgid ""
msgstr ""
"Project-Id-Version: 1.90\n"
"POT-Creation-Date: 2011-04-26 18:37+CEST\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-19 12:53+0200\n"
"PO-Revision-Date: 2011-04-26 18:37+CEST\n"
"Last-Translator: Silvan Calarco <silvan.calarco@mambasot.it>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"
#: src/mambatray:27
msgid "Software"
msgstr ""
#: src/mambatray:28
msgid "Add/Remove software packages..."
msgstr "Aggiungi/Rimuovi pacchetti software..."
#: src/mambatray:31
msgid "Check for updates now..."
msgstr "Aggiorna il sistema..."
#: src/mambatray:34
msgid "openmamba components..."
msgstr "Componenti di openmamba..."
#: src/mambatray:44
msgid "Network"
msgstr "Rete"
#: src/mambatray:45
msgid "Firewall"
msgstr ""
#: src/mambatray:46
msgid "Disable"
msgstr "Disabilita"
#: src/mambatray:49
msgid "Enable"
msgstr "Abilita"
#: src/mambatray:52
msgid "Configure..."
msgstr "Configura..."
#: src/mambatray:54
msgid "Proxy..."
msgstr ""
#: src/mambatray:59
#: mambatray.py:102 mambatray.py:134
msgid "About"
msgstr "Informazioni"
#: src/mambatray:63
msgid "openmamba control center"
msgstr "Centro di controllo di openmamba"
#: mambatray.py:68
msgid "Add/Remove software packages..."
msgstr "Aggiungi/Rimuovi applicazioni..."
#: src/mambatray:91
msgid "Firewall disabled in current session"
msgstr "Firewall disabilitato per la sessione corrente"
#: mambatray.py:71
msgid "Check for updates now..."
msgstr "Verifica la presenza di aggiornamenti..."
#: src/mambatray:93
#: mambatray.py:94
msgid "Configure..."
msgstr "Configura..."
#: mambatray.py:168
msgid "Could not disable firewall"
msgstr "Non è stato possibile disabilitare il firewall"
#: src/mambatray:100
msgid "Firewall enabled in current session"
msgstr "Firewall abilitato per la sessione corrente"
#: src/mambatray:102
#: mambatray.py:177
msgid "Could not enable firewall"
msgstr "Non è stato possibile abilitare il firewall"
msgid "Not Open Source openmamba components"
msgstr "Componenti non Open Source di openmamba"
#: mambatray.py:88
msgid "Disable"
msgstr "Disabilita"
msgid "The following components are available for update: "
msgstr "I seguenti componenti sono disponibili per l'aggiornamento: "
#: mambatray.py:91
msgid "Enable"
msgstr "Abilita"
#: mambatray.py:87
msgid "Firewall"
msgstr "Firewall"
#: mambatray.py:166
msgid "Firewall disabled in current session"
msgstr "Firewall disabilitato per la sessione corrente"
#: mambatray.py:175
msgid "Firewall enabled in current session"
msgstr "Firewall abilitato per la sessione corrente"
#: mambatray.py:86
msgid "Network"
msgstr "Rete"
#: mambatray.py:222
msgid "Not Open Source {} components"
msgstr "Componenti non Open Source di {}"
#: mambatray.py:223
msgid "Ok to proceed?"
msgstr "Aggiornare adesso?"
#: src/mambatray:107
msgid "Platform: "
msgstr "Piattaforma: "
#: mambatray.py:96
msgid "Proxy..."
msgstr "Proxy..."
msgid "System info:"
msgstr "Informazioni sul sistema:"
#: mambatray.py:67
msgid "Software"
msgstr "Software"
msgid "Error: Unable to find /etc/openmamba-release"
msgstr "Errore: Impossibile trovare il file /etc/openmamba-release"
#: mambatray.py:223
msgid "The following components are available for update: "
msgstr "I seguenti componenti sono disponibili per l'aggiornamento: "
#: mambatray.py:74
msgid "{} components..."
msgstr "Componenti di {}..."
#: mambatray.py:105 mambatray.py:135
msgid "{} control center"
msgstr "Centro di controllo di {}"

View File

@ -1,240 +0,0 @@
#!/usr/bin/python
# mambatray2
# Copyright (C) 2011 by Silvan Calarco
# Copyright (C) 2011 by michiamophil
# Distributed under the terms of the GPL version 3 FLOSS License
#
import sys
import os
import gettext
from PyQt4.QtCore import SIGNAL
from PyQt4 import QtGui
from PyQt4 import QtCore
class SystemTrayIcon(QtGui.QSystemTrayIcon):
def __init__(self, icon, parent=None):
global w, menu, contatore, srpm, lista, NetsrpmsArg, nOre, desktop_session
nOre = 2
srpm = ["skype", "flashplugin", "win32codecs", "msttcorefonts", "b43-firmware"]
NetsrpmsArg = "-c"
lista = []
contatore = 0
w = parent
QtGui.QSystemTrayIcon.__init__(self, icon, parent)
menu = QtGui.QMenu(parent)
desktop_session = QtCore.QString(os.getenv('DESKTOP_SESSION'))
if desktop_session == 'default':
desktop_session = QtCore.QString('kde')
if desktop_session.left(3) == 'kde':
desktop_session = QtCore.QString('kde')
# refresh packages cache timer
global refreshPackagesTimer, refreshPackagesCacheProcess, checkSRPMSUpdatesTimer, SRPMUpdateProcess
refreshPackagesTimer = QtCore.QTimer(self)
checkSRPMSUpdatesTimer = QtCore.QTimer(self)
refreshPackagesCacheProcess = QtCore.QProcess(self)
SRPMUpdateProcess = QtCore.QProcess(self)
self.connect(refreshPackagesTimer, SIGNAL("timeout()"), self.refreshPackagesCache)
self.connect(refreshPackagesCacheProcess, SIGNAL("finished(int,QProcess::ExitStatus)"), self.restartRefreshPackagesTimer)
self.connect(checkSRPMSUpdatesTimer, SIGNAL("timeout()"), self.SRPMSCheckUpgradeList)
# software menu
global softwareManagerProcess, softwareCheckUpgradesProcess, softwareBaseInstallsProcess, dcopServerProcess
softwareManagerProcess = QtCore.QProcess(self)
softwareCheckUpgradesProcess = QtCore.QProcess(self)
softwareBaseInstallsProcess = QtCore.QProcess(self)
dcopServerProcess = QtCore.QProcess(self)
softwareMenu = menu.addMenu(QtGui.QIcon.fromTheme("applications-system"),_("Software"))
softwareManageAction = softwareMenu.addAction(QtGui.QIcon.fromTheme("applications-other"),_("Add/Remove software packages..."))
self.connect(softwareManageAction, SIGNAL("triggered()"), self.softwareManager)
softwareCheckUpgradesAction = softwareMenu.addAction(QtGui.QIcon.fromTheme("system-software-update"),_("Check for updates now..."))
self.connect(softwareCheckUpgradesAction, SIGNAL("triggered()"), self.softwareCheckUpgrades)
softwareBaseInstallsAction = softwareMenu.addAction(QtGui.QIcon.fromTheme("openmamba"),_("openmamba components..."))
self.connect(softwareBaseInstallsAction, SIGNAL("triggered()"), self.softwareBaseInstalls)
# network menu
global networkFirewallDisableProcess, networkFirewallEnableProcess, networkFirewallConfigureProcess, networkProxyProcess
networkFirewallDisableProcess = QtCore.QProcess(self)
networkFirewallEnableProcess = QtCore.QProcess(self)
networkFirewallConfigureProcess = QtCore.QProcess(self)
networkProxyProcess = QtCore.QProcess(self)
networkMenu = menu.addMenu(QtGui.QIcon.fromTheme("preferences-system-network"),_("Network"))
networkFirewallMenu = networkMenu.addMenu(QtGui.QIcon.fromTheme("security-medium"),_("Firewall"))
networkFirewallDisableAction = networkFirewallMenu.addAction(QtGui.QIcon.fromTheme("security-low"),_("Disable"))
self.connect(networkFirewallDisableAction, SIGNAL("triggered()"), self.networkFirewallDisable)
self.connect(networkFirewallDisableProcess, SIGNAL("finished(int,QProcess::ExitStatus)"), self.networkFirewallDisableMessage)
networkFirewallEnableAction = networkFirewallMenu.addAction(QtGui.QIcon.fromTheme("security-high"),_("Enable"))
self.connect(networkFirewallEnableAction, SIGNAL("triggered()"), self.networkFirewallEnable)
self.connect(networkFirewallEnableProcess, SIGNAL("finished(int,QProcess::ExitStatus)"), self.networkFirewallEnableMessage)
networkFirewallConfigureAction = networkFirewallMenu.addAction(QtGui.QIcon.fromTheme("security-medium"),_("Configure..."))
self.connect(networkFirewallConfigureAction, SIGNAL("triggered()"), self.networkFirewallConfigure)
networkProxyAction = networkMenu.addAction(QtGui.QIcon.fromTheme("network-server"),_("Proxy..."))
self.connect(networkProxyAction, SIGNAL("triggered()"), self.networkProxy)
self.connect(SRPMUpdateProcess, SIGNAL("finished(int,QProcess::ExitStatus)"), self.SRPMSCheckUpgrade)
# about box
aboutAction = menu.addSeparator()
aboutAction = menu.addAction(QtGui.QIcon.fromTheme("help-about"),_("About"))
self.connect(aboutAction, SIGNAL("triggered()"), self.about)
self.setContextMenu(menu)
self.setToolTip(_("openmamba control center"))
self.activated.connect(self.iconActivated)
# the first time refresh packages cache after 5 minutes
refreshPackagesTimer.start( 5 * 60000 )
# the first time check for SRPMS updates after 4 minutes
checkSRPMSUpdatesTimer.start( 4 * 60000 )
def iconActivated(self, reason):
if reason in (QtGui.QSystemTrayIcon.Trigger, QtGui.QSystemTrayIcon.DoubleClick):
menu.popup(self.geometry().center())
def about(self):
global version
path = '/etc/openmamba-release'
if os.path.exists(path):
v = open(path, 'r')
version = v.read()
a = self.FormattaInfo()
version = "<ul><li>"+_("<font color=\"green\">open</font>mamba release:")+" <i>"+a[0]+"</i><li>"+_("Platform: ")+"<i>"+a[1]+"</i></ul>"
v.close()
else:
version = _("Error: Unable to find /etc/openmamba-release")
QtGui.QMessageBox.about(menu, _("About"),
"<center><b>"+_("openmamba control center")+"</b>"
"<br><br>Copyright(c) 2011 by Silvan Calarco"
"<br>Copyright(c) 2011 by michiamophil"
"<br><br><b>"+_("System info:")+"</b></center>"
""+_(version)+"<center><a href=\"http://www.openmamba.org\">http://www.openmamba.org</a></center>")
def FormattaInfo(self):
result = []
v = version
#result[0]=versione
result.append(v[ v.find("openmamba release ")+18 : v.find(" for") ] + " " + v[ v.find("(") : v.find(")")+1 ])
#result[1] = piattaforma
result.append(v[ v.find("for")+4 : v.find("(") ])
return result
def softwareManager(self):
if desktop_session == 'kde':
softwareManagerProcess.execute("/opt/kde/bin/apper")
else:
softwareManagerProcess.execute("/usr/bin/gpk-application")
def softwareCheckUpgrades(self):
if desktop_session == 'kde':
softwareCheckUpgradesProcess.start("/opt/kde/bin/apper", ['--updates'])
else:
softwareCheckUpgradesProcess.start("/usr/bin/gpk-update-viewer")
def refreshPackagesCache(self):
refreshPackagesTimer.stop()
refreshPackagesCacheProcess.start("/usr/bin/pkcon", ['refresh'])
def restartRefreshPackagesTimer(self,status):
# check every 4 hours and 31 minutes */
refreshPackagesTimer.start( (4 * 60 + 31) * 60000)
def softwareBaseInstalls(self):
dcopServerProcess.startDetached("/opt/kde3/bin/dcopserver")
softwareBaseInstallsProcess.start("/opt/kde3/bin/kmdr-executor", ['/usr/share/openmamba/mambabase/mambabase.kmdr'])
def networkFirewallDisable(self):
networkFirewallDisableProcess.start("sudo",['/sbin/service','iptables','stop'])
def networkFirewallDisableMessage(self,status):
if (status == QtCore.QProcess.NormalExit):
self.showMessage("Firewall", _("Firewall disabled in current session"))
else:
self.showMessage("Firewall", _("Could not disable firewall"))
def networkFirewallEnable(self):
networkFirewallEnableProcess.start("sudo",['/usr/sbin/ufw','enable'])
def networkFirewallEnableMessage(self,status):
if (status == QtCore.QProcess.NormalExit):
self.showMessage("Firewall", _("Firewall enabled in current session"))
else:
self.showMessage("Firewall", _("Could not enable firewall"))
def networkFirewallConfigure(self):
if desktop_session == 'kde':
networkFirewallConfigureProcess.execute("/opt/kde/bin/kcmshell4", QtCore.QStringList(list(set(['ufw']))))
else:
networkFirewallConfigureProcess.execute("/usr/bin/gufw")
def networkProxy(self):
if desktop_session == 'kde':
networkProxyProcess.execute("/opt/kde/bin/kcmshell4", QtCore.QStringList(list(set(['proxy']))))
elif desktop_session == 'gnome':
networkProxyProcess.execute("/usr/bin/gnome-network-properties")
def SRPMSCheckUpgradeList(self):
checkSRPMSUpdatesTimer.stop()
global contatore, lista, NetsrpmsArg
try:
SRPMUpdateProcess.start("/usr/bin/openmamba-netsrpms",[NetsrpmsArg,srpm[contatore]])
except: #supera il limite dell'indice nella lista
contatore = 0
if NetsrpmsArg == '-c':
self.SRPMSAskAndInstall()
else:
lista = []
NetsrpmsArg = '-c'
checkSRPMSUpdatesTimer.start((nOre * 60) * 60000)
#viene eseguita per ogni SRPM al termine del processo SRPMUpdateProcess
def SRPMSCheckUpgrade(self, status):
global contatore, lista
if status == 1:
lista.append(srpm[contatore])
contatore += 1
self.SRPMSCheckUpgradeList()
#viene eseguita una volta terminata la fase di controllo degli aggiornamenti
def SRPMSAskAndInstall(self):
global NetsrpmsArg, lista
if not lista == []:
Lista = self.Lista()
msg = QtGui.QMessageBox.question(menu, (_("Not Open Source openmamba components")), (_("The following components are available for update: ") + "\n\n" + Lista + "\n\n" + _("Ok to proceed?")), QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.Yes)
if msg == QtGui.QMessageBox.Yes:
NetsrpmsArg = '-u'
self.SRPMSCheckUpgradeList()
else:
lista = []
checkSRPMSUpdatesTimer.start((nOre * 60) * 60000)
else:
checkSRPMSUpdatesTimer.start((nOre * 60) * 60000)
#partendo dalla lista lista (scusate il gioco di parole :) ) restituisce la lista in modo 'leggibile'
def Lista(self):
testo = ''
for a in lista:
testo = testo + a + ', '
return testo[0:len(testo)-2]
def main():
app = QtGui.QApplication(sys.argv)
if (app.isSessionRestored()):
app.exit(1)
else:
app.setQuitOnLastWindowClosed(0)
gettext.install('mambatray', '/usr/share/locale', unicode=1)
w = QtGui.QWidget()
w.setWindowIcon(QtGui.QIcon.fromTheme("mambatray",QtGui.QIcon("/usr/share/icons/hicolor/64x64/apps/mambatray.png")))
trayIcon = SystemTrayIcon(QtGui.QIcon.fromTheme("mambatray", QtGui.QIcon("/usr/share/icons/hicolor/32x32/apps/mambatray.png")), w)
trayIcon.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()

6
update-translations.sh Executable file
View File

@ -0,0 +1,6 @@
#!/bin/bash
xgettext -s -o - mambatray.py --output=po/messages.pot
for l in it es fr; do
msgmerge --update --no-fuzzy-matching --backup=off po/$l.po po/messages.pot
done
#lupdate-qt5 *.ui -ts mambatray_it.ts