updated ags config to make worky again
This commit is contained in:
parent
0dfd9c5694
commit
fa24db296c
|
@ -49,11 +49,6 @@
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
grub2-themes = {
|
|
||||||
url = "github:vinceliuice/grub2-themes";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
nixd = {
|
nixd = {
|
||||||
url = "github:nix-community/nixd";
|
url = "github:nix-community/nixd";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
@ -125,7 +120,6 @@
|
||||||
useGlobalPkgs = true;
|
useGlobalPkgs = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
inputs.grub2-themes.nixosModules.default
|
|
||||||
inputs.chaotic-nyx.nixosModules.default
|
inputs.chaotic-nyx.nixosModules.default
|
||||||
inputs.hyprland.nixosModules.default
|
inputs.hyprland.nixosModules.default
|
||||||
];
|
];
|
||||||
|
|
10
overlay.nix
10
overlay.nix
|
@ -10,16 +10,6 @@
|
||||||
fonts = ["JetBrainsMono"];
|
fonts = ["JetBrainsMono"];
|
||||||
};
|
};
|
||||||
|
|
||||||
openmw = prev.openmw.overrideAttrs (old: {
|
|
||||||
version = "9999";
|
|
||||||
src = inputs.openmw-git;
|
|
||||||
|
|
||||||
buildInputs = old.buildInputs ++ [prev.libyamlcpp prev.luajit];
|
|
||||||
|
|
||||||
patches = [];
|
|
||||||
dontWrapQtApps = false;
|
|
||||||
});
|
|
||||||
|
|
||||||
steam = prev.steam.override {
|
steam = prev.steam.override {
|
||||||
extraPkgs = prev: [
|
extraPkgs = prev: [
|
||||||
prev.libkrb5
|
prev.libkrb5
|
||||||
|
|
|
@ -24,26 +24,21 @@
|
||||||
"net.ifnames=0"
|
"net.ifnames=0"
|
||||||
"amd_pstate.shared_mem=1"
|
"amd_pstate.shared_mem=1"
|
||||||
"amd_pstate=active"
|
"amd_pstate=active"
|
||||||
|
# "video=DP-1:2560x1440@144"
|
||||||
|
# "video=DP-2:2560x1440@144"
|
||||||
];
|
];
|
||||||
|
|
||||||
loader = {
|
loader = {
|
||||||
efi = {
|
efi = {
|
||||||
canTouchEfiVariables = true;
|
canTouchEfiVariables = true;
|
||||||
efiSysMountPoint = "/boot/efi";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
grub = {
|
systemd-boot = {
|
||||||
enable = true;
|
enable = true;
|
||||||
useOSProber = false;
|
configurationLimit = 5;
|
||||||
efiSupport = true;
|
consoleMode = "max";
|
||||||
device = "nodev";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
grub2-theme = {
|
|
||||||
enable = true;
|
|
||||||
theme = "stylish";
|
|
||||||
screen = "2k";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -51,7 +46,7 @@
|
||||||
|
|
||||||
networking = {
|
networking = {
|
||||||
hostName = "terra"; # Define your hostname.
|
hostName = "terra"; # Define your hostname.
|
||||||
networkmanager.enable = true;
|
dhcpcd.enable = true;
|
||||||
firewall.enable = false;
|
firewall.enable = false;
|
||||||
extraHosts = ''
|
extraHosts = ''
|
||||||
192.168.0.18 steam.deck
|
192.168.0.18 steam.deck
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = ["nvme"];
|
boot.initrd.availableKernelModules = ["nvme"];
|
||||||
boot.initrd.kernelModules = [];
|
boot.initrd.kernelModules = [ "amdgpu" ];
|
||||||
boot.kernelModules = ["kvm-amd"];
|
boot.kernelModules = ["kvm-amd"];
|
||||||
boot.extraModulePackages = [];
|
boot.extraModulePackages = [];
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@
|
||||||
fsType = "xfs";
|
fsType = "xfs";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/boot/efi" = {
|
fileSystems."/boot" = {
|
||||||
device = "/dev/disk/by-uuid/BE4D-EFA9";
|
device = "/dev/disk/by-uuid/BE4D-EFA9";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
};
|
};
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
plugins = "ftintitle fetchart embedart chroma edit replaygain badfiles fish";
|
plugins = "duplicates ftintitle fetchart embedart chroma edit replaygain badfiles fish";
|
||||||
|
|
||||||
directory = "/mnt/hdd/Music";
|
directory = "/mnt/hdd/Music";
|
||||||
library = "/mnt/hdd/Music/library.db";
|
library = "/mnt/hdd/Music/library.db";
|
||||||
|
|
|
@ -57,7 +57,7 @@
|
||||||
e = "nvim";
|
e = "nvim";
|
||||||
ls = "${pkgs.eza}/bin/eza --icons";
|
ls = "${pkgs.eza}/bin/eza --icons";
|
||||||
ll = "${pkgs.eza}/bin/eza --icons -l";
|
ll = "${pkgs.eza}/bin/eza --icons -l";
|
||||||
nf = "${pkgs.neofetch}/bin/neofetch";
|
nf = "${pkgs.fastfetch}/bin/fastfetch";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,16 +1,19 @@
|
||||||
import Panel from './js/panel/panel.js';
|
import App from 'resource:///com/github/Aylur/ags/app.js'
|
||||||
import VolumeOSD from './js/volume_osd/volosd.js';
|
import { exec } from 'resource://com/github/Aylur/ags/utils.js'
|
||||||
|
|
||||||
const scss = ags.App.configDir + '/style.scss';
|
import Panel from './js/panel/panel.js';
|
||||||
|
import {
|
||||||
|
forMonitors
|
||||||
|
}
|
||||||
|
from './js/utils.js';
|
||||||
|
|
||||||
|
const scss = App.configDir + '/style.scss';
|
||||||
const css = '/tmp/style-ags.css';
|
const css = '/tmp/style-ags.css';
|
||||||
ags.Utils.exec(`sassc ${scss} ${css}`);
|
exec(`sassc ${scss} ${css}`);
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
style: css,
|
style: css,
|
||||||
windows: [
|
windows: [
|
||||||
Panel(0),
|
forMonitors(Panel),
|
||||||
Panel(1),
|
].flat(2),
|
||||||
|
|
||||||
// VolumeOSD(),
|
|
||||||
],
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
import { Box, CenterBox, Window } from 'resource:///com/github/Aylur/ags/widget.js';
|
||||||
|
|
||||||
import Workspaces from './widgets/workspaces.js';
|
import Workspaces from './widgets/workspaces.js';
|
||||||
import WindowTitle from './widgets/windowTitle.js';
|
import WindowTitle from './widgets/windowTitle.js';
|
||||||
//
|
//
|
||||||
|
@ -7,38 +9,34 @@ import Mpris from './widgets/mpris.js'
|
||||||
import SysTray from './widgets/sysTray.js';
|
import SysTray from './widgets/sysTray.js';
|
||||||
import Clock from './widgets/clock.js';
|
import Clock from './widgets/clock.js';
|
||||||
|
|
||||||
const Left = monitor => ags.Widget.Box({
|
const Left = monitor => Box({
|
||||||
children: [
|
children: [
|
||||||
Workspaces(monitor),
|
Workspaces(monitor), WindowTitle(),
|
||||||
WindowTitle(),
|
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
const Center = () => ags.Widget.Box({
|
const Center = () => Box({
|
||||||
children: [
|
children: [
|
||||||
Volume(),
|
Volume(), Mpris('mpd')
|
||||||
Mpris('mpd')
|
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
const Right = () => ags.Widget.Box({
|
const Right = () => Box({
|
||||||
halign: 'end',
|
halign: 'end',
|
||||||
children: [
|
children: [
|
||||||
SysTray(),
|
SysTray(), Clock(),
|
||||||
Clock(),
|
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
export default monitor => ags.Widget.Window({
|
export default monitor => Window({
|
||||||
name: `bar-${monitor}`, // name has to be unique
|
name: `bar-${monitor}`,
|
||||||
|
exclusive: true,
|
||||||
className: 'bar',
|
className: 'bar',
|
||||||
monitor,
|
monitor,
|
||||||
anchor: ['top', 'left', 'right'],
|
anchor: ['top', 'left', 'right'],
|
||||||
exclusive: true,
|
child: CenterBox({
|
||||||
child: ags.Widget.CenterBox({
|
startWidget: Left(monitor),
|
||||||
startWidget: Left(`${monitor}`),
|
|
||||||
centerWidget: Center(),
|
centerWidget: Center(),
|
||||||
endWidget: Right(),
|
endWidget: Right(),
|
||||||
}),
|
}),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -1,16 +1,19 @@
|
||||||
export default () => ags.Widget.Box({
|
import { Box, Icon, Label } from 'resource:///com/github/Aylur/ags/widget.js';
|
||||||
|
import { execAsync } from 'resource:///com/github/Aylur/ags/utils.js';
|
||||||
|
|
||||||
|
export default () => Box({
|
||||||
className: 'date',
|
className: 'date',
|
||||||
children: [
|
children: [
|
||||||
ags.Widget.Icon({
|
Icon({
|
||||||
icon: 'x-office-calendar-symbolic',
|
icon: 'x-office-calendar-symbolic',
|
||||||
}),
|
}),
|
||||||
|
|
||||||
ags.Widget.Label({
|
Label({
|
||||||
connections: [
|
connections: [
|
||||||
[1000, label => ags.Utils.execAsync(['date', '+%a %d, %B %H:%M'])
|
[1000, label => execAsync(['date', '+%a %d, %B %H:%M'])
|
||||||
.then(date => label.label = ' ' + date).catch(console.error)],
|
.then(date => label.label = ' ' + date).catch(console.error)
|
||||||
|
],
|
||||||
],
|
],
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -1,45 +1,50 @@
|
||||||
export default player => ags.Widget.Button({
|
import { Box, Button, Icon, Label, Stack } from 'resource:///com/github/Aylur/ags/widget.js';
|
||||||
className: 'media',
|
import Mpris from 'resource:///com/github/Aylur/ags/service/mpris.js';
|
||||||
onPrimaryClick: () => ags.Service.Mpris.getPlayer(player)?.playPause(),
|
|
||||||
onScrollUp: () => ags.Service.Mpris.getPlayer(player)?.previous(),
|
|
||||||
onScrollDown: () => ags.Service.Mpris.getPlayer(player)?.next(),
|
|
||||||
|
|
||||||
child: ags.Widget.Box({
|
export default player => Button({
|
||||||
|
className: 'media',
|
||||||
|
onPrimaryClick: () => Mpris.getPlayer(player)?.playPause(),
|
||||||
|
onScrollUp: () => Mpris.getPlayer(player)?.previous(),
|
||||||
|
onScrollDown: () => Mpris.getPlayer(player)?.next(),
|
||||||
|
|
||||||
|
child: Box({
|
||||||
children: [
|
children: [
|
||||||
ags.Widget.Stack({
|
Stack({
|
||||||
items: [
|
items: [
|
||||||
['paused', ags.Widget.Icon('media-playback-pause-symbolic')],
|
['paused', Icon('media-playback-pause-symbolic')],
|
||||||
['playing', ags.Widget.Icon('media-playback-start-symbolic')],
|
['playing', Icon('media-playback-start-symbolic')],
|
||||||
['stopped', ags.Widget.Icon('media-playback-stop-symbolic')],
|
['stopped', Icon('media-playback-stop-symbolic')],
|
||||||
],
|
],
|
||||||
|
|
||||||
connections: [[ags.Service.Mpris, statusIcon => {
|
connections: [
|
||||||
const mpris = ags.Service.Mpris.getPlayer(player);
|
[Mpris, statusIcon => {
|
||||||
|
const mpris = Mpris.getPlayer(player);
|
||||||
|
|
||||||
switch (mpris.playBackStatus) {
|
switch (mpris.playBackStatus) {
|
||||||
case "Playing":
|
case "Playing":
|
||||||
statusIcon.shown = 'playing';
|
statusIcon.shown = 'playing';
|
||||||
break;
|
break;
|
||||||
case "Paused":
|
case "Paused":
|
||||||
statusIcon.shown = 'paused';
|
statusIcon.shown = 'paused';
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
statusIcon.shown = 'stopped';
|
statusIcon.shown = 'stopped';
|
||||||
}
|
}
|
||||||
}]],
|
}]
|
||||||
|
],
|
||||||
}),
|
}),
|
||||||
|
|
||||||
ags.Widget.Label({
|
Label({
|
||||||
connections: [[ags.Service.Mpris, label => {
|
connections: [
|
||||||
const mpris = ags.Service.Mpris.getPlayer(player);
|
[Mpris, label => {
|
||||||
if (!mpris || mpris.playBackStatus == "Stopped")
|
const mpris = Mpris.getPlayer(player);
|
||||||
label.label = ' Stopped';
|
if (!mpris || mpris.playBackStatus == "Stopped")
|
||||||
else
|
label.label = ' Stopped';
|
||||||
label.label = ` ${mpris.trackArtists.join(', ')} - ${mpris.trackTitle}`;
|
else
|
||||||
}]],
|
label.label = ` ${mpris.trackArtists.join(', ')} - ${mpris.trackTitle}`;
|
||||||
|
}]
|
||||||
|
],
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
}),
|
}),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,17 +1,22 @@
|
||||||
export default () => ags.Widget.Box({
|
import { Box, Button, Icon } from 'resource:///com/github/Aylur/ags/widget.js';
|
||||||
|
import SystemTray from 'resource:///com/github/Aylur/ags/service/systemtray.js';
|
||||||
|
|
||||||
|
export default () => Box({
|
||||||
className: 'tray',
|
className: 'tray',
|
||||||
connections: [[ags.Service.SystemTray, box => {
|
connections: [
|
||||||
box.children = ags.Service.SystemTray.items.map(item => ags.Widget.Button({
|
[SystemTray, box => {
|
||||||
className: 'tray-icon',
|
box.children = SystemTray.items.map(item => Button({
|
||||||
child: ags.Widget.Icon(),
|
className: 'tray-icon',
|
||||||
onPrimaryClick: (_, event) => item.activate(event),
|
child: Icon(),
|
||||||
onSecondaryClick: (_, event) => item.openMenu(event),
|
onPrimaryClick: (_, event) => item.activate(event),
|
||||||
connections: [[item, button => {
|
onSecondaryClick: (_, event) => item.openMenu(event),
|
||||||
button.child.icon = item.icon;
|
connections: [
|
||||||
button.tooltipMarkup = item.tooltipMarkup;
|
[item, button => {
|
||||||
}]],
|
button.child.icon = item.icon;
|
||||||
}));
|
button.tooltipMarkup = item.tooltipMarkup;
|
||||||
}]],
|
}]
|
||||||
|
],
|
||||||
|
}));
|
||||||
|
}]
|
||||||
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,44 +1,50 @@
|
||||||
export default () => ags.Widget.Button({
|
import { Box, Button, Icon, Label, Stack } from 'resource:///com/github/Aylur/ags/widget.js';
|
||||||
|
import Audio from 'resource:///com/github/Aylur/ags/service/audio.js';
|
||||||
|
|
||||||
|
export default () => Button({
|
||||||
className: 'volume',
|
className: 'volume',
|
||||||
onScrollUp: () => ags.Utils.execAsync('pamixer -i 10'),
|
onScrollUp: () => execAsync('pamixer -i 10'),
|
||||||
onScrollDown: () => ags.Utils.execAsync('pamixer -d 10'),
|
onScrollDown: () => execAsync('pamixer -d 10'),
|
||||||
child: ags.Widget.Box({
|
|
||||||
|
child: Box({
|
||||||
children: [
|
children: [
|
||||||
ags.Widget.Stack({
|
Stack({
|
||||||
items: [
|
items: [
|
||||||
// tuples of [string, Widget]
|
// tuples of [string, Widget]
|
||||||
['101', ags.Widget.Icon('audio-volume-overamplified-symbolic')],
|
['101', Icon('audio-volume-overamplified-symbolic')],
|
||||||
['67', ags.Widget.Icon('audio-volume-high-symbolic')],
|
['67', Icon('audio-volume-high-symbolic')],
|
||||||
['34', ags.Widget.Icon('audio-volume-medium-symbolic')],
|
['34', Icon('audio-volume-medium-symbolic')],
|
||||||
['1', ags.Widget.Icon('audio-volume-low-symbolic')],
|
['1', Icon('audio-volume-low-symbolic')],
|
||||||
['0', ags.Widget.Icon('audio-volume-muted-symbolic')],
|
['0', Icon('audio-volume-muted-symbolic')],
|
||||||
],
|
],
|
||||||
connections: [[ags.Service.Audio, stack => {
|
connections: [
|
||||||
if (!ags.Service.Audio.speaker)
|
[Audio, stack => {
|
||||||
return;
|
if (!Audio.speaker)
|
||||||
|
return;
|
||||||
|
|
||||||
if (ags.Service.Audio.speaker.isMuted) {
|
if (Audio.speaker.isMuted) {
|
||||||
stack.shown = '0';
|
stack.shown = '0';
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const show = [101, 67, 34, 1, 0].find(
|
const show = [101, 67, 34, 1, 0].find(
|
||||||
threshold => threshold <= ags.Service.Audio.speaker.volume * 100);
|
threshold => threshold <= Audio.speaker.volume * 100);
|
||||||
|
|
||||||
stack.shown = `${show}`;
|
stack.shown = `${show}`;
|
||||||
}, 'speaker-changed']],
|
}, 'speaker-changed']
|
||||||
|
],
|
||||||
}),
|
}),
|
||||||
|
|
||||||
ags.Widget.Label({
|
Label({
|
||||||
connections: [[ags.Service.Audio, label => {
|
connections: [
|
||||||
if (!ags.Service.Audio.speaker)
|
[Audio, label => {
|
||||||
return;
|
if (!Audio.speaker)
|
||||||
|
return;
|
||||||
|
|
||||||
label.label = ` ${Math.ceil((ags.Service.Audio.speaker.volume * 100) / 10) * 10}%`; // round up to nearest 10
|
label.label = ` ${Math.floor((Audio.speaker.volume * 100) / 10) * 10}%`; // round down to nearest 10
|
||||||
}, 'speaker-changed' ]],
|
}, 'speaker-changed']
|
||||||
|
],
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
export default () => ags.Widget.Label({
|
import { Label } from 'resource:///com/github/Aylur/ags/widget.js';
|
||||||
connections: [[ags.Service.Hyprland, label => {
|
import Hyprland from 'resource:///com/github/Aylur/ags/service/hyprland.js';
|
||||||
label.label = ags.Service.Hyprland.active.client.title || '';
|
|
||||||
label.toggleClassName('windowTitle', label.label);
|
export default () => Label({
|
||||||
}]],
|
connections: [
|
||||||
|
[Hyprland, label => {
|
||||||
|
label.label = Hyprland.active.client.title || '';
|
||||||
|
label.toggleClassName('windowTitle', label.label);
|
||||||
|
}]
|
||||||
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,24 +1,32 @@
|
||||||
export default monitor => ags.Widget.Box({
|
import { Box, Button, Label } from 'resource:///com/github/Aylur/ags/widget.js';
|
||||||
|
import { execAsync } from 'resource:///com/github/Aylur/ags/utils.js';
|
||||||
|
import Hyprland from 'resource:///com/github/Aylur/ags/service/hyprland.js';
|
||||||
|
|
||||||
|
export default monitor => Box({
|
||||||
className: 'workspaces',
|
className: 'workspaces',
|
||||||
connections: [[ags.Service.Hyprland, box => {
|
connections: [
|
||||||
if (monitor == 0) {
|
[Hyprland, box => {
|
||||||
box.children = [1,2,3].map(i => ags.Widget.Button({
|
if (monitor == 0) {
|
||||||
onClicked: () => ags.Utils.execAsync(`hyprctl dispatch workspace ${i}`),
|
box.children = [1, 2, 3].map(i => Button({
|
||||||
onScrollDown: () => ags.Utils.execAsync(`hyprctl dispatch workspace +1`),
|
onClicked: () => execAsync(`hyprctl dispatch workspace ${i}`),
|
||||||
onScrollUp: () => ags.Utils.execAsync(`hyprctl dispatch workspace -1`),
|
onScrollDown: () => execAsync(`hyprctl dispatch workspace +1`),
|
||||||
child: ags.Widget.Label({ label: `${i}` }),
|
onScrollUp: () => execAsync(`hyprctl dispatch workspace -1`),
|
||||||
className: ags.Service.Hyprland.active.workspace.id == i ? 'focused' : '',
|
child: Label({
|
||||||
}));
|
label: `${i}`
|
||||||
} else if (monitor == 1) {
|
}),
|
||||||
box.children = [4,5,6].map(i => ags.Widget.Button({
|
className: Hyprland.active.workspace.id == i ? 'focused' : '',
|
||||||
onClicked: () => ags.Utils.execAsync(`hyprctl dispatch workspace ${i}`),
|
}));
|
||||||
onScrollDown: () => ags.Utils.execAsync(`hyprctl dispatch workspace +1`),
|
} else if (monitor == 1) {
|
||||||
onScrollUp: () => ags.Utils.execAsync(`hyprctl dispatch workspace -1`),
|
box.children = [4, 5, 6].map(i => Button({
|
||||||
child: ags.Widget.Label({ label: `${i}` }),
|
onClicked: () => execAsync(`hyprctl dispatch workspace ${i}`),
|
||||||
className: ags.Service.Hyprland.active.workspace.id == i ? 'focused' : '',
|
onScrollDown: () => execAsync(`hyprctl dispatch workspace +1`),
|
||||||
}));
|
onScrollUp: () => execAsync(`hyprctl dispatch workspace -1`),
|
||||||
}
|
child: Label({
|
||||||
}]],
|
label: `${i}`
|
||||||
|
}),
|
||||||
|
className: Hyprland.active.workspace.id == i ? 'focused' : '',
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
}]
|
||||||
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
import { exec } from 'resource:///com/github/Aylur/ags/utils.js'
|
||||||
|
|
||||||
|
export function forMonitors(widget) {
|
||||||
|
const ws = JSON.parse(exec('hyprctl -j monitors'));
|
||||||
|
return ws.map(mon => widget(mon.id));
|
||||||
|
}
|
|
@ -1,10 +1,15 @@
|
||||||
export default () => ags.Widget.Window({
|
const {
|
||||||
|
Label,
|
||||||
|
Window
|
||||||
|
} = ags.Widget;
|
||||||
|
|
||||||
|
export default () => Window({
|
||||||
name: `volume-osd`,
|
name: `volume-osd`,
|
||||||
className: `osd`,
|
className: `osd`,
|
||||||
monitor: null,
|
monitor: null,
|
||||||
focusable: false,
|
focusable: false,
|
||||||
anchor: [ 'center' ],
|
anchor: ['center'],
|
||||||
popup: true,
|
popup: true,
|
||||||
|
|
||||||
child: ags.Widget.Label('hello world'),
|
child: Label('hello world'),
|
||||||
})
|
})
|
|
@ -6,16 +6,14 @@
|
||||||
}: let
|
}: let
|
||||||
leftMonitor = {
|
leftMonitor = {
|
||||||
display = "DP-2";
|
display = "DP-2";
|
||||||
res = "2560x1440";
|
res = "preferred";
|
||||||
pos = "-2560x0";
|
pos = "0x0";
|
||||||
refreshRate = "144";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
rightMonitor = {
|
rightMonitor = {
|
||||||
display = "DP-1";
|
display = "DP-1";
|
||||||
res = "2560x1440";
|
res = "preferred";
|
||||||
pos = "0x0";
|
pos = "2560x0";
|
||||||
refreshRate = "144";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
modKey = "SUPER";
|
modKey = "SUPER";
|
||||||
|
@ -66,8 +64,8 @@ in {
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
monitor=${leftMonitor.display}, ${leftMonitor.res}@${leftMonitor.refreshRate}, ${leftMonitor.pos}, 1
|
monitor=${leftMonitor.display}, ${leftMonitor.res}, ${leftMonitor.pos}, 1
|
||||||
monitor=${rightMonitor.display}, ${rightMonitor.res}@${rightMonitor.refreshRate}, ${rightMonitor.pos}, 1
|
monitor=${rightMonitor.display}, ${rightMonitor.res}, ${rightMonitor.pos}, 1
|
||||||
|
|
||||||
workspace = 1, monitor:${rightMonitor.display}
|
workspace = 1, monitor:${rightMonitor.display}
|
||||||
workspace = 2, monitor:${rightMonitor.display}
|
workspace = 2, monitor:${rightMonitor.display}
|
||||||
|
@ -138,7 +136,7 @@ in {
|
||||||
|
|
||||||
exec-once = ${pkgs.openrgb}/bin/openrgb --startminimized --profile autorun.orp
|
exec-once = ${pkgs.openrgb}/bin/openrgb --startminimized --profile autorun.orp
|
||||||
exec-once = ${pkgs.blueman}/bin/blueman-applet
|
exec-once = ${pkgs.blueman}/bin/blueman-applet
|
||||||
exec-once = ${pkgs.networkmanagerapplet}/bin/nm-applet --indicator
|
# exec-once = ${pkgs.networkmanagerapplet}/bin/nm-applet --indicator
|
||||||
exec-once = ${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1
|
exec-once = ${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1
|
||||||
# exec-once = ${pkgs.mullvad-vpn}/bin/mullvad-gui
|
# exec-once = ${pkgs.mullvad-vpn}/bin/mullvad-gui
|
||||||
exec-once = ${pkgs.ydotool}/bin/ydotoold
|
exec-once = ${pkgs.ydotool}/bin/ydotoold
|
||||||
|
|
Reference in New Issue