Links

Share project

Cinnamon is a traditional graphical desktop for BSD/Linux and X11, derived
from GNOME. It extends the Shell with a panel styled after GNOME 2, but
adds more recent functionality, backend and application bindings. It
provides MDM, a login manager, networking and bluetooth applets, virtual
workspaces, theming, desktop icons, portable keybindings, Qt-theme
bridging, visual effects, and a configuration center. It's the default
desktop environment for Linux Mint, but packaged for many other
distributions.

3.8.102 May 2018 03:15minor feature:
Network applet: Disconnect all signals for NMDevice when our proxy gets destroyed. When the device became unavailable, we would connect to 'firmware-missing' to get notified when it was available again. At some point, a change to networking caused the NMDevice to get destroyed rather than lingering for the firmware to 'return.', st-label.c: remove the reference to our ClutterText when it gets finalized during a Clutter.Actor.destroy() chain. add symbolics cs-desklet and cs-backgrounds, network applet: Don't show unmanaged networks in the list. network applet: refresh the panel icon more frequently when the menu is open. network applet: show the actual active connection's signal strength in the AP list, rather than the strongest AP for a given ssid, which may not be the same thing. cs_themes.py: Remove the setting for prefer-dark-themes, panel tooltips position with multiple monitors, window-list: update icons on panel height/orientation changed, Workspace switcher improvements, systray: Bail out if the plug window is gone, Allow colons in hot corners commands, Remove exported variable warning, Xlet settings: don't show a row for "generic" settings entries.

3.6.110 Nov 2017 14:05minor feature:
Blurry and off-centered arrow in popup submenus, cinnamon-settings: remove ui file that is no longer used since the extension-settings-rework, Spices.py: xlets not installing if a file without an extension is in the po directory, TreeListWidgets.py: edit elements with double click, ing Gtk-Message when running a dialog, window-list: account for hidden items during DnD repositioning, Spices: Don't fail if the spice directory is missing.

3.6.025 Oct 2017 06:25minor feature:
Melange/cinnamon-looking-glass.py: convert to normal toplevel window, melange/page_results.py: scrolling, melange/page_inspect.py: add ability to insert property path into entry, melange/page_log.py: implement autoscrolling, melange/all: various cleanups, xlets-about-dialog: improvements for about dialog, st-theme-node-drawing: correct logic for calculation of cover and contain upstream a long time ago https://github.com/GNOME/gnome-shell/commit/3dbf06420df0ad669f12939a788ed44061dcc1e1, st-theme-node-drawing: Group multiple cogl_rectangle calls https://github.com/GNOME/gnome-shell/commit/d8540819af7978b3c244877ddb85109a55278bee#diff-8a01b40c2c1be22ef97916811be0ab65, st-theme-node-drawing: move setting of corner material before rendering box shadow https://github.com/GNOME/gnome-shell/commit/36fc3a5c9671c45ca17e8169826e21ae4f9d5fa8#diff-8a01b40c2c1be22ef97916811be0ab65, cinnamon-app.c: read the icon name or icon path from muffin when getting a window- backed icon, if it's been set (by us in some other app via gdk_window_set_icon_name(), remove a comment, cinnamon-app.c: If a custom icon_name is set in the MetaWindow, always use that, whether we have a matched desktop entry or not. Update for XApp api, xlet-settings.py: Use XAppGtkWindow, which takes care of all setting of icon names by shadowing the respective GtkWindow methods. scaling for icon-name app icons, st: Remove _st_allocate_fill https://github.com/GNOME/gnome-shell/commit/24ad59ea3728cf55ad127085e486d73345e33a35#diff-578ccc5ce70c4a11d7f30e3f38002f0b plus a very minor simplification in st-box-layout, st-bin: Make sure not to allocate hidden children https://github.com/GNOME/gnome-shell/commit/7e343f11f28a736d88619b85c9b9c6ea52a7e142#diff-b948bb195b709c61ce7275142a2fbdfd, st-widget: Unset hover when setting track_hover to FALSE https://github.com/GNOME/gnome-shell/commit/79bfea5970a055a3990f7e52a3669a59594851a1#diff-b948bb195b709c61ce7275142a2fbdfd, st-bin: Don't allocate a hidden actor htt

