main
parent
82077fc12a
commit
49851fe4c7
|
|
@ -1 +1 @@
|
||||||
export {}
|
export {};
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@
|
||||||
"prebuild": "rimraf dist",
|
"prebuild": "rimraf dist",
|
||||||
"build": "rollup -c",
|
"build": "rollup -c",
|
||||||
"build:dev": "rollup -c --environment DEBUG",
|
"build:dev": "rollup -c --environment DEBUG",
|
||||||
|
"format": "prettier -c -w **/*.ts",
|
||||||
"test": "sh test.sh",
|
"test": "sh test.sh",
|
||||||
"push": "sh push.sh"
|
"push": "sh push.sh"
|
||||||
},
|
},
|
||||||
|
|
@ -15,6 +16,7 @@
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"packageManager": "pnpm@9.3.0+sha512.ee7b93e0c2bd11409c6424f92b866f31d3ea1bef5fbe47d3c7500cdc3c9668833d2e55681ad66df5b640c61fa9dc25d546efa54d76d7f8bf54b13614ac293631",
|
"packageManager": "pnpm@9.3.0+sha512.ee7b93e0c2bd11409c6424f92b866f31d3ea1bef5fbe47d3c7500cdc3c9668833d2e55681ad66df5b640c61fa9dc25d546efa54d76d7f8bf54b13614ac293631",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@girs/adw-1": "1.4.3-3.3.0",
|
||||||
"@girs/clutter-14": "14.0.0-4.0.0-beta.5",
|
"@girs/clutter-14": "14.0.0-4.0.0-beta.5",
|
||||||
"@girs/gio-2.0": "2.78.0-3.3.0",
|
"@girs/gio-2.0": "2.78.0-3.3.0",
|
||||||
"@girs/gjs": "^3.3.0",
|
"@girs/gjs": "^3.3.0",
|
||||||
|
|
@ -28,6 +30,7 @@
|
||||||
"@rollup/plugin-json": "^6.1.0",
|
"@rollup/plugin-json": "^6.1.0",
|
||||||
"@rollup/plugin-node-resolve": "^15.2.3",
|
"@rollup/plugin-node-resolve": "^15.2.3",
|
||||||
"@rollup/plugin-terser": "^0.4.4",
|
"@rollup/plugin-terser": "^0.4.4",
|
||||||
|
"prettier": "^3.3.2",
|
||||||
"rimraf": "^5.0.7",
|
"rimraf": "^5.0.7",
|
||||||
"rollup": "^4.18.0",
|
"rollup": "^4.18.0",
|
||||||
"rollup-plugin-copy": "^3.5.0",
|
"rollup-plugin-copy": "^3.5.0",
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,9 @@ importers:
|
||||||
|
|
||||||
.:
|
.:
|
||||||
devDependencies:
|
devDependencies:
|
||||||
|
'@girs/adw-1':
|
||||||
|
specifier: 1.4.3-3.3.0
|
||||||
|
version: 1.4.3-3.3.0
|
||||||
'@girs/clutter-14':
|
'@girs/clutter-14':
|
||||||
specifier: 14.0.0-4.0.0-beta.5
|
specifier: 14.0.0-4.0.0-beta.5
|
||||||
version: 14.0.0-4.0.0-beta.5
|
version: 14.0.0-4.0.0-beta.5
|
||||||
|
|
@ -47,6 +50,9 @@ importers:
|
||||||
'@rollup/plugin-terser':
|
'@rollup/plugin-terser':
|
||||||
specifier: ^0.4.4
|
specifier: ^0.4.4
|
||||||
version: 0.4.4(rollup@4.18.0)
|
version: 0.4.4(rollup@4.18.0)
|
||||||
|
prettier:
|
||||||
|
specifier: ^3.3.2
|
||||||
|
version: 3.3.2
|
||||||
rimraf:
|
rimraf:
|
||||||
specifier: ^5.0.7
|
specifier: ^5.0.7
|
||||||
version: 5.0.7
|
version: 5.0.7
|
||||||
|
|
@ -68,6 +74,9 @@ packages:
|
||||||
'@girs/accountsservice-1.0@1.0.0-4.0.0-beta.5':
|
'@girs/accountsservice-1.0@1.0.0-4.0.0-beta.5':
|
||||||
resolution: {integrity: sha512-+l+kEv7a54o8jMDtftOmOpOl0bG+2rLVaCf1LqQDyLeGe74tpVCeCGre4g27VyC4KI6dh5Tp2kOnzx4u4Q1+bw==}
|
resolution: {integrity: sha512-+l+kEv7a54o8jMDtftOmOpOl0bG+2rLVaCf1LqQDyLeGe74tpVCeCGre4g27VyC4KI6dh5Tp2kOnzx4u4Q1+bw==}
|
||||||
|
|
||||||
|
'@girs/adw-1@1.4.3-3.3.0':
|
||||||
|
resolution: {integrity: sha512-BZBGnR+NjDyO4bUvY9WgWw2laFwVjNEye53NbyP/OyKgLViJmRd9eNdfb5743zLtjAvs3eB+5XIp1A5L0F9vqA==}
|
||||||
|
|
||||||
'@girs/adw-1@1.5.0-4.0.0-beta.5':
|
'@girs/adw-1@1.5.0-4.0.0-beta.5':
|
||||||
resolution: {integrity: sha512-bIndXhtH0jXL1che7tsfkdQd0rU0pnXuQTag/zeTSlVwOmkCF8RFASN96bHChK/npFaFQJ2psAu3L63sPob+3g==}
|
resolution: {integrity: sha512-bIndXhtH0jXL1che7tsfkdQd0rU0pnXuQTag/zeTSlVwOmkCF8RFASN96bHChK/npFaFQJ2psAu3L63sPob+3g==}
|
||||||
|
|
||||||
|
|
@ -700,6 +709,11 @@ packages:
|
||||||
resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
|
resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
|
prettier@3.3.2:
|
||||||
|
resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==}
|
||||||
|
engines: {node: '>=14'}
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
queue-microtask@1.2.3:
|
queue-microtask@1.2.3:
|
||||||
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
|
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
|
||||||
|
|
||||||
|
|
@ -861,6 +875,24 @@ snapshots:
|
||||||
'@girs/glib-2.0': 2.80.0-4.0.0-beta.5
|
'@girs/glib-2.0': 2.80.0-4.0.0-beta.5
|
||||||
'@girs/gobject-2.0': 2.80.0-4.0.0-beta.5
|
'@girs/gobject-2.0': 2.80.0-4.0.0-beta.5
|
||||||
|
|
||||||
|
'@girs/adw-1@1.4.3-3.3.0':
|
||||||
|
dependencies:
|
||||||
|
'@girs/cairo-1.0': 1.0.0-4.0.0-beta.5
|
||||||
|
'@girs/freetype2-2.0': 2.0.0-4.0.0-beta.5
|
||||||
|
'@girs/gdk-4.0': 4.0.0-4.0.0-beta.5
|
||||||
|
'@girs/gdkpixbuf-2.0': 2.0.0-4.0.0-beta.5
|
||||||
|
'@girs/gio-2.0': 2.78.0-3.3.0
|
||||||
|
'@girs/gjs': 3.3.0
|
||||||
|
'@girs/glib-2.0': 2.78.0-3.3.0
|
||||||
|
'@girs/gmodule-2.0': 2.0.0-4.0.0-beta.5
|
||||||
|
'@girs/gobject-2.0': 2.78.0-3.3.0
|
||||||
|
'@girs/graphene-1.0': 1.0.0-4.0.0-beta.5
|
||||||
|
'@girs/gsk-4.0': 4.0.0-4.0.0-beta.5
|
||||||
|
'@girs/gtk-4.0': 4.12.5-3.3.0
|
||||||
|
'@girs/harfbuzz-0.0': 8.2.1-3.3.0
|
||||||
|
'@girs/pango-1.0': 1.51.0-3.3.0
|
||||||
|
'@girs/pangocairo-1.0': 1.0.0-4.0.0-beta.5
|
||||||
|
|
||||||
'@girs/adw-1@1.5.0-4.0.0-beta.5':
|
'@girs/adw-1@1.5.0-4.0.0-beta.5':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@girs/cairo-1.0': 1.0.0-4.0.0-beta.5
|
'@girs/cairo-1.0': 1.0.0-4.0.0-beta.5
|
||||||
|
|
@ -1830,6 +1862,8 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
find-up: 4.1.0
|
find-up: 4.1.0
|
||||||
|
|
||||||
|
prettier@3.3.2: {}
|
||||||
|
|
||||||
queue-microtask@1.2.3: {}
|
queue-microtask@1.2.3: {}
|
||||||
|
|
||||||
randombytes@2.1.0:
|
randombytes@2.1.0:
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import json from "@rollup/plugin-json";
|
||||||
import terser from "@rollup/plugin-terser";
|
import terser from "@rollup/plugin-terser";
|
||||||
import typescript from "rollup-plugin-typescript2";
|
import typescript from "rollup-plugin-typescript2";
|
||||||
import copy from "rollup-plugin-copy";
|
import copy from "rollup-plugin-copy";
|
||||||
import tsconfigPaths from 'rollup-plugin-tsconfig-paths'
|
import tsconfigPaths from "rollup-plugin-tsconfig-paths";
|
||||||
|
|
||||||
/** @type {(options: {matches: RegExp[]}) => import("rollup").Plugin} */
|
/** @type {(options: {matches: RegExp[]}) => import("rollup").Plugin} */
|
||||||
const excludeImports = (options) => {
|
const excludeImports = (options) => {
|
||||||
|
|
@ -62,7 +62,18 @@ const config = defineConfig(() => {
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
return [extensionModule];
|
/** @type {import('rollup').RollupOptions} */
|
||||||
|
const prefsModule = {
|
||||||
|
input: "src/prefs.ts",
|
||||||
|
output: {
|
||||||
|
name: "[name].js",
|
||||||
|
dir: "dist",
|
||||||
|
format: "es",
|
||||||
|
},
|
||||||
|
plugins: [...commonPlugs],
|
||||||
|
};
|
||||||
|
|
||||||
|
return [extensionModule, prefsModule];
|
||||||
});
|
});
|
||||||
|
|
||||||
export default config;
|
export default config;
|
||||||
|
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
import * as PopupMenu from "@girs/gnome-shell/ui/popupMenu";
|
|
||||||
|
|
||||||
import { registerGObjectClass } from "../utils/gjs";
|
|
||||||
|
|
||||||
@registerGObjectClass
|
|
||||||
export class Exit extends PopupMenu.PopupMenuItem {
|
|
||||||
constructor() {
|
|
||||||
super("退出");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -16,7 +16,10 @@ import { ExtensionMetadata } from "@girs/gnome-shell/extensions/extension";
|
||||||
@registerGObjectClass
|
@registerGObjectClass
|
||||||
export class Indicator extends PanelMenu.Button {
|
export class Indicator extends PanelMenu.Button {
|
||||||
metadata: ExtensionMetadata;
|
metadata: ExtensionMetadata;
|
||||||
constructor(options: { metadata: ExtensionMetadata }) {
|
constructor(options: {
|
||||||
|
metadata: ExtensionMetadata;
|
||||||
|
openPreferences: () => void;
|
||||||
|
}) {
|
||||||
super(0.0, _("Clash Indicator"));
|
super(0.0, _("Clash Indicator"));
|
||||||
this.metadata = options.metadata;
|
this.metadata = options.metadata;
|
||||||
|
|
||||||
|
|
@ -27,7 +30,7 @@ export class Indicator extends PanelMenu.Button {
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
this.menu = this.menu as PopupMenu.PopupMenu
|
this.menu = this.menu as PopupMenu.PopupMenu;
|
||||||
|
|
||||||
const enabler = new Enabler();
|
const enabler = new Enabler();
|
||||||
this.menu.addMenuItem(enabler);
|
this.menu.addMenuItem(enabler);
|
||||||
|
|
@ -47,7 +50,7 @@ export class Indicator extends PanelMenu.Button {
|
||||||
const allowLAN = new AllowLAN();
|
const allowLAN = new AllowLAN();
|
||||||
this.menu.addMenuItem(allowLAN);
|
this.menu.addMenuItem(allowLAN);
|
||||||
|
|
||||||
const settings = new Settings();
|
const settings = new Settings({ openPreferences: options.openPreferences });
|
||||||
this.menu.addMenuItem(settings);
|
this.menu.addMenuItem(settings);
|
||||||
|
|
||||||
const configure = new Configure({
|
const configure = new Configure({
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,9 @@ import { registerGObjectClass } from "../utils/gjs";
|
||||||
|
|
||||||
@registerGObjectClass
|
@registerGObjectClass
|
||||||
export class Settings extends PopupMenu.PopupMenuItem {
|
export class Settings extends PopupMenu.PopupMenuItem {
|
||||||
constructor() {
|
constructor(options: { openPreferences: () => void }) {
|
||||||
super("打开设置面板");
|
super("打开设置面板");
|
||||||
|
|
||||||
|
this.connect('activate', options.openPreferences)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,7 @@ export default class ClashIndicatorExtension extends Extension {
|
||||||
enable() {
|
enable() {
|
||||||
this.indicator = new Indicator({
|
this.indicator = new Indicator({
|
||||||
metadata: this.metadata,
|
metadata: this.metadata,
|
||||||
|
openPreferences: this.openPreferences.bind(this)
|
||||||
});
|
});
|
||||||
Main.panel.addToStatusArea(this.uuid, this.indicator);
|
Main.panel.addToStatusArea(this.uuid, this.indicator);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
import { Adw } from "@girs/adw-1";
|
||||||
|
import { Gtk } from "@girs/gtk-4.0";
|
||||||
|
|
||||||
|
import { registerGObjectClass } from "../../utils/gjs";
|
||||||
|
|
||||||
|
@registerGObjectClass
|
||||||
|
export class SwitchCore extends Adw.ComboRow {
|
||||||
|
constructor() {
|
||||||
|
super({ title: "切换内核" });
|
||||||
|
|
||||||
|
const options = ["clash-meta", "clash-meta-alpha"];
|
||||||
|
const coreOptions = new Gtk.StringList();
|
||||||
|
options.forEach(x => coreOptions.append(x));
|
||||||
|
this.model = coreOptions;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
import {Adw} from '@girs/adw-1'
|
||||||
|
|
||||||
|
import { registerGObjectClass } from "../utils/gjs";
|
||||||
|
import { UI } from './ui';
|
||||||
|
|
||||||
|
@registerGObjectClass
|
||||||
|
export class SettingsPage extends Adw.PreferencesPage {
|
||||||
|
constructor () {
|
||||||
|
super()
|
||||||
|
|
||||||
|
this.add(new UI())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
import {Adw} from '@girs/adw-1'
|
||||||
|
import { registerGObjectClass } from '../utils/gjs'
|
||||||
|
import { SwitchCore } from './components/switch-core'
|
||||||
|
|
||||||
|
@registerGObjectClass
|
||||||
|
export class UI extends Adw.PreferencesGroup {
|
||||||
|
constructor () {
|
||||||
|
super({title: '界面设置'})
|
||||||
|
this.add(new SwitchCore())
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
import { ExtensionPreferences } from "@girs/gnome-shell/extensions/prefs";
|
||||||
|
import { SettingsPage } from "./preferences";
|
||||||
|
|
||||||
|
export default class ClashIndicatorPreferences extends ExtensionPreferences {
|
||||||
|
fillPreferencesWindow(window: any) {
|
||||||
|
const page = new SettingsPage();
|
||||||
|
|
||||||
|
window.add(page);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue