Category Archives: Cool Tools

WinGet Installs Neofetch Directly

OK then, I’ve had a little more time to research and think about yesterday’s blog post, which seized upon the Chris Titus install/update/tweak PowerShell script as a way to get Neofetch installed on Windows. It most assuredly works, but there are easier ways to get this done. Indeed, with the right knowledge and syntax, WinGet installs Neofetch directly. Here’s the syntax:

WinGet install Neofetch

You can see that in the lead-in screengrab. It shows that WinGet knows about a package named neofetch-win with an associated ID of nepnep.neofetch-win. Indeed, that turns out to be the key to finding this project at GitHub. Turns out that nepnep39 is the developer’s handle, and neofetch-win is the name of this GitHub project.

Why WinGet Installs Neofetch Directly

TLDR answer: because the developer has created a package definition for neofetch-win that’s known to WinGet. Indeed, I got the simplest possible syntax shown in the lead graphic from the GitHub project’s README file. Who knew? A lot of people, apparently (he thanks visitors for 50K downloads in March 2024). But alas, not yours truly until yesterday. Sigh.

There’s another way to use WinGet to install Neofetch, also shown in the lead-in graphic, albeit indirectly. You can use the ID mechanism as well, to wit:

WinGet install --id nepnep.neofetch-win

This approach specifically calls out the package by its full ID string, as registered in the WinGet package database.

Even GitHub Provides More Ways

If you visit the “Latest” release page for neofetch-win at GitHub (1.2.1 as I write this), you’ll also find links to an .exe file and an MS Installer (.msi) file there. They work, too, to provide access to this nifty little tool from the UNIX/Linux world.

Where there’s a will to use WinGet, it’s often possible to find a way to exercise same. In this case, I simply needed to find the right handle. It must’ve been too obvious for me, but now I know how to get there from here. And so do you… But heck, based on nepnep39’s March 2024 thankyou, maybe you already did.

Facebooklinkedin
Facebooklinkedin

Bringing Neofetch Aboard via WinGet

I knew there had to be a way. I just couldn’t find it or figure it out on my own. The venerable old OS info command line tool Neofetch (best known to UNIX and Linux users) works at the Windows command line, too. But I struggled with Chocolatey and Scoop to get it installed without liking the results. This morning Eleven Forum user Lance1 posted a terrific WinGet-based install/update tool from Chris Titus with an understated title “You may find this handy.” Indeed I did — and I also successfully tried bringing Neofetch aboard via WinGet on my production PC. You can see it running in the lead-in screengrab.

What’s Behind Bringing Neofetch Aboard via WinGet?

Running the command from Lance1’s post — namely

iwr -useb https://christitus.com/win | iex

absolutely did the trick for me.

Here’s how Copilot breaks this command string down (all six numbered items are quoted verbatim therefrom):

  1. iwr: This is an alias for the Invoke-WebRequest cmdlet. It sends an HTTP request to a web server and retrieves the response.
  2. -useb: This parameter tells Invoke-WebRequest to automatically unblock the downloaded file, which is useful when downloading scripts from the internet.
  3. https://christitus.com/win: This is the URL of the file you’re downloading. In this case, it’s a script hosted on Chris Titus’s website.
  4. |: This is the pipeline operator, which passes the output of one cmdlet to another cmdlet.
  5. iex: This is an alias for the Invoke-Expression cmdlet. It runs a script or command that is passed to it as input.

In summary, says Copilot: “this command downloads a script from https://Christitus.com/win and then executes it immediately on your system.” It’s what pops up the partial console that includes a checkbox for Neofetch, like so:

And when I clicked on Install/upgrade selected in the console pop-up window, it showed the following output as it used WinGet to handle the Neofetch install:

I’m jazzed. I need to spend more time with this Chis Titus tool and see what ELSE it can do. Lance1 was certainly right in his low-key estimation of its utility. I’ve already found it handy, so to speak. Cheers!

