Replace modules/audio/* with daw module
And add custom lmms package, since the upstream is currently broken (NixOS/nixpkgs#76074).
This commit is contained in:
parent
3e823d3b44
commit
96ffd97ac6
|
@ -1,7 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
audacity
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
lmms
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,37 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
# services.spotifyd doesn't work so we'll have to roll our own spotifyd +
|
|
||||||
# spotify-tui solution. I can't get the dbus interface doesn't work, though,
|
|
||||||
# so we have to wait for spotify-tui to implement CLI command for controlling
|
|
||||||
# spotify playback (see https://github.com/Rigellute/spotify-tui/issues/147)
|
|
||||||
# or for spotifyd to get fixed.
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
unstable.spotifyd
|
|
||||||
(writeScriptBin "spt" ''
|
|
||||||
#!${stdenv.shell}
|
|
||||||
if ! systemctl --user is-active spotifyd >/dev/null; then
|
|
||||||
systemctl --user start spotifyd
|
|
||||||
fi
|
|
||||||
${unstable.spotify-tui}/bin/spt
|
|
||||||
'')
|
|
||||||
|
|
||||||
# spotify-tui is fine for selecting and playing music, but incomplete. We
|
|
||||||
# occasionally still need the official client for more sophisticated search
|
|
||||||
# and the "made for you" playlists.
|
|
||||||
spotify
|
|
||||||
];
|
|
||||||
|
|
||||||
systemd.user.services.spotifyd.serviceConfig =
|
|
||||||
let spotifydConf = pkgs.writeText "spotifyd.conf" ''
|
|
||||||
[global]
|
|
||||||
username = accounts@v0.io
|
|
||||||
password_cmd = ${pkgs.pass}/bin/pass www/spotify.com | head -n1
|
|
||||||
backend = pulseaudio
|
|
||||||
'';
|
|
||||||
in {
|
|
||||||
ExecStart = "${pkgs.unstable.spotifyd}/bin/spotifyd --no-daemon --cache-path /tmp/spotifyd --config-path ${spotifydConf}";
|
|
||||||
Restart = "always";
|
|
||||||
RestartSec = 6;
|
|
||||||
};
|
|
||||||
}
|
|
18
modules/daw.nix
Normal file
18
modules/daw.nix
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
# I make music for my games. LMMS is my DAW. Fruityloops too, on my Windows
|
||||||
|
# system, but I'm slowly phasing it out for open-source alternatives. When I'm
|
||||||
|
# in the mood for a quick chiptune, I fire up sunvox instead -- it runs
|
||||||
|
# absolutely anywhere, even on my ipad and phone.
|
||||||
|
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
{
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
audacity # for recording and remastering audio
|
||||||
|
# lmms # for making music
|
||||||
|
sunvox # for making music (where LMMS is overkill)
|
||||||
|
|
||||||
|
# Build our own LMMS because the built-in nixpkg is broken, due to a 'Could
|
||||||
|
# not find the Qt platform plugin "xcb" in ""' error on startup:
|
||||||
|
# https://github.com/NixOS/nixpkgs/issues/76074
|
||||||
|
(callPackage <packages/lmms.nix> {})
|
||||||
|
];
|
||||||
|
}
|
42
packages/lmms.nix
Normal file
42
packages/lmms.nix
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
{ appimageTools, fetchurl, lib, gsettings-desktop-schemas, gtk3, makeDesktopItem }:
|
||||||
|
|
||||||
|
let pname = "lmms";
|
||||||
|
version = "1.2.1";
|
||||||
|
desktopItem = makeDesktopItem {
|
||||||
|
name = pname;
|
||||||
|
desktopName = "LMMS";
|
||||||
|
comment = "Cross-platform music production software";
|
||||||
|
icon = "lmms";
|
||||||
|
terminal = "false";
|
||||||
|
exec = pname;
|
||||||
|
categories = "Audio";
|
||||||
|
};
|
||||||
|
in appimageTools.wrapType2 rec {
|
||||||
|
name = "${pname}-${version}";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://github.com/LMMS/lmms/releases/download/v${version}/${name}-linux-x86_64.AppImage";
|
||||||
|
sha256 = "0aa63c3fv84wrny7vp7ycdvapp21j09kllzs1xybb19wdkdd863v";
|
||||||
|
};
|
||||||
|
|
||||||
|
profile = ''
|
||||||
|
export LC_ALL=C.UTF-8
|
||||||
|
export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
|
||||||
|
'';
|
||||||
|
|
||||||
|
extraPkgs = p: (appimageTools.defaultFhsEnvArgs.multiPkgs p);
|
||||||
|
extraInstallCommands = ''
|
||||||
|
mv $out/bin/{${name},${pname}}
|
||||||
|
chmod +x $out/bin/${pname}
|
||||||
|
mkdir -p "$out/share/applications/"
|
||||||
|
cp "${desktopItem}"/share/applications/* "$out/share/applications/"
|
||||||
|
substituteInPlace $out/share/applications/*.desktop --subst-var out
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Cross-platform music production software";
|
||||||
|
homepage = https://lmms.io;
|
||||||
|
license = licenses.gpl2Plus;
|
||||||
|
platforms = [ "x86_64-linux" "i686-linux" ];
|
||||||
|
maintainers = with maintainers; [ hlissner ];
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue