Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

upgrade cinnamon(6.2.9-1)unstable; urgency=medium #1

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
79 changes: 0 additions & 79 deletions .circleci/config.yml

This file was deleted.

7 changes: 7 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# .git-blame-ignore-revs
# Fix whitespace
19fa83fb64c300a4a3ca22b5e42ff082fe260bae
# Cleanup whitespace
18d2377f8839c842232e096570d7b25a46953f39
# Fix whitespace
367ff2c0c9719495a85bc9100d75460003f43865
14 changes: 13 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,13 @@
.pc/
debian/*.debhelper
debian/*.log
debian/*.substvars
debian/.debhelper/
debian/cinnamon-common/
debian/cinnamon-dbg/
debian/cinnamon-doc/
debian/cinnamon/
debian/debhelper-build-stamp
debian/files
debian/tmp/
obj-x86_64-linux-gnu
*.pyc
11 changes: 0 additions & 11 deletions .settings/.jsdtscope

This file was deleted.

148 changes: 0 additions & 148 deletions .settings/org.eclipse.cdt.core.prefs

This file was deleted.

4 changes: 0 additions & 4 deletions .settings/org.eclipse.cdt.ui.prefs

This file was deleted.

315 changes: 0 additions & 315 deletions .settings/org.eclipse.wst.jsdt.core.prefs

This file was deleted.

10 changes: 0 additions & 10 deletions .settings/org.eclipse.wst.jsdt.ui.prefs

This file was deleted.

1 change: 0 additions & 1 deletion .settings/org.eclipse.wst.jsdt.ui.superType.container

This file was deleted.

1 change: 0 additions & 1 deletion .settings/org.eclipse.wst.jsdt.ui.superType.name

This file was deleted.

4 changes: 2 additions & 2 deletions README.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Cinnamon is a Linux desktop which provides advanced innovative features and a traditional user experience.
Cinnamon is a Linux desktop that provides advanced innovative features and a traditional user experience.

The desktop layout is similar to Gnome 2 with underlying technology forked from Gnome Shell.
Cinnamon makes users feel at home with an easy to use and comfortable desktop experience.
Cinnamon makes users feel at home with an easy-to-use and comfortable desktop experience.


Contributing
6 changes: 6 additions & 0 deletions calendar-server/cinnamon-calendar-server.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/bin/sh

export GI_TYPELIB_PATH="@PKGLIBDIR@:@MUFFINLIBDIR@"
export LD_LIBRARY_PATH="@PKGLIBDIR@:@MUFFINLIBDIR@"

exec @LIBEXECDIR@/cinnamon-calendar-server.py $@
513 changes: 513 additions & 0 deletions calendar-server/cinnamon-calendar-server.py

Large diffs are not rendered by default.

20 changes: 20 additions & 0 deletions calendar-server/meson.build
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@

server_launcher_conf = configuration_data()
server_launcher_conf.set('MUFFINLIBDIR', muffin_typelibdir)
server_launcher_conf.set('PKGLIBDIR', join_paths(prefix, pkglibdir))
server_launcher_conf.set('LIBEXECDIR', join_paths(prefix, libexecdir))

launcher = configure_file(
input: 'cinnamon-calendar-server.in',
output: 'cinnamon-calendar-server',
configuration: server_launcher_conf,
install_dir: bindir,
install_mode: 'rwxr-xr-x'
)

install_data(
'cinnamon-calendar-server.py',
install_dir: libexecdir,
install_mode: 'rwxr-xr-x'
)

6 changes: 6 additions & 0 deletions cinnamon-wayland.session.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[Cinnamon Session]
Name=Cinnamon
RequiredComponents=cinnamon-wayland;nemo-autostart;@REQUIRED@
DesktopName=X-Cinnamon


4,134 changes: 2,423 additions & 1,711 deletions cinnamon.pot

Large diffs are not rendered by default.

16 changes: 16 additions & 0 deletions data/cinnamon-wayland.desktop.in.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
[Desktop Entry]
Type=Application
_Name=Cinnamon (Wayland session)
_Comment=Window management and application launching
Exec=cinnamon --replace
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=cinnamon
X-GNOME-Bugzilla-Component=general
X-GNOME-Bugzilla-Version=@VERSION@
Categories=GNOME;GTK;System;Core;
OnlyShowIn=X-Cinnamon;
NoDisplay=true
X-GNOME-Autostart-Phase=DisplayServer
X-GNOME-Provides=panel;windowmanager;
X-GNOME-Autostart-Notify=true
X-GNOME-AutoRestart=false
2 changes: 1 addition & 1 deletion data/cinnamon.desktop.in.in
Original file line number Diff line number Diff line change
@@ -8,7 +8,7 @@ X-GNOME-Bugzilla-Product=cinnamon
X-GNOME-Bugzilla-Component=general
X-GNOME-Bugzilla-Version=@VERSION@
Categories=GNOME;GTK;System;Core;
OnlyShowIn=GNOME;
OnlyShowIn=X-Cinnamon;
NoDisplay=true
X-GNOME-Autostart-Phase=WindowManager
X-GNOME-Provides=panel;windowmanager;
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
[Desktop Entry]
Type=Application
Name=Cinnamon 2D
Comment=Window management and application launching
Exec=/usr/bin/cinnamon2d
_Name=Cinnamon 2D
_Comment=Window management and application launching
Exec=@bindir@/cinnamon2d
Categories=GNOME;GTK;System;Core;
OnlyShowIn=X-Cinnamon;
NoDisplay=true
1 change: 1 addition & 0 deletions data/icons/find_icons.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#!/bin/sh

ls -1 | grep hicolor.*\.svg
ls -1 | grep hicolor.*\.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1,156 changes: 1,156 additions & 0 deletions data/icons/hicolor_categories_scalable_cs-actions.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
130 changes: 130 additions & 0 deletions data/icons/hicolor_categories_scalable_cs-gestures.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 4 additions & 1 deletion data/icons/meson.build
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
icons = run_command('find_icons.sh').stdout().strip().split()
icons = run_command('find_icons.sh', check: true).stdout().strip().split()

# double-click, drag-click, right-click, single-click icons imported from mousetweaks
# (git@github.com:GNOME/mousetweaks.git)

foreach icon : icons
parts = icon.split('_')
42 changes: 28 additions & 14 deletions data/meson.build
Original file line number Diff line number Diff line change
@@ -13,24 +13,38 @@ install_subdir(

desktop_conf = configuration_data()
desktop_conf.set('bindir', join_paths(prefix, bindir))
desktop_conf.set('libexecdir', join_paths(prefix, libexecdir))
desktop_conf.set('VERSION', meson.project_version())

desktop = configure_file(
input: 'cinnamon.desktop.in.in',
output: 'cinnamon.desktop.in',
configuration: desktop_conf,
)
desktop_files = [
'cinnamon.desktop',
'cinnamon-wayland.desktop',
'cinnamon2d.desktop',
]

custom_target(
'desktop',
input: desktop,
output: 'cinnamon.desktop',
command: [intltool_merge, '-d', '-u', po_dir, '@INPUT@', '@OUTPUT@'],
install: true,
install_dir: desktopdir,
)
foreach desktop_file : desktop_files
desktop = configure_file(
input: desktop_file + '.in.in',
output: desktop_file + '.in',
configuration: desktop_conf,
)

custom_target(
desktop_file,
input: desktop,
output: desktop_file,
command: [intltool_merge, '-d', '-u', po_dir, '@INPUT@', '@OUTPUT@'],
install: true,
install_dir: desktopdir,
)
endforeach

subdir('xdg-portal')
subdir('wayland_sessions')
subdir('xsessions')
subdir('services')

install_data(
'org.cinnamon.gschema.xml',
['org.cinnamon.gschema.xml', 'org.cinnamon.gestures.gschema.xml'],
install_dir: schemadir,
)
126 changes: 126 additions & 0 deletions data/org.cinnamon.gestures.gschema.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
<schemalist>
<schema id="org.cinnamon.gestures" path="/org/cinnamon/gestures/"
gettext-domain="@GETTEXT_PACKAGE@">
<key name="enabled" type="b">
<default>false</default>
<summary>Enables gesture support using Touchegg.</summary>
</key>
<key name="swipe-percent-threshold" type="u">
<default>60</default>
<summary>An approximate distance, measured in percent of the size of the touch device or area. This setting is for swipe gestures only.</summary>
</key>
<key name="pinch-percent-threshold" type="u">
<default>40</default>
<summary>An approximate distance, measured in percent of the size of the touch device or area. This setting is for pinch gestures only.</summary>
</key>

<key name="swipe-left-2" type="s">
<default>'PUSH_TILE_LEFT'</default>
<summary>Touchscreen only</summary>
</key>
<key name="swipe-right-2" type="s">
<default>'PUSH_TILE_RIGHT'</default>
<summary>Touchscreen only</summary>
</key>
<key name="swipe-up-2" type="s">
<default>'PUSH_TILE_UP'</default>
<summary>Touchscreen only</summary>
</key>
<key name="swipe-down-2" type="s">
<default>'PUSH_TILE_DOWN'</default>
<summary>Touchscreen only</summary>
</key>

<key name="swipe-left-3" type="s">
<default>'WORKSPACE_NEXT'</default>
</key>
<key name="swipe-right-3" type="s">
<default>'WORKSPACE_PREVIOUS'</default>
</key>
<key name="swipe-up-3" type="s">
<default>'TOGGLE_EXPO'</default>
</key>
<key name="swipe-down-3" type="s">
<default>'TOGGLE_OVERVIEW'</default>
</key>

<key name="swipe-left-4" type="s">
<default>'WINDOW_WORKSPACE_PREVIOUS'</default>
</key>
<key name="swipe-right-4" type="s">
<default>'WINDOW_WORKSPACE_NEXT'</default>
</key>
<key name="swipe-up-4" type="s">
<default>'VOLUME_UP'</default>
</key>
<key name="swipe-down-4" type="s">
<default>'VOLUME_DOWN'</default>
</key>

<key name="swipe-left-5" type="s">
<default>''</default>
<summary>Touchscreen only</summary>
</key>
<key name="swipe-right-5" type="s">
<default>''</default>
<summary>Touchscreen only</summary>
</key>
<key name="swipe-up-5" type="s">
<default>''</default>
<summary>Touchscreen only</summary>
</key>
<key name="swipe-down-5" type="s">
<default>''</default>
<summary>Touchscreen only</summary>
</key>


<key name="pinch-in-2" type="s">
<default>''</default>
</key>
<key name="pinch-out-2" type="s">
<default>''</default>
</key>

<key name="pinch-in-3" type="s">
<default>''</default>
</key>
<key name="pinch-out-3" type="s">
<default>''</default>
</key>

<key name="pinch-in-4" type="s">
<default>''</default>
</key>
<key name="pinch-out-4" type="s">
<default>''</default>
</key>

<key name="pinch-in-5" type="s">
<default>''</default>
<summary>Touchscreen only</summary>
</key>
<key name="pinch-out-5" type="s">
<default>''</default>
<summary>Touchscreen only</summary>
</key>


<key name="tap-2" type="s">
<default>''</default>
<summary>Touchscreen only</summary>
</key>
<key name="tap-3" type="s">
<default>'MEDIA_PLAY_PAUSE'</default>
<summary>Touchscreen only</summary>
</key>
<key name="tap-4" type="s">
<default>''</default>
<summary>Touchscreen only</summary>
</key>
<key name="tap-5" type="s">
<default>''</default>
<summary>Touchscreen only</summary>
</key>
</schema>
</schemalist>
209 changes: 85 additions & 124 deletions data/org.cinnamon.gschema.xml
Original file line number Diff line number Diff line change
@@ -30,7 +30,7 @@
</key>

<key name="enabled-applets" type="as">
<default>['panel1:left:0:menu@cinnamon.org', 'panel1:left:1:show-desktop@cinnamon.org', 'panel1:left:2:grouped-window-list@cinnamon.org', 'panel1:right:0:systray@cinnamon.org', 'panel1:right:1:xapp-status@cinnamon.org', 'panel1:right:2:notifications@cinnamon.org', 'panel1:right:3:printers@cinnamon.org', 'panel1:right:4:removable-drives@cinnamon.org', 'panel1:right:5:keyboard@cinnamon.org', 'panel1:right:6:favorites@cinnamon.org', 'panel1:right:7:network@cinnamon.org', 'panel1:right:8:sound@cinnamon.org', 'panel1:right:9:power@cinnamon.org', 'panel1:right:10:calendar@cinnamon.org']</default>
<default>['panel1:left:0:menu@cinnamon.org', 'panel1:left:1:separator@cinnamon.org', 'panel1:left:2:grouped-window-list@cinnamon.org', 'panel1:right:0:systray@cinnamon.org', 'panel1:right:1:xapp-status@cinnamon.org', 'panel1:right:2:notifications@cinnamon.org', 'panel1:right:3:printers@cinnamon.org', 'panel1:right:4:removable-drives@cinnamon.org', 'panel1:right:5:keyboard@cinnamon.org', 'panel1:right:6:favorites@cinnamon.org', 'panel1:right:7:network@cinnamon.org', 'panel1:right:8:sound@cinnamon.org', 'panel1:right:9:power@cinnamon.org', 'panel1:right:10:calendar@cinnamon.org', 'panel1:right:11:cornerbar@cinnamon.org']</default>
<summary>Uuids of applets to enable</summary>
<description>
Cinnamon applets have a uuid property; this key lists applets
@@ -94,7 +94,10 @@
<summary>The interval between each possible grid position when desklets "snap"</summary>
<description>If desklet-snap is enabled, the possible positions of desklets will be all integer multiples of the value of "desklet-snap-size"</description>
</key>

<key name="lock-desklets" type="b">
<default>false</default>
<summary> Locks the current position of all desklets and prevents dragging</summary>
</key>
<key name="panels-enabled" type="as">
<default>['1:0:bottom']</default>
<summary>List of panels used</summary>
@@ -164,14 +167,6 @@
</description>
</key>

<key name="desktop-effects" type="b">
<default>true</default>
<summary>Enable desktop effects</summary>
<description>
Whether to enable desktop effects and window animations.
</description>
</key>

<key name="desktop-effects-on-dialogs" type="b">
<default>true</default>
<summary>Enable desktop effects on dialog boxes</summary>
@@ -188,158 +183,81 @@
</description>
</key>

<key type="s" name="desktop-effects-style">
<default>"cinnamon"</default>
<summary>The style of desktop effects</summary>
<description>
An overall style used for desktop effects.
This key should not be edited directly.
</description>
</key>

<key type="s" name="desktop-effects-close-effect">
<default>"traditional"</default>
<summary>Effect used when closing windows</summary>
<key name="desktop-effects-workspace" type="b">
<default>true</default>
<summary>Enable desktop effects in the Cinnamon ui</summary>
<description>
An effect: scale, fade, traditional, none
This affects switching workspaces, expo and scale.
</description>
</key>

<key name="desktop-effects-close-transition" type="s">
<default>"easeOutQuad"</default>
<summary>Transition used when closing windows</summary>
<key name="desktop-effects" type="b">
<default>true</default>
<summary>Enable desktop effects</summary>
<description>
A Tweener transition
Whether to enable desktop effects and window animations.
</description>
</key>

<key type="i" name="desktop-effects-close-time">
<default>120</default>
<summary>Duration of the effect (in milliseconds)</summary>
<key type="s" name="desktop-effects-close">
<default>"traditional"</default>
<summary>Effect used when closing windows</summary>
<description>
Duration of the effect (in milliseconds)
An effect: traditional, fly, none
</description>
</key>

<key type="s" name="desktop-effects-map-effect">
<key type="s" name="desktop-effects-map">
<default>"traditional"</default>
<summary>Effect used when mapping windows</summary>
<description>
An effect: scale, fade, traditional, none
An effect: traditional, fly, fade, none
</description>
</key>

<key name="desktop-effects-map-transition" type="s">
<default>"easeOutQuad"</default>
<summary>Transition used when mapping windows</summary>
<description>
A Tweener transition
</description>
</key>

<key type="i" name="desktop-effects-map-time">
<default>100</default>
<summary>Duration of the effect (in milliseconds)</summary>
<description>
Duration of the effect (in milliseconds)
</description>
</key>


<key type="s" name="desktop-effects-minimize-effect">
<key type="s" name="desktop-effects-minimize">
<default>"traditional"</default>
<summary>Effect used when minimizing windows</summary>
<description>
An effect: traditional, scale, fade, traditional, none
</description>
</key>

<key name="desktop-effects-minimize-transition" type="s">
<default>"easeInQuad"</default>
<summary>Transition used when minimizing windows</summary>
<description>
A Tweener transition
An effect: traditional, fly, fade, none
</description>
</key>

<key type="i" name="desktop-effects-minimize-time">
<default>160</default>
<summary>Duration of the effect (in milliseconds)</summary>
<key type="b" name="desktop-effects-change-size">
<default>true</default>
<summary>Whether to show an animation when unmaximizing/tiling/snapping windows</summary>
<description>
Duration of the effect (in milliseconds)
</description>
</key>

<key type="s" name="desktop-effects-maximize-effect">
<default>"none"</default>
<key type="s" name="desktop-effects-sizechange-effect">
<default>"scale"</default>
<summary>Effect used when maximizing windows</summary>
<description>
An effect: none
</description>
</key>

<key name="desktop-effects-maximize-transition" type="s">
<default>"easeInExpo"</default>
<key name="desktop-effects-sizechange-transition" type="s">
<default>"easeInQuad"</default>
<summary>Transition used when maximizing windows</summary>
<description>
A Tweener transition
</description>
</key>

<key type="i" name="desktop-effects-maximize-time">
<key type="i" name="desktop-effects-sizechange-time">
<default>100</default>
<summary>Duration of the effect (in milliseconds)</summary>
<description>
Duration of the effect (in milliseconds)
</description>
</key>

<key type="s" name="desktop-effects-unmaximize-effect">
<default>"none"</default>
<summary>Effect used when unmaximizing windows</summary>
<description>
An effect: none
</description>
</key>

<key name="desktop-effects-unmaximize-transition" type="s">
<default>"easeNone"</default>
<summary>Transition used when unmaximizing windows</summary>
<description>
A Tweener transition
</description>
</key>

<key type="i" name="desktop-effects-unmaximize-time">
<default>100</default>
<summary>Duration of the effect (in milliseconds)</summary>
<description>
Duration of the effect (in milliseconds)
</description>
</key>

<key type="s" name="desktop-effects-tile-effect">
<default>"none"</default>
<summary>Effect used when maximizing windows</summary>
<description>
An effect: none
</description>
</key>

<key name="desktop-effects-tile-transition" type="s">
<default>"easeInQuad"</default>
<summary>Transition used when maximizing windows</summary>
<description>
A Tweener transition
</description>
</key>

<key type="i" name="desktop-effects-tile-time">
<default>100</default>
<summary>Duration of the effect (in milliseconds)</summary>
<description>
Duration of the effect (in milliseconds)
</description>
<key type="i" name="window-effect-speed">
<default>1</default>
<range min="0" max="2"/>
<summary>Speed multiplier for window-effects</summary>
</key>

<key type="b" name="startup-animation">
@@ -511,12 +429,14 @@
<summary>Show all windows from all workspaces</summary>
</key>

<key type="b" name="alttab-switcher-warp-mouse-pointer">
<default>false</default>
<summary>Warp mouse pointer to the new focused window</summary>
</key>

<key name="bring-windows-to-current-workspace" type="b">
<default>false</default>
<summary>Brings windows requiring attention to the current workspace</summary>
<description>
When enabled, if a window requires attention, it is brought to the current workspace.
</description>
<summary>not used - lives in org.cinnamon.muffin now</summary>
</key>

<key name="prevent-focus-stealing" type="b">
@@ -581,7 +501,27 @@
</description>
</key>

<child name="theme" schema="org.cinnamon.theme"/>
<key type="b" name="allow-other-notification-handlers">
<default>false</default>
<summary>If true, Cinnamon will no longer attempt to be the session notification handler.</summary>
</key>

<key type="s" name="system-icon">
<default>""</default>
<summary>The logo to use in the system info settings</summary>
<description>
An icon name or absolute path to an icon, which will be used for the system icon in the "System Info" settings app.
Disabled if no value is set.
</description>
</key>

<key type="b" name="center-warped-pointer">
<default>true</default>
<summary>Center the pointer on the new monitor</summary>
<description>If true, the pointer will be set to the center of the new monitor when using pointer next/previous shortcuts.</description>
</key>

<child name="theme" schema="org.cinnamon.theme"/>
<child name="recorder" schema="org.cinnamon.recorder"/>
<child name="keyboard" schema="org.cinnamon.keyboard"/>
<child name="desklets" schema="org.cinnamon.desklets" />
@@ -641,7 +581,18 @@
Controls the default label used by the application menu.
</description>
</key>

<key name="hoverclick-action" type="s">
<default>"single"</default>
<summary>The type of mouse action to be performed using hoverkey (single, double, drag, secondary)</summary>
</key>
<key name="hoverclick-layout" type="s">
<default>"vertical::both"</default>
<summary>This defines the layout for the hoverkey window - format is vertical | horizontal :: icons | text | both</summary>
</key>
<key name="hoverclick-position" type="s">
<default>""</default>
<summary>Stores the position of the hoverclick window so it can be restored there later - format is x::y</summary>
</key>
</schema>

<schema id="org.cinnamon.theme" path="/org/cinnamon/theme/"
@@ -985,10 +936,20 @@
</key>
</schema>

<schema id="org.cinnamon.keybindings" path="/org/cinnamon/keybindings/">
<key name="custom-list" type="as">
<schema id="org.cinnamon.runtime-keybindings" path="/org/cinnamon/runtime-keybindings/">
<key name="placeholder" type="b">
<default>false</default>
</key>
</schema>

<schema id="org.cinnamon.runtime-keybindings.runtime-keybinding">
<key name="bindings" type="as">
<default>[]</default>
<summary>deprecated - moved to org.cinnamon.desktop.keybindings</summary>
<summary>Keybinding array for runtime keybinding.</summary>
</key>
<key name="action-id" type="i">
<default>0</default>
<summary>Action id for keybinding</summary>
</key>
</schema>

15 changes: 15 additions & 0 deletions data/services/meson.build
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
service_files = [
'org.cinnamon.CalendarServer.service',
'org.Cinnamon.HotplugSniffer.service',
'org.Cinnamon.Melange.service',
'org.Cinnamon.Slideshow.service',
]

foreach service_file : service_files
configure_file(
input: service_file + '.in',
output: service_file,
configuration: desktop_conf,
install_dir: servicedir
)
endforeach
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[D-BUS Service]
Name=org.Cinnamon.HotplugSniffer
Exec=@pkglibexecdir@/cinnamon-hotplug-sniffer
Exec=@libexecdir@/cinnamon-hotplug-sniffer
3 changes: 3 additions & 0 deletions data/services/org.Cinnamon.Melange.service.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[D-BUS Service]
Name=org.Cinnamon.Melange
Exec=@bindir@/cinnamon-looking-glass daemon
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[D-BUS Service]
Name=org.Cinnamon.Slideshow
Exec=/usr/bin/cinnamon-slideshow
Exec=@bindir@/cinnamon-slideshow
3 changes: 3 additions & 0 deletions data/services/org.cinnamon.CalendarServer.service.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[D-BUS Service]
Name=org.cinnamon.CalendarServer
Exec=@bindir@/cinnamon-calendar-server
72 changes: 72 additions & 0 deletions data/theme/calendar-selected.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
71 changes: 71 additions & 0 deletions data/theme/calendar-today-selected.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
81 changes: 72 additions & 9 deletions data/theme/calendar-today.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
409 changes: 375 additions & 34 deletions data/theme/cinnamon.css

Large diffs are not rendered by default.

Binary file modified data/theme/thumbnail.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions data/wayland_sessions/cinnamon-wayland.desktop.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[Desktop Entry]
Name=Cinnamon on Wayland (Experimental)
Comment=This session logs you into Cinnamon
Exec=cinnamon-session-cinnamon --wayland
TryExec=@bindir@/cinnamon
Icon=
Type=Application

12 changes: 12 additions & 0 deletions data/wayland_sessions/meson.build
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
session_deskop_files = [
'cinnamon-wayland.desktop',
]

foreach session_deskop_file : session_deskop_files
configure_file(
input: session_deskop_file + '.in',
output: session_deskop_file,
configuration: desktop_conf,
install_dir: wayland_sessiondir
)
endforeach
4 changes: 4 additions & 0 deletions data/xdg-portal/meson.build
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
install_data(
'x-cinnamon-portals.conf',
install_dir: join_paths(get_option('datadir'), 'xdg-desktop-portal'),
)
4 changes: 4 additions & 0 deletions data/xdg-portal/x-cinnamon-portals.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[preferred]
default=xapp;gtk;
org.freedesktop.impl.portal.Secret=gnome-keyring;

Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@
Name=Cinnamon
Comment=This session logs you into Cinnamon
Exec=cinnamon-session-cinnamon
TryExec=/usr/bin/cinnamon
TryExec=@bindir@/cinnamon
Icon=
Type=Application

Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@
Name=Cinnamon (Software Rendering)
Comment=This session logs you into Cinnamon (using software rendering)
Exec=cinnamon-session-cinnamon2d
TryExec=/usr/bin/cinnamon2d
TryExec=@bindir@/cinnamon2d
Icon=
Type=Application
X-Ubuntu-Gettext-Domain=cinnamon
13 changes: 13 additions & 0 deletions data/xsessions/meson.build
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
session_deskop_files = [
'cinnamon.desktop',
'cinnamon2d.desktop',
]

foreach session_deskop_file : session_deskop_files
configure_file(
input: session_deskop_file + '.in',
output: session_deskop_file,
configuration: desktop_conf,
install_dir: x_sessiondir
)
endforeach
78 changes: 1 addition & 77 deletions debian/README.source
Original file line number Diff line number Diff line change
@@ -1,77 +1 @@
Git workflow
------------

The cinnamon packages use the default git-buildpackage workflow, that is, the
debian branch is merged with upstream.

Importing upstream code
-----------------------

Some of the upstream code is a fork of GNOME packages. Cinnamon is released as
source packages for the Linux Mint distribution, with quilt patches applied.
This means that they have a debian/ directory in their releases and a .pc/
(which are related to the original Gnome codebase), so we need to drop those
before merging the upstream releases.

Additionally, we use pristine-tar to make the tarball generation reproducible
from the git repository.

gbp import-orig --pristine-tar --merge --filter='debian/*' --filter='.pc/*' \
$upstream_tarball

Since gbp 0.7.1, the debian directory no longer needs to filtered out, by
using --merge-mode=replace, which also avoids merging conflicts (this is the
default for 0.8.14 and up)

gbp import-orig --pristine-tar --merge --merge-mode=replace \
--filter='.pc/*' $upstream_tarball

We are considering merging the upstream tag (upstream-vcs-tag option in
gpb's import-orig) into the upstream branch. This has the benefit that the
whole upstream history is then available in the Debian branch.

To import a new version using this upstream needs to be added as a remote:

git remote add upstream https://github.com/linuxmint/cinnamon
git fetch --all

The upstream git repository is usually listed in the Source: field of the
debian/copyright file.

gbp import-orig --pristine-tar --merge --merge-mode=replace \
--upstream-vcs-tag='v%(version)s' --filter='.pc/*' $upstream_tarball

On push, please, take into account that we only want the upstream/* and \
debian/* tags.

git push origin 'refs/tags/debian/*' 'refs/tags/upstream/*' :

Here the ":" takes care of pushing the branches that are present in the remote
(origin) only if a fast-forward is possible. New versions of gbp, have a gbp
push that takes care of this.

wrap-and-sort -st
-----------------



Using DEP14
--------------

Using gbp dch vs dch
--------------------

We are currently testing gbp dch to generate the debian/changelog with the
commit messages, it's fine if you want to test it too, but make sure that you
generate an updated and valid debian/changelog before pushing your changes.

Version nomenclature
--------------------

When preparing a new version we add a ~ at the end, and bump this adding ~1
for the next "pre-release".





For details about packaging see https://wiki.debian.org/Cinnamon/Packaging
1 change: 0 additions & 1 deletion debian/TODO
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

2014-04-28 maxy
- cinnamon-settings-users.py uses pkexec which requires an policy kit
authentication agent running (policykit-1-gnome), but the autostart desktop
266 changes: 266 additions & 0 deletions debian/changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,269 @@
cinnamon (6.2.9-1) unstable; urgency=medium

[ Fabio Fantoni ]
* New upstream version 6.2.9
* d/patches:
- remove one patch applied upstream and refresh others
- add an upstream patch that fix build with gtk-doc-tools 1.34.0
(Closes: #1073484)
* d/control: bump build-deps and deps of some components to 6.2
* d/README.source: replace with new link with details about packaging

[ Jeremy Bícha ]
* Add Depends: libjxl-gdk-pixbuf

-- Fabio Fantoni <fantonifabio@tiscali.it> Fri, 04 Oct 2024 19:10:17 +0200

cinnamon (6.0.4-4) unstable; urgency=medium

* d/patches: add upstream patch to remove GNOME Online Accounts from
cinnamon-settings and show GNOME Online Accounts GTK, if installed
* d/control: remove gir1.2-goa-1.0 from deps and add
gnome-online-accounts-gtk to recommends of cinnamon

-- Fabio Fantoni <fantonifabio@tiscali.it> Sat, 06 Apr 2024 11:28:38 +0200

cinnamon (6.0.4-3) unstable; urgency=medium

* Release to unstable
* d/control:
- move cinnamon-l10n from recommends to depends in cinnamon
- remove hardcoded libcinnamon-desktop4 and libmuffin0 dep in cinnamon

-- Fabio Fantoni <fantonifabio@tiscali.it> Sun, 31 Mar 2024 20:32:20 +0200

cinnamon (6.0.4-2) experimental; urgency=medium

* move config.js to cinnamon-common, was in cinnamon because contained
a different parameter in some architectures, now it no longer present
* move x-cinnamon-portals.conf to cinnamon where there is the needed
dep, this also reduces conflicts with upstream packages

-- Fabio Fantoni <fantonifabio@tiscali.it> Tue, 27 Feb 2024 22:28:26 +0100

cinnamon (6.0.4-1) experimental; urgency=medium

* New upstream version 6.0.4 (Closes: #1061532)
Initial wayland support was added, is important know that
is still incomplete and experimental
* d/patches: remove 2 patches applied upstream and refresh others
* Removed d/x-cinnamon-portals.conf, added upstream
* d/control:
- change cinnamon dep. from gir1.2-soup-2.4 to gir1.2-soup-3.0
- remove libxfixes-dev from build-deps as not needed anymore
- bump version of needed deps to 6.0

-- Fabio Fantoni <fantonifabio@tiscali.it> Sun, 11 Feb 2024 15:44:59 +0100

cinnamon (5.8.4-4) unstable; urgency=medium

* Move gir files from public to private path in /usr/share/cinnamon
and from cinnamon to cinnamon-common package (Closes: #1057391)
* d/rules:
- add override_dh_shlibdeps with muffin private libraries path

-- Fabio Fantoni <fantonifabio@tiscali.it> Mon, 01 Jan 2024 15:31:43 +0100

cinnamon (5.8.4-3) unstable; urgency=medium

* Release to unstable

-- Fabio Fantoni <fantonifabio@tiscali.it> Fri, 29 Sep 2023 13:47:46 +0200

cinnamon (5.8.4-2) experimental; urgency=medium

* d/patches/replace-pil-image-antialias.patch: Add upstream fix for pillow 10
(Closes: #1051210)
* Add x-cinnamon-portals.conf until the upstream provides it.
Thanks to Simon McVittie (Closes: #1050801)
* d/control: add xdg-desktop-portal-gtk to cinnamon recommends

-- Fabio Fantoni <fantonifabio@tiscali.it> Fri, 15 Sep 2023 20:49:45 +0200

cinnamon (5.8.4-1) experimental; urgency=medium

* New upstream version 5.8.4
* Provide .gir files in cinnamon package as full -dev package is
not needed for applets, extensions and desklets
* d/control:
- add xdg-desktop-portal-xapp to cinnamon recommends
- add touchegg to cinnamon recommends
- build-depend on libgl-dev instead of transitional libgl1-mesa-dev
- bump version of needed deps to 5.8
- remove gir1.2-gnomedesktop-3.0 from deps as now unused
* Refresh d/patches

-- Fabio Fantoni <fantonifabio@tiscali.it> Fri, 14 Jul 2023 13:51:03 +0200

cinnamon (5.6.8-1) unstable; urgency=medium

* New upstream bugfix version 5.6.8 (Closes: #1032912)

-- Fabio Fantoni <fantonifabio@tiscali.it> Sun, 19 Mar 2023 22:38:37 +0100

cinnamon (5.6.7-1) unstable; urgency=medium

* New upstream version 5.6.7
* Update standards version to 4.6.2, no changes needed

-- Fabio Fantoni <fantonifabio@tiscali.it> Mon, 16 Jan 2023 20:39:02 +0100

cinnamon (5.6.5-2) unstable; urgency=medium

* Release to unstable

-- Fabio Fantoni <fantonifabio@tiscali.it> Sun, 25 Dec 2022 19:59:48 +0100

cinnamon (5.6.5-1) experimental; urgency=medium

* New upstream version 5.6.5
* Refresh d/patches
* d/control: remove xapp from cinnamon deps and add to recommends
libxapp-gtk3-module and xapp-sn-watcher
* Bump version of needed deps to 5.6

-- Fabio Fantoni <fantonifabio@tiscali.it> Tue, 20 Dec 2022 21:21:44 +0100

cinnamon (5.4.12-2) unstable; urgency=medium

* d/control:
- remove gir1.2-clutter-1.0 and gir1.2-cogl-1.0 as a maintained fork
was integrated in muffin (from mutter) and used instead the deprecate
and not maintained one
- remove gir1.2-gtkclutter-1.0 as now unused
* debian/patches: add a patch to fix the upload-system-info path

-- Fabio Fantoni <fantonifabio@tiscali.it> Fri, 04 Nov 2022 17:38:34 +0100

cinnamon (5.4.12-1) unstable; urgency=medium

* New upstream version 5.4.12
* d/control:
- update muffin deps and build-deps to 5.4.7
- remove gir1.2-meta-muffin-0.0 from build-deps

-- Fabio Fantoni <fantonifabio@tiscali.it> Fri, 09 Sep 2022 11:32:02 +0200

cinnamon (5.4.11-1) unstable; urgency=medium

* New upstream version 5.4.11
* d/cinnamon.gsettings-override: set theme to cinnamon
* d/control: readd gir1.2-soup-2.4 to deps as temp. workaround
because many applets and desklet require it

-- Fabio Fantoni <fantonifabio@tiscali.it> Sun, 21 Aug 2022 20:24:51 +0200

cinnamon (5.4.10-2) unstable; urgency=medium

* Release to unstable

-- Fabio Fantoni <fantonifabio@tiscali.it> Sun, 14 Aug 2022 17:09:45 +0200

cinnamon (5.4.10-1) experimental; urgency=medium

* New upstream version 5.4.10
* d/control: remove libsoup2.4-dev from build-deps and
gir1.2-soup-2.4 from deps
* Refresh d/patches

-- Fabio Fantoni <fantonifabio@tiscali.it> Sat, 13 Aug 2022 14:47:32 +0200

cinnamon (5.4.9-1) experimental; urgency=medium

* New upstream version 5.4.9

-- Fabio Fantoni <fantonifabio@tiscali.it> Mon, 01 Aug 2022 21:10:00 +0200

cinnamon (5.4.8-1) experimental; urgency=medium

* New upstream version 5.4.8

-- Fabio Fantoni <fantonifabio@tiscali.it> Mon, 25 Jul 2022 22:52:38 +0200

cinnamon (5.4.7-1) experimental; urgency=medium

* New upstream version 5.4.7
* d/rules: remove the move of thumbnail not present
* Specify that rules don't require root
* Bumped Standards-Version to 4.6.1
* d/control: update cinnamon-settings-daemon dep to 5.4.3

-- Fabio Fantoni <fantonifabio@tiscali.it> Sun, 24 Jul 2022 21:16:29 +0200

cinnamon (5.4.5-1) experimental; urgency=medium

* New upstream version 5.4.5
* Disable d/patches/always-add-default-theme.patch
* d/control: update muffin deps and build-deps to 5.4.2
* Update cinnamon lintian overrides

-- Fabio Fantoni <fantonifabio@tiscali.it> Wed, 20 Jul 2022 23:24:31 +0200

cinnamon (5.4.2-1) experimental; urgency=medium

* New upstream version 5.4.2
* Simplify and update d/watch
* d/control:
- add inxi to cinnamon recommends
- add devhelp to cinnanon-doc recommends
- add libxapp-dev to build-deps
- add gir1.2-gsound-1.0 to cinnamon deps
- update meson min. version
- remove libclutter-1.0-dev from build-deps
* Bump version of deps and breaks of reverse deps to 5.4
* Update d/copyright
* d/patches: remove 4 patches applied upstream and refresh others

-- Fabio Fantoni <fantonifabio@tiscali.it> Sun, 10 Jul 2022 23:01:00 +0200

cinnamon (5.2.7-4) unstable; urgency=medium

* d/control: add psmisc to cinnamon depends
Thanks to Martin Simmons for reporting (Closes: #1006887)
* d/control: add pkexec to cinnamon depends
* d/patches: add fixes from upstream:
- calendar events: Check if evolution-data-server is running before
enabling events
- calendar-server: Add return after calling app.quit()

-- Fabio Fantoni <fantonifabio@tiscali.it> Mon, 11 Apr 2022 20:24:21 +0200

cinnamon (5.2.7-3) unstable; urgency=medium

[ Fabio Fantoni ]
* update d/copyright

-- Christoph Martin <martin@uni-mainz.de> Tue, 12 Apr 2022 12:08:31 +0200

cinnamon (5.2.7-2) unstable; urgency=medium

* add myself to uploaders
* prepare unstable upload

-- Christoph Martin <martin@uni-mainz.de> Wed, 26 Jan 2022 09:42:51 +0100

cinnamon (5.2.7-1) experimental; urgency=medium

* New upstream version 5.2.7
* Add python3-requests to cinnamon depends
* d/patches:
- add a revert of workaround for meson 0.60.2 regression
that cause FTBFS after his fix
- gtkdoc: remove dependencies on custom target files
* Add Joshua to uploaders

-- Fabio Fantoni <fantonifabio@tiscali.it> Fri, 31 Dec 2021 16:13:31 +0100

cinnamon (5.2.6-1) experimental; urgency=medium

* New upstream version 5.2.6 (Closes: #1001536, #1002412)
* update xapp deps for package split of 2.2.5-1
* use dh-sequence-gir and dh-sequence-python3
* d/patches: remove applied upstream and refresh others
* d/control: add deps for calendar server

-- Fabio Fantoni <fantonifabio@tiscali.it> Sat, 04 Dec 2021 12:46:20 +0100

cinnamon (5.0.6-1) unstable; urgency=medium

* New upstream version 5.0.6
2 changes: 2 additions & 0 deletions debian/cinnamon-common.install
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
debian/thumbnails /usr/share/cinnamon/
etc/xdg/menus/cinnamon*
usr/lib/python3/dist-packages/cinnamon/*.py
usr/libexec/cinnamon-calendar-server.py
usr/share/cinnamon-session
usr/share/cinnamon/
usr/share/desktop-directories/cinnamon*
usr/share/glib-2.0/schemas/*cinnamon*
usr/share/icons/
usr/share/polkit-1/actions/org.cinnamon.settings-users.policy
usr/share/wayland-sessions
usr/share/xsessions/cinnamon*
4 changes: 4 additions & 0 deletions debian/cinnamon.gsettings-override
Original file line number Diff line number Diff line change
@@ -6,3 +6,7 @@ lock-on-suspend=true

[org.cinnamon.desktop.interface]
gtk-overlay-scrollbars=false

[org.cinnamon.theme]
name='cinnamon'

4 changes: 3 additions & 1 deletion debian/cinnamon.install
Original file line number Diff line number Diff line change
@@ -9,8 +9,10 @@ usr/share/applications/cinnamon-menu-editor.desktop
usr/share/applications/cinnamon-onscreen-keyboard.desktop
usr/share/applications/cinnamon-settings-*.desktop
usr/share/applications/cinnamon-settings.desktop
usr/share/applications/cinnamon-wayland.desktop
usr/share/applications/cinnamon.desktop
usr/share/applications/cinnamon2d.desktop
usr/share/cinnamon/js/misc/config.js
usr/share/dbus-1/services/*.Cinnamon.*
usr/share/dbus-1/services/org.cinnamon.CalendarServer.service
usr/share/man/*/*cinnamon*
usr/share/xdg-desktop-portal/
8 changes: 5 additions & 3 deletions debian/cinnamon.lintian-overrides
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# muffin plugins dir
cinnamon: custom-library-search-path usr/lib/x86_64-linux-gnu/cinnamon/libst.so RUNPATH usr/lib/x86_64-linux-gnu/muffin/
cinnamon: custom-library-search-path usr/bin/cinnamon RUNPATH usr/lib/x86_64-linux-gnu/muffin/
cinnamon: custom-library-search-path RUNPATH /usr/lib/x86_64-linux-gnu/muffin [usr/lib/x86_64-linux-gnu/cinnamon/libst.so]
cinnamon: custom-library-search-path RUNPATH /usr/lib/x86_64-linux-gnu/muffin [usr/bin/cinnamon]
cinnamon: custom-library-search-path RUNPATH /usr/lib/x86_64-linux-gnu/muffin [usr/lib/x86_64-linux-gnu/cinnamon/libcinnamon.so]
cinnamon: custom-library-search-path RUNPATH /usr/lib/x86_64-linux-gnu/muffin [usr/libexec/cinnamon-perf-helper]
# dbus-send is used and cinnamon depends on it
cinnamon: desktop-command-not-in-package usr/share/applications/cinnamon-onscreen-keyboard.desktop dbus-send
cinnamon: desktop-command-not-in-package dbus-send [usr/share/applications/cinnamon-onscreen-keyboard.desktop]
92 changes: 52 additions & 40 deletions debian/control
Original file line number Diff line number Diff line change
@@ -7,37 +7,37 @@ Uploaders:
Margarita Manterola <marga@debian.org>,
Fabio Fantoni <fantonifabio@tiscali.it>,
Norbert Preining <norbert@preining.info>,
Joshua Peisach <itzswirlz2020@outlook.com>,
Christoph Martin <martin@uni-mainz.de>
Build-Depends:
debhelper-compat (= 13),
dh-python,
dpkg-dev (>= 1.16.1~),
gir1.2-meta-muffin-0.0 (>= 4.6),
dh-sequence-gir,
dh-sequence-python3,
gnome-pkg-tools (>= 0.11),
gobject-introspection (>= 1.29.15),
gtk-doc-tools,
intltool,
libcinnamon-desktop-dev (>= 5.0~),
libcinnamon-menu-3-dev (>= 5.0~),
libcjs-dev (>= 5.0~),
libclutter-1.0-dev (>= 1.10.0),
libcinnamon-desktop-dev (>= 6.2~),
libcinnamon-menu-3-dev (>= 5.4~),
libcjs-dev (>= 6.2~),
libdbus-1-dev,
libgirepository1.0-dev (>= 1.29.15),
libgl1-mesa-dev,
libgl-dev,
libglib2.0-dev (>= 2.52.0),
libgstreamer1.0-dev,
libgtk-3-dev (>= 3.9.12),
libjson-glib-dev (>= 0.13.2),
libmuffin-dev (>= 4.6),
libmuffin-dev (>= 6.2~),
libnm-dev (>= 1.6) [linux-any],
libnma-dev [linux-any],
libpolkit-agent-1-dev (>= 0.100),
libpulse-dev,
libsoup2.4-dev,
libstartup-notification0-dev (>= 0.11),
libxfixes-dev (>= 1:5.0),
meson (>= 0.46.0),
libxapp-dev (>= 2.6.0),
meson (>= 0.47.0),
python3:any,
Standards-Version: 4.5.0
Standards-Version: 4.6.2
Rules-Requires-Root: no
Homepage: http://cinnamon.linuxmint.com
Vcs-Browser: https://salsa.debian.org/cinnamon-team/cinnamon
Vcs-Git: https://salsa.debian.org/cinnamon-team/cinnamon.git
@@ -47,52 +47,54 @@ Architecture: any
Pre-Depends: ${misc:Pre-Depends}
Depends:
cinnamon-common (= ${source:Version}),
cinnamon-control-center (>= 5.0),
cinnamon-desktop-data (>= 5.0),
cinnamon-screensaver (>= 5.0),
cinnamon-session (>= 5.0),
cinnamon-settings-daemon (>= 5.0),
cjs (>= 5.0),
cinnamon-control-center (>= 6.2),
cinnamon-desktop-data (>= 6.2),
cinnamon-l10n (>= 6.2),
cinnamon-screensaver (>= 6.2),
cinnamon-session (>= 6.2),
cinnamon-settings-daemon (>= 6.2),
cjs (>= 6.2),
cups-pk-helper,
dbus,
gir1.2-accountsservice-1.0,
gir1.2-caribou-1.0,
gir1.2-clutter-1.0,
gir1.2-cmenu-3.0 (>= 5.0),
gir1.2-cogl-1.0,
gir1.2-cvc-1.0 (>= 5.0),
gir1.2-cmenu-3.0 (>= 5.4),
gir1.2-cvc-1.0 (>= 6.2),
gir1.2-ecal-2.0,
gir1.2-edataserver-1.2,
gir1.2-gdkpixbuf-2.0,
gir1.2-gkbd-3.0,
gir1.2-glib-2.0,
gir1.2-gnomedesktop-3.0,
gir1.2-gsound-1.0,
gir1.2-gtk-3.0,
gir1.2-gtkclutter-1.0,
gir1.2-ical-3.0,
gir1.2-keybinder-3.0,
gir1.2-nemo-3.0 (>= 5.0),
gir1.2-nemo-3.0 (>= 6.2),
gir1.2-nm-1.0 [linux-any],
gir1.2-nma-1.0 [linux-any],
gir1.2-notify-0.7,
gir1.2-pango-1.0,
gir1.2-polkit-1.0,
gir1.2-soup-2.4,
gir1.2-soup-3.0,
gir1.2-timezonemap-1.0,
gir1.2-upowerglib-1.0,
gir1.2-xapp-1.0 (>= 1.9.0),
gir1.2-xapp-1.0 (>= 2.6.0),
gkbd-capplet,
gnome-backgrounds,
gnome-themes-extra,
gsettings-desktop-schemas (>= 0.1.7),
iso-flags-png-320x240,
libcinnamon-desktop4 (>= 5.0),
libcinnamon-menu-3-0 (>= 5.0),
libcjs0 (>= 5.0),
libcinnamon-menu-3-0 (>= 5.4),
libcjs0 (>= 5.4),
libglib2.0-bin,
libmuffin0 (>= 5.0),
libjxl-gdk-pixbuf,
mesa-utils,
muffin (>= 5.0),
nemo (>= 5.0),
muffin (>= 6.2~),
nemo (>= 6.2),
network-manager-gnome [linux-any],
policykit-1-gnome (>= 0.105-6),
pkexec,
policykit-1-gnome (>= 0.105-6),
psmisc,
python3,
python3-dbus,
python3-distro,
@@ -102,24 +104,31 @@ Depends:
python3-pexpect,
python3-pil,
python3-pyinotify,
python3-requests,
python3-setproctitle,
python3-tinycss2,
python3-tz,
xapps-common (>= 1.9.0),
${gir:Depends},
${misc:Depends},
${python3:Depends},
${shlibs:Depends},
Recommends:
blueman,
cinnamon-core,
cinnamon-l10n (>= 5.0),
gnome-online-accounts-gtk,
gnome-terminal,
inxi,
libcanberra-pulse,
libxapp-gtk3-module,
metacity-common,
touchegg,
xapp-sn-watcher,
xdg-desktop-portal-gtk,
xdg-desktop-portal-xapp,
Suggests: cinnamon-desktop-environment, cinnamon-doc, python3-opencv
Provides: notification-daemon, x-window-manager
Breaks: cinnamon-core (<< 5.0~)
Breaks: cinnamon-core (<< 5.4~), cinnamon-common (<< 6.0.4-2~)
Replaces: cinnamon-common (<< 6.0.4-2~)
Description: Innovative and comfortable desktop
Cinnamon is a desktop environment which provides advanced innovative
features and a traditional user experience.
@@ -132,13 +141,15 @@ Package: cinnamon-common
Architecture: all
Depends:
gettext,
gir1.2-cinnamondesktop-3.0 (>= 5.0),
gir1.2-meta-muffin-0.0 (>= 5.0),
gir1.2-cinnamondesktop-3.0 (>= 6.2),
gir1.2-meta-muffin-0.0 (>= 6.2~),
libglib2.0-bin,
python3-xapp,
xdg-utils,
${misc:Depends},
${python3:Depends},
Breaks: cinnamon (<< 6.0.4-2~)
Replaces: cinnamon (<< 6.0.4-2~)
Description: Innovative and comfortable desktop (Common data files)
Cinnamon is a desktop environment which provides advanced innovative
features and a traditional user experience.
@@ -154,6 +165,7 @@ Section: doc
Architecture: all
Multi-Arch: foreign
Depends: ${misc:Depends}
Recommends: devhelp
Description: Innovative and comfortable desktop (Documentation)
Cinnamon is a desktop environment which provides advanced innovative
features and a traditional user experience.
76 changes: 67 additions & 9 deletions debian/copyright
Original file line number Diff line number Diff line change
@@ -13,13 +13,63 @@ Copyright: 1989-1991, Free Software Foundation, Inc
1999-2001, Eazel, Inc
2001, George Lebl
2000, Helix Code, Inc
2008, Iain Holmes
2006-2008, OpenedHand Ltd
2007-2011, Red Hat, Inc
2002, Sun Microsystems Inc
1997-2000, The Free Software Foundation
License: GPL-2+

Files: src/cinnamon-window-tracker.c
src/st/croco/cr-additional-sel.c
src/st/croco/cr-additional-sel.h
src/st/croco/cr-attr-sel.c
src/st/croco/cr-attr-sel.h
src/st/croco/cr-cascade.c
src/st/croco/cr-cascade.h
src/st/croco/cr-declaration.c
src/st/croco/cr-declaration.h
src/st/croco/cr-doc-handler.c
src/st/croco/cr-doc-handler.h
src/st/croco/cr-enc-handler.c
src/st/croco/cr-enc-handler.h
src/st/croco/cr-fonts.c
src/st/croco/cr-fonts.h
src/st/croco/cr-input.c
src/st/croco/cr-input.h
src/st/croco/cr-num.c
src/st/croco/cr-num.h
src/st/croco/cr-om-parser.c
src/st/croco/cr-om-parser.h
src/st/croco/cr-parser.c
src/st/croco/cr-parser.h
src/st/croco/cr-parsing-location.c
src/st/croco/cr-parsing-location.h
src/st/croco/cr-prop-list.c
src/st/croco/cr-prop-list.h
src/st/croco/cr-pseudo.c
src/st/croco/cr-pseudo.h
src/st/croco/cr-rgb.c
src/st/croco/cr-rgb.h
src/st/croco/cr-selector.c
src/st/croco/cr-selector.h
src/st/croco/cr-simple-sel.c
src/st/croco/cr-simple-sel.h
src/st/croco/cr-statement.c
src/st/croco/cr-statement.h
src/st/croco/cr-string.c
src/st/croco/cr-string.h
src/st/croco/cr-stylesheet.c
src/st/croco/cr-stylesheet.h
src/st/croco/cr-term.c
src/st/croco/cr-term.h
src/st/croco/cr-tknzr.c
src/st/croco/cr-tknzr.h
src/st/croco/cr-token.c
src/st/croco/cr-token.h
src/st/croco/cr-utils.c
src/st/croco/cr-utils.h
src/st/croco/libcroco.h
src/st/st-adjustment.c
src/st/st-adjustment.h
src/st/st-bin.c
@@ -37,20 +87,21 @@ Files: src/cinnamon-window-tracker.c
src/st/st-group.h
src/st/st-icon.c
src/st/st-icon.h
src/st/st-im-text.c
src/st/st-im-text.h
src/st/st-label.c
src/st/st-label.h
src/st/st-private.c
src/st/st-private.h
src/st/st-scroll-bar.c
src/st/st-scroll-bar.h
src/st/st-scroll-view-fade.c
src/st/st-scroll-view-fade.glsl
src/st/st-scroll-view-fade.h
src/st/st-scroll-view.c
src/st/st-scroll-view.h
src/st/st-scrollable.c
src/st/st-scrollable.h
src/st/st-settings.c
src/st/st-settings.h
src/st/st-table-child.c
src/st/st-table-child.h
src/st/st-table-private.h
@@ -59,19 +110,22 @@ Files: src/cinnamon-window-tracker.c
src/st/st-theme-node-drawing.c
src/st/st-theme.c
src/st/st-types.h
src/st/st-viewport.h
src/st/st-widget-accessible.h
src/st/st-widget.c
src/st/st-widget.h
Copyright: 2009, Abderrahim Kitouni
2010-2011, Adel Gadllah
2003-2004, Dodji Seketeli
2002-2004, Dodji Seketeli
2002-2004, Dodji Seketeli <dodji@seketeli.org>
2019, Endless, Inc
2009-2010, Florian Müllner
2010, Giovanni Campagna
2010, Igalia, S.L
2008-2010, Intel Corporation
2010, Maxim Ermilov
2007-2008, OpenedHand
2006-2010, Red Hat, Inc
2006-2019, Red Hat, Inc
2008, litl, LLC
License: LGPL-2.1

@@ -82,6 +136,8 @@ Files: src/st/st-border-image.c
src/st/st-focus-manager.c
src/st/st-focus-manager.h
src/st/st-icon-colors.c
src/st/st-image-content.c
src/st/st-image-content.h
src/st/st-polygon.c
src/st/st-polygon.h
src/st/st-shadow.c
@@ -99,6 +155,7 @@ Files: src/st/st-border-image.c
src/st/st-theme.h
src/st/test-theme.c
Copyright: 2010, Adel Gadllah
2019, Canonical, Ltd
2009-2010, Florian Müllner
2010, Giovanni Campagna
2010, Maxim Ermilov
@@ -109,17 +166,17 @@ License: LGPL-2.1+
Files: files/usr/share/cinnamon/cinnamon-menu-editor/cme/MainWindow.py
files/usr/share/cinnamon/cinnamon-menu-editor/cme/MenuEditor.py
files/usr/share/cinnamon/cinnamon-menu-editor/cme/util.py
src/data-to-c.pl
src/st/st-box-layout.c
src/tray/na-tray-child.c
src/tray/na-tray-child.h
src/tray/na-tray-manager.c
src/tray/na-tray-manager.h
src/st/st-viewport.c
src/tray/*
Copyright: 2009, Abderrahim Kitouni
2002, Anders Carlsson <andersca@gnu.org>
2019, Endless, Inc
2010, Florian Muellner
2009, Intel Corporation
2006, OpenedHand
2008-2010, Red Hat, Inc
2008-2011, Red Hat, Inc
2006, Travis Watkins
2006, Travis Watkins, Heinrich Wendel
2003-2006, Vincent Untz
@@ -131,6 +188,7 @@ Copyright: 2007-2010, www.stani.be
License: GPL-3+

Files: files/usr/share/cinnamon/cinnamon-settings/bin/proxygsettings.py
python3/cinnamon/proxygsettings.py
Copyright: 2011-2012, Canonical Ltd
2014, Erik Devriendt
License: GPL-3_SSLException
5 changes: 5 additions & 0 deletions debian/gbp.conf
Original file line number Diff line number Diff line change
@@ -1,2 +1,7 @@
[DEFAULT]
pristine-tar = True

[import-orig]
filter = [ '*/.pc/*', '*/debian/*' ]
filter-pristine-tar = True

8 changes: 5 additions & 3 deletions debian/patches/Drop-nm-applet-from-the-session-files.patch
Original file line number Diff line number Diff line change
@@ -10,12 +10,14 @@ Adjusted to meson build system 2020-11-27 NP

Debian-Bug: https://bugs.debian.org/818084
---
meson.build | 8 ++++----
meson.build | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/meson.build b/meson.build
index bbcce8d..7a39bdd 100644
--- a/meson.build
+++ b/meson.build
@@ -157,11 +157,11 @@
@@ -159,11 +159,11 @@ install_subdir(
)

session_conf = configuration_data()
@@ -29,5 +31,5 @@ Debian-Bug: https://bugs.debian.org/818084
-endif
+#endif

foreach file : ['cinnamon.session', 'cinnamon2d.session']
foreach file : ['cinnamon.session', 'cinnamon2d.session', 'cinnamon-wayland.session']
configure_file(
21 changes: 0 additions & 21 deletions debian/patches/always-add-default-theme.patch

This file was deleted.

7 changes: 5 additions & 2 deletions debian/patches/background.patch
Original file line number Diff line number Diff line change
@@ -2,13 +2,16 @@ From: Debian Cinnamon Team <pkg-cinnamon-team@lists.alioth.debian.org>
Date: Sun, 13 Mar 2016 19:07:25 +0100
Subject: background

Forwarded: not-needed
---
files/usr/share/cinnamon/cinnamon-settings/modules/cs_backgrounds.py | 2 +-
files/usr/share/cinnamon/cinnamon-settings/modules/cs_backgrounds.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/files/usr/share/cinnamon/cinnamon-settings/modules/cs_backgrounds.py b/files/usr/share/cinnamon/cinnamon-settings/modules/cs_backgrounds.py
index 844e10d..fbb1357 100755
--- a/files/usr/share/cinnamon/cinnamon-settings/modules/cs_backgrounds.py
+++ b/files/usr/share/cinnamon/cinnamon-settings/modules/cs_backgrounds.py
@@ -315,7 +315,7 @@ class Module:
@@ -319,7 +319,7 @@ class Module:
def get_system_backgrounds(self):
picture_list = []
folder_list = []
51 changes: 0 additions & 51 deletions debian/patches/capy-better-multiarch-support.patch

This file was deleted.

32 changes: 32 additions & 0 deletions debian/patches/change-upload-system-info-path.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
From: Fabio Fantoni <fantonifabio@tiscali.it>
Date: Mon, 1 Apr 2024 12:39:30 +0200
Subject: Change the upload-system-info path

Forwarded: not-needed
Last-Update: 2022-12-02
---
files/usr/share/cinnamon/cinnamon-settings/modules/cs_info.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/files/usr/share/cinnamon/cinnamon-settings/modules/cs_info.py b/files/usr/share/cinnamon/cinnamon-settings/modules/cs_info.py
index 5b7625c..ceeee98 100755
--- a/files/usr/share/cinnamon/cinnamon-settings/modules/cs_info.py
+++ b/files/usr/share/cinnamon/cinnamon-settings/modules/cs_info.py
@@ -195,7 +195,7 @@ class Module:
widget.pack_end(labelValue, False, False, 0)
settings.add_row(widget)

- if shutil.which("upload-system-info"):
+ if os.path.exists("/usr/share/xapps-common/bin/upload-system-info"):
widget = SettingsWidget()

spinner = Gtk.Spinner(visible=True)
@@ -246,7 +246,7 @@ class Module:

def on_upload_button_clicked(self, button, spinner):
try:
- subproc = Gio.Subprocess.new(["upload-system-info"], Gio.SubprocessFlags.NONE)
+ subproc = Gio.Subprocess.new(["/usr/share/xapps-common/bin/upload-system-info"], Gio.SubprocessFlags.NONE)
subproc.wait_check_async(None, self.on_subprocess_complete, spinner)
spinner.start()
except GLib.Error as e:
39 changes: 0 additions & 39 deletions debian/patches/fix-fallback-1.patch

This file was deleted.

96 changes: 0 additions & 96 deletions debian/patches/fix-fallback-2.patch

This file was deleted.

32 changes: 0 additions & 32 deletions debian/patches/fix-menu-editor-python3.10.patch

This file was deleted.

31 changes: 13 additions & 18 deletions debian/patches/new-iso-flags-folder.patch
Original file line number Diff line number Diff line change
@@ -2,27 +2,22 @@ From: Debian Cinnamon Team <debian-cinnamon@lists.debian.org>
Date: Mon, 26 Mar 2018 18:38:57 +0200
Subject: new-iso-flags-folder

Forwarded: not-needed
Last-Update: 2022-07-05
---
files/usr/share/cinnamon/applets/keyboard@cinnamon.org/applet.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
files/usr/share/cinnamon/applets/keyboard@cinnamon.org/applet.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/files/usr/share/cinnamon/applets/keyboard@cinnamon.org/applet.js b/files/usr/share/cinnamon/applets/keyboard@cinnamon.org/applet.js
index 3eff44b..0f56f88 100644
--- a/files/usr/share/cinnamon/applets/keyboard@cinnamon.org/applet.js
+++ b/files/usr/share/cinnamon/applets/keyboard@cinnamon.org/applet.js
@@ -237,7 +237,7 @@ class CinnamonKeyboardApplet extends App
if (this.show_flags) {
let name = this._config.get_icon_name_for_group(i);
@@ -13,7 +13,7 @@ const PANEL_EDIT_MODE_KEY = "panel-edit-mode";
const POPUP_MENU_ICON_STYLE_CLASS = "popup-menu-icon";
const APPLET_ICON_STYLE_CLASS = "applet-icon";

- let file = Gio.file_new_for_path("/usr/share/iso-flag-png/" + name + ".png");
+ let file = Gio.file_new_for_path("/usr/share/iso-flags-png-320x240/" + name + ".png");
-const getFlagFileName = name => `/usr/share/iso-flag-png/${name}.png`;
+const getFlagFileName = name => `/usr/share/iso-flags-png-320x240/${name}.png`;

if (file.query_exists(null)) {
actor = new EmblemedIcon(file.get_path(), this._config.get_flag_id_for_group(i), "popup-menu-icon").actor;
@@ -287,7 +287,7 @@ class CinnamonKeyboardApplet extends App
if (this.show_flags) {
let name = this._config.get_current_icon_name();

- let file = Gio.file_new_for_path("/usr/share/iso-flag-png/" + name + ".png");
+ let file = Gio.file_new_for_path("/usr/share/iso-flags-png-320x240/" + name + ".png");

if (file.query_exists(null)) {
this._applet_icon = new EmblemedIcon(file.get_path(), this._config.get_current_flag_id(), "applet-icon");
class EmblemedIcon {
constructor(file_path, layout_dupe_id, style_class) {
7 changes: 2 additions & 5 deletions debian/patches/series
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
background.patch
Drop-nm-applet-from-the-session-files.patch
new-iso-flags-folder.patch
always-add-default-theme.patch
fix-fallback-1.patch
fix-fallback-2.patch
fix-menu-editor-python3.10.patch
capy-better-multiarch-support.patch
change-upload-system-info-path.patch
upstream/docs-Remove-recorder.xml.in.patch
74 changes: 74 additions & 0 deletions debian/patches/upstream/docs-Remove-recorder.xml.in.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
From: Rick Calixte <10281587+rcalixte@users.noreply.github.com>
Date: Tue, 17 Sep 2024 20:48:10 -0400
Subject: docs: Remove recorder.xml.in

This file references another for inclusion that no longer exists. With
gtk-doc-tools 1.34.0, stricter checking is enabled that results in a
failure
which halts the build process due to this invalid file reference.
---
docs/reference/cinnamon/cinnamon-docs.sgml | 1 -
docs/reference/cinnamon/meson.build | 15 +--------------
docs/reference/cinnamon/recorder.xml.in | 12 ------------
3 files changed, 1 insertion(+), 27 deletions(-)
delete mode 100644 docs/reference/cinnamon/recorder.xml.in

diff --git a/docs/reference/cinnamon/cinnamon-docs.sgml b/docs/reference/cinnamon/cinnamon-docs.sgml
index bd5bebd..4e79c29 100644
--- a/docs/reference/cinnamon/cinnamon-docs.sgml
+++ b/docs/reference/cinnamon/cinnamon-docs.sgml
@@ -35,7 +35,6 @@
<xi:include href="xml/cinnamon-tray-icon.xml"/>
<xi:include href="xml/cinnamon-tray-manager.xml"/>
</chapter>
- <xi:include href="recorder.xml"/>
<chapter>
<title>Integration helpers and utilities</title>
<xi:include href="xml/cinnamon-global.xml"/>
diff --git a/docs/reference/cinnamon/meson.build b/docs/reference/cinnamon/meson.build
index fec3ed3..0123077 100644
--- a/docs/reference/cinnamon/meson.build
+++ b/docs/reference/cinnamon/meson.build
@@ -7,23 +7,10 @@ ignore = [
sniffer_headers,
]

-recorder_conf = configuration_data()
-
-if get_option('build_recorder')
- recorder_conf.set('BUILD_RECORDER_XML_START', '-->')
- recorder_conf.set('BUILD_RECORDER_XML_END', '<!--')
-else
- recorder_conf.set('BUILD_RECORDER_XML_START', '')
- recorder_conf.set('BUILD_RECORDER_XML_END', '')
+if not get_option('build_recorder')
ignore += 'cinnamon-recorder.h'
endif

-configure_file(
- input: 'recorder.xml.in',
- output: 'recorder.xml',
- configuration: recorder_conf,
-)
-
gnome.gtkdoc(
'cinnamon',
mode: 'xml',
diff --git a/docs/reference/cinnamon/recorder.xml.in b/docs/reference/cinnamon/recorder.xml.in
deleted file mode 100644
index 133c57b..0000000
--- a/docs/reference/cinnamon/recorder.xml.in
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
- "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
-[
- <!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'">
-]>
- <!-- @BUILD_RECORDER_XML_START@
- <chapter>
- <title>Recorder</title>
- <xi:include href="xml/cinnamon-recorder.xml"/>
- </chapter>
- @BUILD_RECORDER_XML_END@ -->
15 changes: 4 additions & 11 deletions debian/rules
Original file line number Diff line number Diff line change
@@ -22,7 +22,7 @@ ifneq ($(DEB_HOST_ARCH_OS),linux)
endif

%:
dh $@ --with python3,gir
dh $@

override_dh_auto_configure:
dh_auto_configure -- $(CONFIGURE_EXTRA_FLAGS)
@@ -31,16 +31,6 @@ override_dh_auto_test:
# Disable tests, upstream doesn't use them
:

# Thumbnail path for the window manager themes
TH_DIR=debian/cinnamon-common/usr/share/cinnamon/thumbnails/metacity-1

override_dh_install-indep:
dh_install

mv $(TH_DIR)/Adwaita.png $(TH_DIR)/Default.png

rm -f debian/cinnamon-common/usr/share/cinnamon/js/misc/config.js

override_dh_install-arch:
dh_install -X.la

@@ -51,3 +41,6 @@ override_dh_makeshlibs:
dh_makeshlibs -pcinnamon -Xlibcinnamon
dh_makeshlibs --remaining-packages

override_dh_shlibdeps:
# cinnamon uses muffin private libraries
dh_shlibdeps -l"usr/lib/$(DEB_HOST_MULTIARCH)/muffin"
1 change: 1 addition & 0 deletions debian/salsa-ci-extra-repos.list
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
deb [trusted=yes] http://debomatic-amd64.debian.net/debomatic/dpr-cinnamon-unstable/ dpr-cinnamon-unstable main
10 changes: 10 additions & 0 deletions debian/salsa-ci-piupart-pre-script.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/sh

set -x
set -e

cat >/etc/apt/preferences.d/99dpr-cinnamon-unstable <<EOT
Package: *
Pin: release a=dpr-cinnamon-unstable
Pin-Priority: 500
EOT
4 changes: 2 additions & 2 deletions debian/salsa-ci.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
include:
- https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
- https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml
- https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/recipes/debian.yml

variables:
SALSA_CI_DISABLE_MISSING_BREAKS: 0
SALSA_CI_DISABLE_RC_BUGS: 0
SALSA_CI_DISABLE_BUILD_PACKAGE_TWICE: 0
5 changes: 2 additions & 3 deletions debian/watch
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
version=3
opts="dversionmangle=s/\+repack//;s/\+dfsg//;s/\+up[0-9]//,filenamemangle=s/.*\/(.*)/cinnamon-$1/" \
https://github.com/linuxmint/Cinnamon/tags .*/v?(\d.*)\.(?:tgz|tar\.(?:gz|bz2|xz))
version=4
https://github.com/linuxmint/Cinnamon/tags .*/v?(\d.*)@ARCHIVE_EXT@
1 change: 1 addition & 0 deletions docs/applets-examples/finder@cinnamon.org/applet.js
Original file line number Diff line number Diff line change
@@ -260,6 +260,7 @@ MyApplet.prototype =
});
this._scrollBox.add_actor(this._container);
this._scrollBox.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC);
this._scrollBox.set_clip_to_allocation(true);
this._scrollBox.set_auto_scrolling(true);

this.searchEntryText = this.searchEntry.clutter_text;
9 changes: 4 additions & 5 deletions docs/reference/cinnamon-js/gen_doc.py
Original file line number Diff line number Diff line change
@@ -65,11 +65,10 @@
JS_MISC_DIR = os.path.join(ROOT_DIR, 'js/misc/')

# Allow types like "object/string"
TYPE_REGEX = r'\w*\.?\w+/?\w*\.?\w*'
COMMENT_REGEX = re.compile(r'/\*([^*]|(\*[^/]))*\*+/')
RETURNS_REGEX = re.compile(r'^Returns\s*\(?(' + TYPE_REGEX + ')?\)?:(.*)')
INHERITS_REGEX = re.compile(r'^Inherits:\s*(' + TYPE_REGEX + ')\s*$')
PROPERTY_REGEX = re.compile(r'^@(\w+)\s*\(?(' + TYPE_REGEX + ')?\)?:(.*)')
RETURNS_REGEX = re.compile(r'^Returns\s*\(?(\w*\.?\w+/?\w*\.?\w*)?\)?:(.*)')
INHERITS_REGEX = re.compile(r'^Inherits:\s*(\w*\.?\w+/?\w*\.?\w*)\s*$')
PROPERTY_REGEX = re.compile(r'^@(\w+)\s*\(?(\w*\.?\w+/?\w*\.?\w*)?\)?:(.*)')
FILE_NAME_REGEX = re.compile(r'FILE:\s*(\w+\.js):?')
SIGNAL_NAME_REGEX = re.compile(r'SIGNAL:\s*([\w-]+):?')
ENUM_NAME_REGEX = re.compile(r'ENUM:\s*(\w+):?')
@@ -263,7 +262,7 @@
scope = line

# Don't count the brackets inside strings. STRING_REGEX recognizes
# ' and " but doesn't know if they are esacped. So replace away all
# ' and " but doesn't know if they are escaped. So replace away all
# escaped quotes
line = STRING_REGEX.sub('', line.replace("\\'", "").replace('\\"', ''))

14 changes: 7 additions & 7 deletions docs/reference/cinnamon-js/gen_lib.py
Original file line number Diff line number Diff line change
@@ -36,18 +36,18 @@ def get_type_link(typ, file):
return typ.replace('.', '')

def markup(line, obj):
line = re.sub('@(\w*)', '<code>\g<1></code>', line)
line = re.sub('`([^`]*)`', '<code>\g<1></code>', line)
line = re.sub('\*\*([^*]*)\*\*', '<emphasis role="strong">\g<1></emphasis>', line)
line = re.sub('\*([^*]*)\*', '<emphasis>\g<1></emphasis>', line)
line = re.sub(r'@(\w*)', r'<code>\g<1></code>', line)
line = re.sub(r'`([^`]*)`', r'<code>\g<1></code>', line)
line = re.sub(r'\*\*([^*]*)\*\*', r'<emphasis role="strong">\g<1></emphasis>', line)
line = re.sub(r'\*([^*]*)\*', r'<emphasis>\g<1></emphasis>', line)

def format_type_link(match):
res = match.group(1)
return '<link linkend="{link}"><code>{name}</code></link>'.format(
link = get_type_link(res, obj.file),
name = res)

line = re.sub('#(([\w]*\.)?[\w]+)', format_type_link, line)
line = re.sub(r'#(([\w]*\.)?[\w]+)', format_type_link, line)

def format_ext_link(match):
if match.group(1):
@@ -96,11 +96,11 @@ def format_ext_link(match):
else:
return '<code>{name}</code>'.format(name = full)

line = re.sub('%(([\w]+\.)?[\w]+\.)?([\w]+)(\(\))?', format_ext_link, line)
line = re.sub(r'%(([\w]+\.)?[\w]+\.)?([\w]+)(\(\))?', format_ext_link, line)

return line

class JSThing():
class JSThing:
def append_description(self, desc):
self.description += desc.replace('<', '&lt;').replace('>', '&gt;')

3 changes: 1 addition & 2 deletions docs/reference/cinnamon-js/meson.build
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@ gen_doc = files('gen_doc.py')

