Regarding default keyboard shortcuts: all the keys that use super also have a CTRL-SHIFT version. The Super versions of the keys are primarily for macOS.
As a non-english/non-american programmer, I actually started using this just for the capabilities of the keymap config. Im using a Swedish keyboard, and it's so nice to be able to remap our special characters åäö to [{' and so on while in the terminal/neovim and then be able to use åäö while communicating in chats. This is a game changer for me, as simple as it is. Also the documentation is phenomenal!
Wezterm has a great community. What I've seen they develop that app quite intensively, so sometimes something breaks after update. Terminal is powerful like the kitty, but I think it's easier to tweak. Today I've found that it can record a terminal session as an asciicast.
return tells the lua interpreter that there's a table here (lua is all about tables). local is just a variable declaration. In the config documentation it's basically felling the wezterm interpreter that it's the wezterm config file and that it needs... Itself. Also I agree with you on the super key thing. An application should not mess with that.
WezTerm is so so so good. Fully cross plat and lua support? It’s the perfect pair for neovim users. And it’s great that I can be on windows mac or Linux and feel at home. Also, I really hope lua clicks for you sometime, it’s great once u get the hang of it
i love how matt always has issues with lua, as someone who's never touched code or looked at configs until i messed with linux, and followed DT and such but for me lua is easier to understand the c or python and i love the awesomeWM
@TheLinuxCast. Great video as usual Matt. I like the fact that you check out all these different programs,.. If you like it, I usually try it,. If not, I skip it. So I guess what I'm saying here is "Thanks for being a filter for me." Lol Keep up the stellar work man. Enjoyed it. BTW, I'm also team SUPER KEY.
some systems have something in their terminfo and/or readline configuration that causes CTRL-L to also emit an escape sequence that nukes the scrollback. I think that's what's happening in this video. Even so: using CTRL-L will clear the visible portion of the screen at least, so you won't be able to search for that content either.
@@TheLinuxCast I just tried to `^l` on up to date Ubuntu 22.04.2 in `rxvt-unicode` with `zsh` and `tmux` - it doesn't remove scrollback. Without `tmux`, though, it does.
dude!! idk how i missed this or i didn't realize a thing about it. but i just found this term from a random video then went to search and found yours. i've always used alacritty cause of DT and you but i just learned wezterm uses lua so im trying it out and might just switch to it. to me it sounds like a better version of kitty "its in lua" same as neovim and awesomewm "the best wm" lol
Great review, thank you. I don't know lua either but I think the docs are very good, which makes configuration pretty straightforward. Agree with having to remap all the SUPER keys is annoying (because I am using ubuntu and it grabs everything SUPER...)
Thanks for the video, I installed Alacritty, Kitty, and Wezterm I uninstalled Alacritty because it would zoom in really learge automatically and i didn't wanna deal with fixing that I was leaning Wezterm because of its default tabbing deal, however, i returned to watch the rest of your video and i realized that configuring it too look and feel how i want it to will be beyond me for now It looks like a great terminal, i really want to use it, maybe one day i can spend time figuring out how to configure it I guess kitty won me then, Not the first 'cat' related software that 'won me over' lol i also use 'Neko X' from the f-droid repo
One important feature is that wezterm uses a client-server architecture, which saves some memory as well of startup time when opening more terminals. BTW Alacritty has scrollback search which in my opinion is better and that's the reason I'm still using Alacritty as my terminal of choice.
That's not what he meant. It's "traditional" on Linux to have a config file that actually includes all the default values, it's usually in `/etc`. Then each user can copy the part they're interested in overloading into their respective `~/.config`. In case of WezTerm you have to relay on documentation which isn't always up to date, or read the source code which isn't always clear, to understand which key of the config changes what behaviour and what are the values it can receive. In case of LUA configs, though, it's more common to see definition files for one or more popular IDEs (like VSC) that provide "intellisense-like autocompletion" because it usually means the app originated from a webdev community (which in majority consists of people proficient in some flavour of JavaScript, which in turn usually means majority of them is using VSC) . Someone who isn't a web developer or didn't learn enough coding to require an IDE won't even know what intellisense means.
You know that thing where if you forget to pause at the end of every sentence while you're speaking the other person dies? Lua has captured that perfectly.
Tbf There not being an example is not a big deal and the return is reqd because these are basically like a config functions. I'm not super well versed in lua but for me it took an hour to write my own config from scratch (if you go through the docs there are code snippet examples that u can copy paste directly ) Tip: configure hot reloading first Also you can change the meta key to whatever u want pretty easily
Wanted to give Wezterm a chance but was defeated in a basic usecase for me: I have 100+ SSH servers, grouped and tagged. With iTerm I can press Cmd+O, type a few characters to search across the list and then just hit Enter to open. Any similar functionality in WT?
ok im gonna say not sure if its the terminal or my PC but wezterm to me is awesome. the colors are actually better looking then alacritty. my only complaint is that im not sure i haven't found how to fix it, its using the right shell. but starship prompt doesn't show. yet works fine in alacritty. so i don't know why. but otherwise i've figured out a decent simple config for myself. for it and its pretty good.
In git bash for windows you have to give clear an extra argument for it to keep the scrollback, maybe it is something similar for the clear function you use.
There is an open bug currently that after the mouse cursor hides, it does not come back when you move the mouse in some systems in Wayland. This is the reason I am not using it currently.
Just tried out this terminal and it appears to have a bunch of good features and they are mostly lacking sane defaults and documentation. I like the image background feature, but it stretches the image by default making it useless and I have no idea how to change this. They show off a parallax background as a demo, but no apparent way to have a scrolling image background.
I'll wait until wezterm can move the tabs to the top panel where the maximize, minimize and close buttons lie as windows terminal does. Or is there a configuration for that already?
@@JhonatasRosendo Thank you. It works: the tabs are at the bottom (still ok for me), the maximize/minimize/close buttons disappear (still ok for me). Now I need to read to see how to add a tab for wsl there.
@@avalagum7957 I'm still exploring the config myself. If you want the tabs to be at the top of the window, set config.tab_bar_at_bottom to false. To open directly into wsl I use this config.default_domain = "WSL:Arch" config.default_prog = { "wsl.exe" } Where the default domain is WSL: plus your wsl instance name.
If you know LUA config isn't an issue: 1. WezTerm config is LUA script that has to return a set of key+value pairs, i.e. what's called "an object" - empty object is `{}` 2. `local w = require('wezterm')` isn't necessary but then in the object's scope you have to use `require('wezterm').font('fontname')` instead of `w.font('fontname')`
There is an option to disable all default key binds, but then you have to go though and set each one back up. I had to disable the super key key binds also, I use the Super key only for the System.
Agreed that they shouldn't have used the "super" ... screw that, I'll call it windows key, they added it after all (I think). The idea of the windows key is for ... window management. That is, it should be for desktop OS management things, at the OS level, not specific application level. And at the application level, for univerally available things, like maximize, minimize, go left, go right, go up, go down (like moving the window from the left-most monitor to the right-most monitor, similarly with up/top and down/bottom). For application specific things you have Ctrl and Alt. Edit: forgot to give an example what OS management things at OS level mean: windows+F - open file manager. windows+R - rofi/dmenu. Things like that. I guess you can even do things like windows+Ctrl+S for shutdown (adding the Ctrl so it's not easy to do by mistake). In any case, global hotkeys that the OS or WM or DE handle. Not a terminal.
originally the super key was on MIT/symbolics space cadet keyboard, and on the standard 105/104 keyboard layout introduced by ibm, it was removed entirely since it was only really necessary for x11 and emacs microsoft eventually released their own keyboard that had a "windows" key where the super key used to be on the space cadet, but free software documentation couldn't call it "windows" due to copyright issues, so they just called it super
@@redgt827 Oh, nice to know, thanks! Are you sure it can't be called windows ? I mean, the logo is copyrighted, but I don't think they key label can even be copyrighted to begin with. I believe it's just the idea of not using the "enemy" label. Especially when it existed before with a different name, it makes sense to keep using that.
Hay! I know I'm weird but I have no WINDOW/SUPER key Buck'O!🤣 My keyboard for the last 30 years says No, we ain't having it... Lol ALT Key for Ever Baby!!! 👍 LLAP 🖖
@@omega3fatass61 I know, Right... I have had these IBM M boards forever and I have had the newer one's with Matt's "Super" Super key, they just don't feel right for me. Remember, I started typing on a manual Typewriter in the mid 60's that were as big as a 1957 327 Chevy engine... 😆 LLAP 🖖
tried it, not bad but some basic thing aren't ok out-of-the-box. for example Alt + codes. Tried config.send_composed_key_when_left_alt_is_pressed = true but didn't works
I would like to use a linux distro that is all rust tooled, python stripped out so nothing on your base install relies on python. [edit] Redox Linux. rockin. You can qemu that. I'm getting Rusty.
I agree about a .config.example file. At least post their own somewhere to copy it. I learn Lua real quick. By just using a 2D gaming engine call Love. If you like to learn Lua a little better. Try out that Love 2D gaming engine.
Want more Linux content? Follow me on Mastodon where I toot about my favorite bird and yours, Tux. fosstodon.org/@thelinuxcast
Regarding default keyboard shortcuts: all the keys that use super also have a CTRL-SHIFT version. The Super versions of the keys are primarily for macOS.
please do youtube series of video tutorials regarding wezterm
You're doing it correctly, for someone who switches between linux and mac, this terminal is instantly my favorite ❤
@@nasang7478exactly
Thanks Wez, found my new favorite terminal today.
As a non-english/non-american programmer, I actually started using this just for the capabilities of the keymap config.
Im using a Swedish keyboard, and it's so nice to be able to remap our special characters åäö to [{' and so on while in the terminal/neovim and then be able to use åäö while communicating in chats. This is a game changer for me, as simple as it is.
Also the documentation is phenomenal!
Wezterm has a great community. What I've seen they develop that app quite intensively, so sometimes something breaks after update. Terminal is powerful like the kitty, but I think it's easier to tweak.
Today I've found that it can record a terminal session as an asciicast.
I'm using wezterm 2 years already. Super happy about it. You should test image preview also as it awesome.
return tells the lua interpreter that there's a table here (lua is all about tables).
local is just a variable declaration. In the config documentation it's basically felling the wezterm interpreter that it's the wezterm config file and that it needs... Itself.
Also I agree with you on the super key thing. An application should not mess with that.
Damn this guy has made 1k videos 🤯
Respect ur hard work
WezTerm is so so so good. Fully cross plat and lua support? It’s the perfect pair for neovim users. And it’s great that I can be on windows mac or Linux and feel at home.
Also, I really hope lua clicks for you sometime, it’s great once u get the hang of it
i love how matt always has issues with lua, as someone who's never touched code or looked at configs until i messed with linux, and followed DT and such but for me lua is easier to understand the c or python and i love the awesomeWM
@TheLinuxCast. Great video as usual Matt. I like the fact that you check out all these different programs,.. If you like it, I usually try it,. If not, I skip it. So I guess what I'm saying here is "Thanks for being a filter for me." Lol
Keep up the stellar work man. Enjoyed it.
BTW, I'm also team SUPER KEY.
I'm pretty sure that clear also deletes the scrollback. You can't search for what isn't there.
It doesn't do that on my other machines.
some systems have something in their terminfo and/or readline configuration that causes CTRL-L to also emit an escape sequence that nukes the scrollback. I think that's what's happening in this video. Even so: using CTRL-L will clear the visible portion of the screen at least, so you won't be able to search for that content either.
@@TheLinuxCast I just tried to `^l` on up to date Ubuntu 22.04.2 in `rxvt-unicode` with `zsh` and `tmux` - it doesn't remove scrollback. Without `tmux`, though, it does.
Awesome A new toy to paly around with thank you Matt Great video bro.
dude!! idk how i missed this or i didn't realize a thing about it. but i just found this term from a random video then went to search and found yours. i've always used alacritty cause of DT and you but i just learned wezterm uses lua so im trying it out and might just switch to it. to me it sounds like a better version of kitty "its in lua" same as neovim and awesomewm "the best wm" lol
Great review, thank you. I don't know lua either but I think the docs are very good, which makes configuration pretty straightforward.
Agree with having to remap all the SUPER keys is annoying (because I am using ubuntu and it grabs everything SUPER...)
Thanks for the video,
I installed Alacritty, Kitty, and Wezterm
I uninstalled Alacritty because it would zoom in really learge automatically and i didn't wanna deal with fixing that
I was leaning Wezterm because of its default tabbing deal, however, i returned to watch the rest of your video and i realized that configuring it too look and feel how i want it to will be beyond me for now
It looks like a great terminal, i really want to use it, maybe one day i can spend time figuring out how to configure it
I guess kitty won me then,
Not the first 'cat' related software that 'won me over' lol i also use 'Neko X' from the f-droid repo
Hey, great review, your thoughts and constructive comments. I agree with your thoughts on the default config and the SUPER key. ;/
One important feature is that wezterm uses a client-server architecture, which saves some memory as well of startup time when opening more terminals.
BTW Alacritty has scrollback search which in my opinion is better and that's the reason I'm still using Alacritty as my terminal of choice.
It's an anitfeature: I didn't find a way to disable it and the server freezes sometimes which kills all your terminal sessions.
It seems like the default configuration file is
```
return {}
```
It says right there on the page at 9:48
Thanks for the review Matt
That's not what he meant. It's "traditional" on Linux to have a config file that actually includes all the default values, it's usually in `/etc`. Then each user can copy the part they're interested in overloading into their respective `~/.config`. In case of WezTerm you have to relay on documentation which isn't always up to date, or read the source code which isn't always clear, to understand which key of the config changes what behaviour and what are the values it can receive.
In case of LUA configs, though, it's more common to see definition files for one or more popular IDEs (like VSC) that provide "intellisense-like autocompletion" because it usually means the app originated from a webdev community (which in majority consists of people proficient in some flavour of JavaScript, which in turn usually means majority of them is using VSC) . Someone who isn't a web developer or didn't learn enough coding to require an IDE won't even know what intellisense means.
I just found it, and frankly kind of awesome....LOTS of color schemes built in too. Also colored icons:)
You know that thing where if you forget to pause at the end of every sentence while you're speaking the other person dies? Lua has captured that perfectly.
Thanks for the video Matt, informative as always. I want to ask what are you using for the fancy clock and date on the desktop, it looks very cool.
Tbf
There not being an example is not a big deal and the return is reqd because these are basically like a config functions.
I'm not super well versed in lua but for me it took an hour to write my own config from scratch (if you go through the docs there are code snippet examples that u can copy paste directly )
Tip: configure hot reloading first
Also you can change the meta key to whatever u want pretty easily
Wanted to give Wezterm a chance but was defeated in a basic usecase for me: I have 100+ SSH servers, grouped and tagged. With iTerm I can press Cmd+O, type a few characters to search across the list and then just hit Enter to open. Any similar functionality in WT?
ok im gonna say not sure if its the terminal or my PC but wezterm to me is awesome. the colors are actually better looking then alacritty. my only complaint is that im not sure i haven't found how to fix it, its using the right shell. but starship prompt doesn't show. yet works fine in alacritty. so i don't know why. but otherwise i've figured out a decent simple config for myself. for it and its pretty good.
In git bash for windows you have to give clear an extra argument for it to keep the scrollback, maybe it is something similar for the clear function you use.
Found out the hard way that it simply wouldn't work on hyprland, just wouldn't launch at all.
A fair number of users have posted their config code in a few places; no problem if Wezterm installs with no default config file.
There is an open bug currently that after the mouse cursor hides, it does not come back when you move the mouse in some systems in Wayland. This is the reason I am not using it currently.
Just tried out this terminal and it appears to have a bunch of good features and they are mostly lacking sane defaults and documentation.
I like the image background feature, but it stretches the image by default making it useless and I have no idea how to change this.
They show off a parallax background as a demo, but no apparent way to have a scrolling image background.
redcore confirmed
Whoah, nearly 800 color schemes? Users will never want for a good look.
GVM.
Thanks for a new terminal.
```font_size = 11.0``` in configuration file does nothing at all for me on Linux (Lubuntu 23.04)
Alt key users unite!! Super is for sheep🤣
I'll wait until wezterm can move the tabs to the top panel where the maximize, minimize and close buttons lie as windows terminal does. Or is there a configuration for that already?
Try this
config.tab_bar_at_bottom = true
config.use_fancy_tab_bar = true
config.window_decorations = 'RESIZE'
@@JhonatasRosendo Thank you. It works: the tabs are at the bottom (still ok for me), the maximize/minimize/close buttons disappear (still ok for me). Now I need to read to see how to add a tab for wsl there.
@@avalagum7957 I'm still exploring the config myself.
If you want the tabs to be at the top of the window, set config.tab_bar_at_bottom to false.
To open directly into wsl I use this
config.default_domain = "WSL:Arch"
config.default_prog = { "wsl.exe" }
Where the default domain is WSL: plus your wsl instance name.
If you know LUA config isn't an issue:
1. WezTerm config is LUA script that has to return a set of key+value pairs, i.e. what's called "an object" - empty object is `{}`
2. `local w = require('wezterm')` isn't necessary but then in the object's scope you have to use `require('wezterm').font('fontname')` instead of `w.font('fontname')`
There is an option to disable all default key binds, but then you have to go though and set each one back up. I had to disable the super key key binds also, I use the Super key only for the System.
You can use a command to dump them all to a file which helps when reconfiguring; include them all and edit the ones you want.
@@rb.x thanks man, I was wondering about this. 👍
"they make me look like a nerd, which i *are* one"
indeed
What is the settings to be able able to quite without the prompt box say "sure to leave Y/Non"
Try this
config.window_close_confirmation = 'NeverPrompt'
Agreed that they shouldn't have used the "super" ... screw that, I'll call it windows key, they added it after all (I think).
The idea of the windows key is for ... window management. That is, it should be for desktop OS management things, at the OS level, not specific application level. And at the application level, for univerally available things, like maximize, minimize, go left, go right, go up, go down (like moving the window from the left-most monitor to the right-most monitor, similarly with up/top and down/bottom). For application specific things you have Ctrl and Alt.
Edit: forgot to give an example what OS management things at OS level mean: windows+F - open file manager. windows+R - rofi/dmenu. Things like that. I guess you can even do things like windows+Ctrl+S for shutdown (adding the Ctrl so it's not easy to do by mistake). In any case, global hotkeys that the OS or WM or DE handle. Not a terminal.
originally the super key was on MIT/symbolics space cadet keyboard, and on the standard 105/104 keyboard layout introduced by ibm, it was removed entirely since it was only really necessary for x11 and emacs
microsoft eventually released their own keyboard that had a "windows" key where the super key used to be on the space cadet, but free software documentation couldn't call it "windows" due to copyright issues, so they just called it super
@@redgt827 Oh, nice to know, thanks!
Are you sure it can't be called windows ? I mean, the logo is copyrighted, but I don't think they key label can even be copyrighted to begin with. I believe it's just the idea of not using the "enemy" label. Especially when it existed before with a different name, it makes sense to keep using that.
Hay! I know I'm weird but I have no WINDOW/SUPER key Buck'O!🤣
My keyboard for the last 30 years says No, we ain't having it... Lol
ALT Key for Ever Baby!!! 👍
LLAP 🖖
Weirdo.
(said lovingly, of course. lol)
@@TheLinuxCast Hahaha, Yes I know.
I could feel the love in the room...🤪
LLAP 🖖
old keyboards are the best I swear lmao
@@omega3fatass61 I know, Right...
I have had these IBM M boards forever and I have had the newer one's with Matt's "Super" Super key, they just don't feel right for me.
Remember, I started typing on a manual Typewriter in the mid 60's that were as big as a 1957 327 Chevy engine... 😆
LLAP 🖖
alt is not weiirrrd super key is only on the left side on most laptops
Zellij video
Hello Mr. MO NEY. Do you hold any Gold? 😊
change all key
tried it, not bad but some basic thing aren't ok out-of-the-box. for example Alt + codes. Tried config.send_composed_key_when_left_alt_is_pressed = true but didn't works
I would like to use a linux distro that is all rust tooled, python stripped out so nothing on your base install relies on python. [edit] Redox Linux. rockin. You can qemu that. I'm getting Rusty.
I agree about a .config.example file. At least post their own somewhere to copy it. I learn Lua real quick. By just using a 2D gaming engine call Love. If you like to learn Lua a little better. Try out that Love 2D gaming engine.