I recently wrote an article on getting gtk auto complete/syntax highlighting on macOS
its a genuinely fun hobby to make portable software, and this method will ultimately help in porting software to the macOS platform
a copy and paste:
before I continue, I want to mention that emacs auto completion, using company-mode, is rather slow when it comes to parsing a ton files, and in some configurations, especially recursively when it comes to parsing and displaying functions and macros, even when using the semantic auto complete system, but I do believe it speeds up when you initially parse and save to ctags or when you build a semanticdb, functions such as g_signal_connect() and macros such as G_APPLICATION however, did not work with company modes auto complete, but worked with flycheck on the fly syntax checking, using this method, and I haven’t had time to perfect an emacs configuration; maybe some time next week
you will need gtk installed from brew or ports, since gtk has trouble compiling from source on some Mac configurations. this method works with whatever version of gtk is reported by pkg-config –cflags (pkg-config --cflags gtk. you will also need pkg-config installed, multiple installations of gtk can be used and utilized
but the emacs plugins you’ll need are (and you’ll need to connect to Melpa using list-packages https://melpa.org/#/getting-started to have these automatically downloaded and configured):
company
company-c-headers
flycheck
flycheck-pkg-config
exec-path-from-shell (this allows x11emacs to read the shells configuration, may be option for terminal based emac uses)
optional: function-args-mode, but when fa-show-auto is used, it breaks themes in emacs
download all of them through M-x list-packages (which means pressing alt+x, macOS option+x, which should issue an input on the bottom of emacs, where the status bar is), after that, type list-packages or use auto completion, aka ctrl+tab to cycle through possible candidates
open a c file (C-f ~/test.c) (which is control+x, macOS control+x)
type in:
M-x semantic-mode
M-x semantic-customize-system-include-path
in semantic-customize-system-include-path, add the path to the gtk version you intend to develop for, in my case /opt/homebrew/Cellar/gtk4/4.16.12/include/gtk-4.0 using the text based interface; you should be able to use your mouse (click ins after where it says /usr/include. semantic is included in emacs. options are automatically saved at command)
M-x exec-path-from-shell-initialize
M-x flycheck-mode
M-x flycheck-pkg-config
in flycheck-pkg-config, press enter, and then type the name of the version of gtk that provides valid input from pkg-config (ie gtk4)
M-x global-company-mode
if you need to bind ctrl+tab to auto complete, you can add this to your config (~/.emacs.d/init.el)
(global-set-key (kbd “C-”) ‘company-semantic)
this will do most of the grunt work when plugins are installed (ctrl-tab shows a window to auto complete, ctrl+` (thats the key before 1, with shift it becomes ~) shows function argument. fa-show-auto automatically shows function prototypes, but can break emacs themes:
(require ‘package)
(add-to-list ‘package-archives ‘(“melpa” . “https://melpa.org/packages/”) t)
;; Comment/uncomment this line to enable MELPA Stable if desired. See package-archive-priorities
;; and package-pinned-packages. Most users will not need or want to do this.
;;(add-to-list ‘package-archives ‘(“melpa-stable” . “https://stable.melpa.org/packages/”) t)
(package-initialize)
(global-company-mode t)
(global-flycheck-mode t)
(semantic-mode t)
(function-args-mode)
(global-company-mode t)
(global-flycheck-mode t)
(semantic-mode t)
(function-args-mode)
(global-set-key (kbd “C-”) ‘company-semantic)
(global-set-key (kbd “C-`”) ‘fa-show)
if you need to compile from inside emacs, I would make a Makefile according to the gtk tutorial on gtk.org
I also have another article on getting Xcode to work with gtk, which is more reliable: https://unix-world.com/2025/01/25/getting-gtk4-to-work-in-xcode-with-auto-complete-and-syntax-highlighting/
website is unix-world.com and I welcome any and all traffic !
This is a dedicated space for developers to connect, share ideas, collaborate, and ask questions. Introduce yourself, network with other developers, and join us in fostering a supportive community.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
When using a VStack containing two TextFields inside a ScrollView on an iPad running iOS 18.0, the FocusState of the topmost TextField does not trigger, while the second TextField's FocusState works correctly. Adding an invisible TextField on top resolves the issue, but it appears to be a bug specifically in iOS 18.0 on iPads. This issue does not occur on iOS versions below or above 18.0 (including iOS 18.1).
Code that is not working
struct ContentView: View {
@State var text: String = ""
@FocusState
private var focusState: Bool
var body: some View {
ScrollView(.vertical, content: {
VStack(spacing: 0) {
TextField(text: $text) {
Text("Hello, World!")
}
.border(focusState ? Color.red : Color.gray)
.focused($focusState)
.onChange(of: focusState) { oldValue, newValue in
print(newValue)
}
.onChange(of: text) { oldValue, newValue in
focusState = true
}
}
})
.padding()
}
}
Code that is working
struct ContentView: View {
@State var text: String = ""
@FocusState
private var focusState: Bool
var body: some View {
ScrollView(.vertical, content: {
VStack(spacing: 0) {
// Invisible Text Field
TextField("", text: .constant(""))
.frame(height: 0)
TextField(text: $text) {
Text("Hello, World!")
}
.border(focusState ? Color.red : Color.gray)
.focused($focusState)
.onChange(of: focusState) { oldValue, newValue in
print(newValue)
}
.onChange(of: text) { oldValue, newValue in
focusState = true
}
}
})
.padding()
}
}
Hello! I am new here but could really use some support. For the last year or so I have been bugged by the feeling that my devices were not completely managed by myself. After this week I have seen my computer and devices do things on their own without me touching the keyboard. SO I am hoping someone here can help me get rid or at least get to the root of the problem as I do not know what else I can do! SO far I know they are accessing all my devices remotely but am unsure how they do it since someone times there is no wifi around, I'm thiniking bluetooth maybe or perhaps another form of devices talking and sharing info with each other. Any support helps!!!
Topic:
Community
SubTopic:
Apple Developers
Genmoji app is not working. It will not allow me to select myself. It will choose other people when I prompt with “me”. it will not allow me to add other people in my “photos” app to use in the genmoji app
Topic:
Community
SubTopic:
Apple Developers
我们的App被AppStoreNotices直接下架,说我们侵权,但我们找到对应公司的负责人,他们说没有投诉过我们,是别人冒用他们的名义投诉,并且给我们开了带公章的证明文件发给AppStoreNotices。但已经两个月了,AppStoreNotices一直没有回复我们。他们没有经过仔细的审核就因为别人的诬告直接下架我们的APP,而且两个月了还不回复我们邮件,这是什么问题?请问该怎么联系上他们,有没有除了邮件外的其他方式
Our App was removed from App Store by AppStoreNotices, saying that we infringed Copyright. And we called the person in charge of the corresponding company, and they said that they had not complained about us, others had falsely complained in their name, and issued us a certification document with official seal and sent it to AppStoreNotices. But it's been two months, and AppStoreNotices hasn't gotten back to us. They removed our APP because of false accusations without careful review, and they haven't replied to our email for two months. What's the problem? How can I contact them? Is there any other way besides email
Topic:
Community
SubTopic:
Apple Developers
I installed iOS 18.4 on Friday evening, all worked well during Saturday and Sunday, Monday morning the Phone rebooted and appeared to have installed an Update, I didn´t notice, I was about to answer a WhatsApp and the TestFlight beta didn´t start up, a renew of the App was not possible due to TestFlight not being available. So I thought a reboot would help, but I did a reset, since then BOOT LOOP.
I brought in recovery mode, updated with the 18.4 ipsw, no change - BOOT LOOP
The rearrangemnet of the emoji menu is driving me crazy. I never use Memojis or the Apple animal emojis and now they're all squished together at the front of the emoji keyboard and it's difficult to select what I want, since the menu is so small.
I switch between language and emoji keyboards frequently and this is extremely frustrating.
The following is my code, which runs successfully and is recommended to succeed, but it still does not show Siri's suggestion to users in the system sharing in Safari
import AppIntents
import Contacts
import CoreSpotlight
import Intents
import UIKit
class TestViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.white
DispatchQueue.global().async {
self.donateMessageInteraction(recipientName: "张三", phoneNumber: "+8613812345678")
}
}
func donateMessageInteraction(recipientName: String, phoneNumber: String) {
INPreferences.requestSiriAuthorization { status in
guard status == .authorized else { return }
// 1. 创建接收者
let recipientHandle = INPersonHandle(value: phoneNumber, type: .phoneNumber)
let recipient = INPerson(
personHandle: recipientHandle,
nameComponents: nil,
displayName: recipientName,
image: nil,
contactIdentifier: nil,
customIdentifier: "com.yourapp.recipient.\(phoneNumber)"
)
// 2. 创建发送者(你的应用身份)
let senderHandle = INPersonHandle(value: "15210639372@163.com", type: .emailAddress)
let sender = INPerson(
personHandle: senderHandle,
nameComponents: nil,
displayName: "我的应用",
image: nil,
contactIdentifier: nil,
customIdentifier: "com.yourapp.sender"
)
// 3. 创建消息意图
let intent = INSendMessageIntent(
recipients: [recipient],
outgoingMessageType: .outgoingMessageText,
content: "最近怎么样?", // 常用消息内容
speakableGroupName: nil, // 群组名称(一对一设为nil)
conversationIdentifier: "com.yourapp.conversation.\(phoneNumber)", // 唯一会话ID
serviceName: "My Chat Service", // 你的消息服务名称
sender: sender, // 发送者身份
attachments: nil
)
// 4. 配置意图参数
intent.setImage(INImage(named: "user0"), forParameterNamed: \.sender)
// 5. 创建并捐赠交互
let interaction = INInteraction(intent: intent, response: nil)
interaction.direction = .outgoing
interaction.donate { error in
error.map { print("捐赠失败: \($0)") }
}
print("捐赠代码执行完成")
}
}
}
Topic:
Community
SubTopic:
Apple Developers
Hi Team,
I just want to know the reasoning behind why there are two IPSW with same version and different build IDs.
Example: https://ipsw.me/iPhone12,3
Version: 18.3
BuildIDs: 22D64 and 22D63
Also, in future, on what devices this kind of two buildIDs will be created?
Topic:
Community
SubTopic:
Apple Developers
xin chào tôi muốn mã sử dụng Testflight hoặc một số trợ giúp để tôi có thể sử dụng testflight
Can anyone help me rename my project safely using 16.2. I looked around but only found help for earlier versions?
Topic:
Community
SubTopic:
Apple Developers
The Bluetooth on my iPhone 14 hasn’t been working for a week now. Everything was fine until, at some point, it started endlessly turning on and off by itself. I’ve tried resetting the settings, doing a hard reset, updating to iOS 18.3—none of these helped. I even deleted all VPN profiles just in case (I saw this suggested on forums), but that didn’t work either. According to forums, this bug has existed since September and affects thousands of people. The constant cycling causes the Bluetooth settings to freeze. Please help! My watch, headphones, car—everything has turned into a pumpkin!
I have a flutter application with Firebase token and it is working in my local as expected I loaded my application to Appstore but it is not working, can anyone help me for fix the issue.
Thank you
Now that Apple is allowing users to merge two Apple IDs, how does one remove/delete songs from the Primary Apple ID music library? Is it a no-no to merge two Apple IDs? The notes on merging suggest this is a problem but offer no workaround. The only option I can see is to hide songs. Is this sufficient to allow the merging of two Apple IDs?
Topic:
Community
SubTopic:
Apple Developers
Hi,
We have recently encountered a problem running our App on iPads with A9, A10 chipset. Since recently we have migrated our Network module to swift 6 our app has stoped working on these devices.
Anyone else has noticed that too or if someone know why that is happening only for iPads with specific hardware?
I wish to have all spotlight services stopped on my MacBook, however with turning all options off in the settings and also the "Help Apple Improve Search" option, however the option turns back on whenever there is a restart on the laptop as well as background services running. How can I disable this permanently?
I have tried to following as well:
sudo mdutil -a -i off
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
sudo launchctl unload -w /System/Library/LaunchAgents/com.apple.metadata.mds.user.plist
sudo rm /Library/Preferences/com.apple.spotlight.plist
sudo launchctl disable system/com.apple.metadata.mds
However with ps aux | grep -E "mds|Spotlight|corespotlightd" it still shows spotlight related services running:
User1 73830 0.0 0.0 410741568 1680 s018 S+ 11:58am 0:00.00 grep -E mds|Spotlight|corespotlightd
root 3170 0.0 0.0 410682288 4816 ?? Ss 20Jan25 4:28.08 /System/Library/Frameworks/CoreServices.framework/Frameworks/Metadata.framework/Versions/A/Support/mds_stores
root 3168 0.0 0.0 427023376 14864 ?? Ss 20Jan25 33:53.97 /System/Library/Frameworks/CoreServices.framework/Frameworks/Metadata.framework/Support/mds
User1 593 0.0 0.1 434378432 45456 ?? S 20Jan25 14:00.32 /System/Library/Frameworks/CoreServices.framework/Frameworks/Metadata.framework/Versions/A/Support/corespotlightd
What else can I try in order to stop these and to stay shut off after turning my laptop on and off again?
I am a startup founder based in India. Recently the iOS developer we were working with left the company in some what acrimonious circumstances.
Post his departure from the company, he has made it clear that he will try to cause damage to our iOS app to the extent that it starts to crash.
Even though we have removed his access, as a non tech founder, I am not sure what ways he can edit or hamper our iOS app and what measures we can take to protect the same.
Please advise us with steps for us to secure our code and ensure no one can edit the same or hamper our iOS app on the app store.
Thank you
Bluetooth is no more working with the upgrade to iOS 18.3.1 I loaded this night !!! (iPhone SE model III).
Please debug it!
Topic:
Community
SubTopic:
Apple Developers
15.2 has a major problem with Thunderbolt devices. Dozens of reports on the discussion forum after people upgraded from prior versions. In my case 15.1 was working flawlessly. After upgrading to 15.2 the MAC PRO (2019) won't even boot with multiple Thunderbolt devices attached. If as suggested I disconnect all those devices the MAC boots but I no longer have my Thunderbolt drives available. Someone from Apple really needs to start listening to this. We have posted feedback after feedback and I keep getting told no one else has this problem. Well 4 pages of people on the discussion forum would disagree with that.
Topic:
Community
SubTopic:
Apple Developers
We are in the process of developing a mobile banking application and have a key requirement related to NFC-based peer-to-peer (P2P) transactions. Our goal is to enable secure and seamless money transfers between two devices using NFC.
Business Requirement:
The application will provide a feature where users can initiate money transfers via NFC.
The sender starts an NFC payment session from their device.
Simultaneously, the receiver starts an NFC session to accept the payment.
The sender's device should be able to detect the receiver’s NFC tag and process the transaction securely.