Cinnamon 3.4.2

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.

Tags c vala desktop x11 gtk3 gnome gnome3 gnome-shell
License GNU GPL
State stable

Recent Releases

3.4.221 Jun 2017 12:45 minor 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:05 minor 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:05 minor 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:05 minor 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.723 Dec 2016 11:45 minor feature: Cinnamon-settings: Do a better job of handling long labels, Update polling frequency to make the mouse tracking smoother, Layout: Ignore NaN numbers when updating regions.
3.2.616 Dec 2016 13:25 minor feature: Revert "Remove the 20 recent files limit", Recent documents: Don't store objects we don't need, Menu applet: Try/catch call to decodeURIComponent.
3.2.412 Dec 2016 23:25 minor feature: Partial revert of 864f632a and handle premature signals from the file monitor gracefully, cs_screensaver.py: clear preview container any time the default screensaver is selected. cinnamon-settings: a couple of ugly buttons.
3.2.312 Dec 2016 06:25 minor feature: Remove the 20 recent files limit, Default theme: Added support for applets with :checked pseudo class. sound applet: Add rhythmbox to the list of known players, menu-applet symbolic icons for contextMenu of appsButtons, icons: Add an icon for the "Run with NVIDIA" option in the menu, Tutorials: Update the xlet settings tutorial and reference pages to reflect changes to the api in Cinnamon 3.2, workspace-switcher: avoid fast consecutive moves, gi import version warning, Change shebang to use system python, Do not make inecessary iteration on popupmenu function, SoundFileChooser: showing incorrect names, SoundFileChooser: Change play icon, menu-applet file-exists-query and indentation, typo, missing parenthesis, remove rtl code in vertical panel will require testing by 3rd party, menu applet, overrides.js: some loss in effectiveness of our vectorbox caused by feacb693f529bd7db2. Having these calls within a callback, even one with no delay, was enough to provide for a bit of 'fuzziness' when defining/picking against the vectorbox's triangle, and preventing accidental category selection. cinnamon-launcher: Add support for mate-panel, cinnamon-launcher: Center fallback message dialog, add depends wget, Calendar applet: Allow custom date formats in vertical panels, Calendar applet: Remove trailing spaces, Panel Launchers: the ability to edit, l10n: Update POT file, Fallback mode: Kill the panel when restarting Cinnamon, Add setting to disable automatic screen rotation on tablet's, add orientation lock keybinding, add tooltip, screensaver settings: Add button with info on custom format, cs_screensaver.py: A few changes to improve reliability of the screensaver plugin previews. Use Gio.Subprocess, it seems to be more reliable at cleaning up after itself. And don't re-make the GtkSocket every time - connecting to socket's plug-removed and returning True prevents the socket from auto-destructing and also improves cleanup when changing row selec
3.2.224 Nov 2016 10:45 minor feature: Build: Make AX_ macros optional, Xlet settings for icon choosers stuck dialogs, cinnamon-json-makepot Added support for "title" key, Ensure a default icon size of 16px if the icon-size is not set in the indicator icon theme class. workspace-switcher buttons' size Buttons didn't get proper height (or width in vertical mode) if the auto-scale font setting was not enabled. sound-applet removed ancient code for timeLabel, uniform names, Restore ability to theme the menu applet menu separately from other menus, cs_effects: Disable menu animations when turning of window effects, applet.js Re added ability to display a separator on applets context menus. applet.js Added a mechanism to highlight applets with open menus. menu-applet keynav with TAB and right, Use the Gio library for establish the file permissions in replace of the spawnCommandLine usage. panel-launchers: the menu before destroying when removing launcher, Xlet settings Added translation mechanism to xlets settings windows, cs_backgrounds.py: thumb generation on LMDE2, sound-applet remove show percentage label for slider option, theme: theming of the workspace switcher, typo, l10n: Update POT file.
3.2.113 Nov 2016 03:17 minor 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:25 minor 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:45 minor 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.501 Jun 2016 11:25 minor feature: Cinnamon-settings: Remove hard-coded theming for the main cinnamon-settings icon view, Background settings: Apply EXIF rotations to thumbnails, cinnamon-util.c: cinnamon_util_get_icon_for_uri.c - use a custom icon if one is set in metadata (via file manager).
3.0.426 May 2016 13:05 minor 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:45 minor 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:25 minor 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:15 minor 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:28 major 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:25 major 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.