• 1 Post
  • 31 Comments
Joined 3 years ago
cake
Cake day: June 12th, 2023

help-circle
  • I’ve been using Niri for a little under a year now on both my desktop and laptop, I like it a lot compared to regular tiling window managers (I used QTile for 2-3 years on my desktop and Hyprland on my laptop for about a year until I found out about vaxry).

    Personally, I usually group my workspaces by app category (e.g. browser, system-related, chat windows, games, etc.) which works really well with a scrolling model since you can have multiple “fullscreen” apps per workspace, or a fullscreen apps and half-width app like a file explorer for dragging files over to the main app. It also works well for me since I am unlikely to have more than 2-3 full-width apps in the same category.

    I like organizing things that way because it makes my hotkeys consistent for the thing I’m trying to do. For example, if I have a chat window open, my hotkey to get there will always be meta+3 regardless of what app it is and how many other chat apps I have open.


  • I feel like that’s by design. Tiling WMs generally make 2 assumptions and if they aren’t true for you then you’re probably better off with a regular desktop:

    • Most apps you use are one window and are either fullscreen or splitscreen with another app.
    • You have a lot of different Fullscreen apps open at once

    For a lot of people that makes sense because Workspace-based WMs let you switch between full screen apps a lot quicker than pressing alt-tab 10 times. e.g. when I’m doing work I’ll usually have these Fullscreen windows open:

    • browser
    • chat app (teams/outlook at work, discord/matrix at home)
    • IDE
    • window for whatever I’m testing/working on
    • miscellaneous things (file explorers, random text files, etc. which can all be splitscreen)

    For me at least, every extra second it takes me to move between apps snowballs because I have to pause my thought just to find the app I’m looking for in the alt tab menu or the task bar


  • Worth noting that Linux Mint Debian Edition exists and is based directly on Debian instead of Ubuntu. They starting publishing it specifically because the Linux Mint team doesn’t like the direction Ubuntu is heading in with snaps. Not sure how good it is as I haven’t tried it in a while (and don’t really use regular mint either).






  • That’s the thing though. If I’m going to need to be on-call tech support then Linux isn’t actually a better option then Windows. Sure it would be more private and less sucky but if the computer doesn’t actually work then that doesn’t mean anything. I’m willing to make ad-hoc workarounds to my own problems because I’m a software developer and don’t mind falling down a rabbit hole to get something like push-to-talk working with a custom pipewire script. My friends who want to play games and relax when they get home from work are understandably not willing to go through that hassle.

    I’d love for Linux to be ready for daily driving but for most people I know it just isn’t. Maybe when Wayland desktops are more mature but I’m not going to make people choose between functioning shortcuts (X11) and functioning monitors (Wayland).



  • If you are fine with having things on the same OS, look into distrobox. It would let you set up an Ubuntu environment/container on top of your Bazzite install. You could also use something like OSX-KVM for MacOS with GPU passthrough (assuming you use a compatible GPU) which would simplify your setup greatly. That way you could technically have all 3 environments on one OS with one set of hardware but now the only thing being virtualized is MacOS.

    (You could also dual-boot with MacOS if you wanted and it would be slightly faster than a VM but also more of a headache to setup)

    Edit: Missed that you mentioned Windows but the setup for that would be pretty much the exact same as MacOS except getting GPU passthrough to work on Windows is easier (again, same limitations as MacOS though, and games with anticheats would be able to tell that Windows is in a VM).


  • I use refind also, there should be a setting somewhere to let refind scan entries from other EFI partitions. I have that setup and just created a second EFI partition for my Linux setup, so that Windows has no idea Linux even exists. I even have everything running off of the same drive (my laptop only has one nvme slot) and I haven’t had any issues.









  • That’s entirely fair for the usecase of a small script or plugin, or even a small website. I’d quickly get annoyed with Python if I had to use it for a larger project though.

    TypeScript breaks down when you need it for a codebase that’s longer than a few thousand lines of code. I use pure JavaScript in my personal website and it’s not that bad. At work where the frontend I work on has 20,000 lines of TypeScript not including the HTML files, it’s a massive headache.


  • Zangoose@lemmy.worldtoProgrammer Humor@lemmy.ml•Evil Ones
    link
    fedilink
    arrow-up
    6
    ·
    edit-2
    2 years ago

    This is the case for literally all interpreted languages, and is an inherent part of them being interpreted.

    It’s actually the opposite. The idea of “types” is almost entirely made up by compilers and runtime environments (including interpreters). The only thing assembly instructions actually care about is how many bits a binary value has and whether or not it should be stored as a floating point, integer, or pointer (I’m oversimplifying here but the point still stands). Assembly instructions only care about the data in the registers (or an address in memory) that they operate on.

    There is no part of an interpreted language that requires it to not have any type-checking. In fact, many languages use runtime environments for better runtime type diagnostics (e.g. Java and C#) that couldn’t be enforced at runtime in a purely compiled language like C or C++. Purely compiled binaries are pretty much the only environments where automatic runtime type checking can’t be added without basically recreating a runtime environment in the binary (like what languages like go do). The only interpreter that can’t have type-checking is your physical CPU.

    If you meant that it is inherent to the language in that it was intended, you could make the case that for smaller-scale languages like bash, Lua, and some cases Python, that the dynamic typing makes it better. Working with large, complex frontends is not one of those cases. Even if this was an intentional feature of JavaScript, the existence of TypeScript at all proves it was a bad one.

    However, while I recognize that can happen, I’ve literally never come across it in my time working on Typescript. I’m not sure what third party libraries you’re relying on but the most popular OAuth libraries, ORMs, frontend component libraries, state management libraries, graphing libraries, etc. are all written in pure Typescript these days.

    This next example doesn’t directly return any, but is more ubiquitous than the admittedly niche libraries the code I work on depends on: Many HTTP request services in TypeScript will fill fields in as undefined if they’re missing, even if the typing shouldn’t allow for that because that type requirement doesn’t actually exist at runtime. Languages like Kotlin, C#, and Rust would all error because the deserialization failed when something that shouldn’t be considered nullable had an empty value. Java might also have options for this depending on the serialization library used.