Compare commits
4 commits
8b6817a949
...
90d12289c5
Author | SHA1 | Date | |
---|---|---|---|
Joseph DiGiovanni | 90d12289c5 | ||
Joseph DiGiovanni | 5dcbe8b9e8 | ||
Joseph DiGiovanni | 761d9b43a6 | ||
Joseph DiGiovanni | bb41f4ca45 |
89
custom-pkgs/alvr.nix
Normal file
89
custom-pkgs/alvr.nix
Normal file
|
@ -0,0 +1,89 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchzip
|
||||
, fetchFromGitHub
|
||||
, alsa-lib
|
||||
, autoPatchelfHook
|
||||
, brotli
|
||||
, ffmpeg
|
||||
, libdrm
|
||||
, libGL
|
||||
, libunwind
|
||||
, libva
|
||||
, libvdpau
|
||||
, libxkbcommon
|
||||
, nix-update-script
|
||||
, openssl
|
||||
, SDL2
|
||||
, vulkan-loader
|
||||
, wayland
|
||||
, x264
|
||||
, xorg
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "alvr";
|
||||
version = "20.9.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://github.com/alvr-org/ALVR/releases/download/v${version}/alvr_streamer_linux.tar.gz";
|
||||
hash = "sha256-S8GeUskAqxzPqKC5XDiRDezV++vestlHLAzK001wkXQ=";
|
||||
};
|
||||
|
||||
alvrSrc = fetchFromGitHub {
|
||||
owner = "alvr-org";
|
||||
repo = "ALVR";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-kw/UGh9nxZMVnvxyXV4CUm3HZegyjWolNoHHNindc5s=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoPatchelfHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
alsa-lib
|
||||
libunwind
|
||||
libva
|
||||
libvdpau
|
||||
vulkan-loader
|
||||
SDL2
|
||||
];
|
||||
|
||||
runtimeDependencies = [
|
||||
brotli
|
||||
ffmpeg
|
||||
openssl
|
||||
libdrm
|
||||
libGL
|
||||
libxkbcommon
|
||||
wayland
|
||||
x264
|
||||
xorg.libX11
|
||||
xorg.libXcursor
|
||||
xorg.libxcb
|
||||
xorg.libXi
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/share/applications
|
||||
cp -r $src/* $out
|
||||
install -Dm444 $alvrSrc/alvr/xtask/resources/alvr.desktop -t $out/share/applications
|
||||
install -Dm444 $alvrSrc/resources/alvr.png -t $out/share/icons/hicolor/256x256/apps
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = with lib; {
|
||||
description = "Stream VR games from your PC to your headset via Wi-Fi";
|
||||
homepage = "https://github.com/alvr-org/ALVR/";
|
||||
changelog = "https://github.com/alvr-org/ALVR/releases/tag/v${finalAttrs.version}";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ passivelemon ];
|
||||
platforms = platforms.linux;
|
||||
mainProgram = "alvr_dashboard";
|
||||
};
|
||||
}
|
|
@ -1,14 +1,16 @@
|
|||
{ inputs, pkgs, system, ... }:
|
||||
|
||||
let
|
||||
customPkgs = final: prev: {
|
||||
adwaita-for-steam = pkgs.callPackage ./adwaita-for-steam.nix { };
|
||||
customPkgs = final: prev: with pkgs;{
|
||||
adwaita-for-steam = callPackage ./adwaita-for-steam.nix { };
|
||||
alvr = callPackage ./alvr.nix { };
|
||||
|
||||
gnomeExtensions = prev.gnomeExtensions // {
|
||||
rounded-window-corners-reborn = pkgs.callPackage ./gnomeExtensions/rounded-window-corners-reborn.nix { };
|
||||
monitor-brightness-and-volume = callPackage ./gnomeExtensions/monitor-brightness-and-volume.nix { };
|
||||
rounded-window-corners-reborn = callPackage ./gnomeExtensions/rounded-window-corners-reborn.nix { };
|
||||
};
|
||||
|
||||
mkvextract-gtk = pkgs.callPackage ./mkvextract-gtk.nix { };
|
||||
mkvextract-gtk = callPackage ./mkvextract-gtk.nix { };
|
||||
};
|
||||
|
||||
unstableOverlay = final: prev: {
|
||||
|
@ -22,6 +24,7 @@ let
|
|||
godot_4 = final.unstable.godot_4;
|
||||
icoextract = final.unstable.icoextract; #TODO: remove in next release
|
||||
proton-ge-bin = final.unstable.proton-ge-bin;
|
||||
sidequest = final.unstable.sidequest;
|
||||
|
||||
unstable = import inputs.nixpkgs-unstable {
|
||||
inherit (final) config system;
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
{ lib, stdenv, fetchurl, unzip, glib }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-shell-extension-monitor-brightness-volume";
|
||||
version = "7";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://extensions.gnome.org/extension-data/monitor-brightness-volumeailin.nemui.v${version}.shell-extension.zip";
|
||||
hash = "sha256-NrFZZdQTgnMyYk2Yp2l3RiXM2C+/NHhIPv/Fo/KrXt8=";
|
||||
};
|
||||
|
||||
sourceRoot = ".";
|
||||
|
||||
nativeBuildInputs = [ unzip glib ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/gnome-shell/extensions/monitor-brightness-volume@ailin.nemui
|
||||
mv * $out/share/gnome-shell/extensions/monitor-brightness-volume@ailin.nemui
|
||||
glib-compile-schemas $out/share/gnome-shell/extensions/monitor-brightness-volume@ailin.nemui/schemas
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "GNOME Shell extension to control monitor brightness and volume.";
|
||||
homepage = "https://extensions.gnome.org/extension/1292/monitor-brightness-and-volume/";
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ jdig78 ];
|
||||
};
|
||||
}
|
18
flake.lock
18
flake.lock
|
@ -232,11 +232,11 @@
|
|||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1722388556,
|
||||
"narHash": "sha256-90/qzsfqtXbHk3vshBQkJdymG/IY7S6RqqYpQU2GB8Y=",
|
||||
"lastModified": 1722907736,
|
||||
"narHash": "sha256-drU5kbx9EtTqg7rXc6ni0LZuZQy7l/wVgsQ8PSYl5Qw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-vscode-extensions",
|
||||
"rev": "af75b047c7e12cbd5484190900e6216b5ebe68e2",
|
||||
"rev": "b3c49142939ba6072cb8bdd6109e36d1b70a055a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -279,11 +279,11 @@
|
|||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1722185531,
|
||||
"narHash": "sha256-veKR07psFoJjINLC8RK4DiLniGGMgF3QMlS4tb74S6k=",
|
||||
"lastModified": 1722813957,
|
||||
"narHash": "sha256-IAoYyYnED7P8zrBFMnmp7ydaJfwTnwcnqxUElC1I26Y=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "52ec9ac3b12395ad677e8b62106f0b98c1f8569d",
|
||||
"rev": "cb9a96f23c491c081b38eab96d22fa958043c9fa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -311,11 +311,11 @@
|
|||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1722221733,
|
||||
"narHash": "sha256-sga9SrrPb+pQJxG1ttJfMPheZvDOxApFfwXCFO0H9xw=",
|
||||
"lastModified": 1722869614,
|
||||
"narHash": "sha256-7ojM1KSk3mzutD7SkrdSflHXEujPvW1u7QuqWoTLXQU=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "12bf09802d77264e441f48e25459c10c93eada2e",
|
||||
"rev": "883180e6550c1723395a3a342f830bfc5c371f6b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
@ -4,9 +4,9 @@
|
|||
dconf.settings = {
|
||||
"org/gnome/Console" =
|
||||
let
|
||||
fontSize = 10;
|
||||
fontWidth = fontSize * 0.8;
|
||||
lineSpacing = fontSize * 0.4 * 2; # Each line has a space of 0.4em above and below it
|
||||
fontSize = 12;
|
||||
fontWidth = 8;
|
||||
lineSpacing = 2 * 2; # Each line has a space above and below it
|
||||
|
||||
terminalMode = {
|
||||
# Based on VT100 video modes
|
||||
|
@ -19,11 +19,11 @@
|
|||
terminalSize = terminalMode.extended;
|
||||
in
|
||||
{
|
||||
custom-font = "Source Code Pro " + toString fontSize;
|
||||
custom-font = "Unifont " + toString fontSize;
|
||||
|
||||
last-window-size = with builtins; lib.hm.gvariant.mkTuple [
|
||||
(ceil ((elemAt terminalSize 0 * fontWidth) + 12))
|
||||
(ceil ((elemAt terminalSize 1 * (fontSize + lineSpacing)) + 48))
|
||||
(ceil (((elemAt terminalSize 1 + .5) * (fontSize + lineSpacing)) + 48))
|
||||
];
|
||||
|
||||
theme = "night";
|
||||
|
|
|
@ -3,5 +3,6 @@
|
|||
{
|
||||
imports = [
|
||||
./custom-wallpaper
|
||||
./extensions
|
||||
];
|
||||
}
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./monitor-brightness-and-volume.nix
|
||||
];
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
UUID = "monitor-brightness-volume@ailin.nemui";
|
||||
lightModeBrightness = 50;
|
||||
darkModeBrightness = 20;
|
||||
in
|
||||
{
|
||||
dconf.settings = {
|
||||
"org/gnome/shell".enabled-extensions = [ UUID ];
|
||||
|
||||
"org/gnome/shell/extensions/monitor-brightness-volume".show-volume = false;
|
||||
};
|
||||
|
||||
systemd.user.services.ddcutil-auto-brightness-gnome = {
|
||||
Install.WantedBy = [ "graphical-session.target" ];
|
||||
|
||||
Service = {
|
||||
ExecStart = pkgs.writeShellScript "ddcutil-auto-brightness-gnome" ''
|
||||
${pkgs.glib}/bin/gsettings monitor org.gnome.desktop.interface color-scheme | while read -r line; do
|
||||
${pkgs.gnome.gnome-shell}/bin/gnome-extensions disable ${UUID} # Reload the extension to detect the brightness change
|
||||
if [[ "$line" == *"prefer-dark"* ]]; then
|
||||
${pkgs.ddcutil}/bin/ddcutil setvcp 10 ${toString darkModeBrightness}
|
||||
else
|
||||
${pkgs.ddcutil}/bin/ddcutil setvcp 10 ${toString lightModeBrightness}
|
||||
fi
|
||||
# Reload the extension to apply the brightness change
|
||||
${pkgs.gnome.gnome-shell}/bin/gnome-extensions enable ${UUID}
|
||||
done
|
||||
'';
|
||||
Restart = "always";
|
||||
RestartSec = 10;
|
||||
};
|
||||
|
||||
Unit.Description = "ddcutil auto brightness service for GNOME";
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [ gnomeExtensions.monitor-brightness-and-volume ];
|
||||
}
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
unstable.alvr
|
||||
unstable.sidequest
|
||||
alvr
|
||||
sidequest
|
||||
];
|
||||
}
|
||||
|
|
|
@ -2,11 +2,9 @@
|
|||
|
||||
{
|
||||
config = lib.mkIf config.hardware.monitor-control.enable {
|
||||
environment.systemPackages = with pkgs; [
|
||||
ddcutil
|
||||
];
|
||||
|
||||
boot.kernelModules = [ "i2c-dev" ];
|
||||
environment.systemPackages = with pkgs; [ ddcutil ];
|
||||
hardware.i2c.enable = true;
|
||||
users.groups."i2c".members = builtins.attrNames config.users.users;
|
||||
};
|
||||
|
||||
options.hardware.monitor-control.enable = lib.mkEnableOption "enable support for controlling monitor settings.";
|
||||
|
|
Loading…
Reference in a new issue