This reverts commit 3284ec900e.
Not needed as most gopass versions do this when stdout is a pipe, but it
interfers with reading the username from the secret.
See the discussion in #6323 for more detail, and #5972 for the original
PR.
(cherry picked from commit 9115ea4a4bbc4858d7fa0422cff59c29699fa53a)
Vim has this, and it's almost easter, so clearly we should have it too.
Also it's from Monty Python, which makes it even more fitting.
HEAD KNIGHT: Ni!
KNIGHTS: Ni! Ni! Ni!
ARTHUR: Who are you?
HEAD KNIGHT: We are the Knights Who Say... Ni!
ARTHUR: No! Not the Knights Who Say Ni!
HEAD KNIGHT: The same!
BEDEVERE: Who are they?
HEAD KNIGHT: We are the keepers of the sacred words: Ni, Pen, and Ni-wom!
RANDOM: Ni-wom!
ARTHUR: Those who hear them seldom live to tell the tale!
HEAD KNIGHT: The Knights Who Say Ni demand a sacrifice!
ARTHUR: Knights of Ni, we are but simple travellers who seek the enchanter who lives beyond these woods.
HEAD KNIGHT: Ni! Ni! Ni! Ni!
ARTHUR and PARTY: Oh, ow!
HEAD KNIGHT: We shall say 'nee' again to you if you do not appease us.
ARTHUR: Well, what is it you want?
HEAD KNIGHT: We want... a shrubbery!
[dramatic chord]
ARTHUR: A what?
HEAD KNIGHT: Ni! Ni!
ARTHUR and PARTY: Oh, ow!
ARTHUR: Please, please! No more! We shall find a shrubbery.
HEAD KNIGHT: You must return here with a shrubbery or else you will never pass through this wood alive!
ARTHUR: O Knights of Ni, you are just and fair, and we will return with a shrubbery.
HEAD KNIGHT: One that looks nice.
ARTHUR: Of course.
HEAD KNIGHT: And not too expensive.
ARTHUR: Yes.
HEAD KNIGHTS: Now... go!
ARTHUR: Old crone! Is there anywhere in this town where we could buy a shrubbery!
[dramatic chord]
CRONE: Who sent you?
ARTHUR: The Knights Who Say Nee.
CRONE: Agh! No! Never! We have no shrubberies here.
ARTHUR: If you do not tell us where we can buy a shrubbery, my friend
and I will say... we will say... `nee'.
CRONE: Agh! Do your worst!
ARTHUR: Very well! If you will not assist us voluntarily,... Ni!
CRONE: No! Never! No shrubberies!
ARTHUR: Ni!
BEDEVERE: Noo! Noo!
ARTHUR: No, no, no, no -- it's not that, it's 'Ni'.
BEDEVERE: Noo!
ARTHUR: No, no -- 'Ni'. You're not doing it properly.
BEDEVERE: Noo! Ni!
ARTHUR: That's it, that's it, you've got it.
ARTHUR and BEDEVERE: Ni! Ni!
ROGER: Are you saying 'Ni' to that old woman?
ARTHUR: Um, yes.
ROGER: Oh, what sad times are these when passing ruffians can say `Ni' at will to old ladies. There is a pestilence upon this land, nothing is sacred. Even those who arrange and design shrubberies are under considerable economic stress at this period in history.
ARTHUR: Did you say `shrubberies'?
ROGER: Yes, shrubberies are my trade -- I am a shrubber. My name is Roger the Shrubber. I arrange, design, and sell shrubberies.
BEDEVERE: Ni!
ARTHUR: No! No, no, no! No!
ARTHUR: O, Knights of Ni, we have brought you your shrubbery. May we go now?
HEAD KNIGHT: It is a good shrubbery. I like the laurels particularly. But there is one small problem.
ARTHUR: What is that?
HEAD KNIGHT: We are now... no longer the Knights Who Say Ni.
RANDOM: Ni!
HEAD KNIGHT: Shh shh. We are now the Knights Who Say Ecky-ecky-ecky- ecky-pikang-zoom-boing-mumble-mumble.
RANDOM: Ni!
HEAD KNIGHT: Therefore, we must give you a test.
ARTHUR: What is this test, O Knights of-- Knights Who 'Til Recently Said Ni?
HEAD KNIGHT: Firstly, you must find... another shrubbery!
[dramatic chord]
ARTHUR: Not another shrubbery!
HEAD KNIGHT: Then, when you have found the shrubbery, you must place it here beside this shrubbery, only slightly higher so you get a two-level effect with a little path running down the middle.
RANDOM: A path! A path! Ni!
HEAD KNIGHT: Then, when you have found the shrubbery, you must cut down the mightiest tree in the forest... with... a herring!
[dramatic chord]
ARTHUR: We shall do no such thing!
HEAD KNIGHT: Oh, please!
ARTHUR: Cut down a tree with a herring? It can't be done.
KNIGHTS: Aaaaugh! Aaaugh!
HEAD KNIGHT: Don't say that word.
ARTHUR: What word?
HEAD KNIGHT: I cannot tell, suffice to say is one of the words the Knights of Ni cannot hear.
ARTHUR: How can we not say the word if you don't tell us what it is?
KNIGHTS: Aaaaugh! Aaaugh!
ARTHUR: What, `is'?
HEAD KNIGHT: No, not `is' -- we couldn't get vary far in life not saying `is'.
BEDEVERE: My liege, it's Sir Robin!
MINSTREL (singing): Packing it in and packing it up
And sneaking away and buggering up
And chickening out and pissing about
Yes, bravely he is throwing in the sponge
ARTHUR: Oh, Robin!
ROBIN: My liege! It's good to see you!
KNIGHTS: Aaaaugh!
HEAD KNIGHT: He said the word!
ARTHUR: Surely you've not given up your quest for the Holy Grail?
MINSTREL (singing): He is sneaking away and buggering up--
ROBIN: Shut up! No, no no-- far from it.
HEAD KNIGHT: He said the word again!
ROBIN: I was looking for it.
KNIGHTS: Aaaaugh!
ROBIN: Uh, here, here in this forest.
ARTHUR: No, it is far from--
KNIGHTS: Aaaaugh!
HEAD KNIGHT: Aaaaugh! Stop saying the word!
ARTHUR: Oh, stop it!
KNIGHTS: Aaaaugh!
HEAD KNIGHT: Oh! He said it again!
ARTHUR: Patsy!
HEAD KNIGHT: Aaugh! I said it! I said it! Ooh! I said it again!
KNIGHTS: Aaaaugh!
(cherry picked from commit 5a4b51a784)
Otherwise, when e.g. doing "<Meta+Up>": "gg" in bindings.key_mappings,
there's a crash like:
Traceback (most recent call last):
File "/usr/lib/python3.9/site-packages/qutebrowser/keyinput/eventfilter.py", line 105, in eventFilter
return handler(typing.cast(QKeyEvent, event))
File "/usr/lib/python3.9/site-packages/qutebrowser/keyinput/eventfilter.py", line 75, in _handle_key_event
return man.handle_event(event)
File "/usr/lib/python3.9/site-packages/qutebrowser/keyinput/modeman.py", line 462, in handle_event
return handler(cast(QKeyEvent, event))
File "/usr/lib/python3.9/site-packages/qutebrowser/keyinput/modeman.py", line 283, in _handle_keypress
match = parser.handle(event, dry_run=dry_run)
File "/usr/lib/python3.9/site-packages/qutebrowser/keyinput/modeparsers.py", line 105, in handle
match = super().handle(e, dry_run=dry_run)
File "/usr/lib/python3.9/site-packages/qutebrowser/keyinput/basekeyparser.py", line 309, in handle
result = self._match_key_mapping(result.sequence)
File "/usr/lib/python3.9/site-packages/qutebrowser/keyinput/basekeyparser.py", line 246, in _match_key_mapping
mapped = sequence.with_mappings(
File "/usr/lib/python3.9/site-packages/qutebrowser/keyinput/keyutils.py", line 675, in with_mappings
assert len(new_seq) == 1
AssertionError
While this isn't the intended way to use this setting, we shouldn't
crash - and let's just make it work instead of forbidding it.
(cherry picked from commit 5b6d2c60b4)
Otherwise, if there's a fatal error message shown during init, we try to
open something via IPC before we're fully initialized. This can e.g.
lead to a KeyError for qtnetwork-download-manager:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/qutebrowser/app.py", line 120, in <lambda>
process_pos_args(args, cwd=cwd, via_ipc=True,
File "/usr/lib/python3/dist-packages/qutebrowser/app.py", line 230, in process_pos_args
win_id = mainwindow.get_window(via_ipc, force_window=True)
File "/usr/lib/python3/dist-packages/qutebrowser/mainwindow/mainwindow.py", line 89, in get_window
window = MainWindow(private=None)
File "/usr/lib/python3/dist-packages/qutebrowser/mainwindow/mainwindow.py", line 220, in __init__
self._init_downloadmanager()
File "/usr/lib/python3/dist-packages/qutebrowser/mainwindow/mainwindow.py", line 350, in _init_downloadmanager
qtnetwork_download_manager = objreg.get('qtnetwork-download-manager')
File "/usr/lib/python3/dist-packages/qutebrowser/utils/objreg.py", line 249, in get
return reg[name]
File "/usr/lib/python3.8/collections/__init__.py", line 1010, in __getitem__
raise KeyError(key)
KeyError: 'qtnetwork-download-manager'
(cherry picked from commit 6c0d8d59647b39ecf3292b125991522d3502db65)
For some reason, a recent change on GitHub's runners seems to explicitly
set XDG_CONFIG_HOME. That breaks our tests, however, because we can't
simply override HOME to control where the directories are created.
Thus, make sure that XDG_*_HOME is always unset.
(cherry picked from commit 23810876e4)