Skip to content

Migration Guide

The entire marchyo.inputMethod.* namespace (enable, enableCJK, triggerKey) has been removed. The option declarations no longer exist, so setting any of them now fails evaluation as an undefined option. Configure input methods and the IME trigger key directly through marchyo.keyboard.layouts and marchyo.keyboard.imeTriggerKey.

marchyo.inputMethod.enable = true;
marchyo.inputMethod.enableCJK = true;
marchyo.inputMethod.triggerKey = [ "Alt+grave" ];
marchyo.keyboard.layouts = [ "us" "fi" ];

Input methods are now configured directly in marchyo.keyboard.layouts:

marchyo.keyboard.layouts = [
"us"
"fi"
{ layout = "cn"; ime = "pinyin"; } # Chinese input
{ layout = "jp"; ime = "mozc"; } # Japanese input
{ layout = "kr"; ime = "hangul"; } # Korean input
];

The top-level variant option still works for the first layout but warns. Use the attribute set form in layouts instead.

marchyo.keyboard = {
layouts = [ "us" ];
variant = "intl";
};
marchyo.keyboard.layouts = [
{ layout = "us"; variant = "intl"; }
];

Setting a retired option fails evaluation with a message that names its replacement. The full list is in modules/nixos/options/removed.nix.

Option Replacement
marchyo.launcher.{keybinding,inputServer,telemetry,declutter,settings} None: the in-shell launcher of marchyo.shell replaces Vicinae
marchyo.osd.enable None: the shell draws the OSD
marchyo.gaming Enable programs.steam and friends on the host
marchyo.console.kmscon Configure services.kmscon on the host
marchyo.console.enable Use a terminal or a special workspace bind on the host
marchyo.snapshots Configure services.snapper on the host
marchyo.shell.devPlugins Declare plugins with marchyo.shell.plugins and rebuild
marchyo.shell.barPlugin The built-in bar is always used; add bar-widget plugins to marchyo.shell.settings.bar.layout
marchyo.ai.{agents,accounts,skills,crashCapture,herdr,amp} Install on the host; marchyo.defaults.aiAgent still installs one agent CLI
marchyo.ai.local Configure services.ollama on the host
marchyo.audio.tuner Tune PipeWire with services.pipewire.extraConfig
marchyo.hardware.camlink Configure services.v4l2-relayd on the host
marchyo.slack.themeInjection None: Slack keeps its own theme
marchyo.keyboard.legacyBinds None: there is one bind layout
marchyo.graphics.nvidia.package Set hardware.nvidia.package; Marchyo defaults it from marchyo.graphics.nvidia.generation
marchyo.performance.kernel Set boot.kernelPackages directly
marchyo.nix.caches Add to nix.settings.substituters and nix.settings.trusted-public-keys
marchyo.nix.router.extraUpstreams Add to nix.settings.substituters or services.ncro.settings.upstreams
marchyo.users.<name>.{uid,name} Set users.users.<name>.uid; name was never read

A renamed option forwards its value to the upstream option and warns.

Option Now
marchyo.security.firewall.enable networking.firewall.enable
marchyo.power.hibernation.resumeDevice boot.resumeDevice
marchyo.hardware.logitech.enable programs.solaar.enable
marchyo.graphics.nvidia.open hardware.nvidia.open
marchyo.graphics.nvidia.powerManagement hardware.nvidia.powerManagement.enable
marchyo.graphics.nvidia.containerToolkit.enable hardware.nvidia-container-toolkit.enable
marchyo.graphics.amd.overdrive.enable hardware.amdgpu.overdrive.enable
marchyo.nix.router.{enable,port,netrcFile} services.ncro.{enable,port,netrcFile}
marchyo.services.localsend.{enable,openFirewall} programs.localsend.{enable,openFirewall}