From 9e95df4dd80ca5779247c1fe64ed5f7771f63111 Mon Sep 17 00:00:00 2001 From: Kat Inskip Date: Fri, 3 Mar 2023 09:56:30 -0800 Subject: [PATCH] [SUMIREKO] WM changes --- darwin/wm/skhd.nix | 14 ++++++++------ darwin/wm/spacebar.nix | 2 +- darwin/wm/stackline.nix | 10 ++++++++++ darwin/wm/yabai.nix | 43 ++++++++++++++++++++++++++++++++++++++++- kat/vscodium.nix | 4 ++++ packages/stackline.nix | 20 +++++++++++++++++++ 6 files changed, 85 insertions(+), 8 deletions(-) create mode 100644 darwin/wm/stackline.nix create mode 100644 packages/stackline.nix diff --git a/darwin/wm/skhd.nix b/darwin/wm/skhd.nix index 41f079ea..ae6783ad 100644 --- a/darwin/wm/skhd.nix +++ b/darwin/wm/skhd.nix @@ -5,7 +5,7 @@ in { enable = true; skhdConfig = let bindWorkspace = key: workspace: '' - alt - ${key} : yabai -m space --focus ${workspace} + ctrl + alt - ${key} : yabai -m space --focus ${workspace} shift + alt - ${key} : yabai -m window --space ${workspace} ''; workspaceBindings = string.concat (list.map (v: bindWorkspace v "${v}") (list.map builtins.toString (list.range 1 9)) @@ -62,8 +62,10 @@ in { # workspace prev/next - w alt - w : yabai -m space --focus prev alt + shift - w : yabai -m space --focus next - alt + ctrl - w : yabai -m window --display next - ctrl + shift - w : yabai -m window --display prev + alt + ctrl - w : yabai -m window --output next + ctrl + shift - w : yabai -m window --output prev + alt - p : yabai -m window --focus stack.prev || yabai -m window --focus prev || yabai -m window --focus last + alt - n : yabai -m window --focus stack.next || yabai -m window --focus next || yabai -m window --focus first # split managent - a alt - a : yabai -m window --toggle split @@ -72,9 +74,9 @@ in { alt - r : yabai -m space --balance # layout handling (spaces) - t - alt - t : yabai -m space -- layout stack - alt + shift - t : yabai -m space -- layout bsp - alt + ctrl - t : yabai -m space -- layout float + alt - t : yabai -m space --layout stack + alt + shift - t : yabai -m space --layout bsp + alt + ctrl - t : yabai -m space --layout float # layout handling (windows) - p alt - p : yabai -m window --toggle float diff --git a/darwin/wm/spacebar.nix b/darwin/wm/spacebar.nix index ffac22cf..30d4191b 100644 --- a/darwin/wm/spacebar.nix +++ b/darwin/wm/spacebar.nix @@ -10,7 +10,7 @@ # modules spaces = "on"; - space_icon_strip = "       8 9 10 11 12 13 14 15 16 17 18 19 20 21 22"; + space_icon_strip = "         ? 11 12 13 14 15 16 17 18 19 20 21 22"; spaces_for_all_displays = "on"; title = "off"; clock = "on"; diff --git a/darwin/wm/stackline.nix b/darwin/wm/stackline.nix new file mode 100644 index 00000000..fbc7e0bd --- /dev/null +++ b/darwin/wm/stackline.nix @@ -0,0 +1,10 @@ +{pkgs, ...}: { + homebrew.casks = [ + "hammerspoon" + ]; + system.defaults.CustomUserPreferences = { + "org.hammerspoon.Hammerspoon" = { + MJConfigFile = "${pkgs.stackline}/init.lua"; + }; + }; +} diff --git a/darwin/wm/yabai.nix b/darwin/wm/yabai.nix index 2efd2c61..cca9b976 100644 --- a/darwin/wm/yabai.nix +++ b/darwin/wm/yabai.nix @@ -19,7 +19,7 @@ _: { window_border_hidpi = "on"; # focus - focus_follows_mouse = "autoraise"; + focus_follows_mouse = "off"; mouse_follows_focus = "off"; # window @@ -35,11 +35,52 @@ _: { }; extraConfig = '' + # spaces + function setup_space { + local idx="$1" + local name="$2" + local space= + echo "setup space $idx : $name" + space=$(yabai -m query --spaces --space "$idx") + if [ -z "$space" ]; then + yabai -m space --create + fi + yabai -m space "$idx" --label "$name" + } + + setup_space 1 work + setup_space 2 chat + setup_space 3 www + setup_space 4 code + setup_space 5 term + setup_space 6 music + setup_space 7 brain + setup_space 8 office + setup_space 9 email + setup_space 10 misc + # rules yabai -m rule --add app='System Preferences' manage=off yabai -m rule --add app='Yubico Authenticator' manage=off yabai -m rule --add app='YubiKey Manager' manage=off yabai -m rule --add app='YubiKey Personalization Tool' manage=off + yabai -m rule --add app="^Slack$" space=1 + yabai -m rule --add app="^Microsoft Teams$" space=1 + yabai -m rule --add app="^Discord$" space=2 + yabai -m rule --add app="^Element$" space=2 + yabai -m rule --add app="^Telegram Desktop$" space=2 + yabai -m rule --add app="^Brave Browser$" space=^3 + yabai -m rule --add app="^Orion$" space=^3 + yabai -m rule --add app="^VSCodium$" space=^4 + yabai -m rule --add app="^Spotify$" space=6 + yabai -m rule --add app="^Obsidian$" space=7 + yabai -m rule --add app="^Microsoft Word$" space=8 + yabai -m rule --add app="^Microsoft Powerpoint$" space=8 + yabai -m rule --add app="^Microsoft Excel$" space=8 + yabai -m rule --add app="^Microsoft Outlook$" space=9 + yabai -m rule --add app="^Calendar$" space=9 + yabai -m rule --add app="^Mail$" space=9 + # signals yabai -m signal --add event=window_focused action="sketchybar --trigger window_focus" diff --git a/kat/vscodium.nix b/kat/vscodium.nix index 45903fb7..ff7da5b7 100644 --- a/kat/vscodium.nix +++ b/kat/vscodium.nix @@ -14,6 +14,7 @@ userSettings = { "nix.enableLanguageServer" = true; "workbench.colorTheme" = "Quiet Light"; + "editor.suggest.preview" = true; "[nix]" = { "editor.defaultFormatter" = "kamadorueda.alejandra"; "editor.formatOnPaste" = true; @@ -23,6 +24,9 @@ "alejandra.program" = "${pkgs.alejandra}/bin/alejandra"; "editor.fontFamily" = ''"Iosevka", "Font Awesome 6 Free", "Font Awesome 6 Brands"''; "editor.fontLigatures" = true; + "terraform.experimentalFeatures.prefillRequiredFields" = true; + "terraform.experimentalFeatures.validateOnSave" = true; + "terraform.codelens.referenceCount" = true; }; }; } diff --git a/packages/stackline.nix b/packages/stackline.nix new file mode 100644 index 00000000..2818a623 --- /dev/null +++ b/packages/stackline.nix @@ -0,0 +1,20 @@ +{ + stdenv, + fetchFromGitHub, +}: +stdenv.mkDerivation rec { + pname = "stackline"; + version = "2022-11-29"; + + src = fetchFromGitHub { + owner = "AdamWagner"; + repo = "stackline"; + rev = "2aa0bd9a27f93bad24b0fd4da38f3c0356414098"; + sha256 = "sha256-x7SIgKR6rwkoVVbaAvjFr1N7wTF3atni/d6xGLBBRN4="; + }; + + installPhase = '' + mkdir -p $out + mv ./* $out/ + ''; +}