rix101/modules/home-manager/reo101-wezterm/wezterm.fnl

104 lines
2.6 KiB
Fennel

(local wezterm (require :wezterm))
(local config (if wezterm.config_builder
(wezterm.config_builder)
{}))
;; https://github.com/NixOS/nixpkgs/issues/336069
(set config.front_end "WebGpu")
;;;;;;;;;;;;;;;;;;;;
;;; Font Options ;;;
;;;;;;;;;;;;;;;;;;;;
(set config.font
(wezterm.font "FiraCode Nerd Font Mono"))
(set config.harfbuzz_features
[:liga
:cv02 :cv19 :cv25 :cv26 :cv28 :cv30 :cv32
:ss02 :ss03 :ss05 :ss07 :ss09
:zero])
;;;;;;;;;;;;;;;;;;;;;;
;;; Window Options ;;;
;;;;;;;;;;;;;;;;;;;;;;
(doto config
(tset :freetype_render_target :Light)
(tset :window_background_opacity 0.8)
(tset :window_background_image "")
(tset :window_decorations :RESIZE)
(tset :window_close_confirmation :NeverPrompt)
(tset :use_resize_increments false)
(tset :enable_scroll_bar false)
(tset :enable_tab_bar false)
(tset :window_padding {:left 0
:right 0
:top 0
:bottom 0})
(tset :adjust_window_size_when_changing_font_size false))
;;;;;;;;;;;;
;;; Bell ;;;
;;;;;;;;;;;;
(doto config
(tset :audible_bell :Disabled)
(tset :visual_bell {}))
;;;;;;;;;;;;;;;;
;;; Keybinds ;;;
;;;;;;;;;;;;;;;;
(fn keybind [mods key action]
(local action (if (= (type action) :table)
(wezterm.action action)
;; else
action))
{: mods
: key
: action})
(set config.disable_default_key_bindings true)
(set config.keys
[;;;;;;;;;;;;;;;;;
;;; Clipboard ;;;
;;;;;;;;;;;;;;;;;
(keybind :ALT :c {:CopyTo :Clipboard})
(keybind :ALT :v {:PasteFrom :Clipboard})
;;;;;;;;;;;;;;;;;
;;; Font Size ;;;
;;;;;;;;;;;;;;;;;
(keybind :ALT|SHIFT :UpArrow :IncreaseFontSize)
(keybind :ALT|SHIFT :DownArrow :DecreaseFontSize)
;;;;;;;;;;;;;;
;;; Scroll ;;;
;;;;;;;;;;;;;;
(keybind :ALT :u {:ScrollByPage -1})
(keybind :ALT :d {:ScrollByPage 1})
;;;;;;;;;;;;;;
;;; Reload ;;;
;;;;;;;;;;;;;;
(keybind :CTRL|SHIFT :r :ReloadConfiguration)])
;;;;;;;;;;;;;
;;; Links ;;;
;;;;;;;;;;;;;
(set config.hyperlink_rules
[;;; Linkify things that look like URLs
{:regex "\\b\\w+://(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&/=]*)"
:format "$0"}
;;; Linkify things that look like emails
{:regex "\\b\\w+@[\\w-]+(\\.[\\w-]+)+\\b"
:format "mailto:$0"}
;;; file:// URI
{:regex "\\bfile://\\S*\\b"
:format "$0"}])
config