fix(ags): revert async imports to work with latest
All checks were successful
Discord / discord commits (push) Has been skipped
All checks were successful
Discord / discord commits (push) Has been skipped
This commit is contained in:
parent
c688707d49
commit
ef23df4bb2
10 changed files with 373 additions and 360 deletions
|
@ -2,8 +2,23 @@
|
|||
// TODO: quick-settings
|
||||
// TODO: music player stuff
|
||||
// TODO: on-screen-keyboard
|
||||
// TODO: see if I can bundle each config separately with nix
|
||||
|
||||
import GLib from 'gi://GLib';
|
||||
import { programArgs } from 'system';
|
||||
|
||||
import binto from './configurations/binto';
|
||||
import wim from './configurations/wim';
|
||||
|
||||
import greeter from './configurations/greeter';
|
||||
import lock from './configurations/lock';
|
||||
|
||||
|
||||
(await import(`./configurations/${GLib.getenv('CONF')}.ts`)).default();
|
||||
switch (programArgs[0]) {
|
||||
case 'binto': binto(); break;
|
||||
|
||||
case 'wim': wim(); break;
|
||||
|
||||
case 'greeter': greeter(); break;
|
||||
|
||||
case 'lock': lock(); break;
|
||||
}
|
||||
|
|
|
@ -1,25 +1,25 @@
|
|||
export default async() => {
|
||||
const { execAsync } = await import('astal');
|
||||
const { App } = await import('astal/gtk3');
|
||||
import { execAsync } from 'astal';
|
||||
import { App } from 'astal/gtk3';
|
||||
|
||||
const style = (await import('../style/main.scss')).default;
|
||||
import style from '../style/main.scss';
|
||||
|
||||
const AppLauncher = (await import('../widgets/applauncher/main')).default;
|
||||
const Bar = (await import('../widgets/bar/binto')).default;
|
||||
const BgLayer = (await import('../widgets/bg-layer/main')).default;
|
||||
const Calendar = (await import('../widgets/date/binto')).default;
|
||||
const Clipboard = (await import('../widgets/clipboard/main')).default;
|
||||
const { NotifPopups, NotifCenter } = await import('../widgets/notifs/binto');
|
||||
const OSD = (await import('../widgets/osd/main')).default;
|
||||
const PowerMenu = (await import('../widgets/powermenu/main')).default;
|
||||
const Screenshot = (await import('../widgets/screenshot/main')).default;
|
||||
import AppLauncher from '../widgets/applauncher/main';
|
||||
import Bar from '../widgets/bar/binto';
|
||||
import BgLayer from '../widgets/bg-layer/main';
|
||||
import Calendar from '../widgets/date/binto';
|
||||
import Clipboard from '../widgets/clipboard/main';
|
||||
import { NotifPopups, NotifCenter } from '../widgets/notifs/binto';
|
||||
import OSD from '../widgets/osd/main';
|
||||
import PowerMenu from '../widgets/powermenu/main';
|
||||
import Screenshot from '../widgets/screenshot/main';
|
||||
|
||||
const { closeAll, perMonitor } = await import('../lib');
|
||||
const Brightness = (await import('../services/brightness')).default;
|
||||
const GSR = (await import('../services/gpu-screen-recorder')).default;
|
||||
const MonitorClicks = (await import('../services/monitor-clicks')).default;
|
||||
import { closeAll, perMonitor } from '../lib';
|
||||
import Brightness from '../services/brightness';
|
||||
import GSR from '../services/gpu-screen-recorder';
|
||||
import MonitorClicks from '../services/monitor-clicks';
|
||||
|
||||
|
||||
export default () => {
|
||||
App.start({
|
||||
css: style,
|
||||
|
||||
|
@ -61,9 +61,8 @@ export default async() => {
|
|||
PowerMenu();
|
||||
Screenshot();
|
||||
|
||||
Brightness.initService({
|
||||
caps: 'input2::capslock',
|
||||
});
|
||||
Brightness.initService({ caps: 'input2::capslock' });
|
||||
GSR.initService();
|
||||
new MonitorClicks();
|
||||
},
|
||||
});
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
export default async() => {
|
||||
const { execAsync } = await import('astal');
|
||||
const { App } = await import('astal/gtk3');
|
||||
import { execAsync } from 'astal';
|
||||
import { App } from 'astal/gtk3';
|
||||
|
||||
const Greeter = (await import('../widgets/greeter/main')).default;
|
||||
import Greeter from '../widgets/greeter/main';
|
||||
|
||||
const style = (await import('../style/greeter.scss')).default;
|
||||
import style from '../style/greeter.scss';
|
||||
|
||||
|
||||
export default () => {
|
||||
App.start({
|
||||
css: style,
|
||||
instanceName: 'greeter',
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
export default async() => {
|
||||
const { App } = await import('astal/gtk3');
|
||||
import { App } from 'astal/gtk3';
|
||||
|
||||
const Lockscreen = (await import('../widgets/lockscreen/main')).default;
|
||||
import Lockscreen from '../widgets/lockscreen/main';
|
||||
|
||||
const style = (await import('../style/lock.scss')).default;
|
||||
import style from '../style/lock.scss';
|
||||
|
||||
|
||||
export default () => {
|
||||
App.start({
|
||||
css: style,
|
||||
instanceName: 'lock',
|
||||
|
|
|
@ -1,26 +1,26 @@
|
|||
export default async() => {
|
||||
const { execAsync } = await import('astal');
|
||||
const { App } = await import('astal/gtk3');
|
||||
import { execAsync } from 'astal';
|
||||
import { App } from 'astal/gtk3';
|
||||
|
||||
const style = (await import('../style/main.scss')).default;
|
||||
import style from '../style/main.scss';
|
||||
|
||||
const AppLauncher = (await import('../widgets/applauncher/main')).default;
|
||||
const Bar = (await import('../widgets/bar/wim')).default;
|
||||
const BgLayer = (await import('../widgets/bg-layer/main')).default;
|
||||
const Calendar = (await import('../widgets/date/wim')).default;
|
||||
const Clipboard = (await import('../widgets/clipboard/main')).default;
|
||||
const Corners = (await import('../widgets/corners/main')).default;
|
||||
const IconBrowser = (await import('../widgets/icon-browser/main')).default;
|
||||
const { NotifPopups, NotifCenter } = await import('../widgets/notifs/wim');
|
||||
const OSD = (await import('../widgets/osd/main')).default;
|
||||
const PowerMenu = (await import('../widgets/powermenu/main')).default;
|
||||
const Screenshot = (await import('../widgets/screenshot/main')).default;
|
||||
import AppLauncher from '../widgets/applauncher/main';
|
||||
import Bar from '../widgets/bar/wim';
|
||||
import BgLayer from '../widgets/bg-layer/main';
|
||||
import Calendar from '../widgets/date/wim';
|
||||
import Clipboard from '../widgets/clipboard/main';
|
||||
import Corners from '../widgets/corners/main';
|
||||
import IconBrowser from '../widgets/icon-browser/main';
|
||||
import { NotifPopups, NotifCenter } from '../widgets/notifs/wim';
|
||||
import OSD from '../widgets/osd/main';
|
||||
import PowerMenu from '../widgets/powermenu/main';
|
||||
import Screenshot from '../widgets/screenshot/main';
|
||||
|
||||
const { closeAll, perMonitor } = await import('../lib');
|
||||
const Brightness = (await import('../services/brightness')).default;
|
||||
const MonitorClicks = (await import('../services/monitor-clicks')).default;
|
||||
import { closeAll, perMonitor } from '../lib';
|
||||
import Brightness from '../services/brightness';
|
||||
import MonitorClicks from '../services/monitor-clicks';
|
||||
|
||||
|
||||
export default () => {
|
||||
App.start({
|
||||
css: style,
|
||||
|
||||
|
|
|
@ -75,9 +75,8 @@ const notifySend = ({
|
|||
class GSR extends GObject.Object {
|
||||
private _lastNotifID: number | undefined;
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
|
||||
public initService() {
|
||||
try {
|
||||
subprocess(
|
||||
['gsr-start'],
|
||||
(path) => {
|
||||
|
@ -95,6 +94,10 @@ class GSR extends GObject.Object {
|
|||
() => { /**/ },
|
||||
);
|
||||
}
|
||||
catch (_e) {
|
||||
console.error('Missing dependency for gpu-screen-recorder');
|
||||
}
|
||||
}
|
||||
|
||||
public saveReplay() {
|
||||
execAsync(['gpu-save-replay'])
|
||||
|
|
|
@ -4,17 +4,18 @@ import { App, Astal, Gtk, Widget } from 'astal/gtk3';
|
|||
import AstalGreet from 'gi://AstalGreet';
|
||||
|
||||
|
||||
const DEFAULT_NAME = 'matt';
|
||||
const PARSED_INDEX = {
|
||||
export default () => {
|
||||
const DEFAULT_NAME = 'matt';
|
||||
const PARSED_INDEX = {
|
||||
name: 0,
|
||||
uid: 2,
|
||||
gid: 3,
|
||||
desc: 4,
|
||||
home: 5,
|
||||
shell: 6,
|
||||
};
|
||||
};
|
||||
|
||||
const parsePasswd = (fileContent: string) => {
|
||||
const parsePasswd = (fileContent: string) => {
|
||||
const splitUsers = fileContent.split('\n');
|
||||
const parsedUsers = splitUsers.map((u) => {
|
||||
const user = u.split(':');
|
||||
|
@ -35,21 +36,21 @@ const parsePasswd = (fileContent: string) => {
|
|||
!u.name.includes('nixbld') &&
|
||||
u.name !== 'nobody';
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
const users = parsePasswd(readFile('/etc/passwd'));
|
||||
const users = parsePasswd(readFile('/etc/passwd'));
|
||||
|
||||
const dropdown = new Gtk.ComboBoxText();
|
||||
const dropdown = new Gtk.ComboBoxText();
|
||||
|
||||
dropdown.show_all();
|
||||
dropdown.show_all();
|
||||
|
||||
users.forEach((u) => {
|
||||
users.forEach((u) => {
|
||||
dropdown.append(null, u.name);
|
||||
});
|
||||
});
|
||||
|
||||
const response = <label /> as Widget.Label;
|
||||
const response = <label /> as Widget.Label;
|
||||
|
||||
const password = (
|
||||
const password = (
|
||||
<entry
|
||||
placeholderText="Password"
|
||||
visibility={false}
|
||||
|
@ -75,10 +76,9 @@ const password = (
|
|||
);
|
||||
}}
|
||||
/>
|
||||
);
|
||||
);
|
||||
|
||||
|
||||
export default () => (
|
||||
return (
|
||||
<window
|
||||
name="greeter"
|
||||
keymode={Astal.Keymode.ON_DEMAND}
|
||||
|
@ -116,4 +116,5 @@ export default () => (
|
|||
{response}
|
||||
</box>
|
||||
</window>
|
||||
);
|
||||
);
|
||||
};
|
||||
|
|
|
@ -21,15 +21,16 @@ class BlurredBox extends Widget.Box {
|
|||
}
|
||||
|
||||
|
||||
const windows = new Map<Gdk.Monitor, Gtk.Window>();
|
||||
const blurBGs: BlurredBox[] = [];
|
||||
export default () => {
|
||||
const windows = new Map<Gdk.Monitor, Gtk.Window>();
|
||||
const blurBGs: BlurredBox[] = [];
|
||||
|
||||
const transition_duration = 1000;
|
||||
const WINDOW_MARGINS = -2;
|
||||
const ENTRY_SPACING = 20;
|
||||
const CLOCK_SPACING = 60;
|
||||
const transition_duration = 1000;
|
||||
const WINDOW_MARGINS = -2;
|
||||
const ENTRY_SPACING = 20;
|
||||
const CLOCK_SPACING = 60;
|
||||
|
||||
const bgCSS = ({ w = 1, h = 1 } = {}) => `
|
||||
const bgCSS = ({ w = 1, h = 1 } = {}) => `
|
||||
border: 2px solid rgba(189, 147, 249, 0.8);
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
min-height: ${h}px;
|
||||
|
@ -38,9 +39,9 @@ const bgCSS = ({ w = 1, h = 1 } = {}) => `
|
|||
min-width ${transition_duration / 2}ms;
|
||||
`;
|
||||
|
||||
const lock = Lock.prepare_lock();
|
||||
const lock = Lock.prepare_lock();
|
||||
|
||||
const unlock = () => {
|
||||
const unlock = () => {
|
||||
blurBGs.forEach((b) => {
|
||||
b.css = bgCSS({
|
||||
w: b.geometry.w,
|
||||
|
@ -59,9 +60,9 @@ const unlock = () => {
|
|||
Gdk.Display.get_default()?.sync();
|
||||
App.quit();
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
const Clock = () => {
|
||||
const Clock = () => {
|
||||
const time = Variable<string>('').poll(1000, () => {
|
||||
return (new Date().toLocaleString([], {
|
||||
hour: 'numeric',
|
||||
|
@ -78,9 +79,9 @@ const Clock = () => {
|
|||
label={bind(time)}
|
||||
/>
|
||||
);
|
||||
};
|
||||
};
|
||||
|
||||
const PasswordPrompt = (monitor: Gdk.Monitor, visible: boolean) => {
|
||||
const PasswordPrompt = (monitor: Gdk.Monitor, visible: boolean) => {
|
||||
const rev = new BlurredBox({ css: bgCSS() });
|
||||
|
||||
idle(() => {
|
||||
|
@ -183,17 +184,17 @@ const PasswordPrompt = (monitor: Gdk.Monitor, visible: boolean) => {
|
|||
) :
|
||||
<box />,
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
const createWindow = (monitor: Gdk.Monitor) => {
|
||||
const createWindow = (monitor: Gdk.Monitor) => {
|
||||
const hyprDesc = get_hyprland_monitor_desc(monitor);
|
||||
const entryVisible = Vars.mainMonitor === hyprDesc || Vars.dupeLockscreen;
|
||||
const win = PasswordPrompt(monitor, entryVisible);
|
||||
|
||||
windows.set(monitor, win);
|
||||
};
|
||||
};
|
||||
|
||||
const lock_screen = () => {
|
||||
const lock_screen = () => {
|
||||
const display = Gdk.Display.get_default();
|
||||
|
||||
for (let m = 0; m < (display?.get_n_monitors() ?? 0); m++) {
|
||||
|
@ -214,17 +215,17 @@ const lock_screen = () => {
|
|||
lock.new_surface(win, monitor);
|
||||
win.show();
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
const on_finished = () => {
|
||||
const on_finished = () => {
|
||||
lock.destroy();
|
||||
Gdk.Display.get_default()?.sync();
|
||||
App.quit();
|
||||
};
|
||||
};
|
||||
|
||||
lock.connect('finished', on_finished);
|
||||
lock.connect('finished', on_finished);
|
||||
|
||||
if (Vars.hasFprintd) {
|
||||
if (Vars.hasFprintd) {
|
||||
globalThis.authFinger = () => AstalAuth.Pam.authenticate('', (_, task) => {
|
||||
try {
|
||||
AstalAuth.Pam.authenticate_finish(task);
|
||||
|
@ -235,8 +236,6 @@ if (Vars.hasFprintd) {
|
|||
}
|
||||
});
|
||||
globalThis.authFinger();
|
||||
}
|
||||
|
||||
export default () => {
|
||||
}
|
||||
lock_screen();
|
||||
};
|
||||
|
|
|
@ -26,8 +26,10 @@ in {
|
|||
"cava"
|
||||
"powerprofiles"
|
||||
"river"
|
||||
"docs" # not a lib
|
||||
"gjs" # not a lib
|
||||
|
||||
# Not libraries
|
||||
"docs"
|
||||
"gjs"
|
||||
]
|
||||
)
|
||||
++ [gtk-session-lock.packages.${pkgs.system}.default];
|
||||
|
@ -36,10 +38,8 @@ in {
|
|||
name = "lock";
|
||||
runtimeInputs = [cfg.package];
|
||||
text = ''
|
||||
export CONF="lock"
|
||||
|
||||
if [ "$#" == 0 ]; then
|
||||
exec ags run ~/${cfg.configDir}
|
||||
exec ags run ~/${cfg.configDir} -a lock
|
||||
else
|
||||
exec ags "$@" -i lock
|
||||
fi
|
||||
|
@ -54,10 +54,8 @@ in {
|
|||
name = "ags";
|
||||
runtimeInputs = [cfg.package];
|
||||
text = ''
|
||||
export CONF="${hostName}"
|
||||
|
||||
if [ "$#" == 0 ]; then
|
||||
exec ags run ~/${cfg.configDir}
|
||||
exec ags run ~/${cfg.configDir} -a ${hostName}
|
||||
else
|
||||
exec ags "$@"
|
||||
fi
|
||||
|
@ -67,8 +65,7 @@ in {
|
|||
name = "agsConf";
|
||||
runtimeInputs = [cfg.package];
|
||||
text = ''
|
||||
export CONF="$1"
|
||||
exec ${cfg.package}/bin/ags run ~/${cfg.configDir}
|
||||
exec ags run ~/${cfg.configDir} -a "$1"
|
||||
'';
|
||||
})
|
||||
]
|
||||
|
|
|
@ -54,8 +54,7 @@ self: {
|
|||
];
|
||||
|
||||
text = ''
|
||||
export CONF="greeter"
|
||||
exec ags run ${agsConfig}
|
||||
exec ags run ${agsConfig} -a greeter
|
||||
'';
|
||||
})
|
||||
];
|
||||
|
|
Loading…
Reference in a new issue