LoginSignup
2
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' },
})

参考文献

2
1
0

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
  3. You can use dark theme
What you can do with signing up
2
1