Auto-commit: 2026-01-05 19:52:54

This commit is contained in:
2026-01-05 19:52:54 +00:00
parent 27dd68f86b
commit 98358e964c
15 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
{ lib, nixosConfig, ... }:
let
cfg = nixosConfig.my.desktop;
in
{
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
settings = {
animations = {
enabled = true;
bezier = [
# Curves
"expressiveFastSpatial, 0.42, 1.67, 0.21, 0.90"
"expressiveSlowSpatial, 0.39, 1.29, 0.35, 0.98"
"expressiveDefaultSpatial, 0.38, 1.21, 0.22, 1.00"
"emphasizedDecel, 0.05, 0.7, 0.1, 1"
"emphasizedAccel, 0.3, 0, 0.8, 0.15"
"standardDecel, 0, 0, 0, 1"
"menu_decel, 0.1, 1, 0, 1"
"menu_accel, 0.52, 0.03, 0.72, 0.08"
];
animation = [
# Configs
# windows
"windowsIn, 1, 2, emphasizedDecel, popin 80%"
"windowsOut, 1, 3, emphasizedDecel, popin 90%"
"windowsMove, 1, 3, emphasizedDecel, slide"
"border, 1, 10, emphasizedDecel"
# layers
"layersIn, 1, 2.7, emphasizedDecel, popin 93%"
"layersOut, 1, 2.4, menu_accel, popin 94%"
# fade
"fadeLayersIn, 1, 0.5, menu_decel"
"fadeLayersOut, 1, 2.7, menu_accel"
"fade, 1, 2, emphasizedDecel"
# workspaces
"workspaces, 1, 7, menu_decel, slide"
## specialWorkspace
"specialWorkspaceIn, 1, 2.8, emphasizedDecel, slidevert"
"specialWorkspaceOut, 1, 1.2, emphasizedAccel, slidevert"
];
};
};
};
}

View File

@@ -0,0 +1,19 @@
{ lib, ... }:
let
b = builtins;
module_files =
b.readDir ./. |>
lib.filterAttrs (name: type:
( (lib.strings.hasSuffix ".nix" name
&& name != "default.nix"
&& type == "regular" )
|| ( type == "directory"
&& b.pathExists ./${name}/default.nix))
) |>
b.attrNames |>
b.map (f: ./${f});
in
{
imports = module_files;
}

View File

@@ -0,0 +1,21 @@
{ lib, nixosConfig, ... }:
let
cfg = nixosConfig.my.desktop;
in
{
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
settings = {
exec-once = [
"sleep 2; uwsm-app -- vesktop-portable"
# todo openrgb
"sleep 5; uwsm-app -- spotify"
# "uwsm-app -- dms run"
"sleep 5; uwsm-app -- Artemis.UI.Linux --minimized"
"sleep 10; bash /home/lilly/Scripts/rgb-on.sh"
# todo sunshine
# todo arrpc
#todo hyprpolkit
];
};
};
}

View File

@@ -0,0 +1,46 @@
{ lib, nixosConfig, ... }:
let
cfg = nixosConfig.my.desktop;
in
{
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
settings = {
general = {
no_focus_fallback = true;
allow_tearing = true;
snap = {
enabled = true;
window_gap = 4;
monitor_gap = 5;
respect_gaps = true;
};
};
dwindle = {
preserve_split = true;
smart_split = false;
smart_resizing = true;
# precise_mouse_move = true;
};
render = {
cm_enabled = true;
cm_fs_passthrough = 2;
direct_scanout = 2;
cm_auto_hdr = 1;
};
quirks = {
prefer_hdr = 2;
};
debug = {
disable_logs = false;
};
xwayland = {
force_zero_scaling = true; # Unscale XWayland
};
};
};
}

View File

@@ -0,0 +1,24 @@
{ lib, nixosConfig, ... }:
let
cfg = nixosConfig.my.desktop;
in
{
services.hypridle = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
enable = true;
systemdTarget = "hyprland-session.target";
settings = {
general = {
after_sleep_cmd = "hyprctl dispatch dpms on";
ignore_dbus_inhibit = false;
lock_cmd = "hyprlock";
};
listener = [
{
timeout = 300; # 2mins
on-timeout = "hyprctl dispatch dpms off";
on-resume = "hyprctl dispatch dpms on";
}
];
};
};
}

View File

@@ -0,0 +1,22 @@
{ lib, nixosConfig, ... }:
let
cfg = nixosConfig.my.desktop;
in
{
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
settings = {
input = {
kb_layout = "us";
kb_variant = "altgr-intl";
sensitivity = 0.3;
follow_mouse = 1;
accel_profile = "flat";
repeat_delay = 250;
repeat_rate = 35;
off_window_axis_events = 2;
};
};
};
}

View File

@@ -0,0 +1,162 @@
{ lib, nixosConfig, ... }:
let
cfg = nixosConfig.my.desktop;
in
{
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
settings = {
"$mod" = "SUPER";
bind = [
"$mod, space, exec, dms ipc call spotlight toggle"
"alt, space, exec, dms ipc call spotlight toggle"
"$mod, Super_L, exec, dms ipc call spotlight toggle"
# Color Picker
"$mod+Shift, C, exec, hyprpicker -a" # Pick color (Hex) >> clipboard
# Screenshots
"Super+Shift, S, exec, hyprshot --freeze --mode region --silent --clipboard-only"
"CTRL+Shift, 4, exec, bash /home/lilly/Scripts/zipline-region.sh"
"CTRL+Shift, 3, exec, /home/lilly/Scripts/zipline-monitor.sh"
"CTRL+Shift, 2, exec, /home/lilly/Scripts/zipline-window.sh"
#bindln = Ctrl,Print,exec,grim - | wl-copy Screenshot >> clipboard & file (clipboard)
#!
##! Window
#/# bind = $mod, ←/↑/→/↓,, # Focus in direction
"$mod, Left, movefocus, l"
"$mod, Right, movefocus, r"
"$mod, Up, movefocus, u"
"$mod, Down, movefocus, d"
"$mod, BracketLeft, movefocus, l"
"$mod, BracketRight, movefocus, r"
#/# bind = $mod+Shift, ←/↑/→/↓,, # Move in direction
"$mod+Shift, Left, movewindow, l"
"$mod+Shift, Right, movewindow, r"
"$mod+Shift, Up, movewindow, u"
"$mod+Shift, Down, movewindow, d"
"Alt, F4, killactive, Close (Windows)"
"$mod, Q, killactive," # Close
"$mod+Shift+Alt, Q, exec, hyprctl kill" # Forcefully zap a window
# Window split ratio
#/# binde = Super, ;/',, # Adjust split ratio
# Positioning mode
"Super+Alt, Space, togglefloating," # Float/Tile
"Super, D, fullscreen, 1" # Maximize
"Super, F, fullscreen, 0" # Fullscreen
"Super+Alt, F, fullscreenstate, 0 3" # Fullscreen spoof
"Super, P, pin" # Pin
#/# bind = Super+Alt, Hash,, # Send to workspace # (1, 2, 3,...)
# We use raw keycodes because some keyboard layouts register number keys as different chars. The codes can be verified with `wev`
"Super+Alt, code:10, movetoworkspacesilent, 1"
"Super+Alt, code:11, movetoworkspacesilent, 2"
"Super+Alt, code:12, movetoworkspacesilent, 3"
"Super+Alt, code:13, movetoworkspacesilent, 4"
"Super+Alt, code:14, movetoworkspacesilent, 5"
"Super+Alt, code:15, movetoworkspacesilent, 6"
"Super+Alt, code:16, movetoworkspacesilent, 7"
"Super+Alt, code:17, movetoworkspacesilent, 8"
"Super+Alt, code:18, movetoworkspacesilent, 9"
"Super+Alt, code:19, movetoworkspacesilent, 10"
# #/# bind = Super+Shift, Scroll ↑/↓,, # Send to workspace left/right
"Super+Shift, mouse_down, movetoworkspace, r-1"
"Super+Shift, mouse_up, movetoworkspace, r+1"
"Super+Alt, mouse_down, movetoworkspace, -1"
"Super+Alt, mouse_up, movetoworkspace, +1"
#/# bind = Super+Shift, Page_↑/↓,, # Send to workspace left/right
"Super+Alt, Page_Down, movetoworkspace, +1"
"Super+Alt, Page_Up, movetoworkspace, -1"
"Super+Shift, Page_Down, movetoworkspace, r+1 "
"Super+Shift, Page_Up, movetoworkspace, r-1"
"Ctrl+Super+Shift, Right, movetoworkspace, r+1"
"Ctrl+Super+Shift, Left, movetoworkspace, r-1"
"Super+Alt, S, movetoworkspacesilent, special" # Send to scratchpad
"Ctrl+Super, S, togglespecialworkspace,"
##! Workspace
# Switching
#/# bind = Super, Hash,, # Focus workspace # (1, 2, 3,...)
# We use raw keycodes because some keyboard layouts register number keys as different chars. The codes can be verified with `wev`
"Super, code:10, workspace, 1"
"Super, code:11, workspace, 2"
"Super, code:12, workspace, 3"
"Super, code:13, workspace, 4"
"Super, code:14, workspace, 5"
"Super, code:15, workspace, 6"
"Super, code:16, workspace, 7"
"Super, code:17, workspace, 8"
"Super, code:18, workspace, 9"
"Super, code:19, workspace, 10"
#/# bind = Ctrl+Super, ←/→,, # Focus left/right
"Ctrl+Super, Right, workspace, r+1"
"Ctrl+Super, Left, workspace, r-1"
#/# bind = Ctrl+Super+Alt, ←/→,, Focus busy left/right
"Ctrl+Super+Alt, Right, workspace, m+1"
"Ctrl+Super+Alt, Left, workspace, m-1"
#/# bind = Super, Page_↑/↓,, # Focus left/right
"Super, Page_Down, workspace, +1"
"Super, Page_Up, workspace, -1"
"Ctrl+Super, Page_Down, workspace, r+1"
"Ctrl+Super, Page_Up, workspace, r-1"
#/# bind = Super, Scroll ↑/↓,, # Focus left/right
"Super, mouse_up, workspace, +1"
"Super, mouse_down, workspace, -1"
"Ctrl+Super, mouse_up, workspace, r+1"
"Ctrl+Super, mouse_down, workspace, r-1"
## Special
"Ctrl+Super, BracketLeft, workspace, -1"
"Ctrl+Super, BracketRight, workspace, +1"
"Ctrl+Super, Up, workspace, r-5"
"Ctrl+Super, Down, workspace, r+5"
##! Apps
"Super, Return, exec, kitty"
"Ctrl+Alt, T, exec, kitty"
"Ctrl+Super, V, exec, pwvucontrol"
"Ctrl+Shift, Escape, exec, \"command -v btop && kitty fish -c btop\"" # Task manager"
# Cursed stuff
## Make window not amogus large
"Ctrl+Super, Backslash, resizeactive, exact 640 480"
];
bindle = [
# Volume / Brightness control
",XF86MonBrightnessUp, exec, qs -c $qsConfig ipc call brightness increment || brightnessctl s 5%+"
",XF86MonBrightnessDown, exec, qs -c $qsConfig ipc call brightness decrement || brightnessctl s 5%-"
",XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%+ -l 1.5"
",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%- -l 1.5"
",XF86AudioMute, exec, wpctl set-mute @DEFAULT_SINK@ toggle"
];
bindm = [
"$mod, mouse:272, movewindow"
"$mod, mouse:274, movewindow"
"$mod, mouse:273, resizewindow"
];
binde = [
"Super, Semicolon, splitratio, -0.1"
"Super, Apostrophe, splitratio, +0.1"
];
binds = {
scroll_event_delay = 0;
hide_special_on_workspace_change = true;
};
cursor = {
zoom_factor = 1;
zoom_rigid = false;
hotspot_padding = 1;
};
};
};
}

View File

@@ -0,0 +1,29 @@
{ lib, nixosConfig, ... }:
let
cfg = nixosConfig.my.desktop;
in
{
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
settings = {
misc = {
disable_hyprland_logo = true;
disable_splash_rendering = true;
vrr = 3;
vfr = true;
mouse_move_enables_dpms = true;
key_press_enables_dpms = true;
animate_manual_resizes = false;
animate_mouse_windowdragging = false;
enable_swallow = false;
swallow_regex = "(foot|kitty|allacritty|Alacritty)";
# new_window_takes_over_fs = 2;
allow_session_lock_restore = true;
session_lock_xray = true;
initial_workspace_tracking = false;
middle_click_paste = false;
focus_on_activate = true;
size_limits_tiled = true;
};
};
};
}

View File

@@ -0,0 +1,66 @@
{ lib, nixosConfig, ... }:
let
cfg = nixosConfig.my.desktop;
in
{
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
settings = {
monitor = [
",preferred,auto,1"
];
source = [ "monitors.conf" ];
# monitorv2 = [
# {
# output = "desc:GIGA-BYTE TECHNOLOGY CO. LTD. AORUS FO32U2 0x01010101";
# mode = "3840x2160@240.0";
# position = "0x0";
# scale = 1.5;
# bitdepth = 10;
# vrr = 3;
# supports_wide_color = 1;
# supports_hdr = 1;
# sdr_min_luminance = 0.000;
# sdr_max_luminance = 1000;
# min_luminance = 0.000;
# max_luminance = 1000;
# max_avg_luminance = 400;
# cm = "hdr";
# }
# {
# output = "desc:Samsung Electric Company LF32TU87 HNTT700129";
# mode = "3840x2160@60.0";
# position = "-2560x0";
# scale = 1.5;
# bitdepth = 10;
# }
# {
# output = "desc:Technical Concepts Ltd Beyond TV 0x00010000";
# disabled = true;
# }
# ];
};
};
}
# monitorv2 {
# output = desc:Technical Concepts Ltd Beyond TV 0x00010000
# mode = 3840x2160@120.00
# position = 2560x270
# scale = 1.5
# bitdepth = 10
# vrr = 1
# supports_wide_color = 1
# supports_hdr = 1
# sdr_min_luminance = 0.0005
# sdr_max_luminance = 2000
# min_luminance = 0.0005
# max_luminance = 2000
# max_avg_luminance = 400
# cm = hdr
# }
# workspace = 21, monitor:desc:Technical Concepts Ltd Beyond TV 0x00010000, default:true
# windowrule = match:class $games, workspace 21, fullscreen on
# # windowrule = fullscreen, class:$games
# windowrule = match:class steam, match:title (Steam Big Picture Mode), workspace 21

