Jump to content

IBus: Difference between revisions

From NixOS Wiki
Jasi (talk | contribs)
Improve wiki page structure and old templates.
Jasi (talk | contribs)
m Custom emojis: Modernize file template.
Line 21: Line 21:
=== Custom emojis ===
=== Custom emojis ===
Custom emojis can be added to the emoji selection dialog of IBus. This can be used to workaround the fact that GTK does not support compose rules which output more than one unicode codepoint. Here an example [[Home Manager]] module:
Custom emojis can be added to the emoji selection dialog of IBus. This can be used to workaround the fact that GTK does not support compose rules which output more than one unicode codepoint. Here an example [[Home Manager]] module:
{{file|~/.config/nixpkgs/home.nix|nix|<nowiki>
{{file|3={ pkgs, lib, config, ... }:
{ pkgs, lib, config, ... }:
let
let
   /* define here the list of desired favorite emoji */
   /* define here the list of desired favorite emoji */
Line 36: Line 35:
     favorites = mkArray type.string (lib.attrValues fav);
     favorites = mkArray type.string (lib.attrValues fav);
   };
   };
}
}|name=~/.config/home-manager/home.nix|lang=nix}}
</nowiki>}}


Then, typing <code>Ctrl+Shift+e</code> and then <code>shrug</code>, Space and Return will insert <code>¯\_(ツ)_/¯</code>.
Then, typing <code>Ctrl+Shift+e</code> and then <code>shrug</code>, Space and Return will insert <code>¯\_(ツ)_/¯</code>.

Revision as of 00:48, 10 July 2025

IBus is a bus for various input methods.

Installation

Enabling IBus is described in the manual. To enable it is as follows:

❄︎ /etc/nixos/configuration.nix
{pkgs, lib, ...}:
{
 i18n.inputMethod = {
  enable = true;
  type = "ibus";
  ibus.engines = with pkgs.ibus-engines; [ 
    # Your engines here
  ];
 };
}

Available engines are listed under the pkgs.ibus-engines attribute set. The list of available engines can be viewed in the documentation for the i18n.inputMethod.ibus.enginesoption.

After rebuilding and switching to the new configuration, you still need to logout from your session and login again for ibus to work correctly.

Troubleshooting

Custom emojis

Custom emojis can be added to the emoji selection dialog of IBus. This can be used to workaround the fact that GTK does not support compose rules which output more than one unicode codepoint. Here an example Home Manager module:

❄︎ ~/.config/home-manager/home.nix
{ pkgs, lib, config, ... }:
let
  /* define here the list of desired favorite emoji */
  fav = {
    shrug = ''¯\_(ツ)_/¯'';
    "markdown-shrug" = ''¯\\\_(ツ)\_/¯'';
    flip = ''(╯°□°)╯︵ ┻━┻'';
  };
in
{
  dconf.settings."desktop/ibus/panel/emoji" = with lib.hm.gvariant; {
    favorite-annotations = mkArray type.string (lib.attrNames fav);
    favorites = mkArray type.string (lib.attrValues fav);
  };
}

Then, typing Ctrl+Shift+e and then shrug, Space and Return will insert ¯\_(ツ)_/¯.

See also