{pkgs, ...}: let
  twitchHLSConfig = "twitch-hls-client/config";
  twtConfig = "twt/config.toml";

  toINI = (pkgs.formats.ini {}).generate;
  toTOML = (pkgs.formats.toml {}).generate;

  twitchHLSSettings = {
    General = {
      quality = "best";
      debug = false;
    };
    Player = {
      player = "${pkgs.mpv}/bin/mpv";
      player-args = "- --profile=low-latency";
      quiet = true;
      no-kill = false;
    };
    HLS = {
      servers = "https://eu.luminous.dev/live/[channel],https://eu2.luminous.dev/live/[channel],https://as.luminous.dev/live/[channel]";
      print-streams = false;
      no-low-latency = false;
      codecs = "av1,h265,h264";
    };
    HTTP = {
      force-https = true;
      force-ipv4 = false;
      user-agent = "Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0";
      http-retries = 3;
      http-timeout = 10;
    };
  };

  twtSettings = {
    twitch = {
      username = "someone";
      channel = "bunzopy";
      server = "irc.chat.twitch.tv";
    };
    terminal = {
      delay = 30;
      maximum_messages = 500;
      verbose = false;
      first_state = "Dashboard";
    };
    storage = {
      channels = true;
      mentions = false;
    };
    filters = {
      enabled = false;
      reversed = false;
    };
    frontend = {
      show_datetimes = false;
      datetime_format = "%a %b %e %T";
      username_shown = true;
      palette = "vibrant";
      title_shown = true;
      margin = 0;
      badges = false;
      theme = "dark";
      username_highlight = true;
      state_tabs = false;
      cursor_shape = "user";
      blinking_cursor = false;
      inverted_scrolling = false;
      show_scroll_offset = false;
      twitch_emotes = false;
      betterttv_emotes = false;
      seventv_emotes = false;
      frankerfacez_emotes = false;
      favorite_channels = ["oxatani" "roman_pascucci"];
      recent_channel_count = 5;
      border_type = "plain";
      hide_chat_border = false;
      right_align_usernames = false;
      show_unsupported_screen_size = true;
    };
  };
in {
  users.users.someone.packages = with pkgs; [
    twitch-hls-client
    mpv
  ];

  xdg.configFile."${twitchHLSConfig}".source = toINI "config" twitchHLSSettings;
  xdg.configFile."${twtConfig}".source = toTOML "config.toml" twtSettings;
}