View File

@@ -0,0 +1,20 @@
{ lib, ... }:
let
b = builtins;
module_files =
b.readDir ./. |>
lib.filterAttrs (name: type:
( (lib.strings.hasSuffix ".nix" name
&& name != "default.nix"
&& type == "regular" )
|| ( type == "directory"
&& b.pathExists ./${name}/default.nix))
) |>
b.attrNames |>
b.map (f: ./${f});
in
{
imports = module_files;
nixpkgs.config.allowUnfree = true;
}

View File

@@ -0,0 +1,105 @@
{ lib, nixosConfig, ... }:
let
cfg = nixosConfig.my.desktop;
in
{
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
settings = {
"$games" = "^(steam_app_.*|gamescope|starrail.exe|.*\.exe)$";
"$launch_on_second_monitor" = "^(vesktop|spotify)$";
"$utility_workspace" = 10;
windowrule = [
# Windows to launch silently on secondary monitor
"match:class $launch_on_second_monitor, workspace $altscreenworkspace silent"
"match:class steam, match:title Steam, workspace 4 silent, tile on"
# Launch Steam Friends List as floating window on workspace 4
"match:class steam, match:title (Friends List), workspace 4 silent, tile on"
"match:class $games, content game"
"match:class $games, tag +game"
"match:class $games, workspace 3"
# Disable VRR for Where Winds meet
"match:class (steam_app_3564740), no_vrr on"
# Game Stuff
"match:class (starrail\.exe), render_unfocused on"
# Utilities to silently launch on the last workspace
"match:class (com.github.wwmm.easyeffects), workspace $utility_workspace silent"
"match:class (org.openrgb.OpenRGB), workspace $utility_workspace silent"
"match:class (com.core447.StreamController), match:title StreamController, workspace $utility_workspace silent"
"match:class (opendeck), workspace $utility_workspace silent"
"match:class (Artemis.UI.Linux), match:title (Artemis 2.0), workspace $utility_workspace silent"
# Focus popups in the center
# Floating
"match:title ^(Open File)(.*)$, center on"
"match:title ^(Open File)(.*)$, float on"
"match:title ^(Select a File)(.*)$, center on"
"match:title ^(Select folder)(.*)$, float on"
"match:title ^(Select folder)(.*)$, center on"
"match:title ^(Select a File)(.*)$, float on"
"match:title ^(Choose wallpaper)(.*)$, center on"
"match:title ^(Choose wallpaper)(.*)$, float on"
"match:title ^(Choose wallpaper)(.*)$, size 60% 65%"
"match:title ^(Open Folder)(.*)$, center on"
"match:title ^(Open Folder)(.*)$, float on"
"match:title ^(Save As)(.*)$, center on"
"match:title ^(Save As)(.*)$, float on"
"match:title ^(Enter name of file to save to)(.*)$, center on"
"match:title ^(Enter name of file to save to)(.*)$, float on"
"match:title ^(Library)(.*)$, center on"
"match:title ^(Library)(.*)$, float on"
"match:title ^(File Upload)(.*)$, center on"
"match:title ^(File Upload)(.*)$, float on"
"match:title ^(.*)(wants to save)$, center on"
"match:title ^(.*)(wants to save)$, float on"
"match:title ^(.*)(wants to open)$, center on"
"match:title ^(.*)(wants to open)$, float on"
"match:class ^(blueberry\.py)$, float on"
"match:class ^(guifetch)$, float on"
"match:class ^(pwvucontrol)$, float on"
"match:class ^(pwvucontrol)$, size 45%"
"match:class ^(pwvucontrol)$, center on"
"match:class ^(com.saivert.pwvucontrol)$, float on"
"match:class ^(com.saivert.pwvucontrol)$, size 45%"
"match:class ^(com.saivert.pwvucontrol)$, center on"
"match:class .*plasmawindowed.*, float on"
"match:class kcm_.*, float on"
"match:class .*bluedevilwizard, float on"
"match:title .*Welcome, float on"
"match:title .*Shell conflicts.*, float on"
"match:class org.freedesktop.impl.portal.desktop.kde, float on"
"match:class org.freedesktop.impl.portal.desktop.kde, size 60% 65%"
"match:class ^(Zotero)$, float on"
"match:class ^(Zotero)$, size 45%"
# stupid dolphin copy
"match:title ^(Copying Dolphin)$, move 40 80"
# Picture-in-Picture
"match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, float on"
"match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, keep_aspect_ratio on"
"match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, move 73% 72%"
"match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, size 25%"
"match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, pin on"
# --- Tearing ---
"match:class $games, immediate on"
# No shadow for tiled windows (matches windows that are not floating).
"match:float 0, no_shadow on"
# Prevent Idle while fullscreen
"match:class (.*), idle_inhibit fullscreen"
];
};
};
}

