diff --git a/flake.lock b/flake.lock index 2fa2828..253a952 100644 --- a/flake.lock +++ b/flake.lock @@ -135,11 +135,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1738721195, - "narHash": "sha256-fg7RyZh7lIXIemVIXNWqoBAXb2Ro5h6P9HJWDMuYi4U=", + "lastModified": 1738747026, + "narHash": "sha256-ohbCR94xorgPky/czzNGca2Lxe2RxmB+E85pOInGp54=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "9af406ea66edc730a2c64cf82b74a03513b94f5e", + "rev": "abfa104fff496f9eb7a091728af73067ccf8802d", "type": "github" }, "original": { @@ -508,11 +508,11 @@ ] }, "locked": { - "lastModified": 1738709900, - "narHash": "sha256-8Bo5xFlCH5q72ExvAnH7TzStMlLZldKOSLMClRSfmTc=", + "lastModified": 1738753876, + "narHash": "sha256-yXT82kERWL4R81hfun9BuT478Q6ut0dJzdQjAxjRS38=", "owner": "nix-community", "repo": "home-manager", - "rev": "f2d32e46fac9d51da6912948ae1156044c71774b", + "rev": "f20b7a8ab527a2482f13754dc00b2deaddc34599", "type": "github" }, "original": { @@ -670,11 +670,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1738665072, - "narHash": "sha256-iy2uwDPV1W7E9qvCi18hHE43UMTqwsma5pMCL8kUvgs=", + "lastModified": 1738748191, + "narHash": "sha256-pFviZDdMHOgctZKqoCrzWTy8PgwuRWVbE6PRGqSYxLA=", "owner": "hyprwm", "repo": "hyprlock", - "rev": "ec82da71084b391a540f75e3548458258abda9cc", + "rev": "ce750456f9863d9d821fd0a2dc28d0b8ac0b5e26", "type": "github" }, "original": { @@ -878,11 +878,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1738654964, - "narHash": "sha256-30l3hOfTW1kJXcTRQsJ9f0/wE1aaTTACKb4ch6ZlLNU=", + "lastModified": 1738768006, + "narHash": "sha256-56jDYr/vqX4fobMJO2nWLjih03i6UV5bKtxI0nR4ZZA=", "owner": "YaLTeR", "repo": "niri", - "rev": "7d24ad23c2bc690b22b1f13ad4598dc8323d128b", + "rev": "690d6355057ebeba03cbd8ce4905145b834c72f8", "type": "github" }, "original": { @@ -989,11 +989,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1738574474, - "narHash": "sha256-rvyfF49e/k6vkrRTV4ILrWd92W+nmBDfRYZgctOyolQ=", + "lastModified": 1738702386, + "narHash": "sha256-nJj8f78AYAxl/zqLiFGXn5Im1qjFKU8yBPKoWEeZN5M=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "fecfeb86328381268e29e998ddd3ebc70bbd7f7c", + "rev": "030ba1976b7c0e1a67d9716b17308ccdab5b381e", "type": "github" }, "original": { @@ -1608,11 +1608,11 @@ "rust-overlay": "rust-overlay_3" }, "locked": { - "lastModified": 1738657731, - "narHash": "sha256-TfqSe8oywhZEIBs//PI7WXy+PtfkJTEbmFJ5tfXHvcM=", + "lastModified": 1738762515, + "narHash": "sha256-0LIVLou8bMYf4guwRy6YTNhMwwKWC4Ty1pg0bHm4588=", "owner": "sxyazi", "repo": "yazi", - "rev": "4e96341f512522d948977f5dc97a32c0c88f447b", + "rev": "e9fcab3b375afef4b0083687388b90e060a55a37", "type": "github" }, "original": { diff --git a/homes/emenel/default.nix b/homes/emenel/default.nix index 413885a..34ea820 100644 --- a/homes/emenel/default.nix +++ b/homes/emenel/default.nix @@ -12,6 +12,8 @@ mako mpv yazi + hyprlock + hypridle ]; home = { @@ -36,6 +38,7 @@ the-usual-suspects.xenia the-usual-suspects.ostirus the-usual-suspects.osirus + # bitwig-studio-beta ]) (with pkgs; [ @@ -170,6 +173,7 @@ procs rpi-imager caligula + flatpak prusa-slicer @@ -288,6 +292,7 @@ onlyoffice-desktopeditors libreoffice hyphenDicts.en_US + plex-mpv-shim plexamp rmpc resources @@ -642,8 +647,6 @@ enable = true; package = pkgs.playerctl; }; - - flatpak.enable = true; syncthing = { enable = true; # tray.enable = true; @@ -702,11 +705,15 @@ "/home/emenel/.nix-profile/share/applications" ]; - services.flatpak.packages = [ - "com.github.tchx84.Flatseal" - "nl.hjdskes.gcolor3" - "dev.qwery.AddWater" - ]; + services.flatpak = { + enable = true; + packages = [ + "com.github.tchx84.Flatseal" + "nl.hjdskes.gcolor3" + "dev.qwery.AddWater" + "tv.plex.PlexDesktop" + ]; + }; systemd.user = { enable = true; diff --git a/homes/emenel/dotfiles/dot_config/wezterm/wezterm.lua b/homes/emenel/dotfiles/dot_config/wezterm/wezterm.lua index 41f5ba3..dfbda15 100644 --- a/homes/emenel/dotfiles/dot_config/wezterm/wezterm.lua +++ b/homes/emenel/dotfiles/dot_config/wezterm/wezterm.lua @@ -165,30 +165,30 @@ tabline.setup({ inactive_hover = { fg = '#cccccc', bg = '#111111' }, }, normal_mode = { - a = { bg = "#333333", fg = "#eeeeee" }, + a = { bg = "#111111", fg = "#eeeeee" }, b = { bg = "#111111", fg = "#eeeeee" }, c = { bg = "#111111", fg = "#eeeeee" }, x = { bg = "#111111", fg = "#eeeeee" }, y = { bg = "#111111", fg = "#eeeeee" }, - z = { bg = "#333333", fg = "#eeeeee" }, + z = { bg = "#111111", fg = "#eeeeee" }, }, copy_mode = { b = { bg = "#222222", fg = "#eeeeee" } } }, - -- section_separators = { - -- left = wezterm.nerdfonts.ple_right_half_circle_thick, - -- right = wezterm.nerdfonts.ple_left_half_circle_thick, - -- }, - -- component_separators = { - -- left = wezterm.nerdfonts.ple_right_half_circle_thin, - -- right = wezterm.nerdfonts.ple_left_half_circle_thin, - -- }, - -- tab_separators = { - -- left = wezterm.nerdfonts.ple_right_half_circle_thick, - -- right = wezterm.nerdfonts.ple_left_half_circle_thick, - -- }, - -- icons_enabled = true, + section_separators = { + left = " ", + right = " ", + }, + component_separators = { + left = " ", + right = " ", + }, + tab_separators = { + left = " ", + right = " ", + }, + icons_enabled = true, tabs_enabled = true, }, sections = { diff --git a/hosts/eddie/configuration.nix b/hosts/eddie/configuration.nix index b10c3b2..1a1de47 100644 --- a/hosts/eddie/configuration.nix +++ b/hosts/eddie/configuration.nix @@ -310,6 +310,7 @@ xdg.portal = { enable = true; + xdgOpenUsePortal = true; extraPortals = [ pkgs.xdg-desktop-portal-gnome pkgs.xdg-desktop-portal-gtk diff --git a/modules/home/hyprlock.nix b/modules/home/hyprlock.nix index fff4323..0c323d9 100644 --- a/modules/home/hyprlock.nix +++ b/modules/home/hyprlock.nix @@ -24,7 +24,7 @@ font_color = "rgb(0,0,0)"; fade_on_empty = false; check_color = "rgb(204, 136, 34)"; - placeholder_text = "hm ..."; + placeholder_text = "hm ..."; hide_input = false; position = "0, 0"; halign = "center"; @@ -51,8 +51,8 @@ font_size = 32; font_family = "JetBrains Mono"; position = "0, 200"; - halign = center; - valign = center; + halign = "center"; + valign = "center"; } ]; diff --git a/overlays/bitwig-studio.nix b/overlays/bitwig-studio.nix index 561c55a..0cb2a13 100644 --- a/overlays/bitwig-studio.nix +++ b/overlays/bitwig-studio.nix @@ -1,5 +1,5 @@ final: prev: { - bitwig-studio-unwrapped = prev.bitwig-studio-unwrapped.overrideAttrs (old: { + bitwig-studio = prev.bitwig-studio.overrideAttrs (old: { src = prev.fetchurl { name = "bitwig-studio-5.3-beta-7.deb"; url = "https://downloads-secure.bitwig.com/5.3%20Beta%207/bitwig-studio-5.3-beta-7.deb?__token__=st=1738511951.0~exp=1738512551.0~hmac=06d510d143491f9bf2444aec8b2876ea606d9208e2753dcf15710fb3c2ceb0d3&source_url=/dl/Bitwig%20Studio/5.3%20Beta%207/installer_linux/"; diff --git a/packages/bitwig-studio-beta/bitwig-studio-unwrapped.nix b/packages/bitwig-studio-beta/bitwig-studio-unwrapped.nix new file mode 100644 index 0000000..cfd53c2 --- /dev/null +++ b/packages/bitwig-studio-beta/bitwig-studio-unwrapped.nix @@ -0,0 +1,146 @@ +{ + stdenv, + fetchurl, + alsa-lib, + atk, + cairo, + dpkg, + ffmpeg, + freetype, + gdk-pixbuf, + glib, + gtk3, + harfbuzz, + lib, + libglvnd, + libjack2, + libjpeg, + libnghttp2, + libxkbcommon, + makeWrapper, + pango, + pipewire, + wireplumber, + pulseaudio, + vulkan-loader, + wrapGAppsHook3, + xcb-imdkit, + xdg-utils, + xorg, + zlib, +}: + +stdenv.mkDerivation rec { + pname = "bitwig-studio-unwrapped"; + version = "5.3-beta-6"; + + src = fetchurl { + name = "bitwig-studio-${version}.deb"; + url = "https://downloads-secure.bitwig.com/5.3%20Beta%206/bitwig-studio-5.3-beta-6.deb?__token__=st=1737819113.0~exp=1737819713.0~hmac=4f89ac2fb395e08a914fe57eb46d2313b2d5288f981d0f7e2da9089325c4c099&source_url=/dl/Bitwig%20Studio/5.3%20Beta%206/installer_linux/"; + sha256 = "sha256-DE5qWSAcOJHThAXdQouOVRkFNhuzZD9j8gphByaQEis="; + + }; + + nativeBuildInputs = [ + dpkg + makeWrapper + wrapGAppsHook3 + ]; + + dontBuild = true; + dontWrapGApps = true; # we only want $gappsWrapperArgs here + + buildInputs = with xorg; [ + alsa-lib + atk + cairo + freetype + gdk-pixbuf + glib + gtk3 + harfbuzz + libglvnd + libjack2 + # libjpeg8 is required for converting jpeg's to colour palettes + libjpeg + libnghttp2 + libxcb + libXcursor + libX11 + libXtst + libxkbcommon + pango + pipewire + wireplumber + pulseaudio + (lib.getLib stdenv.cc.cc) + vulkan-loader + xcb-imdkit + xcbutil + xcbutilwm + zlib + ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + cp -r opt/bitwig-studio $out/libexec + ln -s $out/libexec/bitwig-studio $out/bin/bitwig-studio + cp -r usr/share $out/share + + # Bitwig includes a copy of libxcb-imdkit. + # Removing it will force it to use our version. + rm $out/libexec/lib/bitwig-studio/libxcb-imdkit.so.1 + + substitute usr/share/applications/com.bitwig.BitwigStudio.desktop \ + $out/share/applications/com.bitwig.BitwigStudio.desktop \ + --replace /usr/bin/bitwig-studio $out/bin/bitwig-studio + + runHook postInstall + ''; + + postFixup = '' + # patchelf fails to set rpath on BitwigStudioEngine, so we use + # the LD_LIBRARY_PATH way + + find $out -type f -executable \ + -not -name '*.so.*' \ + -not -name '*.so' \ + -not -name '*.jar' \ + -not -name 'jspawnhelper' \ + -not -path '*/resources/*' | \ + while IFS= read -r f ; do + patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" $f + # make xdg-open overrideable at runtime + wrapProgram $f \ + "''${gappsWrapperArgs[@]}" \ + --prefix PATH : "${lib.makeBinPath [ ffmpeg ]}" \ + --suffix PATH : "${lib.makeBinPath [ xdg-utils ]}" \ + --suffix LD_LIBRARY_PATH : "${lib.strings.makeLibraryPath buildInputs}" + done + + find $out -type f -executable -name 'jspawnhelper' | \ + while IFS= read -r f ; do + patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" $f + done + ''; + + meta = with lib; { + description = "Digital audio workstation"; + longDescription = '' + Bitwig Studio is a multi-platform music-creation system for + production, performance and DJing, with a focus on flexible + editing tools and a super-fast workflow. + ''; + homepage = "https://www.bitwig.com/"; + license = licenses.unfree; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ + bfortz + michalrus + mrVanDalo + ]; + sourceProvenance = [ lib.sourceTypes.binaryNativeCode ]; + }; +} diff --git a/packages/bitwig-studio-beta/package.nix b/packages/bitwig-studio-beta/package.nix new file mode 100644 index 0000000..0bda040 --- /dev/null +++ b/packages/bitwig-studio-beta/package.nix @@ -0,0 +1,49 @@ +{ + stdenv, + bubblewrap, + mktemp, + writeShellScript, + bitwig-studio-unwrapped, +}: +stdenv.mkDerivation { + inherit (bitwig-studio-unwrapped) version; + + pname = "bitwig-studio"; + + dontUnpack = true; + dontConfigure = true; + dontBuild = true; + dontPatchELF = true; + dontStrip = true; + + installPhase = + let + wrapper = writeShellScript "bitwig-studio" '' + set -e + + echo "Creating temporary directory" + TMPDIR=$(${mktemp}/bin/mktemp --directory) + echo "Temporary directory: $TMPDIR" + echo "Copying default Vamp Plugin settings" + cp -r ${bitwig-studio-unwrapped}/libexec/resources/VampTransforms $TMPDIR + echo "Changing permissions to be writable" + chmod -R u+w $TMPDIR/VampTransforms + + echo "Starting Bitwig Studio in Bubblewrap Environment" + ${bubblewrap}/bin/bwrap \ + --bind / / \ + --bind $TMPDIR/VampTransforms ${bitwig-studio-unwrapped}/libexec/resources/VampTransforms \ + --dev-bind /dev /dev \ + ${bitwig-studio-unwrapped}/bin/bitwig-studio \ + || true + + echo "Bitwig exited, removing temporary directory" + rm -rf $TMPDIR + ''; + in + '' + mkdir -p $out/bin + cp ${wrapper} $out/bin/bitwig-studio + cp -r ${bitwig-studio-unwrapped}/share $out + ''; +}