Compare commits
24 Commits
fav-scroll
...
master
Author | SHA1 | Date | |
---|---|---|---|
|
7c0bcbb5b7 | ||
|
f9325f2870 | ||
|
4ab8d2120c | ||
|
b0ab8320da | ||
|
a31731f127 | ||
|
2e0f503d08 | ||
|
3feda3af08 | ||
|
90ad278098 | ||
|
cf76c4837e | ||
|
d8820edd7d | ||
|
185b925b6b | ||
|
7c034738de | ||
|
c3bea70396 | ||
|
9976deca28 | ||
|
e4eab43d06 | ||
|
90688a9c9f | ||
|
63e9034896 | ||
|
d97d912a97 | ||
|
b08050dfbb | ||
|
772a10bb7a | ||
|
9b96af6602 | ||
|
905b9b1a94 | ||
|
94dec8415f | ||
|
57632a3e30 |
44
debian/changelog
vendored
44
debian/changelog
vendored
@ -1,3 +1,47 @@
|
||||
mintmenu (6.1.7) victoria; urgency=medium
|
||||
|
||||
[ Michael Webster ]
|
||||
* Add our own 'all applications' icon for consistency.
|
||||
|
||||
-- Clement Lefebvre <root@linuxmint.com> Mon, 26 Jun 2023 11:07:53 +0200
|
||||
|
||||
mintmenu (6.1.6) victoria; urgency=medium
|
||||
|
||||
[ Michael Webster ]
|
||||
* Use XAppGpuOffloadHelper for gpu offloading, respect PrefersNonDefaultGPU desktop entry key.
|
||||
|
||||
-- Clement Lefebvre <root@linuxmint.com> Mon, 05 Jun 2023 13:40:15 +0100
|
||||
|
||||
mintmenu (6.1.5) vera; urgency=medium
|
||||
|
||||
[ monsta ]
|
||||
* remove mint-common dependency (#274)
|
||||
|
||||
-- Clement Lefebvre <root@linuxmint.com> Mon, 21 Nov 2022 11:57:37 +0000
|
||||
|
||||
mintmenu (6.1.4) uma; urgency=medium
|
||||
|
||||
* Recent: Fix buttons layout
|
||||
|
||||
-- Clement Lefebvre <root@linuxmint.com> Thu, 01 Jul 2021 13:39:07 +0100
|
||||
|
||||
mintmenu (6.1.3) uma; urgency=medium
|
||||
|
||||
[ Vincent Vermeulen ]
|
||||
* fix recently used documents sorting
|
||||
|
||||
-- Clement Lefebvre <root@linuxmint.com> Fri, 25 Jun 2021 16:34:15 +0100
|
||||
|
||||
mintmenu (6.1.2) ulyssa; urgency=medium
|
||||
|
||||
[ Vincent Vermeulen ]
|
||||
* fix APT search
|
||||
|
||||
[ Clement Lefebvre ]
|
||||
* Favorites: Add a scrolledwindow (#263)
|
||||
|
||||
-- Clement Lefebvre <root@linuxmint.com> Sat, 02 Jan 2021 22:21:33 +0000
|
||||
|
||||
mintmenu (6.1.1) ulyana; urgency=medium
|
||||
|
||||
[ Michael Webster ]
|
||||
|
1
debian/control
vendored
1
debian/control
vendored
@ -9,7 +9,6 @@ Package: mintmenu
|
||||
Architecture: all
|
||||
Depends:
|
||||
${misc:Depends},
|
||||
mint-common,
|
||||
python3,
|
||||
python3-apt,
|
||||
python3-configobj,
|
||||
|
@ -10,6 +10,7 @@ import traceback
|
||||
import gi
|
||||
gi.require_version("Gtk", "3.0")
|
||||
gi.require_version('MatePanelApplet', '4.0')
|
||||
gi.require_version('XApp', '1.0')
|
||||
from gi.repository import Gtk, GdkPixbuf, Gdk, GObject
|
||||
from gi.repository import MatePanelApplet
|
||||
from gi.repository import Gio
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
import cgi
|
||||
import html
|
||||
import filecmp
|
||||
import gettext
|
||||
import locale
|
||||
@ -191,6 +191,10 @@ class pluginclass(object):
|
||||
|
||||
self.canOffload = False
|
||||
|
||||
try:
|
||||
helper = XApp.GpuOffloadHelper.get_sync()
|
||||
self.canOffload = helper.is_offload_supported()
|
||||
except AttributeError:
|
||||
try:
|
||||
self.canOffload = XApp.util_gpu_offload_supported()
|
||||
except AttributeError:
|
||||
@ -620,7 +624,7 @@ class pluginclass(object):
|
||||
self.suggestions.append(item)
|
||||
|
||||
def add_search_suggestions(self, text):
|
||||
text = "<b>%s</b>" % cgi.escape(text)
|
||||
text = "<b>%s</b>" % html.escape(text)
|
||||
if self.enableInternetSearch:
|
||||
self.add_suggestion("/usr/lib/linuxmint/mintMenu/search_engines/ddg.svg",
|
||||
_("Search DuckDuckGo for %s") % text, None, self.search_ddg)
|
||||
@ -769,16 +773,24 @@ class pluginclass(object):
|
||||
i.hide()
|
||||
else:
|
||||
shownList.append(i)
|
||||
#if this is the first matching item
|
||||
#focus it
|
||||
if(not showns):
|
||||
i.grab_focus()
|
||||
self.applicationsBox.remove(i)
|
||||
showns = True
|
||||
if not showns:
|
||||
if len(text) >= 3:
|
||||
self.add_search_suggestions(text)
|
||||
if self.useAPT:
|
||||
GLib.timeout_add(300, self.add_apt_filter_results, text)
|
||||
else:
|
||||
# Sort applications by relevance, and alphabetical within that
|
||||
shownList = sorted(shownList, key=lambda app: app.appName)
|
||||
shownList = sorted(shownList, key=lambda app: app.relevance, reverse=True)
|
||||
focused = False
|
||||
for i in shownList:
|
||||
self.applicationsBox.add(i)
|
||||
if not focused:
|
||||
# Grab focus of the first app shown
|
||||
i.grab_focus()
|
||||
focused = True
|
||||
for i in self.categoriesBox.get_children():
|
||||
i.released()
|
||||
i.set_relief(Gtk.ReliefStyle.NONE)
|
||||
@ -1640,7 +1652,7 @@ class pluginclass(object):
|
||||
# Build a list of all categories in the menu ([{"name", "icon", tooltip"}]
|
||||
def buildCategoryList(self):
|
||||
newCategoryList = [{"name": _("All"),
|
||||
"icon": "start-here-symbolic",
|
||||
"icon": "mintmenu-all-applications-symbolic",
|
||||
"tooltip": _("Show all applications"),
|
||||
"filter":"", "index": 0}]
|
||||
num = 1
|
||||
|
@ -234,6 +234,7 @@ class ApplicationLauncher(easyButton):
|
||||
|
||||
self.desktopFile = desktopFile
|
||||
self.startupMonitorId = 0
|
||||
self.relevance = 0
|
||||
|
||||
self.loadDesktopEntry(desktopItem)
|
||||
|
||||
@ -268,6 +269,7 @@ class ApplicationLauncher(easyButton):
|
||||
self.appMateDocPath = desktopItem.get("X-MATE-DocPath") or ""
|
||||
self.useTerminal = desktopItem.getTerminal()
|
||||
self.appPath = desktopItem.getPath()
|
||||
self.prefersOffload = desktopItem.get("PrefersNonDefaultGPU", "Desktop Entry", type="boolean")
|
||||
|
||||
if not self.appMateDocPath:
|
||||
self.appKdeDocPath = desktopItem.getDocPath() or ""
|
||||
@ -305,11 +307,28 @@ class ApplicationLauncher(easyButton):
|
||||
|
||||
def filterText(self, text):
|
||||
keywords = self.strip_case_and_accents(text).split()
|
||||
self.relevance = 0
|
||||
|
||||
appName = self.strip_case_and_accents(self.appName)
|
||||
appGenericName = self.strip_case_and_accents(self.appGenericName)
|
||||
appComment = self.strip_case_and_accents(self.appComment)
|
||||
appExec = self.strip_case_and_accents(self.appExec)
|
||||
|
||||
for keyword in keywords:
|
||||
if appName == keyword:
|
||||
self.relevance += 32
|
||||
elif appName.find(keyword) == 0:
|
||||
self.relevance += 16
|
||||
elif appName.find(keyword) != -1:
|
||||
self.relevance += 8
|
||||
|
||||
if appExec.find(keyword) != -1:
|
||||
self.relevance += 4
|
||||
if appComment.find(keyword) != -1:
|
||||
self.relevance += 2
|
||||
if appGenericName.find(keyword) != -1:
|
||||
self.relevance += 1
|
||||
|
||||
if keyword != "" and appName.find(keyword) == -1 and appGenericName.find(keyword) == -1 and appComment.find(keyword) == -1 and appExec.find(keyword) == -1:
|
||||
self.hide()
|
||||
return False
|
||||
@ -355,6 +374,9 @@ class ApplicationLauncher(easyButton):
|
||||
except KeyError:
|
||||
pass
|
||||
|
||||
if self.prefersOffload:
|
||||
offload = True
|
||||
|
||||
Execute(None, desktopFile=self.desktopFile, offload=offload)
|
||||
|
||||
def uninstall(self, *args):
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
import os
|
||||
from gi.repository import Gio, GLib, Gdk
|
||||
from gi.repository import Gio, GLib, Gdk, XApp
|
||||
|
||||
|
||||
def RemoveArgs(Execline):
|
||||
@ -32,6 +32,17 @@ def Execute(cmd , commandCwd=None, desktopFile=None, offload=False):
|
||||
if offload:
|
||||
print("Offloading '%s' to discrete gpu." % launcher.get_name());
|
||||
|
||||
try:
|
||||
helper = XApp.GpuOffloadHelper.get_sync()
|
||||
infos = helper.get_offload_infos()
|
||||
|
||||
if infos:
|
||||
i = 0
|
||||
env_strv = infos[0].env_strv
|
||||
while i < len(env_strv):
|
||||
context.setenv(env_strv[i], env_strv[i + 1])
|
||||
i += 2
|
||||
except AttributeError:
|
||||
context.setenv("__NV_PRIME_RENDER_OFFLOAD", "1")
|
||||
context.setenv("__GLX_VENDOR_LIBRARY_NAME", "nvidia");
|
||||
|
||||
|
@ -7,7 +7,7 @@ import subprocess
|
||||
|
||||
import gi
|
||||
gi.require_version("Gtk", "3.0")
|
||||
from gi.repository import Gtk, Gio
|
||||
from gi.repository import Gtk, Gio, Pango
|
||||
|
||||
import plugins.recentHelper as RecentHelper
|
||||
from plugins.execute import Execute
|
||||
@ -174,7 +174,7 @@ class pluginclass:
|
||||
Box1.add(ButtonIcon)
|
||||
|
||||
Label1 = Gtk.Label(DispName)
|
||||
Label1.set_ellipsize(3)
|
||||
Label1.set_ellipsize(Pango.EllipsizeMode.END)
|
||||
Box1.add(Label1)
|
||||
|
||||
AButton.add(Box1)
|
||||
@ -197,7 +197,7 @@ class pluginclass:
|
||||
def GetRecent(self, *args, **kargs):
|
||||
FileString=[]
|
||||
IconString=[]
|
||||
RecentInfo=self.RecManagerInstance.get_items()
|
||||
RecentInfo=sorted(self.RecManagerInstance.get_items(), key=lambda item: item.get_modified(), reverse=True)
|
||||
count=0
|
||||
MaxEntries=self.numentries
|
||||
if self.numentries == -1:
|
||||
|
@ -0,0 +1,39 @@
|
||||
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg xmlns:cc='http://creativecommons.org/ns#' xmlns:dc='http://purl.org/dc/elements/1.1/' sodipodi:docname='view-grid-symbolic.svg' height='16' id='svg7384' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns:svg='http://www.w3.org/2000/svg' inkscape:version='0.48.2 r9819' version='1.1' width='16' xmlns='http://www.w3.org/2000/svg'>
|
||||
<metadata id='metadata90'>
|
||||
<rdf:RDF>
|
||||
<cc:Work rdf:about=''>
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'/>
|
||||
<dc:title>Cinnamon All Applications</dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview inkscape:bbox-paths='false' bordercolor='#666666' borderopacity='1' inkscape:current-layer='layer12' inkscape:cx='84.99158' inkscape:cy='6.64106' gridtolerance='10' inkscape:guide-bbox='true' guidetolerance='10' id='namedview88' inkscape:object-nodes='false' inkscape:object-paths='false' objecttolerance='10' pagecolor='#555753' inkscape:pageopacity='1' inkscape:pageshadow='2' showborder='false' showgrid='false' showguides='true' inkscape:snap-bbox='true' inkscape:snap-bbox-midpoints='false' inkscape:snap-global='true' inkscape:snap-grids='true' inkscape:snap-nodes='false' inkscape:snap-others='false' inkscape:snap-to-guides='true' inkscape:window-height='1168' inkscape:window-maximized='1' inkscape:window-width='1600' inkscape:window-x='0' inkscape:window-y='0' inkscape:zoom='1'>
|
||||
<inkscape:grid empspacing='2' enabled='true' id='grid4866' snapvisiblegridlinesonly='true' spacingx='1px' spacingy='1px' type='xygrid' visible='true'/>
|
||||
</sodipodi:namedview>
|
||||
<title id='title9167'>Cinnamon All Applications</title>
|
||||
<defs id='defs7386'/>
|
||||
<g inkscape:groupmode='layer' id='layer9' inkscape:label='status' style='display:inline' transform='translate(-61.0004,-867)'/>
|
||||
<g inkscape:groupmode='layer' id='layer10' inkscape:label='devices' transform='translate(-61.0004,-867)'/>
|
||||
<g inkscape:groupmode='layer' id='layer11' inkscape:label='apps' transform='translate(-61.0004,-867)'/>
|
||||
<g inkscape:groupmode='layer' id='layer13' inkscape:label='places' transform='translate(-61.0004,-867)'/>
|
||||
<g inkscape:groupmode='layer' id='layer14' inkscape:label='mimetypes' transform='translate(-61.0004,-867)'/>
|
||||
<g inkscape:groupmode='layer' id='layer15' inkscape:label='emblems' style='display:inline' transform='translate(-61.0004,-867)'/>
|
||||
<g inkscape:groupmode='layer' id='g71291' inkscape:label='emotes' style='display:inline' transform='translate(-61.0004,-867)'/>
|
||||
<g inkscape:groupmode='layer' id='g4953' inkscape:label='categories' style='display:inline' transform='translate(-61.0004,-867)'/>
|
||||
<g inkscape:groupmode='layer' id='layer12' inkscape:label='actions' style='display:inline' transform='translate(-61.0004,-867)'>
|
||||
|
||||
<rect height='2' id='rect13363' rx='0.38461545' ry='0.37878788' style='color:#000000;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new' width='2.0000002' x='64.000198' y='870'/>
|
||||
<rect height='2' id='rect13365' rx='0.38461545' ry='0.37878788' style='color:#000000;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new' width='2.0000002' x='68.000198' y='870'/>
|
||||
<rect height='2' id='rect13367' rx='0.38461545' ry='0.37878788' style='color:#000000;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new' width='2.0000002' x='72.000198' y='870'/>
|
||||
<rect height='2' id='rect13369' rx='0.38461545' ry='0.37878788' style='color:#000000;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new' width='2.0000002' x='64.000198' y='874.01562'/>
|
||||
<rect height='2' id='rect13371' rx='0.38461545' ry='0.37878788' style='color:#000000;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new' width='2.0000002' x='68.000198' y='874.01562'/>
|
||||
<rect height='2' id='rect13373' rx='0.38461545' ry='0.37878788' style='color:#000000;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new' width='2.0000002' x='72.000198' y='874.01562'/>
|
||||
<rect height='2' id='rect13375' rx='0.38461545' ry='0.37878788' style='color:#000000;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new' width='2.0000002' x='64.000198' y='878'/>
|
||||
<rect height='2' id='rect13377' rx='0.38461545' ry='0.37878788' style='color:#000000;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new' width='2.0000002' x='68.000198' y='878'/>
|
||||
<rect height='2' id='rect13379' rx='0.38461545' ry='0.37878788' style='color:#000000;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new' width='2.0000002' x='72.000198' y='878'/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 5.6 KiB |
@ -1,12 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.22.1 -->
|
||||
<!-- Generated with glade 3.22.2 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.0"/>
|
||||
<object class="GtkWindow" id="window1">
|
||||
<property name="can_focus">False</property>
|
||||
<property name="border_width">3</property>
|
||||
<property name="title" translatable="yes">window1</property>
|
||||
<child>
|
||||
<child type="titlebar">
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
@ -34,15 +34,19 @@
|
||||
<object class="GtkViewport" id="viewport1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="margin_top">6</property>
|
||||
<property name="margin_bottom">6</property>
|
||||
<property name="margin_left">12</property>
|
||||
<property name="margin_right">12</property>
|
||||
<property name="margin_top">12</property>
|
||||
<property name="margin_bottom">12</property>
|
||||
<property name="shadow_type">none</property>
|
||||
<child>
|
||||
<object class="GtkButtonBox" id="RecentBox">
|
||||
<object class="GtkBox" id="RecentBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="layout_style">start</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
@ -67,15 +71,16 @@
|
||||
<object class="GtkViewport" id="viewport2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="margin_top">6</property>
|
||||
<property name="margin_bottom">6</property>
|
||||
<property name="margin_left">12</property>
|
||||
<property name="margin_right">12</property>
|
||||
<property name="margin_top">12</property>
|
||||
<property name="margin_bottom">12</property>
|
||||
<property name="shadow_type">none</property>
|
||||
<child>
|
||||
<object class="GtkButtonBox" id="RecentApps">
|
||||
<object class="GtkBox" id="RecentApps">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="border_width">3</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="layout_style">start</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
|
Loading…
Reference in New Issue
Block a user