this post was submitted on 07 Apr 2024
490 points (96.8% liked)

linuxmemes

21211 readers
107 users here now

Hint: :q!


Sister communities:


Community rules (click to expand)

1. Follow the site-wide rules

2. Be civil
  • Understand the difference between a joke and an insult.
  • Do not harrass or attack members of the community for any reason.
  • Leave remarks of "peasantry" to the PCMR community. If you dislike an OS/service/application, attack the thing you dislike, not the individuals who use it. Some people may not have a choice.
  • Bigotry will not be tolerated.
  • These rules are somewhat loosened when the subject is a public figure. Still, do not attack their person or incite harrassment.
  • 3. Post Linux-related content
  • Including Unix and BSD.
  • Non-Linux content is acceptable as long as it makes a reference to Linux. For example, the poorly made mockery of sudo in Windows.
  • No porn. Even if you watch it on a Linux machine.
  • 4. No recent reposts
  • Everybody uses Arch btw, can't quit Vim, and wants to interject for a moment. You can stop now.

  • Please report posts and comments that break these rules!

    founded 1 year ago
    MODERATORS
     

    It's not about the destination, it's about the journey.

    you are viewing a single comment's thread
    view the rest of the comments
    [โ€“] [email protected] 17 points 7 months ago (3 children)

    I might just be basic but the only annoying part of reinstalling for me is setting up my browser again.

    [โ€“] [email protected] 27 points 7 months ago (2 children)

    All hail Firefox Sync!๐Ÿ™Œ

    [โ€“] [email protected] 9 points 7 months ago (4 children)

    I've used Firefox for over a decade but still wouldn't trust them to keep all my account info on their servers, Especially not nowadays.

    I already started using KeypassXC to locally store my passwords, just importing bookmarks and add-ons I've left to do.

    [โ€“] [email protected] 12 points 7 months ago

    I think you can selfhost the sync server.

    [โ€“] [email protected] 8 points 7 months ago* (last edited 7 months ago)

    I only use Sync for extensions, history and bookmarks. I use an alternative pw manager for the same reason.

    [โ€“] [email protected] 2 points 7 months ago (2 children)

    I use file syncing (Syncthing) and symlinks to keep configs for some apps synced between devices. I don't for Firefox, but it might work.

    [โ€“] [email protected] 3 points 7 months ago (2 children)

    I'm still a newbie Linux user so haven't fully delved into Symlinks...besides bricking a VM trying it once when following a guide.

    Can I for instance link a folder where emulators or offline games store save data on my main SSD and have it automatically copied to a folder on my large HDD?

    [โ€“] [email protected] 6 points 7 months ago* (last edited 7 months ago)

    It doesn't copy data, no. Symlink is short for symbolic link. So it's a pointer to another location. But it might be useful for you. Taking a guess at your goal, here's a relevant example.

    Say you moved all of your emulation stuff stored under /media/largehdd/retroarch. You could then symlink that directory to ~/.config/retroarch like so:

    ln -s /media/largehdd/retroarch ~/.config/retroarch

    That data is still stored on the large drive but will now also show under that symlinked directory.

    [โ€“] amotio 3 points 7 months ago* (last edited 7 months ago)

    Yes you can, although this might be better done with rsync - and periodically runnind the syncing command.

    But syncthing does basically the same thing plus you can sync between multiple devices on the same network.

    I sync my laptop config with work pc this way.

    Edit: typos, damn mobile

    [โ€“] [email protected] 1 points 7 months ago* (last edited 7 months ago)

    I should really start doing that, not sure why I've never thought of that

    [โ€“] [email protected] 2 points 7 months ago (1 children)

    Mozilla are maybe the only company I'd trust with that

    [โ€“] [email protected] 2 points 7 months ago (1 children)

    Exactly. I've had 0 issues with it. Sadly they stopped development of their own password manager, so now I am using Bitwaren+Vaultwarden. The UI is better, but the app still feels cumbersome and slow, just like Mozilla's experiment. For some reason Bitwarden is also really inconsistent & slow in when it shows the Autofill Popup on my keyboard.

    [โ€“] [email protected] 2 points 7 months ago

    I didn't know they tried making their own password manager. I know that on my phone with Gboard I sometimes get an "unlock with Firefox" button in apps' login screens...

    [โ€“] [email protected] 2 points 7 months ago (1 children)

    firefox sync misses half my settings

    [โ€“] [email protected] 3 points 7 months ago

    Then you didn't need them

    [โ€“] [email protected] 12 points 7 months ago

    it's all in .mozilla.

    [โ€“] [email protected] 1 points 7 months ago* (last edited 7 months ago)

    Try this, friend

    Tap for spoiler

    { config, pkgs, ... }:
    
      let
        lock-false = {
          Value = false;
          Status = "locked";
        };
        lock-true = {
          Value = true;
          Status = "locked";
        };
      in
    {
      /* 
      ** ffextid
      ** Usage: `ffextid [install_url]`
      ** Description: simple script to find the extension id from an extension's manifest
      **              using the url found by right clicking the install add-on button and 
      **              selecting "copy link"
      */
      home.packages = with pkgs; [
        (pkgs.writeShellScriptBin "ffextid" ''
        #!/usr/bin/env bash 
        $(curl $1 > /tmp/ffext.xpi) 1> /dev/null
        $(unzip /tmp/ffext.xpi -d /tmp/ffext) 1> /dev/null
        
        # If ripgrep exists, use that. Otherwise default to grep
        if ! command -v rg &> /dev/null; 
        then
          rg id /tmp/ffext/manifest.json
        else
          grep id /tmp/ffext/manifest.json
        fi
        
        rm -rf /tmp/ffext*
        '')
      ]; 
      programs = {
        firefox = {
          enable = true;
          package = pkgs.wrapFirefox pkgs.firefox-unwrapped {
            extraPolicies = {
              DisableTelemetry = true;
              # add policies here...
    
              /* ---- EXTENSIONS ---- */
              ExtensionSettings = {
                "*".installation_mode = "blocked"; # blocks all addons except the ones specified below
                /*
                Format: 
                "[Manifest id]" = {
                  installation_mode = "force_installed" # will install the extension for you!
                  install_url = "[url]" # found by right clicking the install button on the add-on page
                };
                */
                # uBlock Origin:
                "[email protected]" = {
                  installation_mode = "force_installed";
                  install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
                };
                # Privacy Badger:
                "jid1-MnnxcxisBPnSXQ@jetpack" = {
                  install_url = "https://addons.mozilla.org/firefox/downloads/latest/privacy-badger17/latest.xpi";
                  installation_mode = "force_installed";
                };
                # Bitwarden
                "{446900e4-71c2-419f-a6a7-df9c091e268b}" = {
                  installation_mode = "force_installed";
                  install_url = "https://addons.mozilla.org/firefox/downloads/file/4225453/bitwarden_password_manager-2024.1.1.xpi";
                };
                # XBrowserSync
                "{019b606a-6f61-4d01-af2a-cea528f606da}" = {
                  installation_mode = "force_installed";
                  install_url = "https://addons.mozilla.org/firefox/downloads/file/3546070/xbs-1.5.2.xpi";
                };
                # Decentraleyes
                "{jid1-BoFifL9Vbdl2zQ@jetpack}" = {
                  installation_mode = "force_installed";
                  install_url = "https://addons.mozilla.org/firefox/downloads/file/4158232/decentraleyes-2.0.18.xpi";
                };
                # Clear URLs
                "{74145f27-f039-47ce-a470-a662b129930a}" = {
                  installation_mode = "force_installed";
                  install_url = "https://addons.mozilla.org/firefox/downloads/file/4064884/clearurls-1.26.1.xpi";
                };
                #Dark Reader 
                "[email protected]" = {
                  installation_mode = "force_installed";
                  install_url = "https://addons.mozilla.org/firefox/downloads/file/4223104/darkreader-4.9.76.xpi";
                };
                # Cookie AutoDelete
                "[email protected]" = {
                  installation_mode = "force_installed";
                  install_url = "https://addons.mozilla.org/firefox/downloads/file/4040738/cookie_autodelete-3.8.2.xpi";
                };
                # I don't care about cookies
                "jid1-KKzOGWgsW3Ao4Q@jetpack" = {
                  installation_mode = "force_installed";
                  install_url = "https://addons.mozilla.org/firefox/downloads/file/4202634/i_dont_care_about_cookies-3.5.0.xpi";
                };
                # Youtube Sponsor Block
                "[email protected]" = {
                  installation_mode = "force_installed";
                  install_url = "https://addons.mozilla.org/firefox/downloads/file/4229442/sponsorblock-5.5.4.xpi";
                };
                # add extensions here...
                /*
                "" = {
                  installation_mode = "force_installed";
                  install_url = "";
                };
                */
              };
      
              /* ---- PREFERENCES ---- */
              # Set preferences shared by all profiles.
              Preferences = {
                "browser.contentblocking.category" = { Value = "strict"; Status = "locked"; };
    
                ### BOOLEANS
                "extensions.pocket.enabled" = lock-false;
                "extensions.screenshots.disabled" = lock-true;
                "privacy.donottrack.heater.enable" = lock-true;
                "browser.compactmode.show" = lock-true;
                # add global preferences here...
              };
            };
          };
    
          /* ---- PROFILES ---- */
          # Switch profiles via about:profiles page.
          # For options that are available in Home-Manager see
          # https://nix-community.github.io/home-manager/options.html#opt-programs.firefox.profiles
          profiles ={
            sunstoned = {                 # choose a profile name; directory is /home/<user>/.mozilla/firefox/profile_0
              id = 0;               # 0 is the default profile; see also option "isDefault"
              name = "sunstoned";         # name as listed in about:profiles
              isDefault = true;     # can be omitted; true if profile ID is 0
              settings = {          # specify profile-specific preferences here; check about:config for options
                "browser.newtabpage.activity-stream.feeds.section.highlights" = false;
                "browser.startup.homepage" = "https://nixos.org";
                "browser.newtabpage.pinned" = [{
                  title = "NixOS";
                  url = "https://nixos.org";
                }];
                # add preferences for profile_0 here...
              };
            };
          # add profiles here...
          };
        };
      };
    }