Files
nixos-dots/system/nixOSPkgs.nix
Zastian Pretorius f006323bd0 stuff
2025-07-01 14:40:29 +01:00

178 lines
5.0 KiB
Nix
Executable File

{
config,
lib,
inputs,
pkgs,
pkgs-stable,
...
}:
let
inherit (pkgs) anime4k;
# Use writeText instead of writeLua luacheck can't cry about the long lines
autoAnime4k = pkgs.writeText "auto-anime4k-switcher.lua" ''
local function get_nearest(x, numbers)
local min_index = nil
local min_dist = math.huge
for i, n in ipairs(numbers) do
local d = math.abs(n - x)
if d < min_dist then
min_index = i
min_dist = d
end
end
return numbers[min_index]
end
-- Fast
-- local shader_map = {
-- [1080] = "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Restore_CNN_M.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_S.glsl",
-- [720] = "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Restore_CNN_Soft_M.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_S.glsl",
-- [480] = "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Upscale_Denoise_CNN_x2_M.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_S.glsl"
-- }
-- HQ
local shader_map = {
[1080] = "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Restore_CNN_VL.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_VL.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl",
[720] = "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Restore_CNN_Soft_VL.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_VL.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl",
[480] = "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl"
}
local resolutions = { 1080, 720, 480 }
mp.register_event("file-loaded", function()
local height = mp.get_property_number("video-params/h")
local shaders = shader_map[height]
if not shaders then
height = get_nearest(height, resolutions)
shaders = shader_map[height]
end
mp.osd_message("Using " .. height .. "p Anime4K shaders")
mp.commandv("change-list", "glsl-shaders", "set", shaders)
end)
'';
in
{
nixpkgs.config = {
allowUnfree = true;
};
nixpkgs.overlays = [
(self: super: {
mpv = super.wrapMpv (super.mpv.unwrapped.override { sixelSupport = true; }) {
scripts = [ self.mpvScripts.mpris ];
};
})
];
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
programs.direnv = {
enable = true;
enableZshIntegration = true;
nix-direnv.enable = true;
silent = true;
};
programs.virt-manager.enable = true;
programs.zsh.enable = true;
programs.corectrl.enable = true;
programs.steam = {
enable = true;
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
};
# enable dynamic bin executables
programs.nix-ld.enable = true;
programs.nix-ld.libraries = with pkgs; [
# add libraries here
alsa-lib
libGL
glibc
glib
fontconfig
xorg.libX11
xorg.libXcomposite
xorg.libXdamage
xorg.libXfixes
xorg.libXrender
xorg.libXrandr
xorg.libXtst
xorg_sys_opengl
xorg.libXi
xorg.libxshmfence
xorg.libxkbfile
xorg.libxcb
xorg.xcbutilwm
xorg.xcbutilimage
xorg.xcbutilkeysyms
xorg.xcbutilrenderutil
xcb-util-cursor
libgbm
libxkbcommon
freetype
dbus
krb5
nss
zotero
nspr
gtk3
libappindicator-gtk3
mesa
vulkan-loader
];
#backlight tool
programs.light.enable = true;
programs.nm-applet.enable = true;
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
neovim
wl-clipboard
bat
anime4k
socat
eza
wget
foot
spaceship-prompt
git
bitwarden
zip
xclip
fd
fzf
zotero
jdk11
hunspell
hunspellDicts.en_US
pavucontrol
zoxide
xcp
polkit_gnome
unzip
rocmPackages.rccl
ffmpeg
libva-utils
nixfmt-rfc-style
nil
kdePackages.qt6ct
ripgrep
xwayland-satellite
inputs.nix-alien.packages.${pkgs.system}.nix-alien
];
}