• 0 Posts
  • 76 Comments
Joined 2 years ago
cake
Cake day: June 10th, 2023

help-circle
  • I understand, and I agree, although I’m reading all the replies are already becoming wall of text so I’ll skip parts but I have read them and they’re all interesting.

    I’ve landed on Night.

    That looks interesting, although I would be weary of learning a layout that only works on specific keyboards, it will make it hard for you to use a laptop on the go, work in an office with a normal keyboard or any other similar situation.

    Furthermore, how bad did things become?

    I think it’s easier if I answer this first. At the worst I had problems holding heavy stuff in my hand, as in fingers lackesld strength or didn’t respond properly. And for my lower back at the worst it was constant pain where I needed to lay down with a pillow on my lumbar to stretch. After fixing those I became very aware of the initial feelings, such as numbness or feeling pain when stretching (which btw I strongly recommend you check out wrist and finger stretching exercises as they help a lot). Lots of the changes I made (e.g. split ortholinear keyboard) were probably not needed, but the wrist pain that kickstarted everything got me worry enough that I don’t want to take any chances.

    After a couple of hours, I do experience strange sensations that border on pain. Furthermore, there’s (almost) always some level of unease/discomfort. Thankfully, resting continues to feel good and I get especially revitalized after sleeping well. But I acknowledge that this isn’t sustainable.

    It’s not, those are exactly the early signals that you asked me about, you think that because you’re able to rest and stretch and it goes away that it’s all fine, but it will require ever more stretching and resting until they don’t go away ever. At least that’s what happened to me, at the beginning I would stretch my wrist and fingers and rest for a while and be fine, eventually that became next day I’ll be fine, then over the weekend, then never.

    Wrist pain and fingers that feel wacky. So, this is basically carpal tunnel 101.

    That’s exactly what I had, although mine was never actually diagnosed, but I had all of the symptoms and my dad had to do the surgery so I have family history. It does get better if you adjust, I don’t feel any of the symptoms I once did, and it is sustainable I haven’t had any symptoms in about 10 years since I switched to a more keyboard centric flow and the layout, so putting in the work does help out. I should say I had 24 years when the symptoms first appeared, so it was kindof young which was one of the reasons I got very scared about getting those symptoms so early.

    org-mode seems to be Emacs’ forte.

    Org-mode is absolutely wonderful, I haven’t tried any replacement because the reason I abandoned org-mode wasn’t emacs related, I kept using emacs for org-mode for a while after I dropped it as my main editor. The reason is that there’s no compatibility with other editors or apps. Everything uses markdown, and for most basic stuff markdown is good enough. I do miss habit tracking, task management, table calculations and other neat stuff, but the commodity of using the same format for everything and that other people use it as well outweighs all of that for me.


  • Curious to see this at the very top of your list. Perhaps I should make my switch to Sway rather sooner than later. Thank you for the endorsement!

    For me it was a lot off wrist pain, so switching to a more keyboard centric way of interacting with the WM was very impactful.

    I intend to learn this with the alt keyboard layout after the more ergonomic split keyboard has arrived. Wish me good luck 😉!

    Which alternate layout are you considering? I recommend grabbing something you typed and feeding it here to check heat map of keypresses you would have done to have some visual representation of your usage.

    So I suppose that by effectively removing most need for a mouse, the switch to a trackball has been less impactful.

    Bingo, I actually switched to trackball before going to keyboard centric WM, but after it I’ve even gone back to mouse a few times feeling almost no difference, because I end up using the mouse a lot less.

    Btw, perhaps related, would you happen to be aware of hints? If so, could you touch upon its relevance?

    I have, not exactly it but similar stuff, I used to use a browser called conkeror that had emacs key bindings, and have tried to learn a very similar system to hints in the past. Honestly, when I has lots of wrist pain they were useful to completely remove the need of a mouse, but they’re clunky and not as efficient as a pointer so I tend not to use them.

    Curious. Is this a special ergonomic chair (or something)?

    Nope, just a Secret Lab Titan Evo, but any good chair would do, I spent a year with a cheap Amazon chair and had lots of back pain.

    Did you advance/progress in increments because you were testing out the latest addition to the setup? And thus, only introduced a subsequent change after judging that you were not ‘done’ yet?

    It was more of a gradual thing, I had wrist pain, so I switched to a trackball, that helped but didn’t got rid of it. So I tried AwesomeWM, found Conkeror and slowly the pain started to fade away and I dove deep into the keyboard centric thing learning touch typing and Colemak. Eventually other issues came on, like pinky strain from Emacs, or a different kind of wrist pain from a small keyboard that made me switch to a split one, or back pain that made me invest in a good chair. I don’t think my setup is “done”, it adapts to whatever my body is asking, but I’ve started to listen carefully and switch stuff on the early signals because that first wrist pain was an eye opener on how bad things can get if you ignore them.

    I am so glad to read this! While the journey until I am able to interact with my systems without any pain seems far away right now, success stories like yours make me so pumped to pull through.

    Do you feel pain now though? If so what? You should address that immediately. At most points I would have answered that I felt no pain with my setup, because those things build up gradually, if you’re at the point of feeling pain the time to take action is now.

    About the emacs plugins, yeah, by the name I can tell you those do the same to the ones I cited, my point is that the plugin ecosystem for it might be a bit less extensive, and not sure how to set shortcuts that use vim key bindings for other plugins.

    I would only try out Emacs or Neovim through a opinionated config.

    Why? Having had an emacs config that I copied from somewhere and ended up growing and becoming something unmanageable, I’m have a very strong opinion that one should build your own config files from scratch to know them. Presets are good if you’re going to be using them bare, but if you’re going to customize them they can get in the way. And that’s another point for Nvim for me, their configs are very easy, I followed this guide and had a working config that I could easily expand in no time.

    org-mode FTW

    Ah, I miss org-mode, it’s too bad the world went with Markdown instead.

    Granted, I’m still very much enjoying Emacs. But, I shouldn’t disregard/dismiss Neovim any longer. It’s time to revisit this rabbit hole 😂.

    Meh, maybe, maybe not, Emacs is great, I just never would have gone with evil mode, it sort of feels like it defeats the purpose of both emacs and vim in my mind for some reason. It’s like if someone told you they put a Ford engine on their Chevrolet, it feels convoluted and strange to think on that solution before thinking of using a Ford.


  • Hey, yeah, I know the feeling, every time I lose an already typed reply I completely lose motivation to rewrite it.

    Yeah, my pinky strain issue is completely gone, I also used to have some more pain on my wrist which made me go through a very similar journey to you, I took many steps for it to the point where nowadays my setup is (in order of what I think has made the largest impact)

    • Using i3/sway as my WM for a keyboard centric usage
    • Switching to Colemak and learning touch typing properly
    • Split ortholineal keyboard (crkbd)
    • Trackball instead of mouse

    I’ve also got a height adjustable desk and a good chair to prevent issues with my back, and my monitors use an arm to be in the right position. It was a slow process of making one change here, few months later another z etc, but this has been my setup for a few years and all of my pains in wrist, lower back, neck, etc have disappeared. I figured if I’m going to ve sitting in front of a computer typing stuff for 8h a day I need to make that as comfortable as possible to be able to do it for longer.


    As for emacs with evil mode I was sure that ci" would work, that’s basic vim functionality, what I’m less sure would work is more complex stuff for which I use plugins, e.g. <space>srq" (Surround Replace Quotes with ") to replace the next quotes for " (e.g. changing var = 'some text' to var = "some text"). That same plugin allows me to also do <space>srb[ to Surround Replace Bracket/Braces with [ (to change the surrounding [, (, or { to [ ). Another plugin allows me to move to any part of the screen in 4 keystrokes, I press s the two characters of where I want to move, and a third disambiguation character and the cursor moves there. Those are advanced usages that I think will be difficult to reproduce in emacs, plus plugins will not incorporate the basic ideas for movements.

    May I ask why emacs in evil-mode instead of Nvim?


  • Docker is a virtualization platform, similar to setting out a Virtual Machine but a lot less resource intense. You need to:

    • install docker on your machine
    • Start/enable the service (this is usually done automatically on most user friendly distros, and if you’re using one that doesn’t I expect you to know how to do it)
    • Add your user to the docker group

    That’s it, docker setup done, now you need to write a compose file, i.e. something that tells docker what do you want to run, usually you get a working example on any project website, and linuxserver.io is a great site for them too, for example for Jellyfin can be found here: https://docs.linuxserver.io/images/docker-jellyfin/

    Just create a folder, create a file called compose.yaml there and put that content in it, now run docker compose up -d and congratulations you have a working Jellyfin server.

    With time you’ll learn what the compose file is doing, for example the ports map ports from the docker to your machine, volumes does the same, so for example the example has /path/to/jellyfin/library:/config if instead you write ./config:/config a folder called config will be created on the same folder the compose.yaml file is and inside the docker it will be mounted as /config which is where Jellyfin will look for configurations. In the same manner you can add /home/myuser/Movies:/Movies and inside docker you will be able to see the contents of /home/myuser/Movies when scanning the /Movies folder.


  • Yes, evil-mode would have bridged the gap, however I didn’t go emacs -> vim in one step, I left emacs back in 2017 because of pinky strain, and other ergonomic issues that made me switch keyboard layout as well (which made me lose lots of agility on emacs) and started using Pycharm for python dev, VSCode for other languages (including Markdown for note taking) and nano for system file edition. I tried some of the other suggestions here like atom, sublime, Kate, etc, but they never became my everything tool like emacs used to be. Very recently I discovered Helix, and I gave it a try and loved it, however the lack of plugin support made me have reservations on diving in. But the interaction mode is very close to vim, so I decided to give vim another go and went through a few tutorials on how to set Nvim up while refreshing muscle memory for vim movements and learning new stuff and it’s slowly becoming the everything tool that emacs once was for me.

    All of that being said, I don’t think I would use evil-mode on Emacs, the reason is that vim is made with those motions from the ground up, whereas in emacs they will be an after-thought so it will probably not be integrated enough (or more likely will require lots of configurations).

    I wasn’t able to see for myself how cin" worked within Vim*.

    It’s simple, imagine you have a line of code like so:

    my_var = "some string with spaces"
    

    If your cursor is almost anywhere on that line pressing ci" will erase the contents of inside the string and place you in insert mode, i.e. the line will look line this:

    my_var = "|"
    

    With | being the cursor in insert mode. There are other similar things, for example ca" (Change Around ") will also erase the quotes, very useful for example to change a hard coded string with a variable.


  • If you had started with that people would have told you that nothing comes even close. The closest things you will find are Atom (archived), Sublime (closed source) and Helix (still very new and no plugin support, but something to keep an eye on).

    Speaking of obsidian, the reason why it took me forever to start using Silverbullet is that Emacs has org-mode which does most of what Silverbullet/Obsidian do out of the box, plus some other stuff that they don’t do (e.g. excel like tables).

    But I wanted something I could edit remotely through my phone and web interfaces are better than using text editors over ssh connections. Also I have migrated from Emacs to Nvim, the reasons are purely ergonomical (pinky fatigue is a real issue) but after switching I found a jump in the way to think about an editor. Emacs is great, don’t get me wrong, and if you decide to learn Emacs I can assure you it will be the best editor you’ve used, but it still edits things at a character level, while there are concepts for matching brackets or quotes changing the text inside quotes in Emacs is very character oriented, I.e. go to start of quote, start marking, move to matching quote, delete, whereas in vim is sort of a higher level language where you say Change Inside Next Quote using cin", and expanded with some plugins you can even do srnq' to Surround Replace Next Quote with ’ (which will change the quotations on the next text from whatever to '). And that’s a lot closer to the way I think so it skips a mental step (plus it’s a lot less keystrokes and no Ctrl for my pinky).

    But those are the reasons why I switched, many people use Emacs for decades without ergonomic issues, whichever of the two you decide to learn you’ll understand why they’re the staple editors for most people who actually choose an editor.



  • sigh can’t believe that no one mentioned that there is a default set of shortcuts that are used across all GNU programs, and it’s been the default since way before Ctrl+C/Ctrl+V existed. You can easily copy/paste stuff in any terminal using the same keypresses you would on Emacs, I.e. Ctrl+space to start selection, Alt+W to copy and Ctrl+Y to paste. In fact you can navigate the entire line the same way, not just copy/pasting but moving back and forward, selecting and deleting stuff, e.g. Ctrl+A Ctrl+K cuts the entire line.

    Unless you activate Vi mode (which most terminals support) and then you can use the same keypresses you would on Vi, including ci" and other cool stuff that’s much more powerful that simple copy/paste.

    There is a default, it’s just not the same as word uses.



  • Will my ability to play games be significantly affected compared to Windows?

    Depends on what you play. As a general rule I would say that unless you like competitive multiplayer games you’re probably going to be fine. That being said the vast majority of games don’t support Linux natively so you need to use workarounds. Steam has a workaround built-in, so if most of your gaming is through Steam it should be an almost seamless transition (all you need to do is enable a checkbook in the settings). But like I said, it depends on what you play, I recommend you check out https://www.protondb.com/ and look for the games you play to see how they run on Linux.

    Can I mod games as freely and as easily as I do on Windows?

    Same answer as before, if the game runs okay then modding it would also work okay, but if not it might worsen an already bad situation. Also be very careful here, because when you run Windows games on Steam they’re sort of sandboxed, i.e. they’re running isolated from other stuff, so installing mods is not as straightforward as it would be on windows where binaries are installed globally. It’s not a big deal, but just the other day someone was complaining that they installed a launcher needed for a game and the game wasn’t finding it and this was the reason.

    If a program has no Linux version, is it unusable, or are there workarounds?

    As a general rune there’s a workaround, it’s called WINE (which is an acronym for WINE Is Not an Emulator) which is an “emulator” for Windows (except it’s not really an Emulator as the name implies). Then there are some apps built on top of that like Proton (which is what Steam has embebed) that include other libraries and fixes to help. It’s not perfect, but unless the program is actively trying to detect it or uses very obscure features on Windows it should work.

    Can Linux run programs that rely on frameworks like .NET or other Windows-specific libraries?

    Yes, you can use WINE like mentioned above to run Windows binaries that use .NET, but also .NET core is available for Linux.

    How do OS updates work in Linux? Is there a “Linux Update” program like what Windows has?

    Oh boy, this is the big one, this is the Major difference for m Windows to Linux. Linux has a thing called a package manager, ideally everything you install gets installed via that package manager. This means that everything gets updated together. And here’s the thing, we’re not talking OS only stuff, new version of the kernel (Linux)? New version of the drivers? New version of Firefox? New version of Spotify? All gets updated together when you update your system. This is crucial to the way Linux works, since it allows Linux to have only one copy of each library. For example, if you have 5 different programs that use the same library, in Windows you’ll have 5 copies of that same library, because each program needs their own in the specific version, but in Linux since they will all update together it’s easier to have just one library that gets updated together with the programs. This makes maintaining Linux a piece of pie in comparison, just one command or one click of a button and you’re all up to date with everything you have installed.

    How does digital security work on Linux? Is it more vulnerable due to being open source? Is there integrated antivirus software, or will I have to source that myself?

    As a general rule open source programs are more secure than their counterparts. Closed source programs always remind me of Burns going through several security measures, that sort of thing is imposible in open source because if everyone can see all of the security measures, so someone would notice the gaping hole in the back, whereas in closed source only attackers might have found it. Like cyber security experts say: Security by obscurity is not security. As for Antivirus you don’t need to worry, Linux is inherently more secure than Windows, and also has a small enough user base (most of whom are security experts) so the number of virus written for Linux is extremely small. Also because you should install stuff through a package manager it’s very difficult to get someone to download a bad binary since there’s lots of security in the package manager to prevent this sort of thing. In short almost every antivirus program for Linux checks your computer for Windows viruses to avoid being used to store or transmit viruses to Windows computers, so it’s completely pointless in your home machine (it’s used for example in email servers).

    Are GPU drivers reliable on Linux?

    Yes… But actually no. It depends, if you have a relatively modern AMD GPU (as in last 10 years) the answer is a resounding YES, AMD currently has wonderful Linux support and their cards work excellently with drivers being fully open source and integrated into the Linux Kernel. For Nvidia the story is unfortunately not as nice. Essentially there are 2 drivers available, nouveau (open source driver written by the community and purposefully hampered by Nvidia) and nvidia (closed source driver written by Nvidia that has gaping incompatibilities with Linux). Since you game your only option is nvidia, while nouveau is great for several reasons it can’t match the performance of the nvidia driver. For 99% of stuff the nvidia driver should work fine, but I haven’t had good luck with getting Wayland to run on it, which means you’re probably stuck in X11 (I know this doesn’t mean much to you, but in short it means that you’re somewhat limited in your choice for graphical interface and have to use stuff that people are trying to deprecate but can’t because of Nvidia)

    Can Linux (in the case of a misconfiguration or serious failure) potentially damage hardware?

    Technically yes, so can Windows by that matter. But realistically no, unless you’re writing your own kernel drivers you won’t be in any position to cause hardware damage.

    And also, what distro might be best for me?

    I would probably go with Mint, it’s beginner friendly and I’ve been recommending it for decades. One thing to bear in mind is that in your knowledge level the distro you choose won’t make that big of a difference, try to pick something beginner friendly and you should be fine, no need to overthink this.

    PS: some extra notes that you didn’t asked but I think are good to know:

    • Any Linux can look like any other, it’s just a matter of installing the right packages
    • You should keep your / and /home in separate partitions, this makes it possible for you to reinstall (or even change distros entirely) without losing your files and configuration. This is due to how Linux manages partitions, which in short is not like on Windows where you have a C and D drives but instead any folder can be a different partition or disk.
    • You can dual boot, i.e. have 2 OS and choose which one to use every time you turn on your computer.
    • You should probably install Linux on a virtual machine first to check it out safely. And do a backup before installing it on your computer just in case you make a mistake.


  • First to answer your main question if I were you I would try NixOS, because it’s declarative so it’s essentially impossible to break, i.e. if it breaks for whatever reason a fresh reinstall will get you back to exactly where you were.

    That being said, I know it’s anecdotal but I have been using Arch for (holy crap) 15 years, and I’ve never experienced an update breaking my system. I find that most of the time people complain about Arch breaking with an update they’re either not using Arch (but Manjaro, Endeavor, etc) and rely heavily on AUR which one should specifically not do, much less on Arch derivatives. The AUR is great, but there’s a reason those packages are not on the main repos, don’t use any system critical stuff from them and you should be golden. Also try to figure out why stuff broke when it did, you’ll learn a lot about what you’re doing wrong on your setup because most people would have just updated without any issues. Otherwise it really doesn’t matter which distro you choose, mangling a distro with manual installations to the point where an upgrade breaks them can be done on most of them, and going for a fully immutable one will be very annoying if you’re so interested in poking at the system.





  • You’re focusing too much on the installation process, if installing Arch was the whole of the problem things like Endeavor would be a good recommendation for newbies, but they’re not. Arch has one giant flaw when it comes to being beginner friendly, and it’s part of what makes it desirable for lots of us, and that is the bleeding edge rolling release model. As a newcomer you probably want something that works and is stable. Arch is not, and will never be, that, because the core philosophy is to be bleeding edge rolling release. If you’re a newcomer who WANTS to have that and doesn’t mind the learning curve then go ahead, but Linux has enough of a learning curve already, so it’s better to get people started with something they can rely on and afterwards they can move to other stuff that might have different advantages/disadvantages.

    We’re talking about the general case here, I’ve recommend Arch to a newcomer in the past, he was very keen on learning and was happy with reading wikis to get there stuff sorted, but realistically most people who’re learning a whole new OS don’t want to ask questions and be told RTFM, and RTFM is core to the Arch philosophy.


  • Nibodhika@lemmy.worldtoLinux@lemmy.mlAMD vs Nvidia
    link
    fedilink
    arrow-up
    3
    arrow-down
    1
    ·
    4 months ago

    I don’t want any proprietary drivers (so I am talking about Nouveau or any other FOSS Nvidia driver if it exists)

    In that case AMD, no doubt about it.

    If you were considering proprietary drivers it would still be AMD but there would be some discussion about it.


  • There are a lot of moving parts, so let’s start from the ground up. Processors are glorified input-output machines, you put electricity in some pins, and it gives you back electricity in other pins. Some of those pins define which operation you want and others give the input, so for example sending 00000010 to the operation could mean addition, so the output pins will show the result of the addition of your inputs. Each binary number can be interpreted as a decimal or hexadecimal number, but people are bad at remembering numbers, so instead we can have a table of conversion that says for example that ADD means 00000010, so you write a program saying ADD 2 3 and that’s called assembly language.

    Each processor has their own table of which operations it can do, so writing assembly is tedious since you need to know and account for all of that. Instead you can write in a higher level language where a program called a compiler will translate your code into assembly taking all of the considerations for different processors.

    So far, so good, but there is some stuff which is recurrent and requires special care. For example a processor knows nothing of the disks or memory in the system, so you need a program to be running there to manage stuff. We call that program an Operating system.

    Different operating systems do things differently, one might store things in any order on the disk to save on write speed while others might choose to align data where suitable to save on read speed. And they provide different high level APIs for it, e.g. one OS might have the open_file(char* full_path) while other could have open(char* folder, char* file). So if a program tries to call open in an OS that uses open_file the program won’t know what to do.

    Then just like OS sometimes programs try to use libraries that they expect to be installed in your system, such as DirectX on Windows. These libraries also have their own functions that the program tries to call.

    So now we get to a game which is trying to call a function from DirectX which is trying to call something native to Windows. There’s no way Linux knows what to do with that.

    So a few people realized that if they reimplemented the functions from windows but calling the equivalent functions on Linux you could get the programs to run. They also realized that you can reimplement DirectX using OpenGL calls, or more recently Vulkan. Putting those stuff together almost every call a game is likely to make calls one of these reimplementation which in turn calls the Linux kernel, which in turn calls the corresponding set of instructions on the CPU to do stuff the Linux way. The end result is that most things work, however sometimes the game developer tries to be smart and makes assumptions about how the OS will do something, and then face some errors because Linux did something slightly different.

    But the VAST majority of times when a game doesn’t work is because the game developer is actively trying to ensure you’re not doing anything weird, such as running the game on a different OS.



  • Just don’t let it go too stale, I recommend updating it a few days or a week after a release gets made, since sometimes there are patches for important stuff released the next day or so after a minor one. That being said what I do is I have an RSS feed for their releases so I get a notification when a new release has been made and can check the changelog for important information, most of the times it’s just bumping the version on the .env file.