Fix audiotube

This commit is contained in:
Alexander Bantyev 2023-02-22 00:34:25 +04:00
parent e52dcef401
commit f6c6ba872c
No known key found for this signature in database
GPG Key ID: 48ABA304F3A30FE9
13 changed files with 119 additions and 49 deletions

View File

@ -1040,7 +1040,8 @@
"simple-nixos-mailserver": "simple-nixos-mailserver", "simple-nixos-mailserver": "simple-nixos-mailserver",
"simple-osd-daemons": "simple-osd-daemons", "simple-osd-daemons": "simple-osd-daemons",
"sonoff-lan": "sonoff-lan", "sonoff-lan": "sonoff-lan",
"tridactyl-native-messenger": "tridactyl-native-messenger" "tridactyl-native-messenger": "tridactyl-native-messenger",
"yt-dlp": "yt-dlp"
} }
}, },
"rust-overlay": { "rust-overlay": {
@ -1213,6 +1214,22 @@
"repo": "flake-utils", "repo": "flake-utils",
"type": "github" "type": "github"
} }
},
"yt-dlp": {
"flake": false,
"locked": {
"lastModified": 1676639476,
"narHash": "sha256-+rVcHpSCu2Wa8Noy4uINdx4S5iftYKrh1wQqpb67RQg=",
"owner": "yt-dlp",
"repo": "yt-dlp",
"rev": "18d295c9e0f95adc179eef345b7af64d6372db78",
"type": "github"
},
"original": {
"owner": "yt-dlp",
"repo": "yt-dlp",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",

View File

@ -106,6 +106,9 @@
}; };
nixos-hardware.url = "github:balsoft/nixos-hardware/add-librem-5"; nixos-hardware.url = "github:balsoft/nixos-hardware/add-librem-5";
yt-dlp.url = "github:yt-dlp/yt-dlp";
yt-dlp.flake = false;
}; };
outputs = { nixpkgs, self, nix, deploy-rs, ... }@inputs: outputs = { nixpkgs, self, nix, deploy-rs, ... }@inputs:

View File

@ -12,7 +12,9 @@
power power
hardware hardware
sound sound
plasma-mobile plasma-mobile
# phosh
nheko nheko
okular okular
@ -28,6 +30,7 @@
fonts fonts
gtk gtk
qt qt
shadowsocks
pass-secret-service pass-secret-service
]; ];

View File