View File

@@ -0,0 +1,37 @@
{ lib, nixosConfig, ... }:
let
cfg = nixosConfig.my.desktop;
in
{
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
settings = {
"$altscreenworkspace" = "11";
"$mainmonitor" = "GIGA-BYTE TECHNOLOGY CO. LTD. AORUS FO32U2 24210B000546";
workspace = [
"1, monitor:desc:$mainmonitor, default:true"
"2, monitor:desc:$mainmonitor"
"3, monitor:desc:$mainmonitor"
"4, monitor:desc:$mainmonitor"
"5, monitor:desc:$mainmonitor"
"6, monitor:desc:$mainmonitor"
"7, monitor:desc:$mainmonitor"
"8, monitor:desc:$mainmonitor"
"9, monitor:desc:$mainmonitor"
"10, monitor:desc:$mainmonitor"
"$altscreenworkspace, monitor:desc:Samsung Electric Company LF32TU87 HNTT700129, default:true"
"$altscreenworkspace, layoutopt:orientation:bottom"
"21, monitor:desc:Technical Concepts Ltd Beyond TV 0x00010000, default:true"
# ######## Workspace rules ########
"special:special, gapsout:30"
];
# Launchers need to be FAST
layerrule = [ "match:namespace gtk4-layer-shell, no_anim on" ];
};
};
}

View File

