dotfiles/home-manager/system-mreow.nix
2024-10-25 14:15:48 -04:00

185 lines
4.1 KiB
Nix

{
config,
pkgs,
lib,
homeDirectory,
...
}:
{
imports = [
./gui.nix
# niri wayland compositor
./progs/niri.nix
# waybar for status bar
./progs/waybar.nix
./progs/swaylock.nix
];
home.packages = with pkgs; [
wdisplays
intel-gpu-tools
# used by /etc/nixos logic to launch niri
config.programs.niri.package
];
# media controls
systemd.user.services.mpris-proxy = {
Unit.Description = "Mpris proxy";
Install.After = [
"network.target"
"sound.target"
];
Install.WantedBy = [ "default.target" ];
Service.ExecStart = "${pkgs.bluez}/bin/mpris-proxy";
};
# notification daemon
services.dunst = {
enable = true;
package = pkgs.dunst;
};
# rofi for application launcher
programs.rofi = {
enable = true;
package = pkgs.rofi-wayland;
extraConfig = {
modi = "window,drun,ssh,combi";
combi-modi = "window,drun,ssh";
};
};
age.secrets.borg-laptop-password = {
file = ./secrets/borg-laptop-password.age;
path = "${homeDirectory}/.secrets/borg_bak_pass";
};
# backup utility
programs.borgmatic = {
enable = true;
package = pkgs.borgmatic;
backups =
let
borgPasswordFile = config.age.secrets.borg-laptop-password.path;
in
import ./progs/borg.nix { inherit homeDirectory borgPasswordFile; };
};
# https://community.frame.work/t/speakers-sound-quality/1078/83
# Filter: ON HPQ Fc 100.0 Hz Gain 0.0 dB Q 1.0
# Filter: ON PK Fc 150.0 Hz Gain 4.02 dB Q 3.0
# Filter: ON PK Fc 600.0 Hz Gain -5.07 dB Q 4.000000000000008
# Filter: ON PK Fc 1200.0 Hz Gain -3.49 dB Q 4.17
# Filter: ON PK Fc 2000.0 Hz Gain 1.43 dB Q 4.0
# Filter: ON PK Fc 5300.0 Hz Gain 3.84 dB Q 2.64
# Filter: ON HSC Fc 6000.0 Hz Gain 4.02 dB Q 4.36
# Filter: ON PK Fc 7500.0 Hz Gain -2.09 dB Q 3.0
# Filter: ON PK Fc 8000.0 Hz Gain 2.01 dB Q 4.36
# Filter: ON PK Fc 900.0 Hz Gain -4.12 dB Q 5.909999999999967
home.file.".config/easyeffects/output/${config.services.easyeffects.preset}.json".text =
let
baseBand = {
mode = "RLC (BT)";
mute = false;
solo = false;
slope = "1x";
type = "Bell";
};
bandList = [
{
frequency = 100.0;
gain = 0.0;
q = 1.0;
slope = "x4";
type = "Hi-pass";
}
{
frequency = 150.0;
gain = 4.02;
q = 3.0;
}
{
frequency = 600.0;
gain = -5.07;
q = 4.000000000000008;
}
{
frequency = 1200.0;
gain = -3.49;
q = 4.17;
}
{
frequency = 2000.0;
gain = 1.43;
q = 4.0;
}
{
frequency = 5300.0;
gain = 3.84;
q = 2.64;
}
{
frequency = 6000.0;
gain = 4.02;
q = 4.36;
type = "Hi-shelf";
}
{
frequency = 7500.0;
gain = -2.09;
q = 3.0;
}
{
frequency = 8000.0;
gain = 2.01;
q = 4.36;
}
{
frequency = 900.0;
gain = -4.12;
q = 5.909999999999967;
}
];
bands = builtins.listToAttrs (
map (f: {
name = "band${toString f.snd}";
value = baseBand // f.fst;
}) (lib.lists.zipLists bandList (lib.range 0 (lib.length (bandList))))
);
in
builtins.toJSON {
output = {
blocklist = [ ];
equalizer = {
balance = 0.0;
bypass = false;
input-gain = 0.0;
left = bands;
right = bands;
mode = "IIR";
num-bands = 10;
output-gain = -1.5;
pitch-left = 0.0;
pitch-right = 0.0;
split-channels = false;
};
plugins_order = [
"equalizer"
];
};
};
services.easyeffects = {
enable = true;
package = pkgs.easyeffects;
preset = "framework";
};
}