vosjedev

joined 1 year ago
[–] vosjedev@lemm.ee 2 points 1 year ago* (last edited 1 year ago) (1 children)

So I changed some other things to improve detection. I will update the post. But nice idea adding a hint! I personaly did that in a hint command also specifying other shortcuts and aliases about my zsh config.

 

I recently got a pinetab2, and I booted it into ubuntu-touch, running lomiri. But the screen orientation is the wrong way (portrait). I am not interested in autorotate, so how would I force the screen orientation of a mir-based desktop to landscape? If you need more info to help me, just ask for it.

edit:
Yesterday while writing this I didn't have much time, so I forgot to mention the accual problem...
The problem I'm having is that the autorotation sensor always reports portait mode, even when in landscape. It does report a change. I know this because it switches to desktop mode when I rotate with the keyboard plugged in.
edit while writing previous edit:
Now it does not even go to desktop mode anymore... So I guess it is now stuck even more.

My solution was either disabling the rotation sensor's driver to make lomiri default to the set rotation in /etc/ubuntu-touch-session.d/flo.conf, or fixing the driver so it reports orientation correctly.

edit 2: I currently solved this by editing /etc/deviceinfo/devices/pinetab2.yaml and removing all supported rotations except InvertedLandscape. This means it can't autorotate at all, but I wasn't interested in autorotate in the first place. If someone knows how to fix the driver and make autorotate work correctly, please let me know.

[–] vosjedev@lemm.ee 0 points 1 year ago (3 children)

Thanks for your reply! This made me think: could I bind enter to newline and alt-enter to accept, which then made me think if it was possible to have enter to accept and alt-enter to newline on first line only, after that in reverse. That made me think of the script I added to the post.

But serious, without this I would have never thought of doing what I did.

[–] vosjedev@lemm.ee 0 points 1 year ago

Erm... fish-like multiline editing? This does everything but that... but still thanks, as the syntax hylighting is something I wanted.

[–] vosjedev@lemm.ee 1 points 1 year ago (5 children)

I updated my post to be clearer.

[–] vosjedev@lemm.ee 0 points 1 year ago

because it is a python shell, not a posix shell. and, my python broke, and I don't know how to solve that (but I am not lokking for help with that :)

[–] vosjedev@lemm.ee 0 points 1 year ago

ah, I updated the post to be clearer :).

 

Some time ago I found xonsh which is a python-based shell. It had really good multiline support, and I am searching for a shell with sameish multiline support as xonsh. Fish shell also has good multiline support, it is around the same level, but it is not posix compatible. I want a shell that has that kind of level of multiline, but zsh (bash is also fine) compatible.

Does anyone know of one?

edit: based on the replies, I get this is unclear. My problem with zsh is that if i press enter and it starts a new line, I can't get back to the prevous line, because a new prompt is started. In fish this is possible, all lines are one prompt. But, fish is not posix compatible. So, I guess I want a posix-compatible shell with fish-like lines (multiple line) editing. I wanted zsh support to keep using my custom oh-my-zsh prompt, but remaking it for a new shell is not a big problem. Sorry for being unclear.

edit 2: solution is here! Thanks to @andy@programming.dev I started thinking and made the following: When on the first line, enter accepts and alt-enter inserts a newline. When not on the first line, enter inserts a newline and alt-enter accepts. Here is the code to put in your .zshrc:

# MULTILINE!!!
bindkey '^[e' push-line-or-edit

# enter accepts when only one line found, else creates newline
function _zle_ml_enter {
    if ! [[ $BUFFER == *$'\n'* ]]; then
        zle accept-line
    else
        zle self-insert-unmeta
    fi
}
zle -N _zle_ml_enter
bindkey '^M' _zle_ml_enter

# alt-enter accepts when more than one line found, else creates newline
function _zle_ml_meta_enter {
    if [[ $BUFFER == *$'\n'* ]]; then
        zle accept-line
    else
        zle self-insert-unmeta
    fi
}
zle -N _zle_ml_meta_enter
bindkey '^[^M' _zle_ml_meta_enter

edit:
changed if [[ "$BUFFERLINES" -le 1 ]]; then to if ! [[ $BUFFER == *$'\n'* ]]; then and if [[ "$BUFFERLINES" -gt 1 ]]; then to if [[ $BUFFER == *$'\n'* ]]; then for improving detection. Also added alt-e shortcut because I had that configured myself but forgot to add here.