I have the USPS notification service [1] where they send me an email with a scan of all my incoming mail. I look forward to seeing what this one looks like.
I use Atuin, but unlike the author actually find it more valuable since I use it across many machines. I have 7 different machines (of various make and OS though all *NIX) in my house right now that I regularly SSH in to or use directly, and Atuin's sync keeps my history on all of them. If I want to narrow down by host I can still do that. I also keep similar directory structures so I can narrow down by directory even if I performed a command on a different machine most of the time.
That said, some form of advanced history search is a game changer, no matter how you get it. It's one of those "can't understand how I lived without it" things once you get it going.
I’ve started using Atuin based on a recommendation from here a few weeks ago. I generally like it, but feel like the fuzzy matching is bad - maybe I either misconfigured something or nobody else cares about it?
If the command I want to match against is within the last few days or so, the fuzzy match performs ok, but anything from months ago which I know for a fact is in the history, it just doesn’t match it and instead shows irrelevant items (which technically I’m sure according to some algorithm are correct). Another one is I often have to put a ^ to ensure the ‘curl’ I’m searching for starts looking for matches at beginning of line.
Often times I still fall back to using fzf on ~/.zsh_history which seems to get what I want.
There is this thread which is same issues I’m seeing, and I did try smart_sort=True but it’s still not great.
If using Nix, you can get Atuin working basically for free by just enabling it in the config. I love it. Does everything I'd every hoped for with history search.
I don't really like nix (yeah I tried it for a couple of months), but I'd like to point out that atuin is exceptionally easy to set up even without using nix as well in case someone gets an idea that it is difficult.
I'm also in this boat. I have atuin as part of my zsh config that is distributed to all new machines, whether they run NixOS or some other operating system with Nix on them (e.g. MacOS). After switching to NixOS I found an interest in maintaining a custom setup again, since it wouldn't fall apart every time I moved machine.
{ pkgs, ... }:
{
users.defaultUserShell = pkgs.zsh;
environment.systemPackages = with pkgs; [
atuin # ^R
eza # ls
git
zsh
];
programs.direnv.enable = true;
programs.nix-direnv.enable = true;
programs.zsh = {
enable = true;
enableCompletion = true;
enableBashCompletion = true;
enableGlobalCompInit = true;
# https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/docs/highlighters.md
syntaxHighlighting.enable = true;
syntaxHighlighting.highlighters = [ "main" "brackets" ];
# See `man zshoptions` for more details.
setOptions = [
# Remove duplicates continuously from command history (preserve newest entry).
"HIST_IGNORE_DUPS"
# Instantly share command history between all active shells.
"SHARE_HISTORY" # Alternative to: "APPEND_HISTORY", "INC_APPEND_HISTORY",
# Disable ^S and ^Z for less accidental freezing.
"FLOW_CONTROL"
# Save timestamp and duration of each command in command history.
"EXTENDED_HISTORY"
];
shellAliases = {
# Navigation
rm = "rm -iv";
ls = "eza -lg";
tree = "eza -lgT";
# git aliases
# ...
};
promptInit = ''
autoload -U promptinit
promptinit
prompt off
# Simple:
# PS1='[%n@%m:%~] %(!.#.$) '
# Colorful:
# PS1='[%F{green}%n@%m%f:%F{blue}%~%f] %(!.#.$) '
# Colorful with git branch:
function git_branch_name() {
branch=$(git symbolic-ref HEAD --short 2>/dev/null)
if [ ! -z "$branch" ]; then
echo -n " [%F{red}$branch%f]"
fi
}
# Omit username, print hostname + '$' with red when root, otherwise green:
prompt='[%(!.%F{red}.%F{green})%m%f:%F{blue}%~%f]$(git_branch_name) %(!.%F{red}#%f.$) '
# See: https://zsh.sourceforge.io/Doc/Release/Options.html#Prompting
setopt prompt_cr
setopt prompt_sp
setopt prompt_subst
export PROMPT_EOL_MARK=""
'';
interactiveShellInit = ''
# Prevent user-level "config missing" message.
touch $HOME/.zshrc
# MacOS
bindkey '^[[7~' beginning-of-line
bindkey '^[[8~' end-of-line
# Linux
bindkey '^[[1;3D' beginning-of-line # alt+left
bindkey '^[[1;3C' end-of-line # alt+right
bindkey '^[[1;5D' backward-word # ctrl+left
bindkey '^[[1;5C' forward-word # ctrl+right
# Both
bindkey '^R' history-incremental-search-backward
bindkey '^U' kill-whole-line
bindkey '^Y' yank
# My SSH endpoints don't recognize modern terminals
export TERM=xterm-256color
# ^R only
eval "$(atuin init zsh --disable-up-arrow)"
'';
};
}
Did you really need to share 108 lines of code, inline, rather than a link to gist/similar?
The chances of people reading this discussion running NixOS are small, and of those I'm sure the ones who were interested could search the internet for examples.
NixOS and Kagi user here. Hacker News often is the most reliable search result there is. Gists aren’t (they become easily deleted, unlike HN comments).
Curious on this: "Atuin's sync keeps my history on all of them"
I just checked on their GitHub and it says "Additionally, it provides optional and fully encrypted synchronisation of your history between machines, via an Atuin server."
So you trust all of your shell commands to be stored on a server that you don't control?
I appreciate that the journey might be the destination here, but you really don't need to do this anymore if the goal is to play games on Linux. Valve et al. have done so much Proton work that nearly every game I try just works.
Aside from the experience, this could be useful if you want to play games that have kernel level rootkits.
The concept is that you have a lot of isolated "AppVMs" running applications, in silos that cannot talk to each other. So, right now, I'm logged into HN with my "random-web" VM - that has nothing of interest in it beyond some PDFs I've downloaded. This, for instance, has zero access (except by exploiting and passing through Xen) my "sysadmin" VM, which contains my SSH keys for various things, and which I use for sysadmin type tasks. I've got other silos as well. All the windows from all these VMs interact like normal on my desktop - I'm not dealing with "Okay, this VM is for this, that VM is for that." Things just work smoothly and as expected.
A side effect of this, though, is that the AppVMs have no hardware acceleration of anything graphical. It's all software rendering in them. So gaming is normally right out - except, this talks about how to pass another GPU through to do this sort of thing, if you want.
Do you have the ability to pass files between or drag and drop files between isolated levels? Can I mount a shared folder into multiple isolated apps so they all have access? I like QubeOS in theory but I’m hesitant to try it due to (perhaps misplaced) UX concerns.
You have the ability to push files from one AppVM to another - they appear in ~/QubesIncoming/[source-vm-name]/ and you can do what you want with them from there. I do this regularly and it works perfectly fine. It's not drag-and-drop, there be demons. It's either a command line utility or a context menu in the file explorer.
There's no concept of a local shared folder you can mount in multiple AppVMs, though as networking exists, you could easily do so, if you wanted - share a folder in StorageVM and mount it in others. Though doing so would defeat a lot of the point of isolation, if VM1 can corrupt a file that will then attack VM2 when read. You'd want to really think hard about your threat models and what you would and wouldn't want, with such a setup.
My advice? Dual boot. Yes, at some level, dual booting raises the risk of QubesOS compromise from the other booted OS, because it could pop /boot, and such. But in practical terms, you're no worse off doing that, than you are with another OS running full time - and as a lot of the threats are things like "ad-delivered malware" or "random PDF to your inbox being malicious," you gain quite a bit even if you still dual boot into something else on occasion. My daily driver X250 has a straight Ubuntu install on a separate SSD that I use on occasion, in theory. Mostly, it exists to run a VM to talk to a car, except I've not had to do that in a long while. Oh, and movie playback on long flights. Power efficiency for video playback on Qubes is "not good." Except I don't do those anymore either. So, every few months, I boot into the Ubuntu install and update it.
Caution: QubesOS, to the right sort of person, may as well be a virus. It took less than a year to go from "Play OS on a random laptop I was in the process of selling" to "Primary daily driver OS on several machines." And then I realized I didn't actually use the desktops anymore.
You still need GPU passthrough if you want to use ant actual GPU instead of llvmpipe or whatever else renderer. Mind you, QubeOS is virtualization OS, Linux on QubesOS does not have access to GPU by default
> In the past year, we’ve also observed significant advances in terms of approaches to application development, an area that we at JetBrains are also heavily investing in. Just recently, we announced a new coding agent named Junie.
That agent must not be very helpful if it causes even the company creating it to be able to support less products.
Google Fiber was announced for Austin in 2013, and 12 years later it's still not available at my Austin address. I have used AT&T Fiber for as many years and it works great (currently at 2G symmetrical for $105/m).
The article is claiming that clocks that only show time truncated to a minute are off by an average of 30 seconds, which just isn't true in practice. When I say or hear 11:30, I assume it can be within 11:30:00 and 11:30:59. Humans rarely need accuracy to the second beyond this, so clocks intended to be used by humans truncate to the minute without causing problems. To say they are "late" is a real leap.
I mean, you can reduce this to absurdity too. A clock truncating to seconds is off by an average of 500 milliseconds! The problem is no one cares in day to day usage which is what human readable clocks are made for.
> When I say or hear 11:30, I assume it can be within 11:30:00 and 11:30:59.
And if you cared about seconds-precision, you would assume 11:30:30, and thus your error would average the same 15s.
The difference is that when you observe a minute change, you know that's exactly at zero seconds (instead of 30 — or 31 if you apply the same rounding rule to seconds).
It is fair to ask a question if rounding would be more useful (nope), but the entire article is incoherent and speaks mostly of the author's confusion.
I've only accidentally (via a GeForce Now trial before I gave Steam Remote Play another try) played a video game on a Windows computer in the past two years.
The only games that routinely cause problems are those with ridiculous kernel-level anticheat, and I am not interested in those games.
Polar Bear! He was a Bichon Poodle mix and his tail hadn’t grown in yet so he looked exactly like one of the little polar bears from the Coca Cola commercials
I had rented Final Fantasy 7 from Blockbuster so many times that my brother decided to get it for me for Christmas. Even though I never really snooped for presents he decided to mess with my head and wrapped it in two large bath towels and put it in an even larger box. This giant package below the tree for me, and it sounded like cloth - I figured it must've been a jacket or something until I opened it.
Another time I was looking for something (not presents) in my parent's room, and happened to find a very poorly hidden Playstation 2 from my father. The waiting until Christmas part was fitting punishment for accidental snooping.
Some of the finest memories are just a jumble of similar situations though. Christmas Eve was the night my entire local family would gather at my maternal grandmother's house, and we'd all have a big meal and sit around chatting afterwards.
Then there's that one Christmas Eve when I asked my now-wife to marry me. I knew she'd say yes but there's always that little bit of fear about it. I wanted to ask when everyone I loved would be around.
Time sure flies. Both my father and my maternal grandmother have passed since the last time we all celebrated Christmas together.
The accidental gift finding is so funny. My dad got me a bike for Christmas one year. Of course it's really hard to hide a bicycle, and he put it alongside the side of our house in a part of the yard nobody ever went in. For whatever reason, I happened to be playing in that part of the yard and found it. I asked him why there was a bike stored out in our yard because I was not a very clever kid. In hindsight it's very funny to imagine his perspective on it.
Spending Christmas Eve with family is the best. Really cherish those moments. The pace of everyday life is so fast, it's easy to forget what's really important.
I see my family too rarely because of the everyday hustle.
I love the holidays for the slow pace, the long lunches and dinners. Talking about nothing and everything.