I'll suggest Process Hacker [0] It is the ultimate Task Manger, open source, supports amazing plugins , and has tons of features that sysinternals Process Explorer lacks. Be sure to get the nightly/3.0 branch , the 2.0 branch is several years old. Also I strongly suggest building the plugins extra repo [1], has some great ones, like a terminator plugin that can kill apps various user and kernel ways.
Unfortunately due to a personal dispute with a Webroot employee and Microsoft its signature ended up in antivirus databases, so don't expect any love from Microsoft. They often look at the APIs PH uses and use signature checks and other ways to block/discourage PH from using them. Also expect having to whitelist it with anti-virus products, but the source code is open and you can build it yourself if you don't trust what you are getting. [2]
I once configured Process Hacker to automatically pin a crappy piece of corporate software to a specific CPU whenever it started to prevent it from starving the rest of the system.
Set-and-forget is so much better than having to constantly deal with the downsides of software you're required to run.
Everytime I use this I expect my coworkers to react with "how did you find that so fast!?" and I can share the magic with them, but they're probably just thinking about what to order for lunch.
I could be wrong, but I believe it searches the MFT directly rather than having to index files on disk, making it a lot faster. Everything would be faster for network drives because of this though.
I'd add Directory Opus[0] to that list. It's an incredibly customizable and scriptable file explorer that allows you to fit it exactly to your workflow. It's like IntelliJ of file explorers.
- Tabbed interface with multiple panes
- Every function can be assigned a shortcut
- Every button can be scripted
- Defaults can be overwritten
- Dynamic layouts based on folder contents, path or determined by a script
- Virtual filesystem for archiving and bookkeeping
- ...
One disadvantage is that you have to use an ancient version of JScript (ES3 / Microsoft flavor) or VBScript (possibly because of the need for communicating over a COM interface). Or use its own DSL for simpler scripts.
I wish it had support for a more modern / more popular languages for scripting. I wonder if QuickJS[1] can be integrated into it. Or Python. That would be really sweet.
Or TotalCommander. Directory synchronization, integrated diff, Sftp support, renaming multiple files, lister to intelligently view contents of a file, 10s of years of plugins
Some components are Win32 primitives, and it may not be possible to modify them. You could try asking it in the forum[0]? Lead developer is quite responsive.
Thanks. It is actually possible to reduce the height of standard Windows menu bars via system metrics. These look somewhat non-standard and don't respect that.
One thing issue with WizTree is that drawing the result is slow for large trees (a volume with a great many files spread over a the structure) compared to other programs. For one of my local volume at work which happens to include an archive copy of a huge (for VSS) source safe repository WizTree is slower despite the MFT shenanigans because drawing the result after takes enough time to undo the advantage. Though this is on SSD - I expect WizTree would reclaim the speed crown for this dataset on a "traditional" disk, where the reduced random access IO requirements of its MFT scan will be even more significant.
Having retested not I have local access to that filesystem again, the issue seems to be when used remote via RDC, even over a local wifi network. Running properly local the delay goes away in even the pathological case.
As SpaceSniffer has no similar bad slow-down on display updates, I assume that means how WizTree draws interacts badly with the remoting protocol: either it is drawing in small steps and RDC is trying to send each update out individually so many small updates are going over the wire, or the 3D-ish look is causing issues, or both.
I love that the MFT makes utilities like that so fast. I couldn't imagine working without Everything Search. I've never found anything similar for Linux. I think I could do something with locate and a cron job, but that doesn't get instant updates to its database like Everything does.
but updatedb only takes a few seconds to update after it's done a full update, unless you've been fucking around with thousands up thousands of files just recently. Well on ext4, not sure about other filesystems.
I used WinDirStat a lot but I've since switched to TreeSize (free edition). WinDirStat is single threaded so you can't really do anything while it's scanning. TreeSize let's you navigate the tree while the scan is still happening.
I'm surprised Dexpot[0] isn't listed. It's a really great virtual desktop management tool and has a number of things included that's not included with the Windows 10 default virtual desktop feature.
Then there's VcXrv[1] to share your clipboard between WSL and Windows, it also lets you run Linux GUI tools in WSL. Essential IMO, if only for clipboard sharing.
Sizer[2] is another great tool for quickly resizing and positioning windows programmatically. Amazingly useful for spinning up specific sets of apps quickly.
IrfanView[3] is IMO one of the best quick image viewers / editors. It also has handy dev features (batch processing, quickly getting a hex value from an image, etc.).
Dexpot still works fine even though it hasn't been updated for years. And I love being able to have 9 virtual desktops arranged in a 3x3 grid and a semi-permanent transparent "minimap" of what's on each desktop as well as my current location in the 3x3 grid. But it has an issue which makes it unusable for me, something which may or may not be a bug, i.e. on switching to a desktop, if that desktop contains more than one window, all of them are brought to the front one after another, causing considerable delay if there are >3 windows present. The native win10 virtual desktop feature doesn't seem to have that issue.
I see you use multiple monitors, does Sizer play well with them? I discarded it cause I thought it did not support multimonitor setups well. My main use case is setting up some complex layout (in multimonitor), and be able to save it, and restore it when needed.
> I see you use multiple monitors, does Sizer play well with them?
It supports them well.
It has a drop down box where you can define the monitor you want for a specific entry and then window positions will be relative to that monitor.
Alternatively you can also set a window's position to any X / Y coordinate. So if you had let's say 2x 2560x14440 monitors and you wanted to position a window to the 2nd monitor you can tell Sizer to move it to X coordinate 3050 and it would be +500 pixels into the 2nd monitor. You just need to enable the checkbox "allow move outside screen bounds". That could be useful I guess if you wanted a window to span more than 1 monitor and you have super thin bezels.
AutoHotKey finally fell off my list, to be replaced by... powershell. After about 8 years of utter disdain for the mistake that is powershell, I’m actually enjoying giving it a proper test drive.
I can’t quite believe it myself but i chsh’d to pwsh on my mac and linux boxes too.
Goodbye 30 lines of AHK just to capture and parse the output of a RunWait (in practice it was better to create a WSH com object and exec the command from there since it’s only 3 lines of code to grab stdout then).
The AutoHotKey programming language is quirky and weird, even when compared to Powershell's quirkiness, but there are classes of things that AutoHotKey can do that I don't know how you would do on Powershell:
prepend or append selected text to what's already on the clipboard with Ctrl+[ or Ctrl+]
find all windows with specific text in the title and resize them in a custom way (Window+])
insert custom strings or large blocks of text in other programs triggered by a keypress (its original reason for being)
eg: ]s inserts the current date and time: 2020-12-25 11:57:07
define a keypress to start Putty with a given profile, enter logon credentials, CD to a folder and start Midnight Commander
(these are my own keypress definitions)
I once wrote an AHK script to start VLC streaming a local radio station at a specific time, then start Audacity to record audio, then stop the recording and streaming at the end of the program and save the audio as WAV and MP3. This let me go for a bike ride in the late afternoon before dark, then come home and listen to my favorite radio show later in the evening. It's not necessary anymore, but back in 2008 this was an amazing thing to put together.
This was a good list, just for fun i had a bash at #1 (an excuse to learn as much as anything...):
prepend-selection.ps1:
$before = Get-Clipboard
[void][System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms')
[System.Windows.Forms.SendKeys]::SendWait("%({TAB})") # when launched, a powershell.exe opens and steals focus, this alt+tab takes focus back to the app that has the text selection
[System.Windows.Forms.SendKeys]::SendWait("^(c)") # ctrl+c
$after = Get-Clipboard
Set-Clipboard -Value ($after + $before)
Now for the impossible bit - perform this action on ctrl+[ keypress... I created a new shortcut on the desktop (in the start menu would also work) with a target of:
And the "start in" was set to the dir containing prepend-selection.ps1
Lastly the "shortcut key" of the shortcut was set to CTRL+SHIFT+[ -- i couldn't use CTRL+[
... and it works. Open an app like notepad, put something on the clipboard, select some other text then ctrl+shift+[ with notepad still having the focus and... wait far too long but then eventually powershell.exe opens and i have the selected value prepended to my clipboard.
0 out of 10. Would not do again, AHK definitely beats powershell for this use case :-)
For #2 i know how to do that already - create a Shell.Application com object and then cycle through the window list and set width / height / top / left to suit.
For #3 i didn't try it but i wonder if there's a mechanism where i can insert a function to be called back into window's message processing loop. Like how i imagine AHK does it. This is just a thought, i'd just use AHK before i actually tried this.
For #4 this suffers the same issue as #1 with the "define a keypress" limitation but otherwise it's just an exec + focus window + send keys (likely with some hacky sleeps in between).
The code you wrote will do but in AHK its 1 liner, ets 0 memory and CPU. You can also compile it into exe or use portable AHK. It can stay in tray with another line.
How did you finally get into it? I was stoked about it 15 years ago when I first read about it, but using it never clicked with me. Every now and then I enthusiastically try to embrace it, just to eventually be annoyed by all the clumsiness, lack of speed, or about having to wade through layers of objects just to get to the information I need. It just does not have the feeling of a tool for shell users honed by shell users, but a soulless navigation tool for a Byzantine object structure.
I finally decided Powershell is not so much a shell but rather an environment good for scripting.
What direction did you come from when embracing it? Did you have a strong background of Unix admin / developer use of shells?
It’s early days on my test drive. I don’t know how well it’ll fare for fairly common actions in bash like “here documents” or what the equiv of shopt extglob is in pwsh.
My usual cli usage is what i’d call “text manipulation” - slicing and dicing command output or converting csv-like data in some way or another.
My toolset is the usual suspects - bash, sed & awk but beyond a certain complexity i’ll switch to python.
The key thing for me is i can still use grep, sed, awk and python in pipelines as before but i’m attracted by the easy data access in pwsh.
The idea that Get-Process returns an object and i can just query each process’s WSS attribute for example is appealing right now (as opposed to explicitly manipulating text to suit, e.g. grep resident /proc/*/statm or ps -o rss or whatever approach)
AHK is not comparable to powershell. They overlap in some segments but generally, what AHK can do, you would have to reimplement in Posh and it would be slow as hell.
Aha! A folder full of .ps1’s (that were .ahk’s) begs to differ on this point :-)
Some random examples i use all the time:
* i have a bunch of apps (i think of it like a workspace) that i open for specific tasks - e.g. when playing ham radio i’ll open a tool that lets me duplicate traffic to/from a serial port (com0com) so that multiple apps can share 1 physical port, a tool that lets me control my radio (flrig), a tool that lets me route audio between devices and software without a mess of cables doing it in hardware (voicemeeter banana), a tool that encodes/decodes messages (wsjtx), a tool that shows what grid squares i’m hearing (gridtracker) and a tool for logging (home brew). They all need to be arranged in fairly bespoke ways across a couple of screens to let me work effectively - bind the shortcut to the .ps1 to a keyboard shortcut and i’m done.
The same idea exists for my other workspaces (dev work - there’s different flavours for this one by task, photo editing, researching, presenting, etc. Etc.)
Things like sending “PS1;” CAT control command to my radio (this turns it on) are actually less lines of code in .ps1 than .ahk. My .ps1’s are about 2/3 the size of the .ahk’s in practice.
Before .ahk i was using python2 with the win32 module, .ps1 is comparably expressive to python2 - which surprises me.
Other .ahk’s i use all the time are basically glorifed macros for common actions i perform. Again shorter to express in powershell.
> A folder full of .ps1’s (that were .ahk’s) begs to differ on this point
I have tones of ps1 and tones of ahk files in folders. But its not comparable. Main use case of AHK is GUI automation, which is precisely not something powershell handles nor it will ever be in its scope.
I wonder why the author recommend winget but not scoop. Scoop obviously has more community support and that's the most important part of a package manager (more packages, more frequent update, etc).
> I wonder why the author recommend winget but not scoop.
Scott Hanselman works for Microsoft and is a prominent advocate for the .NET/Microsoft ecosystem so his recommendations are likely to skew towards native MS tools in the first instance.
Nothing wrong with that as long as you consume his material through that lens!
That said, I'm quite surprised I hadn't heard of Scoop[0]. Looks interesting...
It's absolutely not, but it's being picked up industry-wide and even by Microsoft themselves. Basically any piece of Electron shitware can be found installing itself to %LOCALAPPDATA%, silently updating itself and leaving gigabytes of old copies around in subfolders. I think it's a lost battle and not worth getting angry about anymore.
They can prevent that if they want to (there are tons of admin software to prevent users from install unapproved software on windows) so it really is a nonissue. The main issue is extra space, but that also isn't that big of an issue if the app is written well for updates and I don't know why that would be any more or less efficient when installed by "user" vs "admin"
While they could prevent it, that's not how. The software is never "installed". It's only unzipped to scoops install directory (usually home/scoop/...)
Then it adds the install directory to the PATH and it's done. The copied executables have never been marked as unknown by windows in my experience.
Admins could of course lock down systems to only allow executables with specific hashedls which are manually whitelisted by the admins, but just disallowing installs won't help at all
Disallowing powershell or scripting altogether makes it impossible to use as well.
It has some pros and cons depends on what you value, but I wish that Linux ecosystem can make it easier to install software in home, no root permission needed.
I have a remote access to a ubuntu server, and I tried to use my zshrc but there is no zsh installed. Maybe asking the admin of the server to install zsh is another way to do it, but I managed to compile zsh and use it as my default shell. Although it works, but I wish that there is a easier way to install software locally without having to resort to compiling.
Scoop tries to swim upstream and change the default install location. In my experience, this ultimately leads to problems and system fragility. Sure, it should work, but that's no comfort when it doesn't work right when you need it. Instead, you should install software to the default place and install it as admin. That's how it's tested by its developers and that's how it's tested for regression and compatibility within Microsoft.
Agreed. winget is lacking most features I absolutely need from a package manager, including listing installed packages, uninstalling packages, and updating packages. These are all on the v1 roadmap [1], but for the foreseeable future I'm sticking with scoop.
In short, Scoop installs all your apps in the user home dir. Apps are not installed through an installer, but through a .zip file. A pro is that you do not need to be admin on your PC for Scoop to function (handy for PCs that are not in your control). A con I've encountered is that Windows is not very friendly towards apps that are not installed through an installer. I've installed IrfanView through Scoop, but for some reason, Windows restores "Photos" as default app for opening pictures a few times a week, this was not the case when I installed IrfanView with an installer.
^ I've installed IrfanView through Scoop, but for some reason, Windows restores "Photos" as default app for opening pictures a few times a week, this was not the case when I installed IrfanView with an installer.
This may not be Scoops fault. I installed Irfanview with choco and have to reset my default programs setting every so often, presumably since Windows 10 takes user settings as suggestions for the Microsoft PM to ignore every few weeks when the OKRs get thin :).
I'd not heard of Scoop before today but have used chocolatey extensively in the past.
However I'm wary of all these tools (including brew on Mac) as they all feel like a pretty efficient way to main line your own personal supply chain attack into your dev machine!
For that reason I now try to use them sparingly and with a high degree of suspicion.
With most package managers you can review package sources (e.g. "choco info" for chocolatey or "brew info" / "brew edit" for homebrew).
As for threat model it comes down to whether using package management poses larger risk than doing everything manually and risking running a range of outdated packages.
Scoop installs all the files locally by default and doesn't need to be run through an elevated shell. In junction to this, there's also usually less trouble with leftover files after uninstalling programs.
The official software repo might be smaller than chocolate's, but to my eye, as it is moderated through a single open github repo, it seems much simpler.
Tangentially related, but I wish that running elevated from the shell was more ergonomic. I want to just be able to have a sudo-like command to run elevated from an otherwise non-elevated shell. Instead I have to launch a new instance of the shell host that's elevated. ConEmu makes this feel more seamless by doing some window manipulation hacks to bring elevated and non-elevated into tabs of the same window, but Windows Terminal doesn't want to do anything so hacky which means having a second Windows Terminal window when running elevated.
I wonder if improving this is possible within the current design of Windows or if it would be a fundamental change in how it handles user privileges.
In addition to the alternatives others have mentioned, the author of `scoop` also has a package available for `scoop` named `sudo`, described as "An approximation of the Unix sudo command. Shows a UAC popup window unfortunately."
From a non-elevated shell (cmd or ps), you can run `sudo <command>` to a roughly equivalent effect from *nix terminals. I find it meets my needs.
That's what I was wondering? It's been around for literally decades. I'm 99.9% linux user now but back in the day runas came in handy on windows for daemons that I would write and test to run in the background as various users or admin.
Is 7zip really a good format for sharing data? I also use the program for unpacking and I like the context menu integration. However when I send files, I prefer zip because I feel like this is easiest for the recipient to open (no matter if they are using windows, linux, osx, Android...).
No, IMO. Nobody cares about saving "2-10%" if it means risking a hassle at the customer/user site due to a nonstandard format. If they do care that much about a minuscule incremental win, they probably shouldn't.
See the endless flame wars between DjVu advocates and .PDF die-hards for another example. Stick with the standard unless the improvement being offered by the newcomer is drop-dead amazing.
Yes, with one caveat: There are times where you need to send a zip file to someone who does not or cannot install additional tools. I. this case, 7z can cause a “I don’t know what this file is and can’t open it” reply. Of course you can always counter that with “Here’s a zip instead”
I just had to decompress a 7z file on linux. It is really confusing -- there is no 7unzip command. A random third-party tool decompressed the archive incorrectly. The official p7zip package consists of three or more different command-line tools that are meant to handle any operation you could imagine, with different and weird options. Slogging through them takes quite a bit of manpage reading, and there are hidden gotchas. For example, the "simple interface", p7zip, is optimized for .tar.7z files, and deletes the original archive when decompressing. It is supposed to only do it only if there's one file in the archive, but it happened for me regardless.
The correct command is '7z x <file>'.
It's quite a contrast from the good experience I had with 7zip on Windows.
7zip is an amazing decompression tool that can handle many formats. You can even use it to extract installer exe files for otherwise difficult situations (like where a firmware blob is only available in a Windows exe download). It’s also free and hassle free. When sending to other people though, it can create zip format.
Showcasing is precisely what's happening in this article. Scott Hanselman works for Microsoft and he's part of the community of people who evangelize Windows, .NET, Xbox and all the cool Microsoft tech...
That’s sort of my take as well. I can’t think of a single Windows program that would wish was available to me on the Mac or Linux.
You never hear a company advertising that their product is only feasable thanks to the features provided in the .Net framework, or that their application takes advantage of the foundation provided by Windows.
I not saying that Windows is bad, it’s a truck, meant for business, and games. It’s just that there aren’t any overwhelming programs which could only exist on Windows. Many programs don’t even feel completly native to the platform, and basic features like drag’n drop, copy’n paste or shortcut are frequently a little hit and miss, it have become much better, but still, it’s a little late.
Visual Code is a fantastic product, but it’s not really a Windows application. That sort of tells me that not ever Microsoft really believe that Windows have that much to offer on the desktop, that you can’t just replace it with web technologies.
X1 Search is the single Windows program I wish so badly was available on the Mac. So much that I switched from Mac back to Windows twice in the past because the functionality was so important.
I search for a word or phrase through 1000s of documents, spreadsheets, PDFs, and email archive files going back two decades. On my desktop or in a cloud service. X1 displays matches in real time, fast-as-you-type, with all the results easy to grok in one glance in list form, sorted by any field. And on the same screen, X1 renders a preview of the file/email as I click through the list. No need to open the file/email: I can read the whole document right there on the search screen. I can also copy & paste from that document. And all search terms are highlighted.
TLDR; My main question for you - What kinds of programs do you think could only exist on a Mac or Linux which could not possibly work on Windows?
> You never hear a company advertising that their product is only feasable thanks to the features provided in the .Net framework...
Yes you do. There are whole companies (and publications) that only exist thanks to the .NET framework and before that, Visual Basic. How many "Swift/Obj-C component companies" are there? On the .NET side I can count at least 2 big ones off the top of my head (DevExpress and Telerik), but I'm probably forgetting dozens more from decades past.
If these companies and their customers were already being served by Java or Obj-C then .NET would never have taken off.
Outside of the .NET components business, there is a whole class of applications which would be extremely difficult to develop and maintain on Mac and Linux. Programs like TortoiseGit which heavily customize the Windows Explorer and other bits of the Windows UI in ways which Apple would never provide APIs for. On Linux, to develop apps like these you'd have cover to much of the fragmented landscape of desktop environments. I still miss TortoiseGit on my Linux desktop.
AutoHotKey is also in another class of apps that I can't see existing for Mac or Linux. Automating Win32 is easy because you can hook into everything and there's a stable, unfragmented landscape. Here's something I recently did with AutoHotKey - created a 2 line script that waited for a "HID key/Special key/Media key" to be pressed and ran a program. On a Mac you'll be writing a whole custom program or hunting down an obscure utility. On Linux, you'll cobble together a few different programs depending on your DE setup. On my Mac, I had trouble even finding a program [0] that would show me what keyboard keys were pressed so I could use the key id in my script, like this - https://www.autohotkey.com/docs/KeyList.htm#SpecialKeys
> I not saying that Windows is bad, it’s a truck, meant for business, and games.
It's a general purpose OS, just like Mac and Linux. If Windows is a truck, all three of them are trucks.
> It’s just that there aren’t any overwhelming programs which could only exist on Windows.
What kinds of programs do you think could only exist on a Mac or Linux which could not possibly work on Windows?
> Many programs don’t even feel completly native to the platform, and basic features like drag’n drop, copy’n paste or shortcut are frequently a little hit and miss, it have become much better, but still, it’s a little late.
Not sure specifically what you're talking about here. But - a little late for what? The vast majority of desktop users and more than half of all programmers are already on Windows.
I've never had problems with basic features like cut/copy/paste or window management on Windows. On my Mac I've given up on trying to fix the lack of window management features and the inability to do things with keyboard like "pressing just delete to delete a file". On my main workstations I had to cobble together various scripts and obscure utilities to do things Windows does, such as "use this hotkey to move window to other monitor" (for XFCE).
> Visual Code is a fantastic product...
It's called Visual Studio Code or VS Code.
> ...it’s not really a Windows application. That sort of tells me that not ever Microsoft really believe that Windows have that much to offer on the desktop...
Nah, they built VS Code as part of their expansion into cloud services so they could market those services to Mac and Linux programmers more easily. Electron is just the path of least resistance for building cross-platform apps. They couldn't use Windows-only tech to build it because of course Windows-only tech is a bad way to build cross-platform apps.
[0] - Just found this today, but note the comment on the second answer that "it doesn't work for media keys" which was my problem. Also, the first answer doesn't show you key codes just highlights the key being pressed. - https://apple.stackexchange.com/questions/40192/how-can-i-te...
Programs like TortoiseGit which heavily customize the Windows Explorer and other bits of the Windows UI in ways which Apple would never provide APIs for.
What do folks think of the recommended WinMerge and Perforce Visual Merge, over Beyond Compare?
I've been using Beyond Compare for years and have yet to see anything I like better.
Total Uninstall should also be on this list, to keep your machine clean if you're like me and try out dozens or hundreds of different software titles per year.
SysInternals belongs up there with NirSoft.
I used Teracopy for a while but found it buggy on occasion and worried about forgetting what I had queued. If it's gotten better I might give it another whirl.
I've got a slew of great utilities I've collected over the years which I find indispensible on Windows.
There's a lot of overlap with Scott's, but I think he's missing some gems. Could share my own list if anyone is interested.
In the same field as Total Uninstall, there's Bulk Crap Uninstaller[0] that helps you stay sane when fixing up a relative's computer. It finds and helps you uninstall applications unattended, also removes leftover files after the uninstallation.
Some others I haven't noticed mentioned here yet are Open Shell (classic start menu), QTTabBar (tabs in Explorer), Launchy (like Everything but for your apps), HashTab, Unlocker (SendTo target to see what process has locked your file), UltraMon, USBLogView, sdelete.
WinMerge is the best diff tool I’ve found. I haven’t used it for merges, because I prefer four-pane merges (original, left, right, and final) and it doesn’t support that. For that I use kdiff3, though I’d love to find a replacement...
WinMerge is open source - maybe free software, I don’t know. Development halted for years but was picked back up. It’s so solid that I haven’t upgraded in a decade? or more.
I would mention Total commander and Quick Access Popup as two well known ones, but two gems that I see are undiscovered are:
- TouchCursor https://martin-stone.github.io/touchcursor/ the only one I found that allows you to use Space as modifier key, and works flawlesly (with other ahk scripts handling hotkeys running simultaneously). Praying it does not stop working with some Win10 update, as it is not being worked one, it seems
Personally I prefer to use left alt key instead of space key, as I can hold down the left alt with minimal effort (right alt takes over the duty of left). For this to cause minimal conflict, I use Sharpkey to remap physical left alt to e.g. F16 at the OS level, then define the desired behavior for F16 in ahk.
VS Code is fine and I actually use it quite a bit. Whoever says, it is "hella fast" either never used a really fast text editor or only compares it to Atom.
For day-to-day development, WSL is definitely better.
But I think MSYS2 [0] still deserves a mention in the age of Windows Subsystem for Linux. It's a complete mingw-w64 distribution with a friendly package manager (ArchLinux's pacman). If you suddenly need to use some CLI tools on a Windows machine, MSYS2 can be quicker - no need to enable virtualization or upgrade Windows 10, just download a 91 MB installer and you can start right away. I recently needed to use wget on Windows to solve a problem for someone, instead of MSYS2, I made the mistake of downloading a random Windows build at SourceForge, later I was hit by a bug...
>Path Copy Copy is an add-on for Windows Explorer that adds contextual menu items on all files and folders allowing the user to copy the path(s) in various formats.
You can do this already (built into windows), by pressing SHIFT+Right Click (shift or alt, not at my PC to check). The context menu will show some extra options, one of which is ‘copy path’
Perfect timing. After having used Linux full-time in private and at work for the past 13 years, I had to switch to Windows 10 at my new job. I miss the hell out of my shell, my .zshrc file, and the general "easy" customization of Linux, but I'll be more than happy to see how I'll better adapt to Windows 10 thanks to this list and the tools provided in the comments here.
Edit: First thing I'll install is most probably the Windows Subsystem for Linux :)
... took the cygwin path, instead, in a similar situation (company imposed Win10 laptop), albeit my macbook w/macos + homebrew is still the best combo, which I am also trying to leverage as much as possible for work.
was about to ask "how are you not running wsl yet" :) if you have any questions, hmu, I switched deliberately to windows 10 from macos on my worklaptop, because wsl + vscode is evil black magic
WSL is good for for running Linux on top of Windows with convenient but not always efficient interop, but if you just want Zshell for Windows, you can do that too:
A nice chunk of unix tools get installed with git (if you select the option to) - you could just add it to your path and it saves on a fair chunk of that aliasing work
I think my biggest annoyance with powershell in particular is that curl is aliased into this awkward powershell function by default
> The older one with that alias is now "Windows PowerShell", and is legacy and no longer developed.
It's still distributed by default with all versions of Windows where it is labelled “Powershell” with no qualifier.
Microsoft’s branding isn’t particularly internally consistent, so being ultrapedantic about one particular presentation of it, and one that itself conflicts with the one pushed most immediately in front of the largest set of customers by Microsoft, isn't necessarily a great approach.
You have outdated information. You can either update your information and use the current names, or you can pretend a tool from 4 years ago which has been deprecated and superceded at least twice, is the current one, the same way you can pretend that Windows 8 is the current desktop and be angry about the full screen start menu that "Windows has".
Semi-related: Has WSL2 fixed the issue where trying to do anything in the host Windows filesystem is interminably slow? Running something like “git status” takes legitimately like 15 seconds if the repo is outside the linux filesystem.
No, but they're actively working on it. You can mount it as a CIFS share to get somewhat better performance; I believe there are some other hacks to fix specific things like "git status".
The last mention: Windows Sandbox, has anyone got that to work? I have a monster i9, and Windows Sandbox grinds my system to a halt, and is completely unusable - 10 to 30 seconds to recognize a mouse click or key press. Useless.
Compared to Windows Terminal, I started to use Fluent Terminal (also on Microsoft store), and it is amazing! It crashed a few times at first, but it's customizable, has a settings UI, and is just as fast and nicer looking compared to Windows Terminal.
X-Mouse button control is another app I absolutely love. It replaced my Logitech Options, and works quite nice, and quietly sits doing just that.
It seems nice but using WSL(2) Windows Terminal is noticeably faster for me, same compared to most other alternatives including Cmder/ConEmu.
While Windows Terminal doesn't have a settings UI (yet[0]) it does allow for theming, this page[1] features a range of color schemes that you can define and set in your settings.json.
There's also a wrapper that allows for quake style drop down [2] until it's implemented by Windows Terminal itself[0].
Windows Terminal allows some customization, via the settings Jason file. Colors, watermark image. I think they're working on a GUI for settings. That said, the rate of fixes seems to have slowed.
I am a big fan of BareTail and BareGrep when browsing and making sense of any very large set of log files.
The pro versions are definitely worth your money: real-time match, regex-to-table log parsing, grep in tail / tail in grep, and all this in an incredibly minimalist UI and a single small exe.
I love Bare Tail Pro. It is fantastic for working with huge, verbose log files and digging out the tiny portions relevant to whatever issue I am working on.
The product name is, however, unprofessional at best. Quite simply, it embarrasses me.
A partial workaround is to rename the shortcut, executable, directory, etc. to BareMetal Tail.
Funny, how big part of the list are Linux-origin projects or WSL. How about really making the switch to Linux instead of trying to make Windows function like Linux?
I've been using WSL and a lot of unix tools on Windows. I have a simple reason: Windows is a much better desktop environment.
I tried to switch from macOS to Linux. I've found workarounds / alternatives to almost all of my issues on Linux. One issue seems to be unfixable though;
I have a 4K monitor and pretty much required to use fractional scaling. Windows and macOS does it perfectly. I had good luck with Pop!_OS but 1.5x scaling is always blurry on Linux. Apparently it can not do non integer scaling so the current hack is to scale 3x and then resize the framebuffer to half the size. Nope.
So I switched to the next best thing: Windows with WSL.
I actually switched to XFCE a couple years ago because I think it's a much better desktop environment than Windows with regards to activities that I do for work like running lots of Docker images.
XFCE has features that you need 7+ Taskbar Tweaker for on Windows, like being able to middle-click a taskbar button to close it's window. Any feature XFCE didn't have such as "move a window to another monitor with a hotkey" were easy to script with xdotools or other similar utilities. With the recent release of XFCE (4.16 I think?) we got fractional scaling as well.
I also found it easier to add custom commands to Thunar's context menu than Windows Explorer. Thunar also has tabs and so does the XFCE terminal emulator.
Beyond that, I'm no longer constantly fighting with Windows Updates, Windows Firewall or Windows Defender or navigating the fragmented landscape of shells (PowerShell, Cmd, Git-Bash, Cygwin, etc.) just to get my job done.
When I setup a Linux workstation (Manjaro is my preferred distro), it stays the way I configured it without Microsoft constantly changing things out from under me - so I feel like I actually own the system.
Yeah - my solution was to not do that because I don't like having multiple monitors with mismatched resolutions anyway and I don't care for HiDPI for work. Every monitor I own is 1080p, even my laptop screen. My Macbook Pro is the only HiDPI computer screen here.
I'm not even sure what the point of HiDPI is though. It never made a difference for my work as a web developer. I understand it's more pixels per inch and less pixelation for high-res images, but if everything is getting scaled up what's the difference?
My (Windows 10) gaming rig used to be hooked up to a 4K 50" Samsung TV but I think the max I could get was 60Hz. Games and movies look pretty good there, but eventually I switched to a cheap 1080p/144hz gaming monitor because I play Rocket League mainly and that is a fast action e-sports game where you want to see as many FPS as possible.
I don't know about gaming but for daily desktop applications and coding I would never ever use a low dpi display again.
On a 1080p I can easily see individual pixels from a mile away and everything looks simply bad. I can not stand text on a low dpi screen.
Also, when I use 1.5x scaling, I have 1.5x more real estate. Hence my requirement for the fractional scaling. Even on 2x scaling (effectively turning it into a 1080p display) everything looks much better than a native 1080p display.
> I have a 4K monitor and pretty much required to use fractional scaling.
On Linux, another workaround is to set the font scaling to 1.5× (or whatever) but leave the display scaling at 1×. This leaves everything sharp with big enough text to read easily.
Haven't used desktop Linuxes or Windows for about decade as macOS + Linux servers has provided useful common ground for both use cases. But even ten years ago KDE was a lot more nicer to use than Windows and I would assume they have gone a lot further in the mean time. For HiDPI stuff that sound real PITA if that hasn't been yet worked out :/
I'm on Pop! 20.10 and, the fraction scaling option is available. I don't use fractional scaling, though, not even on my mac. Integer scaling is always going to be sharper and less resource intensive, no matter the DE.
Imagine, how much further Linux would be if people (and Microsoft) had used all the energy of trying to make Windows work like Linux instead of actually improving Linux.
There has been lots of projects with that goal like Cygwin, Mingw, WSL*. Different virtualization glue layers etc.
For most of the part there has been lots of effort to different runtimes (PHP, Python, Docker etc) to make them work better with Windows and the end result usually is that it's a lot more easier to have the same stuff running on top of Real Linux instad of different kind of kludges the Windows versions require.
Then i would need to emulate windows software on linux to do my job. And for me, borrowing features beats emulating software which may or may not work.
I would add ClipX (https://bluemars.org/clipx/) to that list, its extremely handy to bring up a small window of my past clipboards with a hotkey. It's also extremely lightweight
I used to be a big fan of conemu back when Windows had no terminal support and "console emulation" was the best that could be done. But what advantages does this have over Windows Terminal these days?
Not sure about ConEmu itself, but Cmder (which uses ConEmu behind the scenes) offers a Quake-style dropdown terminal, and this is reason enough for me :)
(If you're on Linux, there's also guake, which I used to use)
- Right-click to search in File Explorer (complete directories w/t subdirectories
- Open line results in a custom editor, like Notepad++
- Whole-file preview
- or: Show some lines before and after the grep finding (configurable)
- Search-and-replace, including undo
For mouse power users I would recommend StrokesPlus [0] , at first I used mouse gestures as a browser extension but with StrokesPlus you can do it on OS level. You can map everything you want as a gesture and even use multiple key modifiers.
You can map the each gesture per app group or global.
An ignore list is also there.
Once Windows 10 supports linux GUI apps by default in WSL 2, that will be huge. At that point it should be easy to develop completely in Linux, only on Windows.
I've gotten this working with some extra tools, and the experience is pretty good, but it is still a bit too fiddly for me to consider it as a primary solution for everyday development.
I'd add UELI[0] — probably the best alfred style launcher. Does almost everything including Everything integration.
Also this script[1] for AHK to quckly jump from "Save as" window to folder currently opened in file explorer.
Just saw Ueli from the article. Looks really interesting but it seems to be built in Electron. What's its footprint like? I'm currently very happy using the nice lightweight Launchy but it hasn't been updated in a long time. Still works great but requires a bit of tinkering to get it going in Win10, last time I tried.
Mostly interested in how much RAM it uses - Launchy using < 9MB for me indexing all my applications + some of my docs. I feel like anything built on Electron is going to be 1GB at least?!
I was shocked when I saw that it's 120 MB, but I downloaded it anyway. Looks like a good Wox alternative so far....just skeptical about the performance and impact on battery given its Electron roots.
I'd add Far Manager, which has been THE file manager for more than 15 years for me on Windows. BSD license: https://www.farmanager.com/download.php?l=en
I wish it was ported to Linux and I'd probably never use midnight commander again
I found Directory Opus a couple years ago and I love it as a file manager. One of those tools that I didn't mind paying for. I know there's other 2-pane file managers, but this was my favorite after testing them.
If you often find yourself renaming files I can highly recommend Flash Renamer. It's $20, but it must have saved me thousands of dollars in production time.
Btw, does anybody know of a modern disk usage manager that uses bright, clear individual colors like Space Monger?
PowerRename has worked fine for me, can also recommend it.
However, when there's directories and many, many files involved, I just use Python with pathlib. It's a couple lines of code anyone can learn to do, with all the flexibility of Python. PowerShell would maybe also be suitable.
I hate these flat, 'phone style' interfaces on desktop apps..
I've never really used Macs but I think my favorite window style/chrome was the old OSX Aqua look.
If you want a GUI tool, I like GrepWin[0] - you can have it install an Explorer context menu item, right click, hit GrepWin, then you can search. Supports simple text searches as well as regex. You can filter by filesize too. Been using this for years, really useful tool.
On the command line, I just use grep (a cygwin version of it, installed with Git for Windows, I think).
In the video, why does pulling the rope go through the reminder times 40 minutes, 1 hour, 1 hour 20 minutes, 1 hour 40 minutes, 22 hours, 23 hours, 23 hours 30 minutes, 1 hour 50 minutes, 2 hours?
If you use a prosumer version of Win 10, debloating is maybe 10 clicks after a reinstall and a registry script if you want to get rid of telemetry altogether.
Unfortunately due to a personal dispute with a Webroot employee and Microsoft its signature ended up in antivirus databases, so don't expect any love from Microsoft. They often look at the APIs PH uses and use signature checks and other ways to block/discourage PH from using them. Also expect having to whitelist it with anti-virus products, but the source code is open and you can build it yourself if you don't trust what you are getting. [2]
[0] https://wj32.org/processhacker/nightly.php
[1] https://github.com/processhacker/plugins-extra/
[2] https://github.com/processhacker/processhacker/issues/454#is...