Comments (2)
Writing HM modules for PSD and ASD and submitting them upstream would probably be preferred, since they don't depend on any of the functionality provided by impermanence. We could then implement support for automatically setting up the configuration for the relevant directories.
Just a warning before you spend any time on this, though: in my experience, the claims of increased preformance are a bit exaggerated, at least when running off an SSD. While the claims of massively decreased latency are true, it's not that noticable in reality. Just try mounting a tmpfs at ~/.mozilla
and see if it lives up to your expectations first.
from impermanence.
@colemickens for the time being this can be achieved by creating a systemd service and timer with home-manager (assuming home is mounted on tmpfs).
systemd.user = {
# This is effectively what psd does
services.firefox-persist = {
Unit = {
Description = "Firefox persistent storage sync";
};
Service = {
CPUSchedulingPolicy = "idle";
IOSchedulingClass = "idle";
Environment = "PATH=${pkgs.coreutils}";
# copy all files except those that are symlinks
ExecStart = toString (pkgs.writeShellScript "firefox-backup" ''
${pkgs.rsync}/bin/rsync -avh --exclude={'user.js','chrome','extensions'} /home/doc/.mozilla/firefox/doc /persist/home/doc/.mozilla/firefox/
'');
};
};
timers.firefox-persist = {
Unit = {
Description = "Firefox persistent storage periodic sync";
};
Timer = {
Unit = "firefox-persist.service";
# Run every 15 minutes
OnCalendar = "*:0/15";
Persistent = true;
};
Install = { WantedBy = [ "timers.target" ]; };
};
};
I use --exclude={'user.js','chrome','extensions'}
because these are symlinks in the nix store which impermanence seems to have an issue with right now.
PSD uses rsync -aX --inplace --no-whole-file
Then all you need to do is copy the files over on login.
from impermanence.
Related Issues (20)
- Regression after using escapeSystemdPath HOT 3
- `user.*.directories` assertion is displaying incorrectly`
- Issues with bindfs: no entry in /etc/mtab HOT 1
- Persisting Steam breaks any game within it and also fails shutdown HOT 4
- Boot does not revoke chmod permissions HOT 1
- [REQUEST] Declare `something.impermanence.enable` option for integration with other modules and easy way to disable impermanence HOT 1
- Handle bind mount of directory that already has content HOT 2
- `nixos-rebuild` fails due to the symlink, Impermanence created
- Best practice to split configuration HOT 1
- missing `x-gvfs-hidein` in mount
- Strategies to deal with `renameat(3)` on persisted files HOT 1
- Infinite recursion error when persisting anything in /var/ HOT 1
- Symlinks created via the home-manager module are broken HOT 1
- The importance of persisting `/var/lib/nixos` is not documented HOT 2
- Cannot use `users.users` without infinite recursion
- Empty list for home.persistence directories does not build HOT 3
- home-manager module cannot mount files to /persist. permission denied. HOT 1
- Root cannot access directories persisted with home-manager HOT 1
- Opt-in Mirror Mode
- Impermanence issues with SSH when provisioning with nixos-anywhere + disko + flakes
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from impermanence.