Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions data/org.cinnamon.gschema.xml
Original file line number Diff line number Diff line change
Expand Up @@ -611,6 +611,15 @@
<default>""</default>
<summary>Stores the position of the hoverclick window so it can be restored there later - format is x::y</summary>
</key>
<key name="remember-mount-password" type="b">
<default>false</default>
<summary>Whether to remember password for mounting encrypted or remote filesystems</summary>
<description>
When an encrypted device or remote filesystem is mounted, a password
dialog may include a "Remember Password" checkbox. This key stores the
default state of that checkbox.
</description>
</key>
</schema>

<schema id="org.cinnamon.theme" path="/org/cinnamon/theme/"
Expand Down
51 changes: 51 additions & 0 deletions data/theme/cinnamon-sass/widgets/_dialogs.scss
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,16 @@
.dialog-list-box {
spacing: 1em;

border-radius: $base_border_radius;

.dialog-list-item {
spacing: 1em;
border-radius: $base_border_radius;
padding: $base_padding $base_padding * 2;
transition-duration: 100ms;

&:hover { background-color: $light_bg_color; }
&:selected { background-color: $accent_bg_color; }

.dialog-list-item-title { font-weight: bold; }
.dialog-list-item-description {
Expand Down Expand Up @@ -194,3 +202,46 @@
}
}
}

.autorun-dialog {
min-width: 30em;

.dialog-content-box {
margin-top: $base_margin;
margin-bottom: $base_margin * 3;
spacing: $base_margin * 3;
max-width: 28em;

.dialog-list {
.dialog-list-box {
background-color: lighten($bg_color, 5%);
spacing: 0;

.dialog-list-item {
border-radius: 0;

&:first-child {
border-radius: $base_border_radius $base_border_radius 0 0;
}

&:last-child {
border-radius: 0 0 $base_border_radius $base_border_radius;
}
}
}
}

.autorun-dialog-heading {
@extend %title_2;
text-align: center;
}

.autorun-dialog-subheading {
@extend %title_4;
text-align: center;
}

.autorun-dialog-description {
}
}
}
1 change: 1 addition & 0 deletions docs/reference/cinnamon/meson.build
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
ignore = [
'cinnamon-recorder-src.h',
'cinnamon-recorder.h',
'cinnamon-mount-operation.h',
st_headers,
st_private_headers,
tray_headers,
Expand Down
14 changes: 14 additions & 0 deletions files/usr/bin/cinnamon-launcher
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ class Launcher:

self.polkit_agent_proc = None
self.nm_applet_proc = None
self.automount_proc = None
self.can_restart = False
self.dialog = None

Expand Down Expand Up @@ -161,6 +162,10 @@ class Launcher:
print(f"Launching for fallback session: nm-applet")
self.nm_applet_proc = subprocess.Popen(["nm-applet"])

if shutil.which("csd-automount"):
print(f"Launching for fallback session: csd-automount")
self.automount_proc = subprocess.Popen(["csd-automount"])

def kill_fallback_helpers(self):
if self.polkit_agent_proc is not None:
print("Killing fallback polkit agent")
Expand All @@ -180,6 +185,15 @@ class Launcher:
self.nm_applet_proc.kill()
self.nm_applet_proc = None

if self.automount_proc is not None:
print("Killing fallback csd-automount")
self.automount_proc.terminate()
try:
self.automount_proc.wait(timeout=5)
except subprocess.TimeoutExpired:
self.automount_proc.kill()
self.automount_proc = None

@async_function
def monitor_memory(self):
if psutil.pid_exists(self.cinnamon_pid):
Expand Down
20 changes: 12 additions & 8 deletions js/misc/loginManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ var LoginManagerSystemd = class {
constructor() {
this._managerProxy = null;
this._sessionProxy = null;
this.sessionIsActive = true;
this.isLocked = false;

this._initSession();
Expand Down Expand Up @@ -150,25 +151,26 @@ var LoginManagerSystemd = class {

this._sessionProxy.connectSignal('Lock', () => {
_log('LoginManager: Received Lock signal from logind, emitting lock');
this.isLocked = true;
this.emit('lock');
});

this._sessionProxy.connectSignal('Unlock', () => {
_log('LoginManager: Received Unlock signal from logind, emitting unlock');
this.isLocked = false;
this.emit('unlock');
});

this._sessionProxy.connect('g-properties-changed', (proxy, changed, invalidated) => {
if ('Active' in changed.deep_unpack()) {
let active = this._sessionProxy.Active;
this.sessionIsActive = active;
_log(`LoginManager: Session Active property changed: ${active}`);
if (active) {
_log('LoginManager: Session became active, emitting active');
this.emit('active');
}
this.emit('active-changed', active);
}
});

this.sessionIsActive = this._sessionProxy.Active;
this.emit('session-ready');
} catch (e) {
global.logError('LoginManager: Failed to connect to logind session: ' + e.message);
Expand Down Expand Up @@ -229,6 +231,8 @@ var LoginManagerConsoleKit = class {
constructor() {
this._managerProxy = null;
this._sessionProxy = null;
this.sessionIsActive = true;
this.isLocked = false;

this._initSession();
}
Expand Down Expand Up @@ -273,20 +277,20 @@ var LoginManagerConsoleKit = class {

this._sessionProxy.connectSignal('Lock', () => {
_log('LoginManager: Received Lock signal from ConsoleKit, emitting lock');
this.isLocked = true;
this.emit('lock');
});

this._sessionProxy.connectSignal('Unlock', () => {
_log('LoginManager: Received Unlock signal from ConsoleKit, emitting unlock');
this.isLocked = false;
this.emit('unlock');
});

this._sessionProxy.connectSignal('ActiveChanged', (proxy, sender, [active]) => {
this.sessionIsActive = active;
_log(`LoginManager: ConsoleKit ActiveChanged: ${active}`);
if (active) {
_log('LoginManager: Session became active, emitting active');
this.emit('active');
}
this.emit('active-changed', active);
});

this.emit('session-ready');
Expand Down
Loading
Loading