45

I run Ubuntu on a DELL XPS 13 notebook that has an US keyboard configured as US international. After upgrading to version 13.10 I can no loger get a cedilla by typing '+C. Instead, I get a "ć".

What should I do to get a "ç"?

I am using Ubuntu Gnome 13.10 64 bit.

13 Answers 13

23

In 13.10 and above you can use right Alt+ , (i.e. right Alt + comma) in English (US International with dead keys) to get ç. Shift + Right Alt + comma = Ç

Right Alt + is useful for ¡¿áéúóí also.

Without using compose, on linux, it may be Right Alt + = then C, for cedilla ¸ plus c = ç

3
  • 1
    This works great! Braiam's answer has the full list ;) Nov 18, 2014 at 7:51
  • The one that worked for me is RightAlt and then , + c SIMULTANEOUSLY. A very hard way to write a ç, not practical. Aug 1, 2020 at 13:16
  • What worked for me on a German keyboard is Alt-Gr (Right Alt) + ' + c.
    – henning
    Jan 22, 2023 at 11:20
18

It seems that just the step 3, proposed by Alexandre Schmidt (another answer to this same question), is enough to make the cedilla work, although the meaning of steps 1 and 2 is unknown for me at this time. I tested just this third step with success, as proposed by Jose Vitor Lopes at Comment 42 for bug 518056. For more details about this issue, check the entire log at Launchpad (https://bugs.launchpad.net/ubuntu/+bug/518056).

add one line in /etc/environment

GTK_IM_MODULE=cedilla QT_IM_MODULE=cedilla

Restart your computer

Source

The limitation of this change is that other consonants such as "S" are still being accentuated as "Ś", instead of having an apostrophe before the letter, as on "'S", used to express contractions.

16.04 LTS (Unity) update: config file changes are not needed anymore. Just choose one of the following input sources for text entry: (1) English (US, international with dead keys); (2) English (US, alternative international). Cedilla (C + ' = Ç) works fine with them.

4
  • Ça marche bien! Sep 22, 2014 at 20:30
  • 14.04: It works in all software ran from Unity. But it doesn't work in Unity's search menu, and it won't work for standalone consoles (CTRL-ALT-F1...).
    – Joe
    Jan 11, 2015 at 15:05
  • 2
    Tested on Ubuntu 18.04 configured for English (Canada) language and unfortunately it didn't work for me. Still looking for a solution to type ç as '+c.
    – Bani
    Apr 28, 2018 at 15:03
  • @Bani, see ubuntuforum-pt.org/index.php?topic=123209.0 for a solution on 18.04. It's in Portuguese but hopefully you'll understand if you google translate it
    – max
    May 21, 2019 at 11:53
14

This works for Ubuntu 13.10 and might not work for newer versions:

I was having the same issue and the following instructions solved my problem:

  1. Editing the files:

for 64 bits:

sudo gedit /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules.cache
sudo gedit /usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules.cache

for 32 bits:

sudo gedit /usr/lib/i386-linux-gnu/gtk-2.0/2.10.0/immodules.cache

changing the line

"cedilla" "Cedilla" "gtk20" "/usr/share/locale" "az:ca:co:fr:gv:oc:pt:sq:tr:wa"

to

"cedilla" "Cedilla" "gtk20" "/usr/share/locale" "az:ca:co:fr:gv:oc:pt:sq:tr:wa:en"

(note the "en" at the very end)

  1. replacing "ć" to "ç" and "Ć" to "Ç" on /usr/share/X11/locale/en_US.UTF-8/Compose (if you use more locales, you may need to this replacement for all of them)

    sudo cp /usr/share/X11/locale/en_US.UTF-8/Compose /usr/share/X11/locale/en_US.UTF-8/Compose.bak sed 's/ć/ç/g' < /usr/share/X11/locale/en_US.UTF-8/Compose | sed 's/Ć/Ç/g' > Compose sudo mv Compose /usr/share/X11/locale/en_US.UTF-8/Compose

  2. add two lines on /etc/environment

    GTK_IM_MODULE=cedilla QT_IM_MODULE=cedilla

  3. restart your computer

Source: https://bugs.launchpad.net/ubuntu/+bug/518056/comments/39

4
  • I get error warning from GTK3 because of your change in (1): Gtk-WARNING **: 10:36:44.682: Error parsing context info in '/usr/lib64/gtk-3.0/3.0.0/immodules.cache' "cedilla" "Cedilla" "gtk20" "/usr/share/locale" "az:ca:co:fr:gv:oc:pt:sq:tr:wa:en" Tried with gtk30 instead of gtk20, still with the same issue. Aug 1, 2020 at 13:40
  • ...and it didn't work for me. Aug 1, 2020 at 14:02
  • With ubuntu 20 this works, but after a reboot, it does not work anymore, so you need manually run source /etc/enviorment, and then it starts to work again!
    – digoferra
    Sep 27, 2021 at 10:58
  • Yeah, the proposed solution worked for Ubuntu 13, but the im scheme changed since then. Your GTK_IM_MODULE variable is probably being overwritten elsewhere after /etc/environment is loaded. To confirm that, instead of adding it to /etc/environment, add it to a file in /etc/profile.d/, then try rebooting. Sep 28, 2021 at 13:04
10

There is the x11 Compose file /usr/share/X11/locale/pt_BR.UTF-8/Compose for Brazilian Portuguese with this contents:

include "/usr/share/X11/locale/en_US.UTF-8/Compose"
<dead_acute> <C>    : "Ç" Ccedilla # LATIN CAPITAL LETTER C WITH CEDILLA
<dead_acute> <c>    : "ç" ccedilla # LATIN SMALL LETTER C WITH CEDILLA

So, whichever language you are using, all you need to do, to make '+c result in ç, is:

  • Generate the pt_BR.UTF-8 locale, if it's not already available:

    sudo locale-gen pt_BR.UTF-8

  • Add this line to your ~/.profile file:

    export LC_CTYPE=pt_BR.UTF-8

If you are a Brazilian user, and install the Portuguese language - either when installing or later from Language Support - you can skip the just mentioned steps. Instead you can just open Language Support and select Brazilian Portuguese as the display language. As from Ubuntu 15.04 it's sufficient to select Brazilian Portuguese as the Regional Formats setting.

Edit:

And a third way, if you don't want to change the LC_CTYPE variable, is to create an ~/.XCompose file and give it this contents:

<dead_acute> <C> : "Ç" Ccedilla # LATIN CAPITAL LETTER C WITH CEDILLA
<dead_acute> <c> : "ç" ccedilla # LATIN SMALL LETTER C WITH CEDILLA
10
  • Just wanted you to know, this was the real answer for this cedilla issue. Generating the locale and changing the .profile. I wish I found this answer of yours before. I was almost losing my mind here, I swear! Thank you! May 11, 2018 at 12:37
  • This is the only thing that worked for me... partially. The global export made my Latin1 consoles go crazy. But adding the export only when launching GTK applications solved the thing. Thanks!! Aug 1, 2020 at 14:25
  • @LuisA.Florit: Please see my edited answer. Aug 1, 2020 at 14:42
  • @GunnarHjalmarsson I get GTK errors with your new solution, probably because of the ISO file: Gtk-WARNING **: 11:48:32.650: GTK+ supports to output one char only: "\xc7" Ccedilla # LATIN CAPITAL LETTER C WITH CEDILLA: <dead_acute> <C> : "\xc7" Ccedilla # LATIN CAPITAL LETTER C WITH CEDILLA Aug 1, 2020 at 14:53
  • @LuisA.Florit: I would rather guess that there is an issue with your locale. What does the locale command output? Aug 1, 2020 at 15:02
8

The layout you need is the "English (International with AltGr dead keys)"

enter image description here

pressing AltGr + , brings the ç. AltGr + Shift + , brings Ç

4
  • 8
    AltGr+, is painfull for someone used to acute+c keys. Oct 22, 2013 at 19:17
  • @italo but is a real solution using the same keyboard layout until some bugs in the keyboard options gets fixed.
    – Braiam
    Oct 23, 2013 at 13:04
  • Where did you get this keyboard layout image? Sep 16, 2016 at 1:35
  • @GabrielStaples Open the Text entry preferences from the system settings. Click the input source you'd like to see the keymap of, and hit the small keyboard icon in the right bottom of the list. It will show you the keymap. Sep 16, 2016 at 7:09
6

A per user configuration for the combination ' + c = ç can be achieved by adding:

export GTK_IM_MODULE=cedilla

to the user's .profile file.

2
  • sorry for this dumb question, how do you export to user's .profile? TIA
    – Michael
    Aug 31, 2018 at 14:29
  • 1
    Do "gedit ~/.profile" in the Terminal (Alt+T) and add a new line at the end of the file writing "export ...". Then save the file and reboot. Feb 25, 2019 at 0:43
5

In case a future visitor with a German keyboard layout winds up here, like me – even though it is outside the scope of the original question:

  • ç is entered Alt Gr+´, c
  • Ç is entered Alt Gr+´, C
4
  • 1
    Thanks a lot. That pushed me to try, and on my Swedish keyboard, same principle but with 'Alt Gr' + ','. I can get both "ç" and "Ç". I've been using workarounds for years!
    – nilo
    Jul 15, 2020 at 21:28
  • 1
    I happen to be such a future German visitor. Thank you! I'm glad I found your answer before trying to fiddle with configuration files.
    – Rapti
    Feb 8, 2022 at 10:57
  • Same here, a German with German keyboard trying to type en français. Jul 17, 2022 at 17:33
  • For me just AltGr + , works without the "c". For Ç just type SHIFT+AltGr+, - Note:AltGr is the right Alt.
    – Felipe
    Mar 9 at 21:27
4

Append the line below to the file /etc/environment and do the login again.

export GTK_IM_MODULE=cedilla

3

With Xubuntu 16.04 and generic international 105-key layout (UK English variant), I can get a cedilla on many characters by hitting AltGr+=, followed by the character I want to "decorate", i.e. c or Shift+c.

A similar sort of "decoration prefix" can be done with AltGr+X where X is ;, ', or # for acute, circumflex, and grave respectively. And there are more, e.g. the [ and ] keys. These are the default characters on these keys in the UK layout -- other layouts might differ but I suspect all the relevant decorator keys are on the right-hand side of the keyboard near the Enter key.

1
  • That was it for me, thank you sooo much Jun 23, 2021 at 13:12
2

For latin american keyboard distribution: AltGr + ¿ , c = ç

1

I'm not sure whether this is still relevant after a decade, but I'm on 22.10 and a EN-UK keyboard. Being Portuguese and working in Suisse Romande, I often need the Ç or the ç. Some of the proposed solutions are a bit convoluted and seem to me harder than just googling "cedilla" and copy/pasting, or just going on the Ubuntu "Characters" app.

On my machine, in 2023, it's AltGr + =, c or C.

1
  • Your answer could be improved with additional supporting information. Please edit to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers in the help center.
    – Community Bot
    Apr 14, 2023 at 18:45
0

One way is to use Ctrl+Shift+U combination and then type 00e7 followed by Space which will turn into ç (latin small letter c with cedilla).

Another way is to use Character Map:

Open Character Map

Character Map

And another way and probably the best is to use a keyboard layout like Portuguese:

Portuguese keyboard layout

15
  • The Turkish layout did not work for me. I did not have this problem prior to upgrading to version 13.10, so something was changed from 13.04 to 13.10.
    – jsbach
    Oct 21, 2013 at 16:32
  • @user205661 How did not work for you? That's not possible. Anyway you have two more options. Did you try them? Oct 21, 2013 at 16:58
  • 2
    I am looking for a strategy in which I can get a cedilla by typing two keys, as I have always done (apostrophe + c). This worked just fine in version 13.04.
    – jsbach
    Oct 21, 2013 at 17:02
  • 3
    A useful workaround is to add xmodmap -e "keycode 54 = c C c C ccedilla Ccedilla", then you'll have the ç with right_alt+c. I don't know how to change the dead keys pairs with the New Keyboard Scheme...
    – Rmano
    Oct 21, 2013 at 20:48
  • 1
    This will not work without X.
    – jmary
    Sep 20, 2017 at 5:51
0

I use a Logitech K480 and my layout in NixOS + LXQt is English International + dead keys.

enter image description here

And I didn't found a good solution. But I found out that if I press:


Solution for Logitech + NixOS + LXQt:

AltGr (Alt Right) + , (comma) it shows a ç.

And SHIFT + AltGr + , = Ç

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .