Compare commits
4 Commits
9f9479b576
...
23acb87339
Author | SHA1 | Date | |
---|---|---|---|
23acb87339
|
|||
d4849e9319
|
|||
a86f3f9c15
|
|||
386d3f9007
|
@ -5,6 +5,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
console.yazi.enable = true;
|
console.yazi.enable = true;
|
||||||
|
console.joshuto.enable = true;
|
||||||
|
|
||||||
stylix.targets.fzf.enable = false;
|
stylix.targets.fzf.enable = false;
|
||||||
services.ssh-agent.enable = true;
|
services.ssh-agent.enable = true;
|
||||||
@ -43,7 +44,8 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
terminal = {
|
terminal = {
|
||||||
ghostty.enable = true;
|
# ghostty.enable = true;
|
||||||
|
wezterm.enable = true;
|
||||||
kitty.enable = true;
|
kitty.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -8,7 +8,8 @@
|
|||||||
}: let
|
}: let
|
||||||
cfg = config.desktop.hyprland;
|
cfg = config.desktop.hyprland;
|
||||||
hostname = osConfig.networking.hostName;
|
hostname = osConfig.networking.hostName;
|
||||||
cursor_size = config.stylix.cursor.size;
|
cursorSize = config.stylix.cursor.size;
|
||||||
|
fontName = config.stylix.fonts.sansSerif.name;
|
||||||
inherit (config.lib.stylix) colors;
|
inherit (config.lib.stylix) colors;
|
||||||
keyboard =
|
keyboard =
|
||||||
if hostname == "eldrid"
|
if hostname == "eldrid"
|
||||||
@ -25,8 +26,9 @@ in {
|
|||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
stylix.targets.waybar.enable = false;
|
stylix.targets.waybar.enable = false;
|
||||||
stylix.targets.hyprland.enable = false;
|
stylix.targets.hyprland.enable = false;
|
||||||
|
stylix.targets.hyprlock.enable = false;
|
||||||
home.pointerCursor.hyprcursor.enable = true;
|
home.pointerCursor.hyprcursor.enable = true;
|
||||||
home.pointerCursor.hyprcursor.size = cursor_size;
|
home.pointerCursor.hyprcursor.size = cursorSize;
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
systemd = {
|
systemd = {
|
||||||
@ -83,7 +85,7 @@ in {
|
|||||||
"ELECTRON_OZONE_PLATFORM_HINT,auto"
|
"ELECTRON_OZONE_PLATFORM_HINT,auto"
|
||||||
"QT_QPA_PLATFORM,wayland"
|
"QT_QPA_PLATFORM,wayland"
|
||||||
"QT_QPA_PLATFORMTHEME,gtk3"
|
"QT_QPA_PLATFORMTHEME,gtk3"
|
||||||
"XCURSOR_SIZE,${toString cursor_size}"
|
"XCURSORSIZE,${toString cursorSize}"
|
||||||
"GSK_RENDERER,ngl"
|
"GSK_RENDERER,ngl"
|
||||||
];
|
];
|
||||||
decoration = {
|
decoration = {
|
||||||
@ -98,7 +100,7 @@ in {
|
|||||||
rounding = 12;
|
rounding = 12;
|
||||||
};
|
};
|
||||||
misc = {
|
misc = {
|
||||||
font_family = "${config.stylix.fonts.sansSerif.name}";
|
font_family = fontName;
|
||||||
disable_splash_rendering = true;
|
disable_splash_rendering = true;
|
||||||
disable_hyprland_logo = true;
|
disable_hyprland_logo = true;
|
||||||
# vfr = true;
|
# vfr = true;
|
||||||
@ -145,7 +147,7 @@ in {
|
|||||||
rounding = 8;
|
rounding = 8;
|
||||||
text_height = 14;
|
text_height = 14;
|
||||||
text_center = true;
|
text_center = true;
|
||||||
text_font = "${config.stylix.fonts.sansSerif.name}";
|
text_font = fontName;
|
||||||
|
|
||||||
"col.active" = "0xff${colors.base00}";
|
"col.active" = "0xff${colors.base00}";
|
||||||
"col.inactive" = "0xff${colors.base00}";
|
"col.inactive" = "0xff${colors.base00}";
|
||||||
@ -165,7 +167,7 @@ in {
|
|||||||
window_heights = "onethird onehalf twothirds one";
|
window_heights = "onethird onehalf twothirds one";
|
||||||
gesture_scroll_fingers = 3;
|
gesture_scroll_fingers = 3;
|
||||||
gesture_overview_fingers = 3;
|
gesture_overview_fingers = 3;
|
||||||
jump_labels_font = "${config.stylix.fonts.sansSerif.name}";
|
jump_labels_font = fontName;
|
||||||
jump_labels_color = "0xff${colors.base0A}";
|
jump_labels_color = "0xff${colors.base0A}";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -217,7 +219,7 @@ in {
|
|||||||
gradient_rounding = 4;
|
gradient_rounding = 4;
|
||||||
font_size = 14;
|
font_size = 14;
|
||||||
gradients = true;
|
gradients = true;
|
||||||
font_family = "${config.stylix.fonts.sansSerif.name}";
|
font_family = fontName;
|
||||||
"text_color" = "0xff${colors.base00}";
|
"text_color" = "0xff${colors.base00}";
|
||||||
"col.active" = "0xff${colors.base0D}";
|
"col.active" = "0xff${colors.base0D}";
|
||||||
"col.inactive" = "0xff${colors.base03}";
|
"col.inactive" = "0xff${colors.base03}";
|
||||||
@ -701,7 +703,7 @@ in {
|
|||||||
@define-color base0E #${colors.base0E};
|
@define-color base0E #${colors.base0E};
|
||||||
@define-color base0F #${colors.base0F};
|
@define-color base0F #${colors.base0F};
|
||||||
* {
|
* {
|
||||||
font-family: ${config.stylix.fonts.sansSerif.name}, FontAwesome;
|
font-family: ${fontName}, FontAwesome;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-size: 100%;
|
font-size: 100%;
|
||||||
}
|
}
|
||||||
@ -1029,7 +1031,6 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
stylix.targets.hyprlock.enable = false;
|
|
||||||
programs.hyprlock = {
|
programs.hyprlock = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
@ -1065,7 +1066,6 @@ in {
|
|||||||
fail_color = "rgb(${colors.base08})";
|
fail_color = "rgb(${colors.base08})";
|
||||||
placeholder_text = "locked...";
|
placeholder_text = "locked...";
|
||||||
fail_text = "wrong";
|
fail_text = "wrong";
|
||||||
#placeholder_text = '\'<span foreground="##cad3f5">Password...</span>'\';
|
|
||||||
shadow_passes = 0;
|
shadow_passes = 0;
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
@ -16,7 +16,8 @@
|
|||||||
xdgPics =
|
xdgPics =
|
||||||
config.xdg.userDirs.pictures;
|
config.xdg.userDirs.pictures;
|
||||||
ifLaptop = lib.mkIf (hostId != "c7f6c4a1");
|
ifLaptop = lib.mkIf (hostId != "c7f6c4a1");
|
||||||
terminal = lib.getExe pkgs.ghostty;
|
# TODO: make terminal depent on thing outside a module
|
||||||
|
terminal = lib.getExe pkgs.wezterm;
|
||||||
launcher = lib.getExe pkgs.fuzzel;
|
launcher = lib.getExe pkgs.fuzzel;
|
||||||
browser = "app.zen_browser.zen";
|
browser = "app.zen_browser.zen";
|
||||||
lockscreen = lib.getExe pkgs.gtklock;
|
lockscreen = lib.getExe pkgs.gtklock;
|
||||||
|
6
modules/home/programs/console/default.nix
Normal file
6
modules/home/programs/console/default.nix
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./joshuto.nix
|
||||||
|
./yazi.nix
|
||||||
|
];
|
||||||
|
}
|
292
modules/home/programs/console/joshuto.nix
Normal file
292
modules/home/programs/console/joshuto.nix
Normal file
@ -0,0 +1,292 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.console.joshuto;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
console.joshuto.enable =
|
||||||
|
mkEnableOption "enable joshuto file manager";
|
||||||
|
};
|
||||||
|
config =
|
||||||
|
# let
|
||||||
|
# test = pkgs.writeShellApplication {
|
||||||
|
# name = "upgrade";
|
||||||
|
# text = ''
|
||||||
|
# IFS=$'\n'
|
||||||
|
# # Security measures:
|
||||||
|
# # * noclobber prevents you from overwriting a file with `>`
|
||||||
|
# # * noglob prevents expansion of wild cards
|
||||||
|
# # * nounset causes bash to fail if an undeclared variable is used (e.g. typos)
|
||||||
|
# # * pipefail causes a pipeline to fail also if a command other than the last one fails
|
||||||
|
# set -o noclobber -o noglob -o nounset -o pipefail
|
||||||
|
# # Enable exiftool large file support
|
||||||
|
# shopt -s expand_aliases
|
||||||
|
# alias exiftool='exiftool -api largefilesupport=1'
|
||||||
|
# FILE_PATH=""
|
||||||
|
# PREVIEW_WIDTH=10
|
||||||
|
# PREVIEW_HEIGHT=10
|
||||||
|
# while [ "$#" -gt 0 ]; do
|
||||||
|
# case "$1" in
|
||||||
|
# "--path")
|
||||||
|
# shift
|
||||||
|
# FILE_PATH="$1"
|
||||||
|
# ;;
|
||||||
|
# "--preview-width")
|
||||||
|
# shift
|
||||||
|
# PREVIEW_WIDTH="$1"
|
||||||
|
# ;;
|
||||||
|
# "--preview-height")
|
||||||
|
# shift
|
||||||
|
# PREVIEW_HEIGHT="$1"
|
||||||
|
# ;;
|
||||||
|
# esac
|
||||||
|
# shift
|
||||||
|
# done
|
||||||
|
# handle_extension() {
|
||||||
|
# case "\$\{FILE_EXTENSION_LOWER}" in
|
||||||
|
# ## Archive
|
||||||
|
# a | ace | alz | arc | arj | bz | bz2 | cab | cpio | deb | gz | jar | lha | lz | lzh | lzma | lzo | \
|
||||||
|
# rpm | rz | t7z | tar | tbz | tbz2 | tgz | tlz | txz | tZ | tzo | war | xpi | xz | Z | zip)
|
||||||
|
# atool --list -- "\$\{FILE_PATH}" && exit 0
|
||||||
|
# bsdtar --list --file "\$\{FILE_PATH}" && exit 0
|
||||||
|
# exit 1
|
||||||
|
# ;;
|
||||||
|
# rar)
|
||||||
|
# ## Avoid password prompt by providing empty password
|
||||||
|
# unrar lt -p- -- "\$\{FILE_PATH}" && exit 0
|
||||||
|
# exit 1
|
||||||
|
# ;;
|
||||||
|
# 7z)
|
||||||
|
# ## Avoid password prompt by providing empty password
|
||||||
|
# 7z l -p -- "\$\{FILE_PATH}" && exit 0
|
||||||
|
# exit 1
|
||||||
|
# ;;
|
||||||
|
# ## PDF
|
||||||
|
# pdf)
|
||||||
|
# ## Preview as text conversion
|
||||||
|
# pdftotext -l 10 -nopgbrk -q -- "\$\{FILE_PATH}" - |
|
||||||
|
# fmt -w "\$\{PREVIEW_WIDTH}" && exit 0
|
||||||
|
# mutool draw -F txt -i -- "\$\{FILE_PATH}" 1-10 |
|
||||||
|
# fmt -w "\$\{PREVIEW_WIDTH}" && exit 0
|
||||||
|
# exiftool "\$\{FILE_PATH}" && exit 0
|
||||||
|
# exit 1
|
||||||
|
# ;;
|
||||||
|
# ## BitTorrent
|
||||||
|
# torrent)
|
||||||
|
# transmission-show -- "\$\{FILE_PATH}" && exit 0
|
||||||
|
# exit 1
|
||||||
|
# ;;
|
||||||
|
# ## OpenDocument
|
||||||
|
# odt | sxw)
|
||||||
|
# ## Preview as text conversion
|
||||||
|
# odt2txt "\$\{FILE_PATH}" && exit 0
|
||||||
|
# ## Preview as markdown conversion
|
||||||
|
# pandoc -s -t markdown -- "\$\{FILE_PATH}" && exit 0
|
||||||
|
# exit 1
|
||||||
|
# ;;
|
||||||
|
# ods | odp)
|
||||||
|
# ## Preview as text conversion (unsupported by pandoc for markdown)
|
||||||
|
# odt2txt "\$\{FILE_PATH}" && exit 0
|
||||||
|
# exit 1
|
||||||
|
# ;;
|
||||||
|
# ## XLSX
|
||||||
|
# xlsx)
|
||||||
|
# ## Preview as csv conversion
|
||||||
|
# ## Uses: https://github.com/dilshod/xlsx2csv
|
||||||
|
# xlsx2csv -- "\$\{FILE_PATH}" && exit 0
|
||||||
|
# exit 1
|
||||||
|
# ;;
|
||||||
|
# ## HTML
|
||||||
|
# htm | html | xhtml)
|
||||||
|
# ## Preview as text conversion
|
||||||
|
# w3m -dump "\$\{FILE_PATH}" && exit 0
|
||||||
|
# lynx -dump -- "\$\{FILE_PATH}" && exit 0
|
||||||
|
# elinks -dump "\$\{FILE_PATH}" && exit 0
|
||||||
|
# pandoc -s -t markdown -- "\$\{FILE_PATH}" && exit 0
|
||||||
|
# bat --color=always --paging=never \
|
||||||
|
# --style=plain \
|
||||||
|
# --terminal-width="\$\{PREVIEW_WIDTH}" \
|
||||||
|
# "\$\{FILE_PATH}" && exit 0
|
||||||
|
# ;;
|
||||||
|
# ## JSON
|
||||||
|
# json | ipynb)
|
||||||
|
# jq --color-output . "\$\{FILE_PATH}" && exit 0
|
||||||
|
# python -m json.tool -- "\$\{FILE_PATH}" && exit 0
|
||||||
|
# bat --color=always --paging=never \
|
||||||
|
# --style=plain \
|
||||||
|
# --terminal-width="\$\{PREVIEW_WIDTH}" \
|
||||||
|
# "\$\{FILE_PATH}" && exit 0
|
||||||
|
# ;;
|
||||||
|
# ## Direct Stream Digital/Transfer (DSDIFF) and wavpack aren't detected
|
||||||
|
# ## by file(1).
|
||||||
|
# dff | dsf | wv | wvc)
|
||||||
|
# mediainfo "\$\{FILE_PATH}" && exit 0
|
||||||
|
# exiftool "\$\{FILE_PATH}" && exit 0
|
||||||
|
# ;; # Continue with next handler on failure
|
||||||
|
# esac
|
||||||
|
# }
|
||||||
|
# handle_mime() {
|
||||||
|
# local mimetype="\$\{1}"
|
||||||
|
# case "\$\{mimetype}" in
|
||||||
|
# ## RTF and DOC
|
||||||
|
# text/rtf | *msword)
|
||||||
|
# ## Preview as text conversion
|
||||||
|
# ## note: catdoc does not always work for .doc files
|
||||||
|
# ## catdoc: http://www.wagner.pp.ru/~vitus/software/catdoc/
|
||||||
|
# catdoc -- "\$\{FILE_PATH}" && exit 0
|
||||||
|
# exit 1
|
||||||
|
# ;;
|
||||||
|
# ## DOCX, ePub, FB2 (using markdown)
|
||||||
|
# ## You might want to remove "|epub" and/or "|fb2" below if you have
|
||||||
|
# ## uncommented other methods to preview those formats
|
||||||
|
# *wordprocessingml.document | */epub+zip | */x-fictionbook+xml)
|
||||||
|
# ## Preview as markdown conversion
|
||||||
|
# pandoc -s -t markdown -- "\$\{FILE_PATH}" | bat -l markdown \
|
||||||
|
# --color=always --paging=never \
|
||||||
|
# --style=plain \
|
||||||
|
# --terminal-width="\$\{PREVIEW_WIDTH}" && exit 0
|
||||||
|
# exit 1
|
||||||
|
# ;;
|
||||||
|
# ## E-mails
|
||||||
|
# message/rfc822)
|
||||||
|
# ## Parsing performed by mu: https://github.com/djcb/mu
|
||||||
|
# mu view -- "\$\{FILE_PATH}" && exit 0
|
||||||
|
# exit 1
|
||||||
|
# ;;
|
||||||
|
# ## XLS
|
||||||
|
# *ms-excel)
|
||||||
|
# ## Preview as csv conversion
|
||||||
|
# ## xls2csv comes with catdoc:
|
||||||
|
# ## http://www.wagner.pp.ru/~vitus/software/catdoc/
|
||||||
|
# xls2csv -- "\$\{FILE_PATH}" && exit 0
|
||||||
|
# exit 1
|
||||||
|
# ;;
|
||||||
|
# ## Text
|
||||||
|
# text/* | */xml)
|
||||||
|
# bat --color=always --paging=never \
|
||||||
|
# --style=plain \
|
||||||
|
# --terminal-width="\$\{PREVIEW_WIDTH}" \
|
||||||
|
# "\$\{FILE_PATH}" && exit 0
|
||||||
|
# cat "\$\{FILE_PATH}" && exit 0
|
||||||
|
# exit 1
|
||||||
|
# ;;
|
||||||
|
# ## DjVu
|
||||||
|
# image/vnd.djvu)
|
||||||
|
# ## Preview as text conversion (requires djvulibre)
|
||||||
|
# djvutxt "\$\{FILE_PATH}" | fmt -w "\$\{PREVIEW_WIDTH}" && exit 0
|
||||||
|
# exiftool "\$\{FILE_PATH}" && exit 0
|
||||||
|
# exit 1
|
||||||
|
# ;;
|
||||||
|
# ## Image
|
||||||
|
# image/*)
|
||||||
|
# ## Preview as text conversion
|
||||||
|
# exiftool "\$\{FILE_PATH}" && exit 0
|
||||||
|
# exit 1
|
||||||
|
# ;;
|
||||||
|
# ## Video and audio
|
||||||
|
# video/* | audio/*)
|
||||||
|
# mediainfo "\$\{FILE_PATH}" && exit 0
|
||||||
|
# exiftool "\$\{FILE_PATH}" && exit 0
|
||||||
|
# exit 1
|
||||||
|
# ;;
|
||||||
|
# esac
|
||||||
|
# }
|
||||||
|
# FILE_EXTENSION="\$\{FILE_PATH##*.}"
|
||||||
|
# FILE_EXTENSION_LOWER="$(printf "%s" "\$\{FILE_EXTENSION}" | tr '[:upper:]' '[:lower:]')"
|
||||||
|
# handle_extension
|
||||||
|
# MIMETYPE="$(file --dereference --brief --mime-type -- "\$\{FILE_PATH}")"
|
||||||
|
# handle_mime "\$\{MIMETYPE}"
|
||||||
|
# exit 1
|
||||||
|
# '';
|
||||||
|
# };
|
||||||
|
# in
|
||||||
|
lib.mkIf cfg.enable {
|
||||||
|
home.packages = [pkgs.file];
|
||||||
|
programs.joshuto = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
mouse_support = true;
|
||||||
|
focus_on_create = true;
|
||||||
|
use_trash = true;
|
||||||
|
watch_files = true;
|
||||||
|
xdg_open = true;
|
||||||
|
xdg_open_fork = true;
|
||||||
|
case_insensitive_ext = false;
|
||||||
|
# zoxide_update = true;
|
||||||
|
display = {
|
||||||
|
mode = "minimal";
|
||||||
|
show_icons = true;
|
||||||
|
column_ratio = [1 5 2];
|
||||||
|
};
|
||||||
|
preview = {
|
||||||
|
# preview_script = lib.getExe pkgs.pistol;
|
||||||
|
use_xdg_thumbs = true;
|
||||||
|
xdg_thumb_size = "xxlarge";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
mimetype = {
|
||||||
|
class = {
|
||||||
|
text_default = [
|
||||||
|
{
|
||||||
|
command = "hx";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
extension = {
|
||||||
|
build."inherit" = "text_default";
|
||||||
|
c."inherit" = "text_default";
|
||||||
|
cmake."inherit" = "text_default";
|
||||||
|
conf."inherit" = "text_default";
|
||||||
|
cpp."inherit" = "text_default";
|
||||||
|
css."inherit" = "text_default";
|
||||||
|
csv."inherit" = "text_default";
|
||||||
|
cu."inherit" = "text_default";
|
||||||
|
ebuild."inherit" = "text_default";
|
||||||
|
eex."inherit" = "text_default";
|
||||||
|
env."inherit" = "text_default";
|
||||||
|
ex."inherit" = "text_default";
|
||||||
|
exs."inherit" = "text_default";
|
||||||
|
go."inherit" = "text_default";
|
||||||
|
h."inherit" = "text_default";
|
||||||
|
hpp."inherit" = "text_default";
|
||||||
|
hs."inherit" = "text_default";
|
||||||
|
html."inherit" = "text_default";
|
||||||
|
ini."inherit" = "text_default";
|
||||||
|
java."inherit" = "text_default";
|
||||||
|
js."inherit" = "text_default";
|
||||||
|
json."inherit" = "text_default";
|
||||||
|
kt."inherit" = "text_default";
|
||||||
|
log."inherit" = "text_default";
|
||||||
|
lua."inherit" = "text_default";
|
||||||
|
md."inherit" = "text_default";
|
||||||
|
micro."inherit" = "text_default";
|
||||||
|
ninja."inherit" = "text_default";
|
||||||
|
nix."inherit" = "text_default";
|
||||||
|
norg."inherit" = "text_default";
|
||||||
|
org."inherit" = "text_default";
|
||||||
|
py."inherit" = "text_default";
|
||||||
|
rkt."inherit" = "text_default";
|
||||||
|
rs."inherit" = "text_default";
|
||||||
|
scss."inherit" = "text_default";
|
||||||
|
sh."inherit" = "text_default";
|
||||||
|
srt."inherit" = "text_default";
|
||||||
|
svelte."inherit" = "text_default";
|
||||||
|
toml."inherit" = "text_default";
|
||||||
|
tsx."inherit" = "text_default";
|
||||||
|
txt."inherit" = "text_default";
|
||||||
|
vim."inherit" = "text_default";
|
||||||
|
xml."inherit" = "text_default";
|
||||||
|
yaml."inherit" = "text_default";
|
||||||
|
yml."inherit" = "text_default";
|
||||||
|
};
|
||||||
|
mimetype = {
|
||||||
|
text = {"inherit" = "text_default";};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./console/yazi.nix
|
./console
|
||||||
./editor
|
./editor
|
||||||
./shell
|
./shell
|
||||||
./terminal
|
./terminal
|
||||||
|
@ -17,7 +17,7 @@ in {
|
|||||||
# version = 2;
|
# version = 2;
|
||||||
final_space = true;
|
final_space = true;
|
||||||
shell_integration = true;
|
shell_integration = true;
|
||||||
console_title_template = "{{if .SSHSession}}{{.HostName}} {{ end }}{{ .Shell }} in {{ .Folder }}";
|
console_title_template = "{{ .Shell }} in {{ .Folder }}";
|
||||||
blocks = [
|
blocks = [
|
||||||
{
|
{
|
||||||
type = "prompt";
|
type = "prompt";
|
||||||
|
@ -16,7 +16,30 @@ in {
|
|||||||
programs.wezterm = {
|
programs.wezterm = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# package = inputs.wezterm.packages.${pkgs.system}.default;
|
# package = inputs.wezterm.packages.${pkgs.system}.default;
|
||||||
extraConfig = ''
|
extraConfig = let
|
||||||
|
arrows = {
|
||||||
|
left = "LeftArrow";
|
||||||
|
down = "DownArrow";
|
||||||
|
up = "UpArrow";
|
||||||
|
right = "RightArrow";
|
||||||
|
};
|
||||||
|
homerow-arrows = {
|
||||||
|
left = "n";
|
||||||
|
down = "e";
|
||||||
|
up = "i";
|
||||||
|
right = "o";
|
||||||
|
};
|
||||||
|
genNavigation = keys: ''
|
||||||
|
{ key = '${keys.left}', mods = 'LEADER', action = act.ActivatePaneDirection 'Left' },
|
||||||
|
{ key = '${keys.down}', mods = 'LEADER', action = act.ActivatePaneDirection 'Down' },
|
||||||
|
{ key = '${keys.up}', mods = 'LEADER', action = act.ActivatePaneDirection 'Up' },
|
||||||
|
{ key = '${keys.right}', mods = 'LEADER', action = act.ActivatePaneDirection 'Right' },
|
||||||
|
{ key = '${keys.left}', mods = 'CTRL|SHIFT', action = act.ActivatePaneDirection 'Left' },
|
||||||
|
{ key = '${keys.down}', mods = 'CTRL|SHIFT', action = act.ActivatePaneDirection 'Down' },
|
||||||
|
{ key = '${keys.up}', mods = 'CTRL|SHIFT', action = act.ActivatePaneDirection 'Up' },
|
||||||
|
{ key = '${keys.right}', mods = 'CTRL|SHIFT', action = act.ActivatePaneDirection 'Right' },
|
||||||
|
'';
|
||||||
|
in ''
|
||||||
local wezterm = require 'wezterm'
|
local wezterm = require 'wezterm'
|
||||||
local act = wezterm.action
|
local act = wezterm.action
|
||||||
return {
|
return {
|
||||||
@ -44,10 +67,6 @@ in {
|
|||||||
disable_default_key_bindings = true,
|
disable_default_key_bindings = true,
|
||||||
leader = { key = 'Space', mods = 'CTRL', timeout_milliseconds = 2000 },
|
leader = { key = 'Space', mods = 'CTRL', timeout_milliseconds = 2000 },
|
||||||
keys = {
|
keys = {
|
||||||
{ key = 'n', mods = 'CTRL|SHIFT', action = act.ActivateTabRelative(-1) },
|
|
||||||
{ key = 'e', mods = 'CTRL|SHIFT', action = act.ActivatePaneDirection 'Down', },
|
|
||||||
{ key = 'u', mods = 'CTRL|SHIFT', action = act.ActivatePaneDirection 'Up', },
|
|
||||||
{ key = 'i', mods = 'CTRL|SHIFT', action = act.ActivateTabRelative(1) },
|
|
||||||
{ key = 'Enter', mods = 'SHIFT|CTRL', action = act.ActivateCopyMode },
|
{ key = 'Enter', mods = 'SHIFT|CTRL', action = act.ActivateCopyMode },
|
||||||
{ key = 'R', mods = 'SHIFT|CTRL', action = act.ReloadConfiguration },
|
{ key = 'R', mods = 'SHIFT|CTRL', action = act.ReloadConfiguration },
|
||||||
{ key = '+', mods = 'SHIFT|CTRL', action = act.IncreaseFontSize },
|
{ key = '+', mods = 'SHIFT|CTRL', action = act.IncreaseFontSize },
|
||||||
@ -57,21 +76,15 @@ in {
|
|||||||
-- { key = 'N', mods = 'SHIFT|CTRL', action = act.SpawnWindow },
|
-- { key = 'N', mods = 'SHIFT|CTRL', action = act.SpawnWindow },
|
||||||
{ key = 'l', mods = 'SHIFT|CTRL', action = act.CharSelect{ copy_on_select = true, copy_to = 'ClipboardAndPrimarySelection' } },
|
{ key = 'l', mods = 'SHIFT|CTRL', action = act.CharSelect{ copy_on_select = true, copy_to = 'ClipboardAndPrimarySelection' } },
|
||||||
{ key = 'v', mods = 'SHIFT|CTRL', action = act.PasteFrom 'Clipboard' },
|
{ key = 'v', mods = 'SHIFT|CTRL', action = act.PasteFrom 'Clipboard' },
|
||||||
{ key = 'PageUp', mods = 'CTRL', action = act.ActivateTabRelative(-1) },
|
{ key = '<', mods = 'CTRL|SHIFT', action = act.ActivateTabRelative(-1) },
|
||||||
{ key = 'PageDown', mods = 'CTRL', action = act.ActivateTabRelative(1) },
|
{ key = '>', mods = 'CTRL|SHIFT', action = act.ActivateTabRelative(1) },
|
||||||
{ key = ',', mods = 'SHIFT|CTRL', action = act.SplitVertical { domain = 'CurrentPaneDomain' }, },
|
{ key = 'Tab', mods = 'CTRL|SHIFT', action = act.ActivateTabRelative(-1) },
|
||||||
{ key = '.', mods = 'SHIFT|CTRL', action = act.SplitHorizontal { domain = 'CurrentPaneDomain' }, },
|
{ key = 'Tab', mods = 'CTRL', action = act.ActivateTabRelative(1) },
|
||||||
{ key = '%', mods = 'SHIFT|CTRL', action = act.SplitVertical { domain = 'CurrentPaneDomain' }, },
|
{ key = '%', mods = 'SHIFT|CTRL', action = act.SplitVertical { domain = 'CurrentPaneDomain' }, },
|
||||||
{ key = '"', mods = 'SHIFT|CTRL', action = act.SplitHorizontal { domain = 'CurrentPaneDomain' }, },
|
{ key = '"', mods = 'SHIFT|CTRL', action = act.SplitHorizontal { domain = 'CurrentPaneDomain' }, },
|
||||||
-- pane navigation
|
-- pane navigation
|
||||||
{ key = 'LeftArrow', mods = 'LEADER', action = act.ActivatePaneDirection 'Left' },
|
${genNavigation arrows}
|
||||||
{ key = 'DownArrow', mods = 'LEADER', action = act.ActivatePaneDirection 'Down' },
|
${genNavigation homerow-arrows}
|
||||||
{ key = 'UpArrow', mods = 'LEADER', action = act.ActivatePaneDirection 'Up' },
|
|
||||||
{ key = 'RightArrow', mods = 'LEADER', action = act.ActivatePaneDirection 'Right' },
|
|
||||||
{ key = 'n', mods = 'LEADER', action = act.ActivatePaneDirection 'Left' },
|
|
||||||
{ key = 'e', mods = 'LEADER', action = act.ActivatePaneDirection 'Down' },
|
|
||||||
{ key = 'i', mods = 'LEADER', action = act.ActivatePaneDirection 'Up' },
|
|
||||||
{ key = 'o', mods = 'LEADER', action = act.ActivatePaneDirection 'Right' },
|
|
||||||
|
|
||||||
{ key = 't', mods = 'SHIFT|CTRL', action = act.SpawnTab 'CurrentPaneDomain' },
|
{ key = 't', mods = 'SHIFT|CTRL', action = act.SpawnTab 'CurrentPaneDomain' },
|
||||||
{ key = 'w', mods = 'SHIFT|CTRL', action = act.CloseCurrentTab{ confirm = false } },
|
{ key = 'w', mods = 'SHIFT|CTRL', action = act.CloseCurrentTab{ confirm = false } },
|
||||||
|
Reference in New Issue
Block a user