 Hello, first of all, I get to say that I will be talking mostly about, okay, so first of all, I need to tell that I'm going to talk about command lines tools only. So who of you is using command lines mostly? Please raise your hands. Okay, most of you. And who prefers graphic interface? Okay, just a few of you. Let's go. So I want to present you a few tools. First one is being called T-Max. Who of you uses T-Max already? Okay, half of you. Let's go. So T-Max is a kind of replacement for screen. Screen allows you to leave your session open, to detach from it, attach later. But the reason why I'm showing you T-Max is because it is still actively developed. It has much better memory management. You can even use T-Max for per programming. When you try to attach to same session from different hosts, you can see the same thing even if you're not sitting next to another person. So there will be live demo in a few seconds. But the next thing I want to show you is Z-Show. Who of you knows and uses Z-Show? Okay, so one fourth, I guess. So Z-Show is really, really cool alternative for bash or replacement for bash. Everything I will show you, most of the things I will show you are possible in bash, but it's too much work to script it, to prepare everything. And for Z-Show, there are many tools like Omys-Z-Show, which is a set of prepared configuration that you can use and have many awesome features after the box. Okay, so let's start by showing you the tools. You can see it, but not in fullscreen. You should be able to see what I'm typing, so there's no magic involved. What you can see is a basic Z-Show terminal right now. So let's start by showing you some of its features, like auto-complete. So I'm typing something like this, and when I hit tab, it auto-completes to full path, using just the letters I inserted. If the path could be extended into one unique path, then it uses that. If there are many possibilities, it will ask you to complete the path. So I'm here at a place like this, a demo application, production branch, let's say, and configuration directory. So let's say I want to change folder without going back and going down again. So I could do something like this. And bam, I'm in different directory, but same folder beneath. So what it did, it just changed the plot part of the path into the dev, and that's how I got to this place. Yeah, another thing regarding moving around in directories is that instead of doing this, you could do just this. Or if you want to go back deeper, one more dot. Simple, but quite useful. What else? Zisho has a lot of plugins. That's a GitHub repository with plugins. There's some plugin for PIP, for Python, for PyLand, AutoPep 8. Yeah, there's a lot of cool features here. OK. Yeah, so Zisho has kind of autocomplete with navigation. Let me show you. So I want to go to demo, but I'm not sure what's after demo, right? So it suggests two options for me. And when I hit tab again, I can navigate the options, choose one of them, and then just go there. It's quite useful when you have long names or similar names, and you don't want to type everything on keyboard. Just navigate, choose the proper option, and go follow from there. Now you can see my keys. Sorry. What else? There's also this nice tool called AutoJump. Yeah, you can Google it. Basically what it does, it remembers the paths that you visited. So you can go there faster just by typing a few letters. So I want to go to the dictionary called EconomicPy. So I just typed some part of the folder name or the file name. It works with VI as well and other things. And it just autocompletes to this path because it's one of the most common data used. And here's another feature of Zisho. It has a Git plugin that shows you are in a Git directory and what kind of branch you are using. And what's more, whenever there's some changes in your branch, uncommitted or unstashed, it can show you that there is something you should see. You should check it. Yeah, so more or less that's it for now for Zisho. The other tool is TMAX. So this TMAX session is a bit preconfigured. That's where you can see different colors than by default and some dates, hostname, and so on. What you can see is that in status bar at the bottom, there's a window name and panel name. So let's change the panel name. Oh, that's the window name, sorry. So we changed the whole TMAX session name, just one window name. Same as in screen, you can create additional windows. The default screenshot is control B, I guess, but I remapped it to dash so it's faster for me. So you can create as many windows as you want, navigate them using next previous, using index of the window. You can split the window horizontally, split it vertically. And you can have different things in different window. Maybe not that useful when the fold is so big, but yeah. And what I said at the beginning is that you can detach from TMAX, do something else, and then TMAX attaches to default session. You can have multiple sessions, and then you need to provide session name to attach to a specific session. What else? Let's try attaching to the same session in another window. Yeah, you can see it works. I have two windows here with same session attached. And you can see that if I change something in one of the windows, it automatically synchronizes with another one. So that's some kind of way to do programming in console when you're working remotely with somebody. I said that there's this set of configuration and plugins called omysissure, but there's also a thing called presto or antigen. Basically, it's quite similar project. Created by somebody else who thought that omysissure isn't so clean, isn't so well kept, and should be rewritten. More or less, it gives you the same features, same things. It's maybe definitely up to you whatever you want to use. Some people claim that presto or antigen are faster because they are less bloated. Yeah, and another alternative to Bash and Zisho as well is shell called fish. I don't use it personally, but it has quite similar features to Zisho. It's pre-configured out of the box. It differs in a way that it can be configured using just web browser. So you use GUI interface to configure your command line shell. That's quite funny, but some people prefer that to regular shell. Yeah, there's a bunch of other useful stuff regarding to T-marks. Like you want to kill some app. It also can suggest what you want to kill. So it can choose from nice list of running processes instead of just selecting process ID from the list. So it's a few seconds, but still it's quite useful. Regarding T-marks, there are some tools like T-Maxinator, T-Mosul, or T-Maxombatic. And all of them allows you to save your T-Max session and start it from scratch whenever you restart your laptop. So let me show you that. You just call it T-Maxinator, create. Nope, new. You're pregnant. At the beginning, you are given the configuration file where you have to prepare your configuration of T-Max, panes, windows, and so on. Here you specify layout of the screen, what you want to have running in every given part of the panel. Yeah, so let's save it. OK, do have any queue? And OK. So I'm still trying to learn Vim, as you can see. So there's another comment, T-Maxinator. It's just start your Python. And it starts with, you didn't save the configuration, I see. Try again. Yeah, there it is. As you can see, it divided the screen into three parts. Left one with Vim, right one with Guard, which I don't have installed, unfortunately, and the lower one. Actually, that's another nice feature of this show, that whenever you want to run some application that doesn't exist, it tries to autocorrect you. So there's no such thing as Vim. So maybe you meant Vim. And you can say that no, yes, always. And something that means never, I guess. So yeah. So I came up with the source because in the last few months, I was working a lot, really a lot with command line instead of graphic tools, because command line always gives you full power. Graphic interface is really often limited to some few options only. OK, so we had the demo. And there's also one last thing I want to show you. The slides should be online, so you will be able to find all those links later and read all the resources. Last thing I wanted to show you is dot files. Who knows what dot files are? Quite a few people. So basically, dot files are all the files in Unix system, Linux, Mac OS, that start with dot. Like dot, tmax, conf, dot, bash, RC, and so on. And all those files store your configuration, your preferences for applications, things like that. And every time you install your system, start using new laptop, or get an account and a new server, you want to set up everything to match your preferences. Instead of doing that manually, you can keep those files in GitHub repository, on GitHub, GitHub, whenever you want. And the idea is to start up new environment from scratch to the point where you feel familiar, like at home, so you know everything is working the way you expect to. All the packages are installed, and you don't need to care whether it's there or not. There's a lot of repositories on GitHub, and that's super useful place where you can learn about, for example, VM configuration, or tmax options available. Manual isn't always the best thing, but you can learn a lot from those repositories. Yeah. So what I do basically is I have some just simple script that copies all the configuration files in place. Another approach would be to keep dot files directly in GitHub repository, but it could be tricky because you have to be careful not to store things like SSH keys, passwords, and so on. There are a lot of resources you can read about it. And as we don't have much time, I guess it's all I wanted to say. Thank you. Thank you. Yeah. OK, thank you so much. First question. Thank you for your talk. I would like to ask you about ZShell. In the beginning, you showed that if you type only the first part of a path with the letters slash, and it is unique, it will be automatically expanded. Yeah. Great. You can also configure the prompt in ZShell that it shows just the parts of the path. Do you or anyone else in this room know how to tell him in the prompt to show the unique path to your current directory that is shortened to the minimum possible number of letters that can identify uniquely the whole path? You mean you want to see only first letters of the path? I want to see if there is only one directory that starts with an A, I want to see just the A. If there is one AAX and ABX, I want to see AA or AB, which would allow me to copy and paste these paths and then just press Tab and get the whole path automatically. Does anybody know because this is something that I am talking to you about it since 30 seconds, but it's something that I was not able to formulate correctly in Google to find an answer to that. Thank you. Well, as I showed, there are a lot of plugins for ZShell. Maybe one of them does the thing you're asking about. Not sure. Sorry. OK. Thank you. Do we have a question over there? Yeah, that's right. I forgot to show you about history. So history was like this. You type some command, and then using arrows up and down, you navigate history for that command. OK, thank you. Any more question over there and second over there? Hi. Did you try playing with XonShell? So Shell written in Python and where you can write in Python? Yeah, I saw it last year on Lightning Talk at EuroPython. I tried to play a bit with it. I can't remember really what was the reason that I switched to ZShell instead. Well, maybe a lot had changed during last year and maybe it's worth trying it out again. OK, thank you. We have time for one or two quick questions. As you were showing us that the indicator that the repo has changed, you had this like small Unicode X. Do you have a terminal that supports Unicode? And what is the version of the terminal? Because mine doesn't have that. I'm not really sure, but it could be just a matter of the font used in the terminal. There's a bunch of different teams for ZShell. Each of them might use different font, might require different font to show all the things, like arrows, tenders, hearts, and so on. There's a lot of touches from. OK. One last question. Someone? Ah, OK. Yeah. At the start of the command, I then toggled through previous commands, which started with the same. But there was more thing about reverse search in Bash where you type a little bit of any part of the command and maybe unconfused. Yeah, it works basically the same as in Bash. So, commander, and you try to search. One final thing. The thing with the git, and then if you have a dirty working directory that has a little X, is that like with some git plugin or is it? Yeah, that's a git plugin for ZShell. OK, thank you so much. Once again, thanks.