python Terminal multitool
- 41 Devlogs
- 86 Total hours
a python module, to make using ansi easier, and make it easeir to have terminal gui.
a python module, to make using ansi easier, and make it easeir to have terminal gui.
[this will be a longer devlog]. So what are these 2 things, and what do they have to do with stylized docs, glad you asked. After designing a stylized help func, I made a main menu / repl that shows you the names of all the functions and you can type the name to see its stylized doc card. The first img shows all of the names of the functions in my module currently, the second shows all of the helper funcs / commands in the repl. (not all are implemented, but most are). The main features I like are that it’s stateful with a back command, and the .run command which lets you run the example code right there. I uploaded a long form video to my YT channel if you want to see it in action: https://youtu.be/niP3qDd2KkY
made the border a gradient, which honestly, just looks really good. Now going to work on the menu.
Hello, been a while, but I’m finally happy with it, so some context: python has these things called doc-strings which are basically special comments in a function that explain what the function does and how to use it, you can see this with the help() function. I wanted to make my own version, but stylized, and i succeeded, and mine is pretty dynamic. How it works: it uses a list of headers to make sections and then styles them based on indentation. (also shows color palate in bottom right). Planning on making some sort of menu to easily read these.
started to mess with fonts and sadly a lot of fonts don’t support “\n”, but this one does, and i used wrap to apply the 4 color gradient to it, planning on working on adding the random text, and maybe another loading throbber of sorts. (python)
added a wrap func that is used to dynamically apply colors to strings, allowing you to easily print text that’s color is a gradient. (python)
I haven’t really documented this on star dance, but you can use ascii (or any color type or set of symbols, or even just data) in the gradients instead of rgb…
made a multi positional interpolated gradient in python, simply put, a gradient where you can have any amount of colors and you can pick their position.
a terminal 4 color gradient that uses bilinear interpolation and ANSI. Also made a 1d gradient tool, and both can be used for data gradients. (python)
donut i made that uses ANSI instead of Ascii to render. (python)
I think i speak computer now… reading terminal chars and converting to rgb, was easy….
was organizing my code and starting to add documentation, but got sidetracked and made this cool loading bar. Also im looking into adding ideas from https://charm.land/ but in python. (python)
21 demos completed, (defiantly not enough), added better char reading and the abilityto read words on the terminal, for better input options. (python)
finished up the clock then made a rhythm game. Planning on adding more features too it soon.
clock works a lot better now, actually rotates properly, and hour is smoother.
been a while since my last devlog, recently made a cool clock, based on realtime.
got some plans, and started to go deep into the rabbit hole…
yay!, 40+ dependencies.
created a screen mirror demo that i used to create a video for stardance socials: https://www.youtube.com/shorts/hIqH1Aea_eg and a basic windows spotlight img fetcher to have more imgs to showcase working in terminal, and started working on a quiz generator that could be used for better terminal install wizards, cool quizzes, or settings menus.
added a video renderer, sadly text is pretty illegable on it, but it’s rendering them in the terminal so. Also has ability to pause videos as shown in the video with “ “, and even unpause, the video was downloaded with a another tool in this multitool im making. The video rendering uses sixel. (python)
got a .gif to load and run in the terminal (python), using sixtel.
my dogo printed out with python, using sixtel.
started to work on the dynamic window system more. But is verry much a wip, for the foreseeable future, but kinda works well enough to be functional for now.
not much, just added loading text, so that when you load up the app, it doesn’t just freeze while figuring out what types your disks are. Also made it check for new disks every 10s.
added this box, which grabs your memory stats, and disk stats, and is compatible with all themes.
It’s starting to come together, and look really good, the top is a CPU usage visualizer, with a core by core view. Time in top center, and the bottom, is a cava-like audio visualizer (has it’s own demo too). Planning on adding coloring to the audio visualizer next, followed by more util functions. (python)
added the ability to switch themes with k, l and favorite themes with j, and also added a way to play music and download music through yt-dlp. (python)
here’s the nord theme in use, i “borrowed” some themes from btop’s repo, and have configured my current code to use the colors dynamically.
Made a cool theme selector / preview, that allows you to view .theme files in the terminal, with arrow key navigation. left and right to switch the theme your viewing, up to favorite, and down to quit. I also made a custom debug theme for better contrast.
spent roughly 3 hours, making the CPU graph, might make it a gradient, or just move on to one of the other boxes. (python)
created the first square / section in my btop clone demo, gets info using winreg and psutil. (python)
I’ve been working on a custom box drawer, that works by giving it a list of corners and the length between them (sides) to draw a box with Unicode chars. Along with a couple of functions to get data from your pc, and a btop4win clone, (img) currently just have the outline and top bar, though.
added another demo: were you can move your cursor with arrow keys, or just click where you want to type to start typing at that location, and if you middle click it will erase. It also uses the ‘esc’ key to exit. (python)
created a random based themed draw.
added a canvas class with some drawing tools, like line, rect, circle.
created a flipper zero cli.
Finally, was able to add controller inputs, and handling for multiple inputs simultaniously, the img below shows me using both the left stick and right stick of a controller at the same time. Only using python, and the inputs module.
added yet another demo, that allows you to place a constantly updating clock (as shown below) anywhere in your terminal window with python alone.
made yet another demo, LC is left click, RC is right click, SU is scroll up, SD is scroll down, MC is middle click.
just finished making another demo, how it works is you click on the x’s to increase your score and you can type “q” to quit and see stats. Had a lot of trouble making sure everything was cross terminal.
added all core utility functions, plan on creating more demos, and useful functions next.
created 2 demo func’s to show colors, and created a cursor class, that can control the cursor