3.4.327 Jun 2017 13:45minor feature:
Panel-launchers: put individual launcher actions back in the main popup, having an options and preferences submenu was a bit ambiguous. Panel-launchers: remove an undeclared variable warning, deskletManager: Correct call to file.delete, Add a menu item to toggle the on-screen keyboard.

3.4.221 Jun 2017 12:45minor feature:
st-texture-cache.c: don't cache st_texture_cache_load_from_raw - its only user is the notificationDaemon. These are transient images that were being stored in the cache that would never be evicted during theme changes (this does not just mean times when the user changed the icon them.), l10n: Translate hardcoded string for settings reset confirmation dialog, Silence a few more warnings new warnings. expo, overview: unreference actors that we destroy whenever the respective view. cinnamon-slideshow.py: only allow a single instance to run. Sound applet: avoid spacing problem in vertical panel Knock on from commit 3870e42fe58533598ef8998ffb7d6bd3f213cbec, photoframe-desklet: a few, notificationDaemon.js: Silence an occasional warning. SettingsWidgets.py: Make switch widgets use "center" vertical alignment instead of "fill," to prevent the switch growing in height when the label text gets ellipsized (either thru resizing of the window, or localization.), Progress bar text initializes and resets, cinnamon-settings-users: Restrict the size of user images, as they are displayed in the right view when a user is selected. If the image at /var/lib/AccountsService/icons/. is set to a ridiculously-sized image, it won't break the ui. cs_user: Don't let large images break the ui - make sure we scale the selected image to an appropriate size. Also, don't crop user-selected images (but keep cropping webcam images) - it's strange to select an image file and have the ends of it cut off. cinnamon-settings-users.py: picture preview in file selector to maintain a reasonable size. cs_user.py: Handle image previews better in the face chooser dialog. ChooserButtonWidgets.py: Python 3 error, window-list: bring space around preview down and correct a calculation problem beta testing user asked for the space around the window preview to be brought in a bit that in turn highlighted a where the scaling was calculated without taking the icon+title into effect I've brought the spa

3.4.125 May 2017 19:05minor feature:
Remove usage of GTK_POLICY_EXTERNAL, checkBox.js: remove extra unused argument which was causing a warning with new cjs/mozjs, st-bin.c: y_fill setter (it was setting x_fill to the value of the existing y_fill, before it is set in the same call). menu applet: keyboard navigation of recent context menu. closing of same menu when switching to another category. Also closing when opening another recent's context menu. menu applet: notify when a recent file is activated that can't be accessed. menu applet: make missing file notification transient. menu applet (vector box): partially revert c0d37dd79d68c97 - there is flickering as events go from a button to the vector box and back. Remove the idle callback, and directly react to the enter even once more. To compensate, increase our maybeUpdateVectorBox delay timeout, which more or less the original problem the above commit was attempting to. menu applet: _select_category - only call displayButtons if the category has really changed. menu applet: keyboard navigation when a second recent context menu is toggled open. Sound settings: device icons, xlet-settings.py: ignore files and directories in the config directory that aren't created by our settings api as well as instances that no longer exist, ExtensionCore.py: Don't scrub the config directory on load. This is no longer necessary since xlet settings now ignores anything that isn't an active instance, and some applets need a place to store extra files so they get cleaned up on uninstall. cs_panel.py: crash when there are no panels, sound-applet: remove extraneous arguments on add_actor calls, radioButton.js: remove extra argument to add_actor. window-list-applet: undefined reference warning, cinnamon-json-makepot Added support to extract "title" and "units" keys on list elements, debian/control: use correct runtime dependency on caribou introspection only. User applet: Remove ability to switch to guest with LightDM, runDialog.js: undefined variable w

3.4.007 May 2017 19:05minor feature:
Gnome terminal losing desktop file association during cinnamon restart, cinnamon-json-makepot: Added support to scan for JS files inside sub-dirs. Start systray applet first, Use generic marshaller, file permissions, Pull functions out of loops in _refreshPlaces, _refreshApps. Move uri assignment in _refreshRecent's while loop into new. Use let instead of var in new handler functions, panel: rework allocation logic to avoid looping in edit mode this was causing the context menu animation to fail to complete causing the user not to be able to exit edit mode, theme-node: leak on stylesheet change. From upstream https://github.com/GNOME/gnome-shell/commit/72bfa9125945919e9d69505d3e739480855f331e, cinnamon_dbus_acquire_name: don't leak the result from upstream https://github.com/GNOME/gnome-shell/commit/3f0fbae7e213b2fbe7267b9d25ac7fcfaa8afcff, cinnamon_dbus_acquire_name: Don't leak error from upstream https://github.com/GNOME/gnome-shell/commit/7f1a258ff9fc768a7fc13e5c37e1fd6d7ab5c33b, keyboard: destroy the key's boxpointer from upstream https://github.com/GNOME/gnome-shell/commit/9d933356e171a1dc49b61b5864826531c0f24d97, hotcorner hover delay timeout removal This a "Invalid or null source id used when attempting to run Mainloop.source_remove()" when leaving a hotcorner. The timeout is already destroyed by returning false in the callback, but we still knew about the timeout id and tried to remove the non-existing timeout. st-box-layout: Don't report a paint volume when we have no allocation from upstream https://github.com/GNOME/gnome-shell/commit/aa6f352cb06d3ae8940af323f048c8c7886fa0cd, window-tracker: memory leak from upstream https://github.com/GNOME/gnome-shell/commit/ac22172a6ec37a158ca4cecf8c18f8fb29c1aa97, tooltips.js: Remove leftover logging. Add cinnamon-stap-monitor utility. panel.js: Couple to previous commit. Let the panel sections cover the entire panel in edit mode. Clean up _allocate a bit - since we always have the center zone occupie

3.2.809 Jan 2017 00:05minor feature:
Menu applet: Only construct one context menu for recent files, and re-use it. cs_screensaver.py: Re-use the Gtk.Socket always - it can hold both Gtk.Plugs and normal Gtk.Widgets, just treat it like a normal bin/container. This seems to assist on ref-cleanup and child reaping when switching screensavers. (observed on Arch, reported on Arch and Fedora), menu applet: Don't reconstruct recent files, just re-order, add, remove as required. menu applet: a couple of minor leaks (actors created but never added to a container - being GInitiallyUnowned, they never get their floating ref sunk, and so can't be unreffed. a prototype mis-match, and just rename GenericButton to NoRecentDocsButton, since that's the only user of it. menu applet: Some for previous commits, don't be so destructive when refreshing applications. Revert "cs_screensaver.py: Re-use the Gtk.Socket always - it can hold both Gtk.Plugs", tuples for python 3.6, tooltips.js: add a hide timer to check if a tooltip should hide itself, but for various reasons never got to act on a leave-event (due to vagaries in event reporting). recent applet: Rework to be non-destructive when updating the recent list (this brings a lot of the recent changes to the menu applet over to this one.), recents, applets: Couple warning cleanups, network applet: Remove a useless log warning. At some point more than a year ago we started getting these (possibly a change to network-manager), they have no value whatsoever, but fill up the log.

3.2.113 Nov 2016 03:17minor feature:
rm obsolute and unsupport NEWS file, keyboard applet: positioning of the flag render within its actor. some runtime warnings - in the sound applet, object construction is too soon to get the theme node, wait until 'style-changed' signal is sent by the main actor. In the menu applet, remove return values of navigateContextMenu() - there is only one user of this function, and they don't check for a value. keyboard applet: Allow flag icon to properly scale its size to match the panel and preferences. Monkey patch some St.Icon methods to the EmblemedIcon class so we can use the existing applet icon sizing calculations by pretending we're just another icon hanging around, getting things done. menu-applet warnings caused by keynavigation, Update./test script, Info settings: Add upload-system-info button, l10n: Update POT file, Info settings: Add tooltip to upload button, typo, l10n: Update POT file.

