From 742b25a0afa0d6d1fcfc92c15c4f4b6685e0a92d Mon Sep 17 00:00:00 2001 From: "Jip J. Dekker" Date: Mon, 11 Dec 2023 22:53:45 +1100 Subject: [PATCH] Add kitty, skhd, and yabai configurations --- darwin/casks.nix | 3 -- darwin/config/skhdrc | 49 ++++++++++++++++++++++++++++++ darwin/config/yabairc | 20 ++++++++++++ darwin/files.nix | 10 +++++- darwin/home-manager.nix | 4 ++- nixos/home-manager.nix | 9 ++++-- shared/config/kitty/night-owl.conf | 46 ++++++++++++++++++++++++++++ shared/files.nix | 8 ++++- shared/home-manager.nix | 34 +++++++++++++++++++++ shared/packages.nix | 1 - 10 files changed, 175 insertions(+), 9 deletions(-) create mode 100644 darwin/config/skhdrc create mode 100644 darwin/config/yabairc create mode 100644 shared/config/kitty/night-owl.conf diff --git a/darwin/casks.nix b/darwin/casks.nix index 8a05312..2bf188a 100644 --- a/darwin/casks.nix +++ b/darwin/casks.nix @@ -4,7 +4,6 @@ # Development Tools "docker" "fleet" - "kitty" "minizincide" "sublime-merge" "vscodium" @@ -21,11 +20,9 @@ "alfred" "mactex-no-gui" "notion" - "skim" # Browsers "chromium" - "firefox" # Fonts "font-atkinson-hyperlegible" diff --git a/darwin/config/skhdrc b/darwin/config/skhdrc new file mode 100644 index 0000000..4d1cc2c --- /dev/null +++ b/darwin/config/skhdrc @@ -0,0 +1,49 @@ +# Open applications +alt - return : /Applications/kitty.app/Contents/MacOS/kitty --single-instance -d ~ + +# Focus display +alt - tab : yabai -m display --focus recent + +# Focus window +alt - h : yabai -m window --focus west +alt - j : yabai -m window --focus south +alt - k : yabai -m window --focus north +alt - l : yabai -m window --focus east + +alt - left : yabai -m window --focus west +alt - down : yabai -m window --focus south +alt - up : yabai -m window --focus north +alt - right : yabai -m window --focus east + +# Swap window +shift + alt - h : yabai -m window --swap west +shift + alt - j : yabai -m window --swap south +shift + alt - k : yabai -m window --swap north +shift + alt - l : yabai -m window --swap east + +shift + alt - left : yabai -m window --swap west +shift + alt - down : yabai -m window --swap south +shift + alt - up : yabai -m window --swap north +shift + alt - right : yabai -m window --swap east + +# Move focus container to workspace +shift + alt - 1 : yabai -m window --space 1; yabai -m space --focus 1 +shift + alt - 2 : yabai -m window --space 2; yabai -m space --focus 2 +shift + alt - 3 : yabai -m window --space 3; yabai -m space --focus 3 +shift + alt - 4 : yabai -m window --space 4; yabai -m space --focus 4 +shift + alt - 5 : yabai -m window --space 5; yabai -m space --focus 5 +shift + alt - 6 : yabai -m window --space 6; yabai -m space --focus 6 +shift + alt - 7 : yabai -m window --space 7; yabai -m space --focus 7 +shift + alt - 8 : yabai -m window --space 8; yabai -m space --focus 8 +shift + alt - 9 : yabai -m window --space 9; yabai -m space --focus 9 +shift + alt - 0 : yabai -m window --space 0; yabai -m space --focus 0 + +# Enable / Disable gaps in current workspace +lctrl + alt - g : yabai -m space --toggle padding; yabai -m space --toggle gap + +# Float / Unfloat window +shift + alt - space : yabai -m window --toggle float; + +# Make window native fullscreen +alt - f : yabai -m window --toggle zoom-fullscreen +shift + alt - f : yabai -m window --toggle native-fullscreen diff --git a/darwin/config/yabairc b/darwin/config/yabairc new file mode 100644 index 0000000..397bda2 --- /dev/null +++ b/darwin/config/yabairc @@ -0,0 +1,20 @@ +yabai -m config layout bsp +yabai -m config top_padding 4 +yabai -m config bottom_padding 4 +yabai -m config left_padding 4 +yabai -m config right_padding 4 +yabai -m config window_gap 4 + +yabai -m rule --add label="About This Mac" app="System Information" title="About This Mac" manage=off +yabai -m rule --add label="Activity Monitor" app="^Activity Monitor$" manage=off +yabai -m rule --add label="App Store" app="^App Store$" manage=off +yabai -m rule --add label="Calculator" app="^Calculator$" manage=off +yabai -m rule --add label="Dictionary" app="^Dictionary$" manage=off +yabai -m rule --add label="Digital Colour Meter" app="^Digital Colou?r Meter$" sticky=on +yabai -m rule --add label="Finder" app="^Finder$" title="(Co(py|nnect)|Move|Info|Pref)" manage=off +yabai -m rule --add label="Fork" app="^Fork$" manage=off sticky=on +yabai -m rule --add label="Safari" app="^Safari$" title="^(General|(Tab|Password|Website|Extension)s|AutoFill|Se(arch|curity)|Privacy|Advance)$" manage=off +yabai -m rule --add label="Software Update" title="Software Update" manage=off +yabai -m rule --add label="Sublime Merge" app="^Sublime Merge$" manage=off sticky=on +yabai -m rule --add label="System Preferences" app="^System Preferences$" title=".*" manage=off +yabai -m rule --add label="Tweetbot" app="^Tweetbot$" title=".*" manage=off diff --git a/darwin/files.nix b/darwin/files.nix index 9f27c6a..3fa2684 100644 --- a/darwin/files.nix +++ b/darwin/files.nix @@ -5,4 +5,12 @@ let xdg_dataHome = "${config.users.users.${user}.home}/.local/share"; xdg_stateHome = "${config.users.users.${user}.home}/.local/state"; in -{ } +{ + ".config/skhd/skhdrc" = { + text = builtins.readFile ../darwin/config/skhdrc; + }; + ".config/yabai/yabairc" = { + text = builtins.readFile ../darwin/config/yabairc; + executable = true; + }; +} diff --git a/darwin/home-manager.nix b/darwin/home-manager.nix index 9e46c41..02d61a5 100644 --- a/darwin/home-manager.nix +++ b/darwin/home-manager.nix @@ -59,7 +59,9 @@ in additionalFiles ]; home.stateVersion = "21.11"; - programs = { } // import ../shared/home-manager.nix { inherit config pkgs lib; }; + programs = { + skim.enable = true; + } // import ../shared/home-manager.nix { inherit config pkgs lib; }; }; }; } diff --git a/nixos/home-manager.nix b/nixos/home-manager.nix index 2b8425b..978bf66 100644 --- a/nixos/home-manager.nix +++ b/nixos/home-manager.nix @@ -11,11 +11,16 @@ in enableNixpkgsReleaseCheck = false; username = "${user}"; homeDirectory = "/home/${user}"; - packages = pkgs.callPackage ./packages.nix { }; + packages = // pkgs.callPackage ./packages.nix { }; file = shared-files // import ./files.nix { inherit user; }; stateVersion = "21.05"; }; - programs = shared-programs // { }; + programs = { + firefox = { + enable = true; + package = pkgs.firefox-bin; + }; + } // shared-programs; } diff --git a/shared/config/kitty/night-owl.conf b/shared/config/kitty/night-owl.conf new file mode 100644 index 0000000..baa9f90 --- /dev/null +++ b/shared/config/kitty/night-owl.conf @@ -0,0 +1,46 @@ +# vim:ft=kitty +## name: Night Owl +## author: Luke Glazebrook +## license: MIT + +foreground #d6deeb +background #011627 +selection_foreground none +selection_background #1d3b53 + +#: Cursor colors +cursor #80a4c2 +cursor_text_color background + +#: The basic 16 colors +#: black +color0 #011627 +color8 #575656 + +#: red +color1 #ef5350 +color9 #ef5350 + +#: green +color2 #22da6e +color10 #22da6e + +#: yellow +color3 #addb67 +color11 #ffeb95 + +#: blue +color4 #82aaff +color12 #82aaff + +#: magenta +color5 #c792ea +color13 #c792ea + +#: cyan +color6 #21c7a8 +color14 #7fdbca + +#: white +color7 #ffffff +color15 #ffffff diff --git a/shared/files.nix b/shared/files.nix index c4fdb94..b9dc2b4 100644 --- a/shared/files.nix +++ b/shared/files.nix @@ -1,3 +1,9 @@ { pkgs, config, ... }: -{ } +{ + ".config/kitty/themes/night-owl.conf" = { + text = builtins.readFile ../shared/config/kitty/night-owl.conf; + }; +} + + diff --git a/shared/home-manager.nix b/shared/home-manager.nix index 7cc0642..e0a2e06 100644 --- a/shared/home-manager.nix +++ b/shared/home-manager.nix @@ -7,6 +7,21 @@ let in { + bat.enable = true; + + direnv = { + enable = true; + enableNushellIntegration = true; + nix-direnv.enable = true; + }; + + gh = { + enable = true; + settings = { + git_protocol = "ssh"; + }; + }; + git = { enable = true; aliases = { @@ -49,6 +64,20 @@ in }; }; + kitty = { + enable = true; + font = { + name = "Iosevka Term"; + size = 14; + }; + settings = { + cursor_shape = "underline"; + confirm_os_window_close = 0; + shell = "nu"; + }; + theme = "Night Owl"; + }; + # Shared shell configuration nushell = { enable = true; @@ -132,4 +161,9 @@ in enable = true; enableNushellIntegration = true; }; + + vscode = { + enable = false; + package = pkgs.vscodium; + }; } diff --git a/shared/packages.nix b/shared/packages.nix index 38aebf8..65d0553 100644 --- a/shared/packages.nix +++ b/shared/packages.nix @@ -16,7 +16,6 @@ with pkgs; [ gnupg # Text and terminal utilities - bat neovim zoxide