Skip to content

Instantly share code, notes, and snippets.

@renatorib
Last active January 11, 2024 06:45
Show Gist options
  • Save renatorib/a0d7af29133c8a775b0740d0b67e32a8 to your computer and use it in GitHub Desktop.
Save renatorib/a0d7af29133c8a775b0740d0b67e32a8 to your computer and use it in GitHub Desktop.
Using Operator Mono with Fira Code ligatures in Atom.

Using Operator Mono with Fira Code ligatures in Atom.

  1. Open your Atom's Stylesheet
    image

  2. Put this css

atom-text-editor {
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  font-family: "Operator Mono";
  font-weight: 500;
  line-height: 1.7;
}

For Atom version < 1.13.x

atom-text-editor::shadow {
  .storage.type.function.arrow,
  .keyword.operator:not(.accessor),
  .punctuation.definition.entity.css {
    font-family: 'Fira Code';
  }

  .string.quoted,
  .string.regexp {
    -webkit-font-feature-settings: "liga" off, "calt" off;
  }
}

For Atom version >= 1.13.x

atom-text-editor.editor {
  .syntax--storage.syntax--type.syntax--function.syntax--arrow,
  .syntax--keyword.syntax--operator:not(.accessor),
  .syntax--punctuation.syntax--definition {
    font-family: "Fira Code";
  }

  .syntax--string.syntax--quoted,
  .syntax--string.syntax--regexp {
    -webkit-font-feature-settings: "liga" off, "calt" off;
  }
}

Save file and it's done.


Works fine with Javascript:

image

@renatorib
Copy link
Author

@ambethia
Copy link

ambethia commented Jan 12, 2017

You are my hero. I hadn't even thought to do this. I use Operator Mono, and sorely miss my ligatures from Fira Code. Thank you so much! I already have a lot of tweaks in my CSS to user OM's script italics for more than just comments. Perfect addition.

screen shot 2017-01-11 at 11 07 59 pm

@renatorib
Copy link
Author

Great tweaks!!

@p-miller
Copy link

This is great! Mind if I ask what syntax theme you're using in that screenshot?

@renatorib
Copy link
Author

@p-miller Currently I use One Dark theme syntax. I think it's in atom core themes.

@nicholasodonnell
Copy link

@ambethia mind sharing that tweak? I'd love to have that too!

@jonnypage-d3
Copy link

@ambethia @nicholasodo Yeah, I'd love to see your LESS file!

@renatorib
Copy link
Author

renatorib commented Feb 13, 2017

Gist updated!
Added> 1.13.x version (no shadow and new classes)

@n1k0
Copy link

n1k0 commented Feb 21, 2017

Does not apply entirely to files using some specific languages like "JavaScript with JSX" subtleGradient/language-javascript-jsx#26

@renatorib
Copy link
Author

renatorib commented Mar 15, 2017

@n1ko The classes vary according to each syntax packages. Need to see case by case.
If you can help us, you can open devtools in your atom and check the classes of not-applied ligature and comment here, then I'll check

@JanineAmelie
Copy link

Thanks!

@lqmanh
Copy link

lqmanh commented Jul 12, 2017

@renatorib Could you please help me disable ligatures on current line?
I tried this but it seems doesn't work with Atom 1.18 anymore

atom-text-editor::shadow .lines .cursor-line .keyword.operator {
  text-rendering: auto;
}

Thank you!

@tdeekens
Copy link

Hasklig also works nice with this. Thanks!

@kiliman
Copy link

kiliman commented Aug 14, 2017

I created a project that will add ligatures directly to the Operator Mono font. https://github.com/kiliman/operator-mono-lig

@helton
Copy link

helton commented Sep 1, 2017

Nice work @renatorib!

I had some problems with the round and curly brackets (the CSS selector .syntax--punctuation.syntax--definition was matching more than it was necessary).
I also applied italic to some tokens (like import, export, from, class, return and so on).
It works with the syntax JavaScript (JSX) available in the React atom package.

My styles.less file now looks like this:

https://gist.github.com/helton/24b652bda30dcaa83660cfacb75a2797

@renatorib
Copy link
Author

renatorib commented Sep 11, 2017

Note

I don't use Atom anymore - I migrated to vscode
Because of that I will not know or be able to fix bugs or maintain future breaking changes versions of Atom.

But if anyone wants to help, comment here what/why/how to fix then I edit this gist.
Thanks!

@renatorib
Copy link
Author

Great project @kiliman!

@orenmizr
Copy link

how to you achieve the same in vscode ? @renatorib

@chrishiste
Copy link

Could you tell us how you do that on vscode please @renatorib @orenmizr

@Maartz
Copy link

Maartz commented Dec 7, 2017

Hi guys,

@orenmizr @chrishiste

I switched from VSCode to Atom recently and the tweak for having ligatures of Fira Code and Operator Mono for fonts is the following.
First download this package https://github.com/be5invis/vscode-custom-css

Then you create a basic css file somewhere on your computer, copy paste this snippet

.mtk5, .mtk8, .mtki, .mtk10 {
  font-family: 'Operator Mono';
  font-size: 16px;
  font-weight: normal;
  font-style: italic;
}

Then you'll have to go into VSCode settings panel and point to the newly created CSS file.
After that, open the command palette and just activate vscode-custom-css.

This should be the best way to do it.

WARN : Maybe Code will tell you that your Code version is broken, just don't care, it's because of vscode-custom package.

@cziem
Copy link

cziem commented Sep 14, 2018

You are my hero. I hadn't even thought to do this. I use Operator Mono, and sorely miss my ligatures from Fira Code. Thank you so much! I already have a lot of tweaks in my CSS to user OM's script italics for more than just comments. Perfect addition.

screen shot 2017-01-11 at 11 07 59 pm

How did you tweak yours please.?

@ikluhsman
Copy link

@Phavor
Open Atom's stylesheet in Atom > Stylesheet..

Modify the sections to look like the following, the spans are the important part. You can find these class names by browsing through the editor in syntax of your choice using the developer tools (Option+Cmd+I).

`atom-text-editor.editor {

.syntax--storage.syntax--type.syntax--function.syntax--arrow,
.syntax--keyword.syntax--operator:not(.accessor),
.syntax--keyword.syntax--type,
.syntax--punctuation.syntax--definition {
font-family: "Fira Code";
}

span.syntax--keyword.syntax--control,
span.syntax--storage.syntax--type,
span.syntax--storage.syntax--modifier {
font-family: "Operator Mono";
font-style: italic;
}
`

@cedrus-8864
Copy link

You are my hero. I hadn't even thought to do this. I use Operator Mono, and sorely miss my ligatures from Fira Code. Thank you so much! I already have a lot of tweaks in my CSS to user OM's script italics for more than just comments. Perfect addition.

screen shot 2017-01-11 at 11 07 59 pm

What syntax theme and TextMate rules are you using? It's look nice. Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment