Skip to content

Commit 20514d4

Browse files
committed
menu@cinnamon.org: Replace "Uninstall" context menu item with "App Info"
"Uninstall" calls cinnamon-remove-application, a simple mint only script. Replace with "App Info" to open mintinstall or pamac-manager on the app details page so user can view an app's details and optionally uninstall using the OS's software manager. Revert "userWidget.js: Fix updating the image when the user avatar changes." This reverts commit 347c39c. The texture cache properly drops the image when the underlying file changes, but the theme context itself has created its own cogl resource and caches it also. We can monitor the texture cache there. st-theme-context.c: Hook up texture cache's texture-file-changed signal and invalidate any theme nodes using the passed file. If the underlying file contents changed, this forces a reload of the background/border image. main.js: Fix enum in _stageEventHandler. This is needed as a result of an introspection fix in muffin: linuxmint/muffin@7453e8de7689934 power_applet: rearrange battery label, so the percentage is on left (linuxmint#13262) old: <battery logo> <battery name> <percentage> new: <battery logo> <percentage>\t<battery name> Co-authored-by: Mohamed A. Elmeligy <mohamed.a.elmeligy@protonmail.com> theme: Add a couple of generic button styles (linuxmint#13319) cinnamon-desktop-editor.py: Add import path. Since 0344b11, cinnamon-menu-editor crashes at startup when it imports JsonSettingsWidgets. cinnamon-settings: Make imports consistent, instead of a mix of absolute and relative throughout. ref: 6d15343, 0344b11 messageTray.js: Fix cursor name. ref: 03e9990 endSessionDialog.js: Don't close the dialog immediately when selecting 'suspend' or 'hibernate'. This was preventing the session manager from responding with an inhibitor list and giving the user the option to ignore them and 'force' the action, as happens correctly with other options. It was also breaking the lifecycle of this dialog and disable it from showing again. Also fix an issue with the inhibitor list not clearing existing items when receiving an updated list from the session manager. Fixes linuxmint/cinnamon-session#193. ui: Add a new placeholder object (linuxmint#13304) Gives a simple reusable object to show when no active items are available. Make use of this new object in menu@cinnamon.org when the recent and favorite categories are empty. panel.js: Remove the panel corners implementation (linuxmint#13487) This isn't used by anything and adds a lot of extra code complexity. st-button: Add an :icon-name property (linuxmint#13491) Adds a convenient way to create an icon only button hotcorner.js: Port to GObject and ripples.js (linuxmint#13544) We have had the ripples code duplicated for quite some time. Remove the duplicate code from here. Port to the hotcorners to GObject and clean up some variable naming and code styling. keybindings.js: Allow auto-repeat only on certain media keybindings. Use a new Meta.Display.add_custom_keybinding_full() to be able to specify Meta.KeyBindingFlags. The default flag via the old method was NONE, which enabled autorepeat for all keybindings. Make the new default IGNORE_AUTOREPEAT, with the exception of certain media keybindings. Xlet keybindings can make use of these flags with an extra argument in addXletHotKey() if they want to re-enable autorepeat. ref: linuxmint/muffin@baf3c23992b. menu@cinnamon.org: hide sidebar config options when sidebar is hidden (linuxmint#13323) menu: Add context menu actions for favorites/recents (linuxmint#13220) * menu: Add context menu actions for favorites/recents Add `Remove from favorites` and `Open containing folder` action for favorites/recents. * menu: Add fallback action for the `Open containing folder` FIX: Disable "Disable all" button when no extensions installed (linuxmint#13455) Fixes issue where the "Disable all" button in Extensions settings remained enabled even when no extensions were installed. The button state is now correctly updated in update_button_states() to check if extension_rows is empty, and load_extensions() calls update_button_states() to ensure proper initialization. Fixes: linuxmint#13021 Fix wrong attribute and method name usage (linuxmint#13515) checkBox.js: Use the new checkBox object (linuxmint#13564) Remove all the old checkbox code and move to the use of the new one. Removes a use of CinnamonGenericContainer. This is hardly used in any spices so shouldn't have many side effects. Most themes should also just work. style: Add a slight blue tint to the theme (linuxmint#13568) Many themes use this styling. Since people installing Cinnamon outside of will likely be using Adwaita or a something similar, tint the default theme a slight blue to fit in better with these other themes. Separator cleanup (linuxmint#13573) * separator.js: Convert to GObject We only had one user of this in Cinnamon's codebase. Should be a pretty easy fix for any spice that uses it. Also removes the use of Lang.bind() * popupmenu.js: Use the standalone separator object We are duplicating the code for drawing the separator in object in menus for no real reason. Just use the the standalone separtor object instead. backgroundManager.js: Fix variable names and remove uses of Lang.bind() (linuxmint#13574) Remove the edgeFlip feature (linuxmint#13581) This has been unused for years. Go ahead and remove it. radioButton.js: Modernize and clean up unused object (linuxmint#13567) Port the radio button to GObject. Removes a use of CinnamonGenericContainer. Nothing else in here seems to be used in either Cinnamon or any of the spices. This removes the radio group but this could be modernized and brought back if there is an actual call for it. st-texture-cache.c: Fix st_texture_cache_load_image_from_file_async. This was applying the scale factor to images even though in many places it's used this was already being done by its caller. This resulted in inconsistencies depending on how the returned actor was used. Remove the internal scaling and fix callers that were unknowingly relying on this behavior. cinnamonEntry: Modernize and clean up (linuxmint#13571) Move to new style classes and remove all uses of Lang.bind. No functional changes. locatePointer: Fix and object name and cleanup (linuxmint#13585) Properly case the LocatePointer object, remove usage of Lang.bind, and clean up unused imports Port Lightbox and Flashspot to GObject (linuxmint#13586) The port requires renaming the show/hide methods of the Lightbox object. Update several other things while at it. Use connectObject, clean up some clutter deprecations, and use better comparison operators. Lightbox isn't really used in any spices, so this shouldn't have any real effect on them. lookingGlass.js: Port the inspector to GObject (linuxmint#13589) This allows us to get rid of another use CinnamonGenericContainer. No functional changes layout.js: Port all objects to classes (linuxmint#13590) While at it, remove all uses of Lang.bind and make use of connectObject for some of the signal tracking. github: Add pattern-check workflow. polkit: Show the reveal icon to reveal the password The button should reflect its action, not the status of the entry. This is better because: - It's a button, it should reflect what it does. - It aligns with the way this is done in other parts of Cinnamon, slick-greeter, Mint tools and Firefox - The default icon depicts an eye to reveal, that's an easier concept to grasp than a hidden status with an icon representing the negation of a simpler one. keyboardManager.js: Ensure the drawing area fills its parent size so the keyboard layout subscript can be drawn. Regression from c25b61d. Add native screensaver (linuxmint#13432) * Implement a screensaver. - Functional in wayland or x11 - Add a native 'away message' dialog - Unify 'switch-to-greeter' code from multiple sources - Add systemd/consolekit support for session states - Provide cinnamon-screensaver-command (still utilized by csd- power for pre-power-event activation). - Remove cinnamon-screensaver as a required session component. - Allow disabling of the internal screensaver to continue using cinnamon-screensaver. - Unify mpris code for the sound applet and albumArtWidget.js - Unify power code for the power applet and powerWidget.js TODO: - Wallpaper in wayland sessions (postponed until there is layer- shell support in muffin). Imported from cinnamon-screensaver: - PAM-related files, cinnamon-screensaver-pam-helper - cinnamon-screensaver-command and cinnamon-unlock-desktop: Both remain compatible with cinnamon-screensaver (> 6.7). The screenShield actor contains all other related widgets like the unlock dialog, and is placed in the new screenShieldGroup, the top- most child of the global.stage. Requires: linuxmint/muffin#797 linuxmint/cinnamon-screensaver#491 linuxmint/cinnamon-settings-daemon#442 * Add backup-locker support for screensaver. Imported from cinnamon-screensaver, but improved... - Relies on dbus-activation now, which allows easier interaction between cinnamon and the locker process to coordinate grabs. - Add a simple dbus service to cinnamon-launcher, to allow restart from the backup locker (still falling back to tty instructions if the launcher isn't available). - Re-use event-grabber and event-filter from cinnamon-screensaver The backup window spawns when the screensaver shows, and is placed in global.top_window_group (where other override-redirect/POPUP-type windows are placed automatically). In the event of a crash/restart, the backup window will try to raise itself to the top, and will continue to until Cinnamon restarts. When Cinnamon restarts, if its stored state (gsettings) shows it should be locked, it will negotiate the modal grab from the backup locker, and immediately lock the screensaver again. * debian/control: Add Breaks/Replaces cinnamon-screensaver. * Restrict access to screenShield instance and screensaver service. unlockDialog, authClient: remove unnecessary import. cinnamon-screen.c: Update warnings. main.js: Only allow the internal screensaver for wayland sessions. extensions: Simplify code used for loading xlets, improve startup (linuxmint#13479) speed, fix backtrace uselessness. - Drop 'custom' importer code, use native cjs importer - Leave compatibility functions for require() and module.exports Fixes/improves: - Faster Cinnamon startup (for my random configuration, ~1550ms down to ~1200ms). - Improved logging. - More consistent code (use of deprecated features will start getting flagged and/or blocked for PRs in Cinnamon and spice repositories. - Previous code was practically unmaintainable by sane people. Logging - where before we'd see this useless garbage: (cinnamon:4334): St-CRITICAL **: 22:19:57.081: st_widget_get_theme_node called on the widget [0x622f6579b3c0 StLabel.hourly-data ("...")] which is not in the stage. == Stack trace for context 0x622f63105b50 == 0 7ffd484001c0 b /usr/share/cinnamon/js/misc/fileUtils.js line 211 > Function:19086 (359f8e6c9c0 @ 279) 1 622f632b5d08 i /usr/share/cinnamon/js/misc/fileUtils.js line 211 > Function:19059 (359f8e6c970 @ 23) 2 7ffd48400ca0 b /usr/share/cinnamon/js/misc/fileUtils.js line 211 > Function:18976 (359f8e6c6a0 @ 807) 3 622f632b5b68 i /usr/share/cinnamon/js/misc/fileUtils.js line 211 > Function:19550 (359f8e6d650 @ 104) 4 622f632b5ab8 i /usr/share/cinnamon/js/misc/fileUtils.js line 211 > Function:19842 (359f8e6e2e0 @ 681) 5 622f632b5a08 i self-hosted:1461 (1eb5245b46f0 @ 30) 6 7ffd484015a0 b self-hosted:852 (359f8e92dd0 @ 15) we now get: (cinnamon:4334): St-CRITICAL **: 22:20:36.263: st_widget_get_theme_node called on the widget [0x58cf71ab5180 StLabel.hourly-data ("...")] which is not in the stage. == Stack trace for context 0x58cf6ee74250 == 0 7fffae294e10 b /home/mtwebster/.local/share/cinnamon/applets/weather@mockturtl/3.8/weather-applet.js:19084 (387d8e1fd1a0 @ 279) 1 58cf6eeac1f8 i /home/mtwebster/.local/share/cinnamon/applets/weather@mockturtl/3.8/weather-applet.js:19057 (387d8e1fd150 @ 23) 2 7fffae2958f0 b /home/mtwebster/.local/share/cinnamon/applets/weather@mockturtl/3.8/weather-applet.js:18974 (387d8e1fce20 @ 807) 3 58cf6eeac058 i /home/mtwebster/.local/share/cinnamon/applets/weather@mockturtl/3.8/weather-applet.js:19548 (387d8e1fddd0 @ 104) 4 58cf6eeabfa8 i /home/mtwebster/.local/share/cinnamon/applets/weather@mockturtl/3.8/weather-applet.js:19840 (387d8e1fea60 @ 681) 5 58cf6eeabef8 i self-hosted:1461 (2daaca0bf470 @ 30) 6 7fffae2961f0 b self-hosted:852 (e85adf8c6a0 @ 15) Requires linuxmint/cjs#136 for xlet 'reload' functionality to work. popupMenu.js: Fix copy/paste error from 731d2f7.
1 parent 347c39c commit 20514d4

177 files changed

Lines changed: 11581 additions & 2921 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ jobs:
2828
linuxmint/cinnamon-control-center,
2929
linuxmint/cinnamon-desktop,
3030
linuxmint/cinnamon-menus,
31-
linuxmint/cinnamon-screensaver,
3231
linuxmint/cinnamon-session,
3332
linuxmint/cinnamon-settings-daemon,
3433
linuxmint/cinnamon-translations,
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
name: Pattern Check
2+
3+
on:
4+
pull_request_target:
5+
branches: [ master ]
6+
7+
permissions:
8+
pull-requests: write
9+
10+
jobs:
11+
pattern-check:
12+
name: Pattern Check
13+
runs-on: ubuntu-latest
14+
15+
steps:
16+
- name: Checkout github-actions
17+
uses: actions/checkout@v6
18+
with:
19+
repository: linuxmint/github-actions
20+
path: _github-actions
21+
22+
- name: Pattern Check
23+
uses: ./_github-actions/pattern-checker
24+
with:
25+
github_token: ${{ github.token }}

cinnamon.session.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[Cinnamon Session]
22
Name=Cinnamon
3-
RequiredComponents=cinnamon;org.cinnamon.ScreenSaver;nemo-autostart;@REQUIRED@cinnamon-killer-daemon;
3+
RequiredComponents=cinnamon;nemo-autostart;@REQUIRED@cinnamon-killer-daemon;
44
DesktopName=X-Cinnamon
55

66

cinnamon2d.session.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[Cinnamon Session]
22
Name=Cinnamon (Software Rendering)
3-
RequiredComponents=cinnamon2d;org.cinnamon.ScreenSaver;nemo-autostart;@REQUIRED@cinnamon-killer-daemon;
3+
RequiredComponents=cinnamon2d;nemo-autostart;@REQUIRED@cinnamon-killer-daemon;
44
DesktopName=X-Cinnamon
55

66

data/meson.build

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,3 +62,5 @@ gnome.compile_resources(
6262
install: true,
6363
install_dir: pkgdatadir
6464
)
65+
66+
subdir('pam')

data/org.cinnamon.gschema.xml

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -472,17 +472,6 @@
472472
</description>
473473
</key>
474474

475-
<key type="b" name="enable-edge-flip">
476-
<default>false</default>
477-
<summary>Whether edge flip is enabled</summary>
478-
</key>
479-
480-
<key type="i" name="edge-flip-delay">
481-
<default>1000</default>
482-
<summary>Duration of the delay before switching the workspace</summary>
483-
<description>Duration of the delay (in milliseconds)</description>
484-
</key>
485-
486475
<key type="b" name="cinnamon-settings-advanced">
487476
<default>false</default>
488477
<summary>Whether advanced mode is enabled in cinnamon-settings</summary>
@@ -532,6 +521,24 @@
532521
<description>If true, the pointer will be set to the center of the new monitor when using pointer next/previous shortcuts.</description>
533522
</key>
534523

