• 0 Posts
  • 49 Comments
Joined 1 year ago
cake
Cake day: June 20th, 2023

help-circle

  • ctr1@fl0w.cctoLinux@lemmy.mlHow can I go about using the tty only on my system
    link
    fedilink
    English
    arrow-up
    1
    arrow-down
    1
    ·
    edit-2
    4 months ago

    I’m not sure how to paste directly into a pane, but you can copy by opening up the scrollback in EDITOR from search mode using Ctrl+S e. This creates a file in /tmp so I try to make sure to clear it when I’m done.

    I usually only copy and paste between editor windows using a script that mimics xclip (automatically used by helix), and if I need to paste a command I either edit my bash history or write a script.


  • Great list. Customizing the font is definitely a priority. I recommend one of the Terminus fonts. Also zellij multiplexer + helix editor is a great combo that works well in the tty.

    One thing to add is that it took me a while to create a decent 16-color theme for helix and vim, and while they’re okay by default you can actually get a pretty nice looking IDE if you spend some time tinkering with the colors


  • Ah, nice idea. I’ve tried a few different ways of doing this, and I think what you’re seeing is a discrepancy in how the compiler handles member access into incomplete types. It seems that, in your examples, the compiler is allowing -> decltype(f.private_msg) within the class, but I think it’s not selecting do_something outside of it because it uses decltype(t.private_msg). In my case, I’m not even able to do that within the class.

    For example, since I’m not able to use decltype(f.private_msg) inside the class, I’m using decltype(private_msg) instead, which causes an error at the do_something declaration related to incomplete type (presumably because of the t.private_msg usage):

    // candidate template ignored; member access into incomplete type
    templateclass Tauto do_something(T &t) -> decltype(t.private_msg);
    class Foo {
            const char *private_msg = "You can't touch me!";
            friend auto do_something〈〉(Foo &f) -> decltype(private_msg);
    };
    template 〈〉 auto do_something(Foo &f) -> decltype(f.private_msg) {
            return f.private_msg;
    }
    

    My reasoning is that removing the t.private_msg from the declaration works:

    templateclass Ret, class Tauto do_something(T &t) -> Ret;
    class Foo {
            const char *private_msg = "You can't touch me!";
            friend auto do_something〈〉(Foo &f) -> decltype(private_msg);
    };
    template 〈〉 auto do_something(Foo &f) -> decltype(f.private_msg) {
            return f.private_msg;
    }
    static Foo foo{};
    // this works, but Ret cannot be deduced and must be specified somehow:
    static auto something = do_something〈const char*〉(foo);
    

    The reason your second example works is because the friend template inside the class acts as a template declaration rather than a specialization, which isn’t specialized until after Foo is complete:

    // the do_something inside Foo is a declaration, meaning this isn't used
    // template 〈class T〉
    // auto do_something(T &t) -> decltype(t.private_msg);
    class Foo {
            const char *private_msg = "You can't touch me!";
            templateclass T// t.private_msg is allowed because T is not Foo yet
            friend auto do_something(T &t) -> decltype(t.private_msg);
    };
    template 〈〉 auto do_something(Foo &f) -> decltype(f.private_msg) {
            return f.private_msg;
    }
    



  • I have this device and use it to store my keepassxc and onlykey backups, and it’s useful to me because I’ve stopped using passwords (I only need to remember the pins for these devices which can unlock my keepass dbs that have everything else).

    It seems secure enough for my use case, especially since the files I store in it are themselves encrypted (the onlykey backup still requires a pin), but I still want them to be difficult to access.

    I’ve had to rely on it before but only because I didn’t prepare a backup onlykey ahead of time- ideally it should be one of many recovery methods. But so far it’s worked great for me.




  • ctr1@fl0w.cctoLinux@lemmy.mlIs anyone using awk?
    link
    fedilink
    English
    arrow-up
    11
    ·
    11 months ago

    Yes! Awk is great, I use it all the time for text processing problems that are beyond the scope of normal filters but aren’t worth writing a whole program for. It’s pretty versatile, and you can split expressions up and chain them together when they get too complicated. Try piping the output into sh sometime. It can be messy though and my awk programs tend to be write-only





  • ctr1@fl0w.cctolinuxmemes@lemmy.worldOh no ...
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    Nice, sounds pretty cool. FZF is great, I need to try out some new things with it. Never got into snippets but I’m sure that speeds things up considerably, will think about it.

    Yeah separate config files is probably the best approach if you have a lot of things configured. I haven’t done that yet, but might try soon. My config has generally been pretty simple, mostly bindings and plugin settings. But I started developing in the TTY and had to shoehorn-in a conditional theme and such to get it to work properly, leaving it pretty unorganized.

    | I can never leave vim. It has taken over the pathways in my brain.

    Haha, yeah



  • ctr1@fl0w.cctolinuxmemes@lemmy.worldOh no ...
    link
    fedilink
    English
    arrow-up
    2
    arrow-down
    1
    ·
    1 year ago

    For a while I would have agreed, and I used sway for years. But recently I switched back to i3 (i3-rounded) due to display issues with my AMD GPU. I started doing most of my development in the TTY, and found that switching from TTY to Wayland takes half a second and can sometimes break my GPU (until I switch between TTY and display a few times). With X11 it’s instant and without issue ¯\_(ツ)_/¯. Hoping that gets fixed down the road, or that it’s specific to my GPU.


  • ctr1@fl0w.cctolinuxmemes@lemmy.worldOh no ...
    link
    fedilink
    English
    arrow-up
    1
    arrow-down
    1
    ·
    edit-2
    1 year ago

    This is always the first thing I get set up:

    # focus next available workspace on this output

    bindsym $mod+q exec --no-startup-id ws=$(i3-msg -t get_workspaces | jq ‘.[] | select(.focused) | .num’) && ofs=$(i3-msg -t get_outputs | jq ‘map(select(.active)) | length’) && i3-msg workspace $(($ws-$ofs))

    bindsym $mod+w exec --no-startup-id ws=$(i3-msg -t get_workspaces | jq ‘.[] | select(.focused) | .num’) && ofs=$(i3-msg -t get_outputs | jq ‘map(select(.active)) | length’) && i3-msg workspace $(($ws+$ofs))

    # move window to next available workspace on this output

    bindsym $mod+Shift+q exec --no-startup-id ws=$(i3-msg -t get_workspaces | jq ‘.[] | select(.focused) | .num’) && ofs=$(i3-msg -t get_outputs | jq ‘map(select(.active)) | length’) && dest=$(($ws-$ofs)) && i3-msg move workspace $dest && i3-msg workspace $dest

    bindsym $mod+Shift+w exec --no-startup-id ws=$(i3-msg -t get_workspaces | jq ‘.[] | select(.focused) | .num’) && ofs=$(i3-msg -t get_outputs | jq ‘map(select(.active)) | length’) && dest=$(($ws+$ofs)) && i3-msg move workspace $dest && i3-msg workspace $dest

    Works with sway if you replace i3-msg with swaymsg (and remove --no-startup-id, since it’s not needed for Wayland).

    Edit: ampersand issues, trying quote instead of code block


  • ctr1@fl0w.cctoProgramming@programming.dev*Permanently Deleted*
    link
    fedilink
    English
    arrow-up
    8
    arrow-down
    1
    ·
    1 year ago

    I usually use Awk to do the heavy lifting within my Bash scripts (e.g. arg parsing, filtering, stream transformation), or I’ll embed a Node.JS script for anything more advanced. In some cases, I’ll use eval to process generated bash syntax, or I’ll pipe into sh (which can be a good way to set up multiprocessing). I’ve also wanted to try zx, but I generally just stick to inlining since it saves a dependency.



  • ctr1@fl0w.cctoPrivacy@lemmy.mlgraphenos
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    1 year ago

    I’ve been using it for years and I think it’s great. Currently on a 6 Pro. It’s true that some apps don’t work without Google Play services, but GrapheneOS has the option to install the google stuff in a sandbox, so you shouldn’t run into any issues if you do that. Personally, I don’t use Play services unless I need to, and use Aurora store for any apps that aren’t on F-Droid.

    In any case, you can always revert to stock or try another OS

    Edit: as faede has pointed out, it appears that Google Wallet has issues. Also, the usage docs mention issues with banking apps in general, so that’s something to consider