• 17 Posts
  • 172 Comments
Joined 6 months ago
cake
Cake day: December 28th, 2023

help-circle
  • “everything is a file” is such a godsend. It makes absolutely everything so much easier and intuitive. I remember trying to get an old dot matrix printer to work using a parallel-to-usb adaptor cable. Without reading any documentation or having any prior experience I tried echo testing12345 > /dev/lp0 and it just worked lol. Meanwhile my friend spent like half an hour digging in windows gui settings trying to figure out how to print to a parallel printer.

    I also posted about this before, but a while back I had to configure my system so that a non-root user could start and stop a root daemon without sudo. On a runit system all you have to do is change the permissions of some control files and it works. On systemd? When I looked it up, the simplest solution involved writing a polkit policy in javascript 🤮


  • systemd-regedit

    That’s just dconf lol. It sounds great in theory – after all, isn’t bringing standardization to a chaotic battlefield of different formats a good thing? But in practice it’s absolute garbage. I would much rather just edit a config file. Heck, even if you program uses some obscure config format like xml or something language-specific like .lua or .py, I would much rather take a few minutes to learn the specifics of your format than fuck around with dconf. Fuck dconf.




  • I find myself inventing new curses for those who screwed things up with these overblown, over complex, minimally functional abominations

    Gosh, tell me about it. I once tried writing a custom wifi signal strength indicator app that got its information from network-manager. Apparently the only way to programmatically communicate with network-manager is through dbus, which is just terrible. Scarce to no documentation, poor support for any language other than C/C++, and once you do get it working, it’s the most disgusting and overly verbose code you’ve ever seen, just to query the status of the wifi card. Could’ve exposed the API through raw unix sockets or something, but nope, they had to reinvent the wheel on that one as well.

    Just give me vi and the basic configuration files and let me get on with it!

    I’ll take this opportunity to shill for Void Linux, it sounds like exactly what you’re describing. I’ve been a happy user for like 5 years now. I particularly like how nothing ever breaks, because there’s not much to break on such a minimal system.

    …well, actually, a few things did break over the years, but most of those were due to user error haha.






  • Thanks! I love this format so much. I can’t find it now, but one of my favourite memes in this genre was something like this:

    STOP DOING

    • Tasks were never meant to be completed
    • Years of working, but there’s STILL MORE SHIT TO DO
    • Wanted to get some work done anyway, for a laugh? We had a tool for that: it was called SIMULATION GAMES
    • “Please let me sacrifice a third of my life to justify my existence. Please let me spend eight hours a day working just to be able to do it again the next day” - statements dreamt up by the utterly deranged

    Look at what people have been demanding our respect for all this time, with all the schedules and todo lists we have built for them:

    These are REAL things done by REAL people

    <Pictures of gmail, microsoft outlook, and some TODO list app>

    They have played us for absolute fools


  • What I really don’t understand is why distro maintainers feel the need to actually go along with these changes. Like, sure, if this predictable interface naming thing worked as intended, I can definitely see how it can be useful for server administrators. You could just hardcode the automatic interface names instead of assigning them manually in /etc/mactab. But why would the rest of us ever need this? Most personal machines have at most one wifi card and one ethernet device, so wlan0 and eth0 are perfectly predictable. And even if you have multiple wifi or ethernet adapters, your networking is probably handled by network-manager, so you never actually have to put interface names into config files. Why force enterprise-grade bloat on users who just want a simple desktop experience?









  • renzev@lemmy.worldtolinuxmemes@lemmy.worldWe are not the same
    link
    fedilink
    English
    arrow-up
    11
    ·
    edit-2
    3 days ago

    Oh man are we sharing mpd scripts? I have this one that lets me search through music directory and add anything to the play queue (so I can add a single track or an entire album or whatever):

    #!/bin/bash
    
    MUSIC_DIR=$(grep -m 1 -E '^\s*music_directory\s+' "$XDG_CONFIG_HOME/mpd/mpd.conf" | awk '{printf $2}' | tr -d \" | tr -d \')
    MUSIC_DIR="${MUSIC_DIR/#\~/$HOME}"
    
    cd "$MUSIC_DIR"
    CHOICE="$(find . | cut -c 3- | dmenu)" || exit 1;
    
    mpc insert "$CHOICE"
    mpc play
    

    There’s also this one that lets me save the currently playing song to a playlist of my choice. It’s good if I’m listening to a new album or a new artist and suddenly think “yeah, this song really fits with the mood of X playlist”:

    #!/bin/bash
    
    MUSIC_DIR=$(grep -m 1 -E '^\s*playlist_directory\s+' "$XDG_CONFIG_HOME/mpd/mpd.conf" | awk '{printf $2}' | tr -d \" | tr -d \')
    
    choice="$(mpc lsplaylists | dmenu)" || { echo "No choice." ; exit 1; }
    MUSIC_DIR="${MUSIC_DIR/#\~/$HOME}"
    
    mpc current -f '%file%' >> "$MUSIC_DIR/$choice.m3u"
    

    Here’s my script to shuffle play an existing playlist as well:

    #!/bin/sh
    
    choice="$(mpc lsplaylists | dmenu)"
    mpc clear
    sleep 0.1
    mpc load "$choice"
    sleep 0.1
    mpc shuffle
    sleep 0.1
    mpc play
    

    The sleeps are to prevent Cantata (graphical mpd client) from shitting itself if I run this script while it’s open. Also notice mpc shuffle instead of mpc random on. It shuffles the current playlist, but keeps the linear play order, so that I can add songs to play right after the current one.