Last active
November 2, 2024 23:31
-
-
Save programus/d3bf9c6b8f9b7648891d1f59b665b35e to your computer and use it in GitHub Desktop.
pull down from top alacritty (like iTerm2)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
window: | |
# Window dimensions (changes require restart) | |
# | |
# Number of lines/columns (not pixels) in the terminal. The number of columns | |
# must be at least `2`, while using a value of `0` for columns and lines will | |
# fall back to the window manager's recommended size. | |
dimensions: | |
columns: 500 | |
lines: 30 | |
# Window position (changes require restart) | |
# | |
# Specified in number of pixels. | |
# If the position is not set, the window manager will handle the placement. | |
position: | |
x: 0 | |
y: 0 | |
# Window padding (changes require restart) | |
# | |
# Blank space added around the window in pixels. This padding is scaled | |
# by DPI and the specified value is always added at both opposing sides. | |
#padding: | |
# x: 0 | |
# y: 0 | |
# Spread additional padding evenly around the terminal content. | |
#dynamic_padding: false | |
# Window decorations | |
# | |
# Values for `decorations`: | |
# - full: Borders and title bar | |
# - none: Neither borders nor title bar | |
# | |
# Values for `decorations` (macOS only): | |
# - transparent: Title bar, transparent background and title bar buttons | |
# - buttonless: Title bar, transparent background and no title bar buttons | |
decorations: none | |
key_bindings: | |
- { key: Return, mods: Command, action: ToggleSimpleFullscreen } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
local spaces = require('hs._asm.undocumented.spaces') -- https://github.com/asmagill/hs._asm.undocumented.spaces | |
-- Switch alacritty | |
hs.hotkey.bind({'alt'}, 'space', function () | |
local APP_NAME = 'Alacritty' | |
function moveWindow(alacritty, space, mainScreen) | |
-- move to main space | |
local win = nil | |
while win == nil do | |
win = alacritty:mainWindow() | |
end | |
print(win) | |
print(space) | |
print(win:screen()) | |
print(mainScreen) | |
local fullScreen = not win:isStandard() | |
if fullScreen then | |
hs.eventtap.keyStroke('cmd', 'return', 0, alacritty) | |
end | |
winFrame = win:frame() | |
scrFrame = mainScreen:fullFrame() | |
print(winFrame) | |
print(scrFrame) | |
winFrame.w = scrFrame.w | |
winFrame.y = scrFrame.y | |
winFrame.x = scrFrame.x | |
print(winFrame) | |
win:setFrame(winFrame, 0) | |
print(win:frame()) | |
win:spacesMoveTo(space) | |
if fullScreen then | |
hs.eventtap.keyStroke('cmd', 'return', 0, alacritty) | |
end | |
win:focus() | |
end | |
local alacritty = hs.application.get(APP_NAME) | |
if alacritty ~= nil and alacritty:isFrontmost() then | |
alacritty:hide() | |
else | |
local space = spaces.activeSpace() | |
local mainScreen = hs.screen.find(spaces.mainScreenUUID()) | |
if alacritty == nil and hs.application.launchOrFocus(APP_NAME) then | |
local appWatcher = nil | |
print('create app watcher') | |
appWatcher = hs.application.watcher.new(function(name, event, app) | |
print(name) | |
print(event) | |
if event == hs.application.watcher.launched and name == APP_NAME then | |
app:hide() | |
moveWindow(app, space, mainScreen) | |
appWatcher:stop() | |
end | |
end) | |
print('start watcher') | |
appWatcher:start() | |
end | |
if alacritty ~= nil then | |
moveWindow(alacritty, space, mainScreen) | |
end | |
end | |
end) |
Now hammerspoon replaces "https://github.com/asmagill/hs._asm.undocumented.spaces" to "https://github.com/asmagill/hs._asm.spaces", Could we add a new script?
Thanks
I have rewrite this script to use latest hs.spaces
module, and replace get app_name
to get bundle id
to avoid mismatching with browser title and I works fine with hammerspoon Version 0.9.100(6815):
check my fork for details: https://gist.github.com/truebit/31396bb2f48c75285d724c9e9e037bcd
And here is the Kitty implementation: https://gist.github.com/truebit/d79b8018666d65e95970f208d8f5d149
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Great configuration thanks!
I have one issue though, but i don't know how to fix it.
When have a full-screen app open and press the hotkey, it opens over the full-screen app as expected but immidiately takes me to the desktop (while alacritty is still over that full-screen app).
Any suggestions on fixing this?