Как заставить zsh работать в качестве оболочки для входа в Mac OS X (в iTerm)?

Предполагается, что это будет улучшение @mamickr MarqueePanel. См. Выше.

Чтобы сопоставить события мыши с конкретными компонентами, добавленными в MarqueePanel

Переопределить add(Component comp) MarqueePanel, чтобы направить все события мыши компонентов

Проблема в том, что делать с MouseEvents, выпущенным из отдельных компонентов. Мой подход состоит в том, чтобы удалить слушателей мыши из добавленных компонентов и позволить MarqueePanel перенаправить событие на правильный компонент.

В моем случае эти компоненты должны быть ссылками.

    @Override
    public Component add(Component comp) {
        comp = super.add(comp);

        if(comp instanceof MouseListener)
             comp.removeMouseListener((MouseListener)comp);

        comp.addMouseListener(this);

        return comp;
    }

Затем отобразите компонент x в MarqueePanel x и, наконец, верную компоненту

@Override
public void mouseClicked(MouseEvent e)
{
    Component source = (Component)e.getSource();
    int x = source.getX() + e.getX();
    int y = source.getY();

    MarqueePanel2 marqueePanel = (MarqueePanel2) ((JComponent)e.getSource()).getParent();
    double x2 = marqueePanel.getWidth();
    double x1 = Math.abs(marqueePanel.scrollOffset);



    if(x >= x1 && x <= x2)
    {
        System.out.println("Bang " + x1);
        Component componentAt = getComponentAt(x+marqueePanel.scrollOffset, y);

        if(comp instanceof MouseListener)
             ((MouseListener) componentAt).mouseClicked(e);

        System.out.println(componentAt.getName());
    }
    else
    {
        return;
    }


    //System.out.println(x);
}
145
задан Mureinik 2 October 2015 в 22:03
поделиться

2 ответа

Пробовали ли вы редактировать запись оболочки в настройках учетной записи .

Перейдите в настройки учетных записей, разблокируйте и щелкните правой кнопкой мыши свою учетную запись пользователя для Диалог дополнительных настроек . Ваша оболочка должна быть / bin / zsh, и вы можете соответствующим образом отредактировать этот вызов (т.е. добавить аргумент --login).

19
ответ дан 23 November 2019 в 22:41
поделиться
chsh -s $(which zsh)

Вы будете запрашивается пароль, но после обновления настроек для всех новых сеансов iTerm / Terminal, которые вы запускаете на этом компьютере, по умолчанию будет использоваться zsh.

221
ответ дан 23 November 2019 в 22:41
поделиться