diff options
Diffstat (limited to 'tv/5pkgs/simple/alacritty-tv.nix')
-rw-r--r-- | tv/5pkgs/simple/alacritty-tv.nix | 152 |
1 files changed, 0 insertions, 152 deletions
diff --git a/tv/5pkgs/simple/alacritty-tv.nix b/tv/5pkgs/simple/alacritty-tv.nix deleted file mode 100644 index ddf2ca8df..000000000 --- a/tv/5pkgs/simple/alacritty-tv.nix +++ /dev/null @@ -1,152 +0,0 @@ -{ pkgs -, variant ? "x220" -}: - -let - lib = import ./lib; - font-size = arg: { - program = "${pkgs.font-size-alacritty}/bin/font-size-alacritty"; - args = [arg]; - }; - configs.default = lib.recursiveUpdate variants.${variant} { - bell.animation = "EaseOut"; - bell.duration = 50; - bell.color = "#ff00ff"; - colors.cursor.cursor = "#f042b0"; - colors.primary.background = "#202020"; - colors.primary.foreground = "#d0d7d0"; - colors.normal.black = "#000000"; - colors.normal.red = "#cd0000"; - colors.normal.green = "#00cd00"; - colors.normal.yellow = "#bc7004"; - colors.normal.blue = "#4343be"; - colors.normal.magenta = "#cb06cb"; - colors.normal.cyan = "#04c9c9"; - colors.normal.white = "#bebebe"; - colors.bright.black = "#727272"; - colors.bright.red = "#fb6262"; - colors.bright.green = "#72fb72"; - colors.bright.yellow = "#fbfb72"; - colors.bright.blue = "#7272fb"; - colors.bright.magenta = "#fb53fb"; - colors.bright.cyan = "#72fbfb"; - colors.bright.white = "#fbfbfb"; - draw_bold_text_with_bright_colors = true; - hints.enabled = [ - { - regex = "(ipfs:|ipns:|magnet:|mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)[^\\u0000-\\u001F\\u007F-\\u009F<>\"\\s{-}\\^⟨⟩`]+"; - mouse.enabled = true; - post_processing = true; - action = "Select"; - } - ]; - scrolling.multiplier = 8; - }; - configs.root = lib.recursiveUpdate configs.default { - colors.primary.background = "#230000"; - colors.primary.foreground = "#e0c0c0"; - colors.normal.black = "#800000"; - }; - configs.fzmenu = lib.recursiveUpdate configs.default { - colors.primary.background = "#2A172A"; - window.dimensions.columns = 70; - window.dimensions.lines = 9; - }; - variants.hidpi = { - font.normal.family = "iosevka tv 2 Light"; - font.italic.family = "iosevka tv 2 Light"; - font.bold.family = "iosevka tv 2 Medium"; - font.bold_italic.family = "iosevka tv 2 Medium"; - font.size = 5; - key_bindings = [ - { key = "Up"; mods = "Control"; action = "IncreaseFontSize"; } - { key = "Down"; mods = "Control"; action = "DecreaseFontSize"; } - { key = "Down"; mods = "Shift|Control"; action = "ResetFontSize"; } - ]; - }; - variants.x220 = { - font.normal.family = "Clean"; - font.bold.family = "Clean"; - font.bold.style = "Regular"; - font.size = 10; - key_bindings = [ - { key = "Up"; mods = "Shift|Control"; command = font-size "=14"; } - { key = "Up"; mods = "Control"; command = font-size "+1"; } - { key = "Down"; mods = "Control"; command = font-size "-1"; } - { key = "Down"; mods = "Shift|Control"; command = font-size "=0"; } - ]; - }; - writeProfile = name: config: let - config-file = - assert lib.types.filename.check name; - pkgs.writeJSON "alacritty-tv-${name}.json" config; - in pkgs.writeText "alacritty-tv-${name}.profile" /* sh */ '' - # Use home so Alacritty can find the configuration without arguments. - # HOME will be reset once in Alacritty. - HOME=$XDG_RUNTIME_DIR/Alacritty-${name} - export HOME - - # Tell Alacritty via XDG_RUNTIME_DIR where to create sockets. - # XDG_RUNTIME_DIR needs to be reset manually. - export ALACRITTY_XDG_RUNTIME_DIR="$XDG_RUNTIME_DIR" - export BASH_EXTRA_INIT=${pkgs.writeDash "alacritty-tv.cleanup.sh" '' - XDG_RUNTIME_DIR=$ALACRITTY_XDG_RUNTIME_DIR - unset ALACRITTY_XDG_RUNTIME_DIR - unset BASH_EXTRA_INIT - ''} - export XDG_RUNTIME_DIR="$HOME" - - # Install stored configuration if it has changed. - # This allows for both declarative updates and runtime modifications. - # rust-xdg requires XDG_RUNTIME_DIR to be secure: - # https://docs.rs/xdg/2.4.1/src/xdg/lib.rs.html#311 - ${pkgs.coreutils}/bin/mkdir -m 0700 -p "$HOME" - ref=$(! test -e "$HOME"/ref || ${pkgs.coreutils}/bin/cat "$HOME"/ref) - if test "$ref" != ${config-file}; then - echo ${config-file} > "$HOME"/ref - ${pkgs.coreutils}/bin/install -m 644 ${config-file} "$HOME"/.alacritty.yml - fi - ''; -in - -pkgs.symlinkJoin { - name = "alacritty-tv"; - paths = [ - (pkgs.writeDashBin "alacritty" '' - # usage: - # alacritty [--profile=PROFILE] [--singleton] [ARGS...] - # where - # PROFILE one of ${lib.toJSON (lib.attrNames configs)} - - set -efu - - case ''${1-} in - ${lib.concatMapStringsSep "\n" (name: /* sh */ '' - --${lib.shell.escape name}|--profile=${lib.shell.escape name}) - shift - profile=${writeProfile name configs.${name}} - ;; - '') (lib.attrNames configs)} - *) - profile=${writeProfile "default" configs.default} - ;; - esac - - - case ''${1-} in - --singleton) - shift - if ! ${pkgs.alacritty}/bin/alacritty msg create-window "$@"; then - . "$profile" - ${pkgs.alacritty}/bin/alacritty "$@" & - fi - ;; - *) - . "$profile" - exec ${pkgs.alacritty}/bin/alacritty "$@" - ;; - esac - '') - pkgs.alacritty - ]; -} |