524+
<key type="b" name="internal-screensaver-enabled">
525+
<default>true</default>
526+
<summary>Use internal screensaver implementation. Requires cinnamon restart if changed.</summary>
527+
<description>If true, use Cinnamon's internal screensaver for locking instead of the external cinnamon-screensaver daemon.</description>
528+
</key>
529+
530+
<key type="b" name="session-locked-state">
531+
<default>false</default>
532+
<summary>Whether the session is currently locked</summary>
533+
<description>Persists the screensaver locked state so it can be restored after a Cinnamon restart. This key is managed internally and should not be modified manually.</description>
534+
</key>
535+
536+
<key type="b" name="debug-screensaver">
537+
<default>false</default>
538+
<summary>Enable screensaver debug logging</summary>
539+
<description>If true, enables verbose debug logging for the screensaver, unlock dialog, and backup-locker.</description>
540+
</key>
541+
535542
<child name="theme" schema="org.cinnamon.theme"/>
536543
<child name="recorder" schema="org.cinnamon.recorder"/>
537544
<child name="keyboard" schema="org.cinnamon.keyboard"/>

data/pam/cinnamon.pam

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#%PAM-1.0
2+
3+
# Fedora & Arch
4+
-auth sufficient pam_selinux_permit.so
5+
auth include system-auth
6+
-auth optional pam_gnome_keyring.so
7+
account include system-auth
8+
password include system-auth
9+
session include system-auth
10+
11+
# SuSE/Novell
12+
#auth include common-auth
13+
#auth optional pam_gnome_keyring.so
14+
#account include common-account
15+
#password include common-password
16+
#session include common-session

data/pam/cinnamon.pam.debian

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
@include common-auth
2+
auth optional pam_gnome_keyring.so

data/pam/meson.build

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
pamdir = get_option('pam_prefix')
2+
if pamdir == ''
3+
pamdir = sysconfdir
4+
endif
5+
6+
if get_option('use_debian_pam')
7+
install_data(
8+
'cinnamon.pam.debian',
9+
rename: 'cinnamon',
10+
install_dir: join_paths(pamdir, 'pam.d')
11+
)
12+
else
13+
install_data(
14+
'cinnamon.pam',
15+
rename: 'cinnamon',
16+
install_dir: join_paths(pamdir, 'pam.d')
17+
)
18+
endif

data/services/meson.build

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
service_files = [
2+
'org.cinnamon.BackupLocker.service',
23
'org.cinnamon.CalendarServer.service',
34
'org.Cinnamon.HotplugSniffer.service',
45
'org.Cinnamon.Melange.service',

0 commit comments

Comments
 (0)