Facebooklinkedin
Facebooklinkedin

Recent Upgrade Traffic Heavy

It’s been a busy past few days here at Chez Tittel. Yesterday’s Patch Tuesday was pretty intense — MS and third-party updates addressed 67 CVEs — for all my Windows 10 and 11 PCs and VMs. And today, I’m noticing anywhere from 6 to 9 updates via WinGet on those same PCs and VMs. IMO, this makes recent upgrade traffic heavy (or at least, heavier than usual). You can see the list of 9 updates from the Lenovo ThinkPad X1 Extreme in the lead-in graphic, for example.

Is Recent Upgrade Traffic Heavy Important?

Hard to say. The number of CVEs addressed on Patch Tuesday may sound high, but Copilot says it’s way below the 350-400 monthly average over the past 12 months. Wait?! Can that be right… Yes, it can. Indeed, the monthly average for CVEs reported for Windows in 2024 was over 3,300. With the number addressed in fixes, you can see how far Windows trails behind in catching up.

Where WinGet is concerned, 7-9 on any given day is higher than usual, but not extraordinary. Here again, Copilot says “it’s safe to say that WinGet handles hundreds of updates daily across various systems.” On any particular systems, or on Chez Tittel systems (they’re similarly configured and run a fairly consistent set of tools and apps), that number varies by what’s there and what’s updated.

The Tools Keep Working, and So Do I

I’ve experienced relatively little difficulty with WU and WinGet updates in past months (see my February 6 post on upgrading Canary to 27788 as  rare exception). Keeping up with Windows and its apps and applications involves regular — but not extreme — effort. I’ll keep on keepin’ on as long as that stays true.

In that same vein, I haven’t seen much action recently through the lens of Patch My PC Home Updater. My typical suite of 20 to under 40 of its apps have been mostly quiescent for the past week and longer. That said, my production desktop just reported two C++ redistributables and CPU-Z all need updates. Go figure!

Facebooklinkedin
Facebooklinkedin

WinTerm Multi-Line Paste Flag Is Helpful

Way to go, Windows Terminal (WinTerm) development team. I just accidentally hit Paste (Ctrl-V) inside that application, and it posted the warning you can see in the lead-in graphic. I saved myself unnecessary error messages — and the app saved itself from associated error handling — by warning me I was about to do something possibly stupid. Indeed I was, as you can see from the clipboard contents info in the screencap. Hence my considered judgement: the WinTerm multi-line paste flag is helpful.

Obviously, WinTerm Multi-Line Paste Flag Is Helpful

Shoot! Given how often, and in how many ways I use the paste buffer, there could be just about ANYTHING in there. That includes all kinds of text and even images. I use cut’n’paste all the time while writing, especially when updating older stories from Windows 10 to 11 coverage. I’ve done that dozens of times in the past couple of years for ComputerWorld, Tom’s Hardware and TechTarget. Plus, I often use cut’n’paste to drop screencaps into social media posts as I’m commenting on Windows news and observations. None of that stuff works in PowerShell, folks!

It’s a good thing when application designers and developers recognize human frailty, and take steps to protect users from themselves. It’s particularly good, IMO, when that user is me!

Windows Terminal Keeps Getting Better and Better

From its own self-update behavior, to various UI and Settings improvements, to PowerToys add-ins (Think: “Command Not Found”), Windows Terminal has just kept steadily improving over the past 2-3 years. The more I use it, the more I’ve come to like it. And now, with Copilot to assist me in writing PowerShell scripts, I’ve become better able to take advantage of that ever-increasing goodness. You should, too.

Facebooklinkedin
Facebooklinkedin

WinGet Boosts Chrome Update Capability

Here’s an interesting item. Previously, WinGet wouldn’t update Chrome on Windows PCs where it was running. Now it will, because WinGet boosts Chrome update capability. It now runs the installer with admin privileges to overcome the maxim “don’t mess with running processes.” You can see it working in the lead-in graphic, where the text reads (in yellow):

