Free (libre) font editor for Windows, Mac OS X and GNU+Linux

FontForge CI Build status Coverity Scan Build Status

FontForge Logo

FontForge is a free (libre) font editor for Windows, Mac OS X and GNU+Linux. Use it to create, edit and convert fonts in OpenType, TrueType, UFO, CID-keyed, Multiple Master, and many other formats.

fontforge.org — homepage

designwithfontforge.com — font creation manual

Getting help

The bug tracker is for reporting bugs, not for asking questions. Please direct questions to one of the following:

Installation & contributing

INSTALL.md — developer instructions to build from source

setup_linux_deps.sh — a list of installation dependencies

CONTRIBUTING.md — contributing guidelines

Owner
Free (libre) font editor for Windows, Mac OS X and GNU+Linux
null
Comments
  • Handle foreign data in U. F. O..

    Handle foreign data in U. F. O..

    This uses the PyTuple, which has no matching entity in X. M. L., as a special container for unrecognized data in python_persistent, allowing FontForge to round-trip that data in the top-level lib.plist and in the lib data for individual glifs.

  • Improved mac dmg

    Improved mac dmg

    I've made some improvements to make the dmg look more like other apps with a custom background + link to applications folder + online install instructions. If @monkeyiq could test the pretty-dmg branch https://github.com/fontforge/fontforge/compare/pretty-dmg

  • Unicode tooltips empty

    Unicode tooltips empty

    Built from today’s git head, fontforge doesn’t show any content in the unicode tooltips. Please revert to LibUnicodeNames, the latest changes seem rather destructive to things that weren’t broken before.

  • Make comb. chars always superior to spacing chars

    Make comb. chars always superior to spacing chars

    Combining characters are superior in some cases to spacing characters but not others. For example, combining macron (U+304) is superior to macron (U+AF), yet combining dieresis (U+308) is inferior to dieresis (U+A8).

    This situation is untenable. It makes it impossible, while designing a font, to know which character will be used when FontForge builds an accented glyph without digging through the source code. Furthermore, the logical case, to use the combining character first, is rarely done.

    Apparently this is due to some restriction of Type1 fonts according to George in 2001. I fixed his reported restriction in this same commit by just dissolving the reference if the character referred to is between 0x300 and 0x345.

    Some, such as @frank-trampe, might say that dissolving the reference “breaks” something. But nothing is broken. No function of a Type 1 font changes if a reference is used or not. Type 1 fonts never were a first class format for storing font data—and certainly haven't become one— that's what SFD is for. The only discernible difference therefore is a small increase in filesize.

    I confirmed:

    • generated PFA (PostScript type 1) fonts still work; FontForge shows the dissolved references as expected when a problem character is referred to.
    • if you want to use dieresis you can tell FontForge to in “Glyph Info → Components” and it will work.
    • that this closes #3708, the issue is solved.

    I encourage my fellow members to support this change. As an author of five and counting open source fonts made only using FontForge and FontTools, I can unequivocally say that sacrificing the file size of a subset of Type 1 fonts is worth the benefit this change provides.

    • [x] Bug fix (non-breaking change which fixes an issue)
    • [x] Breaking change (fix or feature that would cause existing functionality to change)
    • [x] I have read the CONTRIBUTING guidelines.
  • Appearance (X resource) unification

    Appearance (X resource) unification

    Including:

    • Relative font specification
    • A bunch of appearance fixes and tweaks
    • Fixes for #4454 #4391 #4238 #3844 #3835 #3443 (partial) #3051 #1031 #863 #4274

    For historical reasons the UI knobs in FontForge are supplied in X Resource format. There may still be some minimal compatibility with that system but given that its mostly supplied via GDK now that's not very important.

    At some point a handy resource editing dialog was added so that less technical users could customize the UI. There was some effort put into unifying the initialization and the editing at that time but mostly in the form of new APIs (mainly GResEditFind()). For the most part variables were still initialized via individual calls to GResourceFindColor(), GResourceFindString() and so on.

    The bulk of this PR finishes the unification, so that initialization and editing are two uses of the same data structure. It is now easier to add new directives -- usually just a matter of declaring the static variable with an appropriate default value, adding one line to a struct resed initializer, and a corresponding line to the tango/resources.in file (if needed).

    In addition to that it does the following:

    1. Default font families for sans, serif, and mono are now defined in one place in BuildUtils.cmake and can be overridden by CMake flags. They are broken down by OS type (APPLE, WIN32 OR CYGWIN, and "other"). The current values are not final -- part of the reason I'm starting this PR as a draft is that we should discuss the best options.
    2. Font directives can now be specified relative to other font directives as described in the included documentation changes. The supplied resource files now do this. Because most of the UI is sized in relation to fonts you can now adjust the whole UI scale by changing the (new) View.DefaultFont point size. Another result is that families are specified once in each resource file (as long as they are kept consistent with the supplied file) and therefore the UI is much more uniform in presentation.
    3. I went through pretty much the whole UI to eliminate hard-coded colors, either by giving them new appearance directives or mapping them to either the GGadget FG or BG or the GDraw FG or BG. (GDrawGetDefaultForeground() and ...Background() now return a static value and ignore the display argument, as that generality wasn't used and mostly caused updating problems.) This allows a number of issues to be closed and means that true "dark" themes (and the like) are now possible.
    4. Since the GDK backend already switched away from ScreenWidth directives in favor of ScreenResolution I did that on the X side for consistency.
    5. The image cache has been restructured to minimize image path names relative to the ImagePath immediately, rather than having this happen "at the edges". The modified GResImage definition now stores the bucket instead of the file for additional flexibility.
    6. I've changed (or occasionally de-emphasized) the "X Resource" terminology in favor of "Appearance".
    7. The docs have been updated.

    In addition to reviewing the changes this has a todo list:

    1. Decide on font families for each OS appropriate for contemporary use
    2. Decide what to do with the "Keyboard" resource (I think it should become a preference)

    Ideally this work would be paired with a later PR that

    1. Figures out how to pick among images (menu icons, pointers, palette icons) scaled at different sizes.
    2. Come up with a full set of sources (probably in SVG) that can be attractively scaled that way
    3. Modify the editing system so that tracks both a "theme" file and a user file, and only stores what is different in the latter.

    Then FontForge would support proper themes, which I imagine being added through a python API hook and distributed as python packages, given that the plugin interface is already integrated.

    Closes #4454 Closes #4391 Closes #4238 Closes #3844 Closes #3835 Closes #3051 Closes #1031 Closes #863 Closes #4274

  • New problem in fontforge-cygwin_2014_01_04: Generate('a.ttf') takes 2x as much memory as the version of 2012

    New problem in fontforge-cygwin_2014_01_04: Generate('a.ttf') takes 2x as much memory as the version of 2012

    For my files, this does not matter: my workflow separates Generate() into a separate call fontforge -lang ff -c "Load($1); Generate($2)" and for me, the question is about using 500MB of memory vs 1100MB of memory; not a problem with this machine. However, people with larger runs may get into problems on 32bit machines, more complicated fonts, and/or more complicated scripts.

  • MAC: Crash on scrolling on Fontview

    MAC: Crash on scrolling on Fontview

    FF crashes while scrolling on Font View with this(https://drive.google.com/file/d/0B-5mpXa8HrFVUU1DYnRSNWpLUnM/view?usp=sharing) file opened

    18-Oct -14 Version on OSX 10.9.5

  • New splash screen and about dialog

    New splash screen and about dialog

    This closes #3055.

    This commit does the following:

    Console mode changes

    The first line when you run FontForge, which was:

    Copyright (c) 2000-2018 by George Williams. See AUTHORS for Contributors.
    

    Is now:

    Copyright (c) 2000-2019. See AUTHORS for Contributors.
    

    This will no longer need to be updated randomly whenever we remember to do it. I baked the current year in at compile time by editing configure.ac and adding a new variable for it. Why did I remove George's name? He is the main contributor but hasn't been around for seven years. It's time for him to become just another contributor in AUTHORS.

    Splash screen changes

    I only made the changes for which there was consensus in #3055. I:

    • Changed the image to a newer one which I (previously @probonopd, but I changed it in made.
    • Made the Git hash use a monospace font so it's small enough to fit in one line.
    • Changed references which made it seem like this is George's software alone. I love the story of this project, you all know that, I love FontForge history, I run pfaedit.org, I've been trying to get @davelab6 to talk with me on video to flesh out more of the history for my website, so I was very respectful of George while editing the text, making very conservative edits to the history in the about dialog.

    Old dialog

    Dialog in this commit

    Previously, with the word FontForge more towards the right and different text

    Previously, though cancelled due to consensus

    How I changed it

    In case this needs to be done again, I used gdb to change the image. First, I loaded a BMP image in fontforge_main (startui.c) and set a breakpoint right after loading it. I just made a GImage containing the output of GImageReadBmp("/tmp/ff.bmp") called splashimage.

    The following gdb settings make things a lot easier:

    • set pagination off
    • set max-value-size unlimited
    • set print elements 0
    • set print repeats 0

    Then I issued command:

    p/x *((*splashimage).u.image.data)@568500
    

    You have to either catch the output by telling gdb it needs to log...or you can just set your console to unlimited scrollback and copy it.

    I got the number 568500 by multiplying two numbers together found in the struct:

    (gdb) p (*(*splashimage).u.image)
    $46 = {image_type = it_true, delay = 0, width = 379, height = 375, bytes_per_line = 1516, 
      data = 0x15554f5b6010 "\336\236O", clut = 0x0, trans = 4294967295}
    

    568500 = 1516 × 379

    I then pasted all the values into splashimage.c as needed. Done and dusted.

  • FF compiled with Python 3 extension loads

    FF compiled with Python 3 extension loads "empty" fontforge module.

    I am trying to compile fontforge from source with Python 3. I recently manged to compile it on Ubuntu workstation and now have to install it on a Debian or Ubuntu Server and run into a strange error.

    I am using the Version https://github.com/fontforge/fontforge/archive/20161012.tar.gz as imho this one has the import psMat problem solved.

    My compile steps:

    ./bootstrap
    PYTHON="python3" ./configure
    make -j3
    make install
    

    The relevant configure output:

    Configuration:
    
      Source code location	.
      Build code location	
      Destination prefix	/usr/local
      Compiler		gcc -std=gnu99 -std=gnu99
    
    Summary of optional features:
    
      real (floating pt)	double
      programs		yes
      native scripting	yes
      python scripting	yes
      python extension	yes
      freetype debugger	no
      raw points mode	no
      tile path		no
      gb12345 encoding	no
      potrace or autotrace	yes
    ...
    

    But when I do python3 -c "import fontforge; f = fontforge.font()" it results in:

    Traceback (most recent call last):
      File "<string>", line 1, in <module>
    AttributeError: 'module' object has no attribute 'font'
    

    A python3 -c "import fontforge; print(dir(fontforge))" gives a: ['__doc__', '__loader__', '__name__', '__package__', '__path__', '__spec__'] Somehow the fontforge module is empty?

    More details make install outputs an

    Libraries have been installed in:
       /usr/local/lib/python3.4/site-packages
    

    And indeed:

    ls -la /usr/local/lib/python3.4/site-packages
    total 48
    drwxr-sr-x 2 root staff  4096 Nov 30 21:53 .
    drwxrwsr-x 4 root staff  4096 Nov 30 21:53 ..
    -rwxr-xr-x 1 root staff  1429 Nov 30 21:53 fontforge.la
    -rwxr-xr-x 1 root staff 13992 Nov 30 21:53 fontforge.so
    -rwxr-xr-x 1 root staff  1405 Nov 30 21:53 psMat.la
    -rwxr-xr-x 1 root staff 13968 Nov 30 21:53 psMat.so
    

    I tried it on Debian 8 and Ubuntu 16.04. I also tried it with the additional --enable-python-scripting --enable-pyextension --enable-python-extension options for ./configure. Also a ldconfig after make install didn't help. When I did install it on my Workstation I did use a Virtual Enviroment and a custom--prefix. However, I also also tried this on the Debian server but without success. The servers have been fresh installs before testing. I also tried with the latest version from git.

    Does anybody has an idea what is wrong with my installation process?

    Update I did another test, this time with an virtual env again. When I did a

    python -c "import fontforge;print(fontforge)" 
    <module 'fontforge' (namespace)>
    

    it seems that an import fontforge doesn't load the .so file but the fontforge directory in /root/venv/lib/python3.4/site-packages which contains the .so file.

    Moving those .so files to the parent dir and remove the fontforge dir:

    mv /root/venv/lib/python3.4/site-packages/fontforge/* /root/venv/lib/python3.4/site-packages
    rm /root/venv/lib/python3.4/site-packages/fontforge
    

    But now:

    python -c "import fontforge" 
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
    ImportError: libuninameslist.so.1: cannot open shared object file: No such file or directory
    

    But the libuninameslist.so.1 file is in /usr/local/lib.

    Update 2 If I add /usr/local/lib/python3.4/site-packages to the sys.path everything looks fine.

    python3 -c "import sys; sys.path.append('/usr/local/lib/python3.4/site-packages'); import fontforge; f=fontforge.font(); print(f)";
    <Font: Untitled1>
    
  • Redesign the menu structures of the 3 main windows

    Redesign the menu structures of the 3 main windows

    EDIT: @pathumego, @davelab6 and @larsenwork are currently trying to figure things out in this google doc. Feel free to comment and make suggestions there.

    EDIT: The latest updates #2734

    What we're trying to do (WIP)

    • [x] Making the 3 menus identical (except for what's grey'd out)
    • [x] Rearranging items so things are easier to find
    • [x] Renaming items to more understandable names
    • [x] No level below top-level -> submenu -> item
    • [ ] Updating tooltip text #2259
    • [x] Re-arrange/name right click menus incl. #2261

    Removing some items

    • [x] Browse web (broken)
    • [x] X-resource editor (https://github.com/fontforge/fontforge/issues/2260)

    What we later need a software developer for

    • [ ] Implement the changes (or tell us how) - #2734
  • Remove outlines and more padding on Tools Pallet

    Remove outlines and more padding on Tools Pallet

    Graphics

    • [x] Create new icons
    • [x] Paletteselectedbg.png
    • [x] Mouse icon instead of Mse-stuff

    Code

    • [ ] Support for theme-adjustable palette margins + spacing
    • [ ] Support for Paletteselectedbg.png (https://github.com/fontforge/fontforge/issues/1827#issuecomment-97260391)
    • [ ] Support for the proposed restyling of Mse and make it "un-clickable"(https://github.com/fontforge/fontforge/issues/1827#issuecomment-98128014) + (https://github.com/fontforge/fontforge/issues/1456)
    • [ ] Change the order of the palette icons a bit (https://github.com/fontforge/fontforge/issues/1827#issuecomment-98878311)
    • [ ] Use visiblility_off/on.png as default instead of them ugly eyes.

    Previously

    • [x] Removing the outlines on the toolbar pallet button would make a pleasant difference. And add 2px padding would be needed. (see below)
    • [x] ~~The eye icon is clipped on layers panel, maybe increase of the width would fix that.~~
  • Double left sidebearing in the viewer in STIXTwoMath-Regular.otf

    Double left sidebearing in the viewer in STIXTwoMath-Regular.otf

    Looking at the STIXTwoMath-Regular.otf (see the stipub github) in FontForge (On Debian and in FontForge version 20201107), we see that many glyphs are shifted to the right. Example:

    Screenshot 2022-11-11 19 19 44

    Note that the glyph has a left sidebearing of 210, double as much as the hint that is correctly located at 105. However, when using the font when typesetting (for example in ConTeXt), the glyph sits right:

    Screenshot 2022-11-11 19 32 33

    By running

    ttx STIXTwoMath-Regular.otf

    and looking in the generated ttx file, in the <head> section, we find:

    <flags value="00000000 00001000"/>

    Note that the first bit is set to 0. This is all in order, since one can read in the the documentation that this bit only matters for TrueType fonts:

    Bit 1: Left sidebearing point at x=0 (relevant only for TrueType rasterizers) — see the note below regarding variable fonts.

    We (Hans Hagen and I) noticed that if we change this bit to 1

    <flags value="00000000 00001010"/>

    then the problem is fixed. We did this change in the ttx file and then ran ttx to get a new otf file. Looking in it we see gylphs that sit right. Example:

    Screenshot 2022-11-11 19 20 41

    From what we understand when looking at the FontForge source, it is not conditioning on the type of the font, but do add the left sidebearing if the flag is set.

    Finally, we have not seen this in any other math font. We can only speculate why: The STIXTwoMath-Regular build process seems to start with some input ttf file, together with .glif files (whose contours seem to origin from a TrueType). Maybe there are some traces left from this process that tricks FontForge (in case there actually is some conditioning that we missed).

  • Don't require individual tuple encapsulation in fontforge.font.bitmapSizes setter

    Don't require individual tuple encapsulation in fontforge.font.bitmapSizes setter

    Documentation specs that this should take the same format as font.bitmapSizes returns: it doesn't;

    >>> f.bitmapSizes = ((1,), (2,))
    

    yields

    >>> f.bitmapSizes
    (1, 2)
    

    Which is fun, but what actually happens is the user gets

    >>> f.bitmapSizes = (1, 2)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    SystemError: new style getargs format but argument is not a tuple
    

    and gives up, as in #5137. This is also, obviously, not reversible, unlike specced.

    The new behaviour is congruent with the documentation (error cases included at the end):

    (sid-with-nab ff)[email protected]:/srv/fontforge/build# bin/fontforge -
    Copyright (c) 2000-2022. See AUTHORS for Contributors.
     License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
     with many parts BSD <http://fontforge.org/license.html>. Please read LICENSE.
     Version: 20220308
     Based on sources from 2022-11-10 01:12 UTC-ML-D-GDK3.
     Based on source from git with hash: 8ce3216d492d4a249ffec163c005d098df28e58c
    >>> f=fontforge.font()
    >>> f.bitmapSizes = (16, 32, 64, 128)
    Number out of range: 2.14748e+09 in type2 output (must be [-65536,65535])
    >>> f.bitmapSizes
    (16, 32, 64, 128)
    >>> f.bitmapSizes = ()
    >>> f.bitmapSizes
    ()
    >>> f.bitmapSizes = (48,)
    Number out of range: 2.14748e+09 in type2 output (must be [-65536,65535])
    >>> f.bitmapSizes
    (48,)
    >>>
    >>>
    >>> f.bitmapSizes = (48,())
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: 'tuple' object cannot be interpreted as an integer
    >>> f.bitmapSizes = 48
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    SystemError: ../Objects/tupleobject.c:172: bad argument to internal function
    

    idk what the ERANGEs are but they're unrelated

    Type of change

    • Bug fix: #5137
  • Assigning to fontforge.font.bitmapSizes broken/impossible?

    Assigning to fontforge.font.bitmapSizes broken/impossible?

    When reporting a bug/issue:

    • [x] Screenshot:
      >>> fontforge.font().bitmapSizes = (16, 32, 64, 128)
      Traceback (most recent call last):
        File "<stdin>", line 1, in <module>
      SystemError: new style getargs format but argument is not a tuple
      
    • [x] The FontForge version and the operating system you're using: 8ce3216d492d4a249ffec163c005d098df28e58c on sid (originally found on 1:20201107~dfsg-4 (bullseye), reproduces on 1:20220308~dfsg-1 (sid))
    • [x] The behavior you expect to see, and the actual behavior: as per spec: to be able to assign a tuple there, and actually I'm not
    • [x] Steps to reproduce the behavior: see p. 1

    To ensure I wasn't holding it wrong I also did:

    >>> fontforge.open('Untitled1.sfdir').bitmapSizes
    (16, 32, 64, 128)
    >>> fontforge.font().bitmapSizes = (16, 32, 64, 128)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    SystemError: new style getargs format but argument is not a tuple
    >>> fontforge.font().bitmapSizes = fontforge.open('Untitled1.sfdir').bitmapSizes
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    SystemError: new style getargs format but argument is not a tuple
    

    so idk.

    What may be relevant and what the template doesn't ask for is the Python version: 3.10.6-1 and 3.9.2-3

  • tottfgpos: Fix needless warning about 16-bit field

    tottfgpos: Fix needless warning about 16-bit field

    [why] When a single substitution table (format 1) is to be written and the substitution offset is very big and backwards (i.e. to lower numbers) a warning is issued although the encoded font is correct.

    For example codepoint 65342 is to be replaced by 1683. The offset is -63659 in this case (old codepoint + offset = new codepoint).

    The warning in putshort() triggers: if(sval < -32768 || sval > 65535) ...

    [how] The offset is calculated with signed ints, so we have the result above. The actual calculations 'in the font' are done with uint16_t. According to specs "Addition of deltaGlyphID is modulo 65536" [1]. So we simply need to drop all the bits outside uint16_t and still have the correct calculation.

    With the new offset value of -63659 & 0xFFFF = 1877 the calculation is

    65342 + 1877 = 67219 == 1683 (assuming unit16_t arithmetic)

    [1] https://learn.microsoft.com/en-us/typography/opentype/spec/gsub#11-single-substitution-format-1

    Fixes: #3009

    Reported-by: Thayne McCombs @tmccombs Signed-off-by: Fini Jastrow [email protected]

    Type of change

    • Bug fix

    Reproduction / Test

    Font to try:

    Repo link https://github.com/googlefonts/noto-cjk/releases/tag/Sans2.004 Zip link https://github.com/googlefonts/noto-cjk/releases/download/Sans2.004/06_NotoSansCJKjp.zip Font file in zip NotoSansCJKjp-Bold.otf

    Affected lookup: CID -> CID font info -> Lookups -> 31 ('hist')

    Just open and immediately re-generate new CID font.

    See comments in #3009.

  • Fix broken link on scripting page

    Fix broken link on scripting page

    Link at https://fontforge.org/docs/scripting/scripting.html#scripting-example for testsuite scripts directs to https://github.com/fontforge/fontforge/tree/master/test it should use https://github.com/fontforge/fontforge/tree/master/tests

    Type of change

    • Bug fix
    • Non-breaking change Fixes https://github.com/fontforge/fontforge/issues/5134
  • Broken link on scripting documentation page

    Broken link on scripting documentation page

    Important

    Mark with [x] to select. Leave as [ ] to unselect.

    When reporting a bug/issue:

    • [ ] Screenshot
    • [x] The FontForge version and the operating system you're using Applies to online documentation
    • [x] The behavior you expect to see, and the actual behavior The link should direct to an actual GitHub page, rather than a non-existent page
    • [x] Steps to reproduce the behavior Go to https://fontforge.org/docs/scripting/scripting.html#examples click on the link for FontForge’s testsuite in the test subdirectory (such as it is)
    • [x] (optional) Possible solution/fix/workaround Link should be updated FontForge’s testsuite in the test subdirectory (such as it is)
A terminal-based, mouse-driven BDF (bitmap) font editor.
A terminal-based, mouse-driven BDF (bitmap) font editor.

bdfedit A terminal-based, mouse-driven BDF font editor. Capable of reading, writing, and editing bitmap font files fully within the terminal, and enti

Oct 25, 2022
Simple text editor in C++ - Simple editor built upon kilo editor.

GUMBO editor Simple editor built upon kilo editor. Still big work in progress although this is just fun side project to learn more C/C++. From 0.0.2->

Sep 15, 2021
Visualization Library is a C++ middleware for high-performance 2D and 3D graphics applications based on OpenGL 1.x-4.x supporting Windows, Linux and Mac OS X.

Visualization Library 2.2 Gallery About Visualization Library is a C++ middleware for high-performance 2D and 3D graphics applications based on the in

Nov 8, 2022
Oxygine is C++ engine and framework for 2D games on iOS, Android, Windows, Linux and Mac

BUILD AND RUN See oxygine-framework/readme/ folder. It has instructions on how to build and run oxygine on different platforms. Wiki available at http

Nov 11, 2022
Serial Data Monitor is a multiplatform (Windows, Linux, Mac, ...) tool to interactively receive/edit/monitor data and send commands to an embedded system via the serial bus
Serial Data Monitor is a multiplatform (Windows, Linux, Mac, ...) tool to interactively receive/edit/monitor data and send commands to an embedded system via the serial bus

See wiki for full documentation Serial Data Monitor Description Serial Data Monitor is a multiplatform (Windows, Linux, Mac, ...) tool to interactivel

Oct 29, 2021
Windscribe 2.0 desktop client for Windows, Mac and Linux

Windscribe 2.0 Desktop Application This repo contains the complete source code for the Windscribe 2.0 app. This includes installer, service/helper, ba

Nov 22, 2022
Drmemory - Memory Debugger for Windows, Linux, Mac, and Android
Drmemory - Memory Debugger for Windows, Linux, Mac, and Android

Dr. Memory: the memory debugger About Dr. Memory Dr. Memory is a memory monitoring tool capable of identifying memory-related programming errors such

Nov 16, 2022
Qt5 "Hello, world!" app for Linux, BSD, Windows, Mac.
Qt5

hello world in qt5 Contributions in all forms (code, bug reports, community engagement, localization, etc) are warmly welcomed. Development activity I

Jan 26, 2022
Allows to swap the Fn key and left Control key and other tweaks on Macbook Pro and Apple keyboards in GNU/Linux

A patched hid-apple kernel module UPDATE August 2020: swap_fn_leftctrl is now built-in in Linux 5.8 ?? UPDATE Jun 2020: New feature added (swap_fn_f13

Nov 9, 2022
A FREE Windows C development course where we will learn the Win32API and reverse engineer each step utilizing IDA Free in both an x86 and x64 environment.
A FREE Windows C development course where we will learn the Win32API and reverse engineer each step utilizing IDA Free in both an x86 and x64 environment.

FREE Reverse Engineering Self-Study Course HERE Hacking Windows The book and code repo for the FREE Hacking Windows book by Kevin Thomas. FREE Book Do

Nov 19, 2022
emily - GNU/Linux applications and scripts launcher.

emily emily - GNU/Linux applications and scripts launcher. For What? Firstly emily has been maden as a replacement for i3-dmenu, because i don't like

May 13, 2022
Make your Pop!_OS (Ubuntu Linux) shortcut key experience more like Mac OS

Meta Mac Enables a Mac OS-like shortcut key experience on Pop!_OS (and most Ubuntu-based Linux distros). Installation Download or git clone this repos

Oct 29, 2022
A Mac like Control Center for Windows
A Mac like Control Center for Windows

A Mac like Control Center for Windows.

Mar 8, 2022
A FLOSS implementation of the ground breaking MacBook camera system for GNU/Linux
A FLOSS implementation of the ground breaking MacBook camera system for GNU/Linux

GNU/Notch Tired of your friends making fun of your dinosaur laptop? Can't afford anything but Free Software? Fret not for this simple X11 based progra

Jun 1, 2022
Simple Fetch Software for GNU/Linux
Simple Fetch Software for GNU/Linux

ponyfetch Simple Fetch Software for GNU/Linux Current Version: 1.2 Whats new in 1.2? You can now change the ASCII art and the labels used in ponyfetch

Nov 22, 2021
Volatile ELF payloads generator with Metasploit integrations for testing GNU/Linux ecosystems against low-level threats
Volatile ELF payloads generator with Metasploit integrations for testing GNU/Linux ecosystems against low-level threats

Revenant Intro This tool combines SCC runtime, rofi, Msfvenom, Ngrok and a dynamic template processor, offering an easy to use interface for compiling

Aug 23, 2022
Tiny implementation of the GNU/Linux CGroupFS (sans resource controllers) as a PUFFS or FUSE filesystem for BSD platforms

CGrpFS CGrpFS is a tiny implementation of the GNU/Linux CGroup filesystem for BSD platforms. It takes the form of a either a PUFFS or FUSE filesystem,

Nov 8, 2022
Implements a complete GNU/Linux program

Linux-app Implements a complete GNU/Linux program The example program is part of a system for monitoring a running GNU/Linux system. It includes these

Jun 19, 2022
Animated sprite editor & pixel art tool (Windows, macOS, Linux)

Aseprite Introduction Aseprite is a program to create animated sprites. Its main features are: Sprites are composed of layers & frames as separated co

Nov 22, 2022