Gemini CLI に Gemini CLI 自体のソースコードを読ませつつ、高度な使い方を分析させたもの
Gemini CLIは、単なる対話ツールではありません。その設計の核心を理解することで、私たちはGemini CLIを、自らの開発ワークフローに最適化された、強力な自動化エンジンへと変貌させることができます。このガイドでは、基本的な使い方から、コードリーディングによって明らかになった高度な実践テクニックまでを解説します。
#!/usr/bin/env bash | |
# Install Git Large File Storage (LFS) | |
brew install git-lfs | |
git lfs install | |
# Download & Install Llama | |
git clone https://github.com/ggerganov/llama.cpp | |
cd llama.cpp | |
LLAMA_METAL=1 make -j # build with Metal support for (M-series) Apple Silicon |
A JSON compilation database is a very handy output format which is parsed and used by many development tools. Unfortunately for us Apple Developers, it is not straightforward to generate one from within Xcode, as it is (probably) not Apple's priority and therefore there is no toggle/switch/setting that can be easily enabled to get this information.
There is however a solution, thanks to Apple using Clang/LLVM as their main toolchain.
The standard way to generate this with clang would be to use the -MJ
flag and give it a file name that typically corresponds to the input file. Using this flag indirectly through Xcode is hard, given that we're not aware of all the other arguments when a compiler call is executed.
However, there is a second hidden/badly documented LLVM flag: -gen-cdb-fragment-path
- it is implemented in terms of -MJ
and has the same functionality, but it's argument in contrast is an output directory.
// Adds the ALT_TAB keycode to a QMK keymap. | |
// Based on https://www.reddit.com/r/MechanicalKeyboards/comments/mrnxrj/better_super_alttab/ | |
// Functionality is the following (basically the same thing as a normal Alt + Tab but without having | |
// to leave Alt pressed): | |
// - On pressing ALT_TAB, the window switch menu pops up. | |
// - While the menu is visible, it's possible to cycle through the selection by pressing ALT_TAB | |
// again, or Shift + ALT_TAB, or the arrow keys. | |
// - The selected window can be brought up by pressing Enter, which also closes the menu. |
/* In your config.h define a new variable RGBLIGHT_TIMEOUT and give it a value in milliseconds */ | |
#define RGBLIGHT_SLEEP // allows us to use rgblight_suspend() and rgblight_wakeup() in keymap.c | |
#define RGBLIGHT_TIMEOUT 30000 // 30 seconds |
Fonts included with macOS Catalina | |
macOS Catalina comes with many built-in or downloadable typefaces. | |
The following fonts are installed and enabled automatically by macOS Catalina. Additional fonts are available for download or as needed by your document or app. New or updated fonts may be added over time. This list is current as of 24 April 2020. | |
Al Bayan Bold 13.0d1e6 | |
Al Bayan Plain 13.0d1e6 | |
Al Nile 13.0d2e2 |
$ xcrun simctl status_bar booted override --time "9:41" --batteryState charged --batteryLevel 100 --cellularMode active |
import Cocoa | |
@NSApplicationMain | |
class AppDelegate: NSObject, NSApplicationDelegate { | |
let keyEvent = Event() | |
lazy var statusItem: NSStatusItem = { | |
return NSStatusBar.system.statusItem(withLength: NSStatusItem.squareLength) | |
}() | |
func applicationDidFinishLaunching(_ aNotification: Notification) { |
// CTFontGetGlyphsForCharacters(_:_:_:_:) | |
// [UniChar] → [CGGlyph] | |
import Foundation | |
func makeUnichars(from str: NSString) -> [UInt16] { | |
let range = NSRange(location:0, length: str.length) | |
let encoding = String.Encoding.utf16.rawValue | |
let maxLength = str.maximumLengthOfBytes(using: encoding) |
<?xml version="1.0" encoding="UTF-8"?> | |
<66EC(XRGB)Ble> | |
<PredefinedCombo> | |
<List SizeOfView="6" ViewStartAt="0" CursorPos="0" Cycles="1" IsAutoInterval="0" Delay="30" PlayMode="0"/> | |
</PredefinedCombo> | |
<PredefinedMacro> | |
<List SizeOfView="9" ViewStartAt="0" CursorPos="0" Cycles="1" IsAutoInterval="0" Delay="30" PlayMode="0"/> | |
</PredefinedMacro> | |
<PredefinedEmu> | |
<List SizeOfView="9" ViewStartAt="0" CursorPos="0" Cycles="1" IsAutoInterval="0" Delay="30" PlayMode="0"/> |