I am still in the process of ironing out how I want my control scheme, but when
looking for a web browser to run in Gaming Mode on my Steam Deck that worked
well (Firefox was being funky when run in Gaming Mode/Big Picture) I
experimented a little bit with Qutebrowser.
https://qutebrowser.org/doc/quickstart.html
[https://qutebrowser.org/doc/quickstart.html] Edit figured out how to share
steam controller profiles, it is under the gear icon -> layout details, here is
my draft vim/qutebrowser profile, try it out and let me know what you think!
steam://controllerconfig/2919876185/3227309282 Qutebrowser is downloadable from
the Discover package manager in Desktop Mode on the Steam Deck (then find
Qutebrowser in start menu ->right click add to steam). Qutebrowser is designed
for a linux window manager like I3 where you don’t really use a mouse much,
everything in Qutebrowser is meant to be navigated with keyboard commands, no
mouse required in the style of Vim keyboard commands. lt also prioritizes using
screen real estate efficiently which is a boon for the Steam Deck. Like Vim,
Qutebrowser has modes, an input mode (entered by pressing the i key) where you
can enter text normally and a navigation mode (entered by pressing escape) that
you use the keyboard letters to navigate and input web browser commands. In my
control scheme you simply press the menu button to toggle between input and
navigation modes. While this might initially seem like the last software on the
planet you would want to try to adapt to using with the Steam Deck’s onboard
controls, the wisdom of Vim-style keybindings mean that almost every important
function in the software is kept to the letters on the main keyboard, i.e. a-z.
We can build a nice control scheme with the idea of mapping all the web browser
controls to the steam deck while simultaneously mapping letters a-z to the steam
deck… 1. The hjkl keys as up/down left/right navigation in vim naturally map to
the left joystick, holding shift (long press R1 bumper) and hitting these keys
navigates to previous page/next page/tab to the left/tab to the right 2. the
entire top row of letters on the keyboard can be assigned to a touch menu on the
left trackpad and the entire third row of letters can be assigned to a touch
menu on the right trackpad. 3. The shift key can be mapped to long pressing the
R1 bumper. 4. That leaves 5 letters remaining, put f aside and map a s d g to
the back buttons of the steam deck. Backspace maps naturally to the x facebutton
on the steam deck, the a facebutton to Enter and the b facebutton to Spacebar.
5. Finally, the last letter f can be mapped to the y facebutton on the Steam
Deck. In qutebrowser f is an important key as it prompts what are called hints.
When you press f you see something like this…
[https://sopuli.xyz/pictrs/image/d2e9017f-2427-49a0-ba4b-e4c4253b160e.webp] If
you input a sequence of keys shown, Qutebrowser will navigate the cursor to that
spot and left click. The really nice accident of this Steam Deck control scheme
is that Qutebrowser by default only uses letters that are mapped to physical
buttons on the Steam Deck (hjkl asdf and g) in this Steam Controller
configuration. With f bound to the y facebutton on the Steam Deck, it is natural
to bind a similar command / that allows to search on the page (bound to long
pressing the y facebutton). Clicking the leftstick inputs o which opens up the
prompt to navigate to a url, clicking the right stick inputs : which is used to
access Qutebrowsers advanced commands and settings. The thing about running
Qutebrowser in Gaming Mode is that you can use a separate control scheme in
Steam designed exclusively for using Qutebrowser. Obviously, inputting bulk text
with the touchscreen keyboard is going to be faster, but I think this control
configuration is worth exploring since the modal nature of Vim style keyboard
commands reduces the amount of necessary keybindings to fully utilize and
navigate a web browser by a huge amount. The left joystick being a good fit for
hjkl is the icing on the cake!
I was looking for a good generalist set of keybindings for my Steam Deck’s onboard controls that bound all the letter keys and also the necessary commands to navigate web pages and manipulate files. There isn’t any obvious layout to bind all the gamepad buttons, joysticks and touchpads to letter keys and keyboard commands/command chords, and further it feels like whatever solution you came up with would be impossible to memorize anyways.
Kind of a silly endeavor perhaps, but… touchscreen keyboards take up wayyyyy too much screen real estate on the Steam Deck, and further the pop up software keyboard sometimes doesn’t behave right with software that isn’t expecting a pop up touchscreen keyboard (i.e., not like a mobile app designed to handle one).
Then I randomly thought about Qutebrowser and vim keybindings… and I had an evil idea…
I want to try using this with neovim as well, and I thought y’all might get a kick out of it lol!
edit errr, oooff I don’t know how to get lemmy not to dump the text from my linked post completely unformated into this post
Qutebrowser is bad ass. I don’t know how I lived without it before.
Check out some of my qutebrowser userscripts, which aren’t the same thing as greasemonkey scripts, my info is in my profile you should be able to find them.
I particularly love and couldn’t live without tab-manager, it’s like onetab in Firefox or chrome, I can have unlimited sets of bookmarks, collapse everything down to one tab for each project I have going, it’s one of my favorite pieces of software which makes me very happy with myself that I’m the one that built it. Looking through a bunch of userscripts that people made, I don’t think there’s a single one out there that comprehensively transforms the way you’d use qutebrowser the way that one does. I’m pretty sure The-Compiler uses it, he told me it inspired him to change the way sessions are managed in a future release.
That sounds awesome! Now you just need to allow those tabs to be arranged into trees, then allow plain text comments to be interspersed throughout the tree and then allow lisp expressions to be evaluated on the entire environment of the web browser and then…….
You sound like you’d like Nyxt browser. Maybe check that out too, I’ve considered moving to it but I’d have to rewrite all of my userscripts in lisp instead of python and I don’t want to do that.
Yeah I used to be intimidated by the tiling no mouse thing. Then I took the dive, once I got the hang of it I can’t go back. Operating my system with one finger is just too tedious. With keyboard oriented and tiling it feels like operating my system with my mind via telepathy. I ran labwc for about 5 minutes before I logged out and went back to my sway environment.
Since I have an 28" 4K screen at home, I just prefer dragging windows around with the mouse. My laptop is a tiny, portable, 13 inch device with 1920x1080 pixels resolution so having a tiling WM there makes absolute sense. Since I use the laptop as literal laptop sometimes while on train, etc. not using the mouse to handle windows makes absolute sense to me.
I ran labwc for about 5 minutes before I logged out and went back to my sway environment.
I had the same first experience with it because it was/is mainly “advertised” as Openbox but for Wayland, and that you can reuse your Openbox configuration. Both is not correct. It is modeled after the box-look and supports some of Openbox’s features, but a lot of things are missing. You also cannot re-use most of your configuration without any changes.
A few weeks ago I took a deep breath and spent the weekend building a configuration from scratch. Now it works very well and is almost as usable as Openbox. The two “real” downsides I have are menu icons, which are category C (not in scope, so this won’t likely ever be implemented) and pipemenus, both are things that make up 95% of my Openbox menu setup. For icons I now use emojis and other Unicode characters and pipemenus well come with the next release.
Qutebrowser is bad ass. I don’t know how I lived without it before.
Check out some of my qutebrowser userscripts, which aren’t the same thing as greasemonkey scripts, my info is in my profile you should be able to find them.
I am gonna have to check those out!
I particularly love and couldn’t live without tab-manager, it’s like onetab in Firefox or chrome, I can have unlimited sets of bookmarks, collapse everything down to one tab for each project I have going, it’s one of my favorite pieces of software which makes me very happy with myself that I’m the one that built it. Looking through a bunch of userscripts that people made, I don’t think there’s a single one out there that comprehensively transforms the way you’d use qutebrowser the way that one does. I’m pretty sure The-Compiler uses it, he told me it inspired him to change the way sessions are managed in a future release.
That sounds awesome! Now you just need to allow those tabs to be arranged into trees, then allow plain text comments to be interspersed throughout the tree and then allow lisp expressions to be evaluated on the entire environment of the web browser and then…….
…sorry I have an org mode problem
You sound like you’d like Nyxt browser. Maybe check that out too, I’ve considered moving to it but I’d have to rewrite all of my userscripts in lisp instead of python and I don’t want to do that.
It’s great on my Laptop where I use Hyprland and basically no mouse. Here on My desktop with labwc I prefer using my mouse and Firefox.
Yeah I used to be intimidated by the tiling no mouse thing. Then I took the dive, once I got the hang of it I can’t go back. Operating my system with one finger is just too tedious. With keyboard oriented and tiling it feels like operating my system with my mind via telepathy. I ran labwc for about 5 minutes before I logged out and went back to my sway environment.
Since I have an 28" 4K screen at home, I just prefer dragging windows around with the mouse. My laptop is a tiny, portable, 13 inch device with 1920x1080 pixels resolution so having a tiling WM there makes absolute sense. Since I use the laptop as literal laptop sometimes while on train, etc. not using the mouse to handle windows makes absolute sense to me.
I had the same first experience with it because it was/is mainly “advertised” as Openbox but for Wayland, and that you can reuse your Openbox configuration. Both is not correct. It is modeled after the box-look and supports some of Openbox’s features, but a lot of things are missing. You also cannot re-use most of your configuration without any changes.
A few weeks ago I took a deep breath and spent the weekend building a configuration from scratch. Now it works very well and is almost as usable as Openbox. The two “real” downsides I have are menu icons, which are category C (not in scope, so this won’t likely ever be implemented) and pipemenus, both are things that make up 95% of my Openbox menu setup. For icons I now use emojis and other Unicode characters and pipemenus well come with the next release.