nixos-configs/nixosModules/ags/config/configurations/binto.ts

70 lines
2.3 KiB
TypeScript
Raw Normal View History

import { execAsync } from 'astal';
import { App } from 'astal/gtk3';
2024-11-12 15:08:13 -05:00
import style from '../style/main.scss';
2024-11-12 15:08:13 -05:00
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';
2024-11-25 12:18:46 -05:00
import OnScreenDisplay from '../widgets/on-screen-display/main';
import PowerMenu from '../widgets/powermenu/main';
import Screenshot from '../widgets/screenshot/main';
2024-11-12 15:08:13 -05:00
import { closeAll, perMonitor } from '../lib';
import Brightness from '../services/brightness';
2024-11-25 12:18:46 -05:00
import GpuScreenRecorder from '../services/gpu-screen-recorder';
import MonitorClicks from '../services/monitor-clicks';
2024-11-12 15:08:13 -05:00
export default () => {
2024-11-12 15:08:13 -05:00
App.start({
css: style,
requestHandler(request, respond) {
if (request.startsWith('open')) {
App.get_window(request.replace('open ', ''))?.set_visible(true);
respond('window opened');
}
else if (request.startsWith('closeAll')) {
closeAll();
respond('closed all windows');
}
else if (request.startsWith('fetchCapsState')) {
Brightness.get_default().fetchCapsState();
2024-11-12 15:08:13 -05:00
respond('fetched caps_lock state');
}
else if (request.startsWith('popup')) {
popup_osd(request.replace('popup ', ''));
respond('osd popped up');
}
else if (request.startsWith('save-replay')) {
2024-11-25 12:18:46 -05:00
GpuScreenRecorder.get_default().saveReplay();
2024-11-12 15:08:13 -05:00
respond('saving replay');
}
},
main: () => {
execAsync('hyprpaper').catch(() => { /**/ });
perMonitor((monitor) => BgLayer(monitor, false));
2024-11-12 15:08:13 -05:00
AppLauncher();
Bar();
Calendar();
Clipboard();
NotifPopups();
NotifCenter();
2024-11-25 12:18:46 -05:00
OnScreenDisplay();
2024-11-12 15:08:13 -05:00
PowerMenu();
Screenshot();
Brightness.get_default({ caps: 'input2::capslock' });
2024-11-25 12:18:46 -05:00
GpuScreenRecorder.get_default();
MonitorClicks.get_default();
2024-11-12 15:08:13 -05:00
},
});
};