3.2.008 Nov 2016 14:25minor feature:
Re-order and re-word idle-delay and re-word lock-enabled, Resize a thumbnail when the window resizes, Add Remove button for Xlets, Added gi.require_version() in many, many, many places, cs_keyboard.py: keybindings for quiet volume up and down (they were showing the same keys as normal volume-up/down.), Add the ability to play a sound effect when showing notifications, Clean up output filenames on the tracker search provider, Show flags based on short name of language in keyboard applet, Settings: switch gsettings widgets to use new settings backend:, Add json settings backend to settings widgets, settings.js: rewrite to simplify code and aviod the use of object.watch() which can be costly on resources, Revamp the xlet settings: - xlet settings now open in their own window/process - matches new style of cinnamon settings - now supports pages and sections in the settings file - instances are now automatically highlighted in the panel when the instance is selected in the settings window (uses a new 'highlight' pseudoclass) - uses the new JSON backend for easier maintenance and simplification of the code - added support for backendable widgets which were not previously available to the xlet settings api - updated for newer Gtk versions - added a new configure function to applets and desklets, Udate some of the applets and desklet to use the new settings api, Give more informative message when starting to remove applet, wrap applet description At the moment a long applet description will push the subsequent icons off the visible screen which is likely to confuse some. Scaling up font or text scaling exacerbates this Some simple column wrapping avoids the, Add cinnamon-related depackages to cinnamon-dbg package, Localize the applet name in previous commit, Migrate away from gnome-common deprecated vars and macros, Corrected "output" to "input", settings.js: some settings not updating due to unspecific conditional, appletManager.js: (multi-instance) app

3.0.624 Jun 2016 09:45minor feature:
Add a generic "bluetooth" icon, power applet: Don't connect to any signals that call _devicesChanged until we have the power proxy (since the callbacks assume we do have it). windowAttentionHandler.js: make the ignored app check case- insensitive. While we're here make it a gsettings array for convenience. org.cinnamon.gschema.in - add pidgin to ignored wm classes. Touchpad settings: Invert motion-threshold setting widget, appletManager.js: copy/pasting applet panel applet layouts. Extension.get_max_instances() needed an extra argument, and then we were doing work twice - finished removing obsolete code. cinnamon-recorder: crash when starting recorder. cinnamon-recorder.c: restore avoidance of the panel when drawing the recording indicators. This was removed during some panel work a while back and never restored. Always draw them on the primary monitor now (the only monitor with reliable, simple-to-get workarea information). spelling mistakes, onscreen keyboard: Add option to change activation behavior - accessible mode has the keyboard appear whenever focus demands it (ordinary accessibility behavior). On-demand mode will have the keyboard only appear when the user requests it via an applet click or keyboard shortcut. Themes settings: loading icon themes when a theme isn't readable, popupMenu.js: use the signalManager.disconnect correctly - the source actor (the panel actor for the applet) has to be the second argument, the object to disconnect from. Was causing flickering in the menu applet after repositioning it. Makepot, Settings: Don't hardcode "more info" link color in spices modules, desrt network: properly remove connections from list, Network applet: icon not showing VPN status, Network applet: Delete trailing spaces, Network applet: applet showing "Auto" wireless connection when turning wifi OFF and then back ON. tray icons: Bump icon request to 24, then scale back to 20 in the applet. This is needed due to changes to GtkIconSize values

3.0.426 May 2016 13:05minor feature:
Updated pot file, cs_effects: Only show overlay scrollbar toggle when using gtk3 = 3.16. sound applet: Use an icon that actually exists for blank coverart. sound-applet: an icon name, Ignore accents/stokes when searching the menu or cinnamon-settings, Menu applet: Removed trailing spaces, Menu applet: Don't refresh twice at the same time. Menu applet not cleared drag placeholder in favorites box This the uncleared drag placeholder in the favorites box, if an application was dragged over, but not dropped on the favorites box This is for #5322.

3.0.322 May 2016 03:45minor feature:
Ensure label text is properly escaped before applying it with set_markup(), typo, SettingsWidgets.py: use a more compatible GFileMonitorFlags - WATCH_MOVES is not available in Mint 17/glib 2.40, cinnamon-settings: include module keywords in desktop files, cinnamon-app: provide access to desktop file keywords. Use them in the menu applet search. generated desktop files: re-run, to remove unnecessary comment, extensions: Check extensions for unsafe calls (synchronous, etc.. things that can potentially freeze Cinnamon) and make the user aware of them in cinnamon settings. ExtensionCore.py: scan_extension_thread - if the metadata.json file is not found, this must be a versioned xlet, check the parent folder for it instead. cs_power.py: Expose setting to allow lid-action even when external monitors are attached. messageTray.js: Don't let notifications with buttons fade on mouse-over. menu applet: use app id instead of app name for searches prevents duplicate search results for apps with the same desktop entry name when searching with a more specific term, sound applet: smplayer: artist metadata display and disable seek While seeking does work, after the first time you seek the amount seeked is incorrect. It appears to seek the amount between the beginning of the seek bar and where you released the click instead. cs_themes: Add setting for dark theme variant preference. This is only settable from /.config/gtk-3.0/settings.ini, so add the ability to modify that as well. cs_effects.py: Expose gtk-overlay-scrollbar setting. cs_sound: Set selection mode to none on the SoundBox() object, Missing semicolon, Missing semicolon, Settings: Don't include text/html in the source code mimetypes, st-texture-cache.c: use g_themed_icon_new instead of g_themed_icon_new_with_default_fallbacks.

