I like having an uri directly pastable to scp. Also, as mentioned in other comments, Having a fixed length prompt on the command line is quite appreciable.
I'm unsatisfied, though, with the need of subshells to draw a single prompt. It's ok for the git part, but I feel like the PROMPT_COMMAND part is a hack, I just can't succeed in making it displays colors (rather than escaped characters) without a subshell.
I don't like the powerline style for displaying the path, but I like it in tmux. It looks really awesome compared to the defaults(green background for the status line).
Note: showing colors in terminals is done through ANSI codes which have varying levels of compatibility with different terminals. For me, this works on an iTerm terminal, with $TERM set to xterm-256color.
Yeah that was the problem. I realized that Snow Leopard's default terminal doesn't have support for ANSI colors..I think. Anyways, if you're on Snow Leopard or earlier versions of Mac OSX, you need to use iTerm2. Also, to make the PS1 smaller, you can delete the two lines in the last method (the constructor I think) that prints the hostname and user. So, delete or comment:
I too prefer just PS1='$ ', I want the cursor to be the same distance from the margin every time, to have maximum length for typing without wrapping, and the ability to put in a few separator lines between command output by just tapping Return.
However, for your problem, have you considered the terminal's title instead of the top line of the tty? printf '\033]0;foo\007'
Mine has a bunch of info, then a newline, then ' $'. Being able to see the current git branch is just too useful to drop, but I moving random distances out from the margin between commands.
No, I meant the window's furniture so no colours. I agree, a tty-wrapper, like tmux, would provide another option. I don't suppose there are terminals generally about where `tput hs' is true. Have you considered using the end of the prompt line for status, returning to the left for the "$ ", and being happy to do readline's redraw-current-line if you don't like the overwrite should you reach that far?
By messes up terminal history do you mean when you push up in terminal the previous lines that show up are rendered badly or that your actual history is effected in some way?
I used the ANSI control codes for moving the cursor, which seems to overwrite previous lines. Not sure if there's another way to achieve that without overwriting lines though.