WillieShen

u/WillieShen@lemmy.world
18 posts · 20 comments

Recent posts

Recent comments

If you mean those ro.product.*, ro.system.*, ro.vendor.*, etc. and some other device identifiers, I think you can adjust many of them when compiling GrapheneOS yourself, which, however, requires a lot of storage and computational resources. If you mean the user agent HTTP header (and navigator object), there's no such thing as a system wise UA since UA is to recognize the OS and browser combination, and the UA header can be spoofed with those user agent switcher extensions or, if you are advanced user and want fine control, Header Editor, which can be added to Android Firefox by visiting it with desktop enabled.

Aurora still works for me for now on Samsung stock OS. I now mostly install Google Play apps with APKPure over Obtainium tho and only use Aurora for those not on APKPure. And most of my apps are from GitHub/GitLab releases and F-Droid. I disabled Google Play and didn't login to Google account. I don't want the requirement of a Google account to install an app and Play Integrity to run an app. It is by no means acceptable that a company, using a closed source implementation that also tracks user and breaks Android security model, can censor what apps a user can install and decide what security and privacy compromises a user needs to agree to just use the normal phone functionalities that they pay for and by no mean require those compromises technically. They are turning Android into a service and a prison like iOS did rather than a software.

on Rule · c/linuxmemes · 2 pts · 16d
update_pm() {
  sudo apt update
  sudo DEBIAN_FRONTEND=noninteractive apt upgrade -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confnew" -o Dpkg::Options::="--force-overwrite"
  sudo DEBIAN_FRONTEND=noninteractive apt autoremove -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confnew" -o Dpkg::Options::="--force-overwrite"
  echo y | sudo ubuntu-drivers install || true
  sudo apt install -f -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confnew" -o Dpkg::Options::="--force-overwrite"
  echo y | sudo ubuntu-drivers install || true
  sudo apt install -f -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confnew" -o Dpkg::Options::="--force-overwrite"
  echo y | sudo ubuntu-drivers install || true
  sudo apt install -f -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confnew" -o Dpkg::Options::="--force-overwrite"
  echo y | sudo ubuntu-drivers autoinstall || true
  sudo apt install -f -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confnew" -o Dpkg::Options::="--force-overwrite"
  echo y | sudo ubuntu-drivers autoinstall || true
  sudo apt install -f -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confnew" -o Dpkg::Options::="--force-overwrite"
  echo y | sudo ubuntu-drivers autoinstall || true
  sudo apt install -f -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confnew" -o Dpkg::Options::="--force-overwrite"
  sudo DEBIAN_FRONTEND=noninteractive apt autoremove -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confnew" -o Dpkg::Options::="--force-overwrite"
  sudo apt clean
  sudo apt autoclean
  flatpak update -y || true
  flatpak uninstall --unused -y || true
  sudo snap refresh || true
  brew update
  echo y | brew upgrade
  echo y | brew autoremove
  brew cleanup
  uv self update
  uv tool upgrade --all
  npm i -g npm
  npm update -g
}

I stick with KDE (Kubuntu) after using GNOME, KDE Plasma, and Cinnamon. I think GNOME lack some settings available in KDE, KDE is the most customizable with a good default, and back then Cinnamon doesn't have Wayland that some of my apps, especially Waydroid, need. The only thing I hate about KDE is the wallet that keeps popping up by default. GNOME keyring is better IMO. I'm a heavy terminal user tho, for automation with bash script and easier copy-paste from Arch Wiki etc., so mb I not quite representative on DE.

I'm a Taiwanese and interacted with a bunch of Linux users from Mainland China on Mastodon. From what I saw, I don't think it's as easy to use Linux in China, mainly due to the Great Firewall. They often need to tweak the mirrors and even tunnel through their VPS overseas.

I think it can be removed, at least for my phone, in the settings > Google or just use adb.

If they really care about users' security, they should make Graphene OS's GMSCompact and explicit permissions the new standard instead of restricting what apps can they use and forcing invasive system apps. And centralized censorship and requiring an account is not what makes apps secure. Source available and reproducible build is.

I came from Mastodon. I think Mastodon does have some good features that haven't come to Lemmy such as account migration and bio sites verification, while Markdown and no word count limit in Lemmy excels Mastodon. Other difference are more due to the different nature of them, just like Twitter compared to Reddit, for example, more organizations, artists, developers, etc. post on Mastodon.

