dharmik
@dharmik@linuxusers.in
60 following 21 followers
- mail at dharmiik [at] proton [dot] me
- i occasionally post in long-form at: https://dhrm1k.github.io
I’m a Windows user of all life. But I love Linux. And these last two years after so many time I started learning it in deep . But one thing is bugging me is that I am those persons that has bad times remembering names, words… imagine commands… Even after using it so much I remember some basics but I’m struggling a lot and I have to go back to notes constantly to do some basic operations. Even worst after trying multiple distro from from different upstreams that commands are … Different. What would be your recommendations to help me. Are there tools to help this issue ? My guess is that A LOT of people happens the same. And it’s one of the reasons Linux has such a slow adption . Because is excellent and full of capabilities.
Man is great to check quickly what something does. I use atuin as my shell history to make it a lot easier to search
You know atuin is legit because the demo gif on their site is using GruvBox, the most bestest color scheme.
How often do you need commands you cant remember? The ones i use are typically memorized via regular use, or i just look it up for the one off ones. You can use some distros without ever touching the terminal too if thats what you prefer.
Here is my personal approach to this.
I have set my bash history to a ridiculous 1000000 max length, so that I can use CTRL+R to search for commands that I have ran before
I write down a lot of commands in a searchable note text document
Ask chatGPT
Added some verbose custom aliases and scripts. For example instead of
inotifywait -m -r --exclude “(/tmp.*|/var/cache.*|/dev/pts/|/var/log.*)” -e MOVED_TO -e CREATE -e CLOSE_WRITE -e DELETE -e MODIFY .
(nobody can remember that alphabet gibberish)
I just type watch_this_dir_for_changes
Rather than a text file, using a command snippet manager likepet might be more convenient.
Idea 1:
Print out some of the various CLI cheat sheets and pin them to your wall by where you work on your computer.
Maybe print this one: pbs.twimg.com/media/GSRHsvRWIAAtBX0.jpg🌥
Then, print a with commands you commonly use, either with more complex syntax or that aren’t on the sheet. (Like, “ls” is on there, but “ls -s -h” is not, for example.
Idea 2:
Write bash scripts to automate some of your commonly used tasks. Comment them. Imagine someone else is going to have to use them, even if you’re the only one who’s ever going to look at them. Not only will this help you learn lots of commands and force you to describe what they do (which will help you retain the information), it will be there as a record of how it works that you can go back and look at months or years later, to remind yourself how to do something.
Yes, write automation. This will lead you to learning new commands that solve problems as you go. Debugging until they work correctly also helps make them more familiar. This is the best way to learn for sure. At least in my own experience, could be different for you, but I strongly suspect this’ll work well.
Fish
What does Fish that Bash does not, specifically to help the person remembering the program names and options??
It automatically suggests commands, you’ve run before, if you start typing the first letters, like so:
You can also press the Up-Arrow at any point to show other commands from your history which contain the text that you just typed.
So, it is similar to Ctrl+R in Bash, but easier to use and you don’t have to actively think about it.
Install Thefuck to help when you screw up commands.
There’s nothing wrong with notes. I keep a text file open permanently at work and home with all my notes in it. I have a bunch of commands in it to copy-paste. Or Ctrl+r and type to search the history.
But if you want to memorize, I usually use flash cards.
Around 2012-2014 it was common to have Conky print things like system information or keyboard shortcuts in the desktop.
I think Conky is still around although less popular now. You could look into that though.
This is just an example from an image search for Conky desktop, but it gives you an idea how information can be displayed live.staticflickr.com/…/4543953032_e6d7473206.jpg
If it’s basic commands, there’s games like Terminal Quest that can help gamify your learning. Helped me.
Hi,
I’m a Windows user of all life
I was a Mac user for 35+ years (still am, partly). It took me a little while to get used to new names/commands in Linux but that’s to be expected. And it is not much issue anymore ;)
I am those persons that has bad times remembering names, words… imagine commands… Even after using it so much I remember some basics but I’m struggling a lot and I have to go back to notes constantly to do some basic operations. Even worst after trying multiple distro from from different upstreams that commands are … Different
What kind of commands exactly? I mean, I don’t know that ‘commands’ are different from one distro to the other’ as they all use the same apps. So, beside the name of a few specific ones (like, maybe the app installer).
What would be your recommendations to help me. Are there tools to help this issue ?
My two sole advice:
How do I do? I keep a text files in which I store all the stuff I seldom use but still want to be able to find in case I need it someday. To make finding them easier, I put descriptive titles and comments with each command. And that’s what I’m searching for, not the command name ;)
Anything you have trouble remembering, or just find yourself doing often, create an alias (or bash script if it constitutes a multi line command). Name the alias something you can easily remember that also lets you know what that command does.
Then, and here’s he trick, don’t rely on the alias. Use it when you can’t remember, say “aww, damn it I had to use the alias again”, and then use which
followed by the alias name to see what the command was again. Do this over and over and eventually some commands will stick.
Ones that you don’t care about or are just super long, just keep using the alias and don’t worry about remembering them. Use aliases as both commands and notes.
My solutions are:
history | grep command you’re searching for
That will return all commands you’ve typed that contain that keyword. Helps if you remember part of a command, but can’t remember the specific flags or the proper format.
If there are common commands that you use over and over, turn them into a Bash script and name the script something descriptive.
I do that for long commands that I don’t want to type out, like my whole system update workflow: sudo apt update -y && sudo apt upgrade -y && sudo flatpak update -y
I saved that as a Bash script and called it “update.sh” then I saved it in my home directory. Now whenever I want to do a full system update, I just type ./update.sh and it asks me for my password, then updates my whole system without me having to do anything else. I do this with several different tasks like my remote Ansible server updates.
Other than that, you can buy/make a linux command cheat sheet with the most common commands. Keep it with you or next to your computer. Look at it whenever you need a refresh.
Keep a “cheat sheet” of common commands printed out nearby-- either something from the internet and/or a custom one for your own commands.
Also, nobody can remember all the commands. We mostly just remember the ones we use most often. Otherwise, we have to look things up! It’s not to bad since you know that the command exists and you just need to know the exact way to type it.
Find mnemonics to help remember certain things. For example if you want to decompress a .tar file, you remember “xtract zee file” or: tar -xzf
Apart from fzf that helps me find recently used commands and also files and directories easily, I also use tldr that gives you a simple cheat sheet for every command and very often saves you trawling through endless man pages.
I recommend to installed starship, fish and ZSH. I just tried them recently with config files from a friend and am pleasantly surprised:
I’m also not a text first person. There are a lot of us about. I have found GUI applications to do most commands I need. Most IT users don’t know them, as they’ve never searched for them. I pin the apps as Favourites in the launcher, to help remember my processes. The apps typically keep the last used values, making them quite productive.
you don’t need to remember anything, except commands you use the most often but even then it becomes muscle memory after a while. If you ever need some specific command to use, just look it up online.
Online
Ok but what if my Wi-Fi isn’t working
Then use the commands help or read the local man document. In example for grep it would be grep --help
and man grep
. You don’t need an online connection for this.
Containers become problematic, some don’t have man pages or other common commands installed. Debugging applications on them requires a wide knowledge of all sorts of primitive commands and workarounds to achieve common tasks. My biggest fear is a container without grep.
How do I remember what the command even is? Like how would I discover the grep tool without using the Internet?
Discovering tools is not what the question and solution presented here was. But for that question, I recommend downloading a book about Linux as a reference or something like that. Or a basic tutorial series to read and remember basics about Linux.
You can also just list the ls /usr/bin
directory to see what programs are there.
There is actually a command to search the man pages for terms, to list the commands: apropos
$ apropos -s 1 search apropos (1) - search the manual page names and descriptions find (1) - search for files in a directory hierarchy flatpak-search (1) - Search for applications and runtimes gamemodelist (1) - search for processes running with gamemode rg (1) - recursively search the current directory for lines matching a pattern zipgrep (1) - search files in a ZIP archive for lines matching a pattern
Note: I cut some parts out in the output to make it shorter. The option -s 1
means, it will list man pages from section 1 only.
Do you struggle to remember the names of commands or how to use them or how you have used them in the past?
Use GUIs for all the things.
Linux users are obsessed with the command line because it’s faster if you can remember everything. If you can’t, GUIs are actually much much faster because you are visually guided towards what you’re looking for.
This is so true.
I have been using Linux since the mid 90s. Exclusively since about 2005.
I am obviously getting old now. But my willingness to remember the structure of rarly used commands/options. Has always been limited. If its not something I do often. It generally involves looking up man pages. And more often then not a GUI is just faster.
GUI has improved hugly in the time I have been using Linux. To the point that now it really is quicker if I’m not already in the terminal.
But as soon as things get to the multiple command level. Or complex enough that looking up is needed anyway. Typeing is just faster. Being all in one window makes a huge difference. But also once things get to the need to look up point. Command lines are just easy and quick to share online etc. So it tends to be the easy way for forums etc to share guidelines etc.
For all GUI has improved. Text is still one of the easiest ways to share data. It allows things to be organised and jumped around from point to point.
I am teaching an ex GF to use a new Linux PC for the first time. (Put it together as a wedding gift)
I tend to tell her to switch between GUI and command line as best suits her. As long as you understand the goals of each step write or wrong is whatever seems easiest for the user.
But it is important t to become comfortable with the terminal. Because this is how others will share info. And she will need to be able to understand what they are telling her to do.
Online trolls still exist. So understanding things like
sudo rm -rf /
Is essential before typing it.
I made a text file using vim that contains all of the commands I use. I open it in a terminal window when I need a reference.
You could make aliases that are easier to remember for you.
If you e.g. had trouble remembering that mv
does a rename, you could alias rename=mv
. Ideally just put whatever you would have googled in “linux command to x” as the alias.
That’s the power of Linux; you can tweak everything to your preferences and needs.
Use ctrl-r a lot (navigate up/down with ctrl-p and ctrl-n) and try to “fuzzy-match” previously used commands.
There is a very useful command called fzf
which, while only a search program at heart, can be configured to complement this nicely.
Hey I’m very new to Linux and don’t super know what I’m doing, so you’re gonna have to bear with me.
I recently installed Kubuntu on an old desktop my dad gave me, it’s a Dell XPS 8900 with an i7 6700, a GeForce GTX 745, and he upgraded it to have a whopping 64 gigabytes of ram because it kept slowing down and he thought that would fix the issue lol. He upgraded recently so now it’s mine.
Originally I wanted to run Linux Mint but i could never finish the install process because it kept running into some kind of error with the bios, and would freeze there forever even when I let it sit for hours and hours, so I went with Kubuntu since I figured it would be a pretty similar experience? Maybe I’m wrong in that but I figured since Mint is Ubuntu based I’d just go with Ubuntu, but I prefer KDE Plasma so Kubuntu it is.
Kubuntu installed without issue everything was fine and it seemed great, but then I realized every time I booted the machine my main drive would have nearly 100 gigs of extra storage being taken up. I had no idea where it was coming from, I thought I somehow got a virus or something even though it was a fresh install, I had hardly added anything but a web browser and Vencord from the discover store. But after I did some digging I discovered it was the kernlog and syslog files, which were each nearly 350 gigs in size and continued growing the whole time the system was on. I opened them and they were both just full of this error over and over again,
“pcieport 0000:1c.0: pcie bus error: severity=correctable, type= physical layer” “AER: Correctable error message received from physical 0000:00:1c.0”
Probably millions of times honestly for it to be that large in size. I have no idea what to do about this, I tried updating drivers, reseating components, but nothing really seems to be working. Does anyone have any ideas? I apologize if it’s an easy fix but I’m literally brand new to this and don’t know anything lol.
have you updated the bios yet (latest appears to be v2.9.1) and reset the bios settings to defaults?
Me 6 months ago: hmmm PeerTube looks really interesting but I don’t understand how I can use it. Do I have to create a new account? Pick an instance? But which one? Nah, too complicated, I’ll check back some other time.
Me today: oh YunoHost has PeerTube in its list of apps. Maybe I’ll host my own single-user instance! 🤗
Bandwidth is the killer.
I would like #peertube to succeed...
But I don't know how that is possible.
My community TV station (c44.com.au) run a "streaming" service for a few years, and we have tried a few hosting sites..
...every time what killed us was bandwidth costs. Any remotely successful programs blew the cap for the month.
I don't see how you can avoid that.
sry, don't take it personally but APP is an aplication in a cellphone.
If Yunohost offers the service of hosting Peertube instances it offers a platform (or something like that).
:)
@nicholasr about a month… it gives me a lot of confidence / hubris, depending on how you look at things 😆
It’s soooo easy to use, even for a total newbie. I would 1000% recommend it
@_elena Do you know if it runs on k8s / #kubernetes ?
@_elena What hardware are you using to host it?
@nicholasr I have a basic VPS plan – 4 GB of memory, 4 TB bandwidth, 50GB disk space.
The resources I'm using so far with GoToSocial and Phanpy are minimal...
@_elena thanks for mentioning #GoToSocial
https://github.com/superseriousbusiness/gotosocial
I see it is written in #Go and #Typescript. I doesn't surprise me it is resource friendly 🙂
Also, I had not heard of #Phanpy. This is an interesting #Mastodon web client.
@nicholasr Phanpy.social is THE BEST (I basically type this at least once a day, LOL)
@nicholasr I’m really pleased to hear this!
Its creator @cheeaun would be happy too I bet 😊
@_elena Also, can you run this in a #VirtualMachine or #Docker or other container?
@_elena that's really pretty cool - I wasn't aware of YunoHost. Looks likes a thing that makes the start ways easier
@hikingdude YunoHost is THE BEST - it empowers me to do a lot of complex things even if I'm a total newbie
@_elena I spent some time looking for VPS prices now. This is really tempting! Last time I was checking, the VPS prices were quite higher. But with 1-3€/Month it's really not worth the effort to have a raspi at home.
Thank you Elena for bringing that back to my mind. An own peertube-instance just for my own stuff would be quite tempting
@hikingdude thank you Franz. Indeed, a VPS can be pretty affordable these days.
I was nervous at the idea of having an always on Raspberry Pi as a home server. I have routine micro-outages at home (internet-wise), so that was not an option.
A VPS gives me peace of mind, especially when I'm traveling
@_elena
Right this, plus - what concerns me even more: if an attacker breaks the service, it's bad enough. But if he's getting shell access to somewhere INSIDE my home network, this could get unpredictable bad.
Like the question above am I just an old man that’s not keeping up with the times or is terminator still a great terminal to use in 2025?
I must be older and even more out of touch than you are, as I only use the default Terminal that came with my distro and I had to do a search to check what were Ghostty and Terminator (I know about the movie, obviously, but I’m also old enough to have been watching it in theatre the year it was first released ;)
I used terminator until a couple of weeks ago when I moved from i3 to hyprland. Now I use kitty 🤷🏼♂️
I’m an old man. I don’t get the appeal of a terminal with hardware acceleration and all that fancy stuff. I use what the distro/DE came with.
Evidently I’m similarly old, but a lot of the TUI apps replacing old standards look better.
Whatever wezterm uses to render ligatures has made editing quite pleasant, it doesn’t eat random control characters either which I found insufferable in a few that ship with DEs. Its still miles better than the cart, YMMV depending on what you use it for.
From a look at the documentation it’s just a fancy terminal. If you don’t really care about theming or image rendering then it’s not something you need. If you’re trying to rice a UI like hyprland then it looks like a good option.
Personally, I don’t see much added value over whatever the default terminal is but I’ve never been one to mess with things that do what they are supposed to.
A terminal is a terminal. If there is a feature you don’t know you need then you don’t need it. Run with whatever you have
If there is a feature you don’t know you need then you don’t need it. That makes no sense. By that logic we would still be using horses since technically we don’t -need- cars. There are of course thing “you don’t know about” but would totally use if you were introduced to them.
I’m pretty sure someone thought
Man it would be nice if horses were faster
I’d say the same is true for terminal emulators.
It would be neat if I could use tabs
Or
I wish there were better ways to render things to the terminal
At the end of the day it’s a black box where you can type commands. If thats all you need than you need anything else.
Agreed. I feel like this is a prime case for the Fisherman’s Parable.
By that logic we would still be using horses since technically we don’t -need- cars.
Most of us would be using our feet and transit (and possibly bikes); both our households and our economies would be better off financially and bodily if car use was restricted to goods hauling and some few other uses (not to mention the environment). Mass motorism has turned out to be mostly a way to enrich the auto industry, not our societies, with North America as a warning to the rest of us. (See !fuckcars@lemmy.world for more.)
There are plenty of times where humanity has chased the latest fad without considering the costs & benefits properly. The amount of energy and hardware being blown away on LLMs are another example; same goes for creepto and NFTs.
That said, having a look around for various applications, including terminals, is generally good. If someone finds something that covers their needs but with lower costs, that’s good. And if they find something with a shiny new bell or whistle at exorbitant cost, eh, maybe think twice before choosing it.
I use foot which is Wayland aware and renders Unicode fonts. Honestly I don’t need much from the terminal itself as I’m usually in tmux to deal with all the “tabs” and scrollback.
Yeah. Pretty much all of the above.
I used to rely on Sway for terminal tabs and splits. Only recently did I realize that tmux is the better option, even for local use. Already used tmux for SSH sessions.
for terminal tabs and splits. Only recently did I realize that tmux is the better option, even for local use
Reasoning?
cd
to the root for every new shell session I start.I’d like to think there’s a difference between “keeping up with the times” and chasing whatever new thing gets advertised.
Unless you’re really into number chasing with benchmarks then just keep using whatever you like until something YOU find better comes along.
Also I’m GenZ and just use whatever comes with the DE, it’s not an old person thing shakes fist.
I just use konsole. It comes with plasma and is more than good enough for me.
The main advantages I have felt with fancy terminals are
Launches faster sounds like you have a weird shell config.
Also scrolling isn’t really existing in a terminal. If you are tail -f somefile
then it depends on how fast it is written to, how fast tail is.
If you have some TUI tool open it dependa how fast it can emit it’s UI.
If your program only emits 100MB data each seconds then a terminal sink of 30GB/s wouldn’t really benefit.
Power users like me run a terminal multiplexer anyways so there is another bottleneck.
And the configuration is onetime only (if the terminal will be downward compatible in 10 years).
Terminator isn’t supported anymore as far as I remember. A good substitution for it is Tilix. I’d been using the latter for a while but recently I switched to the new default terminal in Fedora (it had weird name that I unable to remember) and Tilling Shell extension for Gnome.
Terminal emulators are pretty niche. I also tend to stick with what’s included with the DE. I’ve only used a third party terminal when I used gnome. Blackbox, as the one included in gnome at the time was still using gtk3.
Terminal emulators are pretty niche.
Lol
Imagine being this guy above me and thinking that the percent of people that would switch out from their default shipped DE terminal emulator is anything but a minority 🤪
On my Mac, I use Retroterm because emulates Old CRT screens - with scan lines and ghosting and stuff .
Does nothing , crashes sometimes, but is Lots of fun if you’re the guy that remembers floppies.
Afaik terminator is unmaintained but some people still use it. I’ve heard of Tilix as a good alternative but can’t tell you if that’s the case as I haven’t used either. I change terminals only if there’s a feature my current one doesn’t have.
I used alacritty (because that’s what came with the distro I used, ArcoLinux) until I switched to Wayland where alacritty font scaling was inconsistent across Xorg and Wayland sessions (and I was still switching between the two). So I went to kitty, until I was convinced to switch to foot because it seemed to open faster so I went to it. Then I switched to COSMIC which doesn’t let me remove window decorations server-side and neither kitty nor foot supported their removal client side, so I switched to alacritty which did.
I will switch to COSMIC terminal for convenience (as I use COSMIC) when they fix their font rendering (it’s like old Alacritty, only that modern Alacritty has fixed it but cosmic-term still hasn’t).
I use yakuake (or guake if I still used gnome), I love having a consitent terminal slide down the screen every time I press a shortcut, especially if it’s supplememtary to what I’m doing in the graphical shell.
I loved terminator but after learning tmux I just don’t really see much point in the main feature. I use xfce4-terminal on i3 these days.
I switched from terminator to alacritty a while back. Moved to kitty a few months until a bug was fixed. I do try out new terminals occasionally, but nothing feels as nice as alacritty to me so i stay.
Multiple GNOME terminals in one window!
Terminator was originally developed by Chris Jones in 2007 as a simple, 300-ish line python script. Since then, it has become The Robot Future of Terminals. Originally inspired by projects like quadkonsole and gnome-multi-term and more recently by projects like Iterm2, and Tilix, It lets you combine and recombine terminals to suit the style you like. If you live at the command-line, or are logged into 10 different remote machines at once, you should definitely try out Terminator.terminator sounds great. never heard of it. i did try ghostty, but i can't help myself opening xfce terminal. muscle memory.
I chose Kitty cause of the name and I have never looked at anything else.
Another happy Kitty user here!
I use my terminal as an IDE. Kitty makes it (relatively) easy to write custom interactive applets (aka kittens) that open in new panes or communicate between panes. The ssh integration is also really useful: whenever I ssh into my remote work station my fish and helix config gets copied over.
Judging by the code (a mix of C, python, and go) and the fast release rate, the core maintainer seems to be an utter mad genius – which unfortunately is sometimes reflected in his notoriously abrasive communication style.
Only thing I’m lacking is persistent remote sessions. The maintainer is not quiet about his dislike of tmux and other multiplexers. It’s wildly inefficient to process every byte twice, he argues. Convincing but Kitty doesn’t currently offer an alternative for remote sessions, which is where I do most of my work. Wezterm has something for this in beta, but misses many of the niceties of Kitty. So I’m still using tmux for everything in Kitty.
I tried Ghostty, if only because the maintainer is an excellent communicator. I found it polished but simple. I couldn’t figure out how to page up the scrollback or search it. I couldn’t rename tab titles. The config format seemed under-documented. I’ll give it another go in a month or so.
I’m no connoisseur, but I just want the same feel as I had back in the 90s. No terminal emulator, straight up tty with crisp VGA ROM fonts at some hacky SuperVGA resolution.
Konsole, gnome-terminal and ghostty can all be made to feel right to me. I’m giving ghostty a spin, and I like how it supports custom shaders so I can make it feel even more like home.
Use whatever you like. You know your needs better than anybody else. As for me, I like Konsole and I will stick to that.
SQLite is a remarkable piece of software and I've always been curious about the system and the project. Here are several little known facts about SQLite.
@amoroso Amazing; I would not have guessed even one of these.
@coreysnipes Lots of things I didn't know.
@amoroso huh! That's fascinating. I think I need to think more about using sqlite.
@AndreasDavour SQLite is underrated.
SQLite is so fast, they compete with fopen. For some use cases, you can use SQLite instead of a filesystem, that can be 35% faster.i’d love a deep dive into this.
@amoroso That’s really interesting. I knew almost none of that.
@nik They're not the only ones, this is increasingly common.
@amoroso I recommend this episode from the podcast corecursive: https://corecursive.com/066-sqlite-with-richard-hipp/
@amoroso this is missing the fact that #SQLite was created originally as essentially a #Tcl extension. That also helps to shine line on some of its interesting idiosyncrasies. The @tcl_tk language still plays an important role in SQLite’s development. Basically if you like SQLite, and you should, you’ll like like the Tcl language.
blogs rot. wikis wait.
your digital abyss is filled with topics i just want someone to keep talking about.
@dharmik it’s wiki software by @bouncepaw called mycorrhiza! a really great little wiki.
and thank you!! one thing i want to do a lot more of this year is write :3
this little poem is inspired by my thoughts on wikis being a better medium for personal websites than blogs, and should be the default choice.
blogs _seem_ obvious, but they're actually unintuitive and very disruptive to the creative process.
blogs demand that you edit, perfect, trim, idealize anything you're about to publish. the barrier-to-entry _feels_ high.
wikis are forgiving - they don't care if you have a page called "fjlorb" that you jot random interesting words down in. wikis are life companions - they contain lists, images, projects, dreams.
blogs contain a list of posts.
all snail the personal wiki movement.
@j3s I forgot that this was even an option and now I feel a fool!
if I'm honest, I love my lil website but I hate the blog inside it. bellying up to write a post is a small nightmare
@stillgreenmoss the nightmare of writing a post is so real. i really don’t know how writers do it
@j3s @stillgreenmoss by rejecting perfectionism and embracing a writing style that just follows your flow of thoughts (write, think, write, think, ...). And by not caring about measuring up to your past success (I have a post that's just a duck photo).
Honestly I think I would have more issues rejecting perfectionism with a wiki; With a blog I can accept that a post I wrote a few years ago isn't great without feeling like changing it.
I want to capture the journey rather than just the results.
@stillgreenmoss also i adore your website, sometimes i visit it just for the vibez
@j3s As I wrote on my personal wiki: "Blogging is a trap. It continually buries the past under an avalanche of new verbiage."
@j3s I agree completely, and I was happy to take it even further by creating a "digital garden":
https://maggieappleton.com/garden-history
Complete with my own interpretations of the "principles of digital gardening":
https://travisbriggs.com/garden/digital-gardening-principles/
@audiodude cute!! i personally like the “abyss” metaphor because i don’t really believe that digital wikis need tending to survive, often just tossing words in & letting them float around does wonders for the subconscious.
garden is just so cute and relatable tho
@j3s @audiodude some have said "think more English Garden and less French Garden". Also...
http://webseitz.fluxent.com/wiki/TendingYourInnerAndOuterDigitalGardens
@sungo 100% - i think the performative nature of the format stifles real self discovery & creativity. most wiki software focuses on project/community layers tho, i think there’s an individual wiki hole that needs more filling!
@j3s @sungo most people are afraid to do their Thinking Out Loud.
http://webseitz.fluxent.com/wiki/ThinkingOutLoud
@j3s Thank you for describing what I was feeling every time I scrapped a post because I felt that it wasn’t perfect enough. Maybe I should start a digital garden instead of an blog. Embrace the fjlorb.
@mzumquadrat all hail the fjlorb!
@j3s hmm, I guess the pile of hand written and edited html I used to have for a website a long time ago was kinda like a wiki..
@j3s Really cool website. Your reasoning for calling it a digital abyss instead of a digital garden are quite interesting... also love the bouncing puffer fish :3
@dharmik okay let's hope you can do this lol
@piku I used to use that lol
<leader> + ww
to open the vimwiki index page, but the categorization part adds too much friction.Year progress: ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ 100.0%
#SQLite is the most deployed and most used database. There are over one trillion SQLite databases in active use.
It is maintained by three people. They don’t allow outside contributions.
setting up lsp in neovim is a pain, especially compared to helix or emacs, which is why I will not be doing it
@crmsnbleyd I know right? I stopped using my own setup and started using https://www.lazyvim.org
Have you tried?
@dharmik here is a list of it's core plugins https://www.lazyvim.org/plugins
I am a Linux beginner/amateur and I have sort of had enough of copy and pasting commands I find on the internet without having a good understanding of how they actually work.
I guess my end goal is to be able to comfortably install and use arch Linux with my own customization’s and be able to fix it when things go wrong.
What tips/ideas do you have for getting better at navigating the terminal, and getting a better understanding of how the os works. What is a good roadmap to follow? And how did you, advanced Linux user, get to the stage your at now?
Just install Arch, when You follow wiki it’s not that hard. if You will make mistakes during the process, You will gain better understanding of how things works while fixing errors.
This. The arch wiki is a treasure trove of information. The more you do, the more you’ll learn.
Also, don’t blindly copy paste configs for editors or window managers. Just slowly build them up based on your own use. It’ll be painful initially but worthwhile in the long run
I think I will try something like manjaro first see what it’s like and then move onto arch.
That was exactly how I did it some years ago. After 4 or 5 times fixing the X-server after an update (thanks nVidia!) I switched over to Arch. Installed Arch following the Wiki for about 2 hours… failed and started the process of installation again (in about 1.5 hours :P) and succeeded. By failing and trying again I’ve learned a ton. My advise for less frustration: go with Team Red. In my experience AMD graphics cards are much more linux-friendly.
see this post for my experience with amd lol.
Certainly a worthwhile endeavour. But I’d recommend doing it in a VM or a secondary machine before jumping right in on your main computer.
If you have enough knowledge of Linux to understand what Arch is and why it is, comparatively, a more involved installation. Then you’re probably ready to install it. As was mentioned in another content, long as you know the basics, it’s not add hard as you might think. Also as suggested in another comment installing in a VM or spare hardware is good practice.
As for learning, take the time to understand the commands you’re copy/pasting. Read the man page, see what the flags you’re pasting in to. That might sound daunting at first, and you might not always be able to completely wrap you’re head around it. But you’ll learn more and more over time.
+1. and yes use the wiki not the install script.
I think theres value to anyone with a genuine interest if they just have a go at an archinstall - I think they can setup most things of interest in a Qemu(vm), or a spare partition, or even a usb or something. Theres nothing to lose but time. I’d recommend the user knows enough about their disk setup and their incumbent boot manager so as not to screw up their main os. Though i’m very tempted to say that’s a rite of passage.
Of course everyone already has a regular backup(s) which contains some sort of list or script for all the software, configs and tweaks they normally do. If not - well another rite of passage.
I have sort of had enough of copy and pasting commands I find on the internet without having a good understanding of how they actually work.
One thing you could do is start trying to understand those commands.
Read the man pages or the documentation to figure out what the commands are actually doing. Once you have the “what” , you can dig deeper to get to the “why” if it isn’t obvious by that point.
After enough of that, you’ll go to copy/paste and already understand what it’s doing without needing to look it up again.
Then from there, it’s a matter of building the instinct to be able to say “I need to do X, so I’ll use commands Y and Z.”
man command
and just read through it. If you want less text, use curl cheat.sh/command
(learn how to use aliases) or the tools tldr
and cheat
$pwd cd echo cat nano less more chmod chown #your package manager lsblk dd #be careful! udisksctl lsusb lspci ...
Install the fish shell, it makes using the terminal waaay easier, out of the box.
Not a good idea if the goal is to learn more about Linux. Fish is not compatible to and is different to Bash in some ways, that it would be hard once not using Fish. Also getting help or sharing scripts with others will be problematic, when having a problem and researching it. For someone coming in to Linux and wanting to learn about it, I highly recommend to learn about Bash first and use it at least for months before even thinking about a custom shell. I used Fish too (and I miss some features), so its not like I wouldn’t know what it is.
Install Alpaca flatpak, and use tinyllama or bigger LLM models.
Alpaca is nice. GPT4All is also another one (and one that I prefer). Either way, both are good. But again like previous point, I do not recommend to install and use Ai modesl (LLMs) to learn about Linux and to get used to it. Especially the smaller models often hallucinate and lie with false claims. If you don’t know it better and are currently learning, this could be a problem. I highly discourage from installing and learning with an Ai model alongside when you are new to a topic like Linux. Its also not like there wouldn’t be enough good material out there anyway.
Fish is just a shell, you can still write and execute bash scripts
Fish is rewritten in Rust btw
Also the syntax is waay better, it should totally replace bash
My point is that Fish is not standard Linux tool. If the goal is to learn more about Linux, it makes more sense to learn about Bash first. I’m not against Fish. For a newcomer its just confusing when researching stuff or reading others scripts in Bash and constantly think about the differences in Bash and Fish. Or if you want to share a script with someone who does not have Fish. I’m not saying Fish is bad or anything like that. I’m just saying for a newcomer its not a good idea to ignore Bash and learn Fish first for someone who is interested into learning more about Linux and its eco system. Fish itself has the better language, no doubt about it and is actually better than Bash. But the quality is not my main concern in the reply.
As I said. Fish can just be a shell. I only write bash scripts. All bash scripts have #!/bin/bash
at the beginning so it doesnt matter.
I dont know about fish errors. If something doesnt work, I enter bash
and then run it again. I enter exit
when I am done.
That does happen but the workaround is easy
Apart from that, instant suggestions, history, arguments and available commands already help a lot.
Fish can just be a shell. I only write bash scripts.
That’s the exact problem. You deal with two languages. I did that too BTW. Now for someone who is experienced, its fine. But for someone who just started learning about Linux and scripting, its not ideal, as it adds unnecessary complications and friction for a learning process that is already complicated. Because learning Bash is a must do in my opinion. Regardless what custom shell you use.
After that learning process and getting familiar, one still can decide to use Fish as the interactive shell. But that’s AFTER the initial learning process of the basics of Linux.
See if your library has "How Linux Works" - https://www.amazon.com.au/How-Linux-Works-Brian-Ward/dp/1718500408
For one, stop copying and pasting commands and start learning about the basics of the shell.
Things you’ll want to focus on:
Then once you learn to do some basics, I would hammer repetition. Just force yourself to do things you would usually do via GUI by command line. I started with the basics of updating my system way back in the day with sudo apt-get update && upgrade
Just type type type type all those commands until remembering them is muscle memory.
For learning purposes, also try not to use aliases. Because using alias would undermine the learning process of knowing what and how its been done. I recommend (as you said) typing it out over and over again and use aliases on a later stage of your Linux learning only (maybe after weeks at least).
Just don’t copy paste the commands. Really! Just take the time to understand what the command does, read the manual, and rewrite it yourself instead of pasting it. That alone will help a fair bit and can start guessing what it should be.
After a while of doing that it stops being a “paste this command to make the service run” and becomes “ask systemd to enable and start the service”. You start associating editing files in /etc
with “will probably need to slap a sudo in front of that one”, you start mentally replacing nano/vi/vim/emacs/nvim/sed with your preferred way of editing the file, because you absorb the concept of “this command edits a text file”.
It sounds a bit nerdy, but dedicate some time just to learning a specific command once in a while. Start with something straightforward like ls
. Read through the man
pages and try out all the different options for it. After a while, you’ll master quite a few commands and will be able to string them together to perform more complex tasks. It’s definitely easier learning the system piece by piece like this. I used to learn by just jumping right in to a complex task, but I ended up with just a superficial understanding most of the time. Now days I try to be more deliberate about reading all the documentation and actually learning the tool/command/etc.
Also, Arch has the archinstall
script that greatly simplifies the install process if you need it. You’ll definitely learn more doing it manually though. I’ve been using Arch as my daily driver for a year now and I love it.
Command line cheat sheet (with bonus vim controls):
rm -rf /
make computer faster
(͠≖ ͜ʖ͠≖)
Wait I did this to my main drive everything went black is this suposed to happen? will it start working again?
in case you aren’t joking, rm -rf / (albiet with a warning now) will delete allll the files on your system, so everything going black is the expected result.
rm is remove, the - is to indicate that you want to pass arguments, and r&f are recursive (delete stuff in the folders in this folder) and force (don’t ask for confirmation). The slash afterwards designates the root folder, the folder with everything in it.
So “rm -rf /” means “remove, recursively and forcefully, everything in the / directory”
@Blisterexe @pineapple , after making a snapshot of VM. Sometimes, I do it just for fun and then roll back to the snapshot. Fun times.
If you’re not already, use it as your main system. Don’t dual boot. Stop using windows and mac. When you run into something you need to do, figure out how to do it on linux. It will be slow going at first, but after a few months you will pick up more productivity than you had before.
Another commenter recommended the fish shell, but I disagree because fish is not posix compliant. Almost all of the shell script examples that you will find assume posix compatibility and will usually have to be modified to run with fish. Once you get comfortable with a posix-compliant shell, then maybe consider fish or another “modern” shell.
On the topic of shells, read the bash manual. It’s long and informative. You don’t have to memorize it, but be aware of the different concepts there, and refer to it when you need to. It’s pretty horrible as a programming language, but it’s what glues most of Linux together.
I learned a lot by using a less common distro (solus). When I would have a problem, the solutions I could find on forums or arch wiki wouldn’t apply to my distro directly, and I would have to look into the solution for long enough to understand what needed to change in order for the solution to work.
You can probably do this on any distro, just by not using commands you find online until you understand what they’re doing and why that might fix your problem. Arch wiki is a great resource for any distro, even though it won’t always be accurate for the distro you’re on.
I have been using Linux since the early 90s. I don’t know it all. I read man pages. I use -h or --help. I read the arch wiki. I read docs. I read source files and examples. You will never know it all. There is too much information.
You need to know how to find information. It can be tricky. Knowing how to ask the right questions often requires you to know a bit of the answer.
Stumbling about trying to find answers is training the skills you need.
I think it helps if you have a programming background and IT support experience. Not just because you will understand more concepts and terms but because you have already developed some of those skills but some people come from other backgrounds and pick things up really quickly.
And how did you, advanced Linux user, get to the stage your at now?
Incrementally over time by reading the documentation and/or manuals of the commands I need to run and looking up how others solve the problems that I need to get other ideas about things (even, periodically, for things that I already know how to do to see if anyone has found a better way to do it or if a new tool has come out that helps). And trying things out/experimenting with different ways of doing things to find out what works well or not.
To be honest I’ve been using Linux for years and I still paste commands all the time. The only difference is that now when I am trouble shooting I know what command I need just not the options and how to use it
Another book rec: pragprog.com/…/small-sharp-software-tools/
Attempt an Arch install entirely from memory. You might want to try this in a VM, in case something goes wrong, but just do it. If you can’t quite remember what to do, man
and ls /bin
are your friends.
Sorry man I said I was a beginner I have never installed arch before that was more like an end goal I am not there yet I should have said i’m just running fedora kde atm.
More than anything, what leveled up my Linux knowledge was switching to Gentoo back while I was in college.
Before that, I used SuSE, and I switched specifically because I felt like I wasn’t learning anything really about Linux just by using point-and-click tools like YAST.
I’ve used Arch for the last… 7-ish years? (Though now I’m basically in the process of switching back to Gentoo. In terms of learning Linux, Arch is… close to as good as Gentoo for that purpose. Not quite as good, but pretty close.)
As for the best approach for learning, though, you know how they say the best way to learn a language is “immersion”? As in, to move to where they speak the language. In the same way, if what you’re going for is to learn, just take a dive. Install Arch over top of your current OS and don’t look back. Just commit to it.
Also, use the most minimal stuff you can. Skip KDE and use dwm. Skip the login manager and start your GUI from the command line. Don’t install a file manager and instead use Bash directly. (It’s more than capable.) Don’t install anything you can do instead with a Bash one-liner or a small Bash script. If after you’ve gotten pretty used to minimal stuff you still want something that the heavier alternatives offer, you can of course switch, but if your aim is to learn, avoid using the kind of stuff that tries to be “user friendly” by hiding all the internal implementation details from you. (Instead use the stuff that is user friendly by virtue of having so few moving parts that understanding how it works under-the-hood is trivial.)
And, don’t settle for “it’s fucked beyond repair.” If it’s fucked, google your ass off. If that doesn’t work, ask on the official Arch forums or here or wherever. (Don’t worry, they don’t bite.)
Is bash ultimately better than dolphin or another file manager? I always thought that it just seamed slow having to read things out with no icons and having to type the filename instead of double clicking. And I have been avoiding installing applications through terminal because I can’t find how to properly uninstall them including all data (the fedora software center does this really easily) I have also had some trouble going further back that my user folder in the terminal I still havn’t figured out how to do that. Lastly what are some “user friendly by virtiue of having few moving parts” distro’s that you recommend?
Is bash ultimately better than dolphin or another file manager?
Yes. (Disclaimer, some statements contain opinion.)
OP was specifically asking how to learn more about Linux. And it’s nearly unquestionable that OP is going to learn more about how Linux works if they use the lower-level tools rather than take-you-by-the-hand point-and-click-adventure programs your grandmother could probably figure out.
I always thought that it just seamed slow having to read things out with no icons and having to type the filename instead of double clicking.
So, again, this is just me spouting my own preferences here, but I don’t often touch the mouse. Moving my hand from keyboard to mouse takes time. I can use a keyboard shortcut to open a terminal, cd into the proper directory (using tab complete and set -o vi
to make things quicker still), and start dealing with files much quicker than I could navigate a menu to get to, say, Dolphin, wait for it to load (if you use a minimal terminal, it should load basically instantaneously), and then start navigating.
And I have been avoiding installing applications through terminal because I can’t find how to properly uninstall them including all data (the fedora software center does this really easily)
Not sure I can help you there. I’ve never used Fedora. I used CentOS once for a short time, but it was a long time ago and I basically don’t remember it at all.
I have also had some trouble going further back that my user folder in the terminal I still havn’t figured out how to do that.
Like, to the parent directory of your home directory? cd …
should always go to the parent directory of your current working directory. (/
is its own parent, I believe, so you can’t go any further up the chain than that.)
Lastly what are some “user friendly by virtiue of having few moving parts” distro’s that you recommend?
Gentoo and Arch. I’ve never used Void, but it sounds to me like Void is very minimal (has few moving parts) while also being much less of a learning curve than Gentoo and Arch.
When I say “few moving parts”, I mean, roughly speaking, fewer lines of source code. KDE (just for instance) is a huge beast. It tries to accomplish user friendliness by adding layers upon layers of abstraction, in the process obscuring what’s really going on at lower levels from the user. It… doesn’t really work. What it gains you in reduced learning curve becomes an obstacle the moment something goes wrong or you want to peek under the hood. Ubuntu (just as another example) installs tons of stuff to try to shield you from the nitty gritty details. But again, that causes more problems than it solves unless you’re dead set against ever looking under the hood for any reason.
The term “user friendly” tends to mean “my grandmother can use it without having to learn anything in the process.” In the comment about “user friendly by virtiue of having few moving parts”, I didn’t mean “user friendly” in the same sense. I don’t think “user friendly” in the more common sense id mutually exclusive with “fewer moving parts.” At least not in theory. But in practice, that does seem to be the trend.
OP was specifically asking how to learn more about Linux. And it’s nearly unquestionable that OP is going to learn more about how Linux works if they use the lower-level tools rather than take-you-by-the-hand point-and-click-adventure programs your grandmother could probably figure out.
Yes I am op.
and thanks for the reply. So I guess I should just skip anything with a desktop environment like manjaro and just figure out how to install bare arch?
Like, to the parent directory of your home directory? cd … should always go to the parent directory of your current working directory. (/ is its own parent, I believe, so you can’t go any further up the chain than that.)
Yes cd …
was what I was looking for thanks!
Yes I am op.
Ha! That’s what I get for posting on Lemmy at 2:00 am. Lol.
So I guess I should just skip anything with a desktop environment like manjaro and just figure out how to install bare arch?
You can certainly start with a bare Arch install and install on top of that a graphical environment. (Without a graphical environment, you wouldn’t be able to run a full-featured browser like Firefox or Chromium or whatever, for instance. I’d think if you intend to use this system as your daily driver – and I’d recommend you do for learning sake – you’ll probably want a graphical environment.) But, yeah. I’d say Arch isn’t that unapproachable to install without going the Manjaro route or the “archinstaller” route.
With Arch, everything’s just packages. The difference between non-graphical Arch and graphical Arch is just that non-graphical Arch doesn’t have any graphical system packages installed.
Now, I keep talking about “graphical systems”. There are two ways to go with that. There is X11 which is mature but a bit dated. And there’s Wayland which is the new hotness but support for it is still a bit lacking, so some features like screen grab may not be supported by all programs and some programs won’t work as straightforwardly on Wayland. (Basically, any time a program grabs an image or video of any portion of the screen of your graphical environment, that uses the “screen grab” API. Wayland does that differently than X11, so a lot of programs aren’t updated to use Wayland’s way yet.)
I guess I’d probably lean toward recommending X11 at this point. I personally use a Wayland compositor (Sway, specifically), but I don’t think running Wayland is going to teach you much that X11 won’t, and running Wayland at this point is likely to introduce frustrating wrinkles. If after you have your Linux “sea legs” you want to try switching, that’s always an option as well.
As for minimal X11 environments, first off, I’d say avoid things that describe themselves as “desktop environments”. They’re likely to hide details from you. Prefer “window managers.” Tiling window managers tend to be more minimal, but if you want to go with a more draggy-droppy, mouse-driven window manager that feels more like what you’re probably used to (but also doesn’t hide details), I’d recommend IceWM.
And, finally, as far as a “bare Arch install”, the place to start is the install guide on the Arch Wiki. It goes step-by-step on how to do things. And take the time to understand the commands you’re running as you’re running them. There are a lot of links in the install guide to more in-depth articles. For instance, the “partitioning” section links to an article called “partitions” that goes in depth on what a “partition” even is.
There’s a lot to learn, but it also pays off. Both in terms of just having the power to do the stuff you want with your own systems and in terms of benefits to your career. And it’s just plain fun!
Thanks, I guess I will go with x11 with a tiling window manager, I’ve had enough of windows being on top of each other and I like the idea of using my mouse the least amount possible. One last question most apps and packages don’t support pacman sometimes the only option is to install with apt and you download a .dev file is there a way to get around this?
Great question!
So, first off, if I knew what app(s) specifically you have in mind, that’d help me answer better, but in general:
makepkg -sf && sudo pacman -U <something>.tar.xz
. You can also get some helper scripts that do some of those steps for you for convenience. Definitely worth having the experience of doing it manually a few times first, though, I’d say.) Even if the only way to get the software in question from the publisher is in .deb form, you may still find a package on AUR that will unpackage the .deb and package the result up into an Arch package.$HOME/install/<softwarename>
. This can work even if the software is only available as a .deb file. You can just extract the .deb without installing it with the command ar x <blah>.deb
and a tar -xf data.tar.gz
and then put the files from within that .deb file where you want them.Just in case it’s useful to you, I’ll share the PKGBUILD I wrote for converting the Ubuntu kernel into an Arch package. It demonstrates how you’d go about extracting files from a .deb file in order to build them into an Arch package.
pkgname='linux-ubuntu' pkgdesc='The Ubuntu kernel, modules, and headers' pkgver='5.15.0' _pkgver="$(cut '-d.' -f 1,2 <<< "${pkgver}")" _firmware_ver='1.187.29' _suffix_ver='20.04.2' pkgrel='25' arch=('x86_64') options=('!strip') url='http://ubuntu.com/' source=( 'http://archive.ubuntu.com/ubuntu/pool/main/l/linux-firmware/linux-firmware_'"${_firmware_ver}"'_all.deb' 'http://archive.ubuntu.com/ubuntu/pool/main/l/linux-hwe-'"${_pkgver}"'/linux-headers-'"${pkgver}"'-'"${pkgrel}"'-generic_'"${pkgver}"'-'"${pkgrel}"'.'"${pkgrel}"'~'"${_suffix_ver}"'_amd64.deb' 'http://archive.ubuntu.com/ubuntu/pool/main/l/linux-hwe-'"${_pkgver}"'/linux-hwe-'"${_pkgver}"'-headers-'"${pkgver}"'-'"${pkgrel}"'_'"${pkgver}"'-'"${pkgrel}"'.'"${pkgrel}"'~'"${_suffix_ver}"'_all.deb' 'http://archive.ubuntu.com/ubuntu/pool/main/l/linux-signed-hwe-'"${_pkgver}"'/linux-image-'"${pkgver}"'-'"${pkgrel}"'-generic_'"${pkgver}"'-'"${pkgrel}"'.'"${pkgrel}"'~'"${_suffix_ver}"'_amd64.deb' 'http://archive.ubuntu.com/ubuntu/pool/main/l/linux-hwe-'"${_pkgver}"'/linux-modules-'"${pkgver}"'-'"${pkgrel}"'-generic_'"${pkgver}"'-'"${pkgrel}"'.'"${pkgrel}"'~'"${_suffix_ver}"'_amd64.deb' 'http://archive.ubuntu.com/ubuntu/pool/main/l/linux-hwe-'"${_pkgver}"'/linux-modules-extra-'"${pkgver}"'-'"${pkgrel}"'-generic_'"${pkgver}"'-'"${pkgrel}"'.'"${pkgrel}"'~'"${_suffix_ver}"'_amd64.deb' 'linux.preset' ) noextract=( 'linux-firmware_'"${_firmware_ver}"'_all.deb' 'linux-headers-'"${pkgver}"'-'"${pkgrel}"'-generic_'"${pkgver}"'-'"${pkgrel}"'.'"${pkgrel}"'~'"${_suffix_ver}"'_amd64.deb' 'linux-hwe-'"${_pkgver}"'-headers-'"${pkgver}"'-'"${pkgrel}"'_'"${pkgver}"'-'"${pkgrel}"'.'"${pkgrel}"'~'"${_suffix_ver}"'_all.deb' 'linux-image-'"${pkgver}"'-'"${pkgrel}"'-generic_'"${pkgver}"'-'"${pkgrel}"'.'"${pkgrel}"'~'"${_suffix_ver}"'_amd64.deb' 'linux-modules-'"${pkgver}"'-'"${pkgrel}"'-generic_'"${pkgver}"'-'"${pkgrel}"'.'"${pkgrel}"'~'"${_suffix_ver}"'_amd64.deb' 'linux-modules-extra-'"${pkgver}"'-'"${pkgrel}"'-generic_'"${pkgver}"'-'"${pkgrel}"'.'"${pkgrel}"'~'"${_suffix_ver}"'_amd64.deb' ) sha256sums=( '22697f12ade7e6d6a2dd9ac956f594a3f5e2697ada3a29916fee465cc83a34a1' '595794e8ad28ed130af60e6ec8699313e1935ae70f7530a00b06dff67fb4d40e' '22dbdc1895f91d3ad9d4c5b153352f1cc8359291dba6ea1a0e683cc6871b0f58' '5705cefab39dd5512bcc515918d09153715c7bb365d6bc29cc9b0580e5723eef' '3d207388812e957447162c067fb637b4d06eccb4f303b801e8402046a7d3cf48' '2f1214dbb04cb47ce8d096bff969fca9c78c26ec21a395c12922eca43cc18e26' '75d7d4b94156b3ba705a72ebbb91e84c8d519acf1faec852a74ade2accc7b0ea' ) package() { for f in "${noextract[@]}" ; do ar x "${f}" tar -xf "data.tar.xz" -C "${pkgdir}" done rm -r "${pkgdir}"'/usr/share' rm -r "${pkgdir}"'/usr/lib' mv "${pkgdir}"'/lib' "${pkgdir}"'/usr' install -Dm644 'linux.preset' "${pkgdir}"'/etc/mkinitcpio.d/linux.preset' }
(I omitted the linux.preset
file. It’s just in the same directory with the PKGBUILD and it gets bundled into the Arch package. But it’s not really important for what you’re doing unless you’re trying to install a different kernel than the official Arch kernel on an Arch system.)
The part that extracts the files from the .deb packages is the ar x
command and the tar -xf
command. The package()
function there is what decides exactly what files will be in the Arch package and where. And makepkg
builds the package archive after running package()
.
That covers all the options for installing software not in the Arch repos that I can think of.
When you are doing stuff in the terminal write it down somewhere else also, on a piece of real life paper or in a simple text document or whatever works for you.
In general I found taking notes while trying to do things in the terminal helped me learn.
I will be using your example of Arch as a great stepping off point, because honestly imo the best way to learn is by having a project to work on
RTFM - Read The Fucking Manual. Read the docs, read the code comments if need be. In the case of installing an OS, use the installation guide as a starting point; Arch’s is on their wiki, and links to several other sections that go more in-depth about what each step does and why it does it.
DuckDuck it - if you don’t understand what something is or why you’re doing it, search it. If you understand it completely, search it anyway and check the docs because no you don’t, you just don’t know how little you know. If you know why we do something and what function it fulfills, but not how… Then you’re a power user.
Using your example of commands from the internet, break the command down into as many parts as you can, and figure out what each part does. If there’s punctuation marks, don’t assume you know what those are doing. man [command’s name]
is your friend.
Do all of the above as often as possible, no matter how slow it makes progress feel. Learning these things the proper way now will save you from days, weeks and months of troubleshooting in the future. I mean it, literally at every step of the process.
secondary sources are invaluable, but for this it might help to get into the best way to self-educate. The only gospel are the docs and/or manual that were written by the code/OS maintainers - primary sources - everything else is opinion.
Here’s a source i agree with on the best way to self-educate, but keep in mind even Artem is still just a secondary source.
That being said, here’s a few secondary sources that helped me understand how OSes work and why:
nand2tetris: build an operating system starting with logic gates and working your way up from there. It has a offshoot site that’s slowly being rolled out, that implements it all in a gamified interface: nandgame
os-tutorial: build an OS from scratch
Linux From Scratch: Learn everything about Linux by building your own distro from the kernel up.
Unfortunately everything that taught about the behind-the-scenes aspects of OSes in general—and Linux in specific—were either projects like the above, or just seeing what came up in a DuckDuckGo, Youtube, forum, or wiki etc. search. Below are just resources that teach you about the “power user” level of knowledge, not “super user” but not your average user either.
Fireships’ 100+ Linux Things you Need to Know: it’s not particularly good on its own, but it does introduce a lot of concepts and vocab for you to then look up elsewhere
freeCodeCamp.org offers a lot of courses that will go over using Linux. None go too in-depth on the fundamentals of Operating Systems, but they will still introduce most of what you need to know for day-to-day use. I don’t want to link them all, but just search for linux freecodecamp
on youtube and find one that piques your interest. The longer, the more in-depth—you don’t have to watch it all in one sitting.
Using tldr
to learn commands. It gives you the information you are probably looking for in the man page but it’s not buried among lines and lines and lines of arcane stuff and it’s formatted in a readable way with helpful examples. Saved my sanity more than once.
I’m not saying “don’t read the man pages”, they are great way to get a deeper understanding of commands. But when you are just wondering what a command does and how it’s commonly used, then a two lines summary + example is much more helpful than an essay going in minute details over everything.
Since it takes a lot less time than hunting the same info in the man page, you can run it before every command you are not familiar with, without too much hassle. Then if you want more info you can check the man page.
Work at the tip of your “paygrade” and try to make immersion as fun as possible. Maybe consider using a different disk for Linux, since mistakes are the best way to learn. (Don’t reinstall just because something broke).
Here are some fantastic ways to make mistakes:
yt-dlp
? Perhaps make a shell script for something? Maybe search the AUR for something cool to try out (underrated function of the AUR: test-driving!). With a terminal, who needs file explorer?journalctl
or dmesg
or –verbose
or whatever)? This is a skill you don’t lose – and we’ll be happy to answer a good question.Of course all of this depends on where you are (the tip of your paygrade). For pasting commands specifically, as you said… do 'em one at a time – and understand each one.
Like, what is piping |
? Why is xargs
after it? Why can one stop ping
with CTRL+C
? What does man curl
say about this weird curl
command? How does one even read a manpage well, anyway? Why is there so much gpg
?
And at the end of the day… remember how fun this shit is. The engine is open; we’re allowed to look inside. Woohoo!
My advice would be look up The Missing Semester it’s a free online MIT course on how to use the terminal and it will govern you a better understanding of how to use it and Linux more generally. Really helpful to find your way around and give you an intuitive sense of what you’re trying to achieve.
Then beyond that installing arch is easy with archinstall but it’s probably more helpful to learn about the components of desktop Linux and what they do so that you actually know what you’re doing.
on the tailend of a convo in in a discord recently I added a command to the “customize chatgpt” section to allow chatgpt to have a custom “man” like command similar to linux, but that works for all code or commands.
when a prompt is givin beginning with the word man followed by code or commands please respond with a table following these rules and nothing else: skip title row, No backticks around command components, No unnecessary rows, column 1 should contain the command component, column 2 should contain a brief command description
What tips/ideas do you have for getting better at navigating the terminal, and getting a better understanding of how the os works. What is a good roadmap to follow? And how did you, advanced Linux user, get to the stage your at now?
Time, I’ve been using linux since the 90’s and I learn things I probably should have known before every day
Start running servers if you haven’t already. Use an old computer, or an SBC or VPS and setup some Linux servers. There’s lots of different ways to do it, so mess around and break shit over and over. You can’t help but learn that way, though I would highly suggest you take notes/documentation. This is a habit I’m trying to develop after too long :)
I guess my end goal is to be able to comfortably install and use arch Linux with my own customization’s and be able to fix it when things go wrong.
Why? I have been using Linux for nearly two decades and I am perfectly content with a low-config distro and desktop environment. You don’t have to use Arch but if you insist get a Steam Deck.
I just want to get a better understanding on linux and I think arch is the way to do it. I love computers and I want to know them well.
Do you want to know how it works internally or how you can administer it more effectively? The two are very different. I was always more interested in the former than the latter and at one point read through Linux kernel 0.1 source code. I want to know how a kernel and a file system works but I can’t be bothered with configurations and shell scripts. The good thing about Linux whatever you want, the resources and the source are available.
Good luck.
Here is a bunch of random tips to become more comfortable with the terminal.
Do absolutely everything that you can on the terminal.
When you install something, enable the verbose if possible and snoop around the logs to see what is happening.
If an app or an install fails, look at the logs to see what is the issue, and try to fix it by actually resolving the error itself first instead of finding the commands on the internet to fix your issue.
Instead of googling for your command options, use the help menu from the application and try to figure out how to use the command from there.
I guess my end goal is to be able to comfortably install and use arch Linux with my own customization’s and be able to fix it when things go wrong.
What tips/ideas do you have for getting better at navigating the terminal, and getting a better understanding of how the os works. What is a good roadmap to follow? And how did you, advanced Linux user, get to the stage your at now?
You learn by doing and by failing. Like we learned to walk, to write, to drive, to kiss, to speak a foreign language, or even to lace our shoes (and, yep, even that was a heavy trial and error process for toddler-us back then).
Learning takes time and efforts. Perseverance, and humility. There is no shortcut to learning anything that is worth learning, not just Arch. But the reward is also so much worth it. Einstein had to learn calculus, Da Vinci had to learn how to hold a paint brush, and Tolstoy like Flaubert had to learn to write and I’m willing to bet they all made mistakes while they were learning their respective craft.
Even without referring to geniuses: the first time I tried to install Arch I ran away screaming and swearing I would never touch that thing again. The second time, I had already managed to read a good chunk of the relevant part of the wiki and used it constantly at each step of the process. I still failed at it but at least I understood why I failed and I felt incredibly more… in charge, despite me failing. The third time, I managed to have it running, and to install most the packages I wanted. That was great. There was no fourth time as, as much as I love Arch (which is a lot), I quickly realized using it that constant updates were not what I wanted from my OS and apps (I’m an old-ish user with very basic needs, I’m not even that much of a geek to be honest). So, I switched to the complete opposite of Arch (Debian, another great love of mine I must say). Still, learning and using Arch taught me a lot about Linux in general and about… myself.
This is really good advise and it all boils down to one attribute. Patience.
Don’t get disheartened when something does not work the first time. Take a step back. Look at what went wrong and then try again, hopefully without doing the same mistake again.
Learn the basic tools of Linux and Bash/Posix. cd, ls, cp, mv and rm are some very basic tools, but it is what we use 80% of the time.
I ran Gentoo for several years. It wasn’t Linux From Scratch but it did required a lot of manual work. It also had great documentation. It forced you to learn all of the pieces encompassing the entire OS.
Arch seems to be the modern equivalent.
Linux is like kung-fu, mastery comes through practice
Learn the ways of Linux-fu
I’m going to go against the grain a bit and suggest studying for a certificate. Find one that looks interesting, and just prepare for it. You don’t necessarily have to get the certificate, but training for it will give you a good foundation for running your systems.
Haven’t seen anyone mention overthewire.org/wargames/bandit/ yet. It’s a Linux shell game where you need to solve problems using shell commands that only requires an ssh client on your machine: you ssh into the first server, solve a problem, and the solution points you to the next server. It starts easy (e.g. read out this file using cat
) but gets hard quickly. But you can always look up solutions when you’re stuck. It gives a good idea what certain commands are used for and how they can be combined in powerful ways.
I can tell you how I learned linux. be prepared to cringe.
I installed Linux before going to school, I figured that if I used Linux as my main OS I would be less tempted to dick around and play games
I eventually found a coop part time job as a dev. I used my own Linux machine, and being the star eyed young person I was I used arch.
this is the cringe part:
I leraned systemd, Linux kernel modules, dkpg, obviously more familiarity with bash and shell stuff
so morlw of the story is… dive in?
Purely just send.
You ain’t gonna learn to swim in the wading pool, take a leap and break something.
It’s like any job - you can be talked to about x, y or z until the cows come home but until you stub your toe on a specific issue it’s mostly just fluff.
I’ve committed unencrypted secrets to codeberg, deleted boot partitions without rebuilding (nixos), tested most Linux distros until I got comfortable.
Dumb mistakes are bound to happen (I feel mostly to me) but you don’t learn without seeing the repercussions. Linux isn’t scary - closed source crapware is no matter how “user friendly” it’s made out to be.
For getting better at terminal I would suggest looking into alternative shells. Bash is fine, but it’s not exactly user friendly by default. Something with more robust auto completion like zsh or saner defaults like fish could make the learning experience easier. You can always come back to bash later.
For understanding how the OS works I would start by reading about the file system layout, then look into the init process.
I got to the point I am at through a series of projects of increasing complexity. First I ran a web server on my machine to copy files over the network. Then I used a spare PC to make a simple SMB server. Later I made it into a HTPC pirate box, for streaming stuff downloaded off Usenet to my Xbox. At some point I ran a minecraft server (before docker came along and trivialized this), and got into a bunch of sysadmin and programming stuff and that’s pretty much it.
Just out of curiosity, do bash script work in zsh? Or are they totally different things and are not cross compatible?
Depends on what it is. If it’s meant to be mainly used in the shell I will usually use whatever shell the language uses. Anything that’s run automatically usually gets done in bash for compatibility, and stuff more complicated than a few loops and some piping gets done in something easier to work with like oython.
To learn Arch, install it from scratch (without archinstall), it’ll force you to read the Wiki and learn a lot of necessary commands in the process. After the installation, just keep using it. Using a Linux distro full-time as the only installed OS is the best way to keep at it and truly learn it over time. There’s no magic bullet here. Just keep using it and solving problems or issues as you go, learning more and more stuff as you go. If you need other OSses as well, run those in a VM.
Don’t blindly copy/paste commands you don’t understand. Always try to understand them first. Some commands can be very disruptive or even destroy your configuration. If you don’t understand it or are able to adapt it so that it fits to your particular configuration or system, you can EASILY damage a configuration, or even make your system unusable. Also, some people like trolling other people and deliberately share harmful commands. Generally, test potentially destructive commands or complex commandlines before actually running them.
Document major config changes that you do. This is useful because you’ll be able to undo certain changes or even replicate your current system configuration fast when you change distros or have to reinstall in the future. For example my current Arch-based setup is fully documented in form of an almost-directly executable shell script. It does require some interactions but very little. If I ever have to reinstall this system, or upgrade my hardware, it can be done insanely fast and it’ll have the exact same configuration. This goes from basic partitioning and encryption all the way up to dotfiles and individual program configurations.
Don’t feel the need to learn hard/advanced tools like Vim or Emacs unless you really think you’re getting an advantage from that and aren’t hesitant to put in the time and effort to learn them. Most people don’t need to use them. They’re amazing tools but you need to be prepared to lose quite a lot of time to learn them before you can become productive with them, and this might not be a tradeoff that’s useful for every single user. You can also get away with much simpler tools, like nano (as a console-based editor) or whatever programmer’s text editor you want.
Similarly, whether a pure WM or compositor plus assorted tools compared to a full desktop environment is worth it for you or not, is up to you. There’s no wrong or right answer here. I’ve tried out pretty much everything and these days use KDE Plasma because I like the consistency and integrations and dislike having different, inconsistent stand-alone tools for panels, menus, notifications, wallpaper, file manager and so on. But again, there’s no wrong or right answer here. Just what makes more sense for you. It’s worth learning how to be able to configure and use a minimalistic setup, for sure. So trying it out doesn’t hurt and increases your knowledge overall. In general, in the Linux world it’s good to always know enough to not be screwed once some component suddenly doesn’t work anymore. For example, a competent Linux user should be able to deal with (temporarily) not having a GUI and fixing his system via commandline.
A minimalistic, DIY distro like Arch can be amazing to learn everything, if you want to do that at least. If you just want a working desktop system with as little effort as possible, then don’t do that. But if you intend to learn every detail, then a distro like Arch is better suited for that goal than a “bloated”, fully pre-configured distro like Mint or Ubuntu is. Because Arch is much simpler on a technical level than those are. It’s much easier to understand e.g. the relatively simple package building process on Arch than it is on Debian/Ubuntu-based distros. But this “simple” explicitly refers to technical simplicity or minimalism. Most users expect something else when they hear “something is simple”. Arch is not simple as in beginner-friendly, but it is simple in terms of technical complexity, which is why many advanced users and tinkerers like it because it doesn’t stand in their way. It also means though that you HAVE to learn many things, e.g. how to configure a firewall, because it doesn’t come with any preinstalled by default. With Arch, the admin is supposed to know about everything and configure every component himself, at least on a somewhat basic level.
If you want to go to even more details, you could also try out a source-based distro like Gentoo or Crux, which can also be a great learning experience, but it’s even more details regarding compilations of each package, dependencies, compile-time options, etc. you have to deal with than with a minimalistic binary-package-based distro like Arch, so whether that’s useful for you or not is up to you of course.
While we’re at it: LFS (Linux from Scratch) is not a distro per se, it’s a guide on how to build your own distribution from scratch. It’s VERY time intensive and not recommended unless you truly want to learn how to build a complete distribution from scratch, or maybe start your own distro some day which isn’t based on another existing distro.
If you are beginner in Linux, try beginner-friendly Arch-based distro: EndeavourOS, CachyOS, Manjaro
You can learn Arch without too much hassle while using one of them
EndeavourOS is great ! While it’s easier to install than Arch (I guess?) and give you tools to maintain your system, it’s still in need of daily maintenance to keep your system healthy and operational.
You learn things but at slower pace and with less headache as a beginner. I’m very thankful EOS exists and give you a glimpse on how to configure/maintain and evolve with the Arch ecosystem !
I’d recommend reading man pages. They’re a great way to understand the programs that are on your system. The Arch Wiki and the Gentoo Wiki both provide additional information that may be of use to you.
What tips/ideas do you have for getting better at navigating the terminal, and getting a better understanding of how the os works
Running an OS as a virtual is liberating. Dive in, make mistakes, fix them (or not and have to reinstall or redo from the last save). No real consequences for exploring.
This course by the Linux Foundation goes over the basics and I thought it was pretty good. I was a long time user of Linux when I came across this and wanted to see how much I really knew. It’s very easy to follow and well structured
If you’re in the position to take certificates then that’s a another way of learning a lot. At least it has worked for me. I’ve over the last half year taken RHCSA and RHCE from RedHat - though paid by work. Theses in specific are expensive, but I’m sure there are other ones that are cheaper. This would also allow you to ‘show off’ your skills in an official way should you need to, for applying for certain jobs etc…
I at least find this way to be helpful as you have to motivate yourself to learn and pass an exam to get the certificate. It might not be for everyone though.
If you want to get better at Linux terminal and standard unix commands I would try overthewire.org/wargames/bandit/
It’s an interactive tutorial which will help build basic skills. There are a million guides and walkthroughs for this, but I would try each level on your own first before you look at a guide.
Switch to rolling distro, it will break so many things with each update you’ll learn stuff by fixing it. Also you can check overthewire.org/wargames/bandit/
I thought rolling releases were still pretty stable to things really break that often?
I’m late to the party but have you seen Linux Journey? linuxjourney.com
The tldr cli (tldr.sh) is a great way to get familiar with options of differ programs.
Very useful, even for someone who has been using Linux for many years. Sometimes you just forget or need that tool you rarely use. tldr
can be much handier than parsing a man page when you’re in a pinch.
I use the tealdeer implementation, but any is fine really.
Install harder distros (preferably on bare metal) and use them. If you need to fix something, google it. This helped me a lot.
I still find Tealdeer useful even now, it helps me get working with commands I know little about, more so than a manpage
start from man man
and learn to use man pages. Get used to lookup man pages for any topic before checking on the internet
This is it. You’re likely not going to get away from needing help from time to time. Instead of focusing on trying to know everything, focus on knowing where to find what you need. It’ll click from there with time.
With arch, I’d recommend just jumping in the deep and and installing it, looking things up on the wiki when something goes wrong. Just do it in a virtual machine or on an old laptop or something to start with. I broke my previous distro (mint) by doing some really stupid stuff, and I decided to just go fuck it and install arch. I don’t think I’ve ever learned as much about linux as that weekend.
I suppose that I was already pretty comfortable with the terminal since I was studying computer science at the time so I had a lot of reason to use it. I think the best way to use the terminal is to force yourself to use it, programming is great for this but you can try e.g. sorting your photos or mp3 files or something as practice too.
Just giving my +1 about what others have said:
in terminal man to get an overview of a command and usage, tldr.sh is a “tldr” of those same man pages simplified, and apropos to search man pages by description to find things you wanna do.
Ex usage:
man apt
gives an overview of how apt works
tldr apt
gives a quick overview of how apt works (after installing it, or using the site tldr.sh)
apropos compress
this will search man pages and output a list of commands that have “compress” in the description
here’s the theme https://github.com/dhrm1k/nostromo.vim. feel free to use it. fork it. edit it.
1. first test: sum of squares up to n (n = 10^6)
results:
using for-loop:the generator was slightly slower than the for-loop, which was surprising, since i expected the generator to be faster.
time taken: 0.271047 seconds
memory used (result): 32 bytesusing generator:
time taken: 0.278367 seconds
memory used (result): n/a
2. increased complexity test:
next, i made the test more complex by adding conditional logic (square even numbers, double odd ones) and using dictionaries instead of lists. the results were something like:
Using for-loop:yes, now the generator was faster, though slightly. it appears the change is only there when the dataset is bigger. #python
Time taken: 0.998669 seconds
Memory used (result): 32 bytesUsing generator:
Time taken: 0.990227 seconds
Memory used (result): N/A
@dharmik For an eye-opening deep dive on comparing generators which I have for many years recommended to *everyone* learning Python, see David Beazley's classic talk "Generator Tricks for Systems Programmers". The slides linked here stand completely alone. https://speakerdeck.com/dabeaz/generator-tricks-for-systems-programmers-version-3-dot-0
Would it be possible to have a linux DE with that high quality like macOS? The last 3 years i did a lot of distro hopping. Im really Happy with gnome and ubuntu now ( reason was the rocm Installation script for my 7900xtx). Currently i donate whenever i use a Software more frequent. So i also would pay for a such good Look like on an iMac from my wife. Currently i use 4k Resolution and coloring settings with my spyder color camera.
Gnome is just as beautiful as MacOS. The only difference is that MacOS is colorful, while Gnome is more b&w in its design. In fact, I’d say that gnome is more modern than macOS in its overall design philosophy. So modern, that some people hate it, lol. But modern nonetheless.
You won’t get the same united look in Gnome as in mac OS. Applications will look a bit different and not exactly the same.
I think you get used to it though. I don’t think about it at all anymore.
Not really true if you just stick to modern GTK apps. Almost always if you find a program for a specific purpose using Qt (KDE graphical framework) someone’s make a program for the exact same function. Is it basically pointless other than keeping theming and style consistent? Yes, but that’s enough for me unless there truly is an essential function missing. Basically the only Qt application I use is Strawberry Music Player because it’s extremely featureful.
Consider adding the Dash To Panel extension. It was the polish Gnome was missing for me: extensions.gnome.org/extension/…/dash-to-panel/
I’d also be a bit remiss if I didn’t recommended WinTile, too: …gnome.org/…/wintile-windows-10-window-tiling-for…
I find Gnome smoother than macOS.
This wasn’t the case many years ago, but now I find Gnome pretty good, the amount of bugs are surprisingly low.
On the other hand, I experience glitches on macOS regularly on the UI, especially on a multi-monitor setup (I use both Gnome and macOS with multiple monitors).
And generally feature-wise I find Gnome a lot more convenient to use in terms of window or workspace management.
On the other hand, I experience glitches on macOS regularly on the UI, especially on a multi-monitor setup (I use both Gnome and macOS with multiple monitors).
Multi monitor and window tiling on Mac are so bad, they should be embarrassed.
You have to click to switch monitors but if you do it twice it registers as a double click so you have to click…wait…then click again.
Sometimes you can drag windows from one screen to the other and other times they just…disappear as you drag then across.
You can’t close anything from the window buttons and the red and yellow buttons do the same thing. You have to go into the taskbar and right click to close them.
Then they took the time in Sequoia to add window tiling but it’s just such an awful experience. You have to hover over the green dot and wait for the prompt to popup and choose from a drop-down menu. WHY CAN’T YOU JUST DRAG AND DROP!?
You have to click to switch monitors but if you do it twice it registers as a double click so you have to click…wait…then click again.
You don’t switch monitors, you switch windows. That is how it works for all windows. It’s like that so you can click anywhere in a window to focus it without activating something in the window by accident.
You can’t close anything from the window buttons and the red and yellow buttons do the same thing. You have to go into the taskbar and right click to close them.
You can close windows with the red window button, and the yellow button minimizes a window. Absolutely not the same thing. The whole application you can close via the dock, or the menu bar, or cmd+q. Two different things.
Some apps have a single main window though which will reopen when the dock icon is clicked (e.g. Mail), but that is still different to what the yellow minimize button does. The distinction is much more useful for document style apps like TextEdit which can have multiple windows (or none, if no file is open). There is also Hide which hides the entire application and all its windows until it’s activated again.
Then they took the time in Sequoia to add window tiling but it’s just such an awful experience. You have to hover over the green dot and wait for the prompt to popup and choose from a drop-down menu. WHY CAN’T YOU JUST DRAG AND DROP!?
You can absolutely drag and drop to tile windows, and there are also keyboard shortcuts for it. Check the Window -> Move & Resize menu for that.
You don’t switch monitors, you switch windows.
Well, theoretically yes. On a Mac, no.
It’s like that so you can click anywhere in a window to focus it without activating something in the window by accident.
Why would I want to do that? Why does double-clicking suddenly remove that need?
You can close windows with the red window button
No you can’t. It just minimizes them. Just like the yellow button.
You can absolutely drag and drop to tile windows
Like I said, sometimes you can, sometimes you can’t. Apple does not give any fucks about consistency or intuitive design.
and there are also keyboard shortcuts for it
Well, theoretically yes. On a Mac, no.
Yes, even on a Mac. Necessarily so since it strictly places windows on one monitor. You’re always switching to a window on another monitor.
Can you give an example of what you’re talking about?
Why would I want to do that? Why does double-clicking suddenly remove that need?
So you can activate a window without first having to find a free space in the UI to click on (especially if it partially overlaps). It much increases the surface to click on to focus a window and therefore makes it faster since you can be more inaccurate in where you move the mouse.
What need?
No you can’t. It just minimizes them. Just like the yellow button.
It does not.
Can you give an example of a window that gets minimized by clicking the red button?
Like I said, sometimes you can, sometimes you can’t. Apple does not give any fucks about consistency or intuitive design.
No, drag and drop tile actions always work, even if it doesn’t entirely make sense (e.g. windows that can’t be resized).
Can you give an example of a window that it does not work with?
So you can activate a window without first having to find a free space in the UI to click on (especially if it partially overlaps)
That would make sense if they were overlapping. They aren’t. There’s no need to “focus” the window.
What need?
The need to focus on the window before clicking?
Can you give an example of a window that gets minimized by clicking the red button?
I don’t understand the question. All of them.
drag and drop tile actions always work
No. It doesn’t. I’m beginning to think you’ve never used a Mac.
Can you give an example of a window that it does not work with?
I can’t. Because it’s completely inconsistent and I have no idea why or how.
That would make sense if they were overlapping. They aren’t. There’s no need to “focus” the window.
Window focus is important for things like determining where keyboard input goes. If you want to type text into another window that isn’t focused, you need to switch focus before continuing to type so your text goes into the right window.
The need to focus on the window before clicking?
It doesn’t delay the click action for a double click because it already does it for a single click, so it would be pointless to do the same for a double click. If you’re double clicking, it’s pretty much always because you actually want to double click on something specific in the UI.
I don’t understand the question. All of them.
Skill issue.
No. It doesn’t. I’m beginning to think you’ve never used a Mac.
I use a Mac almost as much as I use Linux, which is almost daily, right now exclusively even since I’m not at home where my Linux computer is.
I’m beginning to think you’ve never used any computer since you don’t even know what window focus is for.
If you want to type text into another window that isn’t focused, you need to switch focus before continuing to type so your text goes into the right window.
No you don’t, you just click the text box. Once. This works perfectly, and as expected, on Windows and Linux.
If you’re double clicking, it’s pretty much always because you actually want to double click on something specific in the UI.
Except it’s not. It’s because you’re trying to bypass the annoying ass “focus” feature.
Skill issue.
Okay so we’re moving onto personal insults now, I suppose.
I’m beginning to think you’ve never used any computer since you don’t even know what window focus is for.
Every other computer I’ve used works normally. Only Mac has this annoying ass “feature”.
As others have said, it is not entirely clear what you mean by sharp. Based on the rounded corner and button example you gave previously, I think it might just be the graphic design. MacOS has had a lot of time invested into its design language including subtle things like a thin, almost glass-like specular border around windows and then a drop shadow. This very much becomes a matter of taste in many cases, but for some it helps identify boundaries more precisely. Perhaps have a look at github.com/vinceliuice/WhiteSur-gtk-theme, which replicates MacOS as closely as possible. You may be able to experiment with it side by side and see if you can figure out exactly what design element it is that you are looking for.
Have you tried theming gnome? There’s a ton of videos on youtube if you’re a beginner, i wonder if you’ll have the same thoughts after theming it
Do yourself a favor and ditch GNOME for KDE. You’ll be glad you did. Especially if you’re into theming.
I tried to do that a little while ago, but I just couldn’t get used to the Menu on kde. Even with themes, it was miles behind ArcMenu on gnome.
Because Linux doesnt compete with MacOS? Linux doesnt compete against any other OS because unlike Windows or MacOS Linux isnt owned by a for-profit organization (Linux doesnt have something to sell). Gnome is driven by community efforts to polish a community maintained set of tools, I would say theyve done a very good job.
So from some of your comments, it seems that by sharpness, you are referring to the sharpness of text in gnome on high resolution displays (4k in your case) when compared to macos or windows. Well in my experience, text rendering in Linux hasn’t been as good as the macos or windows but it been improving steadily. If I remember correctly, the issue lies in the anti aliasing done to text to make them sharper. Somebody please correct me if I am wrong.
Also maybe edit your post to mention that the high quality you are talking about is the sharpness of font rendering.
vsplit | term
to split when using #vim and get stuck into a buffer where you can't then change the window, i got you.add this to your config:
" Use Ctrl + ] to exit terminal mode and return to normal modealso, did you know that
tnoremap <C-]> <C-\><C-N>
C-]
works like Esc
. i don't know why.@dharmik as for C-] and ESC being the same, I think they both are represented by the same ASCII code. Like C-i and TAB.
@dharmik woops, I think it is ESC and C-[ that are the same. Sorry for the noise.
On computer keyboards, the Esc key Esc (named Escape key in the international standard series ISO/IEC 9995) is a key used to generate the escape character (which can be represented as ASCII code 27 in decimal, Unicode U+001B, or Ctrl + [ ).this is what wikipedia says. though the thing that surprises me the most here is that it is written which can be represented as ASCII code in ... ... or Ctrl + [
@dharmik not that surprising. The terminal doesn't have much leeway wrt keybindings. This is alleviated by modern terminal emulators like kitty. I'm not really sure since I use a dumb terminal 99.9% of the time.
@dharmik I went thru the devblog and most of the features there are stuff I dont need or already have thanks to me using (1) Emacs and (2) not wanting terminal emulation at all: I prefer the Plan 9/9term/Acme's win way of working since I am not constrained to work in a "single dimension"
-> None
with functions.this is a topic i’ve been heavily involved with because i still consider myself to be someone who prefers using technology at a very beginner friendly level, plus it’s very good when a linux operating system makes you feel right at home when it has a modern desktop environment. this is why i really like gnome, its simplicity and usability is something available for everyone, for beginners and for a lot of other people, but if you had to, say, rearrange xfce or kde for someone who was an elderly person or an absolute beginner so that they wouldn’t have any trouble using linux, how would you do it? (screenshot is my current linux mint desktop, very simple and extremely user friendly!!!)
Honestly, there isn’t much to it when setting up Linux for elderly people - in fact, I find it less troublesome than setting it up for a teenager.
Most often the issues regular users face with Linux are related to installing packages from external sources or broken updates. Elderly people tend to not do that.
Set up a stable distro like Debian, Linux Mint or Ubuntu LTS with KDE Plasma or Cinnamon, install LibreOffice, Okular and a browser with strong ad blocking, and any other applications you think they might need. Enable a simple firewall, hide the root / folder from the file browser’s sidebar, and you’re done.
I wouldn’t bother with immutable distros, Flatpaks are nice and all until permissions turn using a simple app a confusing chore with broken interactions.
All good ideas, IMO.
And I had to look this up, so:
en.m.wikipedia.org/wiki/Okular
Okular is a multiplatform document viewer developed by the KDE community and based on Qt and KDE Frameworks libraries. It is distributed as part of the KDE Applications bundle
And I’m a KDE user! ʘ‿ʘ
Yep! Okular is amazing, and it’s available on Windows too. Install it for someone and they’ll never bother you again about PDFs or EPUB documents, it’s performant and everything works: printing, resizing, selecting text, searching, signing, adding comments. Never worry about paid PDF software or shady slow apps that keep trying to gatekeep features.
Remember the “Jitterbug” mobile phone made specifically for older users?
Kindof in the spirit of that.
Don’t hide things in a “start menu” or anything like that. No task bar. Just put a small number of big icons on the “desktop”. Open all applications in fullscreen. Don’t allow two applications to run at the same time. Optimally, the browser wouldn’t be as general-purpose as Firefox or Chromium or whatever. No address bar. Just links to a few bookmarked sites. In fact, no home page on the browser would be good. Just make the websites they have available to go to more icons on the GUI’s main desktop. Don’t make them right-click for anything, only left-click. But make it easy for people’s family to get at the guts, including remotely, to customize the experience for the intended user.
ChromeOS is already an operating system for children. Like, literally. Schools use it because it works well and is really easy to use, and runs on very cheap hardware.
For elderly people, an interface with options to have big icons and accessibility options would be very helpful; and accessing a program should take no longer than 4 clicks via mouse, or 6 keyboard keys.
GNOME interface succeeds well in that, as you can click Super key and be able to search between all the existing apps. Or the top left Applications menu could be used to browse through all programs.
For beginners in tech; GUIs for installing programs would be a big help. New people might see writing console commands for installing programs complicated, compared to other OS’s show their app stores in a visible location. Also do not make users search for graphics drivers.
Mint and Fedora based distros already do it good
Any more simpler and it would be an atomic distro that focuses mainly on flatpak and chromium
I have both my parents on KDE with essentially the defaults. They came from Windows 7, so many things were familiar to them, like the systray in the bottom-right, the start-menu in the bottom-left and so on.
I mostly decided to go with KDE, because I use it myself. My dad can be extremely negative, so being able to tell him, nope, it works on my machine, often defuses the situation. But I also expected my parents to potentially want lots of little tweaks, which well, it didn’t happen.
They use a browser and a printer, that’s basically it. I have considered setting up an E-Mail client for my dad, and thought about setting up tiling window management for my mum, but done nothing so far. The OS could boot straight into Firefox and they would hardly notice.
As such, I’m definitely fine with how little problems they’ve had using KDE.
One time, I noticed my dad had a million tabs open in the file manager, because that got updated to remember open tabs, and something he did, would always open a new tab in there. Another time, he had managed to create a second panel, which sat at the top of the screen wasting space.
So, it would be somewhat nicer, if he couldn’t do that stuff, but at the same time, it’s not really a problem and I learned computers by dicking around, too, so I really don’t feel like I want to lock that down somehow.
A dumb thing he did one time, which he could do independent of the desktop environment, is that he deleted all the folders in his home-directory. Intentionally. He has this habit of cleaning everything up, completely disregarding that he has like 99% free storage space. Again, he doesn’t really use much beyond a web browser, and he didn’t find out about hidden folders, so the only real effect was that his wallpaper disappeared.
I don’t think that’s the answer you wanted, but yeah, I would not want to lock them down to prevent this stuff from happening, unless it really becomes a problem.
As someone who used to sell computers to elderly and people who are generally non tech literate, as well as ran computer literacy courses;
ChromeOS + something like flatpak. I don’t think anything else will really work in the current linux world. Holding on hope for Cosmic based DE.
A Distro must have
Reliability is so fucking key here I can not understate it. The computer glitching out is entirely unacceptable. They will not be able to do any debugging nor will you likely be on call 24/7 to fix their issues. They also need security so you can’t just “set and forget” either with no updates in a false sense of stability. Older folk copy and paste shit. Permissions and stability is key here. Flatpak has a lot of potential but it’s not there yet.
No real time AV really hurts here.
Extremely strong app selection with either android or wine app support. Wine is the most preferable. A lot of people are reliant on windows programs for things like tax filing and all sorts of stuff like crochet software and what not. Android apps however can often be good enough and are extremely simple so with a little help, and you will need to help, they can get by with android app support.
A11y, screenreaders, OSKs, maginifers etc. We need all of it if we want to fit the “generic elderly support”
Good performance. Elderly people do NOT like updating systems, Their systems will likely be old. And well they are old too. If a system is slower then what they are used to, and generally non responsive, they may think the bloody thing is broken. cough cough gnome cough cough
I genuinely do not that that any DE let alone distro is an acceptable daily driver for “general people” because general people have such a wide variety of use cases and needs. Some folk need crochet and tax software, some folk need CNC software like stitchfiddle, Some need magnifier glasses and speech to text. and man, this is only the more common of things i’ve seen.
Remeber folk, a PC that does 99% of what people generally need, does not mean that it will fit the needs of 99% of people. Here is hoping to a bright future, but I don’t think it will be a close one.
I would try to copy the usability of macOS/Windows as much as possible without being different for the sake of being different. They should never have to look at the command line if they don’t want to.
These are solved problems.
Mint/elementary are good if on windows 10/Mac respectively
What I would say is what is your reason for converting people, because you’re going to end up as permanent tech support this way when they’d have probably been fine with a Mac or something
Auto update only critical and likely attack vectors (the kernel, network stack) and have them applied when shutting down, have visual hints that explain to them what each thing is and make it immutable.
Those newfangled immutable distros might benefit them, since they’re unlikely to want to or care about modification, and it’s extra security.
Set up the web browser with a strong ad-blocker, maybe whitelisting YouTube since non-techy people are unlikely to know what to do if youtube throws up a stink about the adblocker.
Set up auto-updates maybe. For safety and such.
Otherwise make sure it looks like a dead ringer for whatever they are already used to (usually Windows) – Same background, icons in the same places and looking similar if not the same, panels set up the same way, etc. – This is easier with Cinnamon or KDE Plasma. Gnome… Even if you like it, it’s too different, yanno? Unless they’re coming from Mac, and even then it’s not the same.
P.S.: Lovely background of a gay bird prince. <3
I stopped liking gnome. Let’s say you try to launch a wine game and it just doesn’t launch. There’s no icon to right click on to find out which wine profile it’s launching from. The quick launch icon is just there, teasing you and not doing anything useful.
I can right click on a desktop icon in KDE and do something useful with it. KDE has gotten better. It’s no longer super buggy on Wayland with Nvidia.
Something that automatically updates. Despite my best efforts my mom still has me update her Mint install.
No, Gnome is a non-starter for being as mouse negative as it is. You are very heavily supposed to use Gnome with keyboard shortcuts and it will only sometimes begrudgingly allow you to use the mouse.
I also really want to kick the app drawer in the head. Why is it two operations deep? Why can’t it be sorted by category like every other Linux app menu?
I would go with Mint Cinnamon, increase font sizes or UI scaling, switch to the Cinnemenu because it offers bigger square icons rather than a tiny list, turn off a lot of its extra features, and put launchers for commonly used applications on the desktop. Configure updates to automatic, and otherwise sand down a few rough edges and I think you’re good to go.
@wendynather @DeltaWye @Wrewdison @catsalad
Well then, allow me to join the Frame.Work party!
@dharmik negative, backlit keyboard with a matrix pattern for raining text.
You know you're in trouble when the error message has only a single search hit ... and it's the GitHub source for the tool that produced the error.
You know you're in trouble when the error message has only a single search hit ... and it's the GitHub source for the tool that produced the error.
A raycaster in common lisp
using the repl is awesome.