Compare commits

...

7 Commits

15 changed files with 149 additions and 54 deletions

View File

@ -20,11 +20,11 @@
}, },
"emacs": { "emacs": {
"locked": { "locked": {
"lastModified": 1647827912, "lastModified": 1648981401,
"narHash": "sha256-q3sEAJe+nAlWp0kVSqPdGSvhwG9+i1Ppm+BMNnU76Ok=", "narHash": "sha256-7+L/vxg1g5QRl4XKPO5+awlubD5iRgqY7LG4Ag9Pasw=",
"owner": "nix-community", "owner": "nix-community",
"repo": "emacs-overlay", "repo": "emacs-overlay",
"rev": "ccb4f7c6af0b2dc5c02aec6f28d5cffb199087c4", "rev": "8704d61679ea1025fa16f612579f80263c96c321",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -56,11 +56,11 @@
}, },
"flake-utils": { "flake-utils": {
"locked": { "locked": {
"lastModified": 1644229661, "lastModified": 1648297722,
"narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", "narHash": "sha256-W+qlPsiZd8F3XkzXOzAoR+mpFqzm3ekQkJNa+PIh1BQ=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", "rev": "0f8662f1319ad6abf89b3380dd2722369fc51ade",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -134,11 +134,11 @@
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
}, },
"locked": { "locked": {
"lastModified": 1647821523, "lastModified": 1648917498,
"narHash": "sha256-NAIY357pAOcxK6bAt83kKEJ2LxZhLCiPIlmQ2iTQbk4=", "narHash": "sha256-fdyVHsP6XeyCk9FRyjV6Wv+7qiOzWxykGXdNixadvyg=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "835797f3a4a59459a316ae8d4ab91fa59faf61a4", "rev": "cfab869fcebc56710be6ec3aca76036b25c04a0d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -267,11 +267,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1647447644, "lastModified": 1648141026,
"narHash": "sha256-Di7ZCXjQKEys+jxgl8Mp7a8nowRSeAbzH8c9QNYkw2k=", "narHash": "sha256-h8e3+5EZFbYHTMb0DN2ACuQTJBNHpqigvmEV1w2WIuE=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "32f61571b486efc987baca553fb35df22532ba63", "rev": "feceb4d24f582817d8f6e737cd40af9e162dee05",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -299,8 +299,8 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"narHash": "sha256-ulGq3W5XsrBMU/u5k9d4oPy65pQTkunR4HKKtTq0RwY=", "narHash": "sha256-rjwoxrk16zfrcO5Torh6CbAd5GHsHrXw+EwxOvh9AUI=",
"path": "/nix/store/f71alr07xb2swc37fiqjr5h416qcs6wr-source", "path": "/nix/store/33zgpp4aj1qyfwnlaspj8mypvv0sjpyw-source",
"type": "path" "type": "path"
}, },
"original": { "original": {
@ -326,11 +326,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1647800324, "lastModified": 1648632716,
"narHash": "sha256-rjwoxrk16zfrcO5Torh6CbAd5GHsHrXw+EwxOvh9AUI=", "narHash": "sha256-kCmnDeiaMsdhfnNKjxdOzwRh2H6eQb8yWAL+nNabC/Y=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "9bc841fec1c0e8b9772afa29f934d2c7ce57da8e", "rev": "710fed5a2483f945b14f4a58af2cd3676b42d8c8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -445,11 +445,11 @@
}, },
"nur": { "nur": {
"locked": { "locked": {
"lastModified": 1647843981, "lastModified": 1649000089,
"narHash": "sha256-Ug5krnnJc/OVkLpnEhfBRoosLXJ6HYnHa2nw7cppHXw=", "narHash": "sha256-aY1kwpteyXJ6nT3FibGBpeSIvVHI/6Wskh48HpQpFig=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nur", "repo": "nur",
"rev": "0367c3938355bf4b92b9ad15acd4658b46b6b23a", "rev": "1221f32068c2401276c023d91ae7e9fe26f95926",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@ -37,6 +37,7 @@
nixosConfigurations = { nixosConfigurations = {
miku = mkSystem { miku = mkSystem {
bluray = true;
hostConfigFile = ./hosts/miku.nix; hostConfigFile = ./hosts/miku.nix;
}; };
mashu = mkSystem { mashu = mkSystem {

View File

@ -40,6 +40,7 @@
newsflash newsflash
sublime-music sublime-music
anki anki
gnome-podcasts
#psst #psst
# Proprietary stuff (yikes) # Proprietary stuff (yikes)
@ -48,6 +49,7 @@
ptw = { ptw = {
programs = { programs = {
bluray.enable = true;
mpv = { mpv = {
primaryScreen = "C27F398"; primaryScreen = "C27F398";
enable = true; enable = true;
@ -70,7 +72,7 @@
}; };
services = { services = {
gamemode.enable = true; gamemode.enable = true;
#gnome.enable = true; gnome.enable = true;
input-remapper = { input-remapper = {
enable = false; enable = false;
postStartCommand = "${pkgs.input-remapper}/bin/input-remapper-control --command start --preset NOOP --device \"Razer Razer Tartarus V2\""; postStartCommand = "${pkgs.input-remapper}/bin/input-remapper-control --command start --preset NOOP --device \"Razer Razer Tartarus V2\"";

View File

@ -75,6 +75,9 @@ in {
git-crypt git-crypt
gnupg gnupg
python3 python3
unzip
file
ripgrep
# General utilities # General utilities
bandwhich bottom latencytop bandwhich bottom latencytop

View File

@ -15,6 +15,7 @@ Idea: Make miku.nix, mashu.nix, ... have the following structure
{ {
hostConfigFile hostConfigFile
, architecture ? "x86_64-linux" , architecture ? "x86_64-linux"
, bluray ? false
}: let }: let
pkgs = inputs.nixpkgs; pkgs = inputs.nixpkgs;
config = pkgs.lib; config = pkgs.lib;
@ -43,7 +44,9 @@ in inputs.nixpkgs.lib.nixosSystem {
emacs.overlay emacs.overlay
(import ../packages) (import ../packages)
(import ../overlays/simple.nix) (import ../overlays/simple.nix)
]
++ lib.optional bluray (import ../overlays/bluray.nix)
++ [
# Always keep sandbox.nix as the last overlay # Always keep sandbox.nix as the last overlay
(import ../overlays/sandbox.nix) (import ../overlays/sandbox.nix)
]; ];

View File

@ -23,6 +23,7 @@
./programs/plasma ./programs/plasma
./programs/office ./programs/office
./programs/gaming ./programs/gaming
./programs/bluray
# Services # Services
./services/kanshi ./services/kanshi

View File

@ -0,0 +1,15 @@
{ pkgs, config, lib, ... }:
let
cfg = config.ptw.programs.bluray;
in {
options.ptw.programs.bluray = {
enable = lib.mkEnableOption "Enable bluray playback and decoding. Will rebuild a lot of packages";
};
config = lib.mkIf cfg.enable {
nixpkgs.config.overlays = [
(import ../../../overlays/bluray.nix)
];
};
}

View File

@ -1,12 +1,14 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
let let
mkAnime4kShader = shader: "${pkgs.anime4k}/usr/share/shaders/${shader}";
mkDefaultShader = shader: "${pkgs.mpv-shader-pack}/usr/share/shaders/${shader}";
makeMpvProfile = { shader, additional ? {} }: { makeMpvProfile = { shader, additional ? {} }: {
glsl-shaders = "${pkgs.anime4k}/usr/share/shaders/${shader}"; glsl-shaders = shader;
scale = "ewa_lanczossharp"; scale = "ewa_lanczossharp";
cscale = "ewa_lanczossharp"; cscale = "ewa_lanczossharp";
gpu-context = "wayland"; gpu-context = "wayland";
gpu-api = "opengl"; gpu-api = "vulkan";
hwdec = "vaapi"; hwdec = "vaapi";
vo = "gpu"; vo = "gpu";
video-sync = "display-resample"; video-sync = "display-resample";
@ -15,8 +17,7 @@ let
} // additional // (if config.ptw.programs.mpv != "" then { } // additional // (if config.ptw.programs.mpv != "" then {
# Make mpv pop up on the primary screen # Make mpv pop up on the primary screen
screen-name = config.ptw.programs.mpv.primaryScreen; screen-name = config.ptw.programs.mpv.primaryScreen;
fs-screen-name = config.ptw.programs.mpv.primaryScreen; fs-screen-name = config.ptw.programs.mpv.primaryScreen;} else {});
} else {});
cfg = config.ptw.programs.mpv; cfg = config.ptw.programs.mpv;
in { in {
options.ptw.programs.mpv = { options.ptw.programs.mpv = {
@ -40,13 +41,19 @@ in {
defaultProfiles = [ "anime" ]; defaultProfiles = [ "anime" ];
profiles = { profiles = {
anime = (makeMpvProfile { anime = (makeMpvProfile {
shader = "Anime4K_Upscale_Denoise_CNN_x2_VL.glsl"; shader = mkAnime4kShader "Anime4K_Upscale_Denoise_CNN_x2_VL.glsl";
additional = { additional = {
fullscreen = ""; fullscreen = "";
}; };
}); });
"anime-denoise" = (makeMpvProfile { anime-denoise = (makeMpvProfile {
shader = "Anime4K_Upscale_Denoise_CNN_x2_VL.glsl"; shader = mkAnime4kShader "Anime4K_Upscale_Denoise_CNN_x2_VL.glsl";
});
non-anime = (makeMpvProfile {
shader = mkDefaultShader "FSRCNNX_x2_8-0-4-1.glsl";
});
non-anime-strong = (makeMpvProfile {
shader = mkDefaultShader "FSRCNNX_x2_16-0-4-1.glsl";
}); });
}; };
}; };

View File

@ -42,7 +42,6 @@ in {
libsForQt5.bismuth libsForQt5.bismuth
#kde-rounded-corners #kde-rounded-corners
index-fm index-fm
#kasts-git
rsibreak rsibreak
kalendar kalendar
kate kate

29
overlays/bluray.nix Normal file
View File

@ -0,0 +1,29 @@
final: prev:
let
overrideWithAACS = pkgName: prev."${pkgName}".overrideAttrs (old: {
buildInputs = with prev; old.buildInputs ++ [ libaacs ];
});
in {
libbluray = prev.libbluray.override {
withAACS = true;
withBDplus = true;
};
mpvUnwrapped = prev.mpvUnwrapped.overrideAttrs (old: {
buildInputs = with prev; old.buildInputs ++ [ libaacs ];
});
vlc = prev.vlc.overrideAttrs (old: {
buildInputs = with prev; old.buildInputs ++ [ libaacs ];
});
handbrake = prev.handbrake.overrideAttrs (old: {
buildInputs = with prev; old.buildInputs ++ [ libaacs ];
});
/*
mpvUnwrapped = overrideWithAACS "mpvUnwrapped";
handbrake = overrideWithAACS "handbrake";
*/
}

View File

@ -1,15 +1,6 @@
final: prev: final: prev:
{ {
/*
mpv = prev.wrapMpv mpv {
# Prevent the need for prefixing mpv with DRI_PRIME=1
extraMakeWrapperArgs = [
"--set" "DRI_PRIME" "1"
];
};
*/
gajim = prev.gajim.overrideAttrs (old: { gajim = prev.gajim.overrideAttrs (old: {
# Enable notification sounds # Enable notification sounds
propagatedBuildInputs = old.propagatedBuildInputs ++ [ prev.gsound ]; propagatedBuildInputs = old.propagatedBuildInputs ++ [ prev.gsound ];
@ -68,18 +59,6 @@ final: prev:
]; ];
}); });
# TODO: Remove once upstream has a new version tagged
kasts-git = prev.libsForQt5.kasts.overrideAttrs (old: {
src = let
commit = "b39be0118ef6ff587b433af185c584f3d5bcec30";
in builtins.fetchTarball {
url = "https://invent.kde.org/plasma-mobile/kasts/-/archive/${commit}/kasts-${commit}.tar.gz";
sha256 = "06myymbwj89357cpg7phha1x8q84mlhcy4f44pdkqmg7lkd5a6df";
};
buildInputs = old.buildInputs ++ [ prev.taglib prev.libsForQt5.qtkeychain ];
});
xournalpp-git = prev.xournalpp.overrideAttrs (old: { xournalpp-git = prev.xournalpp.overrideAttrs (old: {
version = "1.1.1"; version = "1.1.1";
src = prev.fetchFromGitHub { src = prev.fetchFromGitHub {

View File

@ -25,6 +25,7 @@ in {
evdev-proxy = prev.callPackage ./tools/virtualisation/evdev-proxy {}; evdev-proxy = prev.callPackage ./tools/virtualisation/evdev-proxy {};
virtiofsd = prev.callPackage ./tools/virtualisation/virtiofsd {}; virtiofsd = prev.callPackage ./tools/virtualisation/virtiofsd {};
anime4k = prev.callPackage ./misc/video/anime4k {}; anime4k = prev.callPackage ./misc/video/anime4k {};
mpv-shader-pack = prev.callPackage ./misc/video/mpv-shader-pack {};
anime-dl = prev.callPackage ./tools/video/animedl { anime-dl = prev.callPackage ./tools/video/animedl {
pySmartDL = pySmartDL; pySmartDL = pySmartDL;
cfscrape = cfscrape; cfscrape = cfscrape;

View File

@ -16,10 +16,10 @@ stdenv.mkDerivation rec {
''; '';
meta = with lib; { meta = with lib; {
description = "A High-Quality Real Time Upscaler for Anime Video "; description = "A High-Quality Real Time Upscaler for Anime Video";
homepage = "A High-Quality Real Time Upscaler for Anime Video "; homepage = "https://bloc97.github.io/Anime4K/";
license = licenses.mit; license = licenses.mit;
maintainers = [ ]; maintainers = [ ];
platforms = platforms.linux; platforms = platforms.all;
}; };
} }

View File

@ -0,0 +1,25 @@
{ stdenv, lib, fetchFromGitHub }:
stdenv.mkDerivation rec {
pname = "mpv-prescalers";
version = "20211110";
src = fetchFromGitHub {
owner = "bjin";
repo = "mpv-prescalers";
rev = "cc02ed95c1fe05b72bc21d41257c4c085e6e409b";
sha256 = "1gc1ka9i7xzxq58175q5svhvp8vr27hy477r4z4nkhp9q1cqj19d";
};
installPhase = ''
find . -type f -iname '*.hook' -exec install -Dm 644 {} -t $out/usr/share/shaders/ \;
'';
meta = with lib; {
description = "prescalers for mpv, as user shaders";
homepage = "https://github.com/bjin/mpv-prescalers";
license = licenses.gpl3;
maintainers = [ ];
platforms = platforms.all;
};
}

View File

@ -0,0 +1,30 @@
{ stdenv, lib, fetchFromGitHub }:
stdenv.mkDerivation rec {
pname = "mpv-shader-pack";
version = "2.0.0";
src = fetchFromGitHub {
owner = "iwalton3";
repo = "default-shader-pack";
rev = "v${version}";
sha256 = "10383h2qq35whj3v1vs34yyqiflxjf1vlv2p4l6jrmljwpjpcj4k";
};
buildPhase = ''
# Packaged by the anime4k package
rm shaders/Anime4K_*.glsl
'';
installPhase = ''
find ./shaders -type f -exec install -Dm 644 {} -t $out/usr/share/shaders/ \;
'';
meta = with lib; {
description = "Preconfigured set of MPV shaders and configurations for MPV Shim media clients.";
homepage = "https://github.com/iwalton3/default-shader-pack";
license = licenses.gpl3;
maintainers = [ ];
platforms = platforms.all;
};
}