mirror of
https://github.com/gensokyo-zone/infrastructure.git
synced 2026-02-09 12:29:19 -08:00
feat(home/wezterm): move to wezterm as main terminal
This commit is contained in:
parent
a130807b83
commit
0b8b1e6f33
5 changed files with 145 additions and 5 deletions
|
|
@ -23,11 +23,11 @@ in
|
|||
gui = {
|
||||
imports = with dirImports; [
|
||||
gui
|
||||
wezterm
|
||||
firefox
|
||||
konawall
|
||||
ranger
|
||||
xkb
|
||||
kitty
|
||||
gpg
|
||||
sway
|
||||
mako
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@
|
|||
bold_font = "auto";
|
||||
italic_font = "auto";
|
||||
bold_italic_font = "auto";
|
||||
background_opacity = "0.9";
|
||||
disable_ligatures = "cursor";
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ let lockCommand = config.programs.swaylock.script; in
|
|||
config =
|
||||
let
|
||||
pactl = "${config.home.nixosConfig.hardware.pulseaudio.package or pkgs.pulseaudio}/bin/pactl";
|
||||
dmenu = "${pkgs.wofi}/bin/wofi -idbt ${pkgs.kitty}/bin/kitty -s ~/.config/wofi/wofi.css -p '' -W 25%";
|
||||
dmenu = "${pkgs.wofi}/bin/wofi -idbt ${pkgs.wezterm}/bin/wezterm -s ~/.config/wofi/wofi.css -p '' -W 25%";
|
||||
in
|
||||
{
|
||||
|
||||
|
|
@ -104,8 +104,8 @@ let lockCommand = config.programs.swaylock.script; in
|
|||
style = "Regular";
|
||||
size = config.kw.theme.font.size;
|
||||
};
|
||||
terminal = "${pkgs.kitty}/bin/kitty";
|
||||
menu = "${pkgs.j4-dmenu-desktop}/bin/j4-dmenu-desktop --no-generic --dmenu=\"${dmenu}\" --term='${pkgs.kitty}/bin/kitty'";
|
||||
terminal = "${pkgs.wezterm}/bin/wezterm";
|
||||
menu = "${pkgs.j4-dmenu-desktop}/bin/j4-dmenu-desktop --no-generic --dmenu=\"${dmenu}\" --term='${pkgs.wezterm}/bin/wezterm'";
|
||||
modifier = "Mod4";
|
||||
|
||||
assigns = { "12:F2" = [{ class = "screenstub"; }]; };
|
||||
|
|
|
|||
16
home/wezterm.nix
Normal file
16
home/wezterm.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
wezterm
|
||||
];
|
||||
|
||||
xdg.configFile."wezterm/wezterm.lua".text = ''
|
||||
local wezterm = require 'wezterm'
|
||||
return {
|
||||
enable_tab_bar = false,
|
||||
font = wezterm.font "${config.kw.theme.font.termName}",
|
||||
font_size = ${toString config.kw.theme.font.size},
|
||||
}
|
||||
'';
|
||||
}
|
||||
125
overlays/local/wezterm/default.nix
Normal file
125
overlays/local/wezterm/default.nix
Normal file
|
|
@ -0,0 +1,125 @@
|
|||
{ stdenv
|
||||
, rustPlatform
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, ncurses
|
||||
, perl
|
||||
, pkg-config
|
||||
, python3
|
||||
, fontconfig
|
||||
, openssl
|
||||
, libGL
|
||||
, libX11
|
||||
, libxcb
|
||||
, libxkbcommon
|
||||
, xcbutil
|
||||
, xcbutilimage
|
||||
, xcbutilkeysyms
|
||||
, xcbutilwm
|
||||
, wayland
|
||||
, zlib
|
||||
, CoreGraphics
|
||||
, Cocoa
|
||||
, Foundation
|
||||
, libiconv
|
||||
, nixosTests
|
||||
, runCommand
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "wezterm";
|
||||
version = "20220624-141144-bd1b7c5d";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "wez";
|
||||
repo = pname;
|
||||
rev = "cb89f2c36e08e74512ee7b8e1aff3bf461f774c2";
|
||||
fetchSubmodules = true;
|
||||
sha256 = "sha256-Pmd5I2p2BDhJ3Mm7uGZjWYladZN2x8MMtquP4+TVtJ0=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
echo ${version} > .tag
|
||||
|
||||
# tests are failing with: Unable to exchange encryption keys
|
||||
rm -r wezterm-ssh/tests
|
||||
'';
|
||||
|
||||
cargoSha256 = "sha256-0jhJzz3lrQf+7vv373J1HfzzVw+eottdto/ephnz4HM=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
python3
|
||||
ncurses # tic for terminfo
|
||||
] ++ lib.optional stdenv.isDarwin perl;
|
||||
|
||||
buildInputs = [
|
||||
fontconfig
|
||||
zlib
|
||||
] ++ lib.optionals stdenv.isLinux [
|
||||
libX11
|
||||
libxcb
|
||||
libxkbcommon
|
||||
openssl
|
||||
wayland
|
||||
xcbutil
|
||||
xcbutilimage
|
||||
xcbutilkeysyms
|
||||
xcbutilwm # contains xcb-ewmh among others
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
Cocoa
|
||||
CoreGraphics
|
||||
Foundation
|
||||
libiconv
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/nix-support
|
||||
echo "${passthru.terminfo}" >> $out/nix-support/propagated-user-env-packages
|
||||
|
||||
# desktop icon
|
||||
install -Dm644 assets/icon/terminal.png $out/share/icons/hicolor/128x128/apps/org.wezfurlong.wezterm.png
|
||||
install -Dm644 assets/wezterm.desktop $out/share/applications/org.wezfurlong.wezterm.desktop
|
||||
install -Dm644 assets/wezterm.appdata.xml $out/share/metainfo/org.wezfurlong.wezterm.appdata.xml
|
||||
|
||||
# helper scripts
|
||||
install -Dm644 assets/shell-integration/wezterm.sh -t $out/etc/profile.d
|
||||
'';
|
||||
|
||||
preFixup = lib.optionalString stdenv.isLinux ''
|
||||
patchelf --add-needed "${libGL}/lib/libEGL.so.1" $out/bin/wezterm-gui
|
||||
'' + lib.optionalString stdenv.isDarwin ''
|
||||
mkdir -p "$out/Applications"
|
||||
OUT_APP="$out/Applications/WezTerm.app"
|
||||
cp -r assets/macos/WezTerm.app "$OUT_APP"
|
||||
rm $OUT_APP/*.dylib
|
||||
cp -r assets/shell-integration/* "$OUT_APP"
|
||||
ln -s $out/bin/{wezterm,wezterm-mux-server,wezterm-gui,strip-ansi-escapes} "$OUT_APP"
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
tests = {
|
||||
all-terminfo = nixosTests.allTerminfo;
|
||||
terminal-emulators = nixosTests.terminal-emulators.wezterm;
|
||||
};
|
||||
terminfo = runCommand "wezterm-terminfo"
|
||||
{
|
||||
nativeBuildInputs = [
|
||||
ncurses
|
||||
];
|
||||
} ''
|
||||
mkdir -p $out/share/terminfo $out/nix-support
|
||||
tic -x -o $out/share/terminfo ${src}/termwiz/data/wezterm.terminfo
|
||||
'';
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust";
|
||||
homepage = "https://wezfurlong.org/wezterm";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ SuperSandro2000 ];
|
||||
platforms = platforms.unix;
|
||||
# Fails on missing UserNotifications framework while linking
|
||||
broken = stdenv.isDarwin;
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue