- Added darwin and jovian inputs - Added platform-specific package configurations - Added darwinConfigurations and deck nixosConfiguration - Copied darwin and deck specific files - Fixed darwin version compatibility Some configurations still need debugging
		
			
				
	
	
		
			103 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| {pkgs, ... }:
 | |
| 
 | |
| {
 | |
|   services.yabai = {
 | |
|     enable = true;
 | |
|     config = {
 | |
|       mouse_follows_focus = "off";
 | |
|       focus_follows_mouse = "off";
 | |
|       window_placement = "second_child";
 | |
|       window_topmost = "off";
 | |
|       window_opacity = "off";
 | |
|       window_opacity_duration = 0.0;
 | |
|       window_shadow = "on";
 | |
|       window_border = "off";
 | |
|       window_border_placement = "inset";
 | |
|       window_border_width = 4;
 | |
|       window_border_radius = -1.0;
 | |
|       active_window_border_topmost = "off";
 | |
|       active_window_border_color = "0xff775759";
 | |
|       normal_window_border_color = "0xff505050";
 | |
|       insert_window_border_color = "0xffd75f5f";
 | |
|       active_window_opacity = 1.0;
 | |
|       normal_window_opacity = 0.9;
 | |
|       split_ratio = 0.73;
 | |
|       auto_balance = "on";
 | |
|       mouse_modifier = "fn";
 | |
|       mouse_action1 = "move";
 | |
|       mouse_action2 = "resize";
 | |
|       layout = "bsp";
 | |
|       top_padding = 5;
 | |
|       bottom_padding = 5;
 | |
|       left_padding = 5;
 | |
|       right_padding = 5;
 | |
|       window_gap = 5;
 | |
|     };
 | |
|     extraConfig = ''
 | |
|       # Do not manage windows with certain titles eg. Copying files or moving to bin
 | |
|       yabai -m rule --add title="(Copy|Bin|About This Mac|Info)" manage=off
 | |
|       # Do not manage some apps which are not resizable
 | |
|       yabai -m rule --add app="^(Calculator|System Preferences|[sS]tats|[Jj]et[Bb]rains [Tt]ool[Bb]ox|kftray)$" manage=off
 | |
|     '';
 | |
|   };
 | |
| 
 | |
|   system.activationScripts.yabai = {
 | |
|     enable = true;
 | |
|     text = ''
 | |
|       yabai --install-service && yabai --start-service
 | |
|     '';
 | |
|   };
 | |
| 
 | |
|   services.skhd = {
 | |
|     enable = true;
 | |
|     skhdConfig = ''
 | |
| # Open iTerm2
 | |
| cmd - enter : kitty --single-instance -d ~
 | |
| 
 | |
| ##################
 | |
| # Window Motions #
 | |
| ##################
 | |
| # Rotate
 | |
| lalt - r : yabai -m space --rotate 90
 | |
| # Mirror verticaly
 | |
| lalt - x : yabai -m space --mirror y-axis
 | |
| # Mirror horizontaly
 | |
| lalt - y : yabai -m space --mirror x-axis
 | |
| # yes, i know i swapped x and y, but I mainly use y-axis and y is further...
 | |
| # Fullscreen
 | |
| cmd - f : yabai -m window --toggle zoom-fullscreen
 | |
| # Swap
 | |
| lalt - q : yabai -m window --swap west
 | |
| lalt - s : yabai -m window --swap south
 | |
| lalt - z : yabai -m window --swap north
 | |
| lalt - d : yabai -m window --swap east
 | |
| # Warp
 | |
| shift + lalt - q : yabai -m window --warp west
 | |
| shift + lalt - s : yabai -m window --warp south
 | |
| shift + lalt - z : yabai -m window --warp north
 | |
| shift + lalt - d : yabai -m window --warp east
 | |
| 
 | |
| #########
 | |
| # Focus #
 | |
| #########
 | |
| # Clockwise
 | |
| # alt - tab : yabai -m window --focus "$(yabai -m query --windows --space | jq -re "[sort_by(.id, .frame) | .[] | select(.role == \"AXWindow\" and .subrole == \"AXStandardWindow\") | .id] | nth(index($(yabai -m query --windows --window | jq -re ".id")) - 1)")"
 | |
| # Counter-clockwise
 | |
| # shift - tab : yabai -m window --focus "$(yabai -m query --windows --space | jq -re "[sort_by(.id, .frame) | reverse | .[] | select(.role == \"AXWindow\" and .subrole == \"AXStandardWindow\") | .id] | nth(index($(yabai -m query --windows --window | jq -re ".id")) - 1)")"
 | |
| 
 | |
| ##########
 | |
| # Spaces #
 | |
| ##########
 | |
| ctrl - left : yabai -m space --focus prev
 | |
| ctrl - right : yabai -m space --focus next
 | |
| ctrl + shift - right : yabai -m window --space next; yabai -m space --focus next
 | |
| ctrl + shift - left : yabai -m window --space prev; yabai -m space --focus prev
 | |
| cmd - 1 : yabai -m window --space  1; yabai -m space --focus 1
 | |
| cmd - 2 : yabai -m window --space  2; yabai -m space --focus 2
 | |
| cmd - 3 : yabai -m window --space  3; yabai -m space --focus 3
 | |
| cmd - 4 : yabai -m window --space  4; yabai -m space --focus 4
 | |
| cmd - 5 : yabai -m window --space  5; yabai -m space --focus 5
 | |
|   '';
 | |
|   };
 | |
| }
 |