The installer will request to run as administrator, expect a prompt.

If WinGet Boosts Chrome Update Capability, Users Benefit

This means users must still Relaunch Chrome to get the update to take, though WinGet applies the update. Previously, WinGet would just skip the whole thing. Now, the next time users open that browser, the new update will take over (or, they can manually use the Relaunch button themselves).

After WinGet does its thing, Relaunch remains required to leave running processes undisturbed.

Will Other Browser Makers Follow Suit?

Here’s a shout out to the dev teams for Edge, Mozilla/Firefox (and variations), Opera, and others. Take heed of this Chrome action and do likewise. Your users — including your truly, most fervently — will thank you.

It’s just another small step for WinGet. But it translates into a big boost for the Windows user base. Keep up the good work, people!

New PowerShell Version Out, Too…

While I’ve got your eye, a new PowerShell version — v7.5.0 — is out. It’s still new enough that WinGet won’t install it yet. If you, like me, are OCD enough to want to run it before it gets into the pipeline, download it from the assets on the Release v7.5.0 page.

Note added 15 minutes later: Nevermind, it’s already showing up in WinGet. I should’ve known @Denelon and the team wouldn’t sit on their hands here. Another attaboy for that group and the PowerShell team. Good-oh.

Here, you can see the old 7.4.6 windows left, and a new 7.5.0 window right. God: I *LOVE* Windows Terminal.

Facebooklinkedin
Facebooklinkedin

UniGetUI Beta Previews Advanced Features

Yesterday, Marti Climent — the lead developer for UniGetUI (formerly known as WinGetUI) — dropped a new beta version (3.1.6-Beta2) of the program into GitHub. This UniGetUI Beta previews advanced features planned for the next official release, when it transitions into production. Right now, it may be worth downloading and playing with to see what it can do (IMO). But the developer’s “Caution” on this release reads “Prerelease builds can be unstable and should not be used on a production environment.” There: you’ve been warned.

Exploring UniGetUI Beta Previews Advanced Features

A good way to understand what’s in 3.1.6-beta2 is to visit its release page at GitHub. There you’ll see that info listed under “General Changes.” Minutae appear in the detailed changelog (summarized under “What’s Changed” on the GitHub page). Highlights:

  • Downloads provide more detailed status info, including download and install phases
  • Multiple downloads can now proceed in parallel
  • Immediate package download triggers upon right-click of any item in the update list

I’m especially intrigued to see that UniGetUI will soon gain parallel download capability. It already launches a separate process for each download/install session but does them in series. In the next release, it will do them in bunches, instead of one at a time. Good-oh!

Production Release 3.1.5 Also Worth Trying

For those seeking a good alternative to WinGet (and 9 other package managers, including Scoop, Chocolatey, NPM, PIP, and more) UniGetUI is worth checking out in its own right. The lead-in graphic shows a recent download session on my production Windows 10 PC. There, it’s ready to download and install 6 packages (Dropbox, Chrome, Java SE SDK, PS 5.x and 7.x PSGalleries, and Snagit 2024). The whole process takes less than 10 minutes to complete.

UniGetUI should be of especial interest to organizations and development teams that use sources not available to WinGet but readily available to some or all of the other package managers mentioned in the preceding paragraph). Indeed, UniGetUI finds and updates items that WinGet at the command line does not, because of that wider range of available update sources, even on plain-vanilla Windows 10 or 11 PCs.

If you like what you see in version 3.1.15, keep your eyes out for the final cut of 3.1.16. It promises to be faster and more capable than the current production version. One more thing: if you’d rather let UniGetUI do its thing without bothering you try this super-silent command line invocation:

UniGetUI.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /NoAutoStart

This suppresses interactions and messages, and puts off any restarts that might otherwise be initiated if working UniGetUI through its actual UI. Works like a charm, in total stealth mode. Good stuff!

 

Facebooklinkedin
Facebooklinkedin

Further Intel DSA Follies

So I’m working on the new loaner unit here at Chez Tittel: a Lenovo ThinkCentre M90a Gen5. As part of my management process, I routinely install the Intel Driver and Support Assistant — aka DSA — on PCs with Intel CPUs. That includes the M90a because it sports a beefy i7-14700. In catching up the device on the latest Bluetooth, Wi-Fi and GbE drivers this morning, I found myself engaged in further Intel DSA follies following (and during) installation. Let me explain…

Fostering Further Intel DSA Follies

My first folly occurred as DSA was getting installed. Even though it wasn’t quite done, it popped up a notification of available updates. I’d never seen this before, so I bit on that offer. It got me downloading the aforementioned communications drivers, and I started that sequence with Bluetooth. Imagine my surprise when the install refused to run because “another installation is underway.” For me, then, Folly #1 is “Don’t start on updates until DSA install is finished.”

Folly #2 reflects a recent UI change in DSA. Once it completes any driver install, it shows installation history. Because one is installing drivers in sequence, that means one must click the “Refresh” button to see any and all remaining drivers that still need to be installed. Repeat until all desired drivers are updated. I’ll summarize Folly #2 as “Remember to click ‘Refresh’ as each install completes, to see remaining pending installs.”

Folly#3 is extreme user engagement in the various driver installers. I counted from 7 to 10 mouse clicks per driver install to get through that process. This bothers me enough that I’ve already blogged about this (April 2023: Achieving Intel Update Driver Silence). Given that Intel has documented this capability for most of its drivers, I’m apparently not the only DSA user to find this irksome.

Done and Dusted: Follies Behind Me

The M90a is now caught up with all of the Intel drivers I choose to update. Even though it’s not supposed to matter, that brings me to Folly #4: The Intel Arc & Iris Xe Graphics warning (appears as the lead-in graphic above, in fact). Intel says elsewhere that since 2022 or thereabouts, its drivers do NOT trample upon OEM customizations. Yet it continues to flash this warning and require user opt-in before enabling install. Sheesh.

Here in Windows World, it’s always something. Today, it’s Intel DSA follies. Who knows what tomorrow will bring? Wait til then, and I’ll let you know…

Facebooklinkedin
Facebooklinkedin

OhMyPosh Auto Update Hangover Fixed

Here’s an interesting one. Indeed one can configure or enable the excellent OhMyPosh prompt tweaking tool  (aka OMP) to update itself. But there’s a trick involved in getting WinGet to recognize an update has occurred. I call it an “update hangover.” Apparently the local copy of the WinGet source list itself needs a reset before it catches up with what’s happened. (That list provides the basis from which it decides what’s fresh and what needs updating.) Let me explain — and show — how I got this OhMyPosh auto update hangover fixed.

Getting OhMyPosh Auto Update Hangover Fixed

Take a look at the screencap in the lead-in graphic. Before this sequence occurred, OMP told me as the PowerShell session started up that it was updating itself to version 24.18.1. You’ll notice that selfsame “Available” version according to WinGet upgrade output right at the head of that PowerShell command sequence.

Keep reading. Note that the output for oh-my-posh –version also reads 24.18.1. Thus, OMP is already upgraded and already current. But after I complete the valid remaining upgrade manually (for Microsoft.WindowsADK), another simple upgrade check shows that WinGet thinks OMP still needs that upgrade.

What to do? I try basic winget source reset — which attempts a reset for the winget and msstore sources — but the command output tells me the directive requires the –force option to work. So that’s what I try next:

winget source reset –name winget –force

As you can see when I do the next upgrade check after that, WinGet now reports “No installed package found matching input criteria.” That means it no longer sees OMP as a legit update target. Fixed!

Now, I wonder if Jan DeDobbeleer can figure out a way to reset the local list of packages for comparison to the WinGet source as part of his auto-update function. Probably not: knowing his thorough and deliberate approach to this package, he’d have done it already were that possible.

 

Facebooklinkedin
Facebooklinkedin

First TB5 NVMe SSD Enclosures Drop

OK then, I knew it was coming. The Thunderbolt 5 (TB5) and USB5 (aka USB4V2.0) specs got released in September 2023. We’d been expecting 80Gbps devices (including docks, SSD enclosures, dongles, and  so forth) to hit the market by late 2024. Now it looks like that crop is starting to come in. I see an NVMe enclosure model available from Acasis at Newegg (MSRP: $279, limited time deal for $239 — it provides the lead-in graphic image above). I also see a Trebleet model available at Amazon ($199). So as these first TB5 NVMe SSD enclosures drop, I find myself asking: “When will I get a test PC with an 80 Gbps USB-C port?” Good question!

Impact When First TB5 NVMe SSD Enclosures Drop

According to the device info a Newegg and Amazon, these new enclosures offer double the maximum read/write speeds from external NVMe connections. But remember, the whole chain — that is, port to cable to enclosure to embedded SSD — must be ready to accommodate those blistering speeds. Right now, it seems that cables (which usually ship with high end enclosures), enclosures and NVMes (which should ideally be PCIe Gen 4×4 or better) are becoming available.

There’s a bit of a problem on the port side of the chain right now, though. At the moment, only the very newest laptops incorporate USB5/TB5 80Gbps capable USB-C ports. Basically, you’ll have to go out and buy something new to take this I/O chain into your Windows processing stable. And indeed, Qualcomm has not yet incorporated USB5/TB5 controllers into its chipsets, so such a laptop will not come from that branch of the Copilot+ PC family tree, either. Indeed, Copilot tells me the same is true for Intel and AMD based Copilot+ PC hardware right now, too.

Does anybody else see a possible mismatch emerging? I can’t help but believe that leading-edge AI capable PCs should also accommodate the fastest USB-C ports and related I/O chains. It could be that the PC market is about to get more interesting than Microsoft and OEMs want it to be… Who wants to choose between AI-capable and blistering fast I/O: buyers want both!!!

Stay tuned: I’ll keep digging!

Facebooklinkedin
Facebooklinkedin

New OhMyPosh Version Highlights Auto-Update

As the world returned to a more normal work rhythm yesterday, I found myself fielding various new software updates. Among them, a bump to OhMyPosh version 24.18.0. It wouldn’t work via WinGet because — as you can see in the lead-in graphic — it introduces a “newer version” for its “install technology.” Thus, this new OhMyPosh version highlights auto-update gotcha. I’d already used the oh-my-posh enable upgrade command to automate that process. A new install wipes out that directive.

If New OhMyPosh Version Highlights Auto-Update, Then What?

This got me looking at ways to embed the same information in the omp.json file that drives OhMyPosh configurations. Turns out when a reinstall happens, default configurations are rewritten from scratch. Thus, adding commands to

“auto_upgrade”: true,
“disable_notice”: true,

likewise got wiped from my chosen JanDeDobbelleer.omp.json config file as well. (Add them to the end of that file and you’ll need to drop the second comma, in fact.) What to do?

Turns out a custom config file is left alone when you have to shift from an older install technology to a newer one. Renaming the default config file, adding customizations, and referencing that new name in the invocation for OMP will do the trick. Way to learn, I guess!

Best Gets Better, After Sussing Out the Wrinkles

My fervent thanks to Jan DeDobbelleer, the OMP developer and chief steward. There’s seldom anything that goes off with OMP that isn’t addressed in his copious documentation and online interactions with other users. It sometimes takes a little while — about half an hour for this set-to, for example — but I have always been able to figure out and fix whatever gets hinky with OMP. That’s quite a testament to the tool and its builder. Thanks again for everything, Jan!

Facebooklinkedin
Facebooklinkedin