feat: waybar nvidia

This commit is contained in:
Kat Inskip 2025-07-27 22:13:26 -07:00
parent 9019d65fb4
commit 32588d7074
Signed by: kat
GPG key ID: 465E64DECEA8CF0F
16 changed files with 89 additions and 236 deletions

24
flake.lock generated
View file

@ -825,29 +825,6 @@
"type": "github"
}
},
"moonlight": {
"inputs": {
"flake-utils": [
"flake-utils"
],
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1752617499,
"narHash": "sha256-LVXO+V182R2KmNfTJjpYx/yYk97+Kvzul7gzSM72JJM=",
"owner": "moonlight-mod",
"repo": "moonlight",
"rev": "694b353a772ee2d0be218b2158a28bf71dbdaddd",
"type": "github"
},
"original": {
"owner": "moonlight-mod",
"repo": "moonlight",
"type": "github"
}
},
"naersk": {
"inputs": {
"fenix": "fenix",
@ -1421,7 +1398,6 @@
"lanzaboote": "lanzaboote",
"lix-module": "lix-module",
"minecraft": "minecraft",
"moonlight": "moonlight",
"naersk": "naersk",
"neorg-overlay": "neorg-overlay",
"nh": "nh",

View file

@ -171,13 +171,6 @@
xwayland-satellite-stable.follows = "empty";
};
};
moonlight = {
url = "github:moonlight-mod/moonlight";
inputs = {
nixpkgs.follows = "nixpkgs";
flake-utils.follows = "flake-utils";
};
};
lanzaboote = {
url = "github:nix-community/lanzaboote/v0.4.2";

View file

@ -67,7 +67,7 @@ in {
}
{
command = [
"discord"
"${getExe' config.programs.vesktop.package "vesktop"}"
"--enable-features=WaylandLinuxDrmSyncobj,UseOzonePlatform"
"--ozone-platform=wayland"
];

View file

@ -75,6 +75,7 @@ in {
};
workspaces = {
browser = {};
mail = {};
chat = {};
vidya = {};
media = {};

View file

@ -81,7 +81,7 @@ _: {
margin: 0px;
}
#mode, #custom-notification, #clock, #battery, #idle_inhibitor, #tray, #wireplumber, #bluetooth, #backlight, #mpris {
#mode, #custom-notification, #custom-nvidia-vram, #clock, #battery, #idle_inhibitor, #tray, #wireplumber, #bluetooth, #backlight, #mpris {
padding: 0 5px;
margin: 0 5px;
}
@ -94,6 +94,9 @@ _: {
font-size: 150%;
}
#custom-nvidia-vram {
}
#mpris.playing {
background-color: @base0B;
}
@ -164,7 +167,7 @@ _: {
"backlight"
"battery"
"tray"
#"custom/notification"
"custom/notification"
];
idle_inhibitor = {

View file

@ -1,4 +1,7 @@
{ pkgs, ... }: {
home.packages = [
pkgs.adwaita-icon-theme
];
stylix = {
enable = true;
cursor = {

View file

@ -0,0 +1,3 @@
{ pkgs, ... }: {
home.packages = [ pkgs.bitwarden-desktop ];
}

View file

@ -1,12 +1,14 @@
{pkgs, ...}: {
home.packages = with pkgs; [
(discord-krisp.override {
withOpenASAR = true;
withMoonlight = true;
})
];
programs.moonlight = {
stylix.targets.vesktop.enable = false;
programs.vesktop = {
enable = true;
settings = {
autoUpdate = false;
autoUpdateNotification = false;
notifyAboutUpdates = false;
disableMinSize = true;
plugins = {
};
};
};
}

View file

@ -7,9 +7,6 @@
btop
htop
# Mail
thunderbird
aseprite
# Chat
tdesktop # Telegram

View file

@ -0,0 +1,36 @@
_: {
programs.thunderbird = {
enable = true;
profiles.main = {
isDefault = true;
withExternalGnupg = true;
};
};
accounts.email.accounts = let
katIdentity = {
realName = "Kat Inskip";
};
dorkIdentity = {
realName = "Kat Dork";
};
mainEnable.thunderbird = {
enable = true;
profiles = [ "main" ];
};
gmailAccount = mainEnable // {
flavor = "gmail.com";
};
in {
primary = gmailAccount // katIdentity // {
primary = true;
address = "kat@inskip.me";
};
home = gmailAccount // katIdentity // {
address = "kat.inskip@gmail.com";
};
dork = gmailAccount // dorkIdentity // {
address = "dorkdev99@gmail.com";
};
};
}

View file

View file

@ -0,0 +1,14 @@
_: {
programs.chawan = {
enable = true;
settings = {
buffer = {
images = true;
autofocus = true;
};
pager."C-k" = "() => pager.load('https://duckduckgo.com/?=')";
pager."C-l" = "() => pager.load('https://github.com/?=')";
pager."C-m" = "() => pager.load('https://news.ycombinator.com/?=')";
};
};
}

View file

@ -1,4 +1,7 @@
{ pkgs, ... }: {
environment.systemPackages = [
pkgs.adwaita-icon-theme
];
stylix = {
enable = true;
targets = {

View file

@ -1,190 +0,0 @@
{
lib,
fetchFromGitHub,
fetchurl,
rustPlatform,
cmake,
ninja,
wrapGAppsHook4,
glib-networking,
gst_all_1,
libsysprof-capture,
libayatana-appindicator,
nodejs,
openssl,
pkg-config,
yq-go,
pnpm_9,
webkitgtk_4_1,
cargo-tauri,
desktop-file-utils,
}: let
webkitgtk_4_1' = webkitgtk_4_1.override {
enableExperimental = true;
};
shelter = fetchurl {
url = "https://raw.githubusercontent.com/uwu/shelter-builds/fab6f100bd0ab8583d67f792f66722a7d2a14bd1/shelter.js";
hash = "sha256-d9vaKLrl8RYNcHnE1iGN49ov6U/Y+9XpEsio+c1Sguc=";
meta = {
homepage = "https://github.com/uwu/shelter";
sourceProvenance = [lib.sourceTypes.binaryBytecode]; # actually, minified JS
license = lib.licenses.cc0;
};
};
in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "dorion";
version = "6.7.1";
src = fetchFromGitHub {
owner = "SpikeHD";
repo = "Dorion";
tag = "v${finalAttrs.version}";
hash = "sha256-d4G3royqhz+te5wPWVLNqqG/w0qOvTd7dKcWSzxUMUo=";
};
cargoPatches = [
./no-cargo-patch.patch
];
cargoRoot = "src-tauri";
buildAndTestSubdir = finalAttrs.cargoRoot;
useFetchCargoVendor = true;
cargoHash = "sha256-1xpAJkS31DjrZCY5WJ4/Z1t1ALED5gz7xYLhVR1Qzww=";
pnpmDeps = pnpm_9.fetchDeps {
inherit (finalAttrs) pname version src;
hash = "sha256-xBonUzA4+1zbViEsKap6CaG6ZRldW1LjNYIB+FmVRFs=";
};
# CMake (webkit extension)
cmakeDir = ".";
cmakeBuildDir = "src-tauri/extension_webkit";
dontUseCmakeConfigure = true;
dontUseNinjaBuild = true;
dontUseNinjaCheck = true;
dontUseNinjaInstall = true;
# cmake's supposed to set this automatically
# ... but the detection is based on the presence of ninja build hook
cmakeFlags = [
"-GNinja"
];
nativeBuildInputs = [
pnpm_9.configHook
cargo-tauri.hook
nodejs
pkg-config
wrapGAppsHook4
yq-go
desktop-file-utils
cmake
ninja
];
buildInputs = [
openssl
webkitgtk_4_1'
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-good
gst_all_1.gst-plugins-rs
glib-networking
libsysprof-capture
libayatana-appindicator
];
postPatch = ''
# remove updater
rm -rf updater
# patch cargo-deps
pushd $cargoDepsCopy/tauri-plugin-shell-*
patch -p1 < /build/source/src-tauri/patches/tauri-plugin-shell+*.patch
popd
substituteInPlace $cargoDepsCopy/libappindicator-sys-*/src/lib.rs \
--replace-fail "libayatana-appindicator3.so.1" "${libayatana-appindicator}/lib/libayatana-appindicator3.so.1"
# disable pre-build script and disable auto-updater
yq -iPo=json '
.bundle.resources = (.bundle.resources | map(select(. != "updater*")))
' src-tauri/tauri.conf.json
# link shelter injection
ln -s ${shelter} src-tauri/injection/shelter.js
# link html/frontend data
ln -s /build/source/src /build/source/src-tauri/html
'';
configurePhase = ''
cmakeConfigurePhase
pnpmConfigHook
'';
buildPhase = ''
ninjaBuildPhase
cd /build/source
tauriBuildHook
'';
postInstall = ''
# Set up the resource directories
mkdir -p $out/lib/Dorion
ln -s $out/lib/Dorion $out/lib/dorion
rm -rf $out/lib/Dorion/injection
cp -r src-tauri/injection $out/lib/Dorion
cp -r src $out/lib/Dorion
# Modify the desktop file
desktop-file-edit \
--set-comment "Tiny alternative Discord client" \
--set-key="Exec" --set-value="Dorion %U" \
--set-key="TryExec" --set-value="Dorion" \
--set-key="StartupWMClass" --set-value="Dorion" \
--set-key="StartupNotify" --set-value="true" \
--set-key="Categories" --set-value="Network;InstantMessaging;Chat;" \
--set-key="Keywords" --set-value="dorion;discord;vencord;chat;im;vc;ds;dc;dsc;tauri;" \
--set-key="Terminal" --set-value="false" \
--set-key="MimeType" --set-value="x-scheme-handler/discord" \
$out/share/applications/Dorion.desktop
'';
# error: failed to run custom build command for `Dorion v6.5.3 (/build/source/src-tauri)`
# Permission denied (os error 13)
doCheck = false;
env = {
TAURI_RESOURCE_DIR = "${placeholder "out"}/lib";
};
meta = {
homepage = "https://spikehd.github.io/projects/dorion/";
description = "Tiny alternative Discord client";
longDescription = ''
Dorion is an alternative Discord client aimed towards lower-spec or
storage-sensitive PCs that supports themes, plugins, and more!
'';
changelog = "https://github.com/SpikeHD/Dorion/releases/tag/v${finalAttrs.version}";
downloadPage = "https://github.com/SpikeHD/Dorion/releases/tag/v${finalAttrs.version}";
license = with lib.licenses; [
gpl3Only
cc0 # Shelter
];
mainProgram = "Dorion";
maintainers = with lib.maintainers; [
nyabinary
aleksana
griffi-gh
getchoo
];
platforms = lib.platforms.linux;
sourceProvenance = [
lib.sourceTypes.binaryBytecode # actually, minified JS
lib.sourceTypes.fromSource
];
};
})

View file

@ -8,6 +8,7 @@ _: let
...
}: let
inherit (lib.attrsets) nameValuePair listToAttrs;
inherit (lib.meta) getExe';
datasets = [
"root"
"nix"
@ -96,6 +97,18 @@ _: let
"-model_sheet"
];
};
programs.waybar.settings.main = {
modules-center = [
"custom/nvidia-vram"
];
"custom/nvidia-vram" = {
tooltip = false;
format = "nvidia {}";
interval = 1;
exec = "${getExe' pkgs.nvidia-smi "nvidia-smi"} --query-gpu=memory.used,memory.total,pstate --format=csv,noheader,nounits";
return-type = "";
};
};
niri.settings = {
outputs = {
"LG Electronics LG Ultra HD 0x0001AC91" = {

View file

@ -112,7 +112,6 @@
sops-nix.homeManagerModules.sops
chaotic.homeManagerModules.default
spicetify-nix.homeManagerModules.spicetify
moonlight.homeModules.default
nix-flatpak.homeManagerModules.nix-flatpak
zen-browser.homeModules.default
stylix.homeModules.stylix