@@ -0,0 +1,54 @@
{ lib, nixosConfig, ... }:
let
cfg = nixosConfig.my.desktop;
in
{
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
settings = {
general = {
gaps_in = 5;
gaps_out = 5;
border_size = 0;
#"col.active_border" = "rgba(707070ff)";
#"col.inactive_border" = "rgba(d0d0d0ff)";
layout = "dwindle";
};
decoration = {
rounding = 12;
active_opacity = 1.0;
shadow = {
enabled = true;
range = 30;
render_power = 5;
offset = "0 5";
color = "rgba(00000070)";
};
};
# Opacity for inactive windows
# windowrulev2 = opacity 0.9 0.9, floating:0, focus:0
windowrule = [
# GNOME apps
"match:class ^(org\.gnome\.), rounding 12"
"match:class ^(org\.gnome\.), border_size 0"
# Terminal apps - no borders
"match:class ^(org\.wezfurlong\.wezterm)$, border_size 0"
"match:class ^(Alacritty)$, border_size 0"
"match:class ^(zen)$, border_size 0"
"match:class ^(com\.mitchellh\.ghostty)$, border_size 0"
"match:class ^(kitty)$, border_size 0"
# Floating windows
"match:class ^(gnome-calculator)$, float true"
"match:class ^(blueman-manager)$, float true"
"match:class ^(org\.gnome\.Nautilus)$, float true"
];
# Quickshell animation
layerrule = [ "match:namespace ^(quickshell)$, no_anim on" ];
};
};
}

94
home/desktop/kitty.nix Normal file
View File

@@ -0,0 +1,94 @@
{ pkgs, nixosConfig, lib, ... }: {
programs.kitty = lib.mkIf nixosConfig.my.desktop.enable {
enable = true;
# Upstream test failures resolved; use default kitty package (>= 0.44).
package = pkgs.kitty;
settings = {
font_family = "Maple Mono NF";
font_size = 11;
wheel_scroll_min_lines = 1;
window_padding_width = 4;
confirm_os_window_close = 0;
scrollback_lines = 10000;
enable_audio_bell = false;
mouse_hide_wait = 60;
cursor_trail = 1;
cursor_shape = "beam";
tab_fade = 1;
active_tab_font_style = "bold";
inactive_tab_font_style = "bold";
tab_bar_edge = "top";
tab_bar_margin_width = 0;
tab_bar_style = "powerline";
#tab_bar_style = "fade";
enabled_layouts = "splits";
open_url_with_default = true;
detect_urls = true;
allow_remote_control = true;
shell = "fish";
};
shellIntegration.enableZshIntegration = true;
shellIntegration.enableFishIntegration = true;
shellIntegration.enableBashIntegration = true;
shellIntegration.mode = "enabled";
extraConfig = ''
#open_url_with default
url_prefixes file ftp ftps gemini git gopher http https irc ircs kitty sftp ssh
#detect_urls yes
# Clipboard
#map ctrl+shift+v paste_from_selection
#map shift+insert paste_from_selection
# Scrolling
map ctrl+shift+up scroll_line_up
map ctrl+shift+down scroll_line_down
map ctrl+shift+k scroll_line_up
map ctrl+shift+j scroll_line_down
map ctrl+shift+page_up scroll_page_up
map ctrl+shift+page_down scroll_page_down
map ctrl+shift+home scroll_home
map ctrl+shift+end scroll_end
map ctrl+shift+h show_scrollback
# Window management
map alt+n new_window_with_cwd
#map alt+n new_os_window
map alt+w close_window
map ctrl+shift+enter launch --location=hsplit
map ctrl+shift+s launch --location=vsplit
map ctrl+shift+] next_window
map ctrl+shift+[ previous_window
map ctrl+shift+f move_window_forward
map ctrl+shift+b move_window_backward
map ctrl+shift+` move_window_to_top
map ctrl+shift+1 first_window
map ctrl+shift+2 second_window
map ctrl+shift+3 third_window
map ctrl+shift+4 fourth_window
map ctrl+shift+5 fifth_window
map ctrl+shift+6 sixth_window
map ctrl+shift+7 seventh_window
map ctrl+shift+8 eighth_window
map ctrl+shift+9 ninth_window # Tab management
map ctrl+shift+0 tenth_window
map ctrl+shift+right next_tab
map ctrl+shift+left previous_tab
map ctrl+shift+t new_tab
map ctrl+shift+q close_tab
map ctrl+shift+l next_layout
map ctrl+shift+. move_tab_forward
map ctrl+shift+, move_tab_backward
# Miscellaneous
map ctrl+shift+up increase_font_size
map ctrl+shift+down decrease_font_size
map ctrl+shift+backspace restore_font_size
'';
};
}