more
Signed-off-by: Christine Dodrill <me@christine.website>
This commit is contained in:
parent
3ec0719037
commit
2741e48d79
|
@ -169,9 +169,9 @@ me having to install another copy of bash.
|
||||||
### Windows Terminal
|
### Windows Terminal
|
||||||
|
|
||||||
Windows Terminal gets a lot of things very right and also gets a lot of things
|
Windows Terminal gets a lot of things very right and also gets a lot of things
|
||||||
very wrong. I was so happy to see that it had claimed mostly compatible with
|
very wrong. I was so happy to see that it had claimed it was mostly compatible
|
||||||
xterm. My usual test for these things is to open a curses app that uses the
|
with xterm. My usual test for these things is to open a curses app that uses
|
||||||
mouse (such as Weechat or terminal Emacs) and click on things. This usually
|
the mouse (such as Weechat or terminal Emacs) and click on things. This usually
|
||||||
separates the wheat from the chaff when it comes to compatible terminal
|
separates the wheat from the chaff when it comes to compatible terminal
|
||||||
emulators. I used the SSH key from before to log into my server, connected to my
|
emulators. I used the SSH key from before to log into my server, connected to my
|
||||||
long-standing tmux session and then clicked on a channel name in Weechat.
|
long-standing tmux session and then clicked on a channel name in Weechat.
|
||||||
|
@ -216,28 +216,87 @@ environment in WSL, but WSL can't run systemd so I've been kinda avoiding it.
|
||||||
Excising systemd from NixOS really defeats most of the point in my book. I may
|
Excising systemd from NixOS really defeats most of the point in my book. I may
|
||||||
end up installing Nix on Alpine or something. IDK.
|
end up installing Nix on Alpine or something. IDK.
|
||||||
|
|
||||||
### Powershell
|
### PowerShell
|
||||||
|
|
||||||
They say you can learn a lot about the design of a command line interface by
|
They say you can learn a lot about the design of a command line interface by
|
||||||
what commands are used to do things like change directory, list files in a
|
what commands are used to do things like change directory, list files in a
|
||||||
directory and download files from the internet. In Powershell these are
|
directory and download files from the internet. In PowerShell these are
|
||||||
`Get-ChildItem`, `Set-Location` and `Invoke-WebRequest`. However there are
|
`Get-ChildItem`, `Set-Location` and `Invoke-WebRequest`. However there are
|
||||||
aliases for `ls`, `dir`, `cd` and `wget`.
|
aliases for `ls`, `dir`, `cd` and `wget` (these aliases aren't always
|
||||||
|
flag-compatible, so you may want to actually get used to doing things in the
|
||||||
|
PowerShell way if you end up doing anything overly fancy).
|
||||||
|
|
||||||
But they are not flag-compatible, so if you try to do `wget -O example.json
|
Another annoying thing was that pressing Control-D on an empty prompt didn't end up closing the session. In order to do this you need to edit your shell profile file:
|
||||||
https://xn--u7hz981o.ws/test.json` you don't actually get the file written to
|
|
||||||
`example.json`. You get this:
|
|
||||||
|
|
||||||
TODO(Xe): example here
|
```
|
||||||
|
PS C:\Users\xena> code $profile
|
||||||
|
```
|
||||||
|
|
||||||
I get that adding flag compatibility would be a huge pain and really be out of
|
Then you add this to the .ps1 file:
|
||||||
scope, but it would really be nice if some minimal effort was made to shim it
|
|
||||||
out.
|
```
|
||||||
|
Set-PSReadlineOption -EditMode Emacs
|
||||||
|
```
|
||||||
|
|
||||||
|
Save this file then close and re-open PowerShell.
|
||||||
|
|
||||||
|
If this was your first time editing your PowerShell config (like it was for me)
|
||||||
|
you are going to have to mess with your
|
||||||
|
[execution policy](https://www.mssqltips.com/sqlservertip/2702/setting-the-powershell-execution-policy/)
|
||||||
|
to allow you to execute scrips on your local machine. I get the reason why they
|
||||||
|
did this, PowerShell has a lot of...well...power over the system. Doing this
|
||||||
|
must outright eliminate a lot of attack vectors without doing much on the
|
||||||
|
admin's side. But this applies to your shell profile too. So you are going to
|
||||||
|
need to make a choice as to what security level you want to have with PowerShell
|
||||||
|
scripts. I personally went with `RemoteSigned`.
|
||||||
|
|
||||||
### Themes
|
### Themes
|
||||||
|
|
||||||
|
I use stuff cribbed from [oh my fish](https://github.com/oh-my-fish/oh-my-fish)
|
||||||
|
for my fish prompt. I googled "oh my powershell" and hoped I would get lucky
|
||||||
|
with finding some nice batteries-included tools.
|
||||||
|
[I got lucky](https://ohmyposh.dev/docs/installation/).
|
||||||
|
|
||||||
|
After looking through the options I saw a theme named `sorin` that looks like
|
||||||
|
this:
|
||||||
|
|
||||||
## Go
|

|
||||||
|
|
||||||
## Rust
|
### Project-local Dependencies
|
||||||
|
|
||||||
|
To get this I'd need to do everything in WSL and use Nix. VSCode even has some
|
||||||
|
nice integration that makes this easy. I wish there was a more native option
|
||||||
|
though.
|
||||||
|
|
||||||
|
## Things Windows Gets Really Right
|
||||||
|
|
||||||
|
The big thing that Windows gets really right as a developer is backwards
|
||||||
|
compatibility. For better or worse I can install just about any program from
|
||||||
|
the last 30 years of released software targeting windows and it will Just Work.
|
||||||
|
|
||||||
|
All of the games that I play natively target windows, and I don't have to hack
|
||||||
|
at Steam's linux setup to get things like Sonic Adventure 2 working. All of the
|
||||||
|
VR stuff I want to do will Just Work. All of the games I download will Just
|
||||||
|
Work. I don't have to do the Proton rain dance. I don't have to play with GPU
|
||||||
|
driver paths. I don't have to disable my compositor to get Factorio to launch.
|
||||||
|
And most of all when I report a problem it's likely to actually be taken
|
||||||
|
seriously instead of moaned at because I run a distribution without `/usr/lib`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Overall, I think I can at least tolerate this development experience. It's not
|
||||||
|
really the most ideal setup, but it does work and I can get things done with it.
|
||||||
|
It makes me miss NixOS though. NixOS really does ruin your expectations of what
|
||||||
|
a desktop operating system should be. It leaves you with kind of impossible
|
||||||
|
standards, and it can be a bit hard to unlearn them.
|
||||||
|
|
||||||
|
A lot of the software I use is closed source proprietary software. I've tried to
|
||||||
|
fight that battle before. I've given up. When it works, Linux on the desktop is
|
||||||
|
a fantastic experience. Everything works together there. The system is a lot
|
||||||
|
more cohesive compared to the "download random programs and hope for the best"
|
||||||
|
strategy that you end up taking with Windows systems. It's hard to do the
|
||||||
|
"download random programs and hope for the best" strategy with Linux on the
|
||||||
|
desktop because there really isn't one Linux platform to target. There's 20 or
|
||||||
|
something. This is an advantage sometimes, but is a huge pain other times.
|
||||||
|
|
||||||
|
The conclusion here is that there is no conclusion.
|
|
@ -9,15 +9,14 @@ fn main() -> Result<()> {
|
||||||
.output()
|
.output()
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
if std::env::var("out").is_err() {
|
let out = std::env::var("out").unwrap_or("/fake".into());
|
||||||
println!("cargo:rustc-env=out=/yolo");
|
println!("cargo:rustc-env=out={}", out);
|
||||||
}
|
|
||||||
|
|
||||||
let git_hash = String::from_utf8(output.stdout).unwrap();
|
let git_hash = String::from_utf8(output.stdout).unwrap();
|
||||||
println!(
|
println!(
|
||||||
"cargo:rustc-env=GITHUB_SHA={}",
|
"cargo:rustc-env=GITHUB_SHA={}",
|
||||||
if git_hash.as_str() == "" {
|
if git_hash.as_str() == "" {
|
||||||
env!("out").into()
|
out.into()
|
||||||
} else {
|
} else {
|
||||||
git_hash
|
git_hash
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue