ATProto Browser

ATProto Browser

Experimental browser for the Atmosphere

Record data

{
  "uri": "at://did:plc:hwevmowznbiukdf6uk5dwrrq/org.pdsblog.post/3lj3ij6a4kq22",
  "cid": "bafyreiaoujhbyh3ujzyu5t56nekcikd76f2gij55f6rs63qhzme5smpsyy",
  "value": {
    "body": "---\ntemplate:\natroot: true\nslug: flow-x13\ntitle: The Asus ROG Flow X13\nsubtitle: My hunt for a new laptop has finally concluded\ndate: 2022-05-02T15:04:05+02:00\n---\n\n![](https://cdn.icyphox.sh/3NZ1u.jpg)\n\nI've been on the lookout for a new laptop for a while now. While the HP\nEnvy was good -- is good -- the measly 8 gigs of RAM was struggling to\nhold in all the beefy stuff that I run these days (skaffold, k3s, etc.).\nAnd it being a \"budget\" laptop of its time didn't do its chassis any\nfavors -- the bottom was very scratched because the rubber bumpons\ncame off; the keyboard deck had some rather mysterious scuff marks.\nAnyway, off I went looking for a replacement.\n\nMy requirements for a laptop are somewhat specific. From the title it's\nobvious that I'd like to have good Linux support; here's a list of\nother things that I expect to see:\n\n- HiDPI: Any resolution above 1080p (or 1200p). I look at text all day,\n  and I'd like it to be _crispy_.\n- 13\" - 14\": I don't like overly large or heavy laptops. I think 13.3\n  inches is the perfect screen size; 14 is a compromise.\n- A decent CPU: I don't really do anything very compute intensive, but\n  an i7 or a Ryzen 7 should be ideal.\n- 32 GB RAM: Having struggled with 8 gigs for so long made this a hard\n  requirement. Never again will I have to `pkill gopls`.\n\nI can't say I had a specific budget in mind, but anything more than 140k\nINR (1.4L, ≈1800 USD) is somewhat hard to justify. Listed below were the\ncontenders for the prestegious position of being my laptop of choice:\n\n- **Tuxedo InfinityBook Pro 14**: While this ticks all the boxes, the\n  cost including shipping (as of this writing) is about 1700 EUR. And\n  that's without opening the massive, stinky can of worms called Indian\n  Customs. Expecting a very lenient 40% duty, it's safe to say it's\n  _batshit expensive_.\n- **ThinkPad X13**: Lenovo's site allows you to customize orders for\n  certain models, and these will be custom built and shipped from China.\n  The nice thing is Lenovo takes care of the customs and shipping and\n  other logistics. The not-nice thing is it takes a minimum of _12\n  weeks_ -- at least for the X13. That's 4 whole months. I think I'll\n  pass.\n\nWith that preface out of the way, the machine I finally settled on was\n(as the title reads) the **Asus ROG Flow X13**. My model set me back by\nabout 130,000 INR (1.3L, ≈1700 USD). The trick was to look in the\n\"gaming laptops\" section, because this model didn't show up anywhere in\nthe thin-and-light/productivity/ultrabook searches. And it doesn't look\ngamery at all. Here's what my Dad had to say, as a serial ThinkPad user:\n\n> \"It looks like a ThinkPad.\"\n\n## hardware\n\nI opted to buy the 2021 model because, really, the only difference in\nthe 2022 model is the marginally better CPU and a MUX switch. I don't\ncare much for either. The octa-core Ryzen 9 5900HS has more compute\npower than I could ever need.\n\nThe chassis is made of a \"magnesium alloy\", with a grooved finish that\nfeels very nice to touch. There's very minimal branding -- one somewhat\n\"iridescent\" label with the Republic of Gamers logotype on one corner of\nthe lid, and the ROG logo on the right palm-rest, made out of the same\ngroove design.\n\n| | |\n| ---- | ---- |\n| ![](https://cdn.icyphox.sh/J2SN2.jpg) | ![](https://cdn.icyphox.sh/0wFTQ.jpg) |\n\nThe hinges are sturdy and allow for 360° rotation. The lid can be opened\nwith a single finger, which is much appreciated. The screen itself is a\ngorgeous 4K (3840×2400) touch screen panel. While the need need for 4K\non a 13\" screen is questionable, I welcome it wholeheartedly. It is the\nbest screen I've used; the colors are punchy, text is (naturally) very\ncrisp. It's glossy, and attracts a ton of fingerprints. A stylus is\nincluded in the box -- or at least it was for me -- but I haven't found\nmuch use for it after the initial excitement.\n\n![](https://cdn.icyphox.sh/s7u2n.jpg)\n\nThe keyboard is pretty good. Given the choice, I wouldn't have picked\nthe font on the caps, but I suppose it could be worse. Three backlight\nmodes for low, medium and high brightness exist. These can be controlled\nvia the sysfs device at `/sys/class/leds/asus::kbd_backlight/`. The\ndedicated volume buttons are nice and work out of the box; the mic-mute\ntoggle key however needs special treatment to get detected by X11 --\nadding the below udev rule did the trick:\n\n```nix\nudev.extraHwdb = ''\n  evdev:input:b0003v0B05p19B6*\n    KEYBOARD_KEY_ff31007c=f20\n'';\n```\n\nFor ports, you get a USB-C and a USB-A on the right along with the power\nbutton; on the left: a 3.5mm headphone/microphone jack, a HDMI 2.0 port,\nand the proprietary XGm port for use with the [XG\nMobile](https://rog.asus.com/in/external-graphic-docks/2021-rog-xg-mobile-model/)\nexternal GPU. The eGPU port, while being generally useless to me, also\nhappens to contain a USB-C port, bringing the total to two. The ports\nselection could be better -- a single USB-A is one too less, forcing me\nto have to use a dongle to connect both my keyboard and mouse.\n\n| | |\n| ---- | ---- | \n| ![](https://cdn.icyphox.sh/xyYII.jpg) | ![](https://cdn.icyphox.sh/z-Y1R.jpg) |\n\nThe entire package weighs in at about 1.3 kilograms, which is just as\nmuch as my HP Envy. For how well it's built, I'm not complaining.\n\nFinally, here's the full spec list:\n- Ryzen 9 5900HS, 8 cores & 16 threads\n- 32 GB LPDDR4X RAM @ 4266MHz\n- Nvidia GeForce GTX 1650 Max-Q, 4 GB GDDR6\n- 1 TB SSD\n\n## software\n\nInstalling NixOS was straightforward. Basically everything works out of\nthe box. I'd have liked to run OpenBSD on it, but I unfortunately\nrequire Linux for work. NixOS, while I understand nothing of Nix (the\nlanguage), works well enough. Being able to configure your entire system\nfrom one single place is quite nice. Overall, it's a lot more cohesive\nthan other Linux systems.\n\nThe Nvidia GPU is handled surprisingly well. Looks like Linux has\nimproved a lot in this regard. \"Offload mode\" is especially neat -- you\ncan selectively \"offload\" certain tasks (like running Steam) to the GPU,\nand otherwise have it suspended. Here's how I do it:\n\n```nix\n{ pkgs, ... }:\n\npkgs.writeShellScriptBin \"nvidia-offload\"\n  ''\n    export __NV_PRIME_RENDER_OFFLOAD=1\n    export __NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0\n    export __GLX_VENDOR_LIBRARY_NAME=nvidia\n    export __VK_LAYER_NV_optimus=NVIDIA_only\n    exec -a \"$0\" \"$@\"\n  ''\n```\n\nNow simply run\n\n```sh\n$ nvidia-offload steam\n```\n\nto have Steam run on the GPU. Use the `nvidia-smi` tool to inspect\nprocesses currently using the GPU.\n\nThe laptop has an accelerometer to detect when it's in tablet mode, and\ninvert the display accordingly. Unfortunatly, I couldn't figure out how\nto get it to work in X11/cwm. Instead, I wrote a handy script to rotate\nthe display and the touch input:\n\n```nix\n{ pkgs, ... }:\n\nlet\n  xrandr = \"${pkgs.xorg.xrandr}/bin/xrandr\";\n  xinput = \"${pkgs.xorg.xinput}/bin/xinput\";\nin\npkgs.writeShellScriptBin \"invert\"\n  ''\n    orientation=\"$(${xrandr} --query --verbose | grep eDP | cut -d ' ' -f 6)\"\n    if [[ \"$orientation\" == \"normal\" ]];\n    then\n      echo \"turning screen upside down...\"\n      ${xrandr} -o inverted\n      ${xinput} set-prop 'ELAN9008:00 04F3:2C82' 'Coordinate Transformation Matrix' -1 0 1 0 -1 1 0 0 1\n      ${xinput} set-prop 'ELAN9008:00 04F3:2C82 Stylus Pen (0)' 'Coordinate Transformation Matrix' -1 0 1 0 -1 1 0 0 1\n      ${xinput} set-prop 'ELAN9008:00 04F3:2C82 Stylus Eraser (0)' 'Coordinate Transformation Matrix' -1 0 1 0 -1 1 0 0 1\n    else\n      echo \"reverting back to normal...\"\n      ${xrandr} -o normal\n      ${xinput} set-prop 'ELAN9008:00 04F3:2C82' 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1\n      ${xinput} set-prop 'ELAN9008:00 04F3:2C82 Stylus Pen (0)' 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1\n      ${xinput} set-prop 'ELAN9008:00 04F3:2C82 Stylus Eraser (0)' 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1\n    fi\n  ''\n```\n\nThen, simply run `invert` to toggle your current orientation:\n```sh\n▲ invert\nturning screen upside down...\n\n▲ invert\nreverting back to normal...\n```\n\nBattery life could be better, but with TLP/powertop + switching the CPU\ngovernor to `powersave` on battery, I get about 7 - 8 hours on light\nworkloads, and about 5 on heavy. I'm going to guess the 4K panel is to\nblame.\n\nAlso worth mentioning is the [Asus Linux](https://asus-linux.org)\nproject. They have some useful resources for running Linux on Asus\nlaptops, and [asusctl](https://gitlab.com/asus-linux/asusctl) /\n[supergfxctl](https://gitlab.com/asus-linux/supergfxctl) -- two great\ntools for managing power profiles, fan curves and the dGPU.\n\nOverall, I couldn't be happier with this machine. It wasn't cheap, but\nit sure does check all the boxes and it's incredibly future proof. As\nfor my trusty old HP Envy 13, I haven't decided yet what to do with it.\nIt'll most probably end up in my closet, enshrined under a layer of\nclothes.\n\nYou can find all the scripts mentioned in this post (and more!)\n[here](https://github.com/icyphox/dotfiles/tree/master/nix).\n",
    "date": "2022-05-02T15:04:05+02:00",
    "$type": "org.pdsblog.post",
    "title": "The Asus ROG Flow X13",
    "author": ""
  }
}