summaryrefslogtreecommitdiffstats
path: root/tv/5pkgs/simple/alacritty-tv.nix
diff options
context:
space:
mode:
Diffstat (limited to 'tv/5pkgs/simple/alacritty-tv.nix')
-rw-r--r--tv/5pkgs/simple/alacritty-tv.nix152
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
- ];
-}