106 lines
3.6 KiB
Nix
106 lines
3.6 KiB
Nix
{ pkgs, ... }: {
|
|
services = {
|
|
yabai = {
|
|
enable = true;
|
|
config = {
|
|
external_bar = "main:40:0";
|
|
menubar_opacity = 1.0;
|
|
mouse_follows_focus = "on";
|
|
focus_follows_mouse = "on";
|
|
display_arrangement_order = "default";
|
|
|
|
window_origin_display = "default";
|
|
window_placement = "second_child";
|
|
window_insertion_point = "focused";
|
|
window_zoom_persist = "on";
|
|
window_shadow = "off";
|
|
window_animation_duration = 0.0;
|
|
window_animation_easing = "ease_out_circ";
|
|
window_opacity_duration = 0.0;
|
|
active_window_opacity = 1.0;
|
|
normal_window_opacity = 0.9;
|
|
window_opacity = "off";
|
|
|
|
insert_feedback_color = "0xffd75f5f";
|
|
split_ratio = 0.5;
|
|
split_type = "auto";
|
|
auto_balance = "off";
|
|
top_padding = 2;
|
|
bottom_padding = 2;
|
|
left_padding = 2;
|
|
right_padding = 2;
|
|
window_gap = 2;
|
|
|
|
layout = "bsp";
|
|
mouse_modifier = "fn";
|
|
mouse_action1 = "move";
|
|
mouse_action2 = "resize";
|
|
mouse_drop_action = "swap";
|
|
};
|
|
};
|
|
|
|
skhd = {
|
|
enable = true;
|
|
skhdConfig = ''
|
|
# Application Bindings
|
|
cmd - q : open -a kitty
|
|
cmd - e : ${pkgs.kitty}/bin/kitty yazi
|
|
cmd - o : open -a "Obsidian"
|
|
cmd - i : open -a "Floorp"
|
|
cmd - g : open -a "Mail"
|
|
|
|
# Window Management (using yabai if installed, otherwise basic macOS)
|
|
cmd + shift - c : yabai -m window --close || osascript -e 'tell application "System Events" to keystroke "w" using command down'
|
|
cmd + shift - v : yabai -m window --toggle float
|
|
|
|
# Focus windows (vim-like)
|
|
cmd - left : yabai -m window --focus west
|
|
cmd - right : yabai -m window --focus east
|
|
cmd - up : yabai -m window --focus north
|
|
cmd - down : yabai -m window --focus south
|
|
|
|
# Move windows to spaces (workspaces)
|
|
cmd + shift - 1 : yabai -m window --space 1
|
|
cmd + shift - 2 : yabai -m window --space 2
|
|
cmd + shift - 3 : yabai -m window --space 3
|
|
cmd + shift - 4 : yabai -m window --space 4
|
|
cmd + shift - 5 : yabai -m window --space 5
|
|
cmd + shift - 6 : yabai -m window --space 6
|
|
cmd + shift - 7 : yabai -m window --space 7
|
|
cmd + shift - 8 : yabai -m window --space 8
|
|
cmd + shift - 9 : yabai -m window --space 9
|
|
cmd + shift - 0 : yabai -m window --space 10
|
|
|
|
# Switch to spaces (workspaces)
|
|
cmd - 1 : yabai -m space --focus 1
|
|
cmd - 2 : yabai -m space --focus 2
|
|
cmd - 3 : yabai -m space --focus 3
|
|
cmd - 4 : yabai -m space --focus 4
|
|
cmd - 5 : yabai -m space --focus 5
|
|
cmd - 6 : yabai -m space --focus 6
|
|
cmd - 7 : yabai -m space --focus 7
|
|
cmd - 8 : yabai -m space --focus 8
|
|
cmd - 9 : yabai -m space --focus 9
|
|
cmd - 0 : yabai -m space --focus 10
|
|
|
|
# Screenshot (macOS native)
|
|
cmd - z : screencapture -i ~/Pictures/Screenshots/$(date +%s).png
|
|
cmd - u : screencapture ~/Pictures/Screenshots/$(date +%s).png
|
|
|
|
# Launcher (using Raycast or Spotlight as Rofi alternative)
|
|
cmd - r : open -a "Raycast" || osascript -e 'tell application "System Events" to keystroke space using command down'
|
|
|
|
# Lock screen
|
|
cmd - m : pmset displaysleepnow
|
|
|
|
# Toggle layout (if using yabai)
|
|
cmd - j : yabai -m space --layout $(yabai -m query --spaces --space | jq -r 'if .type == "bsp" then "float" else "bsp" end')
|
|
cmd - p : yabai -m window --toggle split
|
|
|
|
# Reload skhd config
|
|
cmd + shift - r : skhd --reload
|
|
'';
|
|
};
|
|
};
|
|
}
|