Wroclaw
cdd5121026
waypipe is provided through core module because maybe I'll want to use it on servers without desktop who knows
172 lines
4.4 KiB
Nix
172 lines
4.4 KiB
Nix
{config, lib, pkgs, ... }:
|
|
|
|
{
|
|
imports = [
|
|
./generic/mpv.nix
|
|
./xdg-default-apps.nix
|
|
];
|
|
config = {
|
|
services.printing.enable = true;
|
|
|
|
hardware.pulseaudio.enable = false;
|
|
security.rtkit.enable = true;
|
|
services.pipewire = {
|
|
enable = true;
|
|
alsa.enable = true;
|
|
alsa.support32Bit = true;
|
|
pulse.enable = true;
|
|
|
|
# Enable audio interfaces renaming
|
|
wireplumber.enable = true;
|
|
};
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
kdePackages.kdeconnect-kde
|
|
pcmanfm
|
|
qimgv
|
|
];
|
|
|
|
programs.mpv = let
|
|
fetchMpvScript = {url, hash, scriptName}: pkgs.fetchurl {
|
|
inherit url hash;
|
|
name = "mpv-script-${scriptName}";
|
|
recursiveHash = true;
|
|
downloadToTemp = true;
|
|
postFetch = ''
|
|
mkdir -p $out/share/mpv/scripts
|
|
mv $downloadedFile $out/share/mpv/scripts/${scriptName}
|
|
'';
|
|
passthru.scriptName = scriptName;
|
|
};
|
|
in {
|
|
enable = true;
|
|
scripts = [
|
|
pkgs.mpvScripts.sponsorblock
|
|
pkgs.mpvScripts.mpris
|
|
] ++ lib.map (script: fetchMpvScript {
|
|
url = "https://raw.githubusercontent.com/occivink/mpv-scripts/d0390c8e802c2e888ff4a2e1d5e4fb040f855b89/scripts/${script.name}";
|
|
hash = script.hash;
|
|
scriptName = script.name;
|
|
}) [
|
|
{ name = "crop.lua"; hash = "sha256-/uaTCtV8Aanvnxrt8afBbO4uu2xp8Ec6DxApMb+fg2s="; }
|
|
{ name = "encode.lua"; hash = "sha256-yK/DV0cpGhl4Uobl7xA1myZiECJpsShrHnsJftBqzAY="; }
|
|
];
|
|
settings = {
|
|
mpv = {
|
|
keep-open = "yes";
|
|
volume = "40";
|
|
osd-fractions = "yes";
|
|
background = "0.0/1.0";
|
|
alpha = "yes";
|
|
};
|
|
input = lib.mkMerge [
|
|
# mpv core
|
|
''
|
|
Alt+1 set window-scale 0.125
|
|
Alt+2 set window-scale 0.25
|
|
Alt+3 set window-scale 0.5
|
|
Alt+4 set window-scale 1
|
|
Alt+5 set window-scale 2
|
|
''
|
|
# crop.lua
|
|
''
|
|
c script-message-to crop start-crop hard
|
|
alt+c script-message-to crop start-crop soft
|
|
ctrl+shift+c script-message-to crop start-crop delogo
|
|
C script-message-to crop toggle-crop hard
|
|
''
|
|
# encode.lua
|
|
''
|
|
b script-message-to encode encode_default
|
|
alt+b script-message-to encode set-timestamp encode_default
|
|
''
|
|
];
|
|
script-opts = {
|
|
"encode_default.conf" = {
|
|
only_active_tracks = "no";
|
|
preserve_filters = "yes";
|
|
append_filder = "";
|
|
codec = "";
|
|
output_format = "$f_$n.$x";
|
|
output_dir = "/tmp";
|
|
detached = "no";
|
|
ffmpeg_command = lib.getExe pkgs.ffmpeg;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
# Fonts
|
|
fonts.packages = with pkgs; [
|
|
corefonts
|
|
(nerdfonts.override { fonts = [ "Meslo" ]; })
|
|
roboto
|
|
];
|
|
|
|
# Pcmanfm configuration
|
|
environment.etc."xdg/pcmanfm/default/pcmanfm.conf".text = ''
|
|
[config]
|
|
bm_open_method=0
|
|
|
|
[volume]
|
|
mount_on_startup=0
|
|
mount_removable=0
|
|
autorun=0
|
|
|
|
[ui]
|
|
always_show_tabs=1
|
|
max_tab_chars=32
|
|
media_in_new_tab=0
|
|
desktop_folder_new_win=0
|
|
change_tab_on_drop=1
|
|
close_on_unmount=1
|
|
focus_previous=1
|
|
side_pane_mode=places
|
|
view_mode=list
|
|
show_hidden=1
|
|
sort=name;ascending;
|
|
toolbar=newwin;newtab;navigation;home;
|
|
show_statusbar=1
|
|
pathbar_mode_buttons=0
|
|
'';
|
|
|
|
environment.etc."xdg/libfm/libfm.conf".text = ''
|
|
[config]
|
|
single_click=0
|
|
use_trash=1
|
|
confirm_del=1
|
|
confirm_trash=1
|
|
advanced_mode=0
|
|
si_unit=0
|
|
force_startup_notify=1
|
|
backup_as_hidden=1
|
|
no_usb_trash=1
|
|
no_child_non_expandable=0
|
|
show_full_names=0
|
|
only_user_templates=0
|
|
drop_default_action=auto
|
|
terminal=${lib.optionalString (lib.elem pkgs.kitty config.environment.systemPackages) "kitty"}
|
|
archiver=file-roller
|
|
thumbnail_local=1
|
|
thumbnail_max=16384
|
|
|
|
[ui]
|
|
big_icon_size=48
|
|
small_icon_size=16
|
|
pane_icon_size=16
|
|
thumbnail_size=128
|
|
show_thumbnail=1
|
|
shadow_hidden=1
|
|
|
|
[places]
|
|
places_home=1
|
|
places_desktop=1
|
|
places_root=1
|
|
places_computer=1
|
|
places_trash=1
|
|
places_applications=1
|
|
places_network=1
|
|
places_unmounted=1
|
|
'';
|
|
};
|
|
}
|