@ -9,6 +9,10 @@ with types; {
default = default =
!isNull (builtins.match ".*Laptop" config.networking.hostName); !isNull (builtins.match ".*Laptop" config.networking.hostName);
}; };
isPhone = mkOption {
type = bool;
default = !isNull (builtins.match ".*Phone" config.networking.hostName);
};
devInfo = { devInfo = {
cpu = { cpu = {
arch = mkOption { type = enum [ "x86_64" "aarch64" ]; }; arch = mkOption { type = enum [ "x86_64" "aarch64" ]; };

View File

@ -45,23 +45,28 @@ let
}; };
}; };
activate-secrets = pkgs.writeShellScriptBin "activate-secrets" '' activate-secrets = pkgs.writeShellApplication {
set -euo pipefail name = "activate-secrets";
# Make sure card is available and unlocked text = ''
echo fetch | gpg --card-edit --no-tty --command-fd=0 set -euo pipefail
${pkgs.gnupg}/bin/gpg --card-status # Make sure card is available and unlocked
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)" echo fetch | gpg --card-edit --no-tty --command-fd=0
if [ -d "${password-store}/.git" ]; then gpg --card-status
cd "${password-store}"; ${pkgs.git}/bin/git pull SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
else export SSH_AUTH_SOCK
${pkgs.git}/bin/git clone ${ if [ -d "${password-store}/.git" ]; then
lib.escapeShellArg config.secretsConfig.repo cd "${password-store}"; git pull
} "${password-store}" else
fi git clone ${
cat ${password-store}/email/balsoft@balsoft.ru.gpg | ${pkgs.gnupg}/bin/gpg --decrypt > /dev/null lib.escapeShellArg config.secretsConfig.repo
sudo systemctl restart ${allServices} } "${password-store}"
''; fi
gpg --decrypt < ${password-store}/email/balsoft@balsoft.ru.gpg > /dev/null
/run/wrappers/bin/sudo systemctl restart ${allServices}
'';
runtimeInputs = [ pkgs.gnupg pkgs.git pkgs.systemd pkgs.openssh ];
};
decrypt = name: cfg: decrypt = name: cfg:
with cfg; { with cfg; {
"${name}-secrets" = rec { "${name}-secrets" = rec {

View File

@ -21,28 +21,9 @@ in rec {
propagatedBuildInputs = [ propagatedBuildInputs = [
mopidy mopidy
(python3Packages.ytmusicapi.overrideAttrs (oa: rec { python3Packages.ytmusicapi
name = "python3.9-ytmusicapi-${version}"; python3Packages.pytube
version = "0.19.1";
src = fetchFromGitHub {
owner = "sigma67";
repo = "ytmusicapi";
rev = "fd9f57750de103202106f02be1696bd440f2c05b";
sha256 = "/NMy2cGe0K/14OZd+/dXKA6Ez1ivrtrZ6Lwl0P8dioA=";
fetchSubmodules = true;
};
}))
(python3Packages.pytube.overrideAttrs (oa: rec {
name = "python3.9-pytube-${version}";
version = "11.0.1";
src = fetchFromGitHub {
owner = "pytube";
repo = "pytube";
rev = "f06e0710dcf5089e582487fee94f7bb0afbf7ba9";
sha256 = "sha256-yQCgrnoPOSdTnTPEsVkgLYpPLiHq7kXRUO72TxD152k=";
fetchSubmodules = true;
};
}))
]; ];
doCheck = false; doCheck = false;
@ -183,5 +164,23 @@ in rec {
maintainers = with maintainers; [ balsoft ]; maintainers = with maintainers; [ balsoft ];
}; };
}) { }; }) { };
audiotube = prev'.audiotube.overrideAttrs (_: {
desktopItem = final.makeDesktopItem {
name = "Audiotube";
exec = "https_proxy=socks5://localhost:5555 audiotube";
icon = "org.kde.audiotube";
type = "Application";
categories = [ "Qt" "KDE" "AudioVideo" "Player" ];
};
});
}); });
okularMobile = final.okular.overrideAttrs
(oa: { cmakeFlags = oa.cmakeFlags or [ ] ++ [ "-DOKULAR_UI=mobile" ]; });
python3Packages = prev.python3Packages.overrideScope (final': prev': {
yt-dlp = prev'.yt-dlp.overrideAttrs (_: { src = inputs.yt-dlp; });
});
} }

View File

