This commit is contained in:
2026-02-23 09:26:54 +00:00
parent a306a8cb9a
commit 320cac603d
5 changed files with 69 additions and 70 deletions

View File

@@ -59,6 +59,7 @@
telegram-desktop telegram-desktop
obsidian obsidian
]; ];
programs.home-manager.enable = true;
}; };
}; };
} }

View File

@@ -25,71 +25,46 @@
}; };
systemd.user.services = systemd.user.services =
let let
mergedSet = lib.mergeAttrsList [ audio-set = lib.mkIf settings.audio {
( pw-discordaudio-virtual-device = {
let Unit = {
set = lib.mkIf settings.audio { Description = "OBS daemon";
pw-discordaudio-virtual-device = { After = [ "hyprland-session.target" ];
Unit = { };
Description = "OBS daemon"; Install = {
After = [ "hyprland-session.target" ]; WantedBy = [ "default.target" ];
}; };
Install = { Service = {
WantedBy = [ "default.target" ]; ExecStart = "${pkgs.writeShellScript "discord_audio_virt_device" ''
}; pw-loopback -m '[ FL FR]' --capture-props='media.class=Audio/Sink node.name=DiscordSink' -n DiscordSink
Service = { ''}";
ExecStart = "${pkgs.writeShellScript "discord_audio_virt_device" '' Restart = "on-failure";
pw-loopback -m '[ FL FR]' --capture-props='media.class=Audio/Sink node.name=DiscordSink' -n DiscordSink RestartSec = "5s";
''}"; };
Restart = "on-failure"; };
RestartSec = "5s"; pw-gameaudio-virtual-device = {
}; Unit = {
}; Description = "OBS daemon";
pw-gameaudio-virtual-device = { After = [ "hyprland-session.target" ];
Unit = { };
Description = "OBS daemon"; Install = {
After = [ "hyprland-session.target" ]; WantedBy = [ "default.target" ];
}; };
Install = { Service = {
WantedBy = [ "default.target" ]; ExecStart = "${pkgs.writeShellScript "game_audio_virt_device" ''
}; pw-loopback -m '[ FL FR]' --capture-props='media.class=Audio/Sink node.name=GameAudioSink' -n GameAudioSink
Service = { ''}";
ExecStart = "${pkgs.writeShellScript "game_audio_virt_device" '' Restart = "on-failure";
pw-loopback -m '[ FL FR]' --capture-props='media.class=Audio/Sink node.name=GameAudioSink' -n GameAudioSink RestartSec = "5s";
''}"; };
Restart = "on-failure"; };
RestartSec = "5s"; };
};
};
};
in
set
)
(
let
set = lib.mkIf settings.autostart {
obs-autostart = {
Unit = {
Description = "OBS daemon";
After = [ "hyprland-session.target" ];
};
Install = {
WantedBy = [ "default.target" ];
};
Service = {
# wait for hyprland to start
ExecStart = "${config.programs.obs-studio.finalPackage}/bin/obs --startreplaybuffer";
Restart = "on-failure";
RestartSec = "5s";
};
};
};
in
set
)
];
in in
mergedSet; lib.mergeAttrsList [ audio-set ];
wayland.windowManager.hyprland.settings = {
exec-once = [ "${config.programs.obs-studio.finalPackage}/bin/obs --startreplaybuffer" ];
};
}; };
}; };
} }

View File

@@ -28,30 +28,36 @@ Scope {
left: parent.left left: parent.left
right: parent.right right: parent.right
// bottomMargin: 2 // bottomMargin: 2
leftMargin: 5 leftMargin: 0
rightMargin: 5 rightMargin: 0
} }
RowLayout { RowLayout {
// Left // Left
Layout.alignment: Qt.AlignLeft Layout.alignment: Qt.AlignLeft
// To make sure no children mess with the height of all the other children.
// because if one widget is too height, it'll ofset all the other children in the bar
Layout.preferredHeight: 20
Workspaces {}
} }
RowLayout { RowLayout {
// Center // Center
Layout.alignment: Qt.AlignCenter Layout.alignment: Qt.AlignCenter
Layout.preferredHeight: 20
} }
RowLayout { RowLayout {
// Right // Right
Layout.alignment: Qt.AlignRight Layout.alignment: Qt.AlignRight
Layout.preferredHeight: 20
Rectangle { Rectangle {
width: meow.width width: clockText.width
height: meow.height height: clockText.height
radius: 3.5 radius: 3.5
color: "white" color: "white"
anchors.centerIn: parent anchors.centerIn: parent
Text { Text {
id: meow id: clockText
// font.pointSize: 24 // font.pointSize: 24
text: Clock.time text: Clock.time
} }

View File

@@ -0,0 +1,17 @@
// Bar.qml
import Quickshell
import Quickshell.Io
import QtQuick
import QtQuick.Layouts
Item {
id: root
width: content.width
height: content.height
Rectangle {
id: content
width: 30
height: 30
color: "red"
}
}

View File

@@ -35,7 +35,7 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
imports = [ inputs.stylix.nixosModules.stylix ]; imports = [ inputs.stylix.nixosModules.stylix ];
stylix.enable = true; stylix.enable = false;
stylix.autoEnable = false; stylix.autoEnable = false;
stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-hard.yaml"; stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-hard.yaml";
}; };