Compare commits
4
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
26a67a66b9 | ||
|
|
4889716ac1 | ||
|
|
59148423ff | ||
|
|
5d31f53b70 |
@@ -15,15 +15,14 @@ in {
|
|||||||
# https://support.mozilla.org/en-US/kb/recovering-important-data-from-an-old-profile.
|
# https://support.mozilla.org/en-US/kb/recovering-important-data-from-an-old-profile.
|
||||||
sydnix.impermanence.directories = [
|
sydnix.impermanence.directories = [
|
||||||
"${config.xdg.configHome}/mozilla/firefox"
|
"${config.xdg.configHome}/mozilla/firefox"
|
||||||
".cache/mozilla/firefox"
|
# "${config.xdg.configHome}/mozilla/firefox"
|
||||||
".mozilla"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
stylix.targets.firefox.profileNames = [ "msyds" ];
|
stylix.targets.firefox.profileNames = [ "msyds" ];
|
||||||
|
|
||||||
programs.firefox = {
|
programs.firefox = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# configPath = "${config.xdg.configHome}/mozilla/firefox";
|
configPath = "${config.xdg.configHome}/mozilla/firefox";
|
||||||
|
|
||||||
# Available language codes can be found on the releases page:
|
# Available language codes can be found on the releases page:
|
||||||
# https://releases.mozilla.org/pub/firefox/releases/134.0.2/linux-x86_64/xpi/.
|
# https://releases.mozilla.org/pub/firefox/releases/134.0.2/linux-x86_64/xpi/.
|
||||||
|
|||||||
@@ -342,6 +342,10 @@ in {
|
|||||||
place-within-backdrop = true;
|
place-within-backdrop = true;
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# debug = {
|
||||||
|
# wait-for-frame-completion-in-pipewire = {};
|
||||||
|
# };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -267,10 +267,19 @@ in {
|
|||||||
"poweroff"
|
"poweroff"
|
||||||
"lock"
|
"lock"
|
||||||
"suspend"
|
"suspend"
|
||||||
# "restart"
|
"restart"
|
||||||
];
|
];
|
||||||
powerMenuDefaultAction = "logout";
|
powerMenuDefaultAction = "logout";
|
||||||
powerMenuGridLayout = false;
|
powerMenuGridLayout = false;
|
||||||
|
customPowerActionLock = "";
|
||||||
|
customPowerActionLogout = "";
|
||||||
|
customPowerActionSuspend = "";
|
||||||
|
customPowerActionHibernate = "";
|
||||||
|
customPowerActionReboot = "";
|
||||||
|
customPowerActionPowerOff = "";
|
||||||
|
updaterUseCustomCommand = false;
|
||||||
|
updaterCustomCommand = "";
|
||||||
|
updaterTerminalAdditionalParams = "";
|
||||||
displayNameMode = "system";
|
displayNameMode = "system";
|
||||||
screenPreferences.wallpaper = [];
|
screenPreferences.wallpaper = [];
|
||||||
showOnLastDisplay = {};
|
showOnLastDisplay = {};
|
||||||
|
|||||||
@@ -23,6 +23,16 @@ in {
|
|||||||
after = ["xwayland-satellite.service"];
|
after = ["xwayland-satellite.service"];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# programs.dank-material-shell.greeter = {
|
||||||
|
# enable = true;
|
||||||
|
# compositor.name = "niri";
|
||||||
|
# # configHome = "/home/msyds";
|
||||||
|
# logs = {
|
||||||
|
# save = true;
|
||||||
|
# path = "/tmp/dms-greeter.log";
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
|
||||||
# services.greetd.settings.default_session.command = "";
|
# services.greetd.settings.default_session.command = "";
|
||||||
|
|
||||||
services.displayManager.dms-greeter = {
|
services.displayManager.dms-greeter = {
|
||||||
|
|||||||
@@ -24,75 +24,51 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
boot.initrd.systemd = {
|
boot.initrd.systemd.services.rollback = {
|
||||||
services.impermance-btrfs-rolling-root = {
|
description = ''
|
||||||
description = "Archiving existing BTRFS root subvolume and creating a fresh one";
|
Rollback root filesystem to empty while maintaining old roots
|
||||||
unitConfig.DefaultDependencies = false;
|
'';
|
||||||
serviceConfig = {
|
wantedBy = [ "initrd.target" ];
|
||||||
# The script needs to run to completion before this service
|
before = [ "sysroot.mount" ];
|
||||||
# is done
|
path = with pkgs; [
|
||||||
Type = "oneshot";
|
coreutils
|
||||||
# NOTE: to be able to see errors in your script do this
|
findutils
|
||||||
StandardOutput = "journal+console";
|
util-linuxMinimal.bin
|
||||||
StandardError = "journal+console";
|
btrfs-progs
|
||||||
};
|
];
|
||||||
# This service is required for boot to succeed
|
unitConfig.DefaultDependencies = "no";
|
||||||
requiredBy = ["initrd.target"];
|
serviceConfig.Type = "oneshot";
|
||||||
# Should complete before any file systems are mounted
|
script = ''
|
||||||
before = ["sysroot.mount"];
|
# Mount the btrfs filesystem.
|
||||||
|
mkdir -p /btrfs-tmp
|
||||||
|
mount -t btrfs "${cfg.device}" /btrfs-tmp
|
||||||
|
|
||||||
# Wait until the root device is available
|
# If the moribund subvolume exists, send it do 'death row' (old-roots),
|
||||||
# If you're altering a different device, specify its device unit explicitly.
|
# where live for about three days before its eventual deletion.
|
||||||
# see: systemd-escape(1)
|
if [[ -e "/btrfs-tmp/${cfg.subvolume}" ]]; then
|
||||||
requires = ["initrd-root-device.target"];
|
mkdir -p /btrfs-tmp/old-roots
|
||||||
after = [
|
timestamp=$(date --date="@$(stat -c %Y "/btrfs-tmp/${cfg.subvolume}")" "+%Y-%m-%-d_%H:%M:%S")
|
||||||
"initrd-root-device.target"
|
mv "/btrfs-tmp/${cfg.subvolume}" "/btrfs-tmp/old-roots/$timestamp"
|
||||||
# Allow hibernation to resume before trying to alter any data
|
fi
|
||||||
"local-fs-pre.target"
|
|
||||||
];
|
|
||||||
|
|
||||||
script = ''
|
delete_subvolume_recursively() {
|
||||||
# Mount the btrfs filesystem.
|
IFS=$'\n'
|
||||||
mkdir -p /btrfs-tmp
|
for i in $(btrfs subvolume list -o "$1" | cut -f 9- -d ' '); do
|
||||||
mount -t btrfs "${cfg.device}" /btrfs-tmp
|
delete_subvolume_recursively "/btrfs-tmp/$i"
|
||||||
|
|
||||||
# If the moribund subvolume exists, send it do 'death row' (old-roots),
|
|
||||||
# where live for about three days before its eventual deletion.
|
|
||||||
if [[ -e "/btrfs-tmp/${cfg.subvolume}" ]]; then
|
|
||||||
mkdir -p /btrfs-tmp/old-roots
|
|
||||||
timestamp=$(date --date="@$(stat -c %Y "/btrfs-tmp/${cfg.subvolume}")" "+%Y-%m-%-d_%H:%M:%S")
|
|
||||||
mv "/btrfs-tmp/${cfg.subvolume}" "/btrfs-tmp/old-roots/$timestamp"
|
|
||||||
fi
|
|
||||||
|
|
||||||
delete_subvolume_recursively() {
|
|
||||||
IFS=$'\n'
|
|
||||||
for i in $(btrfs subvolume list -o "$1" | cut -f 9- -d ' '); do
|
|
||||||
delete_subvolume_recursively "/btrfs-tmp/$i"
|
|
||||||
done
|
|
||||||
btrfs subvolume delete "$1"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Delete previous roots older than three days.
|
|
||||||
# TODO: I would prefer archiving the last N previous roots, rather than
|
|
||||||
# time.
|
|
||||||
for i in $(find /btrfs-tmp/old-roots/ -maxdepth 1 -mtime +3); do
|
|
||||||
delete_subvolume_recursively "$i"
|
|
||||||
done
|
done
|
||||||
|
btrfs subvolume delete "$1"
|
||||||
|
}
|
||||||
|
|
||||||
btrfs subvolume create "/btrfs-tmp/${cfg.subvolume}"
|
# Delete previous roots older than three days.
|
||||||
umount /btrfs-tmp
|
# TODO: I would prefer archiving the last N previous roots, rather than
|
||||||
'';
|
# time.
|
||||||
};
|
for i in $(find /btrfs-tmp/old-roots/ -maxdepth 1 -mtime +3); do
|
||||||
# NOTE: path = [...]; doesnt work for initrd, use full paths in
|
delete_subvolume_recursively "$i"
|
||||||
# your script or extraBin
|
done
|
||||||
extraBin = {
|
|
||||||
"mkdir" = "${pkgs.coreutils}/bin/mkdir";
|
btrfs subvolume create "/btrfs-tmp/${cfg.subvolume}"
|
||||||
"date" = "${pkgs.coreutils}/bin/date";
|
umount /btrfs-tmp
|
||||||
"stat" = "${pkgs.coreutils}/bin/stat";
|
'';
|
||||||
"mv" = "${pkgs.coreutils}/bin/mv";
|
|
||||||
"find" = "${pkgs.findutils}/bin/find";
|
|
||||||
"btrfs" = "${pkgs.btrfs-progs}/bin/btrfs";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user