How to add ACS_variables to Cygwin? - cygwin

I built a game with ncurses because of pdcurses' resizing problems i switched to cygwin.
Compiled the game with cygwin and it worked almost perfectly.
Some acs_variables (i.e. ACS_DIAMOND) are seen as a question mark.
When i ran the game the cursor appears at the beginning of the snake (made a traditional snake game with c++) and also appears at the pause menu;
For example: >_ New Game .
2,5. There is also a frame in the window i've set it like this;
box(window, char(219), 0);
-> top and bottom sides are displayed as straight line just as expected; However left and right sides, instead of char(219) there was blue and red lines, side by side.
I first made the game with visual studio and worked just normal except the resizing problem.
I've tried to change Character set to UTF-8 in the Text submenu of the cygwin, it didn't work.
In my code, i already set curs_set(0) function so cursor shouldn't have appeared in the game.
I am new to cygwin, looked over the internet but couldn't find a solution.
So any help will be appreciated!
Thanks in advance.

Related

Debugging cursor issue in Steam game on Linux - cursor only moves in upper left quadrant of screen during game

When I launch certain games, on SteamDeck (Arch Desktop Mode Linux) - The cursor is restricted by the upper left quadrant of the screen. Making it impossible to click menu buttons to start the game.
There's GOT to be a reason for this, maybe it's a resolution issue, something else... The games in question (This one is Project Playtime), does not have proper settings. I can't use the launch options field for this, nor can I access the windows settings file because this is linux.
Any help would be appreciated.
Launch game -> mouse locked into top left quad.

Drawing Custom Context Menus Anywhere on Desktop

I'm trying to figure out a way to draw a context menu foo at the cursor's current position no matter where on screen it is (i.e. over a window that has nothing to do with my program), and I can't seem to find a clean way of doing this, as all the libraries I can find define context menus upon the current window.
The things that come to mind for me are:
A: Drawing a tiny window at the cursor and then immediately opening up a context window
B: Drawing borderless windows that act like context menus
C: Drawing directly to the root window
However, none of these seem like clean and portable solutions, so I figured I would ask before diving into code.
I know that this is not what context menus were designed for, but the look fits my application very well. I would prefer to use Qt to keep things portable across systems, but at the moment I really only care about X on Linux.
Edit: 1st paragraph expansion

Propagating all events from a X window

I'a currently working on a small utility, it's my first ever X project. The utility is used to draw a small circle around your mouse pointer. I use an app called Pinpoint to do the same on my Mac, it helps me find my mouse as I'm visually impaired.
The utility creates an transparent X window and draw a circle inside, it then moves that window with the mouse pointer so that the circle follows the mouse.
It currently works, except for one detail. Mouse events are not propagated up to the underlying windows. Basically, the utility makes the mouse useless.
As far as I can tell from the Xlib docs, if not otherwise specified, new windows should propagate all events. How can I fix this?
The code can be found on GitHub: https://github.com/blubber/circle-cursor it's a bit messy currently, becaue it is just a proof of concept.
I would suggest doing via cursor image as well, there are many ways when you won't be able to receive mouse events and only possible source would be polling with XQueryPointer.
With xfixes extension you can subscribe to all cursor image changed events and get most recent shape of the cursor, and whit XRender you can set your own ( possibly animated cursor )

Scroll in GVim using touch screen device

I'm using GVim on a Surface Pro 3 that has a touch screen. I've gotten so used to scrolling windows (like the browser) using the touch screen, so I thought it would be nice to be able to do the same in GVim. However, when I drag my finger it selects text rather than scrolling. Is there a way to change that?
Whohooo, my first tumbleweed badge. :-) Anyway, this actually works out of-the-box with the Vim build from https://bitbucket.org/Haroogan/vim-for-windows

How to write an X11 app that follows the cursor

I'd like to write a Linux screen magnifier that's customized to my liking. Ideally, the magnified window would be a square about 150 pixels wide that follows the mouse cursor wherever it goes.
Is it possible to do this in X11? Would it be easier to have an application window that follows the mouse around, or would it be better (or possible) to forget about the window altogether and just make the mouse pointer a 150x150 square that magnifies whatever's underneath?
Look at the source to xeyes?
This actually already exists, it's called Xmag (do a Google search for additional info). You might want to check out the source code for it if you want to know how it works.
EDIT: looks like I misread your question a little bit... if you want a magnified square to follow the mouse pointer around, I suppose it should be possible, but I don't know the technical details of how you'd do it. Regardless, the place to start is probably by looking at Xmag as a starting point.
I am unsure if this can run as its own app or would have to be integrated into your window manager. Either way, you would need libx11 (might have a different name from distro to distro). Also, I would suggest taking a look at swarp. I know this is not even close to what you are talking about, but the source code is only 35 lines and it shows what can be done with libx11.
I would personally make that a frameless window that always stays atop with a 1px hole in the middle. The events that the user makes (Mouse clicks, keypresses, whatever) is passed to the window below.
And when the user moves it's cursor it is ought to be visible to your window and you just move it over a bit. For the magnifying part, well - that is left as an exercise to the reader (Because I do not know how to do that as of yet ;-).
Texworks comes with such a feature to inspect the pdf resulting from typesetting a latex source. You can also choose between a square or a circular magnifier. See https://www.tug.org/texworks/ for access to the code which can serve a launchpad.

Resources