Linux snips
Synaptics touchpad
Scroll + click-on-tap dla touchpada, który wydaje się nie reagować na wyżej wymienione funkcje:
- root # synclient TapButton1=1
- root # synclient VertEdgeScroll=1
- root # synclient HorizEdgeScroll
Mount offset
Montowanie partycji jako system plików w image'u dysku. Pamiętaj o ro:
- root # mount -t [fstype] -o loop,ro,offset=[offset boot blocka w sektorach]
Mingw i FileVersionInfo
Ikony, zasoby, itp, kompilacja:
- $ windres rsrc.rc -O coff -o rsrc.o
następnie linkowanie rsrc.o do exeka. Treść pliku rsrc.rc:
- 10 ICON "icon.ico"
- 10 VERSIONINFO
- FILEVERSION 1,0,0,0
- PRODUCTVERSION 1,0,0,0
- BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "040904E2"
- BEGIN
- VALUE "CompanyName", "Company Name"
- VALUE "FileDescription", "Application Name"
- VALUE "FileVersion", "1.0"
- VALUE "InternalName", "myapp"
- VALUE "LegalCopyright", "Copyright info"
- VALUE "OriginalFilename", "myapp.exe"
- VALUE "ProductName", "My App"
- VALUE "ProductVersion", "1.0"
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x409, 1250
- END
- END
(ustalenie ikony w lewym górnym rogu: SetIcon(id))
GIO + D-Bus
Bindingi GIO do obsługi D-Bus. Notatka do g_variant_get_child znajduje się na stackoverflow. output to GVariant *. Rzutowanie z GVariant do Glib::Variant<_Type> wykonuje się standardowo: Variant<ustring> obj(output.gobj());
- Glib::RefPtr<Gio::DBus::Connection> bus;
- Glib::RefPtr<Gio::DBus::Proxy> proxy;
- bus = DBus::Connection::get_sync(Gio::DBus::BUS_TYPE_SYSTEM);
- proxy = DBus::Proxy::create_sync(bus, "org.freedesktop.UDisks", "/org/freedesktop/UDisks", "org.freedesktop.UDisks");
- VariantContainerBase ret = proxy->call_sync("EnumerateDevices");
- VariantIter iter(ret.get_child(0));
- Variant<Glib::ustring> obj_path;
- while(iter.next_value(obj_path)) {
- ...
- }
- // czytanie właściwości:
- try {
- Glib::RefPtr<Gio::DBus::Proxy> props_proxy = DBus::Proxy::create_sync(bus, "org.freedesktop.UDisks", object_path, "org.freedesktop.DBus.Properties");
- std::vector<VariantBase> args;
- args.push_back(Variant<ustring>::create("org.freedesktop.UDisks.Device"));
- args.push_back(Variant<ustring>::create(prop_name));
- VariantContainerBase vargs = VariantContainerBase::create_tuple(args);
- VariantContainerBase var_props = props_proxy->call_sync("Get", vargs);
- if(var_props.get_n_children() < 1)
- return false;
- g_variant_get_child(var_props.gobj(), 0, "v", & output);
- return true;
- } catch(Gio::DBus::Error& e) {
- LOG("got Gio::DBus::Error error");
- return false;
- }


