LoginSignup
1
お題は不問!Qiita Engineer Festa 2023で記事投稿!

ShiftitからHammerspoon Shiftitへの移行と設定方法

Last updated at Posted at 2023-07-20

メンテナンスが止まってしまったShiftIt(執筆時2023年7月19日)からHammerspoon ShiftIt へ移行しようとしたのですが、手順や設定周りでつまづきました。

今回は私が行った移行手順や設定を紹介していきたいと思います。

ShiftItの現状

更新が止まっている状態で新しいメンテナを探しています。
Looking for a new maintainer? · Issue #296 · fikovnik/ShiftIt

fikovnik-ShiftIt-Managing-windows-size-and-position-in-OSX.png

代替案として Hammerspoon、そしてHammerspoon に ShiftIt 機能を実装するShiftIt Spoonが推奨されています。

Hammerspoon とは

ウィンドウ、マウス ポインター、クリップボード、位置情報サービス、Wi-Fi などのイベントをアクションに接続することができるユーティリティです。
構成ファイルをLua言語で記述します。

Hammerspoon ShiftIt とは

HammerspoonでShiftItライクに画面分割を行えるツールです。

Hammerspoon ShiftItのインストール

こちらにそって行います。
peterklijn/hammerspoon-shiftit: A ShiftIt like Hammerspoon window management configuration

step1

$ brew install --cask hammerspoon

brew でHammerspoonをインストールする。
起動し、メニューバーに Hammerspoon のロゴが表示されるのを確認

step2

Hammerspoon ShiftItのダウンロード し、Finder を使用して解凍する。
Finderを使用して ShiftIt.spoon をファイルを開く。

以下のパスにinit.luaがあることを確認

ls ~/.hammerspoon/Spoons/ShiftIt.spoon/
> init.lua

step3
Hammerspoon のメニューバー アイコンをクリックし、Open Config をクリックします。
そしてエディタでinit.luaファイルを開きます。

init.luaファイルに以下を貼り付け、保存して閉じます。

hs.loadSpoon("ShiftIt")
spoon.ShiftIt:bindHotkeys({})

Hammerspoon のメニューバー アイコンを再度クリックし、 Reload Config をクリックします。

step4
System Preferences > Security & Privacy > Accessibility を確認して Hammerspoon.appに権限があることを確認します。

Hammerspoon ShiftItのキーマッピングの変更の仕方

~/.hammerspoon/Spoons/init.lua にキーマッピング設定を記載します。
以下がデフォルトのキーマッピングです。

{
 left = { { 'ctrl', 'alt', 'cmd' }, 'left' },
  right = { { 'ctrl', 'alt', 'cmd' }, 'right' },
  up = { { 'ctrl', 'alt', 'cmd' }, 'up' },
  down = { { 'ctrl', 'alt', 'cmd' }, 'down' },
  upleft = { { 'ctrl', 'alt', 'cmd' }, '1' },
  upright = { { 'ctrl', 'alt', 'cmd' }, '2' },
  botleft = { { 'ctrl', 'alt', 'cmd' }, '3' },
  botright = { { 'ctrl', 'alt', 'cmd' }, '4' },
  maximum = { { 'ctrl', 'alt', 'cmd' }, 'm' },
  toggleFullScreen = { { 'ctrl', 'alt', 'cmd' }, 'f' },
  toggleZoom = { { 'ctrl', 'alt', 'cmd' }, 'z' },
  center = { { 'ctrl', 'alt', 'cmd' }, 'c' },
  nextScreen = { { 'ctrl', 'alt', 'cmd' }, 'n' },
  previousScreen = { { 'ctrl', 'alt', 'cmd' }, 'p' },
  resizeOut = { { 'ctrl', 'alt', 'cmd' }, '=' },
  resizeIn = { { 'ctrl', 'alt', 'cmd' }, '-' }
}

動作名 = {keymapping} で設定できます。
例えば、 left = { { 'ctrl', 'alt', 'cmd' }, 'left' }, の場合は、control + option + command でウィンドウを左寄せにします。

使用できるキーはHammerspoonのドキュメントに記載されています。
Hammerspoon docs: hs.keycodes

参考までにこちらが私の設定です。

-- SpoonInstall の設定
hs.loadSpoon("SpoonInstall")

-- ShiftItの設定
-- [peterklijn/hammerspoon-shiftit: A ShiftIt like Hammerspoon window management configuration](https://github.com/peterklijn/hammerspoon-shiftit)
spoon.SpoonInstall.repos.ShiftIt = {
   url = "https://github.com/peterklijn/hammerspoon-shiftit",
   desc = "ShiftIt spoon repository",
   branch = "master",
}
spoon.SpoonInstall:andUse("ShiftIt", { repo = "ShiftIt" })



-- ShiftItの設定
hs.loadSpoon("ShiftIt")
local mash = { 'shift', 'alt', 'cmd' }

-- hotkeyの設定の仕方
-- 動作名 = {keybind}
spoon.ShiftIt:bindHotkeys({
    left = { mash, 'left' },
    right = { mash, 'right' },
    maximum = { mash, 'up' },
})

参考文献

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1