updated ags config to make worky again

This commit is contained in:
Varris 2023-10-15 01:16:19 +02:00
parent 0dfd9c5694
commit fa24db296c
17 changed files with 202 additions and 183 deletions

View File

@ -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
]; ];

View File

@ -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

View File

@ -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

View File

@ -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";
}; };

View File

@ -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";

View File

@ -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";
}; };
}; };
} }

View File

@ -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(),
],
}; };

View File

@ -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(),
}), }),
}) })

View File

@ -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)
],
], ],
}), }),
], ],
}); });

View File

@ -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}`;
}]
],
}), }),
], ],
}), }),
}) })

View File

@ -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;
}]], }]
],
}));
}]
],
}); });

View File

@ -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']
],
}), }),
], ],
}), }),
}); });

View File

@ -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);
}]
],
}); });

View File

@ -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' : '',
}));
}
}]
],
}); });

View File

@ -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));
}

View File

@ -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'),
}) })

View File

@ -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