I think limiting from the platform is not a good option. For some teens with a horrible family (domestic violence for example), social media maybe the only shelter they could turn to. Also, those companies tend to break open web and require an account and even verification in the name of protecting child. DNS blacklist enforced by parents is probably a better option IMO.

on Ban Windows at schools · c/linux · 13 pts · 16d

Also ban Google. I think we should ban any schoolwork in required courses that requires students to agree to any third-party EULAs, such as Google account and Windows OS. For selective courses, considering the de facto status that many fields don't have a mature enough open source software, banning is a bit exceeding proportionality IMHO. And offering Windows computer is probably ok as long as it's not the default choice IMHO.

In my freshman year in the Electrical Engineering department, I took a required computer programming course, the course that I supposed it to be most aware of the existence of GNU/Linux, free format, and so on. However, it uses Google Sheets for homeworks and demands a Google Drive link of an exe for final team project and YouTube link for presentation. When they let students evaluate each other, I just got a bunch of exe, half of which doesn't even open in Wine.

I also think they every school should offer NextCloud. Otherwise when team work occurs, Google Drive/Docs/Slides/Sheets is the de facto only choice.

BTW, I think LaTeX with git is more customizable and extensible and should be taught instead of teaching MS Office stuff. I actually take all my notes in LaTeX in a GitHub repo and do reproducible compilations.

Updation on it for clean when error and ignoring ffmpeg names for double run in same folder and a helper function. This is my new account btw since I found that infosec.pub can't be viewed without login.

multimedia_convert() {
  (
    shopt -s globstar nullglob
    for f in **/*; do
      [[ -f $f ]] || continue
      local file=${f##*/}
      local dir=${f%/*}
      [[ $dir == "$f" ]] && dir=.
      case ${file,,} in
        *_ffmpeg_av1_*_*_opus_*.mkv | *_ffmpeg_av1_lossless_flac*.mkv)
          continue
          ;;
        *.ico | *.flac | *.gif | *.opus)
          local ext="${file##*.}"
          ext="${ext,,}"
          if [[ ${file##*.} != "$ext" ]]; then
            if [[ -e "${f%.*}.${ext}" ]]; then
              printf 'Skipping: output exists: %s\n' "$f" >&2
              continue
            fi
            mv -- "$f" "${f%.*}.${ext}"
          fi
          ;;
        *.jpg | *.jpeg | *.png)
          local jxl="${file%.*}.jxl"
          if [[ -e "$dir/$jxl" ]]; then
            printf 'Skipping: output exists: %s\n' "$f" >&2
            continue
          fi
          (
            if cd "$dir"; then
              if jxl_lossy 1 "./$file" "./$jxl"; then
                rm -- "$file"
              else
                rm -f -- "$jxl"
              fi
            fi
          )
          ;;
        *.avif | *.bmp | *.heic | *.heif | *.jbg | *.jbig | *.jp2 | *.tif | *.webp)
          local png="${file%.*}.png"
          if [[ -e "$dir/$png" ]]; then
            printf 'Skipping: intermediate png exists: %s\n' "$f" >&2
            continue
          fi
          local jxl="${file%.*}.jxl"
          if [[ -e "$dir/$jxl" ]]; then
            printf 'Skipping: output exists: %s\n' "$f" >&2
            continue
          fi
          (
            if cd "$dir"; then
              if magick "./$file" "./$png"; then
                if jxl_lossy 1 "./$png" "./$jxl"; then
                  rm -- "$file"
                else
                  rm -f -- "$jxl"
                fi
              fi
              rm -f -- "$png"
            fi
          )
          ;;
        *.3gp | *.mov | *.vob | *.wmv)
          (
            cd "$dir" &&
              ffmpeg_av1_opus 4 40 24k "./$file" &&
              rm -- "$file"
          )
          ;;
        *.avi | *.mkv | *.mp4)
          (
            cd "$dir" &&
              ffmpeg_av1_opus 4 32 72k "./$file" &&
              rm -- "$file"
          )
          ;;
        *.aac | *.mp3 | *.m4a | *.ogg)
          (
            cd "$dir" &&
              ffmpeg_opus 96k "./$file" &&
              rm -- "$file"
          )
          ;;
        *.wav)
          (
            cd "$dir" &&
              ffmpeg_flac "./$file" &&
              rm -- "$file"
          )
          ;;
        *)
          continue
          ;;
      esac
    done
  )
}

ls_extension() {
  (
    shopt -s globstar nullglob
    printf '%s\n' **/* | sed -n 's/.*\(\.[^.]*\)$/\1/p' | sort -u
  )
}