{ config, lib, pkgs, ... }: let rofimoji_sway_config = pkgs.writeTextFile { name = "rofimoji.conf"; text = '' # Emoji selector bindsym $mod+backslash exec ${pkgs.rofimoji}/bin/rofimoji --selector tofi ''; }; in { imports = [ ]; config = lib.mkIf (config.me.graphical && config.me.sway.enable) { me.swayIncludes = [ rofimoji_sway_config ]; environment.persistence."/state" = lib.mkIf (!config.me.buildingIso) { hideMounts = true; users.talexander = { directories = [ { directory = ".local/share/rofimoji"; user = "talexander"; group = "talexander"; mode = "0755"; } ]; }; }; nixpkgs.overlays = [ (final: prev: { rofimoji = prev.rofimoji.overrideAttrs (old: { propagatedBuildInputs = old.propagatedBuildInputs ++ [ pkgs.tofi ]; src = builtins.fetchGit { # https://github.com/fdw/rofimoji/issues/209 url = "https://github.com/fdw/rofimoji.git"; rev = "615f00abeb984f3e648ef712164aa4e61f2e1808"; }; }); }) (final: prev: { tofi = pkgs.symlinkJoin { name = "tofi"; paths = [ prev.tofi ]; buildInputs = [ pkgs.makeWrapper ]; postBuild = '' wrapProgram $out/bin/tofi-drun --add-flags --font=${pkgs.source-sans-pro}/share/fonts/opentype/SourceSansPro-Regular.otf --add-flags --config=${./files/tofi-config} wrapProgram $out/bin/tofi --add-flags --config=${./files/tofi-config} ''; }; }) ]; }; }