diff options
| author | Fuwn <[email protected]> | 2024-08-28 20:36:04 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-08-28 20:36:04 -0700 |
| commit | f3c31e4ad7fab36e151f3a2e207fafb1eda1a787 (patch) | |
| tree | e265a1a5270b4522049110b8bc5aa13fda142c2f /home/ebisu/meta/multimedia | |
| parent | many (diff) | |
| download | nixos-config-f3c31e4ad7fab36e151f3a2e207fafb1eda1a787.tar.xz nixos-config-f3c31e4ad7fab36e151f3a2e207fafb1eda1a787.zip | |
hi
Diffstat (limited to 'home/ebisu/meta/multimedia')
| -rw-r--r-- | home/ebisu/meta/multimedia/audio/default.nix | 19 | ||||
| -rw-r--r-- | home/ebisu/meta/multimedia/audio/spotify/default.nix | 11 | ||||
| -rw-r--r-- | home/ebisu/meta/multimedia/browser/default.nix | 19 | ||||
| -rw-r--r-- | home/ebisu/meta/multimedia/browser/thorium.nix | 47 | ||||
| -rw-r--r-- | home/ebisu/meta/multimedia/browser/ungoogled-chromium.nix | 23 | ||||
| -rw-r--r-- | home/ebisu/meta/multimedia/browser/zen-browser-bin.nix | 128 | ||||
| -rw-r--r-- | home/ebisu/meta/multimedia/default.nix | 16 | ||||
| -rw-r--r-- | home/ebisu/meta/multimedia/document/default.nix | 8 | ||||
| -rw-r--r-- | home/ebisu/meta/multimedia/image/ahoviewer.nix | 54 | ||||
| -rw-r--r-- | home/ebisu/meta/multimedia/image/default.nix | 16 | ||||
| -rw-r--r-- | home/ebisu/meta/multimedia/video/anime/default.nix | 7 | ||||
| -rw-r--r-- | home/ebisu/meta/multimedia/video/default.nix | 18 |
12 files changed, 366 insertions, 0 deletions
diff --git a/home/ebisu/meta/multimedia/audio/default.nix b/home/ebisu/meta/multimedia/audio/default.nix new file mode 100644 index 0000000..7944a63 --- /dev/null +++ b/home/ebisu/meta/multimedia/audio/default.nix @@ -0,0 +1,19 @@ +{ pkgs, ... }: { + imports = [ + ./spotify + ]; + + home.packages = with pkgs; [ + alsa-plugins + # blanket + blueberry + cava + cmus + easyeffects + pavucontrol + pulsemixer + jamesdsp + # lsp-plugins + playerctl + ]; +} diff --git a/home/ebisu/meta/multimedia/audio/spotify/default.nix b/home/ebisu/meta/multimedia/audio/spotify/default.nix new file mode 100644 index 0000000..5276e07 --- /dev/null +++ b/home/ebisu/meta/multimedia/audio/spotify/default.nix @@ -0,0 +1,11 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + # spotify-edge + spotify + spotify-player + spicetify-cli + ncspot + psst + playerctl + ]; +} diff --git a/home/ebisu/meta/multimedia/browser/default.nix b/home/ebisu/meta/multimedia/browser/default.nix new file mode 100644 index 0000000..176bc9c --- /dev/null +++ b/home/ebisu/meta/multimedia/browser/default.nix @@ -0,0 +1,19 @@ +{ pkgs, inputs, ... }: +{ + imports = [ + ./thorium.nix + # ./ungoogled-chromium.nix + ]; + + home.packages = with pkgs; [ + # elinks + geckodriver + # lynx + # vieb + # ladybird + web-ext + firefox + tor-browser + (pkgs.callPackage ./zen-browser-bin.nix { }) + ]; +} diff --git a/home/ebisu/meta/multimedia/browser/thorium.nix b/home/ebisu/meta/multimedia/browser/thorium.nix new file mode 100644 index 0000000..e789275 --- /dev/null +++ b/home/ebisu/meta/multimedia/browser/thorium.nix @@ -0,0 +1,47 @@ +{ pkgs, lib, ... }: +let + thorium-archive = pkgs.fetchurl { + url = "https://github.com/Alex313031/thorium/releases/download/M126.0.6478.246/Thorium_Browser_126.0.6478.246_Th24_SSE4.AppImage"; + hash = "sha256-izYbx/mSA+l7fAh917SauHopk3UlUJo+7NjkyIGpnNA="; + }; + + version = "126.0.6478.246_Th24"; + + # https://discourse.nixos.org/t/creating-a-nix-derivation-for-an-appimage/31927 + thorium = pkgs.appimageTools.wrapType2 { + pname = "thorium"; + version = version; + src = "${thorium-archive}"; + + meta = with lib; { + description = "Chromium fork named after radioactive element No. 90. Windows and MacOS/Raspi/Android/Special builds are in different repositories, links are towards the top of the README.md."; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + homepage = "https://thorium.rocks/"; + license = licenses.bsd3; + platforms = platforms.linux; + mainProgram = "thorium-browser"; + }; + }; +in +{ + home.packages = [ thorium ]; + + xdg.configFile."thorium-flags.conf".text = '' + --enable-features=UseOzonePlatform,WaylandWindowDecorations,WebRTCPipeWireCapturer,TouchpadOverscrollHistoryNavigation + --ozone-platform=wayland + --ignore-gpu-blocklist + --enable-gpu-rasterization + --enable-zero-copy + --disable-gpu-driver-bug-workarounds + --enable-features=VaapiVideoDecoder + --enable-native-gpu-memory-buffers + --disable-features=UseSkiaRenderer + --use-cmd-decoder=passthrough + --process-per-site + --force-dark-mode + --enable-features=WebUIDarkMode + --enable-unsafe-webgpu + --gtk-version=4 + --enable-wayland-ime + ''; +} diff --git a/home/ebisu/meta/multimedia/browser/ungoogled-chromium.nix b/home/ebisu/meta/multimedia/browser/ungoogled-chromium.nix new file mode 100644 index 0000000..d492697 --- /dev/null +++ b/home/ebisu/meta/multimedia/browser/ungoogled-chromium.nix @@ -0,0 +1,23 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ ungoogled-chromium ]; + + xdg.configFile."chromium-flags.conf".text = '' + --enable-features=UseOzonePlatform,WaylandWindowDecorations,WebRTCPipeWireCapturer,TouchpadOverscrollHistoryNavigation + --ozone-platform=wayland + --ignore-gpu-blocklist + --enable-gpu-rasterization + --enable-zero-copy + --disable-gpu-driver-bug-workarounds + --enable-features=VaapiVideoDecoder + --enable-native-gpu-memory-buffers + --disable-features=UseSkiaRenderer + --use-cmd-decoder=passthrough + --process-per-site + --force-dark-mode + --enable-features=WebUIDarkMode + --enable-unsafe-webgpu + --gtk-version=4 + --enable-wayland-ime + ''; +} diff --git a/home/ebisu/meta/multimedia/browser/zen-browser-bin.nix b/home/ebisu/meta/multimedia/browser/zen-browser-bin.nix new file mode 100644 index 0000000..51a95db --- /dev/null +++ b/home/ebisu/meta/multimedia/browser/zen-browser-bin.nix @@ -0,0 +1,128 @@ +{ + stdenv, + lib, + fetchzip, + makeDesktopItem, + autoPatchelfHook, + wrapGAppsHook3, + copyDesktopItems, + gtk3, + alsa-lib, + dbus-glib, + xorg, + pciutils, + libva, + pipewire, + libglvnd, +}: +let + desktopItem = makeDesktopItem { + name = "zen-browser"; + desktopName = "Zen Browser"; + genericName = "Web Browser"; + categories = [ + "Network" + "WebBrowser" + ]; + keywords = [ + "internet" + "www" + "browser" + "web" + "explorer" + ]; + exec = "zen %u"; + icon = "zen"; + mimeTypes = [ + "text/html" + "text/xml" + "application/xhtml+xml" + "application/vnd.mozilla.xul+xml" + "x-scheme-handler/http" + "x-scheme-handler/https" + ]; + startupNotify = true; + startupWMClass = "zen-alpha"; + terminal = false; + actions = { + new-window = { + name = "New Window"; + exec = "zen --new-window %u"; + }; + new-private-window = { + name = "New Private Window"; + exec = "zen --private-window %u"; + }; + profile-manager-window = { + name = "Profile Manager"; + exec = "zen --ProfileManager %u"; + }; + }; + }; +in +stdenv.mkDerivation rec { + pname = "zen-browser-bin"; + version = "1.0.0-a.32"; + + src = fetchzip { + url = "https://github.com/zen-browser/desktop/releases/download/${version}/zen.linux-specific.tar.bz2"; + hash = "sha256-5Z+RG5UwSHM6sC1WT5KHgwL0cco2DlMTSteEfnLGrlo="; + }; + + desktopItems = [ desktopItem ]; + + nativeBuildInputs = [ + autoPatchelfHook + wrapGAppsHook3 + copyDesktopItems + ]; + + buildInputs = [ + gtk3 + alsa-lib + dbus-glib + xorg.libXtst + ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/lib + cp -r $src $out/lib/zen/ + + mkdir -p $out/bin + ln -s $out/lib/zen/zen $out/bin/zen + + for n in {16,32,48,64,128}; do + size=$n"x"$n + mkdir -p $out/share/icons/hicolor/$size/apps + file="default"$n".png" + cp $out/lib/zen/browser/chrome/icons/default/$file $out/share/icons/hicolor/$size/apps/zen.png + done + + runHook postInstall + ''; + + preFixup = '' + gappsWrapperArgs+=( + --prefix LD_LIBRARY_PATH : "${ + lib.makeLibraryPath [ + pciutils + pipewire + libva + libglvnd + ] + }" + ) + gappsWrapperArgs+=(--set MOZ_LEGACY_PROFILES 1) + wrapGApp $out/lib/zen/zen + ''; + + meta = with lib; { + license = licenses.mpl20; + maintainers = with maintainers; [ mordrag ]; + description = "Experience tranquillity while browsing the web without people tracking you! "; + platforms = platforms.linux; + mainProgram = "zen"; + }; +} diff --git a/home/ebisu/meta/multimedia/default.nix b/home/ebisu/meta/multimedia/default.nix new file mode 100644 index 0000000..86da8c4 --- /dev/null +++ b/home/ebisu/meta/multimedia/default.nix @@ -0,0 +1,16 @@ +{ pkgs, ... }: { + imports = [ + ./audio + ./browser + ./document + ./image + ./video + ]; + + home.packages = with pkgs; [ + blender + epr + nicotine-plus + qbittorrent + ]; +} diff --git a/home/ebisu/meta/multimedia/document/default.nix b/home/ebisu/meta/multimedia/document/default.nix new file mode 100644 index 0000000..d6ddbc7 --- /dev/null +++ b/home/ebisu/meta/multimedia/document/default.nix @@ -0,0 +1,8 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + libreoffice-fresh + manga-cli + zathura + thunderbird + ]; +} diff --git a/home/ebisu/meta/multimedia/image/ahoviewer.nix b/home/ebisu/meta/multimedia/image/ahoviewer.nix new file mode 100644 index 0000000..38524dc --- /dev/null +++ b/home/ebisu/meta/multimedia/image/ahoviewer.nix @@ -0,0 +1,54 @@ +{ + pkgs ? import <nixpkgs> { }, +}: +pkgs.stdenv.mkDerivation rec { + pname = "ahoviewer"; + version = "42e16f9"; + + src = pkgs.fetchFromGitHub { + owner = "ahodesuka"; + repo = pname; + rev = "42e16f94b78496e3e346f0d127baa569039a6757"; + sha256 = "sha256-HcijKiExwyBoWDvMlJ5AMA0U7BtS9EfcA54nfQ/iGvE="; + }; + + buildInputs = with pkgs; [ + meson + ninja + gtkmm3 + gtk3 + libconfig + libxml2 + curl + gst_all_1.gstreamer + gst_all_1.gst-plugins-base + libpeas + libsecret + libzip + ]; + + nativeBuildInputs = [ pkgs.pkg-config ]; + + configurePhase = '' + meson setup build --buildtype=release + ''; + + buildPhase = '' + cd build + ninja + cd .. + ''; + + installPhase = '' + mkdir -p $out/bin + cp build/src/ahoviewer $out/bin + ''; + + meta = with pkgs.lib; { + description = "A GTK image viewer, manga reader, and booru browser"; + homepage = "https://github.com/ahodesuka/ahoviewer"; + license = licenses.mit; + maintainers = with maintainers; [ ]; + platforms = platforms.linux; + }; +} diff --git a/home/ebisu/meta/multimedia/image/default.nix b/home/ebisu/meta/multimedia/image/default.nix new file mode 100644 index 0000000..5ff22b8 --- /dev/null +++ b/home/ebisu/meta/multimedia/image/default.nix @@ -0,0 +1,16 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + (pkgs.callPackage ./ahoviewer.nix { }) + emulsion + feh + imv + gallery-dl + gthumb + nsxiv + pngcrush + viewnior + viu + optipng + ]; +} diff --git a/home/ebisu/meta/multimedia/video/anime/default.nix b/home/ebisu/meta/multimedia/video/anime/default.nix new file mode 100644 index 0000000..471bb7a --- /dev/null +++ b/home/ebisu/meta/multimedia/video/anime/default.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + ani-cli + # miru + ]; +} diff --git a/home/ebisu/meta/multimedia/video/default.nix b/home/ebisu/meta/multimedia/video/default.nix new file mode 100644 index 0000000..1d5a964 --- /dev/null +++ b/home/ebisu/meta/multimedia/video/default.nix @@ -0,0 +1,18 @@ +{ pkgs, ... }: { + imports = [ + ./anime + ]; + + home.packages = with pkgs; [ + mplayer + mpv + yt-dlp + ytfzf + clapper + streamlink-twitch-gui-bin + uxplay + ffmpeg + streamlink + streamlink-twitch-gui-bin + ]; +} |