From 78bcb2b7530482058869ea615989372af921ee74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nikodem=20Rabuli=C5=84ski?= Date: Mon, 22 Jan 2024 20:41:58 +0100 Subject: [PATCH] hijiri: finish migration --- flake.lock | 74 +++++++++++++++++++++++++++++++++++++++- flake.nix | 3 ++ hosts/hijiri/default.nix | 52 +++++++++++++++++++++++++++- hosts/hijiri/skhd.nix | 34 ++++++++++++++++++ hosts/hijiri/yabai.nix | 30 ++++++++++++++++ 5 files changed, 191 insertions(+), 2 deletions(-) create mode 100644 hosts/hijiri/skhd.nix create mode 100644 hosts/hijiri/yabai.nix diff --git a/flake.lock b/flake.lock index d5ad723..a43b406 100644 --- a/flake.lock +++ b/flake.lock @@ -254,6 +254,24 @@ "type": "indirect" } }, + "flake-parts_4": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1688466019, + "narHash": "sha256-VeM2akYrBYMsb4W/MmBo1zmaMfgbL4cH3Pu8PGyIwJ0=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "8e8d955c22df93dbe24f19ea04f47a74adbdc5ec", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, "flakelib": { "inputs": { "fl-config": "fl-config", @@ -373,6 +391,25 @@ "type": "gitlab" } }, + "niko-nur": { + "inputs": { + "flake-parts": "flake-parts_4", + "nixpkgs": "nixpkgs_3" + }, + "locked": { + "lastModified": 1690830552, + "narHash": "sha256-8n8PipmWZnnE56QlhcGQCKG5cMU8v+NTaFkJzBM6k4w=", + "owner": "nrabulinski", + "repo": "nur-packages", + "rev": "b19fe09dd3f325ff2731b83f230e2573b67db4aa", + "type": "github" + }, + "original": { + "owner": "nrabulinski", + "repo": "nur-packages", + "type": "github" + } + }, "nix-std": { "locked": { "lastModified": 1701658249, @@ -434,6 +471,24 @@ "type": "indirect" } }, + "nixpkgs-lib": { + "locked": { + "dir": "lib", + "lastModified": 1688049487, + "narHash": "sha256-100g4iaKC9MalDjUW9iN6Jl/OocTDtXdeAj7pEGIRh4=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "4bc72cae107788bf3f24f30db2e2f685c9298dc9", + "type": "github" + }, + "original": { + "dir": "lib", + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs_2": { "locked": { "lastModified": 1703637592, @@ -451,6 +506,22 @@ } }, "nixpkgs_3": { + "locked": { + "lastModified": 1690753480, + "narHash": "sha256-GQgPs8fCh/LsyQoYMUZgT2p7jFVWyHu9p+1Nl/dp8GY=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "9e06dd56947c1dc3dc837c3149bfe02c71a6edd7", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { "locked": { "lastModified": 1705697961, "narHash": "sha256-XepT3WS516evSFYkme3GrcI3+7uwXHqtHbip+t24J7E=", @@ -538,7 +609,8 @@ "hercules-ci-effects": "hercules-ci-effects", "home-manager": "home-manager", "mailserver": "mailserver", - "nixpkgs": "nixpkgs_3", + "niko-nur": "niko-nur", + "nixpkgs": "nixpkgs_4", "nvidia-patch": "nvidia-patch", "racket": "racket", "wrapper-manager": "wrapper-manager", diff --git a/flake.nix b/flake.nix index 2b03907..70f80aa 100644 --- a/flake.nix +++ b/flake.nix @@ -103,6 +103,9 @@ url = "github:bandithedoge/nixpkgs-firefox-darwin"; inputs.nixpkgs.follows = "nixpkgs"; }; + niko-nur = { + url = "github:nrabulinski/nur-packages"; + }; }; nixConfig = { diff --git a/hosts/hijiri/default.nix b/hosts/hijiri/default.nix index 0d79da1..8fd2062 100644 --- a/hosts/hijiri/default.nix +++ b/hosts/hijiri/default.nix @@ -1,5 +1,55 @@ { - configurations.darwin.hijiri = { + configurations.darwin.hijiri = {pkgs, ...}: { + imports = [ + ./skhd.nix + ./yabai.nix + ]; + nixpkgs.system = "aarch64-darwin"; + + settei.user.config = { + common.desktop.enable = true; + home.packages = with pkgs; [ + utm + podman + podman-compose + qemu + anki-bin + ]; + }; + + system.defaults = { + ".GlobalPreferences" = { + "com.apple.mouse.scaling" = -1.0; + }; + dock = { + autohide = true; + largesize = 64; + minimize-to-application = true; + orientation = "right"; + show-process-indicators = false; + show-recents = false; + }; + CustomUserPreferences.".GlobalPreferences" = { + "com.apple.scrollwheel.scaling" = "-1"; + }; + }; + system.keyboard = { + enableKeyMapping = true; + remapCapsLockToEscape = true; + nonUS.remapTilde = true; + swapLeftCommandAndLeftAlt = true; + # swap right command and right alt too + userKeyMapping = [ + { + HIDKeyboardModifierMappingSrc = 30064771302; + HIDKeyboardModifierMappingDst = 30064771303; + } + { + HIDKeyboardModifierMappingSrc = 30064771303; + HIDKeyboardModifierMappingDst = 30064771302; + } + ]; + }; }; } diff --git a/hosts/hijiri/skhd.nix b/hosts/hijiri/skhd.nix new file mode 100644 index 0000000..a67a943 --- /dev/null +++ b/hosts/hijiri/skhd.nix @@ -0,0 +1,34 @@ +{ + pkgs, + lib, + inputs', + ... +}: { + services.skhd = { + enable = true; + skhdConfig = let + spaceCount = 6; + spaceBindings = + lib.genList + (i: let num = toString (i + 1); in "cmd - ${num} : yabai -m space --focus ${num}") + spaceCount; + in '' + cmd - return : ${pkgs.alacritty}/Applications/Alacritty.app/Contents/MacOS/alacritty + cmd + shift - return : ${inputs'.niko-nur.packages.qutebrowser-bin}/Applications/qutebrowser.app/Contents/MacOS/qutebrowser + + cmd - h : yabai -m window --focus west + cmd - j : yabai -m window --focus south + cmd - k : yabai -m window --focus north + cmd - l : yabai -m window --focus east + + cmd + shift - h : yabai -m window --swap west + cmd + shift - j : yabai -m window --swap south + cmd + shift - k : yabai -m window --swap north + cmd + shift - l : yabai -m window --swap east + + cmd + shift - space : yabai -m window --toggle float + + ${lib.concatStringsSep "\n" spaceBindings} + ''; + }; +} diff --git a/hosts/hijiri/yabai.nix b/hosts/hijiri/yabai.nix new file mode 100644 index 0000000..1fe212c --- /dev/null +++ b/hosts/hijiri/yabai.nix @@ -0,0 +1,30 @@ +{ + lib, + pkgs, + ... +}: { + services.yabai = { + enable = true; + enableScriptingAddition = true; + config = { + layout = "bsp"; + top_padding = 10; + bottom_padding = 10; + left_padding = 10; + right_padding = 10; + window_gap = 10; + mouse_modifier = "cmd"; + window_topmost = "off"; + window_shadow = "float"; + mouse_follows_focus = "on"; + }; + extraConfig = '' + yabai -m rule --add app="^Alacritty$" border=on + yabai -m rule --add app="^System Settings$" manage=off + + yabai -m signal --add event=window_created action='yabai -m query --windows --window $YABAI_WINDOW_ID \ + | ${lib.getExe pkgs.jq} -er ".\"can-resize\" or .\"is-floating\"" \ + || yabai -m window $YABAI_WINDOW_ID --toggle float' + ''; + }; +}