This commit is contained in:
alsaiduq-lab 2026-01-15 13:16:05 -07:00
parent 008d5c15c0
commit 849cae10fa
8 changed files with 135 additions and 8 deletions

View file

@ -4,6 +4,12 @@ My config for Hyprland desktop that I normally use as my daily driver (read: all
## Useful commands
if you're curious what's currently available you can run:
```bash
nix flake show github:alsaiduq-lab/nix-dotfiles
```
list generations
```bash

View file

@ -13,6 +13,10 @@
url = "github:fufexan/nix-gaming";
};
nix-monitor = {
url = "github:antonjah/nix-monitor";
};
proton-cachyos = {
url = "github:Arsalan2356/proton-cachyos-flake";
};
@ -39,6 +43,7 @@
dankMaterialShell = {
url = "github:AvengeMedia/DankMaterialShell";
inputs.nixpkgs.follows = "nixpkgs";
inputs.quickshell.follows = "quickshell";
};
nvim-dots = {
@ -68,7 +73,11 @@
};
nixcord = {
url = "github:FlameFlag/nixcord";
url = "github:kaylorben/nixcord";
};
dw-proton = {
url = "github:Momoyaan/dwproton-flake";
};
disko = {
@ -105,6 +114,7 @@
disko,
nix-index-database,
aagl,
dw-proton,
#sops-nix,
...
} @ inputs: let
@ -126,6 +136,7 @@
rpcs3
clear-sans
binary-font
dms-plugins
;
};
nixosConfigurations.nixos = nixpkgs.lib.nixosSystem {
@ -145,18 +156,19 @@
hostPlatform = system;
overlays = [
(final: prev: {
quickshell = inputs.quickshell.packages.${system}.default;
quickshell = inputs.quickshell.packages.${system}.default.withModules [final.qt6Packages.qtwebsockets];
ghostty = inputs.ghostty.packages.${system}.default;
hu-tao-animated-cursor = inputs.hu-tao-cursor.packages.${system}.default;
grim-hyprland = inputs.grim-hyprland.packages.${system}.default;
dms-shell = inputs.dankMaterialShell.packages.${system}.default;
pinix = inputs.pinix.packages.${system}.default;
wine-cachyos = inputs.nix-gaming.packages.${system}.wine-cachyos;
wine-tkg = inputs.nix-gaming.packages.${system}.wine-tkg;
proton-cachyos = inputs.proton-cachyos.packages.${system}.proton-cachyos;
desktop-gremlin = inputs.linux-desktop-gremlin.packages.${system}.default;
ipc-bridge = inputs.nix-gaming.packages.${system}.wine-discord-ipc-bridge;
dgop = unstablePkgs.dgop;
hyprland = inputs.hyprland.packages.${system}.default;
dw-proton = inputs.dw-proton.packages.${system}.default;
})
(final: prev: {
inherit
@ -166,13 +178,9 @@
minijinja-cli
thorium
rpcs3
dms-plugins
;
})
(final: prev: {
clear-sans = prev.clear-sans.clear-sans;
binary-font = prev.binary-font.binary-clock-font;
})
];
};
}
@ -190,6 +198,7 @@
};
sharedModules = [
inputs.nixcord.homeModules.nixcord
inputs.nix-monitor.homeManagerModules.default
];
users.cobray = import ./home-manager/cobray.nix;
};

View file

@ -16,6 +16,38 @@
enableAudioWavelength = true;
enableCalendarEvents = true;
enableClipboardPaste = true;
plugins = {
lyricsOnPanel = {
src = "${pkgs.dms-plugins.lyrics-on-panel}/plugin";
};
};
quickshell.package = pkgs.quickshell;
};
programs.nix-monitor = {
enable = true;
rebuildCommand = [
"bash"
"-c"
"cd ~/nix && nix flake update && sudo pixos-rebuild switch --flake ~/nix 2>&1"
];
gcCommand = [
"bash"
"-c"
"sudo pix-collect-garbage -d 2>&1"
];
generationsCommand = ["bash" "-c" "sudo nix-env --list-generations --profile /nix/var/nix/profiles/system | wc -l"];
updateInterval = 1800;
localRevisionCommand = ["bash" "-c" "echo 0"];
remoteRevisionCommand = [
"${pkgs.bash}/bin/bash"
"-l"
"-c"
"${pkgs.curl}/bin/curl -s https://api.github.com/repos/NixOS/nixpkgs/git/ref/heads/nixos-25.11 2>/dev/null | ${pkgs.jq}/bin/jq -r '.object.sha' 2>/dev/null | cut -c 1-7 || echo 'N/A'"
];
nixpkgsChannel = "nixos-25.11";
};
home.packages = with pkgs; [
@ -25,5 +57,22 @@
cliphist
kdePackages.dolphin
];
home.sessionPath = ["${pkgs.quickshell}/bin"];
systemd.user.services.lyrics-on-panel = {
Unit = {
Description = "Lyrics-on-Panel MPRIS2 Backend";
After = ["graphical-session.target"];
};
Service = {
Type = "simple";
ExecStart = "${pkgs.dms-plugins.lyrics-on-panel}/bin/lyrics-on-panel-backend";
Restart = "on-failure";
RestartSec = 5;
};
Install = {
WantedBy = ["graphical-session.target"];
};
};
}

View file

@ -14,6 +14,11 @@
security.sudo = {
enable = true;
wheelNeedsPassword = true;
extraConfig = ''
${config.theme.user} ALL=(ALL) NOPASSWD: /run/current-system/sw/bin/pixos-rebuild
${config.theme.user} ALL=(ALL) NOPASSWD: /run/current-system/sw/bin/pix-collect-garbage
${config.theme.user} ALL=(ALL) NOPASSWD: /run/current-system/sw/bin/nix-env
'';
};
programs."${config.theme.Shell}".enable = true;

3
pkgs/README.md Normal file
View file

@ -0,0 +1,3 @@
## random assorted stuff
aka stuff that needs to be built for nix (or different flags)

View file

@ -7,4 +7,7 @@
minijinja-cli = pkgs.callPackage ./minijinja-cli {};
thorium = pkgs.callPackage ./thorium {};
rpcs3 = pkgs.callPackage ./rpcs3 {};
dms-plugins = {
lyrics-on-panel = pkgs.callPackage ./dms-plugins/lyrics-on-panel {};
};
}

View file

@ -0,0 +1,3 @@
{pkgs}: {
lyrics-on-panel = pkgs.callPackage ./lyrics-on-panel {};
}

View file

@ -0,0 +1,49 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
python313,
makeWrapper,
}: let
python = python313.withPackages (ps: [
ps.websockets
ps.dbus-python
]);
src = fetchFromGitHub {
owner = "KangweiZhu";
repo = "lyrics-on-panel";
rev = "main";
hash = "sha256-8H0BUmr7OP5Zq47yj2Uk1hKQxezO4ccs7lfApDXHoE0=";
};
in
stdenvNoCC.mkDerivation {
pname = "dms-lyrics-on-panel";
version = "unstable";
inherit src;
nativeBuildInputs = [makeWrapper];
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/plugin $out/bin
cp -r dms/* $out/plugin/
cp -r backend/src $out/backend
makeWrapper ${python}/bin/python $out/bin/lyrics-on-panel-backend \
--add-flags "$out/backend/server.py"
runHook postInstall
'';
meta = {
description = "Lyrics on Panel - DMS plugin and backend";
homepage = "https://github.com/KangweiZhu/lyrics-on-panel";
license = lib.licenses.gpl3;
maintainer = ["Cobray"];
};
}