parts_files = custom_target(
'js-doc-gen',
command: [python, gen_doc, meson.source_root(), join_paths(meson.build_root(), '@OUTDIR@')],
command: [python, gen_doc, meson.project_source_root(), join_paths(meson.project_build_root(), '@OUTDIR@')],
# input: ['cinnamon-js-docs.sgml'],
output: ['ui.xml', 'misc.xml'],
build_by_default: true,
@@ -12,7 +12,6 @@ gnome.gtkdoc(
'cinnamon-js',
mode: 'xml',
main_xml: 'cinnamon-js-docs.sgml',
dependencies: parts_files,
src_dir: meson.current_build_dir(),
install: true,
)
2 changes: 1 addition & 1 deletion docs/reference/cinnamon-tutorials/documenting-source.xml
Original file line number Diff line number Diff line change
@@ -145,7 +145,7 @@
The type of a property specified will be automatically converted to a link to the documentation of that type, if available.
</listitem>
<listitem>
In the description of itmes, <code>@word</code> will be automatically converted to code format, ie. enclosed within <code>&lt;code&gt;</code> tags.
In the description of items, <code>@word</code> will be automatically converted to code format, ie. enclosed within <code>&lt;code&gt;</code> tags.
</listitem>
<listitem>
In the description of items, <code>*text more text*</code> will be shown in italics and <code>**text more text**</code> will be shown in bold. Note that using <code>_underlines to highlight_</code> is not supported since the parser will confuse it with private variables.
2 changes: 1 addition & 1 deletion docs/reference/cinnamon-tutorials/documenting-tutorial.xml
Original file line number Diff line number Diff line change
@@ -123,7 +123,7 @@
&amp;lt;para&amp;gt;Lorem &amp;lt;code&amp;gt;ipsum&amp;lt;/code&amp;gt; dolor sit amet.&amp;lt;/para&amp;gt;
&amp;lt;/section&amp;gt;&lt;/programlisting&gt;</programlisting>

<para>There are a few things to take note of. Firstly, the &lt; and &gt; items are escaped. Secondly, the contents of the <code>&lt;programlisting&gt;</code> is flushed to the left, regardless of the current indentation of the xml. This is since all whitepsace is rendered verbatim. Thirdly, the end <code>&lt;/programlisting tag&gt;</code> is put on the same row as the last line, or else an extra row will appear in the output.</para>
<para>There are a few things to take note of. Firstly, the &lt; and &gt; items are escaped. Secondly, the contents of the <code>&lt;programlisting&gt;</code> is flushed to the left, regardless of the current indentation of the xml. This is since all whitespace is rendered verbatim. Thirdly, the end <code>&lt;/programlisting tag&gt;</code> is put on the same row as the last line, or else an extra row will appear in the output.</para>

<para>If you are intending to show code, you will want to do syntax highlighting. Doing so via the regular DocBook way is useless. Instead, you need some magic, namely enclosing your <code>&lt;programlisting&gt;</code> inside an <code>&lt;informalexample&gt;</code> tag, eg.</para>
<programlisting>
4 changes: 2 additions & 2 deletions docs/reference/cinnamon-tutorials/meson.build
Original file line number Diff line number Diff line change
@@ -3,8 +3,8 @@ gnome.gtkdoc(
mode: 'xml',
main_xml: 'cinnamon-tutorials-docs.sgml',
src_dir: [
join_paths(meson.source_root(), 'src'),
join_paths(meson.build_root(), 'src'),
join_paths(meson.project_source_root(), 'src'),
join_paths(meson.project_build_root(), 'src'),
],
mkdb_args: ['--xml-mode', '--output-format=xml'],
html_assets: 'settings.png',
2 changes: 1 addition & 1 deletion docs/reference/cinnamon-tutorials/using-documentation.xml
Original file line number Diff line number Diff line change
@@ -36,7 +36,7 @@

<para>The <code>_init</code> function of each object is the constructor. So if you want to know what happens when you call <code>new Applet.Applet</code>, you look at the <code>_init</code> function of <code>Applet.Applet</code>. There usually isn't much helpful information apart form what each argument does.</para>

<para>Certain variables and functions are prepended with <code>_</code>, eg. <code>_showPanel</code>. These are private variables and functions which shouldn't be accessed normally, and is there purely for referencial purposes. It is generally not a good idea to use them in applets/desklets. Within Cinnamon itself, you may use them when necessary.</para>
<para>Certain variables and functions are prepended with <code>_</code>, eg. <code>_showPanel</code>. These are private variables and functions which shouldn't be accessed normally, and is there purely for referential purposes. It is generally not a good idea to use them in applets/desklets. Within Cinnamon itself, you may use them when necessary.</para>

<para>Note that the <code>_init</code> is also a private function, and you also shouldn't call it directly (unless you are inheriting the object). It is implicitly called when you call the constructor (which technically can be totally unrelated to the <code>_init</code> function.</para>

188 changes: 105 additions & 83 deletions docs/reference/cinnamon-tutorials/write-applet.xml

Large diffs are not rendered by default.

16 changes: 8 additions & 8 deletions docs/reference/cinnamon-tutorials/xlet-settings-ref.xml
Original file line number Diff line number Diff line change
@@ -241,22 +241,22 @@
"section1" : {
"type" : "section",
"title" : "1st section",
"sections" : ["setting1", "setting2"]
"keys" : ["setting1", "setting2"]
},
"section2" : {
"type" : "section",
"title" : "2nd section",
"sections" : ["setting3", "setting4"]
"keys" : ["setting3", "setting4"]
},
"section3" : {
"type" : "section",
"title" : "3rd section",
"sections" : ["setting5", "setting6"]
"keys" : ["setting5", "setting6"]
},
"section4" : {
"type" : "section",
"title" : "4th section",
"sections" : ["setting7", "setting8"]
"keys" : ["setting7", "setting8"]
}
}</programlisting>
</informalexample>
@@ -322,7 +322,7 @@
</itemizedlist>

<para>
This widget provides a list with columns, and rows which can be created, edited, deleted and reordered. The columns in the list are specified by the <code>columns</code> propery. All columns have the following properties:
This widget provides a list with columns, and rows which can be created, edited, deleted and reordered. The columns in the list are specified by the <code>columns</code> property. All columns have the following properties:
<itemizedlist>
<listitem><code>id</code>: a unique string for identifying the column</listitem>
<listitem><code>title</code>: the title that will be displayed in the column header</listitem>
@@ -339,7 +339,7 @@
<listitem><code>file</code>: this type stores data as a string. A <code>filechooser</code> is generated in the add/edit dialog. The default value for new entries is an empty string unless specified with the <code>default</code> property.</listitem>
<listitem><code>integer</code>: this type stores data as an integer. A <code>spinbutton</code> is generated in the add/edit dialog. The default value for new entries is 0 unless specified with the <code>default</code> property.</listitem>
<listitem><code>float</code>: this type stores data as a floating point number. A <code>spinbutton</code> is generated in the add/edit dialog. The default value for new entries is 0.0 unless specified with the <code>default</code> property.</listitem>
<listitem><code>boolean</code>: this type stores data as a bool. A <code>switch</code> is generated in the add/edit dialog. The default value for new entries is false unless specified with the <code>default</code> property.</listitem>
<listitem><code>boolean</code>: this type stores data as a boolean. A <code>switch</code> is generated in the add/edit dialog. The default value for new entries is false unless specified with the <code>default</code> property.</listitem>
</itemizedlist>
</para>
<para>The values are stored as an array of objects where each object in the array corresponds to a row in the list, and each entry in the row object is a key:value pair where the key being the <code>column id</code> of the column to which the value corresponds.</para>
@@ -410,7 +410,7 @@

<itemizedlist>
<listitem>
<code>dependency: </code>Shows or hides the settings widget based on the value of another key in the settings-schema file. There are several possibl values for this option:
<code>dependency: </code>Shows or hides the settings widget based on the value of another key in the settings-schema file. There are several possible values for this option:
<itemizedlist>
<listitem>The most common value for this option is simply the <code>key</code> of the setting you wish to depend on. This is most useful for depending on a boolean setting such as a switch. This will make your setting hide if the key you're depending on is false, and show it when the key is true.</listitem>
<listitem>If you wish to 'invert' the dependence you can precede the key with a <code>!</code>. This will make your setting hide if the key you're depending on is true, and show it when the key is false.</listitem>
@@ -436,7 +436,7 @@

<para>Signals when <code>key</code> has changed in the configuration file. Use this in conjunction with <code>getValue</code> if you want to handle your own updating in a more traditional way (like gsettings).</para>

<para>The callback function will be called with three paramenters: <code>settingProvider, oldval, newval</code>, which are, respectively, the settings object (which you usually don't need), the original value and the updated value.</para>
<para>The callback function will be called with three parameters: <code>settingProvider, oldval, newval</code>, which are, respectively, the settings object (which you usually don't need), the original value and the updated value.</para>
</sect3>
</sect2>

6 changes: 3 additions & 3 deletions docs/reference/cinnamon-tutorials/xlet-settings.xml
Original file line number Diff line number Diff line change
@@ -68,14 +68,14 @@
<sect2>
<title>Using the settings in your applet</title>
<para>
Now that you have your settings defined in settings-schema.json, you will need to set up your applet to use them. The first thing you will need to do is import the settings library. To do so, sipmly place the following line with the other imports at the beginning of your file:
Now that you have your settings defined in settings-schema.json, you will need to set up your applet to use them. The first thing you will need to do is import the settings library. To do so, simply place the following line with the other imports at the beginning of your file:
</para>
<informalexample>
<programlisting>
const Settings = imports.ui.settings;</programlisting>
</informalexample>
<para>
Now you will need to initialize the settings provider. It is recommended that you do this early in the <code>_init</code> function of your applet, since you cant use any of the settings until the provider is initialized. We do this by using the AppletSettings class as follows:
Now you will need to initialize the settings provider. It is recommended that you do this early in the <code>_init</code> function of your applet, since you can't use any of the settings until the provider is initialized. We do this by using the AppletSettings class as follows:
</para>
<informalexample>
<programlisting>
@@ -167,7 +167,7 @@ this.height = 100; //now our height is 100</programlisting>
</sect2>
<sect2>
<title>Overrides</title>
<para>As of Cinnamon 4.4, it is now possible to override individual settings and their properties. This is to allow distributions to make changes that help cinnamon feel more 'at home' in that distribution, such as default icons, stings, etc.</para>
<para>As of Cinnamon 4.4, it is now possible to override individual settings and their properties. This is to allow distributions to make changes that help cinnamon feel more 'at home' in that distribution, such as default icons, strings, etc.</para>
<para>To create an override, place a file called settings-override.json, in the folder of the applet, desklet or extension you wish to override. This file will have the same format as settings-schema.json, but you only need to include the settings you wish to override. Note: the settings need to have the same settings 'key' as the one you're overriding - otherwise it will add a new, unused setting rather than replacing the old.</para>
<para>If you would just like to add or replace one or two properties, there is an additional option as well. In the settings key, include the property <code>override-prop</code> (it's value can be anything - even false), and it will use the original setting definition and only add or change the properties you define. This is particularly useful if you want to change a default, add a tooltip, or other minor changes like that.</para>
<para>Tip: If you wish to remove a setting, you can do that too! Because the applet almost certainly relies on there being a value for that setting, you will need to replace it, rather than removing it completely. All you need to do, is redefine the setting with a type of <code>generic</code>. Be sure to also define the <code>default</code> property. Please note that if a user already has a value set that is not the default, it will continue to use the old value rather than the default, but the user will no longer be able to set it.</para>
10 changes: 5 additions & 5 deletions docs/reference/cinnamon-tutorials/xlet-translating.xml
Original file line number Diff line number Diff line change
@@ -60,7 +60,7 @@
Open a terminal in the directory where the <code>metadata.json</code> file is saved.
</listitem>
<listitem>
Type in the command <code>cinnamon-json-makepot --js po/yourApplet.pot</code>
Type in the command <code>cinnamon-xlet-makepot</code>
</listitem>
</itemizedlist>
<para>
@@ -70,7 +70,7 @@
<sect2>
<title>Create a translation for the first time with the application Poedit</title>
<para>
Install the programm "Poedit": <code>sudo apt install poedit</code>
Install the program "Poedit": <code>sudo apt install poedit</code>
</para>
<itemizedlist>
<listitem>
@@ -108,7 +108,7 @@
Open a terminal in the directory where the <code>metadata.json</code> file is saved.
</listitem>
<listitem>
Type in the command <code>cinnamon-json-makepot --js po/yourApplet.pot</code>
Type in the command <code>cinnamon-xlet-makepot</code>
</listitem>
</itemizedlist>
<para>
@@ -145,7 +145,7 @@
Open a terminal in the directory where the <code>metadata.json</code> file is saved.
</listitem>
<listitem>
Type in the command <code>cinnamon-json-makepot -i</code> to install the existing translations (i.e. the <code>.po</code> files)
Type in the command <code>cinnamon-xlet-makepot -i</code> to install the existing translations (i.e. the <code>.po</code> files)
</listitem>
<listitem>
Restart Cinnamon: <code>CTRL+ALT+ESC</code>
@@ -159,7 +159,7 @@
Open a terminal in the directory where the <code>metadata.json</code> file is saved.
</listitem>
<listitem>
Type in the command <code>cinnamon-json-makepot -r</code> to remove the installed translations.
Type in the command <code>cinnamon-xlet-makepot -r</code> to remove the installed translations.
</listitem>
<listitem>
Restart Cinnamon: <code>CTRL+ALT+ESC</code>
5 changes: 3 additions & 2 deletions docs/reference/cinnamon/meson.build
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
ignore = [
'cinnamon-recorder-src.h',
'cinnamon-recorder.h',
st_headers,
st_private_headers,
tray_headers,
@@ -30,8 +31,8 @@ gnome.gtkdoc(
gobject_typesfile: 'cinnamon.types',
dependencies: [libcinnamon_deps, st_dep, cinnamon_dep],
src_dir: [
join_paths(meson.source_root(), 'src'),
join_paths(meson.build_root(), 'src'),
join_paths(meson.project_source_root(), 'src'),
join_paths(meson.project_build_root(), 'src'),
],
scan_args: '--rebuild-types',
mkdb_args: ['--xml-mode', '--output-format=xml'],
4 changes: 2 additions & 2 deletions docs/reference/st/meson.build
Original file line number Diff line number Diff line change
@@ -5,8 +5,8 @@ gnome.gtkdoc(
gobject_typesfile: 'cinnamon-st.types',
dependencies: [st_dep],
src_dir: [
join_paths(meson.source_root(), 'src', 'st'),
join_paths(meson.build_root(), 'src', 'st'),
join_paths(meson.project_source_root(), 'src', 'st'),
join_paths(meson.project_build_root(), 'src', 'st'),
],
scan_args: '--rebuild-types',
mkdb_args: ['--xml-mode', '--output-format=xml'],
Original file line number Diff line number Diff line change
@@ -36,7 +36,7 @@
for url, title in cur.fetchall():
url_parsed = urllib.parse.urlparse(url)
domain = url_parsed.scheme + '://' + url_parsed.netloc
if not domain in domains_list:
if domain not in domains_list:
domains_list.append(domain)
if url and title:
results.append({
Original file line number Diff line number Diff line change
@@ -38,11 +38,11 @@
#If we have no defined file type or no file url, skip
continue
result_types = cursor.get_string(7)[0].split(",")
while len(result_types) > 0 and defined_type == None:
while len(result_types) > 0 and defined_type is None:
t = result_types.pop()
if t in CONVERT_TYPES:
defined_type = CONVERT_TYPES[t]
if defined_type == None:
if defined_type is None:
defined_type = "files"
if len(results.setdefault(defined_type, [])) < 10:
results.setdefault(defined_type, []).append({
9 changes: 9 additions & 0 deletions files/etc/xdg/menus/cinnamon-applications.menu
Original file line number Diff line number Diff line change
@@ -61,6 +61,7 @@
<Include>
<And>
<Category>Education</Category>
<Not><Category>Science</Category></Not>
</And>
</Include>
</Menu> <!-- End Education -->
@@ -120,6 +121,14 @@
</Include>
</Menu> <!-- End Office -->

<Menu>
<Name>Science</Name>
<Directory>cinnamon-science.directory</Directory>
<Include>
<Category>Science</Category>
</Include>
</Menu>

<!-- System Tools-->
<Menu>
<Name>System</Name>
104 changes: 104 additions & 0 deletions files/usr/bin/cinnamon-close-dialog
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
#! /usr/bin/python3

"""
Close dialog spawned by cinnamon (closeDialog.js) that prompts the user to kill a hung window.
"""
import signal
import gettext
import argparse

import gi
gi.require_version('Gtk', '3.0')
gi.require_version('XApp', '1.0')

from gi.repository import GLib, Gtk, GdkX11, Gdk, XApp

signal.signal(signal.SIGINT, signal.SIG_DFL)

gettext.install("cinnamon", "/usr/share/locale", names=["ngettext"])

UNSET = -1
KILL = 0
WAIT = 1

global response
response = UNSET

class CloseDialog(XApp.GtkWindow):
def __init__(self, parent_xid, title):
XApp.GtkWindow.__init__(self,
resizable=False,
modal=True,
type_hint=Gdk.WindowTypeHint.DIALOG)

self.set_title("")
self.set_default_size(300, -1)
self.set_skip_taskbar_hint(True)

mainbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
self.add(mainbox)

content_box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL,
halign=Gtk.Align.CENTER,
margin_left=10, margin_right=10)
mainbox.pack_start(content_box, True, False, 0)

image = Gtk.Image(icon_name="window-close-symbolic", pixel_size=48)
content_box.pack_start(image, False, True, 0)

text = _("%s is not responding.") % title
prompt = Gtk.Label(label="<b>%s</b>" % text, use_markup=True, wrap=True)
content_box.pack_start(prompt, True, True, 5)

bb = Gtk.ButtonBox(layout_style=Gtk.ButtonBoxStyle.SPREAD,
spacing=10)
mainbox.pack_end(bb, False, False, 10)

button = Gtk.Button(label=_("Force quit"))
button.get_style_context().add_class(Gtk.STYLE_CLASS_DESTRUCTIVE_ACTION)
bb.pack_start(button, False, False, 0)
button.connect("clicked", self.force_quit_clicked)

button = Gtk.Button(label=_("Wait"))
bb.pack_start(button, False, False, 0)
button.connect("clicked", self.wait_clicked)

self.show_all()

self.connect("delete-event", lambda w, e: self.return_response(WAIT))
GLib.unix_signal_add(GLib.PRIORITY_DEFAULT, signal.SIGTERM, lambda: self.return_response(WAIT))

self.realize()

try:
parent = GdkX11.X11Window.foreign_new_for_display(Gdk.Display.get_default(), parent_xid)
self.get_window().set_transient_for(parent)
except TypeError:
parent = None

def force_quit_clicked(self, button):
self.return_response(KILL)

def wait_clicked(self, button):
self.return_response(WAIT)

def return_response(self, code):
global response
response = code
Gtk.main_quit()

if __name__ == "__main__":

parser = argparse.ArgumentParser(description="Cinnamon dialog for force-closing stuck windows.\n Returns 0 to confirm, 1 to wait, 2 this window was terminated.")
parser.add_argument("xid", type=int, help="The parent window's xid")
parser.add_argument("message", type=str, help="The program title")

args = parser.parse_args()

dialog = CloseDialog(args.xid, args.message)
Gtk.main()
dialog.destroy()

print(response)
exit(response)

117 changes: 117 additions & 0 deletions files/usr/bin/cinnamon-display-changes-dialog
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
#! /usr/bin/python3

"""
Close dialog spawned by cinnamon (closeDialog.js) that prompts the user to kill a hung window.
"""
import signal
import gettext
import argparse

import gi
gi.require_version('Gtk', '3.0')
gi.require_version('XApp', '1.0')

from gi.repository import GLib, Gtk, Gdk, XApp

signal.signal(signal.SIGINT, signal.SIG_DFL)

gettext.install("cinnamon", "/usr/share/locale", names=["ngettext"])

UNSET = -1
CONFIRM = 0
CANCEL = 1

global response
response = UNSET

class DisplayChangeDialog(XApp.GtkWindow):
def __init__(self, timeout):
XApp.GtkWindow.__init__(self,
resizable=False,
type_hint=Gdk.WindowTypeHint.DIALOG)

self.timeout = timeout
self.countdown = timeout

self.set_title("Confirm Display Configuration")
self.set_icon_name("display")
self.set_default_size(300, 150)
self.set_keep_above(True)

mainbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL,
margin_top=10)
self.add(mainbox)

content_box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL,
halign=Gtk.Align.CENTER)
mainbox.pack_start(content_box, True, False, 0)

image = Gtk.Image(icon_name="preferences-desktop-display", pixel_size=48)
content_box.pack_start(image, False, True, 0)

text = _("Does the display look ok?")
prompt = Gtk.Label(label="<b>%s</b>" % text, use_markup=True, wrap=True)
content_box.pack_start(prompt, True, True, 5)

bb = Gtk.ButtonBox(layout_style=Gtk.ButtonBoxStyle.SPREAD,
spacing=10)
mainbox.pack_end(bb, False, False, 10)

self.cancel_button = Gtk.Button(label=_("Cancel changes"))
bb.pack_start(self.cancel_button, False, False, 0)
self.cancel_button.connect("clicked", self.cancel_changes_clicked)

button = Gtk.Button(label=_("Keep new configuration"))
button.get_style_context().add_class(Gtk.STYLE_CLASS_SUGGESTED_ACTION)
bb.pack_start(button, False, False, 0)
button.connect("clicked", self.keep_changes_clicked)

self.show_all()

self.connect("delete-event", lambda w, e: self.return_response(CANCEL))
GLib.unix_signal_add(GLib.PRIORITY_DEFAULT, signal.SIGTERM, lambda: self.return_response(CANCEL))

self.set_progress(100)
self.update_cancel_label()
GLib.timeout_add(1000, self.dialog_timer_tick)

def update_cancel_label(self):
self.cancel_button.set_label(_("Cancel changes... %ds") % self.countdown)

def dialog_timer_tick(self):
self.countdown -= 1

if self.countdown == 0:
self.return_response(CANCEL)
return GLib.SOURCE_REMOVE

self.update_cancel_label()
self.set_progress((100 / self.timeout) * self.countdown)

return GLib.SOURCE_CONTINUE

def cancel_changes_clicked(self, button):
self.return_response(CANCEL)

def keep_changes_clicked(self, button):
self.return_response(CONFIRM)

def return_response(self, code):
global response
response = code
Gtk.main_quit()

if __name__ == "__main__":

parser = argparse.ArgumentParser(description="Cinnamon dialog confirming display changed.\n Returns 0 to confirm, 1 revert.")
parser.add_argument("timeout", type=int, help="The number of seconds to wait before reverting changes")

args = parser.parse_args()

dialog = DisplayChangeDialog(args.timeout)
Gtk.main()
dialog.destroy()

print(response)
exit(response)

244 changes: 244 additions & 0 deletions files/usr/bin/cinnamon-hover-click
Original file line number Diff line number Diff line change
@@ -0,0 +1,244 @@
#! /usr/bin/python3

"""
Close dialog spawned by cinnamon (closeDialog.js) that prompts the user to kill a hung window.
"""
import signal
import gettext

import gi
gi.require_version('Gtk', '3.0')
gi.require_version('XApp', '1.0')

from gi.repository import GLib, Gtk, Gdk, XApp, Gio

signal.signal(signal.SIGINT, signal.SIG_DFL)

gettext.install("cinnamon", "/usr/share/locale", names=["ngettext"])

KEY_ACTION = "hoverclick-action"
KEY_GEOMETRY = "hoverclick-geometry"
KEY_LAYOUT = "hoverclick-layout"

class HoverClickWindow(XApp.GtkWindow):
def __init__(self):
XApp.GtkWindow.__init__(self, type_hint=Gdk.WindowTypeHint.UTILITY)

self.set_keep_above(True)
self.stick()
self.set_title(_("Hover click"))
self.set_default_size(1, 1)
self.set_icon_name("input-mouse")

# default position - utility windows normally spawn at screen 0,0
primary = Gdk.Display.get_default().get_primary_monitor()
workarea = primary.get_workarea()
self.move(workarea.x + workarea.width / 2, workarea.y + workarea.height / 2)

self.orientation = None
self.button_style = None
self.buttons = []
self.popup = None

self.settings = Gio.Settings(schema_id="org.cinnamon")

self.mainbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, margin=4)
self.add(self.mainbox)

self.button_box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=4, homogeneous=True)
self.mainbox.pack_start(self.button_box, True, True, 0)

self.action = self.settings.get_string("hoverclick-action")

self.doing_setup = True

self.last_button = None
self.start_button = None
def make_button(label, icon_name, action):
button = Gtk.RadioButton(label=label,
image=Gtk.Image(icon_name=icon_name, no_show_all=True),
image_position=Gtk.PositionType.TOP,
relief=Gtk.ReliefStyle.NONE,
always_show_image=False,
draw_indicator=False)

button._saved_label = label

if self.action == action:
self.start_button = button

button.connect("toggled", self.action_changed, action)
button.connect("button-press-event", self.on_button_press_event)

if self.last_button is not None:
button.join_group(self.last_button)
else:
self.last_button = button

self.buttons.append(button)

return button

self.single_click_button = make_button(_("Single Click"), "cinnamon-hc-single-click", "single")
self.button_box.pack_start(self.single_click_button, True, True, 0)
self.double_click_button = make_button(_("Double Click"), "cinnamon-hc-double-click", "double")
self.button_box.pack_start(self.double_click_button, True, True, 0)
self.drag_button = make_button(_("Drag"), "cinnamon-hc-drag-click", "drag")
self.button_box.pack_start(self.drag_button, True, True, 0)
self.right_click_button = make_button(_("Secondary Click"), "cinnamon-hc-right-click", "secondary")
self.button_box.pack_start(self.right_click_button, True, True, 0)

if self.start_button is not None:
self.start_button.set_active(True)

self.update_layout()
self.setup_menu()
self.position_window()

self.doing_setup = False

self.show_all()
self.settings.connect("changed::hoverclick-layout", self.update_layout)
self.connect("delete-event", self.exit)
GLib.unix_signal_add(GLib.PRIORITY_DEFAULT, signal.SIGTERM, self.exit)

def action_changed(self, button, action):
if self.doing_setup:
return

if not button.get_active():
return

self.settings.set_string("hoverclick-action", action)

def on_button_press_event(self, button, event):
had_button, button = event.get_button()

if button == Gdk.BUTTON_SECONDARY:
self.menu.popup_at_pointer(event)

return Gdk.EVENT_PROPAGATE

def update_layout(self, *args):
layout = self.settings.get_string("hoverclick-layout")

try:
orientation, button_style = layout.split("::", maxsplit=2)
except Exception as e:
print("Could not load user layout from settings: ", e)

if orientation != self.orientation:
if orientation == "vertical":
self.button_box.set_orientation(Gtk.Orientation.VERTICAL)
elif orientation == "horizontal":
self.button_box.set_orientation(Gtk.Orientation.HORIZONTAL)
self.orientation = orientation
# snap size
self.resize(1, 1)

if button_style != self.button_style:
if button_style == "icons":
self.show_icons(True)
self.show_labels(False)
elif button_style == "text":
self.show_icons(False)
self.show_labels(True)
else:
self.show_icons(True)
self.show_labels(True)
self.button_style = button_style
self.resize(1, 1)

def show_icons(self, show):
for button in self.buttons:
button.set_always_show_image(show)
button.get_image().set_visible(show)

def show_labels(self, show):
for button in self.buttons:
# set label doesn't allow None, and will not 'hide' the label if it's only an empty string
button.props.label = button._saved_label if show else None

def setup_menu(self):
self.menu = Gtk.Menu()
self.menu.attach_to_widget(self)

text = Gtk.RadioMenuItem.new_with_mnemonic(None, _("_Text"))
text.props.active = self.button_style == "text"
self.menu.append(text)

icons = Gtk.RadioMenuItem.new_with_mnemonic(text.get_group(), _("_Icons"))
icons.props.active = self.button_style == "icons"
self.menu.append(icons)

both = Gtk.RadioMenuItem.new_with_mnemonic(text.get_group(), _("_Both"))
both.props.active = self.button_style == "both"
self.menu.append(both)

text.connect("activate", self.change_buttons, "text")
icons.connect("activate", self.change_buttons, "icons")
both.connect("activate", self.change_buttons, "both")

self.menu.append(Gtk.SeparatorMenuItem())

horiz = Gtk.RadioMenuItem.new_with_mnemonic(None, _("_Horizontal"))
horiz.props.active = self.orientation == "horizontal"
self.menu.append(horiz)

vert = Gtk.RadioMenuItem.new_with_mnemonic(horiz.get_group(), _("_Vertical"))
vert.props.active = self.orientation == "vertical"
self.menu.append(vert)

horiz.connect("activate", self.change_orientation, "horizontal")
vert.connect("activate", self.change_orientation, "vertical")

self.menu.show_all()

def change_buttons(self, menu, style):
try:
orientation, old_style = self.settings.get_string("hoverclick-layout").split("::", maxsplit=2)
except Exception as e:
print("Could not change user button style: ", e)
return

if style != old_style:
new_layout = "%s::%s" % (orientation, style)
self.settings.set_string("hoverclick-layout", new_layout)

def change_orientation(self, menu, orientation):
try:
old_orientation, button_style = self.settings.get_string("hoverclick-layout").split("::", maxsplit=2)
except Exception as e:
print("Could not change user button style: ", e)
return

if orientation != old_orientation:
new_layout = "%s::%s" % (orientation, button_style)
self.settings.set_string("hoverclick-layout", new_layout)

def position_window(self):
pos_str = self.settings.get_string("hoverclick-position")

try:
x, y = pos_str.split("::", maxsplit=2)
self.move(int(x), int(y))
except:
pass

def store_position(self):
x, y = self.get_position()
self.settings.set_string("hoverclick-position", "%d::%d" % (x, y))

def exit(self, *args):
self.store_position()
self.destroy()
Gtk.main_quit()

if __name__ == "__main__":
window = HoverClickWindow()
Gtk.main()

# Make sure position is updated
Gio.Settings.sync()

exit(0)
2 changes: 1 addition & 1 deletion files/usr/bin/cinnamon-json-makepot
Original file line number Diff line number Diff line change
@@ -7,7 +7,7 @@ It is kept for backwards compatibility as it is currently used by other scripts
for usage info type:
cinnamon-xlet-makepot -h
* Note that the Javascript arguement is inverted because previously Javascript files
* Note that the Javascript argument is inverted because previously Javascript files
were not scanned by default, but now are.
"""

62 changes: 38 additions & 24 deletions files/usr/bin/cinnamon-launcher
Original file line number Diff line number Diff line change
@@ -11,8 +11,9 @@ from setproctitle import setproctitle
import psutil
import threading
import gi
import shutil
gi.require_version('Gtk', '3.0') # noqa
from gi.repository import Gtk, GLib, Gio
from gi.repository import Gtk, GLib, Gio, GLib

FALLBACK_COMMAND = "metacity"
FALLBACK_ARGS = ("--replace",)
@@ -21,13 +22,13 @@ gettext.install("cinnamon", "/usr/share/locale")

panel_process_name = None
panel_cmd = None
if os.path.exists("/usr/bin/mate-panel"):
if shutil.which("mate-panel"):
panel_process_name = "mate-panel"
panel_cmd = "mate-panel --replace &"
elif os.path.exists("/usr/bin/gnome-panel"):
elif shutil.which("gnome-panel"):
panel_process_name = "gnome-panel"
panel_cmd = "gnome-panel --replace &"
elif os.path.exists("/usr/bin/tint2"):
elif shutil.which("tint2"):
panel_process_name = "tint2"
panel_cmd = "killall tint2; tint2 &"

@@ -46,9 +47,12 @@ def idle_function(func):
GLib.idle_add(func, *args)
return wrapper

class Launcher():
class Launcher:

def __init__(self):
self.fb_pid = 0
self.kill_lock = threading.Lock()

self.cinnamon_pid = os.fork()
if self.cinnamon_pid == 0:
os.execvp("cinnamon", ("cinnamon", "--replace", ) + tuple(sys.argv[1:]))
@@ -69,21 +73,23 @@ class Launcher():
@async_function
def wait_for_process(self):
exit_status = os.waitpid(self.cinnamon_pid, 0)[1]
if exit_status != 0:
if self.killed:
# Restart Cinnamon
self.restart_cinnamon()
else:
if os.fork() == 0:
# Start the fallback panel
if panel_cmd is not None:
os.system(panel_cmd)
# Start the fallback window manager
os.execvp(FALLBACK_COMMAND, (FALLBACK_COMMAND,) + FALLBACK_ARGS)
if not os.WIFEXITED(exit_status):
with self.kill_lock:
if self.killed:
# Restart Cinnamon
self.restart_cinnamon()
else:
self.confirm_restart()

Gtk.main_quit()
self.fb_pid = os.fork()
if self.fb_pid == 0:
# Start the fallback panel
if panel_cmd is not None:
os.system(panel_cmd)
# Start the fallback window manager
os.execvp(FALLBACK_COMMAND, (FALLBACK_COMMAND,) + FALLBACK_ARGS)
else:
self.confirm_restart()
else:
Gtk.main_quit()

@async_function
def monitor_memory(self):
@@ -99,16 +105,20 @@ class Launcher():
if memory > limit:
print ("Memory threshold reached: %d" % memory)
self.log_kill(memory, limit, delay)
self.killed = True
process.kill()
with self.kill_lock:
self.killed = True
process.kill()
break

def restart_cinnamon(self):
Gtk.main_quit()
os.execvp(sys.argv[0], (sys.argv[0], "--replace"))
os.execvp(sys.argv[0], sys.argv)

def log_kill(self, memory, limit, delay):
directory = os.path.expanduser("~/.cinnamon")
try:
directory = os.path.join(GLib.get_user_state_dir(), 'cinnamon')
except AttributeError:
directory = os.path.expanduser("~/.cinnamon")

string = "%s - Usage: %d MB - Limit: %d MB - Freq: %s sec" % (time.strftime("%Y.%m.%d %H:%M:%S"), memory, limit, delay)
if not os.path.exists(directory):
os.mkdir(directory)
@@ -140,7 +150,11 @@ class Launcher():
if checkbutton.get_active():
os.environ["CINNAMON_TROUBLESHOOT"] = "1"
os.system("killall %s" % panel_process_name)
os.system("kill %d" % self.fb_pid)
os.waitpid(self.fb_pid, 0)
self.restart_cinnamon()
else:
Gtk.main_quit()

if __name__ == "__main__":
setproctitle("cinnamon-launcher")
6 changes: 5 additions & 1 deletion files/usr/bin/cinnamon-session-cinnamon
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
#!/bin/sh
exec cinnamon-session --session cinnamon "$@"

if [ "$1" = "--wayland" ]; then
exec cinnamon-session --session cinnamon-wayland
else
exec cinnamon-session --session cinnamon "$@"
fi
5 changes: 3 additions & 2 deletions files/usr/bin/cinnamon-settings
Original file line number Diff line number Diff line change
@@ -58,6 +58,7 @@ Available types of sort, and corresponding numbers:
import getopt
import os
import sys
import shutil

def usage():
print("""Usage:
@@ -120,9 +121,9 @@ if len(sys.argv) > 1:
os.execvp("/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py", (" ",) + tuple(sys.argv[1:]))
elif os.path.exists("/usr/share/cinnamon/cinnamon-settings/modules/cs_%s.py" % module):
os.execvp("/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py", (" ",) + tuple(sys.argv[1:]))
elif os.path.exists("/usr/bin/cinnamon-control-center"):
elif shutil.which("cinnamon-control-center"):
os.execvp("/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py", (" ",) + tuple(sys.argv[1:]))
elif os.path.exists("/usr/bin/gnome-control-center"):
elif shutil.which("gnome-control-center"):
print ("Unknown module %s, calling gnome-control-center" % module)
os.execvp("gnome-control-center", (" ",) + tuple(sys.argv[1:]))
else:
12 changes: 6 additions & 6 deletions files/usr/bin/cinnamon-spice-updater
Original file line number Diff line number Diff line change
@@ -5,7 +5,7 @@ import sys
import argparse
import json

class UpdateSpices():
class UpdateSpices:
def __init__(self):
parser = argparse.ArgumentParser(description='Cinnamon Spice Updater',
epilog="spice-type should be 'applet', 'desklet', 'extension' or 'theme'.")
@@ -43,7 +43,7 @@ class UpdateSpices():
self.updater.refresh_all_caches()
updates = self.updater.get_updates()

if (len(updates) == 0):
if len(updates) == 0:
print("There are no Spice updates")
return

@@ -53,13 +53,13 @@ class UpdateSpices():
self.updater.upgrade(update)

def update_spice_of_type(self, spice_type):
if spice_type == None:
if spice_type is None:
return

self.updater.refresh_cache_for_type(spice_type)
updates = self.updater.get_updates_of_type(spice_type)

if (len(updates) == 0):
if len(updates) == 0:
print("There are no %s updates" % spice_type)
return

@@ -69,7 +69,7 @@ class UpdateSpices():
self.updater.upgrade(update)

def list_simple(self, spice_type):
if spice_type == None:
if spice_type is None:
return

self.updater.refresh_cache_for_type(spice_type)
@@ -79,7 +79,7 @@ class UpdateSpices():
print(update.uuid)

def list_json(self, spice_type):
if spice_type == None:
if spice_type is None:
return

self.updater.refresh_cache_for_type(spice_type)
4 changes: 2 additions & 2 deletions files/usr/bin/cinnamon-subprocess-wrapper
Original file line number Diff line number Diff line change
@@ -27,11 +27,11 @@ if __name__ == "__main__":
"/org/Cinnamon",
"org.Cinnamon",
"PushSubprocessResult",
GLib.Variant("(isb)", (process_id, result.decode(), success)),
GLib.Variant("(isb)", (process_id, result.decode(errors="replace"), success)),
None,
Gio.DBusCallFlags.NONE,
2000,
None)
except GLib.Error as e:
print("Could not play test sound: %s" % e.message)
print("Could not send response (ID: %d): %s" % (process_id, e.message))

4 changes: 2 additions & 2 deletions files/usr/bin/cinnamon-xlet-makepot
Original file line number Diff line number Diff line change
@@ -187,7 +187,7 @@ def do_install(uuid, dir):

def do_remove(uuid):
files_removed = 0
if (os.path.exists(LOCALE_DIR)):
if os.path.exists(LOCALE_DIR):
locale_names = os.listdir(LOCALE_DIR)
for locale_name in locale_names:
lang_locale_dir = os.path.join(LOCALE_DIR, locale_name)
@@ -285,7 +285,7 @@ def scan_xlet():
]
command_args += js_files
subprocess.run(command_args)
pot_exists = True
pot_exists = os.path.exists(pot_path)

if args.python:
print("Scanning for python files...")
2 changes: 1 addition & 1 deletion files/usr/bin/cinnamon2d
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
#!/bin/bash
CLUTTER_PAINT=disable-culling LIBGL_ALWAYS_SOFTWARE=1 CINNAMON_SOFTWARE_RENDERING=1 CINNAMON_2D=1 CINNAMON_SLOWDOWN_FACTOR=0.0001 MUFFIN_NO_SHADOWS=1 CLUTTER_DEFAULT_FPS=15 cinnamon $@
CLUTTER_PAINT=disable-culling LIBGL_ALWAYS_SOFTWARE=1 CINNAMON_2D=1 CINNAMON_SLOWDOWN_FACTOR=0.0001 MUFFIN_NO_SHADOWS=1 CLUTTER_DEFAULT_FPS=15 cinnamon $@
77 changes: 42 additions & 35 deletions files/usr/bin/xlet-about-dialog
Original file line number Diff line number Diff line change
@@ -1,25 +1,23 @@
#!/usr/bin/python3

import argparse
import sys
import os
import json
import gettext
import datetime
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, GdkPixbuf

usage = """
usage : xlet-about-dialog applets/desklets/extensions uuid
"""
from gi.repository import Gtk, GdkPixbuf, GLib

gettext.install('cinnamon', '/usr/share/locale')

home = os.path.expanduser('~')


class AboutDialog(Gtk.AboutDialog):
def __init__(self, metadata, stype):
super(AboutDialog, self).__init__()
super().__init__()
self.metadata = metadata
self.stype = stype

@@ -33,33 +31,36 @@ class AboutDialog(Gtk.AboutDialog):
else:
self.props.version = _("Version %s") % version
elif 'last-edited' in metadata:
timestamp = datetime.datetime.fromtimestamp(self.metadata['last-edited']).isoformat(' ')
timestamp = datetime.datetime.fromtimestamp(int(self.metadata['last-edited'])).isoformat(' ')
self.props.version = _("Updated on %s") % timestamp

comments = self._(self.metadata['description'])
comments = self._(self.metadata.get('description', ''))

if 'comments' in self.metadata:
comments += '\n\n' + self._(self.metadata['comments'])
self.props.comments = comments

s_id = self.get_spices_id()
if s_id:
self.props.website = 'https://cinnamon-spices.linuxmint.com/%s/view/%s' % (self.stype, s_id)
self.props.website = f'https://cinnamon-spices.linuxmint.com/{self.stype}/view/{s_id}'
self.props.website_label = _("More info")

if 'contributors' in self.metadata:
self.props.authors = self.metadata['contributors'].split(',')

self.props.program_name = '%s (%s)' % (self._(self.metadata['name']), self.metadata['uuid'])
xlet_name = self._(self.metadata.get('name'))
self.props.program_name = f"{xlet_name} ({self.metadata.get('uuid')})"

self.connect('response', self.close)
self.set_title(_("About %s") % self.props.program_name)
self.show()

def close(self, *args):
Gtk.main_quit()

def set_icon(self):
# Use the generic type icon
self.set_logo_icon_name('cs-%s' % self.metadata['type'])
self.set_logo_icon_name(f"cs-{self.metadata['type']}")
# Override with metadata if set..
if 'icon' in self.metadata:
self.set_logo_icon_name(self.metadata['icon'])
@@ -68,11 +69,11 @@ class AboutDialog(Gtk.AboutDialog):
if os.path.exists(icon_path):
icon = GdkPixbuf.Pixbuf.new_from_file_at_size(icon_path, 48, 48)
self.set_logo(icon)
self.set_default_icon_name('cs-%s' % self.metadata['type'])
self.set_default_icon_name(f"cs-{self.metadata['type']}")

def _(self, msg):
gettext.bindtextdomain(self.metadata['uuid'], home + '/.local/share/locale')
translation = gettext.dgettext(self.metadata['uuid'], msg)
gettext.bindtextdomain(self.metadata.get('uuid'), home + '/.local/share/locale')
translation = gettext.dgettext(self.metadata.get('uuid'), msg)
# try with cinnamon domain if the xlet domain doesn't work
if translation == msg:
return _(msg)
@@ -81,31 +82,34 @@ class AboutDialog(Gtk.AboutDialog):

def get_spices_id(self):
try:
cache_path = os.path.join(home, '.cinnamon', 'spices.cache', self.stype[0:-1], 'index.json')
cache_path = os.path.join(GLib.get_user_cache_dir(), 'cinnamon', 'spices', self.stype[0:-1], 'index.json')
if os.path.exists(cache_path):
with open(cache_path, 'r') as cache_file:
with open(cache_path, 'r', encoding='utf-8') as cache_file:
index_cache = json.load(cache_file)
if self.metadata['uuid'] in index_cache:
return index_cache[self.metadata['uuid']]['spices-id']
return None
except Exception as e:
print('Failed to load/parse index.json');
print('Failed to load/parse index.json')
print(e)
return None


if __name__ == "__main__":
if len(sys.argv) < 3:
print(usage)
quit()
parser = argparse.ArgumentParser()
parser.description = 'Arguments for xlet-about-dialog'
parser.add_argument('xlet_type', type=str, help=_('the type of the Spice'),
choices=['applets', 'desklets', 'extensions',
'actions', 'themes'])
parser.add_argument('uuid', type=str, metavar='UUID', nargs=1,
help=_('the UUID of the Spice'))
_args = parser.parse_args()

xlet_type = sys.argv[1]
uuid = sys.argv[2]
xlet_type = _args.xlet_type
uuid = _args.uuid[0]

suffix = 'share/cinnamon/%s/%s' % (xlet_type, uuid)
prefixes = [
os.path.join(home, '.local'),
'/usr'
]
suffix = f'share/nemo/actions/{uuid}' if xlet_type == 'actions' else f'share/cinnamon/{xlet_type}/{uuid}'
prefixes = [os.path.join(home, '.local'), '/usr']

path = None
for prefix in prefixes:
@@ -114,15 +118,18 @@ if __name__ == "__main__":
break

if path is None:
print('Unable to locate %s %s' % (xlet_type, uuid))
quit()
print(_('Unable to locate %s %s') % (xlet_type, uuid))
sys.exit(1)

with open(os.path.join(path, 'metadata.json')) as meta_file:
metadata = json.load(meta_file)
try:
with open(os.path.join(path, 'metadata.json'), encoding='utf-8') as meta:
_metadata = json.load(meta)

metadata['path'] = path
metadata['type'] = xlet_type
_metadata['path'] = path
_metadata['type'] = xlet_type

AboutDialog(metadata, xlet_type)
AboutDialog(_metadata, xlet_type)

Gtk.main()
Gtk.main()
except FileNotFoundError:
pass
30 changes: 22 additions & 8 deletions files/usr/share/applications/cinnamon-onscreen-keyboard.desktop
Original file line number Diff line number Diff line change
@@ -10,7 +10,9 @@ Name=Virtual keyboard
Name[af]=Virtuele sleutelbord
Name[am]=የሚታይ የ ፊደል ገበታ
Name[ar]=لوحة المفاتيح الافتراضية
Name[ay]=Pantallan tiklado
Name[az]=Sanal düyməlik
Name[be]=Віртуальная клавіятура
Name[bg]=Виртуална клавиатура
Name[bn]=ভার্চুয়াল কিবোর্ড
Name[ca]=Teclat virtual
@@ -25,35 +27,41 @@ Name[es]=Teclado virtual
Name[es_AR]=Teclado virtual
Name[et]=Virtuaalne klaviatuur
Name[eu]=Teklatu birtuala
Name[fa]=صفحه‌کلید مجازی
Name[fi]=Virtuaalinäppäimistö
Name[fr]=Clavier virtuel
Name[fr_CA]=Clavier virtuel
Name[he]=מקלדת מדומה
Name[hi]=आभासी कुंजीपटल
Name[hr]=Virtualna tipkovnica
Name[hsb]=Wirtuelna tastatura
Name[hu]=Virtuális billentyűzet
Name[ia]=Claviero virtual
Name[id]=Papan tik virtual
Name[id]=Papan ketik maya
Name[ie]=Tastatura virtual
Name[is]=Sýndarlyklaborð
Name[it]=Tastiera virtuale
Name[ja]=仮想キーボード
Name[kab]=Anasiw aḥlis
Name[ko]=가상 키보드
Name[la]=Claviatura virtualis
Name[lt]=Virtuali klaviatūra
Name[nap]=Tastiera faveza
Name[nb]=Virtuelt tastatur
Name[nl]=Virtueel toetsenbord
Name[oc]=Clavièr visual
Name[pl]=Klawiatura wirtualna
Name[pt]=Teclado virtual
Name[pt_BR]=Teclado virtual
Name[ro]=Tastatură virtuală
Name[ru]=Виртуальная клавиатура
Name[rue]=Віртуална клавешниця
Name[sc]=Tastiera virtuale
Name[sk]=Virtuálna klávesnica
Name[sl]=Virtualna tipkovnica
Name[sq]=Tastiera virtuale
Name[sr]=Виртуелна тастатура
Name[sr@ijekavian]=Виртуелна тастатура
Name[sr@ijekavianlatin]=Виртуелна тастатура
Name[sr@latin]=Virtuelna tastatura
Name[sv]=Virtuellt tangentbord
@@ -62,7 +70,7 @@ Name[th]=แป้นพิมพ์เสมือนจริง
Name[tr]=Sanal klavye
Name[uk]=Віртуальна клавіатура
Name[ur]=ورچول کیی بورڈ
Name[uz]=Виртуал клавиатура
Name[uz]=Virtual klaviatura
Name[vi]=Bàn phím ảo
Name[zh_CN]=虚拟键盘
Name[zh_HK]=虛擬鍵盤
@@ -72,6 +80,7 @@ Comment[af]=Skakel die sleutelbord op die skerm aan of af
Comment[am]=የመመልከቻውን ፊደል ገበታ ማብሪያ ወይንም ማጥፊያ
Comment[ar]=تشغيل أو إيقاف تشغيل لوحة المفاتيح على الشاشة
Comment[ast]=Prender o apagar la pantalla del tecláu
Comment[ay]=Pantallan tiklado uk naktayaña jan ukax jiwt'ayaña
Comment[az]=Göstərici düyməliyini işlət ya da söndür
Comment[be]=Уключыць/выключыць экранную клавіятуру
Comment[bg]=Включване или изключване на екранната клавиатура
@@ -89,24 +98,27 @@ Comment[es]=Activar o desactivar el teclado en pantalla
Comment[es_AR]=Activar o desactivar el teclado en pantalla
Comment[et]=Ekraaniklaviatuuri sisse või välja lülitamine
Comment[eu]=Aktibatu edo desaktibatu pantailako teklatua
Comment[fa]=روشن یا خاموش کردن صفحه‌کلیدِ روی-صفحه
Comment[fi]=Näyttönäppäimistö päälle/pois
Comment[fr]=Activer ou désactiver le clavier visuel
Comment[fr_CA]=Activer ou désactiver le clavier visuel
Comment[ga]=Cas air nó as méarchlár scáileáin
Comment[gd]=Cuir am meur-chlàr air an sgrìn air no dheth
Comment[gl]=Activar ou desactivar o teclado en pantalla
Comment[he]=הפעלה/כיבוי של המקלדת המדומה
Comment[he]=הפעלת או כיבוי מקלדת־צג
Comment[hi]=ऑन स्क्रीन कुंजीपटल चालू या बंद करें
Comment[hr]=Uključi/Isključi zaslonsku tipkovnicu
Comment[hsb]=Tastaturu na wobrazowce za/wušaltować
Comment[hu]=Képernyő-billentyűzet be- vagy kikapcsolása
Comment[ia]=Activar o stoppar le claviero sur-le-schermo
Comment[id]=Menyalakan atau mematikan papan tik di layar
Comment[id]=Mengaktifkan atau menonaktifkan keyboard di layar
Comment[is]=Skjályklaborð af eða á
Comment[it]=Attiva o disattiva la tastiera sullo schermo
Comment[ja]=スクリーンキーボードのオン/オフ切り替え
Comment[it]=Attiva/disattiva la tastiera sullo schermo
Comment[ja]=スクリーンキーボードをオン/オフ
Comment[ka]=ეკრანზე ნაჩვენებ კლავიატურის ჩართვა/გამორთვა
Comment[kab]=Rmed neɣ ssens anasiw amwalan
Comment[kk]=Экрандағы пернетақтаны қосу/сөндіру
Comment[ko]=화상 키보드 켜고 끄기
Comment[ko]=가상 키보드 켜고 끄기
Comment[lt]=Įjungti arba išjungti ekraninę klaviatūrą
Comment[lv]=Ieslēgt vai izslēgt ekrāna tastatūru
Comment[ms]=Hidup atau matikan papan kekunci skrin
@@ -121,11 +133,13 @@ Comment[pt]=Ativar ou desativar teclado no ecrã
Comment[pt_BR]=Ativar ou desativar o teclado virtual
Comment[ro]=Activează sau dezactivează tastatura pe ecran
Comment[ru]=Включить или выключить экранную клавиатуру
Comment[rue]=Уключити наекранну клавешницю вадь выключити
Comment[sc]=Ativa o disativa sa tastiera in s'ischermu
Comment[sk]=Zapnúť alebo vypnúť klávesnicu na obrazovke
Comment[sl]=Omogoči ali onemogoči zaslonsko tipkovnico
Comment[sq]=Aktivizo ose çaktivizo tastierën në ekran
Comment[sr]=Укључи/искључи тастатуру на екрану
Comment[sr@ijekavian]=Укључи/искључи тастатуру на екрану
Comment[sr@ijekavianlatin]=Укључи/искључи тастатуру на екрану
Comment[sr@latin]=Uključi ili isključi tastaturu na ekranu
Comment[sv]=Aktivera eller inaktivera skärmtangentbord
@@ -135,7 +149,7 @@ Comment[th]=เปิดหรือปิดแป้นพิมพ์บน
Comment[tr]=Ekran klavyesini aç ya da kapat
Comment[uk]=Увімкнути або вимкнути екранну клавіатуру
Comment[ur]=سکرین کیبورڈ چالو یا بند کریں
Comment[uz]=Экран клавиатурасини ёқиш ёки ўчириш
Comment[uz]=Ekran klaviaturasini yoqish yoki o‘chirish
Comment[vi]=Bật tắt bàn phím màn hình
Comment[zh_CN]=开关屏幕键盘
Comment[zh_HK]=開啟或關閉熒幕鍵盤
138 changes: 138 additions & 0 deletions files/usr/share/applications/cinnamon-settings-actions.desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
[Desktop Entry]
Icon=cs-actions
Exec=cinnamon-settings actions
Type=Application
OnlyShowIn=X-Cinnamon;
Categories=Settings;
Name=Actions
Name[am]=ተግባሮች
Name[ar]=الإجراءات
Name[ay]=Lurawinaka
Name[az]=Eyləmlər
Name[be]=Дзеянні
Name[bg]=Действия
Name[ca]=Accions
Name[ca@valencia]=Accions
Name[cs]=Akce
Name[cy]=Gweithredoedd
Name[da]=Handlinger
Name[de]=Aktionen
Name[el]=Ενέργειες
Name[eo]=Agoj
Name[es]=Acciones
Name[es_AR]=Acciones
Name[et]=Tegevused
Name[eu]=Ekintzak
Name[fa]=اقدامات
Name[fi]=Toiminnot
Name[gd]=Gnìomhan
Name[gl]=Accións
Name[he]=פעולות
Name[hi]=कार्य
Name[hr]=Radnje
Name[hu]=Műveletek
Name[ia]=Actiones
Name[id]=Tindakan
Name[ie]=Actiones
Name[is]=Aðgerðir
Name[it]=Azioni
Name[ja]=アクション
Name[ka]=ქმედებები
Name[kab]=Tigawin
Name[ko]=동작
Name[ku]=Tevger
Name[la]=Actiones
Name[lt]=Veiksmai
Name[nb]=Handlinger
Name[nds]=Aktionen
Name[nl]=Acties
Name[oc]=Accions
Name[pl]=Działania
Name[pt]=Ações
Name[pt_BR]=Ações
Name[ro]=Acțiuni
Name[ru]=Действия
Name[rue]=Дїї
Name[sc]=Atziones
Name[sk]=Akcie
Name[sl]=Dejanja
Name[sq]=Veprimet
Name[sr]=Радње
Name[sr@ijekavian]=Радње
Name[sr@ijekavianlatin]=Радње
Name[sr@latin]=Radnje
Name[sv]=Åtgärder
Name[th]=การทำงาน
Name[tr]=Aksiyonlar
Name[uk]=Дії
Name[ur]=عمل
Name[uz]=Ta'sirlar
Name[vi]=Hành động
Name[zh_CN]=动作
Name[zh_HK]=動作
Name[zh_TW]=動作
Comment=Manage your actions
Comment[be]=Кіраваць вашымі дзеяннямі
Comment[ca]=Gestioneu les accions
Comment[ca@valencia]=Gestioneu les accions
Comment[cs]=Spravovat své akce
Comment[cy]=Rheoli eich gweithredoedd
Comment[da]=Håndtér dine handlinger
Comment[de]=Ihre Aktionen verwalten
Comment[el]=Διαχείριση των ενεργειών σας
Comment[eo]=Administri viajn agojn
Comment[es]=Gestione sus acciones
Comment[es_AR]=Gestione sus acciones
Comment[et]=Hallake oma tegevusi
Comment[fi]=Hallinnoi toimintoja
Comment[fr]=Gérez vos actions
Comment[fr_CA]=Gérer vos actions
Comment[hu]=Műveletek kezelése
Comment[ia]=Gerer tu actiones
Comment[is]=Sýslaðu með aðgerðirnar þínar
Comment[it]=Gestisci le tue azioni
Comment[ja]=アクションを管理します
Comment[ko]=동작 관리
Comment[nl]=Uw acties beheren
Comment[pl]=Zarządzaj działaniami
Comment[pt]=Gerir as suas ações
Comment[pt_BR]=Gerir as suas ações
Comment[ro]=Gestionați-vă acțiunile
Comment[ru]=Управляйте своими действиями
Comment[sk]=Spravujte vaše akcie
Comment[sl]=Upravljajte svoja dejanja
Comment[sv]=Hantera dina åtgärder
Comment[tr]=Aksiyonları yönetin
Comment[uk]=Керуйте своїми діями
Comment[vi]=Quản lý hành động của bạn
Keywords=action;
Keywords[be]=дзеянне;
Keywords[ca]=acció;
Keywords[ca@valencia]=acció;
Keywords[cs]=akce;
Keywords[cy]=gweithred;
Keywords[da]=handling;
Keywords[de]=Aktion;
Keywords[el]=ενέργεια;
Keywords[eo]=ago;
Keywords[es]=acción;
Keywords[es_AR]=acción;
Keywords[et]=toiming;
Keywords[fi]=toiminto;
Keywords[hu]=művelet;
Keywords[is]=aðgerð;
Keywords[it]=azione;
Keywords[ja]=action;アクション;
Keywords[ko]=동작;
Keywords[nl]=actie;
Keywords[pl]=działanie;
Keywords[pt]=ação;
Keywords[pt_BR]=ação;
Keywords[ro]=acţiune;
Keywords[ru]=действие;
Keywords[sk]=akcia;
Keywords[sl]=dejanje;
Keywords[sv]=åtgärd;
Keywords[tr]=aksiyon;
Keywords[uk]=дія;
Keywords[vi]=hành động;
48 changes: 29 additions & 19 deletions files/usr/share/applications/cinnamon-settings-applets.desktop
Original file line number Diff line number Diff line change
@@ -7,7 +7,8 @@ Categories=Settings;
Name=Applets
Name[af]=Toepassingtjies
Name[am]=ፕሮግራሞች
Name[ar]=التطبيقات المصغرة
Name[ar]=البريمجات
Name[ay]=Jisk'a-aplikasiyunanaka
Name[az]=Uyğulamalar
Name[be]=Аплеты
Name[bg]=Аплети
@@ -25,16 +26,16 @@ Name[es]=Miniaplicaciones
Name[es_AR]=Miniaplicaciones
Name[et]=Rakendid
Name[eu]=Applet-ak
Name[fa]=ابزارک‌ها
Name[fi]=Paneelisovelmat
Name[fa]=برنامک‌ها
Name[fi]=Sovelmat
Name[ga]=Feidhmchláiríní
Name[gd]=Aplaidean
Name[gl]=Miniaplicativos
Name[he]=יישומונים
Name[he]=יישומוני־לוח
Name[hi]=एप्लेट्स
Name[hr]=Apleti
Name[hu]=Kisalkalmazások
Name[id]=Aplet
Name[id]=Applet
Name[ie]=Applettes
Name[is]=Smáforrit
Name[it]=Applet
@@ -45,7 +46,7 @@ Name[kk]=Апплеттер
Name[km]=អាប់​ភ្លេត
Name[ko]=애플릿
Name[ku]=Sepanok
Name[la]=Programmiculi
Name[la]=Miniapplicationes
Name[lo]=ແອັບເພັດ
Name[lt]=Įskiepiai
Name[lv]=Sīklietotnes
@@ -61,12 +62,13 @@ Name[pa]=ਐਪਲਿਟ
Name[pl]=Aplety
Name[ro]=Applet-uri
Name[ru]=Апплеты
Name[rue]=Апплеты
Name[rue]=Аплікації
Name[sk]=Aplety
Name[sl]=Apleti
Name[so]=Kaabayaasha
Name[sq]=Programthet
Name[sr]=Програмчићи
Name[sr@ijekavian]=Програмчићи
Name[sr@ijekavianlatin]=Програмчићи
Name[sr@latin]=Apleti
Name[sv]=Panelprogram
@@ -76,26 +78,28 @@ Name[tg]=Барномаҳо
Name[th]=แอปเพล็ต
Name[tr]=Uygulamacıklar
Name[ts]=Tiphurogireme-ntsongo
Name[tt]=Апплетлар
Name[uk]=Аплети
Name[ur]=ایپلیٹ
Name[uz]=Апплетлар
Name[uz]=Appletlar
Name[vi]=Tiểu trình
Name[zh_CN]=小程序
Name[zh_HK]=應用小程式
Name[zh_TW]=面板小程式
Comment=Manage Cinnamon applets
Comment[af]=Bestuur Cinnamon-paneelprogramme
Comment[am]=የ ሲናሞን አፕሌቶች አስተዳዳሪ
Comment[ar]=إدارة تطبيقات Cinnamon المصغرة
Comment[ar]=إدارة بريمجات سينامُن
Comment[ast]=Alministra los applets de Cinnamon
Comment[ay]=Cinnamon ukat jisk'a-aplikasiyunanak irpaña
Comment[az]="Cinnamon" uyğulamalarını Yönəlt
Comment[be]=Кіраванне аплетамi Cinnamon
Comment[bg]=Управление на аплетите за Cinnamon
Comment[bs]=Upravljaj Cinnamon apletima
Comment[ca]=Gestioneu les miniaplicacions de Cinnamon
Comment[ca@valencia]=Gestioneu les miniaplicacions de Cinnamon
Comment[cs]=Správa Cinnamon appletů
Comment[cy]=Rheolwch raglenigau Cinnamon
Comment[cy]=Rheoli apledi Cinnamon
Comment[da]=Administrér Cinnamon-panelprogrammer
Comment[de]=Cinnamon-Applets verwalten
Comment[el]=Διαχείριση μικροεφαρμογών Cinnamon
@@ -104,24 +108,25 @@ Comment[es]=Gestionar las miniaplicaciones de Cinnamon
Comment[es_AR]=Gestionar las miniaplicaciones de Cinnamon
Comment[et]=Cinnamoni rakendite haldamine
Comment[eu]=Kudeatu Cinnamon applet-ak
Comment[fa]=مدیریت اپلت‌های سینمون
Comment[fa]=مدیریت برنامک‌های Cinnamon
Comment[fi]=Hallitse Cinnamon-sovelmia
Comment[fr]=Gérer les applets de Cinnamon
Comment[fr_CA]=Gérer les applets Cinnamon
Comment[fy]=Cinnamon applets beheare
Comment[gd]=Stiùirich aplaidean Cinnamon
Comment[gl]=Administración dos miniaplicativos de Cinnamon
Comment[he]=נהל את יישומוני Cinnamon
Comment[he]=ניהול יישומוני־לוח סינמון
Comment[hi]=सिनेमन एप्लेट प्रबंधन
Comment[hr]=Upravljajte Cinnamon apletima
Comment[hu]=Cinnamon kisalkalmazások kezelése
Comment[ia]=Administrar le applets de Cinnamon
Comment[id]=Kelola aplet Cinnamon
Comment[is]=Sýsla með Cinnamon forritlinga
Comment[it]=Gestione applet di Cinnamon
Comment[ja]=Cinnamon アプレットの管理
Comment[ja]=Cinnamon のアプレットを管理
Comment[kab]=Sefrek tiplatin n Cinnamon
Comment[ko]=시나몬 애플릿 관리
Comment[la]=Miniapplicationes Cinnamonis Cura
Comment[lo]=ຈັດການແອັບເພັດ Cinnamon
Comment[lt]=Tvarkyti Cinnamon įskiepius
Comment[lv]=Pārvaldīt Cinnamon sīkrīkus
@@ -136,11 +141,13 @@ Comment[pt]=Gerir applets Cinnamon
Comment[pt_BR]=Gerenciar applets do Cinnamon
Comment[ro]=Gestionează appleturile Cinnamon
Comment[ru]=Управление апплетами Cinnamon
Comment[rue]=Справованя аплікаціями Cinnamon
Comment[sc]=Manìgia applets de Cinnamon
Comment[sk]=Spravuje aplety prostredia Cinnamon
Comment[sl]=Upravljajte z apleti Cinnamona
Comment[sq]=Menaxho programthet e Cinnamon
Comment[sr]=Управљање програмчићима Цимета
Comment[sr@ijekavian]=Управљање програмчићима Цимета
Comment[sr@ijekavianlatin]=Управљање програмчићима Цимета
Comment[sr@latin]=Upravljanje apletima Cinnamona
Comment[sv]=Hantera Cinnamons panelprogram
@@ -149,22 +156,23 @@ Comment[th]=จัดการแอปเพล็ตต่าง ๆ ของ
Comment[tr]=Cinnamon uygulamacıklarını yönet
Comment[uk]=Керування аплетами Cinnamon
Comment[ur]=سنامون کے ایپلیٹس کا انتظام
Comment[uz]=Синнамон апплетларини бошқариш
Comment[uz]=Sinnamon appletlarini boshqarish
Comment[vi]=Quản lý tiểu dụng Cinnamon
Comment[zh_CN]=管理Cinnamon小程序
Comment[zh_HK]=管理 Cinnamon 應用小程式
Comment[zh_TW]=管理 Cinnamon 面板小程式
Keywords=applet;
Keywords[af]=paneelprogram;
Keywords[am]=አፕሌት;
Keywords[ar]=التطبيق المصغر;
Keywords[ar]=البريمج;
Keywords[ay]=jisk'a-aplikasiyuna;
Keywords[az]=uyğulama;
Keywords[be]=аплет;
Keywords[bg]=аплет;
Keywords[bs]=aplet;
Keywords[ca]=miniaplicació;
Keywords[ca@valencia]=miniaplicació;
Keywords[cy]=rhaglennig;
Keywords[cy]=apled;
Keywords[da]=panelprogram;
Keywords[de]=Applet;
Keywords[el]=μικροεφαρμογή;
@@ -177,15 +185,16 @@ Keywords[fi]=sovelma;
Keywords[ga]=feidhmchláirín;
Keywords[gd]=aplaid;
Keywords[gl]=miniaplicativo;
Keywords[he]=יישומון;
Keywords[he]=יישומון־לוח;
Keywords[hi]=एप्लेट;
Keywords[hr]=aplet;
Keywords[hu]=kisalkalmazás;
Keywords[id]=aplet;
Keywords[is]=smáforrit;
Keywords[ja]=アプレット;
Keywords[ja]=applet;アプレット;
Keywords[kab]=tapleḍt;
Keywords[ko]=애플릿;
Keywords[la]=mimniapplicatio;
Keywords[lo]=ແອັບເພັດ;
Keywords[lt]=įskiepis;
Keywords[lv]=sīkrīks;
@@ -196,10 +205,12 @@ Keywords[nl]=werkbalkhulpje;
Keywords[pa]=ਐਪਲਿਟ;
Keywords[pl]=aplet;
Keywords[ru]=апплет;
Keywords[rue]=аплікація;
Keywords[sk]=aplet;
Keywords[sl]=aplet;
Keywords[sq]=programth;
Keywords[sr]=програмче;
Keywords[sr@ijekavian]=програмче;
Keywords[sr@ijekavianlatin]=програмче;
Keywords[sr@latin]=aplet;
Keywords[sv]=panelprogram;
@@ -209,7 +220,6 @@ Keywords[th]=แอปเพล็ต;
Keywords[tr]=uygulamacık;
Keywords[uk]=аплет;
Keywords[ur]=ایپلیٹ;
Keywords[uz]=апплет;
Keywords[vi]=tiểu trình;
Keywords[zh_CN]=小程序;
Keywords[zh_HK]=應用小程式;
57 changes: 39 additions & 18 deletions files/usr/share/applications/cinnamon-settings-backgrounds.desktop
Original file line number Diff line number Diff line change
@@ -9,8 +9,9 @@ Name[af]=Agtergronde
Name[am]=መደቦች
Name[ar]=الخلفيات
Name[ast]=Fondos de pantalla
Name[ay]=Manqhaxanaka
Name[az]=Arxaplanlar
Name[be]=фон
Name[be]=Фонавыя выявы
Name[bg]=Фон
Name[bs]=Pozadine
Name[ca]=Fons de l'escriptori
@@ -43,12 +44,15 @@ Name[ie]=Fundes
Name[is]=Bakgrunnar
Name[it]=Sfondi
Name[ja]=背景
Name[ka]=ფონები
Name[kab]=Idren n wegdil
Name[ko]=배경화면
Name[ku]=Paşxane
Name[la]=Fundi
Name[lo]=ພື້ນຫຼັງ
Name[lt]=Fonai
Name[lv]=Fona attēli
Name[mo]=Фундалурь
Name[ms]=Latar Belakang
Name[nb]=Bakgrunner
Name[nds]=Hintergrundbilder
@@ -60,21 +64,23 @@ Name[pt]=Fundos
Name[pt_BR]=Planos de Fundo
Name[ro]=Fundaluri
Name[ru]=Фоновые рисунки
Name[rue]=Позадины
Name[sc]=Fundales
Name[sk]=Pozadia
Name[sl]=Ozadja
Name[sq]=Sfondet
Name[sr]=Позадине
Name[sr@ijekavian]=Позадине
Name[sr@ijekavianlatin]=Позадине
Name[sr@latin]=Pozadine
Name[sv]=Bakgrundsbilder
Name[ta]=பின்னணிகள்
Name[tg]=Пасзаминаҳо
Name[th]=พื้นหลัง
Name[tr]=Arkaplanlar
Name[uk]=Тлові зображення
Name[uk]=Зображення тла
Name[ur]=پسِ منظر
Name[uz]=Фонлар
Name[uz]=Fonlar
Name[vi]=Hình nền
Name[zh_CN]=背景
Name[zh_HK]=背景
@@ -84,40 +90,42 @@ Comment[af]=Verander u werkskermagtergrond
Comment[am]=የ ዴስክቶፕ መደብ መቀየሪያ
Comment[ar]=تغيير خلفية سطح المكتب الخاص بك
Comment[ast]=Camuda'l fondu del to escritoriu
Comment[ay]=Iskrituryu manqhaxa (fondo) mayjaptayaña
Comment[az]=İş qoyacağı'nın arxaplanını dəyiş
Comment[be]=Змянiце фон працоўнага стала
Comment[be]=Змянiць фон працоўнага стала
Comment[bg]=Промяна на фона на работния плот
Comment[bs]=Promjenite vašu pozadinu na desktopu
Comment[ca]=Canvieu el vostre fons de l'escriptori
Comment[ca@valencia]=Canvieu el vostre fons de l'escriptori
Comment[cs]=Změna pozadí plochy
Comment[cy]=Newidiwch gefndir eich bwrdd gwaith
Comment[cy]=Newid cefndir eich bwrdd gwaith
Comment[da]=Ændr din skrivebordsbaggrund
Comment[de]=Schreibtischhintergrund ändern
Comment[el]=Άλλαξε το φόντο της επιφάνειας εργασίας
Comment[eo]=Ŝanĝu la fonon de via labortablo
Comment[es]=Cambiar el fondo de escritorio
Comment[es_AR]=Cambiar el fondo de escritorio
Comment[es]=Cambiar el fondo del escritorio
Comment[es_AR]=Cambiar el fondo del escritorio
Comment[et]=Töölaua tausta muutmine
Comment[eu]=Aldatu mahaigainaren atzeko planoa
Comment[fa]=پس‌زمینه‌ی دسکتاپ‌تان را تغییر دهید
Comment[fi]=Muuta työpöydän taustakuvaa
Comment[fa]=پس‌زمینه‌ی میزکارتان را تغییر دهید
Comment[fi]=Muuta taustakuvaa
Comment[fr]=Changer le fond d'écran
Comment[fr_CA]=Modifier votre fond d'écran
Comment[fy]=Bureaublêd eftergrûn feroarje
Comment[gd]=Atharraich cùlaibh an desktop agad
Comment[gl]=Cambia o fondo do escritorio
Comment[he]=בחר את הרקע לשולחן העבודה
Comment[he]=החלפת רקע שולחן העבודה
Comment[hi]=डेस्कटॉप बैकग्राउंड बदलें
Comment[hr]=Promijenite pozadinu svoje redne površine
Comment[hu]=Asztal hátterének megváltoztatása
Comment[ia]=Cambia le fundo de tu scriptorio
Comment[id]=Ubah latar belakang desktop
Comment[is]=Breyta bakgrunni skjáborðs
Comment[it]=Cambia sfondo del desktop
Comment[ja]=デスクトップ背景の変更
Comment[ja]=デスクトップの背景を変更します
Comment[kab]=Beddel agilal n tnarit-ik
Comment[ko]=배경화면 변경
Comment[la]=Fundum scriptorii tui muta
Comment[lo]=ປ່ຽນພື້ນຫຼັງໜ້າຈໍຂອງເຈົ້າ
Comment[lt]=Pakeisti darbalaukio foną
Comment[lv]=Mainīt darbvirsmas fona attēlu
@@ -132,39 +140,46 @@ Comment[pt]=Mudar fundo do ambiente de trabalho
Comment[pt_BR]=Alterar plano de fundo de sua área de trabalho
Comment[ro]=Schimbă imaginea de fundal
Comment[ru]=Изменить обои рабочего стола
Comment[rue]=Перемінити позадину роботного стола
Comment[sc]=Càmbia su fundale de s'iscrivania
Comment[sk]=Zmeniť pozadie plochy
Comment[sl]=Spremenite ozadje namizja
Comment[sq]=Ndryshoni sfondin e desktopit tuaj
Comment[sr]=Промените позадину радне површи
Comment[sr@ijekavian]=Промените позадину радне површи
Comment[sr@ijekavianlatin]=Промените позадину радне површи
Comment[sr@latin]=Promeni pozadinu radne površine
Comment[sv]=Ändra skrivbordsbakgrund
Comment[ta]=பணிமேடையின் பின்னணியை மாற்று
Comment[tg]=Тағйир додани пасзаминаи мизи корӣ
Comment[th]=เปลี่ยนพื้นหลังบนพื้นโต๊ะของคุณ
Comment[tr]=Masaüstü arkaplan resmini değiştir
Comment[uk]=Змінити тло стільниці
Comment[uk]=Змінити тло робочого столу
Comment[ur]=ڈیسک ٹاپ پس منظر تبدیل کریں
Comment[uz]=Иш столи фонини ўзгартиринг
Comment[uz]=Ish stoli fonini o‘zgartiring
Comment[vi]=Đổi nền màn hình làm việc
Comment[zh_CN]=修改桌面背景
Comment[zh_HK]=變更你桌面的背景
Comment[zh_TW]=變更您的桌面背景
Keywords=background;picture;slideshow;
Keywords[am]=መደብ: ስእል: ተንሸራታች ማሳያ;
Keywords[ar]=الخلفية;صورة;عرض شرائح;
Keywords[ay]=manqhaxa;jamuqa;uñacht'ayañataki (diapositivas);
Keywords[be]=фон;выява;слайды;
Keywords[bg]=фон;картина;слайдшоу;
Keywords[ca]=fons;imatge;passi de diapositives;
Keywords[ca@valencia]=fons;imatge;passi de diapositives;
Keywords[ca@valencia]=fons;imatge;pas de diapositives;
Keywords[cs]=pozadí;obrázek;prezentace;
Keywords[cy]=cefndir;llun;sioe sleidiau;
Keywords[da]=baggrund;billede;slideshow;
Keywords[de]=Hintergrundbild;Diashow;
Keywords[el]=Φόντο;εικόνα;παρουσίαση;
Keywords[eo]=fono;bildo;bildoprezento;
Keywords[es]=fondo;imagen;pase de diapositivas;
Keywords[es_AR]=fondo;imagen;pase de diapositivas;
Keywords[es]=fondo;imagen;diapositivas;
Keywords[es_AR]=fondo;imagen;diapositivas;
Keywords[et]=taust;tapeet;pilt;slaidiseanss;slaidiesitlus;
Keywords[eu]=atzeko planoa;irudia;diaporama;
Keywords[fa]=پس‌زمینه، تصویر، نمایش‌اسلاید;
Keywords[fi]=tausta;kuva;diaesitys;
Keywords[fr]=arrière-plan;image;diaporama;
Keywords[fr_CA]=arrière-plan;image;diaporama;
@@ -176,22 +191,28 @@ Keywords[ia]=fundo;photo;presentation de photos;
Keywords[id]=latar belakang;gambar;slideshow;
Keywords[is]=bakgrunnur;mynd;skyggnusýning;
Keywords[it]=sfondo;immagine;presentazione;
Keywords[ja]=background;picture;slideshow;背景;ピクチャ;写真;スライドショー;
Keywords[ja]=background;picture;slideshow;背景;ピクチャ;画像;写真;スライドショー;
Keywords[kab]=agilal;tugna;askan n tmaccagin;
Keywords[ko]=배경화면;사진;사이드쇼;
Keywords[ko]=배경화면;사진;슬라이드쇼;
Keywords[lt]=fonas;fono;paveikslas;paveikslėlis;paveiksliukas;skaidrių rodymas;paveikslelis;skaidriu rodymas;
Keywords[nl]=achtergrond;foto;diavoorstelling;
Keywords[oc]=rèireplan;fons;imatge;diapo;
Keywords[pl]=tło;obraz;pokaz slajdów;
Keywords[pt]=fundo;imagem;diapositivo;
Keywords[pt_BR]=plano de fundo;imagem;apresentação de slides;
Keywords[ro]=fundal;imagine;prezentare de diapozitive;
Keywords[ru]=фон;картинка;слайд-шоу;
Keywords[rue]=позадина;образчик;слайдшоу;
Keywords[sk]=pozadie;obrázok;prezentácia;
Keywords[sl]=ozadje;slika;predstavitev;
Keywords[sr]=позадина;лика;покретни приказ;
Keywords[sr@ijekavian]=позадина;лика;покретни приказ;
Keywords[sr@ijekavianlatin]=позадина;лика;покретни приказ;
Keywords[sr@latin]=pozadina;slika;prezentacija;
Keywords[sv]=bakgrund;bilder;bildspel;
Keywords[tr]=arkaplan;resim;slayt;
Keywords[uk]=тло;картинка;показ слайдів;
Keywords[uz]=fon;rasm;slayd-shou;
Keywords[vi]=ảnh nền;hình ảnh;trình chiếu;
Keywords[zh_CN]=背景,图片,幻灯片;
Keywords[zh_HK]=背景,圖片,幻燈片;
42 changes: 28 additions & 14 deletions files/usr/share/applications/cinnamon-settings-calendar.desktop
Original file line number Diff line number Diff line change
@@ -9,6 +9,7 @@ Name[af]=Datum en Tyd
Name[am]=ቀን & ሰአት
Name[ar]=التاريخ والوقت
Name[ast]=Data y hora
Name[ay]=Uru jakhumpi urasampi
Name[az]=Gün ilə Vaxt
Name[be]=Дата і час
Name[bg]=Дата и час
@@ -40,14 +41,17 @@ Name[ia]=Data & tempore
Name[id]=Tanggal & Waktu
Name[ie]=Date e hora
Name[is]=Dagsetning og tími
Name[it]=Data & Ora
Name[it]=Data e ora
Name[ja]=日付と時刻
Name[ka]=თარიღი & დრო
Name[kab]=Azemz & Akud
Name[ko]=날짜 & 시간
Name[ku]=Roj & Dem
Name[la]=Dies Horaque
Name[lo]=ວັນແລະເວລາ
Name[lt]=Data ir laikas
Name[lv]=Datums un laiks
Name[mo]=Датэ ши орэ
Name[ms]=Tarikh & Masa
Name[nb]=Dato og klokkeslett
Name[nds]=Datum & Zeit
@@ -59,21 +63,23 @@ Name[pt]=Data e hora
Name[pt_BR]=Data e Hora
Name[ro]=Dată și oră
Name[ru]=Дата и время
Name[rue]=Дата и час
Name[sc]=Data e oràriu
Name[sk]=Dátum a čas
Name[sl]=Datum in čas
Name[sq]=Data dhe Ora
Name[sr]=Датум и време
Name[sr@ijekavian]=Датум и време
Name[sr@ijekavianlatin]=Датум и време
Name[sr@latin]=Datum i vreme
Name[sv]=Datum och tid
Name[ta]=தேதியும் நேரமும்
Name[tg]=Сана ва вақт:
Name[th]=วันที่และเวลา
Name[tr]=Tarih & Zaman
Name[uk]=Дата й час
Name[uk]=Дата та час
Name[ur]=وقت اور تاريخ
Name[uz]=Сана & Вақт
Name[uz]=Sana & Vaqt
Name[vi]=Ngày giờ
Name[zgh]=ⴰⵙⴰⴽⵓⴷ ⴷ ⵡⴰⴽⵓⴷ
Name[zh_CN]=日期和时间
@@ -84,14 +90,15 @@ Comment[af]=Bestuur datum- en tydinstellings
Comment[am]=የ ቀን እና ሰአት ማሰናጃ አስተዳዳሪ
Comment[ar]=إدارة إعدادات التاريخ والوقت
Comment[ast]=Alministra los axustes de data y tiempu
Comment[ay]=Uru jakhumpi urampi (hora) mayjachaña
Comment[az]=Gün, vaxt quruluşlarını yönəlt
Comment[be]=Кіраванне наладамi даты і часу
Comment[bg]=Управление на часа и датата
Comment[bs]=Upravljajte postavkama datuma i vremena
Comment[ca]=Gestioneu els ajusts de la data i l'hora
Comment[ca@valencia]=Gestioneu els ajusts de la data i l'hora
Comment[cs]=Nastavení data a času
Comment[cy]=Rheolwch osodiadau dyddiad ac amser
Comment[cy]=Rheoli gosodiadau dyddiad ac amser
Comment[da]=Administrér dato- og tidsindstillinger
Comment[de]=Datum- und Zeiteinstellungen verwalten
Comment[el]=Διαχειρίσου τις ρυθμίσεις ημερομηνίας και ώρας
@@ -101,22 +108,23 @@ Comment[es_AR]=Gestionar la configuración de la fecha y la hora
Comment[et]=Kuupäeva ja kellaaja sätete haldamine
Comment[eu]=Kudeatu data eta orduaren ezarpenak
Comment[fa]=مدیریت تنظیمات تاریخ و زمان
Comment[fi]=Muuta päivä- ja aika-asetuksia
Comment[fi]=Muuta aikaan liittyviä asetuksia
Comment[fr]=Gérer les paramètres de date et d'heure
Comment[fr_CA]=Gérer les paramètres de date et d’heure
Comment[gd]=Stiùirich roghainnean a' chinn-là 's an ama
Comment[gl]=Administrar a configuración de data e hora
Comment[he]=נהל הגדרות תאריך וזמן
Comment[he]=ניהול הגדרות תאריך וזמן
Comment[hi]=दिनांक व समय सेटिंग्स प्रबंधन
Comment[hr]=Upravljajte postavkama datuma i vremena
Comment[hu]=Dátum és idő beállítások kezelése
Comment[ia]=Administrar preferentias de data e tempore
Comment[ia]=Administrar configurationes de data e tempore
Comment[id]=Atur pengaturan tanggal dan waktu
Comment[is]=Sýsla með stillingar fyrir dagsetningu og tíma
Comment[it]=Impostazioni data e ora
Comment[ja]=日付と時刻の変更
Comment[ja]=日付と時刻の設定を管理
Comment[kab]=Sefrek iɣewwaṛen n wazemz akked wakud
Comment[ko]=날짜 및 시간 설정 관리
Comment[la]=Configurationem diei and horae cura
Comment[lo]=ຈັດການການຕັ້ງຄ່າວັນແລະເວລາ
Comment[lt]=Keisti datos ir laiko nustatymus
Comment[lv]=Pārvaldīt datuma un laika iestatījumus
@@ -129,12 +137,14 @@ Comment[pl]=Zarządzaj ustawieniami daty i czasu
Comment[pt]=Gerir definições de data e de hora
Comment[pt_BR]=Gerenciar configurações de data e hora
Comment[ro]=Gestionează setările datei și orei
Comment[ru]=Настройки даты и времени
Comment[ru]=Управление параметрами даты и времени
Comment[rue]=Справованя даты тай часу
Comment[sc]=Manìgia cunfiguratziones de data e oràriu
Comment[sk]=Spravuje nastavenia dátumu a času
Comment[sl]=Upravljajte z nastavitvami datuma in časa
Comment[sq]=Menaxho parametrat e datës dhe orës
Comment[sr]=Управљање поставкама датума и времена
Comment[sr@ijekavian]=Управљање поставкама датума и времена
Comment[sr@ijekavianlatin]=Управљање поставкама датума и времена
Comment[sr@latin]=Upravljaj podešavanjima datuma i vremena
Comment[sv]=Hantera datum och tidsinställningar
@@ -143,7 +153,7 @@ Comment[th]=จัดการการตั้งค่าวันและ
Comment[tr]=Tarih ve zaman ayarlarını yönet
Comment[uk]=Керування налаштуваннями дати та часу
Comment[ur]=وقت اور تاریخ کی ترتیبات کا انتظام کریں
Comment[uz]=Сана ва вақт созламаларини бошқариш
Comment[uz]=Sana va vaqt sozlamalarini boshqarish
Comment[vi]=Quản lý thiết đặt ngày tháng
Comment[zh_CN]=管理时间/日期设置
Comment[zh_HK]=管理日期與時間設定
@@ -153,6 +163,7 @@ Keywords[af]=tyd;datum;kalender;formaat;netwerk;sinchroniseer;
Keywords[am]=ሰአት : ቀን : ቀን መቁጠሪያ : አቀራረብ : ኔትዎርክ : ማስማሚያ;
Keywords[ar]=الوقت، التاريخ، التنسيق، الشبكة، المزامنة;
Keywords[ast]=tiempu;hora;data;calendariu;calandariu;formatu;rede;sincronizar;sincronización;
Keywords[ay]=ura;uru jakhu;pacha-mara-jakhu;utt'ayawi;llika;pacha kikipayaña;hora;fecha;calendario;formato;red;sincronización;
Keywords[az]=vaxt;gün;ilgün;boyut;tor işi;sinxronlaşma;
Keywords[be]=час;дата;каляндар;фармат;сетка;сінхранізацыя;
Keywords[bg]=време;дата;календар;формат;мрежа;синхронизиране;
@@ -169,23 +180,23 @@ Keywords[es]=hora;fecha;calendario;formato;red;sincronización;
Keywords[es_AR]=hora;fecha;calendario;formato;red;sincronización;
Keywords[et]=aeg;kellaaeg;kuupäev;kalender;vorming;võrk;sünkroniseerimine;
Keywords[eu]=ordua;data;egutegia;formatua;sarea;sinkronizazioa;
Keywords[fa]=زمان، تاریخ، تقویم، فرمت، شبکه، هم‌زمانی;
Keywords[fa]=زمان، تاریخ، تقویم، قالب‌بندی، شبکه، هم‌زمانی;
Keywords[fi]=aika;päiväys;kalenteri;formaatti;verkko;synkronointi;
Keywords[fr]=heure;date;calendrier;format;réseau;synchronisation;
Keywords[fr_CA]=heure;date;calendrier;format;réseau;synchronisation;
Keywords[fy]=tiid;datum;kalinder;opset;netwurk;syngronisaasje;
Keywords[ga]=am;dáta;féilire;formáid;líonra;sync;
Keywords[gd]=àm;tìm;ceann-là;mìosachan;fòrmat;lìonra;sioncronachadh;tìm;ceann-latha;mìosachan;fòrmat;lìonra;sionc;
Keywords[gl]=hora;data;calendario;formato;rede;sincronización;
Keywords[he]=זמן;תאריך;לוח שנה;פורמט;רשת;סנכרון;
Keywords[he]=זמן;תאריך;לוח שנה;תבנית;רשת;סנכרון;
Keywords[hi]=समय;दिनांक;दिनदर्शिका;प्रारूप;नेटवर्क;समकालीन;
Keywords[hr]=vrijeme;datum;kalendar;format;mreža;usklađivanje;
Keywords[hu]=idő;dátum;naptár;formátum;hálózat;szinkronizálás;
Keywords[ia]=tempore;data;calendario;formato;rete;synchronisation;
Keywords[id]=waktu;tanggal;kalender;format;jaringan;cocokkan;
Keywords[is]=tími;dagsetning;cdagatal;snið;netkerfi;samstilling;
Keywords[it]=ora;data;calendario;formato;rete;sync;
Keywords[ja]=time;date;calendar;format;network;sync;時刻;時間;日付;カレンダー;フォーマット;ネットワーク;同期;
Keywords[ja]=time;date;calendar;format;network;sync;時刻;時間;日付;カレンダー;フォーマット;形式;書式;ネットワーク;同期;
Keywords[kab]=akud;azemz;awiyat;amasal;aẓeṭṭa;amtawi;
Keywords[ko]=시간;날짜;달력;형식;네트워크;동기화;
Keywords[lo]=ເວລາ;ວັນ;ປະຕິທິນ;ຮູບແບບ;ເຄືອຂ່າຍ;ຊິງຄ໌;
@@ -195,17 +206,20 @@ Keywords[ms]=masa;tarikh;kalendar;format;rangkaian;segerak;
Keywords[nb]=tid;dato;kalender;format;nettverk;synkroniser;
Keywords[nds]=Zeit;Datum;Kalender;Format;Netzwerk;Synchronisation;
Keywords[nl]=tijd;datum;kalender;bestandtype;netwerk;synchroniseren;
Keywords[oc]=ora;data;calendièr;calendari;format;ret;malhum;sincronizacion;
Keywords[pa]=ਸਮਾਂ;ਮਿਤੀ;ਕਲੈੰਡਰ;ਸਵਰੂਪ;ਨੈੱਟਵਰਕ;sync;
Keywords[pl]=czas;data;kalendarz;format;sieć;synchronizacja;
Keywords[pt]=hora;data;calendário;formato;rede;sincronização;
Keywords[pt_BR]=hora;data;calendário;formato;rede;sincronização;
Keywords[ro]=timp;dată;calendar;format;rețea;sincronizare;
Keywords[ru]=время;дата;календарь;формат;сеть;синхронизация;
Keywords[rue]=час;дата;календарь;формат;мрежа;сінхронізація;
Keywords[sc]=oràriu;data;calendàriu;formatu;retza;sinc;
Keywords[sk]=čas;dátum;kalendár;formát;siete;synchorizácia;
Keywords[sl]=čas;datum;koledar;oblika;omrežje;usklajevanje;
Keywords[sq]=ora;data;kalendari;formati;rrjeti;sinkronizo;
Keywords[sr]=време;датум;календар;формат;мрежа;усклађивање;
Keywords[sr@ijekavian]=време;датум;календар;формат;мрежа;усклађивање;
Keywords[sr@ijekavianlatin]=време;датум;календар;формат;мрежа;усклађивање;
Keywords[sr@latin]=vreme;datum;kalendar;format;mreža;usklađivanje;
Keywords[sv]=tid;datum;kalender;format;nätverk;synkronisering;
@@ -215,7 +229,7 @@ Keywords[th]=เวลา;วัน;ปฏิทิน;รูปแบบ;เค
Keywords[tr]=zaman;tarih;takvim;biçim;ağ;eşitleme;
Keywords[uk]=час;дата;календар;формат;мережа;синхронізація;
Keywords[ur]=وقت، تاریخ، تقویم، ساخت، نیٹورک، سنک، کالینڈر، فارمیٹ;
Keywords[uz]=вақт;сана;календар;формат;тармоқ;sync;
Keywords[uz]=vaqt;sana;kalendar;format;tarmoq;sync;
Keywords[vi]=thời gian;ngày tháng;lịch;định dạng;mạng;đồng bộ;
Keywords[zh_CN]=time;date;calendar;format;network;sync;时间;日期;日历;日程;格式;网络;同步;
Keywords[zh_HK]=時間;日期;日曆;格式;網絡;同步;
60 changes: 38 additions & 22 deletions files/usr/share/applications/cinnamon-settings-default.desktop

Large diffs are not rendered by default.

52 changes: 31 additions & 21 deletions files/usr/share/applications/cinnamon-settings-desklets.desktop
Original file line number Diff line number Diff line change
@@ -8,6 +8,7 @@ Name=Desklets
Name[af]=Werkskermprogramme
Name[am]=ዴስክሌቶች
Name[ar]=التطبيقات المكتبية
Name[ay]=Iskrituryut jisk'a-aplikasiyunanaka
Name[az]=Qoyacaq uyğulamaları
Name[be]=Дэсклеты
Name[bg]=Десклети
@@ -23,11 +24,11 @@ Name[es]=Miniaplicaciones del escritorio
Name[es_AR]=Miniaplicaciones del escritorio
Name[et]=Töölauavidinad
Name[eu]=Desklet-ak
Name[fa]=دسک‌لت
Name[fi]=Työpöytäsovelmat
Name[fa]=رومیزی
Name[fi]=Sovelmia työpöydälle
Name[ga]=Deiscíní
Name[gl]=Trebellos
Name[he]=יישומוני שולחן עבודה
Name[he]=יישומוני־שולחן־עבודה
Name[hi]=डेस्क्लेट
Name[hr]=Deskleti
Name[hu]=Asztalkalmazások
@@ -48,11 +49,13 @@ Name[pa]=ਡੈਸਕਲੇਟਸ
Name[pl]=Desklety
Name[ro]=Deskleturi
Name[ru]=Десклеты
Name[rue]=Помагала
Name[sc]=Desklet
Name[sk]=Desklety
Name[sl]=Apleti namizja
Name[sl]=Namizni vstavki
Name[sq]=Desklet-ët
Name[sr]=Справице
Name[sr@ijekavian]=Справице
Name[sr@ijekavianlatin]=Справице
Name[sr@latin]=Deskleti
Name[sv]=Skrivbordsprogram
@@ -62,46 +65,48 @@ Name[th]=เดสก์เล็ต
Name[tr]=Masaüstü Uygulamacıkları
Name[uk]=Десклети
Name[ur]=ڈیسکلیٹ
Name[uz]=Десклетлар
Name[uz]=Deskletlar
Name[vi]=Tiểu trình màn hình
Name[zh_CN]=桌面小工具
Name[zh_HK]=桌面小工具
Name[zh_TW]=桌面小程式
Comment=Manage your Cinnamon desklets
Comment[af]=Bestuur u Cinnamon-werkskermprogramme
Comment[am]=የሲናሞን ዴስክሌትስ አስተዳዳሪ
Comment[ar]=إدارة تطبيقات Cinnamon المكتبية الخاصة بك
Comment[ar]=إدارة تطبيقات سينامُن المكتبية الخاصة بك
Comment[ast]=Alministra los tos desklets de Cinnamon
Comment[ay]=Cinnamon iskrituryut jisk'a-aplikasiyunanak irpaña
Comment[az]=Öz "Cinnamon" qoyacaq uyğulamalarınızı yönəldin
Comment[be]=Кiраванне дэсклетамi Cinnamon
Comment[bg]=Управлявайте Вашите Cinnamon десклети
Comment[bs]=Upravljajte vašim Cinnamon deskletima
Comment[ca]=Gestioneu les vostres miniaplicacions d'escriptori de Cinnamon
Comment[ca@valencia]=Gestioneu les vostres miniaplicacions d'escriptori de Cinnamon
Comment[cs]=Spravovat Cinnamon miniaplikace pracovní plochy
Comment[cy]=Rheolwch eich desgledi Cinnamon chi
Comment[cy]=Rheoli eich desgledi Cinnamon chi
Comment[da]=Administrér dine Cinnamon-skrivebordsprogrammer
Comment[de]=Cinnamon-Desklets verwalten
Comment[el]=Διαχείριση των εφαρμογών οθόνης του Cinnamon
Comment[eo]=Administri viajn Cinnamon-labortablaĵojn
Comment[es]=Gestionar las miniaplicaciones del escritorio de Cinnamon
Comment[es_AR]=Gestionar las miniaplicaciones del escritorio de Cinnamon
Comment[et]=Sinu Cinnamoni laiendite haldamine
Comment[eu]=Kudeatu zure Cinnamon desklet-ak
Comment[fa]=دسک‌لت‌های سینمون‌تان را مدیریت کنید
Comment[fi]=Hallitse Cinnamon-sovelmia
Comment[fa]=رومیزی‌های Cinnamon را مدیریت کنید
Comment[fi]=Hallitse Cinnamon työpöydän sovelmia
Comment[fr]=Gérez vos desklets Cinnamon
Comment[fr_CA]=Gérer vos desklets Cinnamon
Comment[gd]=Stiùirich na desklets Cinnamon agad
Comment[gl]=Administra os trebellos do Cinnamon
Comment[he]=נהל את יישומוני-שולחן-העבודה של Cinnamon
Comment[he]=ניהול יישומוני־שולחן־עבודה סינמון
Comment[hi]=सिनेमन डेस्क्लेट प्रबंधन
Comment[hr]=Upravljajte Cinnamon deskletima
Comment[hu]=Cinnamon asztalkalmazások kezelése
Comment[ia]=Administrar tu desklets de Cinnamon
Comment[id]=Kelola desklet Cinnamon Anda
Comment[is]=Sýsla með stillingar fyrir Cinnamon skjáborðsgræjur (desklets)
Comment[it]=Gestione dei desklets di Cinnamon
Comment[ja]=Cinnamon デスクレットの管理
Comment[it]=Gestisci i desklet di Cinnamon
Comment[ja]=Cinnamon のデスクレットを管理します
Comment[kab]=Sefrek tideskeltin-ik (m) n Cinnamon
Comment[ko]=시나몬 데스크릿을 관리합니다
Comment[lo]=ຈັດການເດສເລັດ Cinnamon ຂອງເຈົ້າ
@@ -117,11 +122,13 @@ Comment[pt]=Gerir desklets Cinnamon
Comment[pt_BR]=Gerenciar seus desklets do Cinnamon
Comment[ro]=Gestionează deskleturile Cinnamon
Comment[ru]=Управление десклетами Cinnamon
Comment[rue]=Справованя помагалами Cinnamon
Comment[sc]=Manìgia sos desklet de Cinnamon tuos
Comment[sk]=Spravuje vaše desklety prostredia Cinnamon
Comment[sl]=Upravljajte z apleti namizja Cinnamona
Comment[sl]=Upravljajte z namiznimi vstavki Cinnamon
Comment[sq]=Menaxhoni desklet-ët tuaj në Cinnamon
Comment[sr]=Управљање справицама Циметове површи
Comment[sr@ijekavian]=Управљање справицама Циметове површи
Comment[sr@ijekavianlatin]=Управљање справицама Циметове површи
Comment[sr@latin]=Upravljaj deskletima Cinnamona
Comment[sv]=Hantera Cinnamons skrivbordsprogram
@@ -130,7 +137,7 @@ Comment[th]=จัดการเดสก์เล็ต Cinnamon ของค
Comment[tr]=Cinnamon masaüstü uygulamacıklarını yönet
Comment[uk]=Керування десклетами Cinnamon
Comment[ur]=اپنے سنامون کے ڈیسکلیٹ کا انتظام کریں
Comment[uz]=Синнамон десклетларни бошқариш
Comment[uz]=Sinnamon deskletlarni boshqarish
Comment[vi]=Quản lý tiểu dụng màn hình Cinnamon
Comment[zh_CN]=管理桌面小工具
Comment[zh_HK]=管理你的 Cinnamon 桌面小工具
@@ -139,14 +146,15 @@ Keywords=desklet;desktop;slideshow;
Keywords[af]=werkskermprogram;werkskerm;skyfievertoning;
Keywords[am]=ዴስክሌት : ዴስክቶፕ : ተንሸራታች : ማሳያ;
Keywords[ar]=التطبيقات المكتبية، سطح المكتب، عرض الشرائح;
Keywords[ay]=jisk'a-aplikasiyuna;iskrituryu;uñachayawi;diapositivas;miniaplicación;desklet;escritorio;presentación;diapositivas;slideshow;
Keywords[az]=qoyacaq uyğulaması;iş qoyacağı;sürüşməli göstəriş;
Keywords[be]=дэсклет;працоўны стол;слайд-шоў;
Keywords[be]=дэсклет;працоўны стол;слайды;
Keywords[bg]=десклет;работен плот;слайдшоу;
Keywords[bs]=desklet;desktop;prezentacijski slajdovi;
Keywords[ca]=miniaplicació d'escriptori;escriptori;diapositives;
Keywords[ca@valencia]=miniaplicació d'escriptori;escriptori;diapositives;
Keywords[cs]=miniaplikace;plocha;prezentace;
Keywords[cy]=desgled;bwrdd gwaith;sioesleidiau;
Keywords[cy]=desgled;bwrdd gwaith;sioe sleidiau;
Keywords[da]=skrivebordsprogram;skrivebord;slideshow;
Keywords[de]=Desklet;Arbeitsfläche;Desktop;Schreibtisch;Diaschau;Diashow;
Keywords[el]=εφαρμογές οθόνης;επιφάνεια εργασίας;προβολή διαφανειών;
@@ -155,14 +163,14 @@ Keywords[es]=miniaplicación;escritorio;presentación;diapositivas;
Keywords[es_AR]=miniaplicación;escritorio;presentación;diapositivas;
Keywords[et]=töölauavidin;töölaud;slaidiesitus;
Keywords[eu]=desklet;mahaigaina;diaporama;
Keywords[fa]=دسک‌لت، دسکتاپ، اسلایدشو;
Keywords[fa]=رومیزی، میزکار، نمایش‌اسلاید;
Keywords[fi]=sovelma;työpöytä;diaesitys;
Keywords[fr]=desklet;bureau;diaporama;
Keywords[fr_CA]=desklet;bureau;diaporama;
Keywords[ga]=deiscín;deasc;taispeántas sleamhnán;
Keywords[gd]=desklet;desktop;slideshow;taisbeanadh-shleamhnagan;
Keywords[gl]=trebello;escritorio;diaporama;
Keywords[he]=יישומוני שולחן עבודה;שולחן עבודה;הצגת שקופיות;
Keywords[he]=יישומון־שולחן־עבודה;שולחן־עבודה;מצג שקופיות;
Keywords[hi]=डेस्कटॉप;डेस्क्लेट;स्लाइडशो;
Keywords[hr]=desklet;radna površina;promjena pozadine;
Keywords[hu]=asztalkalmazás;asztal;diavetítés;
@@ -184,21 +192,23 @@ Keywords[pl]=desklet;pulpit;pokaz slajdów;
Keywords[pt]=desklet;ambiente de trabalho;apresentação;
Keywords[pt_BR]=desklet;área de trabalho;apresentação de slides;
Keywords[ru]=десклет;рабочий стол;слайд-шоу;
Keywords[rue]=помагало;роботный стул;слайдшоу;
Keywords[sc]=desklet;iscrivania;presentatzione;
Keywords[sk]=desklet;plocha;prezentácia;
Keywords[sl]=aplet namizja;namizje;predstavitev;
Keywords[sl]=namizni vstavek;namizje;aplet namizje;predstavitev;
Keywords[sq]=desklet;desktop;prezantim;
Keywords[sr]=справица;површ;покретни приказ;
Keywords[sr@ijekavian]=справица;површ;покретни приказ;
Keywords[sr@ijekavianlatin]=справица;површ;покретни приказ;
Keywords[sr@latin]=desklet;radna površina;pokretni prikaz;
Keywords[sv]=skrivbordsprogram;skrivbord;bildspel;
Keywords[ta]=திரை நிரல்;பணிமேடை;சறுக்குகாட்சி;
Keywords[tg]=барномаи мизи корӣ;мизи корӣ;намоиши слайдҳо;
Keywords[th]=เดสก์เล็ต;พื้นโต๊ะ;การนำเสนอภาพนิ่ง;
Keywords[tr]=masaüstü uygulamacığı;masaüstü;slayt gösterisi;
Keywords[uk]=десклет;стільниця;показ слайдів;
Keywords[uk]=дисклет;робочий стіл;показ слайдів;
Keywords[ur]=ڈیسکلیٹ، ڈیسک ٹاپ، سلائیدشو;
Keywords[uz]=десклет;иш столи;слайд-шоу;
Keywords[uz]=desklet;ish stoli;slayd-shou;
Keywords[vi]=tiểu trình màn hình làm việc;màn hình làm việc;trình chiếu;
Keywords[zh_CN]=桌面小工具、桌面、背景切换;
Keywords[zh_HK]=桌面小工具;桌面;幻燈片;
Loading