this repo has no description
1{
2 config,
3 lib,
4 pkgs,
5 ...
6}: {
7 options.cow.qmplay2.enable = lib.mkEnableOption "QMPlay2 + customizations and yt-dlp";
8
9 config = let
10 mkQMPlayFile = lib.generators.toINI {};
11 mkConfigDir = files:
12 lib.mapAttrs' (
13 name: value: lib.nameValuePair ("QMPlay2/" + name + ".ini") {text = mkQMPlayFile value;}
14 )
15 files;
16 in
17 lib.mkIf config.cow.qmplay2.enable {
18 home.packages = with pkgs; [
19 qmplay2
20 ];
21
22 xdg.configFile = mkConfigDir {
23 ALSA.General = {
24 AutoFindMultichnDev = true;
25 Delay = 0.1;
26 OutputDevice = "default";
27 WriterEnabled = true;
28 };
29 AudioCD.AudioCD = {
30 CDDB = true;
31 CDTEXT = true;
32 };
33 AudioFilters = {
34 General = {
35 AVAudioFilter = false;
36 BS2B = false;
37 Compressor = false;
38 Echo = false;
39 Equalizer = false;
40 PhaseReverse = false;
41 SwapStereo = false;
42 VoiceRemoval = false;
43 };
44
45 AVAudioFilter.Filters = "@ByteArray()";
46
47 BS2B = {
48 Fcut = 700;
49 Feed = 4.5;
50 };
51
52 Compressor = {
53 FastGainCompressionRatio = 0.9;
54 OverallCompressionRatio = 0.6;
55 PeakPercent = 90;
56 ReleaseTime = 0.2;
57 };
58
59 Echo = {
60 Delay = 500;
61 Feedback = 50;
62 Surround = false;
63 Volume = 50;
64 };
65
66 Equalizer = {
67 "-1" = 50;
68 "0" = 50;
69 "1" = 50;
70 "2" = 50;
71 "3" = 50;
72 "4" = 50;
73 "5" = 50;
74 "6" = 50;
75 "7" = 50;
76 count = 8;
77 maxFreq = 18000;
78 minFreq = 200;
79 nbits = 10;
80 };
81
82 PhaseReverse = {
83 ReverseRight = false;
84 };
85 };
86 CUVID.General = {
87 DecodeMPEG4 = true;
88 DeintMethod = 2;
89 Enabled = true;
90 };
91 Chiptune.General = {
92 DefaultLength = 180;
93 GME = true;
94 SIDPlay = true;
95 };
96 Extensions = {
97 LastFM = {
98 AllowBigCovers = true;
99 DownloadCovers = true;
100 Login = null;
101 Password = null;
102 UpdateNowPlayingAndScrobble = false;
103 };
104
105 MPRIS2.Enabled = true;
106
107 YouTube = {
108 ShowUserName = false;
109 SortBy = 0;
110 Subtitles = true;
111 };
112 };
113 FFmpeg.General = {
114 AllowExperimental = true;
115 DecoderEnabled = true;
116 DecoderVAAPIEnabled = true;
117 DecoderVkVideoEnabled = true;
118 DemuxerEnabled = true;
119 ForceSkipFrames = false;
120 HurryUP = true;
121 LowresValue = 0;
122 ReconnectNetwork = true;
123 SkipFrames = true;
124 TeletextPage = 0;
125 TeletextTransparent = false;
126 ThreadTypeSlice = false;
127 Threads = 0;
128 VAAPIDeintMethod = 1;
129 };
130 Modplug.General = {
131 ModplugEnabled = true;
132 ModplugResamplingMethod = 3;
133 };
134 Notify.General = {
135 CustomBody = null;
136 CustomMsg = false;
137 CustomSummary = null;
138 Enabled = false;
139 ShowPlayState = true;
140 ShowTitle = true;
141 ShowVolume = true;
142 Timeout = 5000;
143 };
144 Playlists.General = {
145 M3U_enabled = true;
146 XSPF_enabled = true;
147 };
148 PulseAudio.General = {
149 Delay = 0.1;
150 WriterEnabled = true;
151 };
152 QMPlay2 = {
153 General = {
154 AVBufferLocal = 100;
155 AVBufferTimeNetwork = 500;
156 AVBufferTimeNetworkLive = 5;
157 AccurateSeek = 2;
158 AllowOnlyOneInstance = false;
159 AudioLanguage = null;
160 AutoDelNonGroupEntries = false;
161 AutoOpenVideoWindow = true;
162 AutoRestoreMainWindowOnVideo = true;
163 AutoUpdates = false;
164 BackwardBuffer = 1;
165 BlurCovers = true;
166 Channels = 2;
167 DisableSubtitlesAtStartup = false;
168 DisplayOnlyFileName = false;
169 EnlargeCovers = false;
170 FallbackSubtitlesEncoding = "@ByteArray(UTF-8)";
171 ForceChannels = 0;
172 ForceSamplerate = false;
173 HideArtistMetadata = false;
174 IconsFromTheme = true;
175 IgnorePlaybackError = false;
176 KeepARatio = false;
177 KeepSpeed = false;
178 KeepSubtitlesDelay = false;
179 KeepSubtitlesScale = false;
180 KeepVideoDelay = false;
181 KeepZoom = false;
182 LastQMPlay2Path = "${pkgs.qmplay2}/bin";
183 LeftMouseTogglePlay = 0;
184 LongSeek = 30;
185 MaxVol = 100;
186 MiddleMouseToggleFullscreen = false;
187 Mute = false;
188 NoCoversCache = false;
189 OutputFilePath = "/home/bean/Downloads";
190 PlayIfBuffered = 1.75;
191 Renderer = "opengl";
192 RepeatMode = 0;
193 ResamplerFirst = true;
194 RestoreAVSState = false;
195 RestoreRepeatMode = false;
196 RestoreVideoEqualizer = false;
197 Samplerate = 48000;
198 SavePos = false;
199 ShortSeek = 5;
200 ShowBufferedTimeOnSlider = true;
201 ShowCovers = true;
202 ShowDirCovers = true;
203 Silence = true;
204 SkipPlaylistsWithinFiles = true;
205 SkipYtDlpUpdate = false;
206 StillImages = false;
207 StoreARatioAndZoom = false;
208 StoreUrlPos = true;
209 Style = "kvantum";
210 SubtitlesLanguage = null;
211 SyncVtoA = true;
212 TrayNotifiesDefault = false;
213 TrayVisible = true;
214 UnpauseWhenSeeking = false;
215 UpdateVersion = pkgs.qmplay2.version;
216 Version = "@ByteArray(${pkgs.qmplay2.version})";
217 VideoFilters = "0FPS Doubler";
218 VolumeL = 100;
219 VolumeR = 100;
220 WheelAction = true;
221 WheelSeek = true;
222 screenshotFormat = ".png";
223 screenshotPth = "/home/bean/Pictures/Screenshots";
224 };
225
226 ApplyToASS = {
227 ApplyToASS = false;
228 ColorsAndBorders = true;
229 FontsAndSpacing = false;
230 MarginsAndAlignment = false;
231 };
232
233 Deinterlace = {
234 Auto = true;
235 AutoParity = true;
236 Doubler = true;
237 ON = true;
238 SoftwareMethod = ''Yadif 2x'';
239 TFF = false;
240 };
241
242 MainWidget = {
243 AlwaysOnTop = false;
244 CompactViewDockWidgetState = ''@ByteArray()'';
245 DockWidgetState = ''@ByteArray()'';
246 FullScreenDockWidgetState = ''@ByteArray()'';
247 Geometry = ''@Rect(226 151 1805 1203)'';
248 IsCompactView = false;
249 KeepDocksSize = false;
250 TabPositionNorth = false;
251 WidgetsLocked = true;
252 isMaximized = true;
253 isVisible = true;
254 };
255
256 OSD = {
257 Alignment = 4;
258 Background = false;
259 BackgroundColor = ''@Variant(\0\0\0\x43\x1\x88\x88\0\0\0\0\0\0\0\0)'';
260 Bold = false;
261 Enabled = true;
262 FontName = "Sans Serif";
263 FontSize = 32;
264 LeftMargin = 0;
265 Outline = 1.5;
266 OutlineColor = ''@Variant(\0\0\0\x43\x1\xff\xff\0\0\0\0\0\0\0\0)'';
267 RightMargin = 0;
268 Shadow = 1.5;
269 ShadowColor = ''@Variant(\0\0\0\x43\x1\xff\xff\0\0\0\0\0\0\0\0)'';
270 Spacing = 0;
271 TextColor = ''@Variant(\0\0\0\x43\x1\xff\xff\xaa\xaa\xff\xffUU\0\0)'';
272 VMargin = 0;
273 };
274
275 OpenGL = {
276 BypassCompositor = false;
277 OnWindow = false;
278 VSync = true;
279 };
280
281 Proxy = {
282 Host = null;
283 Login = false;
284 Password = ''@ByteArray()'';
285 Port = 80;
286 Use = false;
287 User = null;
288 };
289
290 ReplayGain = {
291 Album = false;
292 Enabled = false;
293 Preamp = 0;
294 PreventClipping = true;
295 };
296
297 SettingsWidget.Geometry = ''@Rect(395 263 2212 1308)'';
298
299 Subtitles = {
300 Alignment = 7;
301 Background = true;
302 BackgroundColor = ''@Variant(\0\0\0\x43\x1\x88\x88\0\0\0\0\0\0\0\0)'';
303 Bold = false;
304 FontName = "monospace";
305 FontSize = 24;
306 LeftMargin = 15;
307 Outline = 1;
308 OutlineColor = ''@Variant(\0\0\0\x43\x1\xff\xff\0\0\0\0\0\0\0\0)'';
309 RightMargin = 15;
310 Shadow = 0.5;
311 ShadowColor = ''@Variant(\0\0\0\x43\x1\xff\xff\0\0\0\0\0\0\0\0)'';
312 Spacing = 2;
313 TextColor = ''@Variant(\0\0\0\x43\x1\xff\xff\xff\xff\xff\xff\xff\xff\0\0)'';
314 VMargin = 15;
315 };
316
317 VideoAdjustment = {
318 Brightness = 0;
319 Contrast = 0;
320 Hue = 0;
321 Negative = 0;
322 Saturation = 0;
323 Sharpness = 0;
324 };
325
326 Vulkan = {
327 AlwaysGPUDeint = true;
328 BypassCompositor = true;
329 Device = "@ByteArray()";
330 ForceVulkanYadif = false;
331 HDR = false;
332 HQScaleDown = false;
333 HQScaleUp = false;
334 VSync = 1;
335 YadifSpatialCheck = true;
336 };
337
338 YtDl = {
339 CookiesFromBrowser = null;
340 CookiesFromBrowserEnabled = false;
341 # CustomPath = "${pkgs.yt-dlp}/bin/yt-dlp"; TODO: Deno broken
342 CustomPathEnabled = true;
343 DefaultQuality = null;
344 DefaultQualityEnabled = false;
345 DontAutoUpdate = true;
346 };
347 };
348 QPainterSW.General.Enabled = true;
349 Subtitles.General = {
350 Classic_enabled = true;
351 SRT_enabled = true;
352 Sub_max_s = 5;
353 Use_mDVD_FPS = true;
354 };
355 VideoFilters.FPSDoubler = {
356 MaxFPS = 29.99;
357 MinFPS = 21;
358 OnlyFullScreen = true;
359 };
360 Visualizations = {
361 General = {
362 RefreshTime = 17;
363 };
364
365 FFTSpectrum = {
366 LimitFreq = 20000;
367 Size = 8;
368 };
369
370 SimpleVis = {
371 SoundLength = 17;
372 };
373 };
374 XVideo.General = {
375 Enabled = false;
376 UseSHM = false;
377 };
378 };
379 };
380}