3.0.212 May 2016 06:25minor feature:
Cache generated thumbnails, desktop effects on dialogs and menus This prevents desktop effects on dialogs and menus from being used if desktop-effects is turned off. It's like already like this in the effects settings dialog. Power applet: declaration of alias variable, Window list: call on null object, handling of device icon where gicon is None, cinnamon-settings: Don't set the stack switcher to use the main settings stack on creation This is causing visual glitches in a lot of gtk themes when changing from the main icon view to a page that displays the stack switcher, highlighting not working correctly for multiple instances of an applet, ExtensionCore.py: Don't break when an xlet provides a bad icon file. Added null conditional to return empty array when get_devices returns null, correct potential infinite loop, accessibility settings: don't use packagekit for now when looking for assistance programs that are installed. Just look for their binaries, and notify if not installed. Watch the bin folders in case the user installs the dependency and doesn't restart cinnamon settings. cs_sound.py: Add a button to the speaker test dialog. image crash.

3.0.129 Apr 2016 03:15minor feature:
Extensions: the alignment of the rating number in the "Get more" pages so it won't get covered by overlay scrollbars, bump muffin version because of API changes.

3.026 Apr 2016 01:28major feature:
Window management improvements on tiling, mapping and unmapping windows, compositor s window groups and tracking of full screen windows.
Improved out of the box touchpad support (edge-scrolling and two-finger-scrolling can now be configured independently and are both enabled by default).
New accessibility and sound settings (both rewritten as native cinnamon-settings modules).
Battery powered devices can be renamed.
Different favorite applications can now be set for plain-text, documents and source code files.
Panel launchers now include application actions.
Animation effects are now enabled by default on dialogs and menus.
Favorites and system options can now be disabled in the menu applet.
The photo-frame desklet now also scans subdirectories.
Improved support for GTK 3.20, Spotify 0.27, Viber.

2.403 Nov 2014 10:25major feature:
Responsiveness and memory usage:
CJS was rebased on a newer version of GJS in an effort to reduce memory
usage and provide faster execution times.
All Cinnamon components were reviewed and their source code was checked with
static analysis tools. Although most of them were small, about 30 memory
leaks were fixed.
Icons used in Cinnamon Settings were added to the Mint-X icon theme. This
increased responsiveness (This is specific to Linux Mint so we encourage all
artists and distributions to do the same).
More polish:
Credit to and similar to GNOME Shell, the Cinnamon desktop now starts with a
zoom animation.
The login sound is now handled directly by Cinnamon (as opposed to
cinnamon-settings-daemon) and plays in sync with the login sequence.
Modules in Cinnamon Settings and categories in the application menu are now
sorted alphabetically.
Similar to Windows, Super+e now opens up the home directory.
Cinnamon 2.4 ships with many small refinements (multiple panel launchers,
improvements in the sound applet, removal of the timeout in the logout
dialog etc) and a lot of bug fixes.
More settings and hardware support:
Single-button touchpads are now supported (like the one used on the Macbook)
and actions for 2-finger and 3-finger clicks are configurable. By default
they correspond to right-click and middle-click.
Compositing in full-screen mode is now configurable and does not require to
restart Cinnamon. This means less screen-tearing by default for most users
and the option to undirect windows for gamers and users requiring an
application to run at full speed without being impacted by the composition
manager.
The desktop font is now configurable.
It is now possible to give the screensaver a custom date format, but also to
change the font and the color of the text.