@ -1,7 +1,12 @@
{ pkgs, lib, config, ... }: { pkgs, lib, config, ... }:
with (pkgs.my-lib.thmDec config.themes.colors); { with (pkgs.my-lib.thmDec config.themes.colors); {
home-manager.users.balsoft = { home-manager.users.balsoft = {
home.packages = [ pkgs.okular ]; home.packages = [
(if config.deviceSpecific.isPhone then
pkgs.okularMobile
else
pkgs.okular)
];
xdg.configFile."okularpartrc".text = pkgs.my-lib.genIni { xdg.configFile."okularpartrc".text = pkgs.my-lib.genIni {
"Dlg Accessibility" = { "Dlg Accessibility" = {
RecolorBackground = base00; RecolorBackground = base00;

View File

@ -19,6 +19,7 @@
"wireshark" "wireshark"
"lp" "lp"
"scanner" "scanner"
"feedbackd"
]; ];
description = "Александр Бантьев"; description = "Александр Бантьев";
uid = 1000; uid = 1000;

View File

@ -1,5 +1,13 @@
{ config, pkgs, lib, ... }: { { config, pkgs, lib, ... }: {
nixpkgs.overlays = [
(final: prev: {
kwallet = null;
kwallet-pam = null;
kwalletmanager = null;
})
];
services.xserver = { services.xserver = {
enable = true; enable = true;
desktopManager.plasma5 = { desktopManager.plasma5 = {
@ -22,7 +30,9 @@
libinput.enable = true; libinput.enable = true;
}; };
powerManagement.enable = true; programs.feedbackd.enable = true;
services.upower.enable = true;
home-manager.users.balsoft = { home-manager.users.balsoft = {
home.activation.removeGtkRc = { home.activation.removeGtkRc = {

View File

@ -197,6 +197,7 @@ in {
QT_SCALE_FACTOR = "1"; QT_SCALE_FACTOR = "1";
QT_AUTO_SCREEN_SCALE_FACTOR = "0"; QT_AUTO_SCREEN_SCALE_FACTOR = "0";
QT_QPA_PLATFORMTHEME = "kde"; QT_QPA_PLATFORMTHEME = "kde";
QT_QUICK_CONTROLS_STYLE = "org.kde.breeze";
KDEDIRS = KDEDIRS =
"/run/current-system/sw:/run/current-system/sw/share/kservices5:/run/current-system/sw/share/kservicetypes5:/run/current-system/sw/share/kxmlgui5"; "/run/current-system/sw:/run/current-system/sw/share/kservices5:/run/current-system/sw/share/kservicetypes5:/run/current-system/sw/share/kxmlgui5";
}; };
@ -216,6 +217,6 @@ in {
home.packages = [ pkgs.ark pkgs.dolphin ]; home.packages = [ pkgs.ark pkgs.dolphin ];
xdg.configFile."kdeglobals".text = lib.generators.toGitINI xdg.configFile."kdeglobals".text = lib.generators.toGitINI
(builtins.foldl' lib.recursiveUpdate { } [ colorTheme misc ]); (builtins.foldl' lib.recursiveUpdate { } [ colorTheme effects misc ]);
}; };
} }

View File

@ -1,5 +1,4 @@
{ pkgs, config, lib, ... }: { pkgs, config, lib, ... }: {
{
secrets.mopidy_ytmusic_auth = { secrets.mopidy_ytmusic_auth = {
owner = "mopidy:mopidy"; owner = "mopidy:mopidy";
services = [ "mopidy" ]; services = [ "mopidy" ];
@ -7,7 +6,7 @@
services.mopidy = { services.mopidy = {
enable = true; enable = true;
extensionPackages = with pkgs; [ mopidy-mpd mopidy-ytmusic ]; extensionPackages = with pkgs; [ mopidy-mpd /*mopidy-ytmusic*/ ];
configuration = '' configuration = ''
[ytmusic] [ytmusic]
enabled=true enabled=true
@ -16,12 +15,10 @@
hostname = 0.0.0.0 hostname = 0.0.0.0
port = 6600 port = 6600
[audio] [audio]
output = pulsesink server=127.0.0.1 output = autoaudiosink
''; '';
}; };
systemd.services.mopidy = { systemd.services.mopidy = { after = [ "network-online.target" ]; environment.https_proxy = "socks5://localhost:5555"; };
after = [ "network-online.target" ];
};
} }

View File

@ -0,0 +1,24 @@
{ config, pkgs, ... }: {
secrets.shadowsocks_options = {
owner = "shadowsocks:shadowsocks";
services = [ "shadowsocks" ];
};
users.users.shadowsocks = {
isSystemUser = true;
group = "shadowsocks";
};
users.groups.shadowsocks = { };
systemd.services.shadowsocks = {
script = "ss-local -l 5555 $(cat ${config.secrets.shadowsocks_options})";
path = [ pkgs.shadowsocks-libev ];
serviceConfig = {
User = "shadowsocks";
Group = "shadowsocks";
};
wantedBy = [ "multi-user.target" ];
};
}

View File

@ -49,5 +49,6 @@
simple-osd-daemons simple-osd-daemons
sway sway
yubikey-touch-detector yubikey-touch-detector
shadowsocks
]; ];
} }