LunamareInsanity's recent activity

  1. Comment on Is the current war in Palestine the first time the victim wound up being seen as the aggressor? in ~humanities.history

    LunamareInsanity
    Link Parent
    The West (broadly) and the United States (especially) did intentionally set up hostile economic conditions on Japan that were designed to forcibly end the war in China. In response, Japan took...

    The West (broadly) and the United States (especially) did intentionally set up hostile economic conditions on Japan that were designed to forcibly end the war in China. In response, Japan took what it needed militarily instead (see more: https://www.reddit.com/r/AskHistorians/comments/j7r3is/why_did_japan_declare_war_on_america_in_1941/)

    Though I would agree that the US shouldn't quite be considered the aggressor, even taking the above argument to the extreme.

    14 votes
  2. Comment on Is there an alternative to Nexus Mods? in ~games

    LunamareInsanity
    Link Parent
    For anyone looking to use Wabbajack with a free Nexus account, I recommend using this to skip the individual mod download clicks: https://github.com/M1n-74316D65/Wabbajack-fast-downloader Its a...

    For anyone looking to use Wabbajack with a free Nexus account, I recommend using this to skip the individual mod download clicks: https://github.com/M1n-74316D65/Wabbajack-fast-downloader

    Its a little finicky and not 100% user friendly, but I downloaded a 229 mod pack in about ~10-15 minutes (most of that was download time and getting Wabbajack to see the manually downloaded mods)

    2 votes
  3. Comment on What are you reading these days? in ~books

    LunamareInsanity
    (edited )
    Link Parent
    General consensus is Mistborn Era 1 (the original trilogy) should be read before Stormlight. There's a lot of discussion on reading order (see the subreddit wiki) but Mistborn Era 1 is...

    General consensus is Mistborn Era 1 (the original trilogy) should be read before Stormlight. There's a lot of discussion on reading order (see the subreddit wiki) but Mistborn Era 1 is consistently among the first set to be read.

    Here's a recent video by author himself giving his recommended reading order!

    Personally, I've done:

    • Mistborn Era 1 -> Mistborn: Secret History (this placement is very contentious) -> the entire Stormlight Archive series + novellas -> (currently starting Mistborn Era 2)

    I really enjoyed picking out small details from Mistborn Era 1 in The Stormlight Archive, but they're very much still background "blink and you'll miss it" level stuff, so the exact reading order doesn't seem super strict.

    3 votes
  4. Comment on Share your personal dotfile treats and Unix tool recommendations in ~comp

    LunamareInsanity
    Link Parent
    All of this is correct, as far as neovim goes. And to be clear, my example in the OP of this thread was with using nixvim. Here's how you'd add lua: programs.nixvim = { extraConfigLua = ''...

    All of this is correct, as far as neovim goes.

    And to be clear, my example in the OP of this thread was with using nixvim. Here's how you'd add lua:

      programs.nixvim = {
        extraConfigLua = ''
          print("Hello world!")
        '';
      };
    

    which will be added to init.lua.

    @fxgn Its worth noting that under the hood, nixvim is just filling out pre-made templates in vimscript (for editor settings) and lua (for plugin installation/settings, etc.)

    The end-user also has the ability to tap into this and use the same framework to configure at whatever abstract level they want. See these docs for details.

  5. Comment on Share your personal dotfile treats and Unix tool recommendations in ~comp

    LunamareInsanity
    Link Parent
    You're right that NixOS+home-manager will replace maintaining almost all other configuration files. And you're also absolutely right that its an information-dense overload all at once. Personally,...

    You're right that NixOS+home-manager will replace maintaining almost all other configuration files.

    And you're also absolutely right that its an information-dense overload all at once. Personally, I'd recommend starting with a small, pre-made template (I like nix-starter-configs - use the minimal version for minimal info overload) and just jumping in one day in with the intention to configure a system and install things. Ignore flakes and anything fancy for now. Its easy to come back to those later, but you can only start once!

    I hope NixOS treats you well when you give a try again!

    3 votes
  6. Comment on Share your personal dotfile treats and Unix tool recommendations in ~comp

    LunamareInsanity
    Link
    NixOS has been the biggest boon to my enjoyment of computing in a long, long time. The biggest feature for me is consolidating the endless methods and formats of config files into both a...

    NixOS has been the biggest boon to my enjoyment of computing in a long, long time.

    The biggest feature for me is consolidating the endless methods and formats of config files into both a centralized location and - most importantly - a standardized language with standardized logic.

    My favorite example is vim configuration. The various methods of configuring neovim (old vimscript options, the new lua config, plugin managers, plugin installation, and various plugin-specific configs) have all been consolidated. This makes maintaining and adding to the configuration an absolute breeze. A small edited excerpt:

      programs.neovim.defaultEditor = true;
      programs.nixvim = {
        enable = true;
        opts = {
          number = true;
          relativenumber = true;
          undofile = true;
        };
        plugins = {
          floaterm = {
             enable = true;
             keymaps.toggle = "<C-t>";
           };
        };
        colorschemes = {
          rose-pine = {
            enable = true;
          };
        };
      }
    
    Full neovim config
    {
      programs.neovim.defaultEditor = true;
    
      programs.nixvim = {
    
        enable = true;
    
        globals.mapleader = " ";
        globals.maplocalleader = " ";
    
        opts = {
          number = true;
          relativenumber = true;
    
          shiftwidth = 2; # Size of an indent
          tabstop = 2; # Number of spaces tabs count for
          softtabstop = 2; # Backspace by group of spaces instead of single space
          expandtab = true; # Use spaces instead of tabs
          smartindent = true; # Insert indents automatically
    
          cursorline = true; # Highlighting of the current line
    
          undofile = true; # Save undo history after closing buffer
        };
    
        keymaps = [
          {
            key = "Space";
            action = " ";
          }
    
          {
            key = "<leader>sc";
            action = ":source $MYVIMRC<cr>";
          }
    
          {
            key = "<C-g>";
            action = ":FloatermNew --height=500 --width=500 --wintype=float --positon=center --name=lazygit --autoclose=2 --cwd=<buffer> lazygit<cr>";
          }
    
          {
            key = "<S-Up>";
            action = "";
    
          }
    
          {
            key = "<S-Down>";
            action = "";
          }
        ];
    
        plugins = {
          lastplace = {
            # Reopen files to previous location
            enable = true;
          };
    
          floaterm = {
            # Floating terminal
            enable = true;
            keymaps.toggle = "<C-t>";
          };
    
          leap = {
            # Press "s" to seek in the file
            enable = true;
          };
    
          nvim-autopairs = {
            # Auto-insert pairs { }
            enable = true;
          };
    
          treesitter = {
            enable = true;
            indent = true;
            nixvimInjections = true;
          };
    
          hmts = {
            # home-manager tree-sitter: highlight code within nix
            enable = true;
          };
    
          mini = {
            enable = true;
    
            modules = {
              surround = { };
            };
          };
    
          twilight = {
            enable = true;
          };
    
          lsp = {
            enable = true;
    
            keymaps = {
              silent = true;
    
              diagnostic = {
                "<leader>k" = "goto_prev";
                "<leader>j" = "goto_next";
              };
    
              lspBuf = {
                gd = "definition";
                K = "hover";
              };
            };
    
            servers = {
              pylsp = {
                enable = true;
                settings.plugins.ruff = {
                  enabled = true;
                  lineLength = 88;
                };
              };
    
              nixd = {
                enable = true;
              };
            };
          };
        };
    
        colorschemes = {
          rose-pine = {
            enable = true;
          };
        };
    
      };
    }
    

    Consolidation of how to configure things extends to pretty much every other part of the system you can think of. Once you understand the syntax of the language and where to find the options (search.nixos.org), system configuration becomes extremely easy to maintain. It has been much less painful than the old-school way of needing to learn all the different ways base Linux wants to be configured, let alone 3rd-party programs.

    Indeed, most of the common options of both the Linux OS and 3rd-party programs have been pre-packaged into simple true/false flags by the community or otherwise are much more consistent to configure. Failing that, nearly every program includes an option to get back down into the config files themselves, for non-standard needs.

    Some choice examples:

    • Generic auto-login = services.displayManager.autoLogin.enable = true;

    • Install, enable, and run a service = programs.jellyfin.enable = true;

    • Change user shell:

       users.users 
         { 
           luna = { 
             shell = pkgs.fish; 
         }; 
       };
      
    • Extremely standard boilerplate for most self-hosted services:

        services.audiobookshelf = {
          enable = true;
          port = 8389;
          host = "0.0.0.0";
          openFirewall = true;
        };
      
    • Slightly more in-depth configuration for the Transmission torrenting service - config is extremely typical of a service with many options
      services.transmission = {
        enable = true;
        webHome = pkgs.flood-for-transmission;
        home = "/media/torrents";
        user = "transmission";
        group = "media";
        openRPCPort = true;
        downloadDirPermissions = "775";
      
        settings = {
          rpc-bind-address = "0.0.0.0";
          rpc-whitelist = "192.168.*.*, 100.*.*.*";
          rpc-authentication-required = "true";
          rpc-username = "*******";
          rpc-password = "*******";
          download-dir = "/media/torrents/data";
          dht-enabled = "false";
          pex-enabled = "false";
          speed-limit-down = 20000;
          speed-limit-up = 400;
          speed-limit-down-enabled = true;
          speed-limit-up-enabled = true;
        };
      };
      

    The main con is that NixOS does have a learning curve. Its not overly difficult, but NixOS needs things done in its own particular way. Pre-existing Linux knowledge will lead you astray until you learn which parts you can keep and which parts you need to forget. And, admittedly, the documentation and wider community assumes a level of understanding about Nix (the language) that makes the initial learning hurdle harder than it needs to be. However, once NixOS (and to a lesser extent Nix) clicked for me, I fell in love and have not gone back to a "regular" distro ever since.

    I also intentionally stayed away from gushing over the usual Nix(OS) features I hear praised all the time (immutable systems, dev shells for per project package management, easy building of specific versions of packages) in favor of what has been my own favorite feature (and something I hear much less about) - the return of the pure joy of configuration.

    8 votes
  7. Comment on Help me build my “woke” Fourth of July playlist in ~music

    LunamareInsanity
    (edited )
    Link Parent
    Absolute banger, its amazing live because they used to bring their instruments into the crowd to play (I think that honor is reserved for Brandenburg Gate these days). The one that came first to...

    Absolute banger, its amazing live because they used to bring their instruments into the crowd to play (I think that honor is reserved for Brandenburg Gate these days).

    The one that came first to mind when I saw the title is Stars and Stripes by Anti-Flag. Another honorary mention that came to mind after I read the top comment of this thread is We Called It America by NOFX.

    Edit:
    American Jesus - Bad Religion is also an amazing choice, from a comment down below.

    1 vote
  8. Comment on Competitive Overwatch players of Tildes: What's a tip you'd love to share? in ~games

    LunamareInsanity
    Link Parent
    Masters Echo player here, I'm curious if you have any tips for Duplicate! My experience with Duplicate is about 50% of the time I'm insta-killed, and I probably only build an ult with it about 1...

    Masters Echo player here, I'm curious if you have any tips for Duplicate!

    My experience with Duplicate is about 50% of the time I'm insta-killed, and I probably only build an ult with it about 1 in every 5 copies (especially after the ult built nerf). I try and use it as a fight engagement tool via copying the tank but in my experience this leads to a quick death. I find I'm able to extract more value from it by copying DPS heroes to tilt a 1v1 heavily in my favor.


    As a bonus, my scrim team has started receiving VOD reviews from Natter, and the number one thing he harped on for my Echo play specifically is flight/high-ground usage.

    Essentially, the school of thought is to always use Flight with a strong purpose - using the momentum to finish off targets, taking a better high ground, as a temporary off-angle - and not using Flight outside of that. The idea is to maximize time on high ground while still having Flight available to escape/engage/peel - and also Flight time is heavily correlated with the amount of damage Echo takes, so less flight means less damage taken. This is a very hard lesson for me to incorporate, being a Pharah main who instinctively takes to the skies at the slightest chance!

    1 vote
  9. Comment on What games have you been playing, and what's your opinion on them? in ~games

    LunamareInsanity
    Link Parent
    Just want to throw some more love at Project Wingman. I've been a massive fan of the Ace Combat series since childhood (Ace Combat 5 was my favorite game for many years) and when I first played...

    Just want to throw some more love at Project Wingman. I've been a massive fan of the Ace Combat series since childhood (Ace Combat 5 was my favorite game for many years) and when I first played Project Wingman last year it blew me away and has become my favorite game in the genre.

    The moment when everything turns orange is one of my favorite gaming moments of the last decade, and as someone that took a few years to get around to it, I cannot recommend Project Wingman enough for fans of the genre.

  10. Comment on Who are your favourite content creators, and what do they do? in ~tech

    LunamareInsanity
    Link
    Gaming Nerd³ - ADHD hypercomedic YouTuber from the ancient times turned old and still ADHD. Like the Lets Plays of olden times with a style refined over years of constant reinvention. I've been...

    Gaming

    2 votes