refactor
This commit is contained in:
		
							parent
							
								
									66c05f9093
								
							
						
					
					
						commit
						45d6f4b0f3
					
				
					 205 changed files with 9040 additions and 342 deletions
				
			
		
							
								
								
									
										109
									
								
								modules/darwin/desktop/addons/skhd/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								modules/darwin/desktop/addons/skhd/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,109 @@
 | 
			
		|||
{ lib, pkgs, config, ... }:
 | 
			
		||||
 | 
			
		||||
with lib;
 | 
			
		||||
with lib.plusultra;
 | 
			
		||||
let
 | 
			
		||||
  cfg = config.plusultra.desktop.addons.skhd;
 | 
			
		||||
 | 
			
		||||
  mkScript = name: file: pkgs.writeShellApplication {
 | 
			
		||||
    inherit name;
 | 
			
		||||
    checkPhase = "";
 | 
			
		||||
    text = builtins.readFile file;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  open-iterm2 = mkScript "open-iterm2" ./scripts/open-iterm2.sh;
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  options.plusultra.desktop.addons.skhd = {
 | 
			
		||||
    enable = mkEnableOption "skhd";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  config = mkIf cfg.enable {
 | 
			
		||||
    services.skhd = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
 | 
			
		||||
      skhdConfig = ''
 | 
			
		||||
        # Movement
 | 
			
		||||
        shift + cmd - h : yabai -m window --focus west
 | 
			
		||||
        shift + cmd - j : yabai -m window --focus south
 | 
			
		||||
        shift + cmd - k : yabai -m window --focus north
 | 
			
		||||
        shift + cmd - l : yabai -m window --focus east
 | 
			
		||||
 | 
			
		||||
        # Window Movement
 | 
			
		||||
        lctrl + shift + cmd - h : yabai -m window --swap west
 | 
			
		||||
        lctrl + shift + cmd - j : yabai -m window --swap south
 | 
			
		||||
        lctrl + shift + cmd - k : yabai -m window --swap north
 | 
			
		||||
        lctrl + shift + cmd - l : yabai -m window --swap east
 | 
			
		||||
 | 
			
		||||
        # Window Resize
 | 
			
		||||
        lctrl + cmd - h : yabai -m window --resize left:-50:0; \
 | 
			
		||||
                          yabai -m window --resize right:-50:0
 | 
			
		||||
        lctrl + cmd - j : yabai -m window --resize bottom:0:50; \
 | 
			
		||||
                          yabai -m window --resize top:0:50
 | 
			
		||||
        lctrl + cmd - k : yabai -m window --resize top:0:-50; \
 | 
			
		||||
                          yabai -m window --resize bottom:0:-50
 | 
			
		||||
        lctrl + cmd - l : yabai -m window --resize right:50:0; \
 | 
			
		||||
                          yabai -m window --resize left:50:0
 | 
			
		||||
 | 
			
		||||
        lctrl + alt - h : yabai -m window --resize left:-10:0; \
 | 
			
		||||
                    yabai -m window --resize right:-10:0
 | 
			
		||||
        lctrl + alt - j : yabai -m window --resize bottom:0:10; \
 | 
			
		||||
                    yabai -m window --resize top:0:10
 | 
			
		||||
        lctrl + alt - k : yabai -m window --resize top:0:-10; \
 | 
			
		||||
                    yabai -m window --resize bottom:0:-10
 | 
			
		||||
        lctrl + alt - l : yabai -m window --resize right:10:0; \
 | 
			
		||||
                          yabai -m window --resize left:10:0
 | 
			
		||||
 | 
			
		||||
        lctrl + cmd - e : yabai -m space --balance
 | 
			
		||||
 | 
			
		||||
        # Move Window To Space
 | 
			
		||||
        lctrl + shift + cmd - m : yabai -m window --space last; yabai -m space --focus last
 | 
			
		||||
        lctrl + shift + cmd - p : yabai -m window --space prev; yabai -m space --focus prev
 | 
			
		||||
        lctrl + shift + cmd - n : yabai -m window --space next; yabai -m space --focus next
 | 
			
		||||
        lctrl + shift + cmd - 1 : yabai -m window --space 1; yabai -m space --focus 1
 | 
			
		||||
        lctrl + shift + cmd - 2 : yabai -m window --space 2; yabai -m space --focus 2
 | 
			
		||||
        lctrl + shift + cmd - 3 : yabai -m window --space 3; yabai -m space --focus 3
 | 
			
		||||
        lctrl + shift + cmd - 4 : yabai -m window --space 4; yabai -m space --focus 4
 | 
			
		||||
 | 
			
		||||
        # Focus Space
 | 
			
		||||
        # shift + cmd - m : yabai -m space --focus last
 | 
			
		||||
        # shift + cmd - p : yabai -m space --focus prev
 | 
			
		||||
        # shift + cmd - n : yabai -m space --focus next
 | 
			
		||||
        shift + cmd - 1 : yabai -m space --focus 1
 | 
			
		||||
        shift + cmd - 2 : yabai -m space --focus 2
 | 
			
		||||
        shift + cmd - 3 : yabai -m space --focus 3
 | 
			
		||||
        shift + cmd - 4 : yabai -m space --focus 4
 | 
			
		||||
 | 
			
		||||
        # Insert Direction
 | 
			
		||||
        lctrl + shift + cmd - v : yabai -m window --insert south
 | 
			
		||||
        lctrl + shift + cmd - b : yabai -m window --insert east
 | 
			
		||||
        lctrl + shift + cmd - s : yabai -m window --insert stack
 | 
			
		||||
 | 
			
		||||
        # Floating Windows
 | 
			
		||||
        # shift + cmd - space : \
 | 
			
		||||
        #   yabai -m window --toggle float; \
 | 
			
		||||
        #   yabai -m window --toggle border
 | 
			
		||||
        shift + cmd - space : yabai -m window --toggle float
 | 
			
		||||
 | 
			
		||||
        # Terminal
 | 
			
		||||
        shift + cmd - return : ${open-iterm2}/bin/open-iterm2
 | 
			
		||||
 | 
			
		||||
        # Fullscreen
 | 
			
		||||
        alt - f : yabai -m window --toggle zoom-fullscreen
 | 
			
		||||
        shift + alt - f : yabai -m window --toggle native-fullscreen
 | 
			
		||||
 | 
			
		||||
        # Restart Yabai
 | 
			
		||||
        shift + lctrl + alt - r : \
 | 
			
		||||
          /usr/bin/env osascript <<< \
 | 
			
		||||
            "display notification \"Restarting Yabai\" with title \"Yabai\""; \
 | 
			
		||||
          launchctl kickstart -k "gui/$UID/org.nixos.yabai"
 | 
			
		||||
 | 
			
		||||
        # Restart Spacebar
 | 
			
		||||
        shift + lctrl + alt - s : \
 | 
			
		||||
          /usr/bin/env osascript <<< \
 | 
			
		||||
            "display notification \"Restarting Spacebar\" with title \"Spacebar\""; \
 | 
			
		||||
          launchctl kickstart -k "gui/$UID/org.nixos.spacebar"
 | 
			
		||||
      '';
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										14
									
								
								modules/darwin/desktop/addons/skhd/scripts/open-iterm2.sh
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								modules/darwin/desktop/addons/skhd/scripts/open-iterm2.sh
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,14 @@
 | 
			
		|||
# Detects if iTerm2 is running
 | 
			
		||||
if ! pgrep -f "iTerm" > /dev/null 2>&1; then
 | 
			
		||||
    open -a "/Applications/Nix Apps/iTerm2.app"
 | 
			
		||||
else
 | 
			
		||||
    # Create a new window
 | 
			
		||||
    script='tell application "iTerm2" to create window with default profile'
 | 
			
		||||
    ! osascript -e "${script}" > /dev/null 2>&1 && {
 | 
			
		||||
        # Get pids for any app with "iTerm" and kill
 | 
			
		||||
        while IFS="" read -r pid; do
 | 
			
		||||
            kill -15 "${pid}"
 | 
			
		||||
        done < <(pgrep -f "iTerm")
 | 
			
		||||
        open -a "/Applications/Nix Apps/iTerm2.app"
 | 
			
		||||
    }
 | 
			
		||||
fi
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue