mirror of
https://github.com/gensokyo-zone/infrastructure.git
synced 2026-02-09 04:19:19 -08:00
119 lines
3.8 KiB
Nix
119 lines
3.8 KiB
Nix
{ config, pkgs, lib, ... }: with lib; {
|
|
services = {
|
|
yabai = {
|
|
enable = true;
|
|
enableScriptingAddition = true;
|
|
config = {
|
|
layout = "bsp";
|
|
auto_balance = "on";
|
|
split_ratio = "0.50";
|
|
window_placement = "second_child";
|
|
window_gap = 18;
|
|
top_padding = 36;
|
|
bottom_padding = 18;
|
|
left_padding = 18;
|
|
right_padding = 18;
|
|
window_shadow = "on";
|
|
window_border = "off";
|
|
window_border_width = 3;
|
|
window_opacity = "on";
|
|
window_opacity_duration = "0.1";
|
|
active_window_opacity = "1.0";
|
|
normal_window_opacity = "1.0";
|
|
mouse_modifier = "cmd";
|
|
mouse_action1 = "move";
|
|
mouse_action2 = "resize";
|
|
mouse_drop_action = "swap";
|
|
};
|
|
extraConfig = ''
|
|
yabai -m rule --add app='Firefox' manage=on
|
|
yabai -m rule --add app='System Preferences' manage=off
|
|
yabai -m rule --add app='Activity Monitor' manage=off
|
|
'';
|
|
};
|
|
spacebar = {
|
|
enable = true;
|
|
package = pkgs.spacebar;
|
|
config = {
|
|
position = "top";
|
|
height = 28;
|
|
title = "off";
|
|
spaces = "on";
|
|
power = "on";
|
|
clock = "on";
|
|
right_shell = "on";
|
|
padding_left = 20;
|
|
padding_right = 20;
|
|
spacing_left = 25;
|
|
spacing_right = 25;
|
|
text_font = ''"Menlo:16.0"'';
|
|
icon_font = ''"Menlo:16.0"'';
|
|
background_color = "0xff161616";
|
|
foreground_color = "0xffFFFFFF";
|
|
space_icon_color = "0xff3ddbd9";
|
|
power_icon_strip = " ";
|
|
space_icon_strip = "一 二 三 四 五 六 七 八 九 十";
|
|
spaces_for_all_displays = "on";
|
|
display_separator = "on";
|
|
display_separator_icon = "|";
|
|
clock_format = ''"%d/%m/%y %R"'';
|
|
right_shell_icon = " ";
|
|
right_shell_command = "whoami";
|
|
};
|
|
};
|
|
skhd = {
|
|
enable = true;
|
|
package = pkgs.skhd;
|
|
skhdConfig = ''
|
|
# open terminal
|
|
cmd - return : wezterm
|
|
|
|
# focus window
|
|
lalt - h : yabai -m window --focus west
|
|
lalt - j : yabai -m window --focus south
|
|
lalt - k : yabai -m window --focus north
|
|
lalt - l : yabai -m window --focus east
|
|
|
|
# swap managed window
|
|
shift + lalt - h : yabai -m window --swap west
|
|
shift + lalt - l : yabai -m window --swap east
|
|
shift + lalt - j : yabai -m window --swap south
|
|
shift + lalt - k : yabai -m window --swap north
|
|
|
|
# focus spaces
|
|
alt - x : yabai -m space --focus recent
|
|
alt - 1 : yabai -m space --focus 1
|
|
alt - 2 : yabai -m space --focus 2
|
|
alt - 3 : yabai -m space --focus 3
|
|
alt - 4 : yabai -m space --focus 4
|
|
alt - 5 : yabai -m space --focus 5
|
|
alt - 6 : yabai -m space --focus 6
|
|
alt - 7 : yabai -m space --focus 7
|
|
alt - 8 : yabai -m space --focus 8
|
|
|
|
# focus on next/prev space
|
|
alt + ctrl - q : yabai -m space --focus prev
|
|
alt + ctrl - e : yabai -m space --focus next
|
|
|
|
# send window to desktop
|
|
shift + alt - x : yabai -m window --space recent
|
|
shift + alt - 1 : yabai -m window --space 1
|
|
shift + alt - 2 : yabai -m window --space 2
|
|
shift + alt - 3 : yabai -m window --space 3
|
|
shift + alt - 4 : yabai -m window --space 4
|
|
shift + alt - 5 : yabai -m window --space 5
|
|
shift + alt - 6 : yabai -m window --space 6
|
|
shift + alt - 7 : yabai -m window --space 7
|
|
shift + alt - 8 : yabai -m window --space 8
|
|
|
|
# float / unfloat window and center on screen
|
|
lalt - t : yabai -m window --toggle float;\
|
|
yabai -m window --grid 4:4:1:1:2:2
|
|
|
|
# toggle window zoom
|
|
lalt - d : yabai -m window --toggle zoom-parent
|
|
|
|
'';
|
|
};
|
|
};
|
|
}
|