163 lines
6.1 KiB
Nix
163 lines
6.1 KiB
Nix
{ pkgs, lib, ... }:
|
|
|
|
{
|
|
imports = [
|
|
../../home-manager/base.nix
|
|
../../home-manager/development/all.nix
|
|
../../home-manager/gaming.nix
|
|
];
|
|
|
|
terminal.nixUpdateLocation = "/home/worble/Projects/nixos#tuxedo";
|
|
terminal.flakeUpdateLocation = "/home/worble/Projects/nixos";
|
|
helix.fullInstall = true;
|
|
|
|
home.username = "worble";
|
|
home.homeDirectory = "/home/worble";
|
|
|
|
home.stateVersion = "24.05";
|
|
|
|
home.packages = with pkgs;[
|
|
# general
|
|
gimp-with-plugins
|
|
obsidian
|
|
|
|
# cmd line tools
|
|
rclone
|
|
inotify-tools
|
|
libnotify
|
|
ffmpeg-full
|
|
|
|
# comms
|
|
teams-for-linux
|
|
|
|
# media
|
|
jellyfin-media-player
|
|
haruna
|
|
fooyin
|
|
strawberry
|
|
mpc-qt
|
|
|
|
# misc
|
|
electrum
|
|
gpu-screen-recorder-gtk
|
|
syncthing
|
|
dbeaver-bin
|
|
];
|
|
|
|
home.file = {
|
|
# shaders for mpv
|
|
".config/mpv/shaders".source = pkgs.fetchzip {
|
|
url = "https://github.com/bloc97/Anime4K/releases/download/v4.0.1/Anime4K_v4.0.zip";
|
|
sha256 = "sha256-9B6U+KEVlhUIIOrDauIN3aVUjZ/gQHjFArS4uf/BpaM=";
|
|
stripRoot = false;
|
|
};
|
|
};
|
|
|
|
# Let Home Manager install and manage itself.
|
|
programs = {
|
|
firefox = {
|
|
profiles.work = import ../../home-manager/firefox/firefox-profile.nix // {
|
|
id = 1;
|
|
name = "work";
|
|
isDefault = false;
|
|
settings = {
|
|
# allow fonts
|
|
"browser.display.use_document_fonts" = 1;
|
|
# home page
|
|
"browser.startup.homepage" = "https://outlook.office.com|https://teams.microsoft.com/v2|https://dev.azure.com/binhsps/Connect/_boards/board/t/Development%20Team/Stories";
|
|
};
|
|
};
|
|
};
|
|
|
|
mpv = {
|
|
enable = true;
|
|
package = (
|
|
pkgs.mpv-unwrapped.wrapper {
|
|
scripts = with pkgs.mpvScripts; [
|
|
uosc
|
|
sponsorblock
|
|
];
|
|
|
|
mpv = pkgs.mpv-unwrapped.override {
|
|
waylandSupport = true;
|
|
};
|
|
}
|
|
);
|
|
config = {
|
|
profile = "gpu-hq";
|
|
vo = "gpu-next";
|
|
gpu-api = "vulkan";
|
|
hwdec = "vulkan";
|
|
screenshot-directory = "/mnt/HDD1/Pictures/";
|
|
screenshot-template = "%F/%F_snapshot_%P";
|
|
glsl-shaders = "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl";
|
|
};
|
|
extraInput = ''
|
|
# Optimized shaders for higher-end GPU:
|
|
CTRL+1 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode A (HQ)"
|
|
CTRL+2 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode B (HQ)"
|
|
CTRL+3 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode C (HQ)"
|
|
CTRL+4 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_Restore_CNN_M.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode A+A (HQ)"
|
|
CTRL+5 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode B+B (HQ)"
|
|
CTRL+6 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Restore_CNN_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode C+A (HQ)"
|
|
CTRL+0 no-osd change-list glsl-shaders clr ""; show-text "GLSL shaders cleared"
|
|
'';
|
|
};
|
|
|
|
mangohud = {
|
|
enable = true;
|
|
settings = {
|
|
preset = 1;
|
|
};
|
|
};
|
|
|
|
kodi = {
|
|
enable = true;
|
|
package = pkgs.kodi.withPackages (exts: [ exts.pvr-iptvsimple ]);
|
|
};
|
|
};
|
|
|
|
systemd.user = {
|
|
services = {
|
|
rclone-media = {
|
|
Unit = {
|
|
Description = "rclone-media /mnt/HDD1/Videos/";
|
|
After = [ "network.target" "mnt-HDD1.mount" ];
|
|
};
|
|
|
|
Install = {
|
|
WantedBy = [ "default.target" ];
|
|
};
|
|
|
|
Service = {
|
|
Type = "exec";
|
|
ExecStart = "${pkgs.writeShellApplication {
|
|
name = "rclone-media";
|
|
runtimeInputs = [ pkgs.inotify-tools pkgs.libnotify pkgs.rclone ];
|
|
text = ''
|
|
function rclonecopy {
|
|
file=$1
|
|
changed_rel=''${file#"/mnt/HDD1/Videos"}
|
|
notify-send -a "rclone-media" "rclone for $file triggered"
|
|
if rclone copyto "$file" media:"media-7gM2gcrxRjXqfj$changed_rel" ; then
|
|
notify-send -a "rclone-media" "rclone complete for $file"
|
|
else
|
|
notify-send -u critical -a "rclone-media" "rclone failed for $file"
|
|
fi
|
|
}
|
|
|
|
inotifywait -mr \
|
|
--format '%w%f' \
|
|
-e close_write \
|
|
/mnt/HDD1/Videos/ |
|
|
while read -r file; do
|
|
rclonecopy "$file"
|
|
done
|
|
'';
|
|
}}/bin/rclone-media";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|