diff --git a/modules/applications/packages.nix b/modules/applications/packages.nix index a6f0ce5..0591b20 100644 --- a/modules/applications/packages.nix +++ b/modules/applications/packages.nix @@ -4,7 +4,7 @@ with rec { }; with deviceSpecific; let - rust-stable = pkgs.rustChannels.stable.rust.override { + rust-stable = pkgs.latest.rustChannels.stable.rust.override { extensions = [ "rls-preview" "clippy-preview" @@ -71,6 +71,8 @@ in { pywal python27Packages.pygtk python2 + rust-stable + ] ++ lib.optionals isLaptop [ # Important acpi diff --git a/modules/applications/spotify-tui.nix b/modules/applications/spotify-tui.nix new file mode 100644 index 0000000..3028982 --- /dev/null +++ b/modules/applications/spotify-tui.nix @@ -0,0 +1,7 @@ +{ config, lib, pkgs, ...}: +let + naersk = pkgs.callPackage pkgs.imports.naersk {}; +in naersk.buildPackage { + name = "spotify-tui"; + src = pkgs.imports.spotify-tui; +}; \ No newline at end of file diff --git a/modules/default.nix b/modules/default.nix index 123a08a..19e1bb5 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -11,6 +11,7 @@ device: ./samba.nix ./secrets.nix ./services.nix + ./sound ./themes.nix ./users.nix ./wireguard.nix @@ -23,13 +24,13 @@ device: ./workspace/fonts.nix ./workspace/gtk.nix ./workspace/i3 - # ./workspace/i3blocks ./workspace/i3status-rust ./workspace/kde ./workspace/light.nix ./workspace/locale.nix ./workspace/misc.nix ./workspace/mpv.nix + ./workspace/pulseeffects ./workspace/rofi.nix ./workspace/spotifyd.nix ./workspace/xresources.nix diff --git a/modules/hardware.nix b/modules/hardware.nix index c84e8b6..3a68838 100644 --- a/modules/hardware.nix +++ b/modules/hardware.nix @@ -47,17 +47,6 @@ with deviceSpecific; { "mem_sleep_default=deep" ]; - sound.enable = true; - hardware.pulseaudio = { - enable = true; - # package = pkgs.pulseaudioFull; - support32Bit = true; - # systemWide = true; - tcp = { - enable = true; - anonymousClients.allowedIpRanges = ["127.0.0.1"]; - }; - }; boot.extraModprobeConfig = lib.mkIf (device == "AMD-Workstation") '' options snd slots=snd_virtuoso,snd_usb_audio ''; diff --git a/modules/packages.nix b/modules/packages.nix index a5aed6b..02d30b5 100644 --- a/modules/packages.nix +++ b/modules/packages.nix @@ -1,12 +1,13 @@ +{ pkgs, config, lib, ... }: let imports = import ../nix/sources.nix; - mozilla = import imports.nixpkgs-mozilla { }; -in { pkgs, config, lib, ... }: { + mozilla_overlay = import imports.nixpkgs-mozilla; +in { nixpkgs.overlays = [ + mozilla_overlay (self: super: rec { inherit imports; - inherit mozilla; youtube-to-mpv = pkgs.callPackage ./applications/youtube-to-mpv.nix { }; @@ -23,6 +24,7 @@ in { pkgs, config, lib, ... }: { nixpkgs.config.packageOverrides = pkgs: { spotifyd = pkgs.spotifyd.override { withPulseAudio = true; }; + spotify-tui = pkgs.callPackage ./applications/spotify-tui.nix { }; }; nixpkgs.pkgs = import imports.nixpkgs { diff --git a/modules/sound/default.nix b/modules/sound/default.nix new file mode 100644 index 0000000..0cf33fe --- /dev/null +++ b/modules/sound/default.nix @@ -0,0 +1,42 @@ +{ config, lib, pkgs, ... }: { + sound.enable = true; + + hardware.pulseaudio = { + enable = true; + # package = pkgs.pulseaudioFull; + support32Bit = true; + # systemWide = true; + tcp = { + enable = true; + anonymousClients.allowedIpRanges = ["127.0.0.1"]; + }; + + extraConfig = '' + avoid-resampling = yes + + high-priority = yes + nice-level = -17 + + realtime-scheduling = yes + realtime-priority = 9 + + resample-method = speex-float-8 + avoid-resampling = yes + enable-lfe-remixing = no + + flat-volumes = no + rlimit-rtprio = 9 + + default-sample-format = float32le + default-sample-rate = 44100 + alternate-sample-rate = 96000 + default-sample-channels = 2 + default-channel-map = front-left,front-right + + default-fragments = 2 + default-fragment-size-msec = 125 + + deferred-volume-safety-margin-usec = 1 + ''; + }; +} \ No newline at end of file diff --git a/modules/workspace/i3/default.nix b/modules/workspace/i3/default.nix index b1a51e1..bb5aa3b 100644 --- a/modules/workspace/i3/default.nix +++ b/modules/workspace/i3/default.nix @@ -103,10 +103,6 @@ in { command = "${pkgs.keepassxc}/bin/keepassxc --keyfile=/home/alukard/.passwords.key /home/alukard/nixos-config/misc/Passwords.kdbx"; } - { - command = - "${pkgs.pulseeffects}/bin/pulseeffects --gapplication-service"; - } ]; keybindings = let script = name: content: "exec ${pkgs.writeScript name content}"; diff --git a/modules/workspace/i3blocks/default.nix b/modules/workspace/i3blocks/default.nix deleted file mode 100644 index b6bed5d..0000000 --- a/modules/workspace/i3blocks/default.nix +++ /dev/null @@ -1,100 +0,0 @@ -{ pkgs, config, lib, ... }: -with import ../../../support.nix { inherit pkgs config lib; }; -let scripts = import ./scripts pkgs config; -in { - home-manager.users.alukard.xsession.windowManager.i3.extraConfig = '' - bar { - id top - font pango:Material Icons 11, Roboto Mono 11 - mode dock - hidden_state hide - position top - status_command ${pkgs.i3blocks}/bin/i3blocks - workspace_buttons yes - strip_workspace_numbers no - tray_output primary - colors { - background ${config.themes.colors.bg} - statusline ${config.themes.colors.fg} - separator ${config.themes.colors.alt} - focused_workspace ${config.themes.colors.bg} ${config.themes.colors.bg} ${config.themes.colors.blue} - active_workspace ${config.themes.colors.bg} ${config.themes.colors.bg} ${config.themes.colors.green} - inactive_workspace ${config.themes.colors.bg} ${config.themes.colors.bg} ${config.themes.colors.fg} - urgent_workspace ${config.themes.colors.bg} ${config.themes.colors.bg} ${config.themes.colors.orange} - binding_mode ${config.themes.colors.bg} ${config.themes.colors.bg} ${config.themes.colors.yellow} - } - } - ''; - - home-manager.users.alukard.xdg.configFile."i3blocks/config".text = '' - interval=60 - markup=pango - '' + genIni { - a_email = if !isNull config.secrets.gmail or null then { - command = scripts.email; - } else - { }; - b_weather = { - command = scripts.weather; - interval = 600; - }; - d_music = { - command = scripts.music; - interval = 1; - }; - e_sound = { - command = scripts.sound; - interval = 1; - }; - f_battery = pkgs.stdenv.lib.optionalAttrs config.deviceSpecific.isLaptop { - command = scripts.battery; - }; - g_brightness = pkgs.stdenv.lib.optionalAttrs config.deviceSpecific.isLaptop { - command = scripts.brightness; - interval = 1; - }; - # h_wireless = pkgs.stdenv.lib.optionalAttrs config.deviceSpecific.isLaptop { - # command = scripts.wireless; - # }; - # i_network = { - # command = scripts.network; - # }; - j_cpuload = { - command = '' - echo 'cached' $(${pkgs.sysstat}/bin/mpstat 2 1 | tail -1 | awk '$12 ~ /[0-9.]+/ { print 100 - $12"%" }') - ''; - interval = 3; - }; - k_cpufreq = { - command = '' - echo 'flash_on' $(${pkgs.bc}/bin/bc <<< "$(lscpu | grep "MHz" | awk '{print $3}')/1") MHz - ''; - interval = 3; - }; - # l_temperature = { - # command = scripts.temperature; - # }; - m_free = { - command = '' - echo 'location_searching' $(${pkgs.bc}/bin/bc <<< `free | tail -2 | head -1 | awk '{print "scale=2; "$7"/1048576"}'`)GiB - ''; - }; - n_df = { - command = '' - echo '' $(sudo btrfs fi usage / | grep "Free" | awk '{print $3}') - ''; - }; - n_vpn = { - command = scripts.vpn-status; - interval = 600; - }; - o_date = { - command = "${pkgs.coreutils}/bin/date +' %a %y-%m-%d'"; - interval = 10; - }; - p_time = { - command = "${pkgs.coreutils}/bin/date +' %T'"; - interval = 1; - }; - }; -} diff --git a/modules/workspace/i3blocks/scripts/battery.nix b/modules/workspace/i3blocks/scripts/battery.nix deleted file mode 100644 index 7111b39..0000000 --- a/modules/workspace/i3blocks/scripts/battery.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ acpi, bash, iconfont, low_threshold ? 10, ... }: '' - #!${bash}/bin/bash - BATTERY="`${acpi}/bin/acpi -b | grep --invert-match unavailable | head -1`" - STATUS=`awk -F'[,:] ' '{print $2}' <<< "$BATTERY"` - CHARGE=`awk -F'[,%] ' '{print $2}' <<< "$BATTERY" | tr -d "%"` - TIME=`awk -F', ' '{print $3}' <<< "$BATTERY" | cut -d " " -f 1` - case "$STATUS" in - Full) ;& "Not charging") icon=; text="FULL"; status=0 - ;; - Charging) - text="$CHARGE% ($TIME)" - status=0 - case $CHARGE in - [2-3]*) icon=;; - [4-5]*) icon=;; - [6-7]*) icon=;; - [8-9]*|100) icon=;; - *) icon=;; - esac - ;; - Discharging) - if [[ $CHARGE -gt ${toString low_threshold} ]] - then - status=0 - else - status=33 - fi - text="$CHARGE% ($TIME)"; - case $CHARGE in - 1?) icon=;; - 2?) icon=;; - 3?) icon=;; - 4?) icon=;; - 5?) icon=;; - 6?) icon=;; - 7?) icon=;; - 8?) icon=;; - 9?) icon=;; - 100) icon=;; - *) icon=;; - esac - ;; - esac - echo "$icon $text" - exit $status -'' diff --git a/modules/workspace/i3blocks/scripts/brightness.nix b/modules/workspace/i3blocks/scripts/brightness.nix deleted file mode 100644 index 044b1d0..0000000 --- a/modules/workspace/i3blocks/scripts/brightness.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ iconfont, light, config, ... }: '' - case $BLOCK_BUTTON in - 4) sudo ${light}/bin/light -A 5;; - 5) sudo ${light}/bin/light -U 5;; - esac - LIGHT=`${light}/bin/light | cut -f 1 -d '.'` - if [[ $LIGHT -lt 33 ]] - then - icon= - else - if [[ $LIGHT -lt 66 ]] - then - icon= - else - icon= - fi - fi - echo "$icon $LIGHT" -'' diff --git a/modules/workspace/i3blocks/scripts/default.nix b/modules/workspace/i3blocks/scripts/default.nix deleted file mode 100644 index 089d1c3..0000000 --- a/modules/workspace/i3blocks/scripts/default.nix +++ /dev/null @@ -1,22 +0,0 @@ -p: c: -with p; -builtins.mapAttrs (name: value: -writeTextFile { - inherit name; - text = callPackage value { - iconfont = "Material Icons 11"; - config = c; - }; - executable = true; - checkPhase = - "${bash}/bin/bash -n $src || ${python3}/bin/python3 -m compileall $src"; -}) { - battery = ./battery.nix; - brightness = ./brightness.nix; - email = ./email.nix; - wireless = ./wireless.nix; - weather = ./weather.nix; - sound = ./sound.nix; - music = ./music.nix; - vpn-status = ./vpn-status.nix; -} diff --git a/modules/workspace/i3blocks/scripts/email.nix b/modules/workspace/i3blocks/scripts/email.nix deleted file mode 100644 index ff5541e..0000000 --- a/modules/workspace/i3blocks/scripts/email.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ python3, iconfont, config, ... }: '' - #!${python3}/bin/python3 - import imaplib - obj = imaplib.IMAP4_SSL('imap.gmail.com', 993) - obj.login("${config.secrets.gmail.user}", "${config.secrets.gmail.password}") - obj.select() - l = len(obj.search(None, 'unseen')[1][0].split()) - print(' %s' % str(l)) - exit(33 if l != 0 else 0) -'' diff --git a/modules/workspace/i3blocks/scripts/music.nix b/modules/workspace/i3blocks/scripts/music.nix deleted file mode 100644 index 3d314c8..0000000 --- a/modules/workspace/i3blocks/scripts/music.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ python3, playerctl, iconfont, ...}: '' - #!${python3}/bin/python - from subprocess import getoutput, call - from os import environ - status = getoutput("${playerctl}/bin/playerctl status") - if "BLOCK_BUTTON" in environ: - BLOCK_BUTTON = environ["BLOCK_BUTTON"] - if BLOCK_BUTTON == "1": call(["${playerctl}/bin/playerctl", "play-pause"]) - if BLOCK_BUTTON == "2": call(["${playerctl}/bin/playerctl", "stop"]) - if BLOCK_BUTTON == "3": call(["${playerctl}/bin/playerctl", "next"]) - if status == "Paused": - icon="" - elif status == "Playing": - icon="" - else: - icon = "" - text = getoutput("${playerctl}/bin/playerctl metadata title")[:20:] - print("%s %s" % (icon, text)) -'' diff --git a/modules/workspace/i3blocks/scripts/sound.nix b/modules/workspace/i3blocks/scripts/sound.nix deleted file mode 100644 index 751bd12..0000000 --- a/modules/workspace/i3blocks/scripts/sound.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ pamixer, lxqt, iconfont, ... }: '' - case $BLOCK_BUTTON in - 1) ${pamixer}/bin/pamixer -t;; - 3) ${lxqt.pavucontrol-qt}/bin/pavucontrol-qt & ;; - 4) ${pamixer}/bin/pamixer -i 5;; - 5) ${pamixer}/bin/pamixer -d 5;; - esac - code=0 - if [[ `${pamixer}/bin/pamixer --get-mute` = "true" ]] - then - volume="" - end="" - icon="" - else - volume=`${pamixer}/bin/pamixer --get-volume` - end="%" - if [[ $volume -lt 33 ]] - then - icon="" - else - if [[ $volume -lt 66 ]] - then - icon="" - else - icon="" - code=33 - fi - fi - fi - echo "$icon $volume$end" - exit $code -'' diff --git a/modules/workspace/i3blocks/scripts/vpn-status.nix b/modules/workspace/i3blocks/scripts/vpn-status.nix deleted file mode 100644 index cd709c3..0000000 --- a/modules/workspace/i3blocks/scripts/vpn-status.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ curl, ... }: '' -API="$(${curl}/bin/curl https://am.i.mullvad.net/connected)" -if [[ $(echo "$API" | awk -F'[ ()]+' '{print $6}') = 'server' ]]; then - echo $(echo "$API" | awk -F'[ ()]+' '{print $7}') -else - echo 'Not connected' -fi -'' \ No newline at end of file diff --git a/modules/workspace/i3blocks/scripts/weather.nix b/modules/workspace/i3blocks/scripts/weather.nix deleted file mode 100644 index 3bce2d3..0000000 --- a/modules/workspace/i3blocks/scripts/weather.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ bash, config, curl, ... }: '' - #!${bash}/bin/bash - ${curl}/bin/curl wttr.in/Volzhskiy\?format=3 | awk -F": " '{print $2}' - if [[ $BLOCK_BUTTON == 1 ]] - then - ${config.defaultApplications.term.cmd} --hold -e "${curl}/bin/curl wttr.in" - fi -'' diff --git a/modules/workspace/i3blocks/scripts/wireless.nix b/modules/workspace/i3blocks/scripts/wireless.nix deleted file mode 100644 index c6b2d90..0000000 --- a/modules/workspace/i3blocks/scripts/wireless.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ bash, iw, wpa_supplicant_gui, iconfont, ... }: '' - #!${bash}/bin/bash - case $BLOCK_BUTTON in - 1) ${wpa_supplicant_gui}/bin/wpa_gui;; - 2) pkexec rfkill block wifi;; - 3) pkexec rfkill unblock wifi;; - esac - WIFI="`${iw}/bin/iw wlan0 info | grep ssid | cut -f2 -d' '`" - if [[ `wc -c <<< "$WIFI"` -lt 2 ]] - then - echo "" - exit 33 - else - echo " $WIFI" - exit 0 - fi -'' diff --git a/modules/workspace/i3status-rust/default.nix b/modules/workspace/i3status-rust/default.nix index df0f6f7..85aa7f7 100644 --- a/modules/workspace/i3status-rust/default.nix +++ b/modules/workspace/i3status-rust/default.nix @@ -78,11 +78,11 @@ in { [[block]] block = "custom" command = "${scripts.vpn-status}" - interval = 600 + interval = 60 [[block]] block = "time" - interval = 60 + interval = 1 format = "%a %Y/%m/%d %T" ''; } \ No newline at end of file diff --git a/modules/workspace/pulseeffects/ATH-M50.json b/modules/workspace/pulseeffects/ATH-M50.json new file mode 100644 index 0000000..873d629 --- /dev/null +++ b/modules/workspace/pulseeffects/ATH-M50.json @@ -0,0 +1,624 @@ +{ + "spectrum": { + "show": "true", + "n-points": "100", + "height": "100", + "use-custom-color": "false", + "fill": "true", + "show-bar-border": "true", + "scale": "1", + "exponent": "1", + "sampling-freq": "10", + "line-width": "2", + "type": "Bars", + "color": [ + "1", + "1", + "1", + "1" + ], + "gradient-color": [ + "0", + "0", + "0", + "1" + ] + }, + "output": { + "blacklist": "", + "plugins_order": [ + "limiter", + "equalizer", + "autogain", + "gate", + "multiband_gate", + "compressor", + "multiband_compressor", + "convolver", + "bass_enhancer", + "exciter", + "crystalizer", + "stereo_tools", + "reverb", + "delay", + "deesser", + "crossfeed", + "loudness", + "maximizer", + "filter", + "pitch" + ], + "bass_enhancer": { + "state": "false", + "input-gain": "0", + "output-gain": "0", + "amount": "0", + "harmonics": "8.5", + "scope": "100", + "floor": "20", + "blend": "0", + "floor-active": "false", + "listen": "false" + }, + "compressor": { + "state": "false", + "input-gain": "0", + "output-gain": "0", + "mode": "Downward", + "attack": "20", + "release": "100", + "threshold": "-12", + "ratio": "4", + "knee": "-6", + "makeup": "0", + "sidechain": { + "listen": "false", + "type": "Feed-forward", + "mode": "RMS", + "source": "Middle", + "preamp": "0", + "reactivity": "10", + "lookahead": "0" + } + }, + "crossfeed": { + "state": "false", + "fcut": "700", + "feed": "4.5" + }, + "deesser": { + "state": "false", + "detection": "RMS", + "mode": "Wide", + "threshold": "-18", + "ratio": "3", + "laxity": "15", + "makeup": "0", + "f1-freq": "6000", + "f2-freq": "4500", + "f1-level": "0", + "f2-level": "12", + "f2-q": "1", + "sc-listen": "false" + }, + "equalizer": { + "state": "true", + "mode": "FIR", + "num-bands": "10", + "input-gain": "0", + "output-gain": "0", + "split-channels": "false", + "left": { + "band0": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "3.3", + "frequency": "19", + "q": "1.78" + }, + "band1": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "-3", + "frequency": "54", + "q": "1.02" + }, + "band2": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "6.4", + "frequency": "73", + "q": "4.43" + }, + "band3": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "-4.1", + "frequency": "142", + "q": "1.53" + }, + "band4": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "3.8", + "frequency": "345", + "q": "2.24" + }, + "band5": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "-4.7", + "frequency": "1823", + "q": "3.17" + }, + "band6": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "3", + "frequency": "3215", + "q": "3.93" + }, + "band7": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "-3", + "frequency": "4355", + "q": "7.15" + }, + "band8": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "6.5", + "frequency": "6027", + "q": "2.92" + }, + "band9": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "-7.2", + "frequency": "9067", + "q": "5.68" + } + }, + "right": { + "band0": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "3.3", + "frequency": "19", + "q": "1.78" + }, + "band1": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "-3", + "frequency": "54", + "q": "1.02" + }, + "band2": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "6.4", + "frequency": "73", + "q": "4.43" + }, + "band3": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "-4.1", + "frequency": "142", + "q": "1.53" + }, + "band4": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "3.8", + "frequency": "345", + "q": "2.24" + }, + "band5": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "-4.7", + "frequency": "1823", + "q": "3.17" + }, + "band6": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "3", + "frequency": "3215", + "q": "3.93" + }, + "band7": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "-3", + "frequency": "4355", + "q": "7.15" + }, + "band8": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "6.5", + "frequency": "6027", + "q": "2.92" + }, + "band9": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "-7.2", + "frequency": "9067", + "q": "5.68" + } + } + }, + "exciter": { + "state": "false", + "input-gain": "0", + "output-gain": "0", + "amount": "0", + "harmonics": "8.5", + "scope": "7500", + "ceil": "16000", + "blend": "0", + "ceil-active": "false", + "listen": "false" + }, + "filter": { + "state": "false", + "input-gain": "0", + "output-gain": "0", + "frequency": "2000", + "resonance": "-3", + "mode": "12dB\/oct Lowpass", + "inertia": "20" + }, + "gate": { + "state": "false", + "detection": "RMS", + "stereo-link": "Average", + "range": "-24", + "attack": "20", + "release": "250", + "threshold": "-18", + "ratio": "2", + "knee": "9", + "makeup": "0" + }, + "limiter": { + "state": "true", + "input-gain": "-7", + "limit": "0", + "lookahead": "5", + "release": "50", + "asc": "false", + "asc-level": "0.5", + "oversampling": "1" + }, + "maximizer": { + "state": "false", + "release": "25", + "ceiling": "0", + "threshold": "0" + }, + "pitch": { + "state": "false", + "input-gain": "0", + "output-gain": "0", + "cents": "0", + "semitones": "0", + "octaves": "0", + "crispness": "3", + "formant-preserving": "false", + "faster": "false" + }, + "reverb": { + "state": "false", + "input-gain": "0", + "output-gain": "0", + "room-size": "Large", + "decay-time": "1.5", + "hf-damp": "5000", + "diffusion": "0.5", + "amount": "-12", + "dry": "0", + "predelay": "0", + "bass-cut": "300", + "treble-cut": "5000" + }, + "multiband_compressor": { + "state": "false", + "input-gain": "0", + "output-gain": "0", + "freq0": "120", + "freq1": "1000", + "freq2": "6000", + "mode": "LR8", + "subband": { + "threshold": "-12", + "ratio": "2", + "attack": "150", + "release": "300", + "makeup": "0", + "knee": "9", + "detection": "RMS", + "bypass": "false", + "solo": "false" + }, + "lowband": { + "threshold": "-12", + "ratio": "2", + "attack": "150", + "release": "300", + "makeup": "0", + "knee": "9", + "detection": "RMS", + "bypass": "false", + "solo": "false" + }, + "midband": { + "threshold": "-12", + "ratio": "2", + "attack": "150", + "release": "300", + "makeup": "0", + "knee": "9", + "detection": "RMS", + "bypass": "false", + "solo": "false" + }, + "highband": { + "threshold": "-12", + "ratio": "2", + "attack": "150", + "release": "300", + "makeup": "0", + "knee": "9", + "detection": "RMS", + "bypass": "false", + "solo": "false" + } + }, + "loudness": { + "state": "false", + "loudness": "-3.1000000000000001", + "output": "-6", + "link": "-9.0999999999999996" + }, + "multiband_gate": { + "state": "false", + "input-gain": "0", + "output-gain": "0", + "freq0": "120", + "freq1": "1000", + "freq2": "6000", + "mode": "LR8", + "subband": { + "reduction": "-24", + "threshold": "-12", + "ratio": "2", + "attack": "150", + "release": "300", + "makeup": "0", + "knee": "9", + "detection": "RMS", + "bypass": "false", + "solo": "false" + }, + "lowband": { + "reduction": "-24", + "threshold": "-12", + "ratio": "2", + "attack": "150", + "release": "300", + "makeup": "0", + "knee": "9", + "detection": "RMS", + "bypass": "false", + "solo": "false" + }, + "midband": { + "reduction": "-24", + "threshold": "-12", + "ratio": "2", + "attack": "150", + "release": "300", + "makeup": "0", + "knee": "9", + "detection": "RMS", + "bypass": "false", + "solo": "false" + }, + "highband": { + "reduction": "-24", + "threshold": "-12", + "ratio": "2", + "attack": "150", + "release": "300", + "makeup": "0", + "knee": "9", + "detection": "RMS", + "bypass": "false", + "solo": "false" + } + }, + "stereo_tools": { + "state": "false", + "input-gain": "0", + "output-gain": "0", + "balance-in": "0", + "balance-out": "0", + "softclip": "false", + "mutel": "false", + "muter": "false", + "phasel": "false", + "phaser": "false", + "mode": "LR > LR (Stereo Default)", + "side-level": "0", + "side-balance": "0", + "middle-level": "0", + "middle-panorama": "0", + "stereo-base": "0", + "delay": "0", + "sc-level": "1", + "stereo-phase": "0" + }, + "convolver": { + "state": "false", + "input-gain": "0", + "output-gain": "0", + "kernel-path": "", + "ir-width": "100" + }, + "crystalizer": { + "state": "false", + "aggressive": "false", + "input-gain": "0", + "output-gain": "0", + "band0": { + "intensity": "12", + "mute": "false", + "bypass": "false" + }, + "band1": { + "intensity": "10", + "mute": "false", + "bypass": "false" + }, + "band2": { + "intensity": "8", + "mute": "false", + "bypass": "false" + }, + "band3": { + "intensity": "6", + "mute": "false", + "bypass": "false" + }, + "band4": { + "intensity": "4", + "mute": "false", + "bypass": "false" + }, + "band5": { + "intensity": "2", + "mute": "false", + "bypass": "false" + }, + "band6": { + "intensity": "0", + "mute": "false", + "bypass": "false" + }, + "band7": { + "intensity": "-2", + "mute": "false", + "bypass": "false" + }, + "band8": { + "intensity": "-4", + "mute": "false", + "bypass": "false" + }, + "band9": { + "intensity": "-6", + "mute": "false", + "bypass": "false" + }, + "band10": { + "intensity": "-8", + "mute": "false", + "bypass": "false" + }, + "band11": { + "intensity": "-10", + "mute": "false", + "bypass": "false" + }, + "band12": { + "intensity": "-12", + "mute": "false", + "bypass": "false" + } + }, + "autogain": { + "state": "false", + "detect-silence": "false", + "use-geometric-mean": "true", + "input-gain": "0", + "output-gain": "0", + "target": "-23", + "weight-m": "1", + "weight-s": "1", + "weight-i": "1" + }, + "delay": { + "state": "false", + "input-gain": "0", + "output-gain": "0", + "time-l": "0", + "time-r": "0" + } + } +} diff --git a/modules/workspace/pulseeffects/HE4XX.json b/modules/workspace/pulseeffects/HE4XX.json new file mode 100644 index 0000000..3e2b59e --- /dev/null +++ b/modules/workspace/pulseeffects/HE4XX.json @@ -0,0 +1,624 @@ +{ + "spectrum": { + "show": "true", + "n-points": "100", + "height": "100", + "use-custom-color": "false", + "fill": "true", + "show-bar-border": "true", + "scale": "1", + "exponent": "1", + "sampling-freq": "10", + "line-width": "2", + "type": "Bars", + "color": [ + "1", + "1", + "1", + "1" + ], + "gradient-color": [ + "0", + "0", + "0", + "1" + ] + }, + "output": { + "blacklist": "", + "plugins_order": [ + "limiter", + "equalizer", + "bass_enhancer", + "autogain", + "gate", + "multiband_gate", + "compressor", + "multiband_compressor", + "convolver", + "exciter", + "crystalizer", + "stereo_tools", + "reverb", + "delay", + "deesser", + "crossfeed", + "loudness", + "maximizer", + "filter", + "pitch" + ], + "bass_enhancer": { + "state": "false", + "input-gain": "0", + "output-gain": "0", + "amount": "0", + "harmonics": "8.5", + "scope": "100", + "floor": "20", + "blend": "0", + "floor-active": "false", + "listen": "false" + }, + "compressor": { + "state": "false", + "input-gain": "0", + "output-gain": "0", + "mode": "Downward", + "attack": "20", + "release": "100", + "threshold": "-12", + "ratio": "4", + "knee": "-6", + "makeup": "0", + "sidechain": { + "listen": "false", + "type": "Feed-forward", + "mode": "RMS", + "source": "Middle", + "preamp": "0", + "reactivity": "10", + "lookahead": "0" + } + }, + "crossfeed": { + "state": "false", + "fcut": "700", + "feed": "4.5" + }, + "deesser": { + "state": "false", + "detection": "RMS", + "mode": "Wide", + "threshold": "-18", + "ratio": "3", + "laxity": "15", + "makeup": "0", + "f1-freq": "6000", + "f2-freq": "4500", + "f1-level": "0", + "f2-level": "12", + "f2-q": "1", + "sc-listen": "false" + }, + "equalizer": { + "state": "true", + "mode": "FIR", + "num-bands": "10", + "input-gain": "0", + "output-gain": "0", + "split-channels": "false", + "left": { + "band0": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "5.7", + "frequency": "23", + "q": "1.13" + }, + "band1": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "2.7", + "frequency": "45", + "q": "1.51" + }, + "band2": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "-2.9", + "frequency": "986", + "q": "1.88" + }, + "band3": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "3.4", + "frequency": "1782", + "q": "2.18" + }, + "band4": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "-1.5", + "frequency": "2958", + "q": "4.41" + }, + "band5": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "2.9", + "frequency": "5381", + "q": "3.63" + }, + "band6": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "-2.5", + "frequency": "8042", + "q": "3.32" + }, + "band7": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "1.9", + "frequency": "10101", + "q": "2.02" + }, + "band8": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "-2.1", + "frequency": "16892", + "q": "4.20" + }, + "band9": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "-10.9", + "frequency": "19069", + "q": "0.64" + } + }, + "right": { + "band0": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "5.7", + "frequency": "23", + "q": "1.13" + }, + "band1": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "2.7", + "frequency": "45", + "q": "1.51" + }, + "band2": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "-2.9", + "frequency": "986", + "q": "1.88" + }, + "band3": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "3.4", + "frequency": "1782", + "q": "2.18" + }, + "band4": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "-1.5", + "frequency": "2958", + "q": "4.41" + }, + "band5": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "2.9", + "frequency": "5381", + "q": "3.63" + }, + "band6": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "-2.5", + "frequency": "8042", + "q": "3.32" + }, + "band7": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "1.9", + "frequency": "10101", + "q": "2.02" + }, + "band8": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "-2.1", + "frequency": "16892", + "q": "4.20" + }, + "band9": { + "type": "Bell", + "mode": "RLC (BT)", + "slope": "x1", + "solo": "false", + "mute": "false", + "gain": "-10.9", + "frequency": "19069", + "q": "0.64" + } + } + }, + "exciter": { + "state": "false", + "input-gain": "0", + "output-gain": "0", + "amount": "0", + "harmonics": "8.5", + "scope": "7500", + "ceil": "16000", + "blend": "0", + "ceil-active": "false", + "listen": "false" + }, + "filter": { + "state": "false", + "input-gain": "0", + "output-gain": "0", + "frequency": "2000", + "resonance": "-3", + "mode": "12dB\/oct Lowpass", + "inertia": "20" + }, + "gate": { + "state": "false", + "detection": "RMS", + "stereo-link": "Average", + "range": "-24", + "attack": "20", + "release": "250", + "threshold": "-18", + "ratio": "2", + "knee": "9", + "makeup": "0" + }, + "limiter": { + "state": "true", + "input-gain": "-6", + "limit": "0", + "lookahead": "5", + "release": "50", + "asc": "false", + "asc-level": "0.5", + "oversampling": "1" + }, + "maximizer": { + "state": "false", + "release": "25", + "ceiling": "0", + "threshold": "0" + }, + "pitch": { + "state": "false", + "input-gain": "0", + "output-gain": "0", + "cents": "0", + "semitones": "0", + "octaves": "0", + "crispness": "3", + "formant-preserving": "false", + "faster": "false" + }, + "reverb": { + "state": "false", + "input-gain": "0", + "output-gain": "0", + "room-size": "Large", + "decay-time": "1.5", + "hf-damp": "5000", + "diffusion": "0.5", + "amount": "-12", + "dry": "0", + "predelay": "0", + "bass-cut": "300", + "treble-cut": "5000" + }, + "multiband_compressor": { + "state": "false", + "input-gain": "0", + "output-gain": "0", + "freq0": "120", + "freq1": "1000", + "freq2": "6000", + "mode": "LR8", + "subband": { + "threshold": "-12", + "ratio": "2", + "attack": "150", + "release": "300", + "makeup": "0", + "knee": "9", + "detection": "RMS", + "bypass": "false", + "solo": "false" + }, + "lowband": { + "threshold": "-12", + "ratio": "2", + "attack": "150", + "release": "300", + "makeup": "0", + "knee": "9", + "detection": "RMS", + "bypass": "false", + "solo": "false" + }, + "midband": { + "threshold": "-12", + "ratio": "2", + "attack": "150", + "release": "300", + "makeup": "0", + "knee": "9", + "detection": "RMS", + "bypass": "false", + "solo": "false" + }, + "highband": { + "threshold": "-12", + "ratio": "2", + "attack": "150", + "release": "300", + "makeup": "0", + "knee": "9", + "detection": "RMS", + "bypass": "false", + "solo": "false" + } + }, + "loudness": { + "state": "false", + "loudness": "-3.1000000000000001", + "output": "-6", + "link": "-9.0999999999999996" + }, + "multiband_gate": { + "state": "false", + "input-gain": "0", + "output-gain": "0", + "freq0": "120", + "freq1": "1000", + "freq2": "6000", + "mode": "LR8", + "subband": { + "reduction": "-24", + "threshold": "-12", + "ratio": "2", + "attack": "150", + "release": "300", + "makeup": "0", + "knee": "9", + "detection": "RMS", + "bypass": "false", + "solo": "false" + }, + "lowband": { + "reduction": "-24", + "threshold": "-12", + "ratio": "2", + "attack": "150", + "release": "300", + "makeup": "0", + "knee": "9", + "detection": "RMS", + "bypass": "false", + "solo": "false" + }, + "midband": { + "reduction": "-24", + "threshold": "-12", + "ratio": "2", + "attack": "150", + "release": "300", + "makeup": "0", + "knee": "9", + "detection": "RMS", + "bypass": "false", + "solo": "false" + }, + "highband": { + "reduction": "-24", + "threshold": "-12", + "ratio": "2", + "attack": "150", + "release": "300", + "makeup": "0", + "knee": "9", + "detection": "RMS", + "bypass": "false", + "solo": "false" + } + }, + "stereo_tools": { + "state": "false", + "input-gain": "0", + "output-gain": "0", + "balance-in": "0", + "balance-out": "0", + "softclip": "false", + "mutel": "false", + "muter": "false", + "phasel": "false", + "phaser": "false", + "mode": "LR > LR (Stereo Default)", + "side-level": "0", + "side-balance": "0", + "middle-level": "0", + "middle-panorama": "0", + "stereo-base": "0", + "delay": "0", + "sc-level": "1", + "stereo-phase": "0" + }, + "convolver": { + "state": "false", + "input-gain": "0", + "output-gain": "0", + "kernel-path": "", + "ir-width": "100" + }, + "crystalizer": { + "state": "false", + "aggressive": "false", + "input-gain": "0", + "output-gain": "0", + "band0": { + "intensity": "12", + "mute": "false", + "bypass": "false" + }, + "band1": { + "intensity": "10", + "mute": "false", + "bypass": "false" + }, + "band2": { + "intensity": "8", + "mute": "false", + "bypass": "false" + }, + "band3": { + "intensity": "6", + "mute": "false", + "bypass": "false" + }, + "band4": { + "intensity": "4", + "mute": "false", + "bypass": "false" + }, + "band5": { + "intensity": "2", + "mute": "false", + "bypass": "false" + }, + "band6": { + "intensity": "0", + "mute": "false", + "bypass": "false" + }, + "band7": { + "intensity": "-2", + "mute": "false", + "bypass": "false" + }, + "band8": { + "intensity": "-4", + "mute": "false", + "bypass": "false" + }, + "band9": { + "intensity": "-6", + "mute": "false", + "bypass": "false" + }, + "band10": { + "intensity": "-8", + "mute": "false", + "bypass": "false" + }, + "band11": { + "intensity": "-10", + "mute": "false", + "bypass": "false" + }, + "band12": { + "intensity": "-12", + "mute": "false", + "bypass": "false" + } + }, + "autogain": { + "state": "false", + "detect-silence": "false", + "use-geometric-mean": "true", + "input-gain": "0", + "output-gain": "0", + "target": "-23", + "weight-m": "1", + "weight-s": "1", + "weight-i": "1" + }, + "delay": { + "state": "false", + "input-gain": "0", + "output-gain": "0", + "time-l": "0", + "time-r": "0" + } + } +} diff --git a/modules/workspace/pulseeffects/default.nix b/modules/workspace/pulseeffects/default.nix new file mode 100644 index 0000000..b89768c --- /dev/null +++ b/modules/workspace/pulseeffects/default.nix @@ -0,0 +1,16 @@ +{ config, lib, pkgs, ... }: { + # home-manager.users.alukard.xdg.configFile."PulseEffects/output/ATH-M50.json".source = ./ATH-M50.json; + home-manager.users.alukard.xdg.configFile."PulseEffects/output/ATH-M50.json".text = + (builtins.readFile ./ATH-M50.json); + home-manager.users.alukard.xdg.configFile."PulseEffects/output/HE4XX.json".text = + (builtins.readFile ./HE4XX.json); + + systemd.user.services."pulseeffects" = { + after = [ "sound.target" ]; + description = "PulseEffects daemon"; + wantedBy = [ "default.target" ]; + path = [ pkgs.pulseeffects ]; + serviceConfig.ExecStart = "${pkgs.pulseeffects}/bin/pulseeffects --gapplication-service"; + serviceConfig.Restart = "on-failure"; + }; +} \ No newline at end of file diff --git a/modules/xserver.nix b/modules/xserver.nix index 6794276..4dc4355 100644 --- a/modules/xserver.nix +++ b/modules/xserver.nix @@ -29,31 +29,31 @@ with deviceSpecific; with themes; { displayManager.lightdm = { enable = true; greeter.enable = isShared; - greeters.mini = { - enable = isShared; - user = "alukard"; - extraConfig = '' - [greeter] - show-password-label = true - password-label-text = Welcome, Alukard - invalid-password-text = Are you sure? - show-input-cursor = false - password-alignment = right - [greeter-theme] - font = "Roboto Mono" - font-size = 14pt - text-color = "${colors.green}" - error-color = "${colors.green}" - background-image = "" - background-color = "${colors.bg}" - window-color = "${colors.dark}" - border-color = "${colors.blue}" - border-width = 1px - layout-space = 14 - password-color = "${colors.green}" - password-background-color = "${colors.bg}" - ''; - }; + # greeters.mini = { + # enable = isShared; + # user = "alukard"; + # extraConfig = '' + # [greeter] + # show-password-label = true + # password-label-text = Welcome, Alukard + # invalid-password-text = Are you sure? + # show-input-cursor = false + # password-alignment = right + # [greeter-theme] + # font = "Roboto Mono" + # font-size = 14pt + # text-color = "${colors.green}" + # error-color = "${colors.green}" + # background-image = "" + # background-color = "${colors.bg}" + # window-color = "${colors.dark}" + # border-color = "${colors.blue}" + # border-width = 1px + # layout-space = 14 + # password-color = "${colors.green}" + # password-background-color = "${colors.bg}" + # ''; + # }; autoLogin.enable = !isShared; autoLogin.user = "alukard"; }; diff --git a/nix/sources.json b/nix/sources.json index 7df7c77..4abaf09 100644 --- a/nix/sources.json +++ b/nix/sources.json @@ -47,6 +47,18 @@ "url": "https://github.com/nana-4/materia-theme/archive/b1e4c563146ae34fff6a697393b6a1bc66b612f5.tar.gz", "url_template": "https://github.com///archive/.tar.gz" }, + "naersk": { + "branch": "master", + "description": "Build rust crates in Nix. No configuration, no code generation. IFD and sandbox friendly.", + "homepage": "", + "owner": "nmattia", + "repo": "naersk", + "rev": "4225dfaff988ce0713bc1cbf9a2a6dab8982df15", + "sha256": "13qbd5yjpw2qbsn2wxhzmjznqb8hf7sch1fdnjw904gj88wmnqnw", + "type": "tarball", + "url": "https://github.com/nmattia/naersk/archive/4225dfaff988ce0713bc1cbf9a2a6dab8982df15.tar.gz", + "url_template": "https://github.com///archive/.tar.gz" + }, "niv": { "branch": "master", "description": "Easy dependency management for Nix projects", @@ -83,6 +95,18 @@ "url": "https://github.com/mozilla/nixpkgs-mozilla/archive/5300241b41243cb8962fad284f0004afad187dad.tar.gz", "url_template": "https://github.com///archive/.tar.gz" }, + "spotify-tui": { + "branch": "master", + "description": "Spotify for the terminal written in Rust 🚀", + "homepage": null, + "owner": "Rigellute", + "repo": "spotify-tui", + "rev": "ca128f7ba8be7a02cbb7602f62b0a8f1148eae4a", + "sha256": "1gphjldr49aymc2lkjr0h6sf6w9bpbjhv2gvcbvqazvsabn39c8i", + "type": "tarball", + "url": "https://github.com/Rigellute/spotify-tui/archive/ca128f7ba8be7a02cbb7602f62b0a8f1148eae4a.tar.gz", + "url_template": "https://github.com///archive/.tar.gz" + }, "zsh-autosuggestions": { "branch": "master", "description": "Fish-like autosuggestions for zsh",