feat(ags): add swipe gesture to open quick-settings
This commit is contained in:
parent
c66909efed
commit
7d45c18843
2 changed files with 73 additions and 38 deletions
32
config/ags/js/bar/gesture.js
Normal file
32
config/ags/js/bar/gesture.js
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
const { Window, CenterBox, EventBox, Button } = ags.Widget;
|
||||||
|
const { openWindow } = ags.App;
|
||||||
|
const { Gtk, Gdk } = imports.gi;
|
||||||
|
const display = Gdk.Display.get_default();
|
||||||
|
|
||||||
|
export const Gesture = ({
|
||||||
|
child,
|
||||||
|
...params
|
||||||
|
}) => {
|
||||||
|
let w = EventBox({
|
||||||
|
...params,
|
||||||
|
});
|
||||||
|
|
||||||
|
let gesture = Gtk.GestureSwipe.new(w);
|
||||||
|
|
||||||
|
w.child = CenterBox({
|
||||||
|
children: [
|
||||||
|
child,
|
||||||
|
],
|
||||||
|
connections: [
|
||||||
|
|
||||||
|
[gesture, box => {
|
||||||
|
const velocity = gesture.get_velocity()[1];
|
||||||
|
if (velocity < -50)
|
||||||
|
openWindow('quick-settings');
|
||||||
|
}, 'update'],
|
||||||
|
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
return w;
|
||||||
|
};
|
|
@ -12,6 +12,7 @@ import { SysTray } from './systray.js';
|
||||||
import { BatteryIndicator } from './battery.js';
|
import { BatteryIndicator } from './battery.js';
|
||||||
import { Brightness } from './brightness.js';
|
import { Brightness } from './brightness.js';
|
||||||
import { AudioIndicator } from './audio.js';
|
import { AudioIndicator } from './audio.js';
|
||||||
|
import { Gesture } from './gesture.js';
|
||||||
|
|
||||||
export const Bar = Window({
|
export const Bar = Window({
|
||||||
name: 'bar',
|
name: 'bar',
|
||||||
|
@ -19,60 +20,62 @@ export const Bar = Window({
|
||||||
anchor: 'top left right',
|
anchor: 'top left right',
|
||||||
exclusive: true,
|
exclusive: true,
|
||||||
|
|
||||||
child: CenterBox({
|
child: Gesture({
|
||||||
className: 'transparent',
|
child: CenterBox({
|
||||||
halign: 'fill',
|
className: 'transparent',
|
||||||
style: 'margin: 5px',
|
halign: 'fill',
|
||||||
vertical: false,
|
style: 'margin: 5px',
|
||||||
|
vertical: false,
|
||||||
startWidget: Box({
|
|
||||||
halign: 'start',
|
|
||||||
children: [
|
|
||||||
|
|
||||||
OskToggle,
|
startWidget: Box({
|
||||||
|
halign: 'start',
|
||||||
Separator(12),
|
children: [
|
||||||
|
|
||||||
TabletToggle,
|
OskToggle,
|
||||||
|
|
||||||
Separator(12),
|
|
||||||
|
|
||||||
SysTray,
|
Separator(12),
|
||||||
|
|
||||||
Separator(12),
|
TabletToggle,
|
||||||
|
|
||||||
AudioIndicator,
|
Separator(12),
|
||||||
|
|
||||||
Separator(12),
|
SysTray,
|
||||||
|
|
||||||
Brightness,
|
Separator(12),
|
||||||
|
|
||||||
Separator(12),
|
AudioIndicator,
|
||||||
|
|
||||||
Workspaces,
|
Separator(12),
|
||||||
|
|
||||||
],
|
Brightness,
|
||||||
}),
|
|
||||||
|
|
||||||
centerWidget: CurrentWindow,
|
Separator(12),
|
||||||
|
|
||||||
endWidget: Box({
|
Workspaces,
|
||||||
halign: 'end',
|
|
||||||
children: [
|
|
||||||
BatteryIndicator,
|
|
||||||
|
|
||||||
Separator(12),
|
|
||||||
|
|
||||||
Clock,
|
|
||||||
|
|
||||||
Separator(12),
|
],
|
||||||
|
}),
|
||||||
|
|
||||||
NotifButton,
|
centerWidget: CurrentWindow,
|
||||||
|
|
||||||
Separator(12),
|
endWidget: Box({
|
||||||
|
halign: 'end',
|
||||||
|
children: [
|
||||||
|
BatteryIndicator,
|
||||||
|
|
||||||
QsToggle,
|
Separator(12),
|
||||||
],
|
|
||||||
|
Clock,
|
||||||
|
|
||||||
|
Separator(12),
|
||||||
|
|
||||||
|
NotifButton,
|
||||||
|
|
||||||
|
Separator(12),
|
||||||
|
|
||||||
|
QsToggle,
|
||||||
|
],
|
||||||
|
}),
|
||||||
}),
|
}),
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue