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 ## Useful commands
if you're curious what's currently available you can run:
```bash
nix flake show github:alsaiduq-lab/nix-dotfiles
```
list generations list generations
```bash ```bash

View file

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

View file

@ -16,6 +16,38 @@
enableAudioWavelength = true; enableAudioWavelength = true;
enableCalendarEvents = true; enableCalendarEvents = true;
enableClipboardPaste = 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; [ home.packages = with pkgs; [
@ -25,5 +57,22 @@
cliphist cliphist
kdePackages.dolphin kdePackages.dolphin
]; ];
home.sessionPath = ["${pkgs.quickshell}/bin"]; 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 = { security.sudo = {
enable = true; enable = true;
wheelNeedsPassword = 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; 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 {}; minijinja-cli = pkgs.callPackage ./minijinja-cli {};
thorium = pkgs.callPackage ./thorium {}; thorium = pkgs.callPackage ./thorium {};
rpcs3 = pkgs.callPackage ./rpcs3 {}; 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"];
};
}