diff --git a/darwin/default.nix b/darwin/default.nix index 7454bbc..cd0ac39 100644 --- a/darwin/default.nix +++ b/darwin/default.nix @@ -5,7 +5,6 @@ # Auto upgrade nix package and the daemon service. services.nix-daemon.enable = true; - services.karabiner-elements.enable = true; # Necessary for using flakes on this system. nix.settings.experimental-features = "nix-command flakes"; @@ -16,7 +15,6 @@ enable = true; enableSSHSupport = true; }; - environment.systemPackages = [ pkgs.pinentry_mac ]; # Shells environment.shells = with pkgs; [ @@ -196,8 +194,4 @@ # Additional system configurations system.defaults.NSGlobalDomain.AppleKeyboardUIMode = 3; system.defaults.NSGlobalDomain.AppleFontSmoothing = 2; - - # Services - services.skhd.enable = true; - services.yabai.enable = true; } diff --git a/darwin/homebrew-common.nix b/darwin/homebrew-common.nix index b080c49..46b8a6f 100644 --- a/darwin/homebrew-common.nix +++ b/darwin/homebrew-common.nix @@ -5,6 +5,7 @@ "dustinblackman/tap" # Oatmeal "homebrew/bundle" # Bundler for non-Ruby dependencies from Homebrew, Homebrew Cask, Mac App Store, Whalebrew and Visual Studio Code. "homebrew/services" # Manage background services using the daemon manager launchctl on macOS or systemctl on Linux. + "koekeishiya/formulae" # yabai/skhd ]; brews = [ "asdf" # Extendable version manager with support for Ruby, Node.js, Erlang & more @@ -16,10 +17,13 @@ "luajit" # INFO: Dependency of Neovim "neovim" # TODO: Migrate to nix "oatmeal" # Terminal UI to chat with large language models (LLM) using backends such as Ollama, and direct integrations with your favourite editor like Neovim! + "pinentry-mac" # Pinentry for GPG "prettier" # Code formatter for JavaScript, CSS, JSON, GraphQL, Markdown, YAML + "skhd" # Simple hotkey daemon for macOS "tree-sitter" # INFO: Dependency of Neovim "urlview" # URL extractor/launcher "volta" # JavaScript toolchain manager for reproducible environments + "yabai" # Tiling window manager for macOS based on binary space partitioning "yarn" # JavaScript package manager ]; casks = [ @@ -67,6 +71,7 @@ "itsycal" # Menu bar calendar "kaleidoscope@3" # Spot and merge differences in text and image files or folders "kap" # Open-source screen recorder built with web technology + "karabiner-elements" # Keyboard customisation tool "languagetool" # Grammar, spelling and style suggestions in all the writing apps "ledger-live" # Wallet desktop application to maintain multiple cryptocurrencies "macfuse" # File system integration diff --git a/home/karabiner/default.nix b/home/karabiner/default.nix index 648de4e..a11d618 100644 --- a/home/karabiner/default.nix +++ b/home/karabiner/default.nix @@ -4,6 +4,4 @@ home.file.".config/karabiner/" = { source = ./karabiner; }; - - home.packages = [ pkgs.karabiner-elements ]; } diff --git a/home/skhd/default.nix b/home/skhd/default.nix index a6e17a5..b9072f2 100644 --- a/home/skhd/default.nix +++ b/home/skhd/default.nix @@ -1,16 +1,7 @@ -{ pkgs, config, lib, ... }: +{ ... }: { - options.services.skhd = { - enable = lib.mkEnableOption "skhd"; - }; - - config = { - home.file.".config/skhd/skhdrc" = lib.mkIf - config.services.skhd.enable - { - source = ./skhdrc; - onChange = "${pkgs.killall}/bin/killall skhd"; - }; + home.file = { + ".config/skhd/skhdrc" = { source = ./skhdrc; }; }; } diff --git a/home/yabai/default.nix b/home/yabai/default.nix index fe142ad..cc1f020 100644 --- a/home/yabai/default.nix +++ b/home/yabai/default.nix @@ -1,16 +1,7 @@ -{ pkgs, config, lib, ... }: +{ ... }: { - options.services.yabai = { - enable = lib.mkEnableOption "yabai"; - }; - - config = { - home.file.".config/yabai/yabairc" = lib.mkIf - config.services.yabai.enable - { - source = ./yabairc; - onChange = "${pkgs.killall}/bin/killall yabai"; - }; + home.file = { + ".config/yabai/yabairc" = { source = ./yabairc; }; }; } diff --git a/home/yabai/yabairc b/home/yabai/yabairc index b8c77cb..004c51e 100644 --- a/home/yabai/yabairc +++ b/home/yabai/yabairc @@ -8,17 +8,11 @@ yabai -m config mouse_follows_focus off yabai -m config focus_follows_mouse off yabai -m config window_origin_display default yabai -m config window_placement second_child -yabai -m config window_topmost off yabai -m config window_shadow on yabai -m config window_opacity off yabai -m config window_opacity_duration 0.0 yabai -m config active_window_opacity 1.0 yabai -m config normal_window_opacity 0.90 -yabai -m config window_border off -yabai -m config window_border_width 6 -yabai -m config active_window_border_color 0xff775759 -yabai -m config normal_window_border_color 0xff555555 -yabai -m config insert_feedback_color 0xffd75f5f yabai -m config split_ratio 0.70 yabai -m config auto_balance off yabai -m config mouse_modifier fn @@ -53,8 +47,8 @@ yabai -m rule --add app="Dropbox Dash" manage=off yabai -m rule --add app="Proton Pass" manage=off yabai -m rule --add app="Pika" manage=off yabai -m rule --add app="Microsoft Teams" manage=off -yabai -m rule --add app="CleanShot X" manage=off mouse_follows_focus=off layer=above -yabai -m rule --add app="^Dash$" sticky=on layer=above manage=off -yabai -m rule --add app="^IINA$" sticky=on layer=above manage=off +yabai -m rule --add app="CleanShot X" manage=off mouse_follows_focus=off +yabai -m rule --add app="^Dash$" sticky=on manage=off +yabai -m rule --add app="^IINA$" sticky=on manage=off echo "Yabai configuration loaded …" diff --git a/hosts/mac-mini/home.nix b/hosts/mac-mini/home.nix index 92fe8e4..1d79ac2 100644 --- a/hosts/mac-mini/home.nix +++ b/hosts/mac-mini/home.nix @@ -5,10 +5,6 @@ ../../home ]; - # Services - services.yabai.enable = true; - services.skhd.enable = true; - # The home.packages option allows you to install Nix packages into your # environment. home.packages = with pkgs; [ diff --git a/hosts/macbook-2023/home.nix b/hosts/macbook-2023/home.nix index 36c07e3..8e25240 100644 --- a/hosts/macbook-2023/home.nix +++ b/hosts/macbook-2023/home.nix @@ -5,10 +5,6 @@ ../../home ]; - # Services - services.yabai.enable = true; - services.skhd.enable = true; - # The home.packages option allows you to install Nix packages into your # environment. home.packages = with pkgs; [ ];