init
This commit is contained in:
commit
a32040307d
2 changed files with 67 additions and 0 deletions
57
extension.js
Normal file
57
extension.js
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
import GLib from 'gi://GLib'
|
||||||
|
import GObject from 'gi://GObject'
|
||||||
|
import St from 'gi://St'
|
||||||
|
import Clutter from 'gi://Clutter'
|
||||||
|
|
||||||
|
import { Extension } from 'resource:///org/gnome/shell/extensions/extension.js'
|
||||||
|
import * as PanelMenu from 'resource:///org/gnome/shell/ui/panelMenu.js'
|
||||||
|
import * as Main from 'resource:///org/gnome/shell/ui/main.js'
|
||||||
|
|
||||||
|
const Indicator = GObject.registerClass(
|
||||||
|
class Indicator extends PanelMenu.Button {
|
||||||
|
_init(textInPanel) {
|
||||||
|
super._init(0.0, "spinner", true)
|
||||||
|
this.add_child(textInPanel)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
export default class IndicatorExampleExtension extends Extension {
|
||||||
|
timeoutId = 0
|
||||||
|
enable() {
|
||||||
|
let textInPanel = new St.Label({
|
||||||
|
text: ":",
|
||||||
|
y_expand: true,
|
||||||
|
y_align: Clutter.ActorAlign.CENTER,
|
||||||
|
})
|
||||||
|
textInPanel.set_style("font-family: monospace")
|
||||||
|
if (this.timeoutId != 0) {
|
||||||
|
GLib.Source.remove(this.timeoutId)
|
||||||
|
this.timeoutId = 0
|
||||||
|
}
|
||||||
|
let index = 0
|
||||||
|
//const content = ['|', '/', '-', '\\']
|
||||||
|
//const content = ['⠻', '⠽', '⠾', '⠷', '⠯', '⠟']
|
||||||
|
const content = ['⢿', '⣻', '⣽', '⣾', '⣷', '⣯', '⣟', '⡿']
|
||||||
|
this.timeoutId = GLib.timeout_add(
|
||||||
|
GLib.PRIORITY_DEFAULT,
|
||||||
|
100,
|
||||||
|
() => {
|
||||||
|
textInPanel.text = content[index]
|
||||||
|
index ++
|
||||||
|
index %= content.length
|
||||||
|
return GLib.SOURCE_CONTINUE
|
||||||
|
}
|
||||||
|
)
|
||||||
|
this._indicator = new Indicator(textInPanel)
|
||||||
|
Main.panel.addToStatusArea(this.uuid, this._indicator, 255, "left")
|
||||||
|
}
|
||||||
|
|
||||||
|
disable() {
|
||||||
|
if (this.timeoutId != 0) {
|
||||||
|
GLib.Source.remove(this.timeoutId)
|
||||||
|
this.timeoutId = 0
|
||||||
|
}
|
||||||
|
this._indicator.destroy()
|
||||||
|
this._indicator = null
|
||||||
|
}
|
||||||
|
}
|
10
metadata.json
Normal file
10
metadata.json
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
"name": "Spinner",
|
||||||
|
"description": "A useless spinner",
|
||||||
|
"uuid": "spinner@isjerryxiao",
|
||||||
|
"shell-version": [
|
||||||
|
"45"
|
||||||
|
],
|
||||||
|
"version": 1,
|
||||||
|
"url": "https://git.jerryxiao.com/Jerry/gnome-shell-extension-spinner"
|
||||||
|
}
|
Loading…
Reference in a new issue