Hi, I’m Shauna! I’m a 37 year old transgender woman from Ontario, Canada. I’m also a Linux enthusiast, and a Web Developer by trade. Huge Star Trek fan, huge Soulsborne fan, and all-around huge nerd.

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

help-circle




  • I would use Heroic Games Launcher personally. You can add any game you want, and before it creates the prefix for you, you have the option of running installers on the prefix first. Then you can add the game executable. If the game requires proton fixes which it very likely would, you can search the game on SteamDB to find the AppID then make sure there’s a file called steam_appid.txt next to the game executable with the game’s app ID from SteamDB. That will tell Proton to apply any fixes that it has on file automatically.

    If you’re a fairly advanced user, you can also just look at what files are included on the game’s SteamDB “Depots” page. For example, GTA San Andreas looks like it requires “DirectX Jun 2010 Redist”. You can either download that from Microsoft or you can run winetricks (through Heroic, or through terminal) on the prefix to add d3dx9.

    Heroic Games Launcher: https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher
    Steam DB: https://steamdb.info/



  • First of all, make sure that Steamworks Common Redistributables is installed because according to the steamdb page for GTA 5 it requires vcrun2022 and d3dx9 installed from winetricks (or protontricks) which it normally gets from the Steamworks Common Redistributables automatically.

    From my admittedly very brief research, it doesn’t look like you can play GTA 5 online if you skip the launcher but if you want to just play offline you can set your Steam Launch Options by right clicking the game and going to properties. If you set it to %command% -scOfflineOnly that will skip the launcher but disable multiplayer.

    You can also try setting the Steam Launch Options to PROTON_USE_WINED3D=1 %command% which forces Proton to use the OpenGL driver rather than the Vulkan driver for D3D.




  • It’s definitely an edge case by say you’re in ~/ and you run a script like ./code/script.sh then it thinks the current working direct is ~/ rather than what is probably intended which is ~/code/. If your bash script uses full paths like /home/$USER/code/ then it will still run correctly regardless of the current working directory that the scrip was run from.



  • You need to learn bash scripting. Also, there are a few default files that the .bashrc uses which can be helpful to compartmentalize the custom things you do to it so that it’s easier to undo if you screw something up. To do that, just add this to the bottom of your .bashrc

    if [ -f ~/.bash_custom ]; then
        . ~/.bash_custom
    fi
    
    

    What that will do is check if the .bash_custom file exists and then run the .bash_custom file in your home directory and apply anything in there. Also, you can call the file whatever you like, but bash does have some defaults that it will check for and run them without editing the .bashrc at all. It’s kind of hard to find a list of the the files that it automatically checks for, but I know that .bash_aliases is one of them, and I think it checks .bash_commands as well, but I’m not entirely sure. Either way, you can force it to check your custom one by using the code above.

    Then you can create the file and add any custom things in there that you like. For example, I like to frequently update through the terminal but running sudo apt update && sudo apt upgrade && sudo apt autoremove && flatpak upgrade was a bit tedious and I wanted a bit less feedback so I made a custom alias for my personal use.

    alias update='echo "Updating packages..."; sudo apt update -y &> /dev/null; echo "Packages updated."; echo "Upgrading packages..."; sudo apt upgrade -y &> /dev/null; echo "Packages upgraded."; echo "Cleaning up packges..."; sudo apt autoremove -y &> /dev/null; echo "Packages cleaned up."; echo "Updating flatpaks..."; flatpak update -y &> /dev/null; echo "Flatpaks updated."'

    Which hides most of the text from updating and just gives me feedback on what it’s currently doing if I don’t really care to know all of the details. So now I just run update in the terminal and plug in my password and it updates and upgrades everything in a human readable way.

    There’s a lot that can be done with bash scripting, like editing files, iterating over files and directories, setting environment variables. It’s basically a full programming language so the limits are mostly your imagination.






  • It’s not at all necessary, but I find it makes much easier to read code if you instead only use if statements and just return early when you’re in a function. For example, you could check isalpha(letter) == true is true then check letter + key <= 90 do the letter += key; return letter; then since letter + key must be > 90 if it didn’t already return a value, then you can do the while statement and return letter without needing an if statement at all. Then the isalpha(letter) == false is also unncessary, just return letter at the end.

    Like this:

    char rotate(char letter, int key)
    {
      if (isalpha(letter)
      {
        if (letter  + key <= 90)
        {
            letter += key;
            return letter;
        }
    
        do the while loop here
      }
    
      return letter;
    }
    
    

  • ShaunaTheDead@kbin.socialtoLinux@lemmy.ml*Permanently Deleted*
    link
    fedilink
    arrow-up
    4
    arrow-down
    1
    ·
    8 months ago

    I’m not sure where you’re getting that idea from. Almost anything designed for Windows works flawlessly through WINE or Proton. If I do run into an issue I usually find that Windows users are also having the same problems so it’s not a Linux compatibility issue. Every once in awhile I’ll have to run winetricks or protontricks to install a dependency. Overall, Linux compatibility is pretty incredible these days, in my opinion.