Skip to content

Commit

Permalink
Merge pull request #1 from saccuz/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
saccuz committed Oct 11, 2023
2 parents 578b8b7 + 60ae376 commit 0313fe6
Show file tree
Hide file tree
Showing 4 changed files with 86 additions and 3 deletions.
23 changes: 22 additions & 1 deletion src/extension.js
Expand Up @@ -16,11 +16,32 @@
* SPDX-License-Identifier: GPL-2.0-or-later
*/
import {Extension} from 'resource:///org/gnome/shell/extensions/extension.js';
import Shell from 'gi://Shell';
import * as Main from 'resource:///org/gnome/shell/ui/main.js';

export default class PlainExampleExtension extends Extension {
const DateMenu = Main.panel.statusArea.dateMenu;
let handId = null;

export default class WeekCalendarModifier extends Extension {
enable() {
this._settings = this.getSettings();

DateMenu._calendar._weekStart = 1; // Monday
DateMenu._calendar._onSettingsChange();

handId = this._settings.connect('changed::day', (settings, key) => {
DateMenu._calendar._weekStart = settings.get_int(key);
DateMenu._calendar._onSettingsChange();
});
}

disable() {
DateMenu._calendar._weekStart = Shell.util_get_week_start();
DateMenu._calendar._onSettingsChange();
if (handId) {
this._settings.disconnect(handId);
handId = null;
}
this._settings = null;
}
}
7 changes: 5 additions & 2 deletions src/metadata.json
@@ -1,8 +1,11 @@
{
"name": "Week Start Modifier",
"description": "Modify starting day of the week",
"uuid": "week-start-modifier@saccuzm@gmail.com",
"uuid": "weekstartmodifier@saccuzm@gmail.com",
"shell-version": [
"45"
]
],
"url":"https://github.com/saccuz/week-start-modifier",
"settings-schema": "org.gnome.shell.extensions.weekstartmodifier",
"gettext-domain": "weekstartmodifier@saccuzm@gmail.com"
}
50 changes: 50 additions & 0 deletions src/prefs.js
@@ -0,0 +1,50 @@
import Gio from 'gi://Gio';
import Gtk from 'gi://Gtk';
import Adw from 'gi://Adw';

import {ExtensionPreferences, gettext as _} from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js';


export default class ExamplePreferences extends ExtensionPreferences {
fillPreferencesWindow(window) {

const days = [
['Sunday', _('Sunday')],
['Monday', _('Monday')],
['Tuesday', _('Tuesday')],
['Wednesday', _('Wednesday')],
['Thursday', _('Thursday')],
['Friday', _('Friday')],
['Saturday', _('Saturday')],
];

// Create a preferences page, with a single group
const page = new Adw.PreferencesPage({
title: _('General'),
icon_name: 'dialog-information-symbolic',
});
window.add(page);

const group = new Adw.PreferencesGroup({
title: _('Starting day of the week'),
});
page.add(group);

let stringList = new Gtk.StringList();
days.forEach((it) => {
stringList.append(it[1]);
});

// Create a new preferences row
const row = new Adw.ComboRow({
title: _('Day'),
subtitle: _('Select the day on which the week start'),
model: stringList
});
group.add(row);

// Create a settings object and bind the row to the `day` key
window._settings = this.getSettings();
window._settings.bind('day', row, 'selected', Gio.SettingsBindFlags.DEFAULT);
}
}
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<schemalist>
<schema id="org.gnome.shell.extensions.weekstartmodifier" path="/org/gnome/shell/extensions/weekstartmodifier/">
<key name="day" type="i">
<range min="0" max="6"/>
<default>1</default>
</key>
</schema>
</schemalist>

0 comments on commit 0313fe6

Please sign in to comment.